1 /*- 2 * Copyright (c) 2013 The NetBSD Foundation, Inc. 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to The NetBSD Foundation 6 * by Masanobu SAITOH. 7 * 8 * Redistribution and use in source and binary forms, with or without 9 * modification, are permitted provided that the following conditions 10 * are met: 11 * 1. Redistributions of source code must retain the above copyright 12 * notice, this list of conditions and the following disclaimer. 13 * 2. Redistributions in binary form must reproduce the above copyright 14 * notice, this list of conditions and the following disclaimer in the 15 * documentation and/or other materials provided with the distribution. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 18 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 19 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 20 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 21 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 22 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 25 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 27 * POSSIBILITY OF SUCH DAMAGE. 28 */ 29 30 #ifndef _DEV_MII_MDIO_H_ 31 #define _DEV_MII_MDIO_H_ 32 33 /* 34 * IEEE 802.3 Clause 45 definitions. 35 * From: 36 * IEEE 802.3 2009 37 * IEEE 802.3at 38 * IEEE 802.3av 39 * IEEE 802.3az 40 */ 41 42 /* 43 * MDIO Manageable Device addresses. 44 * Table 45-1 45 */ 46 #define MDIO_MMD_PMAPMD 1 47 #define MDIO_MMD_WIS 2 48 #define MDIO_MMD_PCS 3 49 #define MDIO_MMD_PHYXS 4 50 #define MDIO_MMD_DTEXS 5 51 #define MDIO_MMD_TC 6 52 #define MDIO_MMD_AN 7 53 #define MDIO_MMD_CL22EXT 29 54 #define MDIO_MMD_VNDSP1 30 55 #define MDIO_MMD_VNDSP2 31 56 57 /* 58 * MDIO PMA/PMD registers. 59 * Table 45-3 60 */ 61 #define MDIO_PMAPMD_CTRL1 0 /* PMA/PMD control 1 */ 62 #define MDIO_PMAPMD_STAT1 1 /* PMA/PMD status 1 */ 63 #define MDIO_PMAPMD_DEVID1 2 /* PMA/PMD device identifier 1 */ 64 #define MDIO_PMAPMD_DEVID2 3 /* PMA/PMD device identifier 2 */ 65 #define MDIO_PMAPMD_SPEED 4 /* PMA/PMD speed ability */ 66 #define MDIO_PMAPMD_DEVS1 5 /* PMA/PMD devices in package 1 */ 67 #define MDIO_PMAPMD_DEVS2 6 /* PMA/PMD devices in package 2 */ 68 #define MDIO_PMAPMD_CTRL2 7 /* PMA/PMD control 2 */ 69 #define MDIO_PMAPMD_10GSTAT2 8 /* 10G PMA/PMD status 2 */ 70 #define MDIO_PMAPMD_10GTXDIS 9 /* 10G PMA/PMD transmit disable */ 71 #define MDIO_PMAPMD_RXSIGDTCT 10 /* 10G PMD receive signal detect */ 72 #define MDIO_PMAPMD_EXTABLTY 11 /* 10G PMA/PMD ext. ability reg */ 73 #define MDIO_PMAPMD_P2MPABLTY 12 /* P2MP ability register(802.3av)*/ 74 /* Value 13 is reserved */ 75 #define MDIO_PMAPMD_PKGID1 14 /* PMA/PMD package identifier 1 */ 76 #define MDIO_PMAPMD_PKGID2 15 /* PMA/PMD package identifier 2 */ 77 /* Values 16 to 29 are reserved */ 78 #define MDIO_PMAPMD_10P2BCTRL 30 /* 10P/2B PMA/PMD control */ 79 #define MDIO_PMAPMD_10P2BSTAT 31 /* 10P/2B PMA/PMD status */ 80 #define MDIO_PMAPMD_10P2BLPCTRL 32 /* 10P/2B link partner PMA/D ctrl*/ 81 #define MDIO_PMAPMD_10P2BLPSTAT 33 /* 10P/2B link partner PMA/D stat*/ 82 /* Values 34 to 35 are reserved */ 83 #define MDIO_PMAPMD_10P2BLLOSCNT 36 /* 10P/2B link loss counter */ 84 #define MDIO_PMAPMD_10P2BRXSNMGN 37 /* 10P/2B RX SNR margin */ 85 #define MDIO_PMAPMD_10P2BLPRXSNMG 38 /* 10P/2B link partner RX SNR mgn*/ 86 #define MDIO_PMAPMD_10P2BLINEATTN 39 /* 10P/2B line attenuation */ 87 #define MDIO_PMAPMD_10P2BLPLINEATTN 40 /* 10P/2B link partner line atten*/ 88 #define MDIO_PMAPMD_10P2BLQTHRES 41 /* 10P/2B line quality thresholds*/ 89 #define MDIO_PMAPMD_10P2BLPLQLTHRES 42 /* 10P/2B link partner LQ thresh.*/ 90 #define MDIO_PMAPMD_10PFECCOERRS 43 /* 10P FEC correctable errors cnt*/ 91 #define MDIO_PMAPMD_10PFECUNCOERRS 44 /* 10P FEC uncorrectable err cnt*/ 92 #define MDIO_PMAPMD_10PLPFECCOERRS 45 /* 10P LP FEC correctable err cnt*/ 93 #define MDIO_PMAPMD_10PLPFECUNCOERRS 46 /* 10P LP FEC uncorrectable errcn*/ 94 #define MDIO_PMAPMD_10PELECLENGTH 47 /* 10P electrical length */ 95 #define MDIO_PMAPMD_10PLPELECLENGTH 48 /* 10P LP electrical length */ 96 #define MDIO_PMAPMD_10PGENCONFIG 49 /* 10P PMA/PMD general config. */ 97 #define MDIO_PMAPMD_10PPSDCONFIG 50 /* 10P PSD configuration */ 98 #define MDIO_PMAPMD_10PDSDRCONF1 51 /* 10P downstream data rate cnf1 */ 99 #define MDIO_PMAPMD_10PDSDRCONF2 52 /* 10P downstream data rate cnf2 */ 100 #define MDIO_PMAPMD_10PDSRSCONF 53 /* 10P downstream ReedSolomon cnf*/ 101 #define MDIO_PMAPMD_10PUSDR1 54 /* 10P upstream data rate cnf1 */ 102 #define MDIO_PMAPMD_10PUSDR2 55 /* 10P upstream data rate cnf2 */ 103 #define MDIO_PMAPMD_10PUSRSCONF 56 /* 10P upnstream ReedSolomon cnf */ 104 #define MDIO_PMAPMD_10PTONEGROUP1 57 /* 10P tone group 1 */ 105 #define MDIO_PMAPMD_10PTONEGROUP2 58 /* 10P tone group 2 */ 106 #define MDIO_PMAPMD_10PTONEPARAM1 59 /* 10P tone parameter 1 */ 107 #define MDIO_PMAPMD_10PTONEPARAM2 60 /* 10P tone parameter 2 */ 108 #define MDIO_PMAPMD_10PTONEPARAM3 61 /* 10P tone parameter 3 */ 109 #define MDIO_PMAPMD_10PTONEPARAM4 62 /* 10P tone parameter 4 */ 110 #define MDIO_PMAPMD_10PTONEPARAM5 63 /* 10P tone parameter 5 */ 111 #define MDIO_PMAPMD_10PTONECTLACTN 64 /* 10P tone control action */ 112 #define MDIO_PMAPMD_10PTONESTAT1 65 /* 10P tone status 1 */ 113 #define MDIO_PMAPMD_10PTONESTAT2 66 /* 10P tone status 2 */ 114 #define MDIO_PMAPMD_10PTONESTAT3 67 /* 10P tone status 3 */ 115 #define MDIO_PMAPMD_10POUTINDICAT 68 /* 10P outgoing indicator bits */ 116 #define MDIO_PMAPMD_10PININDICAT 69 /* 10P incoming indicator bits */ 117 #define MDIO_PMAPMD_10PCYCLICEXTCNF 70 /* 10P cyclic extension config. */ 118 #define MDIO_PMAPMD_10PATTAINDSDR 71 /* 10P attainable downstream DR */ 119 /* Values 72 to 79 are reserved */ 120 #define MDIO_PMAPMD_2BGENPARAM 80 /* 2B general parameter */ 121 #define MDIO_PMAPMD_2BPMDPARAM1 81 /* 2B PMD parameter 1 */ 122 #define MDIO_PMAPMD_2BPMDPARAM2 82 /* 2B PMD parameter 2 */ 123 #define MDIO_PMAPMD_2BPMDPARAM3 83 /* 2B PMD parameter 3 */ 124 #define MDIO_PMAPMD_2BPMDPARAM4 84 /* 2B PMD parameter 4 */ 125 #define MDIO_PMAPMD_2BPMDPARAM5 85 /* 2B PMD parameter 5 */ 126 #define MDIO_PMAPMD_2BPMDPARAM6 86 /* 2B PMD parameter 6 */ 127 #define MDIO_PMAPMD_2BPMDPARAM7 87 /* 2B PMD parameter 7 */ 128 #define MDIO_PMAPMD_2BPMDPARAM8 88 /* 2B PMD parameter 8 */ 129 #define MDIO_PMAPMD_2BCODEVIOERRCNT 89 /* 2B code violation errors cnt. */ 130 #define MDIO_PMAPMD_2BLPCODEVIOERR 90 /* 2B LP code violation errors */ 131 #define MDIO_PMAPMD_2BERRSECCNT 91 /* 2B errored seconds counter */ 132 #define MDIO_PMAPMD_2BLPERRSEC 92 /* 2B LP errored seconds */ 133 #define MDIO_PMAPMD_2BSEVERRSECCNT 93 /* 2B severely errored seconds cn*/ 134 #define MDIO_PMAPMD_2BLPSEVERRSECCNT 94 /* 2B LP severely errored secs cn*/ 135 #define MDIO_PMAPMD_2BLOSWCNT 95 /* 2B LOSW counter */ 136 #define MDIO_PMAPMD_2BLPLOSW 96 /* 2B LP LOSW */ 137 #define MDIO_PMAPMD_2BUNAVSECCNT 97 /* 2B unavailable seconds counter*/ 138 #define MDIO_PMAPMD_2BLPUNAVSECCNT 98 /* 2B LP unavailable seconds cnt */ 139 #define MDIO_PMAPMD_2BSTATDEFECT 99 /* 2B state defects */ 140 #define MDIO_PMAPMD_2BLPSTATDEFECT 100 /* 2B LP state defects */ 141 #define MDIO_PMAPMD_2BNEGOCONSTEL 101 /* 2B negotiated constellation */ 142 #define MDIO_PMAPMD_2BEXTPMDPARAM1 102 /* 2B extended PMD parameters 1 */ 143 #define MDIO_PMAPMD_2BEXTPMDPARAM2 103 /* 2B extended PMD parameters 2 */ 144 #define MDIO_PMAPMD_2BEXTPMDPARAM3 104 /* 2B extended PMD parameters 3 */ 145 #define MDIO_PMAPMD_2BEXTPMDPARAM4 105 /* 2B extended PMD parameters 4 */ 146 #define MDIO_PMAPMD_2BEXTPMDPARAM5 106 /* 2B extended PMD parameters 5 */ 147 #define MDIO_PMAPMD_2BEXTPMDPARAM6 107 /* 2B extended PMD parameters 6 */ 148 #define MDIO_PMAPMD_2BEXTPMDPARAM7 108 /* 2B extended PMD parameters 7 */ 149 #define MDIO_PMAPMD_2BEXTPMDPARAM8 109 /* 2B extended PMD parameters 8 */ 150 /* Values 110 to 128 are reserved */ 151 #define MDIO_PMAPMD_10GTSTAT 129 /* 10GBASE-T status */ 152 #define MDIO_PMAPMD_10GTPASWPOLAR 130 /* 10G-T pair swap & polarity */ 153 #define MDIO_PMAPMD_10GTTXPWBOSHRCH 131 /* 10G-T PWR backoff&PHY shrt rch*/ 154 #define MDIO_PMAPMD_10GTTSTMODE 132 /* 10G-T test mode */ 155 #define MDIO_PMAPMD_10GTSNROMARGA 133 /* 10G-T SNR operating margin chA*/ 156 #define MDIO_PMAPMD_10GTSNROMARGB 134 /* 10G-T SNR operating margin chB*/ 157 #define MDIO_PMAPMD_10GTSNROMARGC 135 /* 10G-T SNR operating margin chC*/ 158 #define MDIO_PMAPMD_10GTSNROMARGD 136 /* 10G-T SNR operating margin chD*/ 159 #define MDIO_PMAPMD_10GTMINMARGA 137 /* 10G-T minimum margin ch. A */ 160 #define MDIO_PMAPMD_10GTMINMARGB 138 /* 10G-T minimum margin ch. B */ 161 #define MDIO_PMAPMD_10GTMINMARGC 139 /* 10G-T minimum margin ch. C */ 162 #define MDIO_PMAPMD_10GTMINMARGD 140 /* 10G-T minimum margin ch. D */ 163 #define MDIO_PMAPMD_10GTSIGPWRA 141 /* 10G-T RX signal power ch. A */ 164 #define MDIO_PMAPMD_10GTSIGPWRB 142 /* 10G-T RX signal power ch. B */ 165 #define MDIO_PMAPMD_10GTSIGPWRC 143 /* 10G-T RX signal power ch. C */ 166 #define MDIO_PMAPMD_10GTSIGPWRD 144 /* 10G-T RX signal power ch. D */ 167 #define MDIO_PMAPMD_10GTSKEWDLY1 145 /* 10G-T skew delay 1 */ 168 #define MDIO_PMAPMD_10GTSKEWDLY2 146 /* 10G-T skew delay 2 */ 169 #define MDIO_PMAPMD_10GTFSTRETSTATCTRL 147 /* 10G-T fast retrain stat&ctrl */ 170 /* Values 148 to 149 are reserved */ 171 #define MDIO_PMAPMD_10GKRPMDCTRL 150 /* 10G-KR PMD control */ 172 #define MDIO_PMAPMD_10GKRPMDSTAT 151 /* 10G-KR PMD status */ 173 #define MDIO_PMAPMD_10GKRLPCOEFUPD 152 /* 10G-KR LP coefficient update */ 174 #define MDIO_PMAPMD_10GKRLPSTATRPT 153 /* 10G-KR LP status report */ 175 #define MDIO_PMAPMD_10GKRLDCOEFFUPD 154 /* 10G-KR LD coefficient update */ 176 #define MDIO_PMAPMD_10GKRLDSTATRPT 155 /* 10G-KR LD status report */ 177 /* Values 156 to 159 are reserved */ 178 #define MDIO_PMAPMD_10GKXCTRL 160 /* 10G-KX control */ 179 #define MDIO_PMAPMD_10GKXSTAT 161 /* 10G-KX status */ 180 /* Values 162 to 169 are reserved */ 181 #define MDIO_PMAPMD_10GRFECABLTY 170 /* 10G-R FEC ability */ 182 #define MDIO_PMAPMD_10GRFECCTRL 171 /* 10G-R FEC control */ 183 #define MDIO_PMAPMD_10GRFECCOBLCNT1 172 /* 10G-R FEC corrected blks cnt1 */ 184 #define MDIO_PMAPMD_10GRFECCOBLCNT2 173 /* 10G-R FEC corrected blks cnt2 */ 185 #define MDIO_PMAPMD_10GRFECUNCOBLCNT1 174 /* 10G-R FEC uncorrect blks cnt1 */ 186 #define MDIO_PMAPMD_10GRFECUNCOBLCNT2 175 /* 10G-R FEC uncorrect blks cnt2 */ 187 /* Values 176 to 32767 are reserved */ 188 /* Values 32768 to 65535 are vendor specific */ 189 190 /* 191 * MDIO WIS registers. 192 * Table 45-65 193 */ 194 #define MDIO_WIS_CTRL1 0 /* WIS control 1 */ 195 #define MDIO_WIS_STAT1 1 /* WIS status 1 */ 196 #define MDIO_WIS_DEVID1 2 /* WIS device identifier 1 */ 197 #define MDIO_WIS_DEVID2 3 /* WIS device identifier 2 */ 198 #define MDIO_WIS_SPEED 4 /* WIS speed ability */ 199 #define MDIO_WIS_DEVS1 5 /* WIS devices in package 1 */ 200 #define MDIO_WIS_DEVS2 6 /* WIS devices in package 2 */ 201 #define MDIO_WIS_10GCTRL2 7 /* 10G WIS control 2 */ 202 #define MDIO_WIS_10GSTAT2 8 /* 10G WIS status 2 */ 203 #define MDIO_WIS_10GTSTERRCNT 9 /* 10G WIS test-pattern error counter*/ 204 /* Values 10 to 13 are reserved */ 205 #define MDIO_WIS_PKGID1 14 /* WIS package identifier 1 */ 206 #define MDIO_WIS_PKGID2 15 /* WIS package identifier 2 */ 207 /* Values 16 to 32 are reserved */ 208 #define MDIO_WIS_10GSTAT3 33 /* 10G WIS status 3 */ 209 /* Values 34 to 36 are reserved */ 210 #define MDIO_WIS_FARENDPBERRCNT 37 /* WIS far end path block error count*/ 211 /* Value 38 is reserved */ 212 #define MDIO_WIS_J1XMIT1 39 /* 10G WIS J1 transmit 1 */ 213 #define MDIO_WIS_J1XMIT2 40 /* 10G WIS J1 transmit 2 */ 214 #define MDIO_WIS_J1XMIT3 41 /* 10G WIS J1 transmit 3 */ 215 #define MDIO_WIS_J1XMIT4 42 /* 10G WIS J1 transmit 4 */ 216 #define MDIO_WIS_J1XMIT5 43 /* 10G WIS J1 transmit 5 */ 217 #define MDIO_WIS_J1XMIT6 44 /* 10G WIS J1 transmit 6 */ 218 #define MDIO_WIS_J1XMIT7 45 /* 10G WIS J1 transmit 7 */ 219 #define MDIO_WIS_J1XMIT8 46 /* 10G WIS J1 transmit 8 */ 220 #define MDIO_WIS_J1RECV1 47 /* 10G WIS J1 receive 1 */ 221 #define MDIO_WIS_J1RECV2 48 /* 10G WIS J1 receive 2 */ 222 #define MDIO_WIS_J1RECV3 49 /* 10G WIS J1 receive 3 */ 223 #define MDIO_WIS_J1RECV4 50 /* 10G WIS J1 receive 4 */ 224 #define MDIO_WIS_J1RECV5 51 /* 10G WIS J1 receive 5 */ 225 #define MDIO_WIS_J1RECV6 52 /* 10G WIS J1 receive 6 */ 226 #define MDIO_WIS_J1RECV7 53 /* 10G WIS J1 receive 7 */ 227 #define MDIO_WIS_J1RECV8 54 /* 10G WIS J1 receive 8 */ 228 #define MDIO_WIS_FARENDLBIPERR1 55 /* 10G WIS far end line BIP errors 1 */ 229 #define MDIO_WIS_FARENDLBIPERR2 56 /* 10G WIS far end line BIP errors 2 */ 230 #define MDIO_WIS_LBIPERR1 57 /* 10G WIS line BIP errors 1 */ 231 #define MDIO_WIS_LBIPERR2 58 /* 10G WIS line BIP errors 2 */ 232 #define MDIO_WIS_PBERRCNT 59 /* 10G WIS path block error count */ 233 #define MDIO_WIS_SECBIPERRCNT 60 /* 10G WIS section BIP error count */ 234 /* Values 61 to 63 are reserved */ 235 #define MDIO_WIS_J0XMIT1 64 /* 10G WIS J0 transmit 1 */ 236 #define MDIO_WIS_J0XMIT2 65 /* 10G WIS J0 transmit 2 */ 237 #define MDIO_WIS_J0XMIT3 66 /* 10G WIS J0 transmit 3 */ 238 #define MDIO_WIS_J0XMIT4 67 /* 10G WIS J0 transmit 4 */ 239 #define MDIO_WIS_J0XMIT5 68 /* 10G WIS J0 transmit 5 */ 240 #define MDIO_WIS_J0XMIT6 69 /* 10G WIS J0 transmit 6 */ 241 #define MDIO_WIS_J0XMIT7 70 /* 10G WIS J0 transmit 7 */ 242 #define MDIO_WIS_J0XMIT8 71 /* 10G WIS J0 transmit 8 */ 243 #define MDIO_WIS_J0RECV1 72 /* 10G WIS J0 receive 1 */ 244 #define MDIO_WIS_J0RECV2 73 /* 10G WIS J0 receive 2 */ 245 #define MDIO_WIS_J0RECV3 74 /* 10G WIS J0 receive 3 */ 246 #define MDIO_WIS_J0RECV4 75 /* 10G WIS J0 receive 4 */ 247 #define MDIO_WIS_J0RECV5 76 /* 10G WIS J0 receive 5 */ 248 #define MDIO_WIS_J0RECV6 77 /* 10G WIS J0 receive 6 */ 249 #define MDIO_WIS_J0RECV7 78 /* 10G WIS J0 receive 7 */ 250 #define MDIO_WIS_J0RECV8 79 /* 10G WIS J0 receive 8 */ 251 /* Values 80 to 32767 are reserved */ 252 /* Values 32768 to 65535 are vendor specific */ 253 254 /* 255 * MDIO PCS registers. 256 * Table 45-82 257 */ 258 #define MDIO_PCS_CTRL1 0 /* PCS control 1 */ 259 #define MDIO_PCS_STAT1 1 /* PCS status 1 */ 260 #define MDIO_PCS_DEVID1 2 /* PCS device identifier 1 */ 261 #define MDIO_PCS_DEVID2 3 /* PCS device identifier 2 */ 262 #define MDIO_PCS_SPEED 4 /* PCS speed ability */ 263 #define MDIO_PCS_DEVS1 5 /* PCS devices in package 1 */ 264 #define MDIO_PCS_DEVS2 6 /* PCS devices in package 2 */ 265 #define MDIO_PCS_10GCTRL2 7 /* 10G PCS control 2 */ 266 #define MDIO_PCS_10GSTAT2 8 /* 10G PCS status 2 */ 267 /* Values 9 to 13 are reserved */ 268 #define MDIO_PCS_PKGID1 14 /* PCS package identifier 1 */ 269 #define MDIO_PCS_PKGID2 15 /* PCS package identifier 2 */ 270 /* Values 16 to 19 are reserved */ 271 #define MDIO_PCS_EEECAP 20 /* EEE capability register (802.3az) */ 272 /* Value 21 is reserved */ 273 #define MDIO_PCS_EEEWKERRCNT 22 /* EEE wake error counter (802.3az) */ 274 /* Value 23 is reserved */ 275 #define MDIO_PCS_10GXSTAT 24 /* 10G-X PCS status */ 276 #define MDIO_PCS_10GXSTSCTRL 25 /* 10G-X PCS test control */ 277 /* Values 26 to 31 are reserved */ 278 #define MDIO_PCS_10GRTSTAT1 32 /* 10G-R & 10G-T PCS status 1 */ 279 #define MDIO_PCS_10GRTSTAT2 33 /* 10G-R & 10G-T PCS status 2 */ 280 #define MDIO_PCS_10GRTPSEEDA1 34 /* 10G-R PCS test pattern seed A1 */ 281 #define MDIO_PCS_10GRTPSEEDA2 35 /* 10G-R PCS test pattern seed A2 */ 282 #define MDIO_PCS_10GRTPSEEDA3 36 /* 10G-R PCS test pattern seed A3 */ 283 #define MDIO_PCS_10GRTPSEEDA4 37 /* 10G-R PCS test pattern seed A4 */ 284 #define MDIO_PCS_10GRTPSEEDB1 38 /* 10G-R PCS test pattern seed B1 */ 285 #define MDIO_PCS_10GRTPSEEDB2 39 /* 10G-R PCS test pattern seed B2 */ 286 #define MDIO_PCS_10GRTPSEEDB3 40 /* 10G-R PCS test pattern seed B3 */ 287 #define MDIO_PCS_10GRTPSEEDB4 41 /* 10G-R PCS test pattern seed B4 */ 288 #define MDIO_PCS_10GRTPCTRL 42 /* 10G-R PCS test pattern control */ 289 #define MDIO_PCS_10GRTPERRCNT 43 /* 10G-R PCS test pattern err counter*/ 290 /* Values 44 to 59 are reserved */ 291 #define MDIO_PCS_10P2BCAP 60 /* 10P/2B capability */ 292 #define MDIO_PCS_10P2BCTRL 61 /* 10P/2B PCS control register */ 293 #define MDIO_PCS_10P2BPMEAVAIL1 62 /* 10P/2B PME available 1 */ 294 #define MDIO_PCS_10P2BPMEAVAIL2 63 /* 10P/2B PME available 2 */ 295 #define MDIO_PCS_10P2BPMEAGGRG1 64 /* 10P/2B PME aggregate 1 */ 296 #define MDIO_PCS_10P2BPMEAGGRG2 65 /* 10P/2B PME aggregate 2 */ 297 #define MDIO_PCS_10P2BPAFRXERRCNT 66 /* 10P/2B PAF RX error counter */ 298 #define MDIO_PCS_10P2BPAFSMLFRCNT 67 /* 10P/2B PAF small fragment counter */ 299 #define MDIO_PCS_10P2BPAFLARFLCNT 68 /* 10P/2B PAF large fragment counter */ 300 #define MDIO_PCS_10P2BPAFOVFLCNT 69 /* 10P/2B PAF overflow counter */ 301 #define MDIO_PCS_10P2BPAFBADFLCNT 70 /* 10P/2B PAF bad fragments counter */ 302 #define MDIO_PCS_10P2BPAFLSTFLCNT 71 /* 10P/2B PAF lost fragments counter */ 303 #define MDIO_PCS_10P2BPAFLSTSTFLCNT 72 /* 10P/2B PAF lost starts of fr. cnt */ 304 #define MDIO_PCS_10P2BPAFLSTENFLCNT 73 /* 10P/2B PAF lost ends of fr. count */ 305 #define MDIO_PCS_10GPRFECABLTY 74 /* 10G-PR & 10/1G-PRX FEC ability */ 306 #define MDIO_PCS_10GPRFECCTRL 75 /* 10G-PR & 10/1G-PRX FEC control */ 307 #define MDIO_PCS_10GPRCOFECCOCNT1 76 /*10(/1)G-PR(X) corrected FECcodecnt1*/ 308 #define MDIO_PCS_10GPRCOFECCOCNT2 77 /*10(/1)G-PR(X) corrected FECcodecnt2*/ 309 #define MDIO_PCS_10GPRUNCOFECCOCNT1 78 /*10(/1)G-PR(X)uncorrected FECcdecnt1*/ 310 #define MDIO_PCS_10GPRUNCOFECCOCNT2 79 /*10(/1)G-PR(X)uncorrected FECcdecnt2*/ 311 #define MDIO_PCS_10GPRBERMONTMRCTRL 80 /*10(/1)G-PR(X) BER monitor tmr ctrl */ 312 #define MDIO_PCS_10GPRBERMONSTAT 81 /*10(/1)G-PR(X) BER monitor status */ 313 #define MDIO_PCS_10GPRBERMONTHRCTRL 82 /*10(/1)G-PR(X) BER mntr thresh ctrl */ 314 /* Values 83 to 32767 are reserved */ 315 /* Values 32768 to 65535 are vendor specific */ 316 317 /* 318 * MDIO PHY XS registers. 319 * Table 45-108 320 */ 321 #define MDIO_PHYXS_CTRL1 0 /* PHY XS control 1 */ 322 #define MDIO_PHYXS_STAT1 1 /* PHY XS status 1 */ 323 #define MDIO_PHYXS_DEVID1 2 /* PHY XS device identifier 1 */ 324 #define MDIO_PHYXS_DEVID2 3 /* PHY XS device identifier 2 */ 325 #define MDIO_PHYXS_SPEED 4 /* PHY XS speed ability */ 326 #define MDIO_PHYXS_DEVS1 5 /* PHY XS devices in package 1 */ 327 #define MDIO_PHYXS_DEVS2 6 /* PHY XS devices in package 2 */ 328 /* Value 7 is reserved */ 329 #define MDIO_PHYXS_STAT2 8 /* PHY XS status 2 */ 330 /* Values 9 to 13 are reserved */ 331 #define MDIO_PHYXS_PKGID1 14 /* PHY XS package identifier 1 */ 332 #define MDIO_PHYXS_PKGID2 15 /* PHY XS package identifier 2 */ 333 /* Values 16 to 19 are reserved */ 334 #define MDIO_PHYXS_EEECAP 20 /* EEE capability register (802.3az) */ 335 /* Value 21 is reserved */ 336 #define MDIO_PHYXS_EEEWKERRCNT 22 /* EEE wake error counter (802.3az) */ 337 /* Value 23 is reserved */ 338 #define MDIO_PHYXS_10GXGXLNSTAT 24 /* 10G-X PHY XGXS lane status */ 339 #define MDIO_PHYXS_10GXGXSTSCTRL 25 /* 10G-X PHY XGXS test control */ 340 /* Values 26 to 32767 are reserved */ 341 /* Values 32768 to 65535 are vendor specific */ 342 343 /* 344 * MDIO DTE XS registers. 345 * Table 45-115 346 */ 347 #define MDIO_DTEXS_CTRL1 0 /* DTE XS control 1 */ 348 #define MDIO_DTEXS_STAT1 1 /* DTE XS status 1 */ 349 #define MDIO_DTEXS_DEVID1 2 /* DTE XS device identifier 1 */ 350 #define MDIO_DTEXS_DEVID2 3 /* DTE XS device identifier 2 */ 351 #define MDIO_DTEXS_SPEED 4 /* DTE XS speed ability */ 352 #define MDIO_DTEXS_DEVS1 5 /* DTE XS devices in package 1 */ 353 #define MDIO_DTEXS_DEVS2 6 /* DTE XS devices in package 2 */ 354 /* Value 7 is reserved */ 355 #define MDIO_DTEXS_STAT2 8 /* DTE XS status 2 */ 356 /* Values 9 to 13 are reserved */ 357 #define MDIO_DTEXS_PKGID1 14 /* DTE XS package identifier 1 */ 358 #define MDIO_DTEXS_PKGID2 15 /* DTE XS package identifier 2 */ 359 /* Values 16 to 19 are reserved */ 360 #define MDIO_DTEXS_EEECAP 20 /* EEE capability register (802.3az) */ 361 /* Value 21 is reserved */ 362 #define MDIO_DTEXS_EEEWKERRCNT 22 /* EEE wake error counter (802.3az) */ 363 /* Value 23 is reserved */ 364 #define MDIO_DTEXS_10GXGXLNSTAT 24 /* 10G DTE XGXS lane status */ 365 #define MDIO_DTEXS_10GXGXSTSCTRL 25 /* 10G DTE XGXS test control */ 366 /* Values 26 to 32767 are reserved */ 367 /* Values 32768 to 65535 are vendor specific */ 368 369 /* 370 * MDIO TC registers. 371 * Table 45-122 372 */ 373 #define MDIO_TC_CTRL1 0 /* TC control 1 */ 374 /* Value 1 is reserved */ 375 #define MDIO_TC_DEVID1 2 /* TC device identifier 1 */ 376 #define MDIO_TC_DEVID2 3 /* TC device identifier 2 */ 377 #define MDIO_TC_SPEED 4 /* TC speed ability */ 378 #define MDIO_TC_DEVS1 5 /* TC devices in package 1 */ 379 #define MDIO_TC_DEVS2 6 /* TC devices in package 2 */ 380 /* Values 7 to 13 are reserved */ 381 #define MDIO_TC_PKGID1 14 /* TC package identifier 1 */ 382 #define MDIO_TC_PKGID2 15 /* TC package identifier 2 */ 383 #define MDIO_TC_10P2BAGGDCCTRL 16 /* 10P/2B aggregation discovery ctrl */ 384 #define MDIO_TC_10P2BAGGDCSTAT 17 /* 10P/2B aggregation&discovery stat */ 385 #define MDIO_TC_10P2BAGGDCCODE1 18 /* 10P/2B aggregation discovery code1*/ 386 #define MDIO_TC_10P2BAGGDCCODE2 19 /* 10P/2B aggregation discovery code2*/ 387 #define MDIO_TC_10P2BAGGDCCODE3 20 /* 10P/2B aggregation discovery code3*/ 388 #define MDIO_TC_10P2BLPPMEAGGCTRL 21 /* 10P/2B LP PME aggregate control */ 389 #define MDIO_TC_10P2BLPPMEAGGDAT1 22 /* 10P/2B LP PME aggregate data 1 */ 390 #define MDIO_TC_10P2BLPPMEAGGDAT2 23 /* 10P/2B LP PME aggregate data 2 */ 391 #define MDIO_TC_10P2BCRCERRCNT 24 /* 10P/2B TC CRC error counter */ 392 #define MDIO_TC_10P2BTPSCOVIOCNT1 25 /* 10P/2B TPS-TC coding viol. cnt. 1 */ 393 #define MDIO_TC_10P2BTPSCOVIOCNT2 26 /* 10P/2B TPS-TC coding viol. cnt. 2 */ 394 #define MDIO_TC_10P2BINDIC 27 /* 10P/2B TC indications */ 395 /* Values 28 to 32767 are reserved */ 396 /* Values 32768 to 65535 are vendor specific */ 397 398 /* 399 * MDIO Auto-Negotiation registers. 400 * Table 45-133 401 */ 402 #define MDIO_AN_CTRL1 0 /* AN control 1 */ 403 #define MDIO_AN_STAT1 1 /* AN status 1 */ 404 #define MDIO_AN_DEVID1 2 /* AN device identifier 1 */ 405 #define MDIO_AN_DEVID2 3 /* AN device identifier 2 */ 406 /* Value 4 is reserved */ 407 #define MDIO_AN_DEVS1 5 /* AN devices in package 1 */ 408 #define MDIO_AN_DEVS2 6 /* AN devices in package 2 */ 409 /* Values 7 to 13 are reserved */ 410 #define MDIO_AN_PKGID1 14 /* AN package identifier 1 */ 411 #define MDIO_AN_PKGID2 15 /* AN package identifier 2 */ 412 #define MDIO_AN_ADVERT1 16 /* AN advertisement 1 */ 413 #define MDIO_AN_ADVERT2 17 /* AN advertisement 2 */ 414 #define MDIO_AN_ADVERT3 18 /* AN advertisement 3 */ 415 #define MDIO_AN_LPBPABLTY1 19 /* AN LP base page ability 1 */ 416 #define MDIO_AN_LPBPABLTY2 20 /* AN LP base page ability 2 */ 417 #define MDIO_AN_LPBPABLTY3 21 /* AN LP base page ability 3 */ 418 #define MDIO_AN_XNPXMIT1 22 /* AN XNP transmit 1 */ 419 #define MDIO_AN_XNPXMIT2 23 /* AN XNP transmit 2 */ 420 #define MDIO_AN_XNPXMIT3 24 /* AN XNP transmit 3 */ 421 #define MDIO_AN_LPXNPABLTY1 25 /* AN LP XNP ability 1 */ 422 #define MDIO_AN_LPXNPABLTY2 26 /* AN LP XNP ability 2 */ 423 #define MDIO_AN_LPXNPABLTY3 27 /* AN LP XNP ability 3 */ 424 /* Values 28 to 31 are reserved */ 425 #define MDIO_AN_10GTANCTRL 32 /* 10G-T AN control */ 426 #define MDIO_AN_10GTANSTAT 33 /* 10G-T AN status */ 427 /* Values 34 to 47 are reserved */ 428 #define MDIO_AN_BPETHSTAT 48 /* BP Ethernet status */ 429 /* Values 49 to 59 are reserved */ 430 #define MDIO_PCS_EEEADVERT 60 /* EEE advertisement (802.3az) */ 431 #define MDIO_PCS_EEELPABLTY 61 /* EEE LP ability (802.3az) */ 432 /* Values 62 to 32767 are reserved */ 433 /* Values 32768 to 65535 are vendor specific */ 434 435 /* 436 * MDIO Clause 22 extension registers. 437 * Table 45-143 438 */ 439 /* Values 0 to 4 are reserved */ 440 #define MDIO_CL22E_DEVS1 5 /* Clause 22 ext. devices in package 1 */ 441 #define MDIO_CL22E_DEVS2 6 /* Clause 22 ext. devices in package 2 */ 442 #define MDIO_CL22E_FECCAP 7 /* FEC capability */ 443 #define MDIO_CL22E_FECCTRL 8 /* FEC control */ 444 #define MDIO_CL22E_FECBHCVIOCNT 9 /* FEC buffer head coding violation cnt. */ 445 #define MDIO_CL22E_FECCOBLCNT 10 /* FEC corrected blocks counter */ 446 #define MDIO_CL22E_FECUNCOBLCNT 11 /* FEC uncorrected blocks counter */ 447 /* Values 12 to 32767 are reserved */ 448 449 /* 450 * MDIO Vendor specific MMD 1 registers. 451 * Table 45-149 452 */ 453 /* Values 0 to 1 are vendor specific */ 454 #define MDIO_VSMMD1_DEVID1 2 /* Vendor specific MMD 1 device ident. 1 */ 455 #define MDIO_VSMMD1_DEVID2 3 /* Vendor specific MMD 1 device ident. 2 */ 456 /* Values 4 to 7 are vendor specific */ 457 #define MDIO_VSMMD1_STAT 8 /* Vendor specific MMD 1 status register */ 458 /* Values 9 to 13 are vendor specific */ 459 #define MDIO_VSMMD1_PKGID1 14 /* Vendor specific MMD 1 package ident 1 */ 460 #define MDIO_VSMMD1_PKGID2 15 /* Vendor specific MMD 1 package ident 2 */ 461 /* Values 16 to 65535 are vendor specific */ 462 463 /* 464 * MDIO Vendor specific MMD 2 registers. 465 * Table 45-152 466 */ 467 /* Values 0 to 1 are vendor specific */ 468 #define MDIO_VSMMD2_DEVID1 2 /* Vendor specific MMD 2 device ident. 1 */ 469 #define MDIO_VSMMD2_DEVID2 3 /* Vendor specific MMD 2 device ident. 2 */ 470 /* Values 4 to 7 are vendor specific */ 471 #define MDIO_VSMMD2_STAT 8 /* Vendor specific MMD 2 status register */ 472 /* Values 9 to 13 are vendor specific */ 473 #define MDIO_VSMMD2_PKGID1 14 /* Vendor specific MMD 2 package ident 1 */ 474 #define MDIO_VSMMD2_PKGID2 15 /* Vendor specific MMD 2 package ident 2 */ 475 /* Values 16 to 65535 are vendor specific */ 476 477 #endif /* _DEV_MII_MDIO_H_ */ 478