1 /* $NetBSD: mdio.h,v 1.10 2019/01/07 01:37:05 msaitoh Exp $ */ 2 3 /*- 4 * Copyright (c) 2013 The NetBSD Foundation, Inc. 5 * All rights reserved. 6 * 7 * This code is derived from software contributed to The NetBSD Foundation 8 * by Masanobu SAITOH. 9 * 10 * Redistribution and use in source and binary forms, with or without 11 * modification, are permitted provided that the following conditions 12 * are met: 13 * 1. Redistributions of source code must retain the above copyright 14 * notice, this list of conditions and the following disclaimer. 15 * 2. Redistributions in binary form must reproduce the above copyright 16 * notice, this list of conditions and the following disclaimer in the 17 * documentation and/or other materials provided with the distribution. 18 * 19 * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 20 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 21 * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 22 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 23 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 24 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 25 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 26 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 27 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 28 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 29 * POSSIBILITY OF SUCH DAMAGE. 30 */ 31 32 #ifndef _DEV_MII_MDIO_H_ 33 #define _DEV_MII_MDIO_H_ 34 35 /* 36 * IEEE 802.3 Clause 45 definitions. 37 * From: 38 * IEEE 802.3 2015 39 * IEEE 802.3at 40 * IEEE 802.3av 41 */ 42 43 /* 44 * MDIO Manageable Device (MMD) addresses. 45 * Table 45-1 46 */ 47 #define MDIO_MMD_PMAPMD 1 48 #define MDIO_MMD_WIS 2 49 #define MDIO_MMD_PCS 3 50 #define MDIO_MMD_PHYXS 4 51 #define MDIO_MMD_DTEXS 5 52 #define MDIO_MMD_TC 6 53 #define MDIO_MMD_AN 7 54 #define MDIO_MMD_SEPPMA1 8 55 #define MDIO_MMD_SEPPMA2 9 56 #define MDIO_MMD_SEPPMA3 10 57 #define MDIO_MMD_SEPPMA4 11 58 #define MDIO_MMD_CL22EXT 29 59 #define MDIO_MMD_VNDSP1 30 60 #define MDIO_MMD_VNDSP2 31 61 62 /* 63 * PMA/PMD registers. 64 * Table 45-3 65 */ 66 #define MDIO_PMAPMD_CTRL1 0 /* PMA/PMD control 1 */ 67 #define PMAPMD_CTRL1_RESET 0x8000 /* Reset */ 68 #define PMAPMD_CTRL1_SPEED0 0x2000 /* Speed selection (LSB) */ 69 #define PMAPMD_CTRL1_LOWPWR 0x0800 /* Low power */ 70 #define PMAPMD_CTRL1_SPEED1 0x0040 /* Speed selection (MSB) */ 71 #define PMAPMD_CTRL1_SPEED2 0x003c /* Speed selection (over 1G) */ 72 #define PMAPMD_CTRL1_LOOP_REM 0x0002 /* PMA remote loopback */ 73 #define PMAPMD_CTRL1_LOOP_LOC 0x0001 /* PMA local loopback */ 74 #define PMAPMD_CTRL1_SPEED_SEL52 (PMAPMD_CTRL1_SPEED0 | PMAPMD_CTRL1_SPEED1) 75 #define PMAPMD_CTRL1_SPEED_MASK (PMAPMD_CTRL1_SPEED_SEL52 \ 76 | PMAPMD_CTRL1_SPEED2) 77 #define PMAPMD_CTRL1_SPEED_10 0 78 #define PMAPMD_CTRL1_SPEED_100 PMAPMD_CTRL1_SPEED0 79 #define PMAPMD_CTRL1_SPEED_1G PMAPMD_CTRL1_SPEED1 80 #define PMAPMD_CTRL1_SPEED_10G PMAPMD_CTRL1_SPEED_SEL52 81 #define PMAPMD_CTRL1_SPEED_10PASS (PMAPMD_CTRL1_SPEED_SEL52 | (1 << 2)) 82 #define PMAPMD_CTRL1_SPEED_40G (PMAPMD_CTRL1_SPEED_SEL52 | (2 << 2)) 83 #define PMAPMD_CTRL1_SPEED_100G (PMAPMD_CTRL1_SPEED_SEL52 | (3 << 2)) 84 #define PMAPMD_CTRL1_SPEED_25G (PMAPMD_CTRL1_SPEED_SEL52 | (4 << 2)) 85 #define PMAPMD_CTRL1_SPEED_2_5G (PMAPMD_CTRL1_SPEED_SEL52 | (6 << 2)) 86 #define PMAPMD_CTRL1_SPEED_5G (PMAPMD_CTRL1_SPEED_SEL52 | (7 << 2)) 87 88 #define MDIO_PMAPMD_STAT1 1 /* PMA/PMD status 1 */ 89 #define MDIO_PMAPMD_DEVID1 2 /* PMA/PMD device identifier 1 */ 90 #define MDIO_PMAPMD_DEVID2 3 /* PMA/PMD device identifier 2 */ 91 #define MDIO_PMAPMD_SPEED 4 /* PMA/PMD speed ability */ 92 #define MDIO_PMAPMD_DEVS1 5 /* PMA/PMD devices in package 1 */ 93 #define MDIO_PMAPMD_DEVS2 6 /* PMA/PMD devices in package 2 */ 94 95 #define MDIO_PMAPMD_CTRL2 7 /* PMA/PMD control 2 */ 96 #define PMAPMD_CTRL2_PIASE 0x0200 97 #define PMAPMD_CTRL2_PEASE 0x0100 98 #define PMAPMD_CTRL2_TYPE_MASK 0x003f 99 #define PMAPMD_CTRL2_TYPE_100G_SR4 0x2f 100 #define PMAPMD_CTRL2_TYPE_100G_CR4 0x2e 101 #define PMAPMD_CTRL2_TYPE_100G_KR4 0x2d 102 #define PMAPMD_CTRL2_TYPE_100G_KP4 0x2c 103 #define PMAPMD_CTRL2_TYPE_100G_ER4 0x2b 104 #define PMAPMD_CTRL2_TYPE_100G_LR4 0x2a 105 #define PMAPMD_CTRL2_TYPE_100G_SR10 0x29 106 #define PMAPMD_CTRL2_TYPE_100G_CR10 0x28 107 #define PMAPMD_CTRL2_TYPE_40G_ER4 0x25 108 #define PMAPMD_CTRL2_TYPE_40G_FR 0x24 109 #define PMAPMD_CTRL2_TYPE_40G_LR 0x23 110 #define PMAPMD_CTRL2_TYPE_40G_SR4 0x22 111 #define PMAPMD_CTRL2_TYPE_40G_CR4 0x21 112 #define PMAPMD_CTRL2_TYPE_40G_KR4 0x20 113 #define PMAPMD_CTRL2_TYPE_10_1G_PRX_U4 0x1f 114 #define PMAPMD_CTRL2_TYPE_10G_PR_U4 0x1e 115 #define PMAPMD_CTRL2_TYPE_10_1G_PRX_D4 0x1d 116 #define PMAPMD_CTRL2_TYPE_10G_PR_D4 0x1c 117 #define PMAPMD_CTRL2_TYPE_10G_PR_U3 0x1a 118 #define PMAPMD_CTRL2_TYPE_10G_PR_U1 0x19 119 #define PMAPMD_CTRL2_TYPE_10_1G_PRX_U3 0x18 120 #define PMAPMD_CTRL2_TYPE_10_1G_PRX_U2 0x17 121 #define PMAPMD_CTRL2_TYPE_10_1G_PRX_U1 0x16 122 #define PMAPMD_CTRL2_TYPE_10G_PR_D3 0x15 123 #define PMAPMD_CTRL2_TYPE_10G_PR_D2 0x14 124 #define PMAPMD_CTRL2_TYPE_10G_PR_D1 0x13 125 #define PMAPMD_CTRL2_TYPE_10_1G_PRX_D3 0x12 126 #define PMAPMD_CTRL2_TYPE_10_1G_PRX_D2 0x11 127 #define PMAPMD_CTRL2_TYPE_10_1G_PRX_D1 0x10 128 #define PMAPMD_CTRL2_TYPE_10_T 0x0f 129 #define PMAPMD_CTRL2_TYPE_100_TX 0x0e 130 #define PMAPMD_CTRL2_TYPE_1000_KX 0x0d 131 #define PMAPMD_CTRL2_TYPE_1000_T 0x0c 132 #define PMAPMD_CTRL2_TYPE_10G_KR 0x0b 133 #define PMAPMD_CTRL2_TYPE_10G_KX4 0x0a 134 #define PMAPMD_CTRL2_TYPE_10G_T 0x09 135 #define PMAPMD_CTRL2_TYPE_10G_LRM 0x08 136 #define PMAPMD_CTRL2_TYPE_10G_SR 0x07 137 #define PMAPMD_CTRL2_TYPE_10G_LR 0x06 138 #define PMAPMD_CTRL2_TYPE_10G_ER 0x05 139 #define PMAPMD_CTRL2_TYPE_10G_LX4 0x04 140 #define PMAPMD_CTRL2_TYPE_10G_SW 0x03 141 #define PMAPMD_CTRL2_TYPE_10G_LW 0x02 142 #define PMAPMD_CTRL2_TYPE_10G_EW 0x01 143 #define PMAPMD_CTRL2_TYPE_10G_CX4 0x00 144 145 #define MDIO_PMAPMD_10GSTAT2 8 /* 10G PMA/PMD status 2 */ 146 #define MDIO_PMAPMD_10GTXDIS 9 /* 10G PMA/PMD transmit disable */ 147 #define MDIO_PMAPMD_RXSIGDTCT 10 /* 10G PMD receive signal detect */ 148 #define MDIO_PMAPMD_EXTABLTY 11 /* 10G PMA/PMD ext. ability reg */ 149 #define MDIO_PMAPMD_P2MPABLTY 12 /* P2MP ability register(802.3av)*/ 150 #define MDIO_PMAPMD_40G100GEXTABLTY 13 /* 40G/100G extended ability */ 151 #define MDIO_PMAPMD_PKGID1 14 /* PMA/PMD package identifier 1 */ 152 #define MDIO_PMAPMD_PKGID2 15 /* PMA/PMD package identifier 2 */ 153 #define MDIO_PMAPMD_EEECAP 16 /* PMA/PMD EEE capability */ 154 /* Values 17 to 29 are reserved */ 155 #define MDIO_PMAPMD_10P2BCTRL 30 /* 10P/2B PMA/PMD control */ 156 #define MDIO_PMAPMD_10P2BSTAT 31 /* 10P/2B PMA/PMD status */ 157 #define MDIO_PMAPMD_10P2BLPCTRL 32 /* 10P/2B link partner PMA/D ctrl*/ 158 #define MDIO_PMAPMD_10P2BLPSTAT 33 /* 10P/2B link partner PMA/D stat*/ 159 /* Values 34 to 35 are reserved */ 160 #define MDIO_PMAPMD_10P2BLLOSCNT 36 /* 10P/2B link loss counter */ 161 #define MDIO_PMAPMD_10P2BRXSNMGN 37 /* 10P/2B RX SNR margin */ 162 #define MDIO_PMAPMD_10P2BLPRXSNMG 38 /* 10P/2B link partner RX SNR mgn*/ 163 #define MDIO_PMAPMD_10P2BLINEATTN 39 /* 10P/2B line attenuation */ 164 #define MDIO_PMAPMD_10P2BLPLINEATTN 40 /* 10P/2B link partner line atten*/ 165 #define MDIO_PMAPMD_10P2BLQTHRES 41 /* 10P/2B line quality thresholds*/ 166 #define MDIO_PMAPMD_10P2BLPLQLTHRES 42 /* 10P/2B link partner LQ thresh.*/ 167 #define MDIO_PMAPMD_10PFECCOERRS 43 /* 10P FEC correctable errors cnt*/ 168 #define MDIO_PMAPMD_10PFECUNCOERRS 44 /* 10P FEC uncorrectable err cnt*/ 169 #define MDIO_PMAPMD_10PLPFECCOERRS 45 /* 10P LP FEC correctable err cnt*/ 170 #define MDIO_PMAPMD_10PLPFECUNCOERRS 46 /* 10P LP FEC uncorrectable errcn*/ 171 #define MDIO_PMAPMD_10PELECLENGTH 47 /* 10P electrical length */ 172 #define MDIO_PMAPMD_10PLPELECLENGTH 48 /* 10P LP electrical length */ 173 #define MDIO_PMAPMD_10PGENCONFIG 49 /* 10P PMA/PMD general config. */ 174 #define MDIO_PMAPMD_10PPSDCONFIG 50 /* 10P PSD configuration */ 175 #define MDIO_PMAPMD_10PDSDRCONF1 51 /* 10P downstream data rate cnf1 */ 176 #define MDIO_PMAPMD_10PDSDRCONF2 52 /* 10P downstream data rate cnf2 */ 177 #define MDIO_PMAPMD_10PDSRSCONF 53 /* 10P downstream ReedSolomon cnf*/ 178 #define MDIO_PMAPMD_10PUSDR1 54 /* 10P upstream data rate cnf1 */ 179 #define MDIO_PMAPMD_10PUSDR2 55 /* 10P upstream data rate cnf2 */ 180 #define MDIO_PMAPMD_10PUSRSCONF 56 /* 10P upstream ReedSolomon cnf */ 181 #define MDIO_PMAPMD_10PTONEGROUP1 57 /* 10P tone group 1 */ 182 #define MDIO_PMAPMD_10PTONEGROUP2 58 /* 10P tone group 2 */ 183 #define MDIO_PMAPMD_10PTONEPARAM1 59 /* 10P tone parameter 1 */ 184 #define MDIO_PMAPMD_10PTONEPARAM2 60 /* 10P tone parameter 2 */ 185 #define MDIO_PMAPMD_10PTONEPARAM3 61 /* 10P tone parameter 3 */ 186 #define MDIO_PMAPMD_10PTONEPARAM4 62 /* 10P tone parameter 4 */ 187 #define MDIO_PMAPMD_10PTONEPARAM5 63 /* 10P tone parameter 5 */ 188 #define MDIO_PMAPMD_10PTONECTLACTN 64 /* 10P tone control action */ 189 #define MDIO_PMAPMD_10PTONESTAT1 65 /* 10P tone status 1 */ 190 #define MDIO_PMAPMD_10PTONESTAT2 66 /* 10P tone status 2 */ 191 #define MDIO_PMAPMD_10PTONESTAT3 67 /* 10P tone status 3 */ 192 #define MDIO_PMAPMD_10POUTINDICAT 68 /* 10P outgoing indicator bits */ 193 #define MDIO_PMAPMD_10PININDICAT 69 /* 10P incoming indicator bits */ 194 #define MDIO_PMAPMD_10PCYCLICEXTCNF 70 /* 10P cyclic extension config. */ 195 #define MDIO_PMAPMD_10PATTAINDSDR 71 /* 10P attainable downstream DR */ 196 /* Values 72 to 79 are reserved */ 197 #define MDIO_PMAPMD_2BGENPARAM 80 /* 2B general parameter */ 198 #define MDIO_PMAPMD_2BPMDPARAM1 81 /* 2B PMD parameter 1 */ 199 #define MDIO_PMAPMD_2BPMDPARAM2 82 /* 2B PMD parameter 2 */ 200 #define MDIO_PMAPMD_2BPMDPARAM3 83 /* 2B PMD parameter 3 */ 201 #define MDIO_PMAPMD_2BPMDPARAM4 84 /* 2B PMD parameter 4 */ 202 #define MDIO_PMAPMD_2BPMDPARAM5 85 /* 2B PMD parameter 5 */ 203 #define MDIO_PMAPMD_2BPMDPARAM6 86 /* 2B PMD parameter 6 */ 204 #define MDIO_PMAPMD_2BPMDPARAM7 87 /* 2B PMD parameter 7 */ 205 #define MDIO_PMAPMD_2BPMDPARAM8 88 /* 2B PMD parameter 8 */ 206 #define MDIO_PMAPMD_2BCODEVIOERRCNT 89 /* 2B code violation errors cnt. */ 207 #define MDIO_PMAPMD_2BLPCODEVIOERR 90 /* 2B LP code violation errors */ 208 #define MDIO_PMAPMD_2BERRSECCNT 91 /* 2B errored seconds counter */ 209 #define MDIO_PMAPMD_2BLPERRSEC 92 /* 2B LP errored seconds */ 210 #define MDIO_PMAPMD_2BSEVERRSECCNT 93 /* 2B severely errored seconds cn*/ 211 #define MDIO_PMAPMD_2BLPSEVERRSECCNT 94 /* 2B LP severely errored secs cn*/ 212 #define MDIO_PMAPMD_2BLOSWCNT 95 /* 2B LOSW counter */ 213 #define MDIO_PMAPMD_2BLPLOSW 96 /* 2B LP LOSW */ 214 #define MDIO_PMAPMD_2BUNAVSECCNT 97 /* 2B unavailable seconds counter*/ 215 #define MDIO_PMAPMD_2BLPUNAVSECCNT 98 /* 2B LP unavailable seconds cnt */ 216 #define MDIO_PMAPMD_2BSTATDEFECT 99 /* 2B state defects */ 217 #define MDIO_PMAPMD_2BLPSTATDEFECT 100 /* 2B LP state defects */ 218 #define MDIO_PMAPMD_2BNEGOCONSTEL 101 /* 2B negotiated constellation */ 219 #define MDIO_PMAPMD_2BEXTPMDPARAM1 102 /* 2B extended PMD parameters 1 */ 220 #define MDIO_PMAPMD_2BEXTPMDPARAM2 103 /* 2B extended PMD parameters 2 */ 221 #define MDIO_PMAPMD_2BEXTPMDPARAM3 104 /* 2B extended PMD parameters 3 */ 222 #define MDIO_PMAPMD_2BEXTPMDPARAM4 105 /* 2B extended PMD parameters 4 */ 223 #define MDIO_PMAPMD_2BEXTPMDPARAM5 106 /* 2B extended PMD parameters 5 */ 224 #define MDIO_PMAPMD_2BEXTPMDPARAM6 107 /* 2B extended PMD parameters 6 */ 225 #define MDIO_PMAPMD_2BEXTPMDPARAM7 108 /* 2B extended PMD parameters 7 */ 226 #define MDIO_PMAPMD_2BEXTPMDPARAM8 109 /* 2B extended PMD parameters 8 */ 227 /* Values 110 to 128 are reserved */ 228 #define MDIO_PMAPMD_10GTSTAT 129 /* 10GBASE-T status */ 229 #define MDIO_PMAPMD_10GTPASWPOLAR 130 /* 10G-T pair swap & polarity */ 230 #define MDIO_PMAPMD_10GTTXPWBOSHRCH 131 /* 10G-T PWR backoff&PHY shrt rch*/ 231 #define MDIO_PMAPMD_10GTTSTMODE 132 /* 10G-T test mode */ 232 #define MDIO_PMAPMD_10GTSNROMARGA 133 /* 10G-T SNR operating margin chA*/ 233 #define MDIO_PMAPMD_10GTSNROMARGB 134 /* 10G-T SNR operating margin chB*/ 234 #define MDIO_PMAPMD_10GTSNROMARGC 135 /* 10G-T SNR operating margin chC*/ 235 #define MDIO_PMAPMD_10GTSNROMARGD 136 /* 10G-T SNR operating margin chD*/ 236 #define MDIO_PMAPMD_10GTMINMARGA 137 /* 10G-T minimum margin ch. A */ 237 #define MDIO_PMAPMD_10GTMINMARGB 138 /* 10G-T minimum margin ch. B */ 238 #define MDIO_PMAPMD_10GTMINMARGC 139 /* 10G-T minimum margin ch. C */ 239 #define MDIO_PMAPMD_10GTMINMARGD 140 /* 10G-T minimum margin ch. D */ 240 #define MDIO_PMAPMD_10GTSIGPWRA 141 /* 10G-T RX signal power ch. A */ 241 #define MDIO_PMAPMD_10GTSIGPWRB 142 /* 10G-T RX signal power ch. B */ 242 #define MDIO_PMAPMD_10GTSIGPWRC 143 /* 10G-T RX signal power ch. C */ 243 #define MDIO_PMAPMD_10GTSIGPWRD 144 /* 10G-T RX signal power ch. D */ 244 #define MDIO_PMAPMD_10GTSKEWDLY1 145 /* 10G-T skew delay 1 */ 245 #define MDIO_PMAPMD_10GTSKEWDLY2 146 /* 10G-T skew delay 2 */ 246 #define MDIO_PMAPMD_10GTFSTRETSTATCTRL 147 /* 10G-T fast retrain stat&ctrl */ 247 /* Values 148 to 149 are reserved */ 248 #define MDIO_PMAPMD_BASERPMDCTRL 150 /* BASE-R PMD control */ 249 #define MDIO_PMAPMD_BASERPMDSTAT 151 /* BASE-R PMD status */ 250 #define MDIO_PMAPMD_BASERLPCOEFUPDL0 152 /* BASE-R LP coeffici. update ln0*/ 251 #define MDIO_PMAPMD_BASERLPSTATRPTL0 153 /* BASE-R LP status report lane0 */ 252 #define MDIO_PMAPMD_BASERLDCOEFFUPDL0 154 /* BASE-R LD coeffici. update ln0*/ 253 #define MDIO_PMAPMD_BASERLDSTATRPTL0 155 /* BASE-R LD status report lane0 */ 254 #define MDIO_PMAPMD_BASERSTAT2 156 /* BASE-R PMD status 2 */ 255 #define MDIO_PMAPMD_BASERSTAT3 157 /* BASE-R PMD status 3 */ 256 /* Values 158 to 159 are reserved */ 257 #define MDIO_PMAPMD_1000KXCTRL 160 /* 1000BASE-KX control */ 258 #define MDIO_PMAPMD_1000KXSTAT 161 /* 1000BASE-KX status */ 259 #define MDIO_PMAPMD_PMAOVHDCTRL1 162 /* PMA Overhead Control 1 */ 260 #define MDIO_PMAPMD_PMAOVHDCTRL2 163 /* PMA Overhead Control 2 */ 261 #define MDIO_PMAPMD_PMAOVHDCTRL3 164 /* PMA Overhead Control 3 */ 262 #define MDIO_PMAPMD_PMAOVHDSTAT1 165 /* PMA Overhead Status 1 */ 263 #define MDIO_PMAPMD_PMAOVHDSTAT2 166 /* PMA Overhead Status 2 */ 264 /* Values 167 to 169 are reserved */ 265 #define MDIO_PMAPMD_BASERFECABLTY 170 /* BASE-R FEC ability */ 266 #define MDIO_PMAPMD_BASERFECCTRL 171 /* BASE-R FEC control */ 267 #define MDIO_PMAPMD_10GRFECCOBLCNTL 172 /* 10G-R FEC corrected blks cntL */ 268 #define MDIO_PMAPMD_10GRFECCOBLCNTH 173 /* 10G-R FEC corrected blks cntH */ 269 #define MDIO_PMAPMD_10GRFECUNCOBLCNTL 174 /* 10G-R FEC uncorrect blks cntL */ 270 #define MDIO_PMAPMD_10GRFECUNCOBLCNTH 175 /* 10G-R FEC uncorrect blks cntH */ 271 /* Values 176 to 178 are reserved */ 272 #define MDIO_PMAPMD_CAUI4C2MRECCTLE 179 /* CAUI-4 Chip2Mod recomme. CTLE */ 273 #define MDIO_PMAPMD_CAUI4C2CTERDIL0 180 /* CAUI-4 Ch2Ch TxEq RxDir lane0 */ 274 #define MDIO_PMAPMD_CAUI4C2CTERDIL1 181 /* lane1 */ 275 #define MDIO_PMAPMD_CAUI4C2CTERDIL2 182 /* lane2 */ 276 #define MDIO_PMAPMD_CAUI4C2CTERDIL3 183 /* lane3 */ 277 #define MDIO_PMAPMD_CAUI4C2CTETDEL0 184 /* CAUI-4 Ch2Ch TxEq TxDet lane0 */ 278 #define MDIO_PMAPMD_CAUI4C2CTETDEL1 185 /* lane1 */ 279 #define MDIO_PMAPMD_CAUI4C2CTETDEL2 186 /* lane2 */ 280 #define MDIO_PMAPMD_CAUI4C2CTETDEL3 187 /* lane3 */ 281 /* Values 188 to 199 are reserved */ 282 #define MDIO_PMAPMD_RSFECCTRL 200 /* RS-FEC Control */ 283 #define MDIO_PMAPMD_RSFECSTAT 201 /* RS-FEC Status */ 284 #define MDIO_PMAPMD_RSFECCORRCWCNTL 202 /* RS-FEC correct. codeword cntL */ 285 #define MDIO_PMAPMD_RSFECCORRCWCNTH 203 /* RS-FEC correct. codeword cntH */ 286 #define MDIO_PMAPMD_RSFECUNCORRCWCNTL 204 /* RS-FEC uncorre. codeword cntL */ 287 #define MDIO_PMAPMD_RSFECUNCORRCWCNTH 205 /* RS-FEC uncorre. codeword cntH */ 288 #define MDIO_PMAPMD_RSFECLANEMAP 206 /* RS-FEC Lane Mapping */ 289 /* Values 207 to 209 are reserved */ 290 #define MDIO_PMAPMD_RSFECSMBLERRCNTL(x) /* RS-FEC Symbol Error CntLow */ \ 291 (210 + ((x) * 2)) /* lane 0 to 3 */ 292 #define MDIO_PMAPMD_RSFECSMBLERRCNTH(x) /* RS-FEC Symbol Error CntHigh */ \ 293 (211 + ((x) * 2)) /* lane 0 to 3 */ 294 /* Values 218 to 229 are reserved */ 295 #define MDIO_PMAPMD_RSFECBIPERRCNT(x) /* RS-FEC BIP Error Counter */ \ 296 (230 + (x)) /* lane 0 to 19 */ 297 #define MDIO_PMAPMD_RSFECPCSLMAP(x) /* RS-FEC PCS Lane Mapping */ \ 298 (250 + (x)) /* lane 0 to 19 */ 299 /* Values 270 to 279 are reserved */ 300 #define MDIO_PMAPMD_RSFECPCSALGNSTAT1 280 /* RS-FEC PCS Alignment Status 1 */ 301 #define MDIO_PMAPMD_RSFECPCSALGNSTAT2 281 /* RS-FEC PCS Alignment Status 2 */ 302 #define MDIO_PMAPMD_RSFECPCSALGNSTAT3 282 /* RS-FEC PCS Alignment Status 3 */ 303 #define MDIO_PMAPMD_RSFECPCSALGNSTAT4 283 /* RS-FEC PCS Alignment Status 4 */ 304 /* Values 284 to 299 are reserved */ 305 #define MDIO_PMAPMD_BASERFECCORBLKCNTL(x) /* BASE-R FEC Corr. Blk. CntL */ \ 306 (300 + ((x) * 2)) /* lane0 to 19 */ 307 #define MDIO_PMAPMD_BASERFECCORBLKCNTH(x) /* BASE-R FEC Corr. Blk. CntH */ \ 308 (301 + ((x) * 2)) /* lane0 to 19 */ 309 /* Values 340 to 699 are reserved */ 310 #define MDIO_PMAPMD_BASERFECUNCORBLKCNTL(x) /* BASE-R FEC UnCorr. Blk. CntL*/ \ 311 (700 + ((x) * 2)) /* lane0 to 19 */ 312 #define MDIO_PMAPMD_BASERFECUNCORBLKCNTH(x) /* BASE-R FEC UnCorr. Blk. CntH*/ \ 313 (701 + ((x) * 2)) /* lane0 to 19 */ 314 /* Values 740 to 1099 are reserved */ 315 #define MDIO_PMAPMD_BASERLPCOEFUPD(x) /* BASE-R LP coefficient update */\ 316 (1100 + (x)) /* lane0 to 9 */ 317 /* Values 1110 to 1199 are reserved */ 318 #define MDIO_PMAPMD_BASERLPSTATRPT(x) /* BASE-R LP status report */ \ 319 (1200 + (x)) /* lane0 to 9 */ 320 /* Values 1210 to 1299 are reserved */ 321 #define MDIO_PMAPMD_BASERLDCOEFUPD(x) /* BASE-R LD coefficient update */\ 322 (1300 + (x)) /* lane0 to 9 */ 323 /* Values 1310 to 1399 are reserved */ 324 #define MDIO_PMAPMD_BASERLDSTATRPT(x) /* BASE-R LD status report */ \ 325 (1400 + (x)) /* lane0 to 9 */ 326 /* Values 1410 to 1449 are reserved */ 327 #define MDIO_PMAPMD_PMDTRAINPATTERN(x) /* PMD training pattern */ \ 328 (1450 + (x)) /* lane0 to 3 */ 329 /* Values 1454 to 1499 are reserved */ 330 #define MDIO_PMAPMD_TSTPAT 1500 /* Test-pattern ability */ 331 #define MDIO_PMAPMD_PRBSPATTSTCTRL 1501 /* PRBS pattern testing control */ 332 /* Values 1502 to 1509 are reserved */ 333 #define MDIO_PMAPMD_SQWVTSTCTRL 1510 /* Square wave testing control */ 334 /* Values 1511 to 1599 are reserved */ 335 #define MDIO_PMAPMD_PRBSTXERRCNT(x) /* PRBS Tx Error Counter */ \ 336 (1600 + (x)) /* lane0 to 9 */ 337 /* Values 1610 to 1699 are reserved */ 338 #define MDIO_PMAPMD_PRBSRXERRCNT(x) /* PRBS Rx Error Counter */ \ 339 (1700 + (x)) /* lane0 to 9 */ 340 /* Values 1710 to 1799 are reserved */ 341 #define MDIO_PMAPMD_TSYNCCAP 1800 /* TimeSync PMA/PMD capability */ 342 #define MDIO_PMAPMD_TSYNCTXMAXDLYL 1801 /* TimeSync PMAPMD TX MAXdelay L*/ 343 #define MDIO_PMAPMD_TSYNCTXMAXDLYH 1802 /* TimeSync PMAPMD TX MAXdelay H*/ 344 #define MDIO_PMAPMD_TSYNCTXMINDLYL 1803 /* TimeSync PMAPMD TX MINdelay L*/ 345 #define MDIO_PMAPMD_TSYNCTXMINDLYH 1804 /* TimeSync PMAPMD TX MINdelay H*/ 346 #define MDIO_PMAPMD_TSYNCRXMAXDLYL 1805 /* TimeSync PMAPMD RX MAXdelay L*/ 347 #define MDIO_PMAPMD_TSYNCRXMAXDLYH 1806 /* TimeSync PMAPMD RX MAXdelay H*/ 348 #define MDIO_PMAPMD_TSYNCRXMINDLYL 1807 /* TimeSync PMAPMD RX MINdelay L*/ 349 #define MDIO_PMAPMD_TSYNCRXMINDLYH 1808 /* TimeSync PMAPMD RX MINdelay H*/ 350 /* Values 1809 to 32767 are reserved */ 351 /* Values 32768 to 65535 are vendor specific */ 352 353 /* 354 * WIS registers. 355 * Table 45-99 356 */ 357 #define MDIO_WIS_CTRL1 0 /* WIS control 1 */ 358 #define MDIO_WIS_STAT1 1 /* WIS status 1 */ 359 #define MDIO_WIS_DEVID1 2 /* WIS device identifier 1 */ 360 #define MDIO_WIS_DEVID2 3 /* WIS device identifier 2 */ 361 #define MDIO_WIS_SPEED 4 /* WIS speed ability */ 362 #define MDIO_WIS_DEVS1 5 /* WIS devices in package 1 */ 363 #define MDIO_WIS_DEVS2 6 /* WIS devices in package 2 */ 364 #define MDIO_WIS_10GCTRL2 7 /* 10G WIS control 2 */ 365 #define MDIO_WIS_10GSTAT2 8 /* 10G WIS status 2 */ 366 #define MDIO_WIS_10GTSTERRCNT 9 /* 10G WIS test-pattern error counter*/ 367 /* Values 10 to 13 are reserved */ 368 #define MDIO_WIS_PKGID1 14 /* WIS package identifier 1 */ 369 #define MDIO_WIS_PKGID2 15 /* WIS package identifier 2 */ 370 /* Values 16 to 32 are reserved */ 371 #define MDIO_WIS_10GSTAT3 33 /* 10G WIS status 3 */ 372 /* Values 34 to 36 are reserved */ 373 #define MDIO_WIS_10GFARENDPBERRCNT 37 /* 10G WIS far end path block errcnt */ 374 /* Value 38 is reserved */ 375 #define MDIO_WIS_J1XMIT(x) /* 10G WIS J1 transmit */ \ 376 (39 + ((x) / 2))/* 0to15. L8=even, H8=odd */ 377 378 #define MDIO_WIS_J1RCV(x) /* 10G WIS J1 receive */ \ 379 (47 + ((x) / 2))/* 0to15. L8=even, H8=odd */ 380 #define MDIO_WIS_FARENDLBIPERR1 55 /* 10G WIS far end line BIP errors 1 */ 381 #define MDIO_WIS_FARENDLBIPERR2 56 /* 10G WIS far end line BIP errors 2 */ 382 #define MDIO_WIS_LBIPERR1 57 /* 10G WIS line BIP errors 1 */ 383 #define MDIO_WIS_LBIPERR2 58 /* 10G WIS line BIP errors 2 */ 384 #define MDIO_WIS_PBERRCNT 59 /* 10G WIS path block error count */ 385 #define MDIO_WIS_SECBIPERRCNT 60 /* 10G WIS section BIP error count */ 386 /* Values 61 to 63 are reserved */ 387 #define MDIO_WIS_J0XMIT(x) /* 10G WIS J0 transmit */ \ 388 (64 + ((x) / 2))/* 0to15. L8=even, H8=odd */ 389 390 #define MDIO_WIS_J0RCV(x) /* 10G WIS J0 receive */ \ 391 (72 + ((x) / 2))/* 0to15. L8=even, H8=odd */ 392 /* Values 80 to 1799 are reserved */ 393 #define MDIO_WIS_TSYNCCAP 1800 /* TimeSync WIS capability */ 394 #define MDIO_WIS_TSYNCTXMAXDLYL 1801 /* TimeSync WIS TX MAXdelay L*/ 395 #define MDIO_WIS_TSYNCTXMAXDLYH 1802 /* TimeSync WIS TX MAXdelay H*/ 396 #define MDIO_WIS_TSYNCTXMINDLYL 1803 /* TimeSync WIS TX MINdelay L*/ 397 #define MDIO_WIS_TSYNCTXMINDLYH 1804 /* TimeSync WIS TX MINdelay H*/ 398 #define MDIO_WIS_TSYNCRXMAXDLYL 1805 /* TimeSync WIS RX MAXdelay L*/ 399 #define MDIO_WIS_TSYNCRXMAXDLYH 1806 /* TimeSync WIS RX MAXdelay H*/ 400 #define MDIO_WIS_TSYNCRXMINDLYL 1807 /* TimeSync WIS RX MINdelay L*/ 401 #define MDIO_WIS_TSYNCRXMINDLYH 1808 /* TimeSync WIS RX MINdelay H*/ 402 /* Values 1809 to 32767 are reserved */ 403 /* Values 32768 to 65535 are vendor specific */ 404 405 /* 406 * PCS registers. 407 * Table 45-119 408 */ 409 #define MDIO_PCS_CTRL1 0 /* PCS control 1 */ 410 #define MDIO_PCS_STAT1 1 /* PCS status 1 */ 411 #define MDIO_PCS_DEVID1 2 /* PCS device identifier 1 */ 412 #define MDIO_PCS_DEVID2 3 /* PCS device identifier 2 */ 413 #define MDIO_PCS_SPEED 4 /* PCS speed ability */ 414 #define MDIO_PCS_DEVS1 5 /* PCS devices in package 1 */ 415 #define MDIO_PCS_DEVS2 6 /* PCS devices in package 2 */ 416 #define MDIO_PCS_10GCTRL2 7 /* 10G PCS control 2 */ 417 #define MDIO_PCS_10GSTAT2 8 /* 10G PCS status 2 */ 418 /* Values 9 to 13 are reserved */ 419 #define MDIO_PCS_PKGID1 14 /* PCS package identifier 1 */ 420 #define MDIO_PCS_PKGID2 15 /* PCS package identifier 2 */ 421 /* Values 16 to 19 are reserved */ 422 #define MDIO_PCS_EEECTRLCAP 20 /* EEE control and capability */ 423 /* Value 21 is reserved */ 424 #define MDIO_PCS_EEEWKERRCNT 22 /* EEE wake error counter */ 425 /* Value 23 is reserved */ 426 #define MDIO_PCS_10GXSTAT 24 /* 10G-X PCS status */ 427 #define MDIO_PCS_10GXSTSCTRL 25 /* 10G-X PCS test control */ 428 /* Values 26 to 31 are reserved */ 429 #define MDIO_PCS_BASERTSTAT1 32 /* BASE-R & 10G-T PCS status 1 */ 430 #define MDIO_PCS_BASERTSTAT2 33 /* BASE-R & 10G-T PCS status 2 */ 431 #define MDIO_PCS_10GRTPSEEDA(x) /* 10G-R PCS test pattern seed A */ \ 432 (34 + (x)) /* 0 to 3 */ 433 #define MDIO_PCS_10GRTPSEEDB /* 10G-R PCS test pattern seed B */ \ 434 (38 + (x)) /* 0 to 3 */ 435 #define MDIO_PCS_10GRTPCTRL 42 /* 10G-R PCS test pattern control */ 436 #define MDIO_PCS_10GRTPERRCNT 43 /* 10G-R PCS test pattern err counter*/ 437 #define MDIO_PCS_BERHIORDERCNT 44 /* BER high order counter */ 438 #define MDIO_PCS_ERRBHIORDERCNT 45 /* Errored blocks high order counter */ 439 /* Values 46 to 49 are reserved */ 440 #define MDIO_PCS_MLBRPCSALGNSTAT1 50 /* Mlt-lane BASE-R PCS Align. Stat1 */ 441 #define MDIO_PCS_MLBRPCSALGNSTAT2 51 /* Mlt-lane BASE-R PCS Align. Stat2 */ 442 #define MDIO_PCS_MLBRPCSALGNSTAT3 52 /* Mlt-lane BASE-R PCS Align. Stat3 */ 443 #define MDIO_PCS_MLBRPCSALGNSTAT4 53 /* Mlt-lane BASE-R PCS Align. Stat4 */ 444 /* Values 54 to 59 are reserved */ 445 #define MDIO_PCS_10P2BCAP 60 /* 10P/2B capability */ 446 #define MDIO_PCS_10P2BCTRL 61 /* 10P/2B PCS control */ 447 #define MDIO_PCS_10P2BPMEAVAIL1 62 /* 10P/2B PME available 1 */ 448 #define MDIO_PCS_10P2BPMEAVAIL2 63 /* 10P/2B PME available 2 */ 449 #define MDIO_PCS_10P2BPMEAGGRG1 64 /* 10P/2B PME aggregate 1 */ 450 #define MDIO_PCS_10P2BPMEAGGRG2 65 /* 10P/2B PME aggregate 2 */ 451 #define MDIO_PCS_10P2BPAFRXERRCNT 66 /* 10P/2B PAF RX error counter */ 452 #define MDIO_PCS_10P2BPAFSMLFRCNT 67 /* 10P/2B PAF small fragment counter */ 453 #define MDIO_PCS_10P2BPAFLARFLCNT 68 /* 10P/2B PAF large fragment counter */ 454 #define MDIO_PCS_10P2BPAFOVFLCNT 69 /* 10P/2B PAF overflow counter */ 455 #define MDIO_PCS_10P2BPAFBADFLCNT 70 /* 10P/2B PAF bad fragments counter */ 456 #define MDIO_PCS_10P2BPAFLSTFLCNT 71 /* 10P/2B PAF lost fragments counter */ 457 #define MDIO_PCS_10P2BPAFLSTSTFLCNT 72 /* 10P/2B PAF lost starts of fr. cnt */ 458 #define MDIO_PCS_10P2BPAFLSTENFLCNT 73 /* 10P/2B PAF lost ends of fr. count */ 459 #define MDIO_PCS_10GPRFECABLTY 74 /* 10G-PR & 10/1G-PRX FEC ability */ 460 #define MDIO_PCS_10GPRFECCTRL 75 /* 10G-PR & 10/1G-PRX FEC control */ 461 #define MDIO_PCS_10GPRCOFECCOCNT1 76 /*10(/1)G-PR(X) corrected FECcodecnt1*/ 462 #define MDIO_PCS_10GPRCOFECCOCNT2 77 /*10(/1)G-PR(X) corrected FECcodecnt2*/ 463 #define MDIO_PCS_10GPRUNCOFECCOCNT1 78 /*10(/1)G-PR(X)uncorrected FECcdecnt1*/ 464 #define MDIO_PCS_10GPRUNCOFECCOCNT2 79 /*10(/1)G-PR(X)uncorrected FECcdecnt2*/ 465 #define MDIO_PCS_10GPRBERMONTMRCTRL 80 /*10(/1)G-PR(X) BER monitor tmr ctrl */ 466 #define MDIO_PCS_10GPRBERMONSTAT 81 /*10(/1)G-PR(X) BER monitor status */ 467 #define MDIO_PCS_10GPRBERMONTHRCTRL 82 /*10(/1)G-PR(X) BER mntr thresh ctrl */ 468 /* Values 83 to 199 are reserved */ 469 #define MDIO_PCS_BIPERRCNT(x) /* BIP Error Counter */ \ 470 (200 + (x)) /* lane 0 to 19 */ 471 /* Values 220 to 399 are reserved */ 472 #define MDIO_PCS_PCSLMAP(x) /* PCS Lane Mapping */ \ 473 (400 + (x)) /* lane 0 to 19 */ 474 /* Values 420 to 1799 are reserved */ 475 #define MDIO_PCS_TSYNCCAP 1800 /* TimeSync PCS capability */ 476 #define MDIO_PCS_TSYNCTXMAXDLYL 1801 /* TimeSync PCS TX MAXdelay L*/ 477 #define MDIO_PCS_TSYNCTXMAXDLYH 1802 /* TimeSync PCS TX MAXdelay H*/ 478 #define MDIO_PCS_TSYNCTXMINDLYL 1803 /* TimeSync PCS TX MINdelay L*/ 479 #define MDIO_PCS_TSYNCTXMINDLYH 1804 /* TimeSync PCS TX MINdelay H*/ 480 #define MDIO_PCS_TSYNCRXMAXDLYL 1805 /* TimeSync PCS RX MAXdelay L*/ 481 #define MDIO_PCS_TSYNCRXMAXDLYH 1806 /* TimeSync PCS RX MAXdelay H*/ 482 #define MDIO_PCS_TSYNCRXMINDLYL 1807 /* TimeSync PCS RX MINdelay L*/ 483 #define MDIO_PCS_TSYNCRXMINDLYH 1808 /* TimeSync PCS RX MINdelay H*/ 484 /* Values 1809 to 32767 are reserved */ 485 /* Values 32768 to 65535 are vendor specific */ 486 487 /* 488 * PHY XS registers. 489 * Table 45-164 490 */ 491 #define MDIO_PHYXS_CTRL1 0 /* PHY XS control 1 */ 492 #define MDIO_PHYXS_STAT1 1 /* PHY XS status 1 */ 493 #define MDIO_PHYXS_DEVID1 2 /* PHY XS device identifier 1 */ 494 #define MDIO_PHYXS_DEVID2 3 /* PHY XS device identifier 2 */ 495 #define MDIO_PHYXS_SPEED 4 /* PHY XS speed ability */ 496 #define MDIO_PHYXS_DEVS1 5 /* PHY XS devices in package 1 */ 497 #define MDIO_PHYXS_DEVS2 6 /* PHY XS devices in package 2 */ 498 /* Value 7 is reserved */ 499 #define MDIO_PHYXS_STAT2 8 /* PHY XS status 2 */ 500 /* Values 9 to 13 are reserved */ 501 #define MDIO_PHYXS_PKGID1 14 /* PHY XS package identifier 1 */ 502 #define MDIO_PHYXS_PKGID2 15 /* PHY XS package identifier 2 */ 503 /* Values 16 to 19 are reserved */ 504 #define MDIO_PHYXS_EEECAP 20 /* EEE capability register */ 505 /* Value 21 is reserved */ 506 #define MDIO_PHYXS_EEEWKERRCNT 22 /* EEE wake error counter */ 507 /* Value 23 is reserved */ 508 #define MDIO_PHYXS_10GXGXLNSTAT 24 /* 10G-X PHY XGXS lane status */ 509 #define MDIO_PHYXS_10GXGXSTSCTRL 25 /* 10G-X PHY XGXS test control */ 510 /* Values 26 to 1799 are reserved */ 511 #define MDIO_PHYXS_TSYNCCSP 1800 /* TimeSync PHY XS capability */ 512 #define MDIO_PHYXS_TSYNCTXMAXDLYL 1801 /* TimeSync PHY XS TX MAX delay L */ 513 #define MDIO_PHYXS_TSYNCTXMAXDLYH 1802 /* TimeSync PHY XS TX MAX delay H */ 514 #define MDIO_PHYXS_TSYNCTXMINDLYL 1803 /* TimeSync PHY XS TX MIN delay L */ 515 #define MDIO_PHYXS_TSYNCTXMINDLYH 1804 /* TimeSync PHY XS TX MIN delay H */ 516 #define MDIO_PHYXS_TSYNCRXMAXDLYL 1805 /* TimeSync PHY XS RX MAX delay L */ 517 #define MDIO_PHYXS_TSYNCRXMAXDLYH 1806 /* TimeSync PHY XS RX MAX delay H */ 518 #define MDIO_PHYXS_TSYNCRXMINDLYL 1807 /* TimeSync PHY XS RX MIN delay L */ 519 #define MDIO_PHYXS_TSYNCRXMINDLYH 1808 /* TimeSync PHY XS RX MIN delay H */ 520 /* Values 1809 to 32767 are reserved */ 521 /* Values 32768 to 65535 are vendor specific */ 522 523 /* 524 * DTE XS registers. 525 * Table 45-175 526 */ 527 #define MDIO_DTEXS_CTRL1 0 /* DTE XS control 1 */ 528 #define MDIO_DTEXS_STAT1 1 /* DTE XS status 1 */ 529 #define MDIO_DTEXS_DEVID1 2 /* DTE XS device identifier 1 */ 530 #define MDIO_DTEXS_DEVID2 3 /* DTE XS device identifier 2 */ 531 #define MDIO_DTEXS_SPEED 4 /* DTE XS speed ability */ 532 #define MDIO_DTEXS_DEVS1 5 /* DTE XS devices in package 1 */ 533 #define MDIO_DTEXS_DEVS2 6 /* DTE XS devices in package 2 */ 534 /* Value 7 is reserved */ 535 #define MDIO_DTEXS_STAT2 8 /* DTE XS status 2 */ 536 /* Values 9 to 13 are reserved */ 537 #define MDIO_DTEXS_PKGID1 14 /* DTE XS package identifier 1 */ 538 #define MDIO_DTEXS_PKGID2 15 /* DTE XS package identifier 2 */ 539 /* Values 16 to 19 are reserved */ 540 #define MDIO_DTEXS_EEECAP 20 /* EEE capability register */ 541 /* Value 21 is reserved */ 542 #define MDIO_DTEXS_EEEWKERRCNT 22 /* EEE wake error counter */ 543 /* Value 23 is reserved */ 544 #define MDIO_DTEXS_10GXGXLNSTAT 24 /* 10G DTE XGXS lane status */ 545 #define MDIO_DTEXS_10GXGXSTSCTRL 25 /* 10G DTE XGXS test control */ 546 /* Values 26 to 1799 are reserved */ 547 #define MDIO_DTEXS_TSYNCCAP 1800 /* TimeSync DTE XS capability */ 548 #define MDIO_DTEXS_TSYNCTXMAXDLYL 1801 /* TimeSync DTE XS TX MAX delay L */ 549 #define MDIO_DTEXS_TSYNCTXMAXDLYH 1802 /* TimeSync DTE XS TX MAX delay H */ 550 #define MDIO_DTEXS_TSYNCTXMINDLYL 1803 /* TimeSync DTE XS TX MIN delay L */ 551 #define MDIO_DTEXS_TSYNCTXMINDLYH 1804 /* TimeSync DTE XS TX MIN delay H */ 552 #define MDIO_DTEXS_TSYNCRXMAXDLYL 1805 /* TimeSync DTE XS RX MAX delay L */ 553 #define MDIO_DTEXS_TSYNCRXMAXDLYH 1806 /* TimeSync DTE XS RX MAX delay H */ 554 #define MDIO_DTEXS_TSYNCRXMINDLYL 1807 /* TimeSync DTE XS RX MIN delay L */ 555 #define MDIO_DTEXS_TSYNCRXMINDLYH 1808 /* TimeSync DTE XS RX MIN delay H */ 556 /* Values 1809 to 32767 are reserved */ 557 /* Values 32768 to 65535 are vendor specific */ 558 559 /* 560 * TC registers. 561 * Table 45-186 562 */ 563 #define MDIO_TC_CTRL1 0 /* TC control 1 */ 564 /* Value 1 is reserved */ 565 #define MDIO_TC_DEVID1 2 /* TC device identifier 1 */ 566 #define MDIO_TC_DEVID2 3 /* TC device identifier 2 */ 567 #define MDIO_TC_SPEED 4 /* TC speed ability */ 568 #define MDIO_TC_DEVS1 5 /* TC devices in package 1 */ 569 #define MDIO_TC_DEVS2 6 /* TC devices in package 2 */ 570 /* Values 7 to 13 are reserved */ 571 #define MDIO_TC_PKGID1 14 /* TC package identifier 1 */ 572 #define MDIO_TC_PKGID2 15 /* TC package identifier 2 */ 573 #define MDIO_TC_10P2BAGGDCCTRL 16 /* 10P/2B aggregation discovery ctrl */ 574 #define MDIO_TC_10P2BAGGDCSTAT 17 /* 10P/2B aggregation&discovery stat */ 575 #define MDIO_TC_10P2BAGGDCCODE1 18 /* 10P/2B aggregation discovery code1*/ 576 #define MDIO_TC_10P2BAGGDCCODE2 19 /* 10P/2B aggregation discovery code2*/ 577 #define MDIO_TC_10P2BAGGDCCODE3 20 /* 10P/2B aggregation discovery code3*/ 578 #define MDIO_TC_10P2BLPPMEAGGCTRL 21 /* 10P/2B LP PME aggregate control */ 579 #define MDIO_TC_10P2BLPPMEAGGDAT1 22 /* 10P/2B LP PME aggregate data 1 */ 580 #define MDIO_TC_10P2BLPPMEAGGDAT2 23 /* 10P/2B LP PME aggregate data 2 */ 581 #define MDIO_TC_10P2BCRCERRCNT 24 /* 10P/2B TC CRC error counter */ 582 #define MDIO_TC_10P2BTPSCOVIOCNT1 25 /* 10P/2B TPS-TC coding viol. cnt. 1 */ 583 #define MDIO_TC_10P2BTPSCOVIOCNT2 26 /* 10P/2B TPS-TC coding viol. cnt. 2 */ 584 #define MDIO_TC_10P2BINDIC 27 /* 10P/2B TC indications */ 585 /* Values 28 to 1799 are reserved */ 586 #define MDIO_TC_TSYNCCAP 1800 /* TimeSync TC capability */ 587 #define MDIO_TC_TSYNCTXMAXDLYL 1801 /* TimeSync TC TX MAX delay L */ 588 #define MDIO_TC_TSYNCTXMAXDLYH 1802 /* TimeSync TC TX MAX delay H */ 589 #define MDIO_TC_TSYNCTXMINDLYL 1803 /* TimeSync TC TX MIN delay L */ 590 #define MDIO_TC_TSYNCTXMINDLYH 1804 /* TimeSync TC TX MIN delay H */ 591 #define MDIO_TC_TSYNCRXMAXDLYL 1805 /* TimeSync TC RX MAX delay L */ 592 #define MDIO_TC_TSYNCRXMAXDLYH 1806 /* TimeSync TC RX MAX delay H */ 593 #define MDIO_TC_TSYNCRXMINDLYL 1807 /* TimeSync TC RX MIN delay L */ 594 #define MDIO_TC_TSYNCRXMINDLYH 1808 /* TimeSync TC RX MIN delay H */ 595 /* Values 1809 to 32767 are reserved */ 596 /* Values 32768 to 65535 are vendor specific */ 597 598 /* 599 * Auto-Negotiation registers. 600 * Table 45-200 601 */ 602 #define MDIO_AN_CTRL1 0 /* AN control 1 */ 603 #define AN_CTRL1_ANRESET 0x8000 /* AN reset */ 604 #define AN_CTRL1_ENP 0x2000 /* Extended Next Page */ 605 #define AN_CTRL1_AUTOEN 0x1000 /* Auto-Negotiation enable */ 606 #define AN_CTRL1_STARTNEG 0x0200 /* Restart Auto-Negotiation */ 607 608 #define MDIO_AN_STAT1 1 /* AN status 1 */ 609 #define MDIO_AN_DEVID1 2 /* AN device identifier 1 */ 610 #define MDIO_AN_DEVID2 3 /* AN device identifier 2 */ 611 /* Value 4 is reserved */ 612 #define MDIO_AN_DEVS1 5 /* AN devices in package 1 */ 613 #define MDIO_AN_DEVS2 6 /* AN devices in package 2 */ 614 /* Values 7 to 13 are reserved */ 615 #define MDIO_AN_PKGID1 14 /* AN package identifier 1 */ 616 #define MDIO_AN_PKGID2 15 /* AN package identifier 2 */ 617 #define MDIO_AN_ADVERT1 16 /* AN advertisement 1 */ 618 #define MDIO_AN_ADVERT2 17 /* AN advertisement 2 */ 619 #define MDIO_AN_ADVERT3 18 /* AN advertisement 3 */ 620 #define MDIO_AN_LPBPABLTY1 19 /* AN LP base page ability 1 */ 621 #define MDIO_AN_LPBPABLTY2 20 /* AN LP base page ability 2 */ 622 #define MDIO_AN_LPBPABLTY3 21 /* AN LP base page ability 3 */ 623 #define MDIO_AN_XNPXMIT1 22 /* AN XNP transmit 1 */ 624 #define MDIO_AN_XNPXMIT2 23 /* AN XNP transmit 2 */ 625 #define MDIO_AN_XNPXMIT3 24 /* AN XNP transmit 3 */ 626 #define MDIO_AN_LPXNPABLTY1 25 /* AN LP XNP ability 1 */ 627 #define MDIO_AN_LPXNPABLTY2 26 /* AN LP XNP ability 2 */ 628 #define MDIO_AN_LPXNPABLTY3 27 /* AN LP XNP ability 3 */ 629 /* Values 28 to 31 are reserved */ 630 #define MDIO_AN_10GTANCTRL 32 /* 10G-T AN control */ 631 #define MDIO_AN_10GTANSTAT 33 /* 10G-T AN status */ 632 /* Values 34 to 47 are reserved */ 633 #define MDIO_AN_BPETHSTAT 48 /* BP Ethernet status */ 634 /* Values 49 to 59 are reserved */ 635 #define MDIO_AN_EEEADVERT 60 /* EEE advertisement */ 636 #define AN_EEEADVERT_100G_CR4 0x2000 /* 100GBASE-CR4 */ 637 #define AN_EEEADVERT_100G_KR4 0x1000 /* 100GBASE-KR4 */ 638 #define AN_EEEADVERT_100G_KP4 0x0800 /* 100GBASE-KP4 */ 639 #define AN_EEEADVERT_100G_CR10 0x0400 /* 100GBASE-CR10 */ 640 #define AN_EEEADVERT_40G_CR4 0x0100 /* 40GBASE-CR4 */ 641 #define AN_EEEADVERT_40G_KR4 0x0080 /* 40GBASE-KR4 */ 642 #define AN_EEEADVERT_10G_KR 0x0040 /* 10GBASE-KR */ 643 #define AN_EEEADVERT_10G_KX4 0x0020 /* 10GBASE-KX4 */ 644 #define AN_EEEADVERT_1000_KX 0x0010 /* 1000BASE-KX */ 645 #define AN_EEEADVERT_10G_T 0x0008 /* 10GBASE-T */ 646 #define AN_EEEADVERT_1000_T 0x0004 /* 1000BASE-T */ 647 #define AN_EEEADVERT_100_TX 0x0002 /* 100BASE-TX */ 648 649 #define MDIO_AN_EEELPABLTY 61 /* EEE LP ability */ 650 /* bitmap is the same as MDIO_AN_EEEADVERT(7.60) */ 651 652 /* Values 62 to 32767 are reserved */ 653 /* Values 32768 to 65535 are vendor specific */ 654 655 /* 656 * Clause 22 extension registers. 657 * Table 45-212 658 */ 659 /* Values 0 to 4 are reserved */ 660 #define MDIO_CL22E_DEVS1 5 /* Clause 22 ext. devices in package 1 */ 661 #define MDIO_CL22E_DEVS2 6 /* Clause 22 ext. devices in package 2 */ 662 #define MDIO_CL22E_FECCAP 7 /* FEC capability */ 663 #define MDIO_CL22E_FECCTRL 8 /* FEC control */ 664 #define MDIO_CL22E_FECBHCVIOCNT 9 /* FEC buffer head coding violation cnt. */ 665 #define MDIO_CL22E_FECCOBLCNT 10 /* FEC corrected blocks counter */ 666 #define MDIO_CL22E_FECUNCOBLCNT 11 /* FEC uncorrected blocks counter */ 667 /* Values 12 to 32767 are reserved */ 668 669 /* 670 * Vendor specific MMD 1 registers. 671 * Table 45-218 672 */ 673 /* Values 0 to 1 are vendor specific */ 674 #define MDIO_VSMMD1_DEVID1 2 /* Vendor specific MMD 1 device ident. 1 */ 675 #define MDIO_VSMMD1_DEVID2 3 /* Vendor specific MMD 1 device ident. 2 */ 676 /* Values 4 to 7 are vendor specific */ 677 #define MDIO_VSMMD1_STAT 8 /* Vendor specific MMD 1 status register */ 678 /* Values 9 to 13 are vendor specific */ 679 #define MDIO_VSMMD1_PKGID1 14 /* Vendor specific MMD 1 package ident 1 */ 680 #define MDIO_VSMMD1_PKGID2 15 /* Vendor specific MMD 1 package ident 2 */ 681 /* Values 16 to 65535 are vendor specific */ 682 683 /* 684 * Vendor specific MMD 2 registers. 685 * Table 45-220 686 */ 687 /* Values 0 to 1 are vendor specific */ 688 #define MDIO_VSMMD2_DEVID1 2 /* Vendor specific MMD 2 device ident. 1 */ 689 #define MDIO_VSMMD2_DEVID2 3 /* Vendor specific MMD 2 device ident. 2 */ 690 /* Values 4 to 7 are vendor specific */ 691 #define MDIO_VSMMD2_STAT 8 /* Vendor specific MMD 2 status register */ 692 /* Values 9 to 13 are vendor specific */ 693 #define MDIO_VSMMD2_PKGID1 14 /* Vendor specific MMD 2 package ident 1 */ 694 #define MDIO_VSMMD2_PKGID2 15 /* Vendor specific MMD 2 package ident 2 */ 695 /* Values 16 to 65535 are vendor specific */ 696 697 #endif /* _DEV_MII_MDIO_H_ */ 698