0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065
0066
0067
0068
0069
0070
0071
0072
0073
0074
0075
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110
0111
0112
0113
0114
0115
0116
0117 #ifndef __XGBE_COMMON_H__
0118 #define __XGBE_COMMON_H__
0119
0120
0121 #define DMA_MR 0x3000
0122 #define DMA_SBMR 0x3004
0123 #define DMA_ISR 0x3008
0124 #define DMA_AXIARCR 0x3010
0125 #define DMA_AXIAWCR 0x3018
0126 #define DMA_AXIAWARCR 0x301c
0127 #define DMA_DSR0 0x3020
0128 #define DMA_DSR1 0x3024
0129 #define DMA_TXEDMACR 0x3040
0130 #define DMA_RXEDMACR 0x3044
0131
0132
0133 #define DMA_ISR_MACIS_INDEX 17
0134 #define DMA_ISR_MACIS_WIDTH 1
0135 #define DMA_ISR_MTLIS_INDEX 16
0136 #define DMA_ISR_MTLIS_WIDTH 1
0137 #define DMA_MR_INTM_INDEX 12
0138 #define DMA_MR_INTM_WIDTH 2
0139 #define DMA_MR_SWR_INDEX 0
0140 #define DMA_MR_SWR_WIDTH 1
0141 #define DMA_RXEDMACR_RDPS_INDEX 0
0142 #define DMA_RXEDMACR_RDPS_WIDTH 3
0143 #define DMA_SBMR_AAL_INDEX 12
0144 #define DMA_SBMR_AAL_WIDTH 1
0145 #define DMA_SBMR_EAME_INDEX 11
0146 #define DMA_SBMR_EAME_WIDTH 1
0147 #define DMA_SBMR_BLEN_INDEX 1
0148 #define DMA_SBMR_BLEN_WIDTH 7
0149 #define DMA_SBMR_RD_OSR_LMT_INDEX 16
0150 #define DMA_SBMR_RD_OSR_LMT_WIDTH 6
0151 #define DMA_SBMR_UNDEF_INDEX 0
0152 #define DMA_SBMR_UNDEF_WIDTH 1
0153 #define DMA_SBMR_WR_OSR_LMT_INDEX 24
0154 #define DMA_SBMR_WR_OSR_LMT_WIDTH 6
0155 #define DMA_TXEDMACR_TDPS_INDEX 0
0156 #define DMA_TXEDMACR_TDPS_WIDTH 3
0157
0158
0159 #define DMA_SBMR_BLEN_256 256
0160 #define DMA_SBMR_BLEN_128 128
0161 #define DMA_SBMR_BLEN_64 64
0162 #define DMA_SBMR_BLEN_32 32
0163 #define DMA_SBMR_BLEN_16 16
0164 #define DMA_SBMR_BLEN_8 8
0165 #define DMA_SBMR_BLEN_4 4
0166 #define DMA_DSR_RPS_WIDTH 4
0167 #define DMA_DSR_TPS_WIDTH 4
0168 #define DMA_DSR_Q_WIDTH (DMA_DSR_RPS_WIDTH + DMA_DSR_TPS_WIDTH)
0169 #define DMA_DSR0_RPS_START 8
0170 #define DMA_DSR0_TPS_START 12
0171 #define DMA_DSRX_FIRST_QUEUE 3
0172 #define DMA_DSRX_INC 4
0173 #define DMA_DSRX_QPR 4
0174 #define DMA_DSRX_RPS_START 0
0175 #define DMA_DSRX_TPS_START 4
0176 #define DMA_TPS_STOPPED 0x00
0177 #define DMA_TPS_SUSPENDED 0x06
0178
0179
0180
0181
0182
0183
0184 #define DMA_CH_BASE 0x3100
0185 #define DMA_CH_INC 0x80
0186
0187 #define DMA_CH_CR 0x00
0188 #define DMA_CH_TCR 0x04
0189 #define DMA_CH_RCR 0x08
0190 #define DMA_CH_TDLR_HI 0x10
0191 #define DMA_CH_TDLR_LO 0x14
0192 #define DMA_CH_RDLR_HI 0x18
0193 #define DMA_CH_RDLR_LO 0x1c
0194 #define DMA_CH_TDTR_LO 0x24
0195 #define DMA_CH_RDTR_LO 0x2c
0196 #define DMA_CH_TDRLR 0x30
0197 #define DMA_CH_RDRLR 0x34
0198 #define DMA_CH_IER 0x38
0199 #define DMA_CH_RIWT 0x3c
0200 #define DMA_CH_CATDR_LO 0x44
0201 #define DMA_CH_CARDR_LO 0x4c
0202 #define DMA_CH_CATBR_HI 0x50
0203 #define DMA_CH_CATBR_LO 0x54
0204 #define DMA_CH_CARBR_HI 0x58
0205 #define DMA_CH_CARBR_LO 0x5c
0206 #define DMA_CH_SR 0x60
0207
0208
0209 #define DMA_CH_CR_PBLX8_INDEX 16
0210 #define DMA_CH_CR_PBLX8_WIDTH 1
0211 #define DMA_CH_CR_SPH_INDEX 24
0212 #define DMA_CH_CR_SPH_WIDTH 1
0213 #define DMA_CH_IER_AIE20_INDEX 15
0214 #define DMA_CH_IER_AIE20_WIDTH 1
0215 #define DMA_CH_IER_AIE_INDEX 14
0216 #define DMA_CH_IER_AIE_WIDTH 1
0217 #define DMA_CH_IER_FBEE_INDEX 12
0218 #define DMA_CH_IER_FBEE_WIDTH 1
0219 #define DMA_CH_IER_NIE20_INDEX 16
0220 #define DMA_CH_IER_NIE20_WIDTH 1
0221 #define DMA_CH_IER_NIE_INDEX 15
0222 #define DMA_CH_IER_NIE_WIDTH 1
0223 #define DMA_CH_IER_RBUE_INDEX 7
0224 #define DMA_CH_IER_RBUE_WIDTH 1
0225 #define DMA_CH_IER_RIE_INDEX 6
0226 #define DMA_CH_IER_RIE_WIDTH 1
0227 #define DMA_CH_IER_RSE_INDEX 8
0228 #define DMA_CH_IER_RSE_WIDTH 1
0229 #define DMA_CH_IER_TBUE_INDEX 2
0230 #define DMA_CH_IER_TBUE_WIDTH 1
0231 #define DMA_CH_IER_TIE_INDEX 0
0232 #define DMA_CH_IER_TIE_WIDTH 1
0233 #define DMA_CH_IER_TXSE_INDEX 1
0234 #define DMA_CH_IER_TXSE_WIDTH 1
0235 #define DMA_CH_RCR_PBL_INDEX 16
0236 #define DMA_CH_RCR_PBL_WIDTH 6
0237 #define DMA_CH_RCR_RBSZ_INDEX 1
0238 #define DMA_CH_RCR_RBSZ_WIDTH 14
0239 #define DMA_CH_RCR_SR_INDEX 0
0240 #define DMA_CH_RCR_SR_WIDTH 1
0241 #define DMA_CH_RIWT_RWT_INDEX 0
0242 #define DMA_CH_RIWT_RWT_WIDTH 8
0243 #define DMA_CH_SR_FBE_INDEX 12
0244 #define DMA_CH_SR_FBE_WIDTH 1
0245 #define DMA_CH_SR_RBU_INDEX 7
0246 #define DMA_CH_SR_RBU_WIDTH 1
0247 #define DMA_CH_SR_RI_INDEX 6
0248 #define DMA_CH_SR_RI_WIDTH 1
0249 #define DMA_CH_SR_RPS_INDEX 8
0250 #define DMA_CH_SR_RPS_WIDTH 1
0251 #define DMA_CH_SR_TBU_INDEX 2
0252 #define DMA_CH_SR_TBU_WIDTH 1
0253 #define DMA_CH_SR_TI_INDEX 0
0254 #define DMA_CH_SR_TI_WIDTH 1
0255 #define DMA_CH_SR_TPS_INDEX 1
0256 #define DMA_CH_SR_TPS_WIDTH 1
0257 #define DMA_CH_TCR_OSP_INDEX 4
0258 #define DMA_CH_TCR_OSP_WIDTH 1
0259 #define DMA_CH_TCR_PBL_INDEX 16
0260 #define DMA_CH_TCR_PBL_WIDTH 6
0261 #define DMA_CH_TCR_ST_INDEX 0
0262 #define DMA_CH_TCR_ST_WIDTH 1
0263 #define DMA_CH_TCR_TSE_INDEX 12
0264 #define DMA_CH_TCR_TSE_WIDTH 1
0265
0266
0267 #define DMA_OSP_DISABLE 0x00
0268 #define DMA_OSP_ENABLE 0x01
0269 #define DMA_PBL_1 1
0270 #define DMA_PBL_2 2
0271 #define DMA_PBL_4 4
0272 #define DMA_PBL_8 8
0273 #define DMA_PBL_16 16
0274 #define DMA_PBL_32 32
0275 #define DMA_PBL_64 64
0276 #define DMA_PBL_128 128
0277 #define DMA_PBL_256 256
0278 #define DMA_PBL_X8_DISABLE 0x00
0279 #define DMA_PBL_X8_ENABLE 0x01
0280
0281
0282 #define MAC_TCR 0x0000
0283 #define MAC_RCR 0x0004
0284 #define MAC_PFR 0x0008
0285 #define MAC_WTR 0x000c
0286 #define MAC_HTR0 0x0010
0287 #define MAC_VLANTR 0x0050
0288 #define MAC_VLANHTR 0x0058
0289 #define MAC_VLANIR 0x0060
0290 #define MAC_IVLANIR 0x0064
0291 #define MAC_RETMR 0x006c
0292 #define MAC_Q0TFCR 0x0070
0293 #define MAC_RFCR 0x0090
0294 #define MAC_RQC0R 0x00a0
0295 #define MAC_RQC1R 0x00a4
0296 #define MAC_RQC2R 0x00a8
0297 #define MAC_RQC3R 0x00ac
0298 #define MAC_ISR 0x00b0
0299 #define MAC_IER 0x00b4
0300 #define MAC_RTSR 0x00b8
0301 #define MAC_PMTCSR 0x00c0
0302 #define MAC_RWKPFR 0x00c4
0303 #define MAC_LPICSR 0x00d0
0304 #define MAC_LPITCR 0x00d4
0305 #define MAC_TIR 0x00e0
0306 #define MAC_VR 0x0110
0307 #define MAC_DR 0x0114
0308 #define MAC_HWF0R 0x011c
0309 #define MAC_HWF1R 0x0120
0310 #define MAC_HWF2R 0x0124
0311 #define MAC_MDIOSCAR 0x0200
0312 #define MAC_MDIOSCCDR 0x0204
0313 #define MAC_MDIOISR 0x0214
0314 #define MAC_MDIOIER 0x0218
0315 #define MAC_MDIOCL22R 0x0220
0316 #define MAC_GPIOCR 0x0278
0317 #define MAC_GPIOSR 0x027c
0318 #define MAC_MACA0HR 0x0300
0319 #define MAC_MACA0LR 0x0304
0320 #define MAC_MACA1HR 0x0308
0321 #define MAC_MACA1LR 0x030c
0322 #define MAC_RSSCR 0x0c80
0323 #define MAC_RSSAR 0x0c88
0324 #define MAC_RSSDR 0x0c8c
0325 #define MAC_TSCR 0x0d00
0326 #define MAC_SSIR 0x0d04
0327 #define MAC_STSR 0x0d08
0328 #define MAC_STNR 0x0d0c
0329 #define MAC_STSUR 0x0d10
0330 #define MAC_STNUR 0x0d14
0331 #define MAC_TSAR 0x0d18
0332 #define MAC_TSSR 0x0d20
0333 #define MAC_TXSNR 0x0d30
0334 #define MAC_TXSSR 0x0d34
0335
0336 #define MAC_QTFCR_INC 4
0337 #define MAC_MACA_INC 4
0338 #define MAC_HTR_INC 4
0339
0340 #define MAC_RQC2_INC 4
0341 #define MAC_RQC2_Q_PER_REG 4
0342
0343
0344 #define MAC_HWF0R_ADDMACADRSEL_INDEX 18
0345 #define MAC_HWF0R_ADDMACADRSEL_WIDTH 5
0346 #define MAC_HWF0R_ARPOFFSEL_INDEX 9
0347 #define MAC_HWF0R_ARPOFFSEL_WIDTH 1
0348 #define MAC_HWF0R_EEESEL_INDEX 13
0349 #define MAC_HWF0R_EEESEL_WIDTH 1
0350 #define MAC_HWF0R_GMIISEL_INDEX 1
0351 #define MAC_HWF0R_GMIISEL_WIDTH 1
0352 #define MAC_HWF0R_MGKSEL_INDEX 7
0353 #define MAC_HWF0R_MGKSEL_WIDTH 1
0354 #define MAC_HWF0R_MMCSEL_INDEX 8
0355 #define MAC_HWF0R_MMCSEL_WIDTH 1
0356 #define MAC_HWF0R_RWKSEL_INDEX 6
0357 #define MAC_HWF0R_RWKSEL_WIDTH 1
0358 #define MAC_HWF0R_RXCOESEL_INDEX 16
0359 #define MAC_HWF0R_RXCOESEL_WIDTH 1
0360 #define MAC_HWF0R_SAVLANINS_INDEX 27
0361 #define MAC_HWF0R_SAVLANINS_WIDTH 1
0362 #define MAC_HWF0R_SMASEL_INDEX 5
0363 #define MAC_HWF0R_SMASEL_WIDTH 1
0364 #define MAC_HWF0R_TSSEL_INDEX 12
0365 #define MAC_HWF0R_TSSEL_WIDTH 1
0366 #define MAC_HWF0R_TSSTSSEL_INDEX 25
0367 #define MAC_HWF0R_TSSTSSEL_WIDTH 2
0368 #define MAC_HWF0R_TXCOESEL_INDEX 14
0369 #define MAC_HWF0R_TXCOESEL_WIDTH 1
0370 #define MAC_HWF0R_VLHASH_INDEX 4
0371 #define MAC_HWF0R_VLHASH_WIDTH 1
0372 #define MAC_HWF0R_VXN_INDEX 29
0373 #define MAC_HWF0R_VXN_WIDTH 1
0374 #define MAC_HWF1R_ADDR64_INDEX 14
0375 #define MAC_HWF1R_ADDR64_WIDTH 2
0376 #define MAC_HWF1R_ADVTHWORD_INDEX 13
0377 #define MAC_HWF1R_ADVTHWORD_WIDTH 1
0378 #define MAC_HWF1R_DBGMEMA_INDEX 19
0379 #define MAC_HWF1R_DBGMEMA_WIDTH 1
0380 #define MAC_HWF1R_DCBEN_INDEX 16
0381 #define MAC_HWF1R_DCBEN_WIDTH 1
0382 #define MAC_HWF1R_HASHTBLSZ_INDEX 24
0383 #define MAC_HWF1R_HASHTBLSZ_WIDTH 3
0384 #define MAC_HWF1R_L3L4FNUM_INDEX 27
0385 #define MAC_HWF1R_L3L4FNUM_WIDTH 4
0386 #define MAC_HWF1R_NUMTC_INDEX 21
0387 #define MAC_HWF1R_NUMTC_WIDTH 3
0388 #define MAC_HWF1R_RSSEN_INDEX 20
0389 #define MAC_HWF1R_RSSEN_WIDTH 1
0390 #define MAC_HWF1R_RXFIFOSIZE_INDEX 0
0391 #define MAC_HWF1R_RXFIFOSIZE_WIDTH 5
0392 #define MAC_HWF1R_SPHEN_INDEX 17
0393 #define MAC_HWF1R_SPHEN_WIDTH 1
0394 #define MAC_HWF1R_TSOEN_INDEX 18
0395 #define MAC_HWF1R_TSOEN_WIDTH 1
0396 #define MAC_HWF1R_TXFIFOSIZE_INDEX 6
0397 #define MAC_HWF1R_TXFIFOSIZE_WIDTH 5
0398 #define MAC_HWF2R_AUXSNAPNUM_INDEX 28
0399 #define MAC_HWF2R_AUXSNAPNUM_WIDTH 3
0400 #define MAC_HWF2R_PPSOUTNUM_INDEX 24
0401 #define MAC_HWF2R_PPSOUTNUM_WIDTH 3
0402 #define MAC_HWF2R_RXCHCNT_INDEX 12
0403 #define MAC_HWF2R_RXCHCNT_WIDTH 4
0404 #define MAC_HWF2R_RXQCNT_INDEX 0
0405 #define MAC_HWF2R_RXQCNT_WIDTH 4
0406 #define MAC_HWF2R_TXCHCNT_INDEX 18
0407 #define MAC_HWF2R_TXCHCNT_WIDTH 4
0408 #define MAC_HWF2R_TXQCNT_INDEX 6
0409 #define MAC_HWF2R_TXQCNT_WIDTH 4
0410 #define MAC_IER_TSIE_INDEX 12
0411 #define MAC_IER_TSIE_WIDTH 1
0412 #define MAC_ISR_MMCRXIS_INDEX 9
0413 #define MAC_ISR_MMCRXIS_WIDTH 1
0414 #define MAC_ISR_MMCTXIS_INDEX 10
0415 #define MAC_ISR_MMCTXIS_WIDTH 1
0416 #define MAC_ISR_PMTIS_INDEX 4
0417 #define MAC_ISR_PMTIS_WIDTH 1
0418 #define MAC_ISR_SMI_INDEX 1
0419 #define MAC_ISR_SMI_WIDTH 1
0420 #define MAC_ISR_TSIS_INDEX 12
0421 #define MAC_ISR_TSIS_WIDTH 1
0422 #define MAC_MACA1HR_AE_INDEX 31
0423 #define MAC_MACA1HR_AE_WIDTH 1
0424 #define MAC_MDIOIER_SNGLCOMPIE_INDEX 12
0425 #define MAC_MDIOIER_SNGLCOMPIE_WIDTH 1
0426 #define MAC_MDIOISR_SNGLCOMPINT_INDEX 12
0427 #define MAC_MDIOISR_SNGLCOMPINT_WIDTH 1
0428 #define MAC_MDIOSCAR_DA_INDEX 21
0429 #define MAC_MDIOSCAR_DA_WIDTH 5
0430 #define MAC_MDIOSCAR_PA_INDEX 16
0431 #define MAC_MDIOSCAR_PA_WIDTH 5
0432 #define MAC_MDIOSCAR_RA_INDEX 0
0433 #define MAC_MDIOSCAR_RA_WIDTH 16
0434 #define MAC_MDIOSCCDR_BUSY_INDEX 22
0435 #define MAC_MDIOSCCDR_BUSY_WIDTH 1
0436 #define MAC_MDIOSCCDR_CMD_INDEX 16
0437 #define MAC_MDIOSCCDR_CMD_WIDTH 2
0438 #define MAC_MDIOSCCDR_CR_INDEX 19
0439 #define MAC_MDIOSCCDR_CR_WIDTH 3
0440 #define MAC_MDIOSCCDR_DATA_INDEX 0
0441 #define MAC_MDIOSCCDR_DATA_WIDTH 16
0442 #define MAC_MDIOSCCDR_SADDR_INDEX 18
0443 #define MAC_MDIOSCCDR_SADDR_WIDTH 1
0444 #define MAC_PFR_HMC_INDEX 2
0445 #define MAC_PFR_HMC_WIDTH 1
0446 #define MAC_PFR_HPF_INDEX 10
0447 #define MAC_PFR_HPF_WIDTH 1
0448 #define MAC_PFR_HUC_INDEX 1
0449 #define MAC_PFR_HUC_WIDTH 1
0450 #define MAC_PFR_PM_INDEX 4
0451 #define MAC_PFR_PM_WIDTH 1
0452 #define MAC_PFR_PR_INDEX 0
0453 #define MAC_PFR_PR_WIDTH 1
0454 #define MAC_PFR_VTFE_INDEX 16
0455 #define MAC_PFR_VTFE_WIDTH 1
0456 #define MAC_PFR_VUCC_INDEX 22
0457 #define MAC_PFR_VUCC_WIDTH 1
0458 #define MAC_PMTCSR_MGKPKTEN_INDEX 1
0459 #define MAC_PMTCSR_MGKPKTEN_WIDTH 1
0460 #define MAC_PMTCSR_PWRDWN_INDEX 0
0461 #define MAC_PMTCSR_PWRDWN_WIDTH 1
0462 #define MAC_PMTCSR_RWKFILTRST_INDEX 31
0463 #define MAC_PMTCSR_RWKFILTRST_WIDTH 1
0464 #define MAC_PMTCSR_RWKPKTEN_INDEX 2
0465 #define MAC_PMTCSR_RWKPKTEN_WIDTH 1
0466 #define MAC_Q0TFCR_PT_INDEX 16
0467 #define MAC_Q0TFCR_PT_WIDTH 16
0468 #define MAC_Q0TFCR_TFE_INDEX 1
0469 #define MAC_Q0TFCR_TFE_WIDTH 1
0470 #define MAC_RCR_ACS_INDEX 1
0471 #define MAC_RCR_ACS_WIDTH 1
0472 #define MAC_RCR_CST_INDEX 2
0473 #define MAC_RCR_CST_WIDTH 1
0474 #define MAC_RCR_DCRCC_INDEX 3
0475 #define MAC_RCR_DCRCC_WIDTH 1
0476 #define MAC_RCR_HDSMS_INDEX 12
0477 #define MAC_RCR_HDSMS_WIDTH 3
0478 #define MAC_RCR_IPC_INDEX 9
0479 #define MAC_RCR_IPC_WIDTH 1
0480 #define MAC_RCR_JE_INDEX 8
0481 #define MAC_RCR_JE_WIDTH 1
0482 #define MAC_RCR_LM_INDEX 10
0483 #define MAC_RCR_LM_WIDTH 1
0484 #define MAC_RCR_RE_INDEX 0
0485 #define MAC_RCR_RE_WIDTH 1
0486 #define MAC_RFCR_PFCE_INDEX 8
0487 #define MAC_RFCR_PFCE_WIDTH 1
0488 #define MAC_RFCR_RFE_INDEX 0
0489 #define MAC_RFCR_RFE_WIDTH 1
0490 #define MAC_RFCR_UP_INDEX 1
0491 #define MAC_RFCR_UP_WIDTH 1
0492 #define MAC_RQC0R_RXQ0EN_INDEX 0
0493 #define MAC_RQC0R_RXQ0EN_WIDTH 2
0494 #define MAC_RSSAR_ADDRT_INDEX 2
0495 #define MAC_RSSAR_ADDRT_WIDTH 1
0496 #define MAC_RSSAR_CT_INDEX 1
0497 #define MAC_RSSAR_CT_WIDTH 1
0498 #define MAC_RSSAR_OB_INDEX 0
0499 #define MAC_RSSAR_OB_WIDTH 1
0500 #define MAC_RSSAR_RSSIA_INDEX 8
0501 #define MAC_RSSAR_RSSIA_WIDTH 8
0502 #define MAC_RSSCR_IP2TE_INDEX 1
0503 #define MAC_RSSCR_IP2TE_WIDTH 1
0504 #define MAC_RSSCR_RSSE_INDEX 0
0505 #define MAC_RSSCR_RSSE_WIDTH 1
0506 #define MAC_RSSCR_TCP4TE_INDEX 2
0507 #define MAC_RSSCR_TCP4TE_WIDTH 1
0508 #define MAC_RSSCR_UDP4TE_INDEX 3
0509 #define MAC_RSSCR_UDP4TE_WIDTH 1
0510 #define MAC_RSSDR_DMCH_INDEX 0
0511 #define MAC_RSSDR_DMCH_WIDTH 4
0512 #define MAC_SSIR_SNSINC_INDEX 8
0513 #define MAC_SSIR_SNSINC_WIDTH 8
0514 #define MAC_SSIR_SSINC_INDEX 16
0515 #define MAC_SSIR_SSINC_WIDTH 8
0516 #define MAC_TCR_SS_INDEX 29
0517 #define MAC_TCR_SS_WIDTH 2
0518 #define MAC_TCR_TE_INDEX 0
0519 #define MAC_TCR_TE_WIDTH 1
0520 #define MAC_TCR_VNE_INDEX 24
0521 #define MAC_TCR_VNE_WIDTH 1
0522 #define MAC_TCR_VNM_INDEX 25
0523 #define MAC_TCR_VNM_WIDTH 1
0524 #define MAC_TIR_TNID_INDEX 0
0525 #define MAC_TIR_TNID_WIDTH 16
0526 #define MAC_TSCR_AV8021ASMEN_INDEX 28
0527 #define MAC_TSCR_AV8021ASMEN_WIDTH 1
0528 #define MAC_TSCR_SNAPTYPSEL_INDEX 16
0529 #define MAC_TSCR_SNAPTYPSEL_WIDTH 2
0530 #define MAC_TSCR_TSADDREG_INDEX 5
0531 #define MAC_TSCR_TSADDREG_WIDTH 1
0532 #define MAC_TSCR_TSCFUPDT_INDEX 1
0533 #define MAC_TSCR_TSCFUPDT_WIDTH 1
0534 #define MAC_TSCR_TSCTRLSSR_INDEX 9
0535 #define MAC_TSCR_TSCTRLSSR_WIDTH 1
0536 #define MAC_TSCR_TSENA_INDEX 0
0537 #define MAC_TSCR_TSENA_WIDTH 1
0538 #define MAC_TSCR_TSENALL_INDEX 8
0539 #define MAC_TSCR_TSENALL_WIDTH 1
0540 #define MAC_TSCR_TSEVNTENA_INDEX 14
0541 #define MAC_TSCR_TSEVNTENA_WIDTH 1
0542 #define MAC_TSCR_TSINIT_INDEX 2
0543 #define MAC_TSCR_TSINIT_WIDTH 1
0544 #define MAC_TSCR_TSIPENA_INDEX 11
0545 #define MAC_TSCR_TSIPENA_WIDTH 1
0546 #define MAC_TSCR_TSIPV4ENA_INDEX 13
0547 #define MAC_TSCR_TSIPV4ENA_WIDTH 1
0548 #define MAC_TSCR_TSIPV6ENA_INDEX 12
0549 #define MAC_TSCR_TSIPV6ENA_WIDTH 1
0550 #define MAC_TSCR_TSMSTRENA_INDEX 15
0551 #define MAC_TSCR_TSMSTRENA_WIDTH 1
0552 #define MAC_TSCR_TSVER2ENA_INDEX 10
0553 #define MAC_TSCR_TSVER2ENA_WIDTH 1
0554 #define MAC_TSCR_TXTSSTSM_INDEX 24
0555 #define MAC_TSCR_TXTSSTSM_WIDTH 1
0556 #define MAC_TSSR_TXTSC_INDEX 15
0557 #define MAC_TSSR_TXTSC_WIDTH 1
0558 #define MAC_TXSNR_TXTSSTSMIS_INDEX 31
0559 #define MAC_TXSNR_TXTSSTSMIS_WIDTH 1
0560 #define MAC_VLANHTR_VLHT_INDEX 0
0561 #define MAC_VLANHTR_VLHT_WIDTH 16
0562 #define MAC_VLANIR_VLTI_INDEX 20
0563 #define MAC_VLANIR_VLTI_WIDTH 1
0564 #define MAC_VLANIR_CSVL_INDEX 19
0565 #define MAC_VLANIR_CSVL_WIDTH 1
0566 #define MAC_VLANTR_DOVLTC_INDEX 20
0567 #define MAC_VLANTR_DOVLTC_WIDTH 1
0568 #define MAC_VLANTR_ERSVLM_INDEX 19
0569 #define MAC_VLANTR_ERSVLM_WIDTH 1
0570 #define MAC_VLANTR_ESVL_INDEX 18
0571 #define MAC_VLANTR_ESVL_WIDTH 1
0572 #define MAC_VLANTR_ETV_INDEX 16
0573 #define MAC_VLANTR_ETV_WIDTH 1
0574 #define MAC_VLANTR_EVLS_INDEX 21
0575 #define MAC_VLANTR_EVLS_WIDTH 2
0576 #define MAC_VLANTR_EVLRXS_INDEX 24
0577 #define MAC_VLANTR_EVLRXS_WIDTH 1
0578 #define MAC_VLANTR_VL_INDEX 0
0579 #define MAC_VLANTR_VL_WIDTH 16
0580 #define MAC_VLANTR_VTHM_INDEX 25
0581 #define MAC_VLANTR_VTHM_WIDTH 1
0582 #define MAC_VLANTR_VTIM_INDEX 17
0583 #define MAC_VLANTR_VTIM_WIDTH 1
0584 #define MAC_VR_DEVID_INDEX 8
0585 #define MAC_VR_DEVID_WIDTH 8
0586 #define MAC_VR_SNPSVER_INDEX 0
0587 #define MAC_VR_SNPSVER_WIDTH 8
0588 #define MAC_VR_USERVER_INDEX 16
0589 #define MAC_VR_USERVER_WIDTH 8
0590
0591
0592 #define MMC_CR 0x0800
0593 #define MMC_RISR 0x0804
0594 #define MMC_TISR 0x0808
0595 #define MMC_RIER 0x080c
0596 #define MMC_TIER 0x0810
0597 #define MMC_TXOCTETCOUNT_GB_LO 0x0814
0598 #define MMC_TXOCTETCOUNT_GB_HI 0x0818
0599 #define MMC_TXFRAMECOUNT_GB_LO 0x081c
0600 #define MMC_TXFRAMECOUNT_GB_HI 0x0820
0601 #define MMC_TXBROADCASTFRAMES_G_LO 0x0824
0602 #define MMC_TXBROADCASTFRAMES_G_HI 0x0828
0603 #define MMC_TXMULTICASTFRAMES_G_LO 0x082c
0604 #define MMC_TXMULTICASTFRAMES_G_HI 0x0830
0605 #define MMC_TX64OCTETS_GB_LO 0x0834
0606 #define MMC_TX64OCTETS_GB_HI 0x0838
0607 #define MMC_TX65TO127OCTETS_GB_LO 0x083c
0608 #define MMC_TX65TO127OCTETS_GB_HI 0x0840
0609 #define MMC_TX128TO255OCTETS_GB_LO 0x0844
0610 #define MMC_TX128TO255OCTETS_GB_HI 0x0848
0611 #define MMC_TX256TO511OCTETS_GB_LO 0x084c
0612 #define MMC_TX256TO511OCTETS_GB_HI 0x0850
0613 #define MMC_TX512TO1023OCTETS_GB_LO 0x0854
0614 #define MMC_TX512TO1023OCTETS_GB_HI 0x0858
0615 #define MMC_TX1024TOMAXOCTETS_GB_LO 0x085c
0616 #define MMC_TX1024TOMAXOCTETS_GB_HI 0x0860
0617 #define MMC_TXUNICASTFRAMES_GB_LO 0x0864
0618 #define MMC_TXUNICASTFRAMES_GB_HI 0x0868
0619 #define MMC_TXMULTICASTFRAMES_GB_LO 0x086c
0620 #define MMC_TXMULTICASTFRAMES_GB_HI 0x0870
0621 #define MMC_TXBROADCASTFRAMES_GB_LO 0x0874
0622 #define MMC_TXBROADCASTFRAMES_GB_HI 0x0878
0623 #define MMC_TXUNDERFLOWERROR_LO 0x087c
0624 #define MMC_TXUNDERFLOWERROR_HI 0x0880
0625 #define MMC_TXOCTETCOUNT_G_LO 0x0884
0626 #define MMC_TXOCTETCOUNT_G_HI 0x0888
0627 #define MMC_TXFRAMECOUNT_G_LO 0x088c
0628 #define MMC_TXFRAMECOUNT_G_HI 0x0890
0629 #define MMC_TXPAUSEFRAMES_LO 0x0894
0630 #define MMC_TXPAUSEFRAMES_HI 0x0898
0631 #define MMC_TXVLANFRAMES_G_LO 0x089c
0632 #define MMC_TXVLANFRAMES_G_HI 0x08a0
0633 #define MMC_RXFRAMECOUNT_GB_LO 0x0900
0634 #define MMC_RXFRAMECOUNT_GB_HI 0x0904
0635 #define MMC_RXOCTETCOUNT_GB_LO 0x0908
0636 #define MMC_RXOCTETCOUNT_GB_HI 0x090c
0637 #define MMC_RXOCTETCOUNT_G_LO 0x0910
0638 #define MMC_RXOCTETCOUNT_G_HI 0x0914
0639 #define MMC_RXBROADCASTFRAMES_G_LO 0x0918
0640 #define MMC_RXBROADCASTFRAMES_G_HI 0x091c
0641 #define MMC_RXMULTICASTFRAMES_G_LO 0x0920
0642 #define MMC_RXMULTICASTFRAMES_G_HI 0x0924
0643 #define MMC_RXCRCERROR_LO 0x0928
0644 #define MMC_RXCRCERROR_HI 0x092c
0645 #define MMC_RXRUNTERROR 0x0930
0646 #define MMC_RXJABBERERROR 0x0934
0647 #define MMC_RXUNDERSIZE_G 0x0938
0648 #define MMC_RXOVERSIZE_G 0x093c
0649 #define MMC_RX64OCTETS_GB_LO 0x0940
0650 #define MMC_RX64OCTETS_GB_HI 0x0944
0651 #define MMC_RX65TO127OCTETS_GB_LO 0x0948
0652 #define MMC_RX65TO127OCTETS_GB_HI 0x094c
0653 #define MMC_RX128TO255OCTETS_GB_LO 0x0950
0654 #define MMC_RX128TO255OCTETS_GB_HI 0x0954
0655 #define MMC_RX256TO511OCTETS_GB_LO 0x0958
0656 #define MMC_RX256TO511OCTETS_GB_HI 0x095c
0657 #define MMC_RX512TO1023OCTETS_GB_LO 0x0960
0658 #define MMC_RX512TO1023OCTETS_GB_HI 0x0964
0659 #define MMC_RX1024TOMAXOCTETS_GB_LO 0x0968
0660 #define MMC_RX1024TOMAXOCTETS_GB_HI 0x096c
0661 #define MMC_RXUNICASTFRAMES_G_LO 0x0970
0662 #define MMC_RXUNICASTFRAMES_G_HI 0x0974
0663 #define MMC_RXLENGTHERROR_LO 0x0978
0664 #define MMC_RXLENGTHERROR_HI 0x097c
0665 #define MMC_RXOUTOFRANGETYPE_LO 0x0980
0666 #define MMC_RXOUTOFRANGETYPE_HI 0x0984
0667 #define MMC_RXPAUSEFRAMES_LO 0x0988
0668 #define MMC_RXPAUSEFRAMES_HI 0x098c
0669 #define MMC_RXFIFOOVERFLOW_LO 0x0990
0670 #define MMC_RXFIFOOVERFLOW_HI 0x0994
0671 #define MMC_RXVLANFRAMES_GB_LO 0x0998
0672 #define MMC_RXVLANFRAMES_GB_HI 0x099c
0673 #define MMC_RXWATCHDOGERROR 0x09a0
0674
0675
0676 #define MMC_CR_CR_INDEX 0
0677 #define MMC_CR_CR_WIDTH 1
0678 #define MMC_CR_CSR_INDEX 1
0679 #define MMC_CR_CSR_WIDTH 1
0680 #define MMC_CR_ROR_INDEX 2
0681 #define MMC_CR_ROR_WIDTH 1
0682 #define MMC_CR_MCF_INDEX 3
0683 #define MMC_CR_MCF_WIDTH 1
0684 #define MMC_CR_MCT_INDEX 4
0685 #define MMC_CR_MCT_WIDTH 2
0686 #define MMC_RIER_ALL_INTERRUPTS_INDEX 0
0687 #define MMC_RIER_ALL_INTERRUPTS_WIDTH 23
0688 #define MMC_RISR_RXFRAMECOUNT_GB_INDEX 0
0689 #define MMC_RISR_RXFRAMECOUNT_GB_WIDTH 1
0690 #define MMC_RISR_RXOCTETCOUNT_GB_INDEX 1
0691 #define MMC_RISR_RXOCTETCOUNT_GB_WIDTH 1
0692 #define MMC_RISR_RXOCTETCOUNT_G_INDEX 2
0693 #define MMC_RISR_RXOCTETCOUNT_G_WIDTH 1
0694 #define MMC_RISR_RXBROADCASTFRAMES_G_INDEX 3
0695 #define MMC_RISR_RXBROADCASTFRAMES_G_WIDTH 1
0696 #define MMC_RISR_RXMULTICASTFRAMES_G_INDEX 4
0697 #define MMC_RISR_RXMULTICASTFRAMES_G_WIDTH 1
0698 #define MMC_RISR_RXCRCERROR_INDEX 5
0699 #define MMC_RISR_RXCRCERROR_WIDTH 1
0700 #define MMC_RISR_RXRUNTERROR_INDEX 6
0701 #define MMC_RISR_RXRUNTERROR_WIDTH 1
0702 #define MMC_RISR_RXJABBERERROR_INDEX 7
0703 #define MMC_RISR_RXJABBERERROR_WIDTH 1
0704 #define MMC_RISR_RXUNDERSIZE_G_INDEX 8
0705 #define MMC_RISR_RXUNDERSIZE_G_WIDTH 1
0706 #define MMC_RISR_RXOVERSIZE_G_INDEX 9
0707 #define MMC_RISR_RXOVERSIZE_G_WIDTH 1
0708 #define MMC_RISR_RX64OCTETS_GB_INDEX 10
0709 #define MMC_RISR_RX64OCTETS_GB_WIDTH 1
0710 #define MMC_RISR_RX65TO127OCTETS_GB_INDEX 11
0711 #define MMC_RISR_RX65TO127OCTETS_GB_WIDTH 1
0712 #define MMC_RISR_RX128TO255OCTETS_GB_INDEX 12
0713 #define MMC_RISR_RX128TO255OCTETS_GB_WIDTH 1
0714 #define MMC_RISR_RX256TO511OCTETS_GB_INDEX 13
0715 #define MMC_RISR_RX256TO511OCTETS_GB_WIDTH 1
0716 #define MMC_RISR_RX512TO1023OCTETS_GB_INDEX 14
0717 #define MMC_RISR_RX512TO1023OCTETS_GB_WIDTH 1
0718 #define MMC_RISR_RX1024TOMAXOCTETS_GB_INDEX 15
0719 #define MMC_RISR_RX1024TOMAXOCTETS_GB_WIDTH 1
0720 #define MMC_RISR_RXUNICASTFRAMES_G_INDEX 16
0721 #define MMC_RISR_RXUNICASTFRAMES_G_WIDTH 1
0722 #define MMC_RISR_RXLENGTHERROR_INDEX 17
0723 #define MMC_RISR_RXLENGTHERROR_WIDTH 1
0724 #define MMC_RISR_RXOUTOFRANGETYPE_INDEX 18
0725 #define MMC_RISR_RXOUTOFRANGETYPE_WIDTH 1
0726 #define MMC_RISR_RXPAUSEFRAMES_INDEX 19
0727 #define MMC_RISR_RXPAUSEFRAMES_WIDTH 1
0728 #define MMC_RISR_RXFIFOOVERFLOW_INDEX 20
0729 #define MMC_RISR_RXFIFOOVERFLOW_WIDTH 1
0730 #define MMC_RISR_RXVLANFRAMES_GB_INDEX 21
0731 #define MMC_RISR_RXVLANFRAMES_GB_WIDTH 1
0732 #define MMC_RISR_RXWATCHDOGERROR_INDEX 22
0733 #define MMC_RISR_RXWATCHDOGERROR_WIDTH 1
0734 #define MMC_TIER_ALL_INTERRUPTS_INDEX 0
0735 #define MMC_TIER_ALL_INTERRUPTS_WIDTH 18
0736 #define MMC_TISR_TXOCTETCOUNT_GB_INDEX 0
0737 #define MMC_TISR_TXOCTETCOUNT_GB_WIDTH 1
0738 #define MMC_TISR_TXFRAMECOUNT_GB_INDEX 1
0739 #define MMC_TISR_TXFRAMECOUNT_GB_WIDTH 1
0740 #define MMC_TISR_TXBROADCASTFRAMES_G_INDEX 2
0741 #define MMC_TISR_TXBROADCASTFRAMES_G_WIDTH 1
0742 #define MMC_TISR_TXMULTICASTFRAMES_G_INDEX 3
0743 #define MMC_TISR_TXMULTICASTFRAMES_G_WIDTH 1
0744 #define MMC_TISR_TX64OCTETS_GB_INDEX 4
0745 #define MMC_TISR_TX64OCTETS_GB_WIDTH 1
0746 #define MMC_TISR_TX65TO127OCTETS_GB_INDEX 5
0747 #define MMC_TISR_TX65TO127OCTETS_GB_WIDTH 1
0748 #define MMC_TISR_TX128TO255OCTETS_GB_INDEX 6
0749 #define MMC_TISR_TX128TO255OCTETS_GB_WIDTH 1
0750 #define MMC_TISR_TX256TO511OCTETS_GB_INDEX 7
0751 #define MMC_TISR_TX256TO511OCTETS_GB_WIDTH 1
0752 #define MMC_TISR_TX512TO1023OCTETS_GB_INDEX 8
0753 #define MMC_TISR_TX512TO1023OCTETS_GB_WIDTH 1
0754 #define MMC_TISR_TX1024TOMAXOCTETS_GB_INDEX 9
0755 #define MMC_TISR_TX1024TOMAXOCTETS_GB_WIDTH 1
0756 #define MMC_TISR_TXUNICASTFRAMES_GB_INDEX 10
0757 #define MMC_TISR_TXUNICASTFRAMES_GB_WIDTH 1
0758 #define MMC_TISR_TXMULTICASTFRAMES_GB_INDEX 11
0759 #define MMC_TISR_TXMULTICASTFRAMES_GB_WIDTH 1
0760 #define MMC_TISR_TXBROADCASTFRAMES_GB_INDEX 12
0761 #define MMC_TISR_TXBROADCASTFRAMES_GB_WIDTH 1
0762 #define MMC_TISR_TXUNDERFLOWERROR_INDEX 13
0763 #define MMC_TISR_TXUNDERFLOWERROR_WIDTH 1
0764 #define MMC_TISR_TXOCTETCOUNT_G_INDEX 14
0765 #define MMC_TISR_TXOCTETCOUNT_G_WIDTH 1
0766 #define MMC_TISR_TXFRAMECOUNT_G_INDEX 15
0767 #define MMC_TISR_TXFRAMECOUNT_G_WIDTH 1
0768 #define MMC_TISR_TXPAUSEFRAMES_INDEX 16
0769 #define MMC_TISR_TXPAUSEFRAMES_WIDTH 1
0770 #define MMC_TISR_TXVLANFRAMES_G_INDEX 17
0771 #define MMC_TISR_TXVLANFRAMES_G_WIDTH 1
0772
0773
0774 #define MTL_OMR 0x1000
0775 #define MTL_FDCR 0x1008
0776 #define MTL_FDSR 0x100c
0777 #define MTL_FDDR 0x1010
0778 #define MTL_ISR 0x1020
0779 #define MTL_RQDCM0R 0x1030
0780 #define MTL_TCPM0R 0x1040
0781 #define MTL_TCPM1R 0x1044
0782
0783 #define MTL_RQDCM_INC 4
0784 #define MTL_RQDCM_Q_PER_REG 4
0785 #define MTL_TCPM_INC 4
0786 #define MTL_TCPM_TC_PER_REG 4
0787
0788
0789 #define MTL_OMR_ETSALG_INDEX 5
0790 #define MTL_OMR_ETSALG_WIDTH 2
0791 #define MTL_OMR_RAA_INDEX 2
0792 #define MTL_OMR_RAA_WIDTH 1
0793
0794
0795
0796
0797
0798
0799 #define MTL_Q_BASE 0x1100
0800 #define MTL_Q_INC 0x80
0801
0802 #define MTL_Q_TQOMR 0x00
0803 #define MTL_Q_TQUR 0x04
0804 #define MTL_Q_TQDR 0x08
0805 #define MTL_Q_RQOMR 0x40
0806 #define MTL_Q_RQMPOCR 0x44
0807 #define MTL_Q_RQDR 0x48
0808 #define MTL_Q_RQFCR 0x50
0809 #define MTL_Q_IER 0x70
0810 #define MTL_Q_ISR 0x74
0811
0812
0813 #define MTL_Q_RQDR_PRXQ_INDEX 16
0814 #define MTL_Q_RQDR_PRXQ_WIDTH 14
0815 #define MTL_Q_RQDR_RXQSTS_INDEX 4
0816 #define MTL_Q_RQDR_RXQSTS_WIDTH 2
0817 #define MTL_Q_RQFCR_RFA_INDEX 1
0818 #define MTL_Q_RQFCR_RFA_WIDTH 6
0819 #define MTL_Q_RQFCR_RFD_INDEX 17
0820 #define MTL_Q_RQFCR_RFD_WIDTH 6
0821 #define MTL_Q_RQOMR_EHFC_INDEX 7
0822 #define MTL_Q_RQOMR_EHFC_WIDTH 1
0823 #define MTL_Q_RQOMR_RQS_INDEX 16
0824 #define MTL_Q_RQOMR_RQS_WIDTH 9
0825 #define MTL_Q_RQOMR_RSF_INDEX 5
0826 #define MTL_Q_RQOMR_RSF_WIDTH 1
0827 #define MTL_Q_RQOMR_RTC_INDEX 0
0828 #define MTL_Q_RQOMR_RTC_WIDTH 2
0829 #define MTL_Q_TQDR_TRCSTS_INDEX 1
0830 #define MTL_Q_TQDR_TRCSTS_WIDTH 2
0831 #define MTL_Q_TQDR_TXQSTS_INDEX 4
0832 #define MTL_Q_TQDR_TXQSTS_WIDTH 1
0833 #define MTL_Q_TQOMR_FTQ_INDEX 0
0834 #define MTL_Q_TQOMR_FTQ_WIDTH 1
0835 #define MTL_Q_TQOMR_Q2TCMAP_INDEX 8
0836 #define MTL_Q_TQOMR_Q2TCMAP_WIDTH 3
0837 #define MTL_Q_TQOMR_TQS_INDEX 16
0838 #define MTL_Q_TQOMR_TQS_WIDTH 10
0839 #define MTL_Q_TQOMR_TSF_INDEX 1
0840 #define MTL_Q_TQOMR_TSF_WIDTH 1
0841 #define MTL_Q_TQOMR_TTC_INDEX 4
0842 #define MTL_Q_TQOMR_TTC_WIDTH 3
0843 #define MTL_Q_TQOMR_TXQEN_INDEX 2
0844 #define MTL_Q_TQOMR_TXQEN_WIDTH 2
0845
0846
0847 #define MTL_RSF_DISABLE 0x00
0848 #define MTL_RSF_ENABLE 0x01
0849 #define MTL_TSF_DISABLE 0x00
0850 #define MTL_TSF_ENABLE 0x01
0851
0852 #define MTL_RX_THRESHOLD_64 0x00
0853 #define MTL_RX_THRESHOLD_96 0x02
0854 #define MTL_RX_THRESHOLD_128 0x03
0855 #define MTL_TX_THRESHOLD_32 0x01
0856 #define MTL_TX_THRESHOLD_64 0x00
0857 #define MTL_TX_THRESHOLD_96 0x02
0858 #define MTL_TX_THRESHOLD_128 0x03
0859 #define MTL_TX_THRESHOLD_192 0x04
0860 #define MTL_TX_THRESHOLD_256 0x05
0861 #define MTL_TX_THRESHOLD_384 0x06
0862 #define MTL_TX_THRESHOLD_512 0x07
0863
0864 #define MTL_ETSALG_WRR 0x00
0865 #define MTL_ETSALG_WFQ 0x01
0866 #define MTL_ETSALG_DWRR 0x02
0867 #define MTL_RAA_SP 0x00
0868 #define MTL_RAA_WSP 0x01
0869
0870 #define MTL_Q_DISABLED 0x00
0871 #define MTL_Q_ENABLED 0x02
0872
0873
0874
0875
0876
0877
0878 #define MTL_TC_BASE MTL_Q_BASE
0879 #define MTL_TC_INC MTL_Q_INC
0880
0881 #define MTL_TC_ETSCR 0x10
0882 #define MTL_TC_ETSSR 0x14
0883 #define MTL_TC_QWR 0x18
0884
0885
0886 #define MTL_TC_ETSCR_TSA_INDEX 0
0887 #define MTL_TC_ETSCR_TSA_WIDTH 2
0888 #define MTL_TC_QWR_QW_INDEX 0
0889 #define MTL_TC_QWR_QW_WIDTH 21
0890
0891
0892 #define MTL_TSA_SP 0x00
0893 #define MTL_TSA_ETS 0x02
0894
0895
0896 #define PCS_V1_WINDOW_SELECT 0x03fc
0897 #define PCS_V2_WINDOW_DEF 0x9060
0898 #define PCS_V2_WINDOW_SELECT 0x9064
0899 #define PCS_V2_RV_WINDOW_DEF 0x1060
0900 #define PCS_V2_RV_WINDOW_SELECT 0x1064
0901 #define PCS_V2_YC_WINDOW_DEF 0x18060
0902 #define PCS_V2_YC_WINDOW_SELECT 0x18064
0903
0904
0905 #define PCS_V2_WINDOW_DEF_OFFSET_INDEX 6
0906 #define PCS_V2_WINDOW_DEF_OFFSET_WIDTH 14
0907 #define PCS_V2_WINDOW_DEF_SIZE_INDEX 2
0908 #define PCS_V2_WINDOW_DEF_SIZE_WIDTH 4
0909
0910
0911 #define SIR0_KR_RT_1 0x002c
0912 #define SIR0_STATUS 0x0040
0913 #define SIR1_SPEED 0x0000
0914
0915
0916 #define SIR0_KR_RT_1_RESET_INDEX 11
0917 #define SIR0_KR_RT_1_RESET_WIDTH 1
0918 #define SIR0_STATUS_RX_READY_INDEX 0
0919 #define SIR0_STATUS_RX_READY_WIDTH 1
0920 #define SIR0_STATUS_TX_READY_INDEX 8
0921 #define SIR0_STATUS_TX_READY_WIDTH 1
0922 #define SIR1_SPEED_CDR_RATE_INDEX 12
0923 #define SIR1_SPEED_CDR_RATE_WIDTH 4
0924 #define SIR1_SPEED_DATARATE_INDEX 4
0925 #define SIR1_SPEED_DATARATE_WIDTH 2
0926 #define SIR1_SPEED_PLLSEL_INDEX 3
0927 #define SIR1_SPEED_PLLSEL_WIDTH 1
0928 #define SIR1_SPEED_RATECHANGE_INDEX 6
0929 #define SIR1_SPEED_RATECHANGE_WIDTH 1
0930 #define SIR1_SPEED_TXAMP_INDEX 8
0931 #define SIR1_SPEED_TXAMP_WIDTH 4
0932 #define SIR1_SPEED_WORDMODE_INDEX 0
0933 #define SIR1_SPEED_WORDMODE_WIDTH 3
0934
0935
0936 #define RXTX_REG6 0x0018
0937 #define RXTX_REG20 0x0050
0938 #define RXTX_REG22 0x0058
0939 #define RXTX_REG114 0x01c8
0940 #define RXTX_REG129 0x0204
0941
0942
0943 #define RXTX_REG6_RESETB_RXD_INDEX 8
0944 #define RXTX_REG6_RESETB_RXD_WIDTH 1
0945 #define RXTX_REG20_BLWC_ENA_INDEX 2
0946 #define RXTX_REG20_BLWC_ENA_WIDTH 1
0947 #define RXTX_REG114_PQ_REG_INDEX 9
0948 #define RXTX_REG114_PQ_REG_WIDTH 7
0949 #define RXTX_REG129_RXDFE_CONFIG_INDEX 14
0950 #define RXTX_REG129_RXDFE_CONFIG_WIDTH 2
0951
0952
0953 #define XP_PROP_0 0x0000
0954 #define XP_PROP_1 0x0004
0955 #define XP_PROP_2 0x0008
0956 #define XP_PROP_3 0x000c
0957 #define XP_PROP_4 0x0010
0958 #define XP_PROP_5 0x0014
0959 #define XP_MAC_ADDR_LO 0x0020
0960 #define XP_MAC_ADDR_HI 0x0024
0961 #define XP_ECC_ISR 0x0030
0962 #define XP_ECC_IER 0x0034
0963 #define XP_ECC_CNT0 0x003c
0964 #define XP_ECC_CNT1 0x0040
0965 #define XP_DRIVER_INT_REQ 0x0060
0966 #define XP_DRIVER_INT_RO 0x0064
0967 #define XP_DRIVER_SCRATCH_0 0x0068
0968 #define XP_DRIVER_SCRATCH_1 0x006c
0969 #define XP_INT_REISSUE_EN 0x0074
0970 #define XP_INT_EN 0x0078
0971 #define XP_I2C_MUTEX 0x0080
0972 #define XP_MDIO_MUTEX 0x0084
0973
0974
0975 #define XP_DRIVER_INT_REQ_REQUEST_INDEX 0
0976 #define XP_DRIVER_INT_REQ_REQUEST_WIDTH 1
0977 #define XP_DRIVER_INT_RO_STATUS_INDEX 0
0978 #define XP_DRIVER_INT_RO_STATUS_WIDTH 1
0979 #define XP_DRIVER_SCRATCH_0_COMMAND_INDEX 0
0980 #define XP_DRIVER_SCRATCH_0_COMMAND_WIDTH 8
0981 #define XP_DRIVER_SCRATCH_0_SUB_COMMAND_INDEX 8
0982 #define XP_DRIVER_SCRATCH_0_SUB_COMMAND_WIDTH 8
0983 #define XP_ECC_CNT0_RX_DED_INDEX 24
0984 #define XP_ECC_CNT0_RX_DED_WIDTH 8
0985 #define XP_ECC_CNT0_RX_SEC_INDEX 16
0986 #define XP_ECC_CNT0_RX_SEC_WIDTH 8
0987 #define XP_ECC_CNT0_TX_DED_INDEX 8
0988 #define XP_ECC_CNT0_TX_DED_WIDTH 8
0989 #define XP_ECC_CNT0_TX_SEC_INDEX 0
0990 #define XP_ECC_CNT0_TX_SEC_WIDTH 8
0991 #define XP_ECC_CNT1_DESC_DED_INDEX 8
0992 #define XP_ECC_CNT1_DESC_DED_WIDTH 8
0993 #define XP_ECC_CNT1_DESC_SEC_INDEX 0
0994 #define XP_ECC_CNT1_DESC_SEC_WIDTH 8
0995 #define XP_ECC_IER_DESC_DED_INDEX 5
0996 #define XP_ECC_IER_DESC_DED_WIDTH 1
0997 #define XP_ECC_IER_DESC_SEC_INDEX 4
0998 #define XP_ECC_IER_DESC_SEC_WIDTH 1
0999 #define XP_ECC_IER_RX_DED_INDEX 3
1000 #define XP_ECC_IER_RX_DED_WIDTH 1
1001 #define XP_ECC_IER_RX_SEC_INDEX 2
1002 #define XP_ECC_IER_RX_SEC_WIDTH 1
1003 #define XP_ECC_IER_TX_DED_INDEX 1
1004 #define XP_ECC_IER_TX_DED_WIDTH 1
1005 #define XP_ECC_IER_TX_SEC_INDEX 0
1006 #define XP_ECC_IER_TX_SEC_WIDTH 1
1007 #define XP_ECC_ISR_DESC_DED_INDEX 5
1008 #define XP_ECC_ISR_DESC_DED_WIDTH 1
1009 #define XP_ECC_ISR_DESC_SEC_INDEX 4
1010 #define XP_ECC_ISR_DESC_SEC_WIDTH 1
1011 #define XP_ECC_ISR_RX_DED_INDEX 3
1012 #define XP_ECC_ISR_RX_DED_WIDTH 1
1013 #define XP_ECC_ISR_RX_SEC_INDEX 2
1014 #define XP_ECC_ISR_RX_SEC_WIDTH 1
1015 #define XP_ECC_ISR_TX_DED_INDEX 1
1016 #define XP_ECC_ISR_TX_DED_WIDTH 1
1017 #define XP_ECC_ISR_TX_SEC_INDEX 0
1018 #define XP_ECC_ISR_TX_SEC_WIDTH 1
1019 #define XP_I2C_MUTEX_BUSY_INDEX 31
1020 #define XP_I2C_MUTEX_BUSY_WIDTH 1
1021 #define XP_I2C_MUTEX_ID_INDEX 29
1022 #define XP_I2C_MUTEX_ID_WIDTH 2
1023 #define XP_I2C_MUTEX_ACTIVE_INDEX 0
1024 #define XP_I2C_MUTEX_ACTIVE_WIDTH 1
1025 #define XP_MAC_ADDR_HI_VALID_INDEX 31
1026 #define XP_MAC_ADDR_HI_VALID_WIDTH 1
1027 #define XP_PROP_0_CONN_TYPE_INDEX 28
1028 #define XP_PROP_0_CONN_TYPE_WIDTH 3
1029 #define XP_PROP_0_MDIO_ADDR_INDEX 16
1030 #define XP_PROP_0_MDIO_ADDR_WIDTH 5
1031 #define XP_PROP_0_PORT_ID_INDEX 0
1032 #define XP_PROP_0_PORT_ID_WIDTH 8
1033 #define XP_PROP_0_PORT_MODE_INDEX 8
1034 #define XP_PROP_0_PORT_MODE_WIDTH 4
1035 #define XP_PROP_0_PORT_SPEEDS_INDEX 22
1036 #define XP_PROP_0_PORT_SPEEDS_WIDTH 5
1037 #define XP_PROP_1_MAX_RX_DMA_INDEX 24
1038 #define XP_PROP_1_MAX_RX_DMA_WIDTH 5
1039 #define XP_PROP_1_MAX_RX_QUEUES_INDEX 8
1040 #define XP_PROP_1_MAX_RX_QUEUES_WIDTH 5
1041 #define XP_PROP_1_MAX_TX_DMA_INDEX 16
1042 #define XP_PROP_1_MAX_TX_DMA_WIDTH 5
1043 #define XP_PROP_1_MAX_TX_QUEUES_INDEX 0
1044 #define XP_PROP_1_MAX_TX_QUEUES_WIDTH 5
1045 #define XP_PROP_2_RX_FIFO_SIZE_INDEX 16
1046 #define XP_PROP_2_RX_FIFO_SIZE_WIDTH 16
1047 #define XP_PROP_2_TX_FIFO_SIZE_INDEX 0
1048 #define XP_PROP_2_TX_FIFO_SIZE_WIDTH 16
1049 #define XP_PROP_3_GPIO_MASK_INDEX 28
1050 #define XP_PROP_3_GPIO_MASK_WIDTH 4
1051 #define XP_PROP_3_GPIO_MOD_ABS_INDEX 20
1052 #define XP_PROP_3_GPIO_MOD_ABS_WIDTH 4
1053 #define XP_PROP_3_GPIO_RATE_SELECT_INDEX 16
1054 #define XP_PROP_3_GPIO_RATE_SELECT_WIDTH 4
1055 #define XP_PROP_3_GPIO_RX_LOS_INDEX 24
1056 #define XP_PROP_3_GPIO_RX_LOS_WIDTH 4
1057 #define XP_PROP_3_GPIO_TX_FAULT_INDEX 12
1058 #define XP_PROP_3_GPIO_TX_FAULT_WIDTH 4
1059 #define XP_PROP_3_GPIO_ADDR_INDEX 8
1060 #define XP_PROP_3_GPIO_ADDR_WIDTH 3
1061 #define XP_PROP_3_MDIO_RESET_INDEX 0
1062 #define XP_PROP_3_MDIO_RESET_WIDTH 2
1063 #define XP_PROP_3_MDIO_RESET_I2C_ADDR_INDEX 8
1064 #define XP_PROP_3_MDIO_RESET_I2C_ADDR_WIDTH 3
1065 #define XP_PROP_3_MDIO_RESET_I2C_GPIO_INDEX 12
1066 #define XP_PROP_3_MDIO_RESET_I2C_GPIO_WIDTH 4
1067 #define XP_PROP_3_MDIO_RESET_INT_GPIO_INDEX 4
1068 #define XP_PROP_3_MDIO_RESET_INT_GPIO_WIDTH 2
1069 #define XP_PROP_4_MUX_ADDR_HI_INDEX 8
1070 #define XP_PROP_4_MUX_ADDR_HI_WIDTH 5
1071 #define XP_PROP_4_MUX_ADDR_LO_INDEX 0
1072 #define XP_PROP_4_MUX_ADDR_LO_WIDTH 3
1073 #define XP_PROP_4_MUX_CHAN_INDEX 4
1074 #define XP_PROP_4_MUX_CHAN_WIDTH 3
1075 #define XP_PROP_4_REDRV_ADDR_INDEX 16
1076 #define XP_PROP_4_REDRV_ADDR_WIDTH 7
1077 #define XP_PROP_4_REDRV_IF_INDEX 23
1078 #define XP_PROP_4_REDRV_IF_WIDTH 1
1079 #define XP_PROP_4_REDRV_LANE_INDEX 24
1080 #define XP_PROP_4_REDRV_LANE_WIDTH 3
1081 #define XP_PROP_4_REDRV_MODEL_INDEX 28
1082 #define XP_PROP_4_REDRV_MODEL_WIDTH 3
1083 #define XP_PROP_4_REDRV_PRESENT_INDEX 31
1084 #define XP_PROP_4_REDRV_PRESENT_WIDTH 1
1085
1086
1087 #define IC_CON 0x0000
1088 #define IC_TAR 0x0004
1089 #define IC_DATA_CMD 0x0010
1090 #define IC_INTR_STAT 0x002c
1091 #define IC_INTR_MASK 0x0030
1092 #define IC_RAW_INTR_STAT 0x0034
1093 #define IC_CLR_INTR 0x0040
1094 #define IC_CLR_TX_ABRT 0x0054
1095 #define IC_CLR_STOP_DET 0x0060
1096 #define IC_ENABLE 0x006c
1097 #define IC_TXFLR 0x0074
1098 #define IC_RXFLR 0x0078
1099 #define IC_TX_ABRT_SOURCE 0x0080
1100 #define IC_ENABLE_STATUS 0x009c
1101 #define IC_COMP_PARAM_1 0x00f4
1102
1103
1104 #define IC_COMP_PARAM_1_MAX_SPEED_MODE_INDEX 2
1105 #define IC_COMP_PARAM_1_MAX_SPEED_MODE_WIDTH 2
1106 #define IC_COMP_PARAM_1_RX_BUFFER_DEPTH_INDEX 8
1107 #define IC_COMP_PARAM_1_RX_BUFFER_DEPTH_WIDTH 8
1108 #define IC_COMP_PARAM_1_TX_BUFFER_DEPTH_INDEX 16
1109 #define IC_COMP_PARAM_1_TX_BUFFER_DEPTH_WIDTH 8
1110 #define IC_CON_MASTER_MODE_INDEX 0
1111 #define IC_CON_MASTER_MODE_WIDTH 1
1112 #define IC_CON_RESTART_EN_INDEX 5
1113 #define IC_CON_RESTART_EN_WIDTH 1
1114 #define IC_CON_RX_FIFO_FULL_HOLD_INDEX 9
1115 #define IC_CON_RX_FIFO_FULL_HOLD_WIDTH 1
1116 #define IC_CON_SLAVE_DISABLE_INDEX 6
1117 #define IC_CON_SLAVE_DISABLE_WIDTH 1
1118 #define IC_CON_SPEED_INDEX 1
1119 #define IC_CON_SPEED_WIDTH 2
1120 #define IC_DATA_CMD_CMD_INDEX 8
1121 #define IC_DATA_CMD_CMD_WIDTH 1
1122 #define IC_DATA_CMD_STOP_INDEX 9
1123 #define IC_DATA_CMD_STOP_WIDTH 1
1124 #define IC_ENABLE_ABORT_INDEX 1
1125 #define IC_ENABLE_ABORT_WIDTH 1
1126 #define IC_ENABLE_EN_INDEX 0
1127 #define IC_ENABLE_EN_WIDTH 1
1128 #define IC_ENABLE_STATUS_EN_INDEX 0
1129 #define IC_ENABLE_STATUS_EN_WIDTH 1
1130 #define IC_INTR_MASK_TX_EMPTY_INDEX 4
1131 #define IC_INTR_MASK_TX_EMPTY_WIDTH 1
1132 #define IC_RAW_INTR_STAT_RX_FULL_INDEX 2
1133 #define IC_RAW_INTR_STAT_RX_FULL_WIDTH 1
1134 #define IC_RAW_INTR_STAT_STOP_DET_INDEX 9
1135 #define IC_RAW_INTR_STAT_STOP_DET_WIDTH 1
1136 #define IC_RAW_INTR_STAT_TX_ABRT_INDEX 6
1137 #define IC_RAW_INTR_STAT_TX_ABRT_WIDTH 1
1138 #define IC_RAW_INTR_STAT_TX_EMPTY_INDEX 4
1139 #define IC_RAW_INTR_STAT_TX_EMPTY_WIDTH 1
1140
1141
1142 #define IC_TX_ABRT_7B_ADDR_NOACK 0x0001
1143 #define IC_TX_ABRT_ARB_LOST 0x1000
1144
1145
1146 #define RX_PACKET_ERRORS_CRC_INDEX 2
1147 #define RX_PACKET_ERRORS_CRC_WIDTH 1
1148 #define RX_PACKET_ERRORS_FRAME_INDEX 3
1149 #define RX_PACKET_ERRORS_FRAME_WIDTH 1
1150 #define RX_PACKET_ERRORS_LENGTH_INDEX 0
1151 #define RX_PACKET_ERRORS_LENGTH_WIDTH 1
1152 #define RX_PACKET_ERRORS_OVERRUN_INDEX 1
1153 #define RX_PACKET_ERRORS_OVERRUN_WIDTH 1
1154
1155 #define RX_PACKET_ATTRIBUTES_CSUM_DONE_INDEX 0
1156 #define RX_PACKET_ATTRIBUTES_CSUM_DONE_WIDTH 1
1157 #define RX_PACKET_ATTRIBUTES_VLAN_CTAG_INDEX 1
1158 #define RX_PACKET_ATTRIBUTES_VLAN_CTAG_WIDTH 1
1159 #define RX_PACKET_ATTRIBUTES_LAST_INDEX 2
1160 #define RX_PACKET_ATTRIBUTES_LAST_WIDTH 1
1161 #define RX_PACKET_ATTRIBUTES_CONTEXT_NEXT_INDEX 3
1162 #define RX_PACKET_ATTRIBUTES_CONTEXT_NEXT_WIDTH 1
1163 #define RX_PACKET_ATTRIBUTES_CONTEXT_INDEX 4
1164 #define RX_PACKET_ATTRIBUTES_CONTEXT_WIDTH 1
1165 #define RX_PACKET_ATTRIBUTES_RX_TSTAMP_INDEX 5
1166 #define RX_PACKET_ATTRIBUTES_RX_TSTAMP_WIDTH 1
1167 #define RX_PACKET_ATTRIBUTES_RSS_HASH_INDEX 6
1168 #define RX_PACKET_ATTRIBUTES_RSS_HASH_WIDTH 1
1169 #define RX_PACKET_ATTRIBUTES_FIRST_INDEX 7
1170 #define RX_PACKET_ATTRIBUTES_FIRST_WIDTH 1
1171 #define RX_PACKET_ATTRIBUTES_TNP_INDEX 8
1172 #define RX_PACKET_ATTRIBUTES_TNP_WIDTH 1
1173 #define RX_PACKET_ATTRIBUTES_TNPCSUM_DONE_INDEX 9
1174 #define RX_PACKET_ATTRIBUTES_TNPCSUM_DONE_WIDTH 1
1175
1176 #define RX_NORMAL_DESC0_OVT_INDEX 0
1177 #define RX_NORMAL_DESC0_OVT_WIDTH 16
1178 #define RX_NORMAL_DESC2_HL_INDEX 0
1179 #define RX_NORMAL_DESC2_HL_WIDTH 10
1180 #define RX_NORMAL_DESC2_TNP_INDEX 11
1181 #define RX_NORMAL_DESC2_TNP_WIDTH 1
1182 #define RX_NORMAL_DESC3_CDA_INDEX 27
1183 #define RX_NORMAL_DESC3_CDA_WIDTH 1
1184 #define RX_NORMAL_DESC3_CTXT_INDEX 30
1185 #define RX_NORMAL_DESC3_CTXT_WIDTH 1
1186 #define RX_NORMAL_DESC3_ES_INDEX 15
1187 #define RX_NORMAL_DESC3_ES_WIDTH 1
1188 #define RX_NORMAL_DESC3_ETLT_INDEX 16
1189 #define RX_NORMAL_DESC3_ETLT_WIDTH 4
1190 #define RX_NORMAL_DESC3_FD_INDEX 29
1191 #define RX_NORMAL_DESC3_FD_WIDTH 1
1192 #define RX_NORMAL_DESC3_INTE_INDEX 30
1193 #define RX_NORMAL_DESC3_INTE_WIDTH 1
1194 #define RX_NORMAL_DESC3_L34T_INDEX 20
1195 #define RX_NORMAL_DESC3_L34T_WIDTH 4
1196 #define RX_NORMAL_DESC3_LD_INDEX 28
1197 #define RX_NORMAL_DESC3_LD_WIDTH 1
1198 #define RX_NORMAL_DESC3_OWN_INDEX 31
1199 #define RX_NORMAL_DESC3_OWN_WIDTH 1
1200 #define RX_NORMAL_DESC3_PL_INDEX 0
1201 #define RX_NORMAL_DESC3_PL_WIDTH 14
1202 #define RX_NORMAL_DESC3_RSV_INDEX 26
1203 #define RX_NORMAL_DESC3_RSV_WIDTH 1
1204
1205 #define RX_DESC3_L34T_IPV4_TCP 1
1206 #define RX_DESC3_L34T_IPV4_UDP 2
1207 #define RX_DESC3_L34T_IPV4_ICMP 3
1208 #define RX_DESC3_L34T_IPV4_UNKNOWN 7
1209 #define RX_DESC3_L34T_IPV6_TCP 9
1210 #define RX_DESC3_L34T_IPV6_UDP 10
1211 #define RX_DESC3_L34T_IPV6_ICMP 11
1212 #define RX_DESC3_L34T_IPV6_UNKNOWN 15
1213
1214 #define RX_CONTEXT_DESC3_TSA_INDEX 4
1215 #define RX_CONTEXT_DESC3_TSA_WIDTH 1
1216 #define RX_CONTEXT_DESC3_TSD_INDEX 6
1217 #define RX_CONTEXT_DESC3_TSD_WIDTH 1
1218
1219 #define TX_PACKET_ATTRIBUTES_CSUM_ENABLE_INDEX 0
1220 #define TX_PACKET_ATTRIBUTES_CSUM_ENABLE_WIDTH 1
1221 #define TX_PACKET_ATTRIBUTES_TSO_ENABLE_INDEX 1
1222 #define TX_PACKET_ATTRIBUTES_TSO_ENABLE_WIDTH 1
1223 #define TX_PACKET_ATTRIBUTES_VLAN_CTAG_INDEX 2
1224 #define TX_PACKET_ATTRIBUTES_VLAN_CTAG_WIDTH 1
1225 #define TX_PACKET_ATTRIBUTES_PTP_INDEX 3
1226 #define TX_PACKET_ATTRIBUTES_PTP_WIDTH 1
1227 #define TX_PACKET_ATTRIBUTES_VXLAN_INDEX 4
1228 #define TX_PACKET_ATTRIBUTES_VXLAN_WIDTH 1
1229
1230 #define TX_CONTEXT_DESC2_MSS_INDEX 0
1231 #define TX_CONTEXT_DESC2_MSS_WIDTH 15
1232 #define TX_CONTEXT_DESC3_CTXT_INDEX 30
1233 #define TX_CONTEXT_DESC3_CTXT_WIDTH 1
1234 #define TX_CONTEXT_DESC3_TCMSSV_INDEX 26
1235 #define TX_CONTEXT_DESC3_TCMSSV_WIDTH 1
1236 #define TX_CONTEXT_DESC3_VLTV_INDEX 16
1237 #define TX_CONTEXT_DESC3_VLTV_WIDTH 1
1238 #define TX_CONTEXT_DESC3_VT_INDEX 0
1239 #define TX_CONTEXT_DESC3_VT_WIDTH 16
1240
1241 #define TX_NORMAL_DESC2_HL_B1L_INDEX 0
1242 #define TX_NORMAL_DESC2_HL_B1L_WIDTH 14
1243 #define TX_NORMAL_DESC2_IC_INDEX 31
1244 #define TX_NORMAL_DESC2_IC_WIDTH 1
1245 #define TX_NORMAL_DESC2_TTSE_INDEX 30
1246 #define TX_NORMAL_DESC2_TTSE_WIDTH 1
1247 #define TX_NORMAL_DESC2_VTIR_INDEX 14
1248 #define TX_NORMAL_DESC2_VTIR_WIDTH 2
1249 #define TX_NORMAL_DESC3_CIC_INDEX 16
1250 #define TX_NORMAL_DESC3_CIC_WIDTH 2
1251 #define TX_NORMAL_DESC3_CPC_INDEX 26
1252 #define TX_NORMAL_DESC3_CPC_WIDTH 2
1253 #define TX_NORMAL_DESC3_CTXT_INDEX 30
1254 #define TX_NORMAL_DESC3_CTXT_WIDTH 1
1255 #define TX_NORMAL_DESC3_FD_INDEX 29
1256 #define TX_NORMAL_DESC3_FD_WIDTH 1
1257 #define TX_NORMAL_DESC3_FL_INDEX 0
1258 #define TX_NORMAL_DESC3_FL_WIDTH 15
1259 #define TX_NORMAL_DESC3_LD_INDEX 28
1260 #define TX_NORMAL_DESC3_LD_WIDTH 1
1261 #define TX_NORMAL_DESC3_OWN_INDEX 31
1262 #define TX_NORMAL_DESC3_OWN_WIDTH 1
1263 #define TX_NORMAL_DESC3_TCPHDRLEN_INDEX 19
1264 #define TX_NORMAL_DESC3_TCPHDRLEN_WIDTH 4
1265 #define TX_NORMAL_DESC3_TCPPL_INDEX 0
1266 #define TX_NORMAL_DESC3_TCPPL_WIDTH 18
1267 #define TX_NORMAL_DESC3_TSE_INDEX 18
1268 #define TX_NORMAL_DESC3_TSE_WIDTH 1
1269 #define TX_NORMAL_DESC3_VNP_INDEX 23
1270 #define TX_NORMAL_DESC3_VNP_WIDTH 3
1271
1272 #define TX_NORMAL_DESC2_VLAN_INSERT 0x2
1273 #define TX_NORMAL_DESC3_VXLAN_PACKET 0x3
1274
1275
1276 #ifndef MDIO_PMA_10GBR_PMD_CTRL
1277 #define MDIO_PMA_10GBR_PMD_CTRL 0x0096
1278 #endif
1279
1280 #ifndef MDIO_PMA_10GBR_FECCTRL
1281 #define MDIO_PMA_10GBR_FECCTRL 0x00ab
1282 #endif
1283
1284 #ifndef MDIO_PMA_RX_CTRL1
1285 #define MDIO_PMA_RX_CTRL1 0x8051
1286 #endif
1287
1288 #ifndef MDIO_PCS_DIG_CTRL
1289 #define MDIO_PCS_DIG_CTRL 0x8000
1290 #endif
1291
1292 #ifndef MDIO_PCS_DIGITAL_STAT
1293 #define MDIO_PCS_DIGITAL_STAT 0x8010
1294 #endif
1295
1296 #ifndef MDIO_AN_XNP
1297 #define MDIO_AN_XNP 0x0016
1298 #endif
1299
1300 #ifndef MDIO_AN_LPX
1301 #define MDIO_AN_LPX 0x0019
1302 #endif
1303
1304 #ifndef MDIO_AN_COMP_STAT
1305 #define MDIO_AN_COMP_STAT 0x0030
1306 #endif
1307
1308 #ifndef MDIO_AN_INTMASK
1309 #define MDIO_AN_INTMASK 0x8001
1310 #endif
1311
1312 #ifndef MDIO_AN_INT
1313 #define MDIO_AN_INT 0x8002
1314 #endif
1315
1316 #ifndef MDIO_VEND2_AN_ADVERTISE
1317 #define MDIO_VEND2_AN_ADVERTISE 0x0004
1318 #endif
1319
1320 #ifndef MDIO_VEND2_AN_LP_ABILITY
1321 #define MDIO_VEND2_AN_LP_ABILITY 0x0005
1322 #endif
1323
1324 #ifndef MDIO_VEND2_AN_CTRL
1325 #define MDIO_VEND2_AN_CTRL 0x8001
1326 #endif
1327
1328 #ifndef MDIO_VEND2_AN_STAT
1329 #define MDIO_VEND2_AN_STAT 0x8002
1330 #endif
1331
1332 #ifndef MDIO_VEND2_PMA_CDR_CONTROL
1333 #define MDIO_VEND2_PMA_CDR_CONTROL 0x8056
1334 #endif
1335
1336 #ifndef MDIO_VEND2_PMA_MISC_CTRL0
1337 #define MDIO_VEND2_PMA_MISC_CTRL0 0x8090
1338 #endif
1339
1340 #ifndef MDIO_CTRL1_SPEED1G
1341 #define MDIO_CTRL1_SPEED1G (MDIO_CTRL1_SPEED10G & ~BMCR_SPEED100)
1342 #endif
1343
1344 #ifndef MDIO_VEND2_CTRL1_AN_ENABLE
1345 #define MDIO_VEND2_CTRL1_AN_ENABLE BIT(12)
1346 #endif
1347
1348 #ifndef MDIO_VEND2_CTRL1_AN_RESTART
1349 #define MDIO_VEND2_CTRL1_AN_RESTART BIT(9)
1350 #endif
1351
1352 #ifndef MDIO_VEND2_CTRL1_SS6
1353 #define MDIO_VEND2_CTRL1_SS6 BIT(6)
1354 #endif
1355
1356 #ifndef MDIO_VEND2_CTRL1_SS13
1357 #define MDIO_VEND2_CTRL1_SS13 BIT(13)
1358 #endif
1359
1360
1361 #define XGBE_AN_CL73_INT_CMPLT BIT(0)
1362 #define XGBE_AN_CL73_INC_LINK BIT(1)
1363 #define XGBE_AN_CL73_PG_RCV BIT(2)
1364 #define XGBE_AN_CL73_INT_MASK 0x07
1365
1366 #define XGBE_XNP_MCF_NULL_MESSAGE 0x001
1367 #define XGBE_XNP_ACK_PROCESSED BIT(12)
1368 #define XGBE_XNP_MP_FORMATTED BIT(13)
1369 #define XGBE_XNP_NP_EXCHANGE BIT(15)
1370
1371 #define XGBE_KR_TRAINING_START BIT(0)
1372 #define XGBE_KR_TRAINING_ENABLE BIT(1)
1373
1374 #define XGBE_PCS_CL37_BP BIT(12)
1375 #define XGBE_PCS_PSEQ_STATE_MASK 0x1c
1376 #define XGBE_PCS_PSEQ_STATE_POWER_GOOD 0x10
1377
1378 #define XGBE_AN_CL37_INT_CMPLT BIT(0)
1379 #define XGBE_AN_CL37_INT_MASK 0x01
1380
1381 #define XGBE_AN_CL37_HD_MASK 0x40
1382 #define XGBE_AN_CL37_FD_MASK 0x20
1383
1384 #define XGBE_AN_CL37_PCS_MODE_MASK 0x06
1385 #define XGBE_AN_CL37_PCS_MODE_BASEX 0x00
1386 #define XGBE_AN_CL37_PCS_MODE_SGMII 0x04
1387 #define XGBE_AN_CL37_TX_CONFIG_MASK 0x08
1388 #define XGBE_AN_CL37_MII_CTRL_8BIT 0x0100
1389
1390 #define XGBE_PMA_CDR_TRACK_EN_MASK 0x01
1391 #define XGBE_PMA_CDR_TRACK_EN_OFF 0x00
1392 #define XGBE_PMA_CDR_TRACK_EN_ON 0x01
1393
1394 #define XGBE_PMA_RX_RST_0_MASK BIT(4)
1395 #define XGBE_PMA_RX_RST_0_RESET_ON 0x10
1396 #define XGBE_PMA_RX_RST_0_RESET_OFF 0x00
1397
1398 #define XGBE_PMA_PLL_CTRL_MASK BIT(15)
1399 #define XGBE_PMA_PLL_CTRL_ENABLE BIT(15)
1400 #define XGBE_PMA_PLL_CTRL_DISABLE 0x0000
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410 #define GET_BITS(_var, _index, _width) \
1411 (((_var) >> (_index)) & ((0x1 << (_width)) - 1))
1412
1413 #define SET_BITS(_var, _index, _width, _val) \
1414 do { \
1415 (_var) &= ~(((0x1 << (_width)) - 1) << (_index)); \
1416 (_var) |= (((_val) & ((0x1 << (_width)) - 1)) << (_index)); \
1417 } while (0)
1418
1419 #define GET_BITS_LE(_var, _index, _width) \
1420 ((le32_to_cpu((_var)) >> (_index)) & ((0x1 << (_width)) - 1))
1421
1422 #define SET_BITS_LE(_var, _index, _width, _val) \
1423 do { \
1424 (_var) &= cpu_to_le32(~(((0x1 << (_width)) - 1) << (_index))); \
1425 (_var) |= cpu_to_le32((((_val) & \
1426 ((0x1 << (_width)) - 1)) << (_index))); \
1427 } while (0)
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437 #define XGMAC_GET_BITS(_var, _prefix, _field) \
1438 GET_BITS((_var), \
1439 _prefix##_##_field##_INDEX, \
1440 _prefix##_##_field##_WIDTH)
1441
1442 #define XGMAC_SET_BITS(_var, _prefix, _field, _val) \
1443 SET_BITS((_var), \
1444 _prefix##_##_field##_INDEX, \
1445 _prefix##_##_field##_WIDTH, (_val))
1446
1447 #define XGMAC_GET_BITS_LE(_var, _prefix, _field) \
1448 GET_BITS_LE((_var), \
1449 _prefix##_##_field##_INDEX, \
1450 _prefix##_##_field##_WIDTH)
1451
1452 #define XGMAC_SET_BITS_LE(_var, _prefix, _field, _val) \
1453 SET_BITS_LE((_var), \
1454 _prefix##_##_field##_INDEX, \
1455 _prefix##_##_field##_WIDTH, (_val))
1456
1457
1458
1459
1460
1461
1462
1463
1464 #define XGMAC_IOREAD(_pdata, _reg) \
1465 ioread32((_pdata)->xgmac_regs + _reg)
1466
1467 #define XGMAC_IOREAD_BITS(_pdata, _reg, _field) \
1468 GET_BITS(XGMAC_IOREAD((_pdata), _reg), \
1469 _reg##_##_field##_INDEX, \
1470 _reg##_##_field##_WIDTH)
1471
1472 #define XGMAC_IOWRITE(_pdata, _reg, _val) \
1473 iowrite32((_val), (_pdata)->xgmac_regs + _reg)
1474
1475 #define XGMAC_IOWRITE_BITS(_pdata, _reg, _field, _val) \
1476 do { \
1477 u32 reg_val = XGMAC_IOREAD((_pdata), _reg); \
1478 SET_BITS(reg_val, \
1479 _reg##_##_field##_INDEX, \
1480 _reg##_##_field##_WIDTH, (_val)); \
1481 XGMAC_IOWRITE((_pdata), _reg, reg_val); \
1482 } while (0)
1483
1484
1485
1486
1487
1488 #define XGMAC_MTL_IOREAD(_pdata, _n, _reg) \
1489 ioread32((_pdata)->xgmac_regs + \
1490 MTL_Q_BASE + ((_n) * MTL_Q_INC) + _reg)
1491
1492 #define XGMAC_MTL_IOREAD_BITS(_pdata, _n, _reg, _field) \
1493 GET_BITS(XGMAC_MTL_IOREAD((_pdata), (_n), _reg), \
1494 _reg##_##_field##_INDEX, \
1495 _reg##_##_field##_WIDTH)
1496
1497 #define XGMAC_MTL_IOWRITE(_pdata, _n, _reg, _val) \
1498 iowrite32((_val), (_pdata)->xgmac_regs + \
1499 MTL_Q_BASE + ((_n) * MTL_Q_INC) + _reg)
1500
1501 #define XGMAC_MTL_IOWRITE_BITS(_pdata, _n, _reg, _field, _val) \
1502 do { \
1503 u32 reg_val = XGMAC_MTL_IOREAD((_pdata), (_n), _reg); \
1504 SET_BITS(reg_val, \
1505 _reg##_##_field##_INDEX, \
1506 _reg##_##_field##_WIDTH, (_val)); \
1507 XGMAC_MTL_IOWRITE((_pdata), (_n), _reg, reg_val); \
1508 } while (0)
1509
1510
1511
1512
1513
1514 #define XGMAC_DMA_IOREAD(_channel, _reg) \
1515 ioread32((_channel)->dma_regs + _reg)
1516
1517 #define XGMAC_DMA_IOREAD_BITS(_channel, _reg, _field) \
1518 GET_BITS(XGMAC_DMA_IOREAD((_channel), _reg), \
1519 _reg##_##_field##_INDEX, \
1520 _reg##_##_field##_WIDTH)
1521
1522 #define XGMAC_DMA_IOWRITE(_channel, _reg, _val) \
1523 iowrite32((_val), (_channel)->dma_regs + _reg)
1524
1525 #define XGMAC_DMA_IOWRITE_BITS(_channel, _reg, _field, _val) \
1526 do { \
1527 u32 reg_val = XGMAC_DMA_IOREAD((_channel), _reg); \
1528 SET_BITS(reg_val, \
1529 _reg##_##_field##_INDEX, \
1530 _reg##_##_field##_WIDTH, (_val)); \
1531 XGMAC_DMA_IOWRITE((_channel), _reg, reg_val); \
1532 } while (0)
1533
1534
1535
1536
1537 #define XPCS_GET_BITS(_var, _prefix, _field) \
1538 GET_BITS((_var), \
1539 _prefix##_##_field##_INDEX, \
1540 _prefix##_##_field##_WIDTH)
1541
1542 #define XPCS_SET_BITS(_var, _prefix, _field, _val) \
1543 SET_BITS((_var), \
1544 _prefix##_##_field##_INDEX, \
1545 _prefix##_##_field##_WIDTH, (_val))
1546
1547 #define XPCS32_IOWRITE(_pdata, _off, _val) \
1548 iowrite32(_val, (_pdata)->xpcs_regs + (_off))
1549
1550 #define XPCS32_IOREAD(_pdata, _off) \
1551 ioread32((_pdata)->xpcs_regs + (_off))
1552
1553 #define XPCS16_IOWRITE(_pdata, _off, _val) \
1554 iowrite16(_val, (_pdata)->xpcs_regs + (_off))
1555
1556 #define XPCS16_IOREAD(_pdata, _off) \
1557 ioread16((_pdata)->xpcs_regs + (_off))
1558
1559
1560
1561
1562 #define XSIR_GET_BITS(_var, _prefix, _field) \
1563 GET_BITS((_var), \
1564 _prefix##_##_field##_INDEX, \
1565 _prefix##_##_field##_WIDTH)
1566
1567 #define XSIR_SET_BITS(_var, _prefix, _field, _val) \
1568 SET_BITS((_var), \
1569 _prefix##_##_field##_INDEX, \
1570 _prefix##_##_field##_WIDTH, (_val))
1571
1572 #define XSIR0_IOREAD(_pdata, _reg) \
1573 ioread16((_pdata)->sir0_regs + _reg)
1574
1575 #define XSIR0_IOREAD_BITS(_pdata, _reg, _field) \
1576 GET_BITS(XSIR0_IOREAD((_pdata), _reg), \
1577 _reg##_##_field##_INDEX, \
1578 _reg##_##_field##_WIDTH)
1579
1580 #define XSIR0_IOWRITE(_pdata, _reg, _val) \
1581 iowrite16((_val), (_pdata)->sir0_regs + _reg)
1582
1583 #define XSIR0_IOWRITE_BITS(_pdata, _reg, _field, _val) \
1584 do { \
1585 u16 reg_val = XSIR0_IOREAD((_pdata), _reg); \
1586 SET_BITS(reg_val, \
1587 _reg##_##_field##_INDEX, \
1588 _reg##_##_field##_WIDTH, (_val)); \
1589 XSIR0_IOWRITE((_pdata), _reg, reg_val); \
1590 } while (0)
1591
1592 #define XSIR1_IOREAD(_pdata, _reg) \
1593 ioread16((_pdata)->sir1_regs + _reg)
1594
1595 #define XSIR1_IOREAD_BITS(_pdata, _reg, _field) \
1596 GET_BITS(XSIR1_IOREAD((_pdata), _reg), \
1597 _reg##_##_field##_INDEX, \
1598 _reg##_##_field##_WIDTH)
1599
1600 #define XSIR1_IOWRITE(_pdata, _reg, _val) \
1601 iowrite16((_val), (_pdata)->sir1_regs + _reg)
1602
1603 #define XSIR1_IOWRITE_BITS(_pdata, _reg, _field, _val) \
1604 do { \
1605 u16 reg_val = XSIR1_IOREAD((_pdata), _reg); \
1606 SET_BITS(reg_val, \
1607 _reg##_##_field##_INDEX, \
1608 _reg##_##_field##_WIDTH, (_val)); \
1609 XSIR1_IOWRITE((_pdata), _reg, reg_val); \
1610 } while (0)
1611
1612
1613
1614
1615 #define XRXTX_IOREAD(_pdata, _reg) \
1616 ioread16((_pdata)->rxtx_regs + _reg)
1617
1618 #define XRXTX_IOREAD_BITS(_pdata, _reg, _field) \
1619 GET_BITS(XRXTX_IOREAD((_pdata), _reg), \
1620 _reg##_##_field##_INDEX, \
1621 _reg##_##_field##_WIDTH)
1622
1623 #define XRXTX_IOWRITE(_pdata, _reg, _val) \
1624 iowrite16((_val), (_pdata)->rxtx_regs + _reg)
1625
1626 #define XRXTX_IOWRITE_BITS(_pdata, _reg, _field, _val) \
1627 do { \
1628 u16 reg_val = XRXTX_IOREAD((_pdata), _reg); \
1629 SET_BITS(reg_val, \
1630 _reg##_##_field##_INDEX, \
1631 _reg##_##_field##_WIDTH, (_val)); \
1632 XRXTX_IOWRITE((_pdata), _reg, reg_val); \
1633 } while (0)
1634
1635
1636
1637
1638 #define XP_GET_BITS(_var, _prefix, _field) \
1639 GET_BITS((_var), \
1640 _prefix##_##_field##_INDEX, \
1641 _prefix##_##_field##_WIDTH)
1642
1643 #define XP_SET_BITS(_var, _prefix, _field, _val) \
1644 SET_BITS((_var), \
1645 _prefix##_##_field##_INDEX, \
1646 _prefix##_##_field##_WIDTH, (_val))
1647
1648 #define XP_IOREAD(_pdata, _reg) \
1649 ioread32((_pdata)->xprop_regs + (_reg))
1650
1651 #define XP_IOREAD_BITS(_pdata, _reg, _field) \
1652 GET_BITS(XP_IOREAD((_pdata), (_reg)), \
1653 _reg##_##_field##_INDEX, \
1654 _reg##_##_field##_WIDTH)
1655
1656 #define XP_IOWRITE(_pdata, _reg, _val) \
1657 iowrite32((_val), (_pdata)->xprop_regs + (_reg))
1658
1659 #define XP_IOWRITE_BITS(_pdata, _reg, _field, _val) \
1660 do { \
1661 u32 reg_val = XP_IOREAD((_pdata), (_reg)); \
1662 SET_BITS(reg_val, \
1663 _reg##_##_field##_INDEX, \
1664 _reg##_##_field##_WIDTH, (_val)); \
1665 XP_IOWRITE((_pdata), (_reg), reg_val); \
1666 } while (0)
1667
1668
1669
1670
1671 #define XI2C_GET_BITS(_var, _prefix, _field) \
1672 GET_BITS((_var), \
1673 _prefix##_##_field##_INDEX, \
1674 _prefix##_##_field##_WIDTH)
1675
1676 #define XI2C_SET_BITS(_var, _prefix, _field, _val) \
1677 SET_BITS((_var), \
1678 _prefix##_##_field##_INDEX, \
1679 _prefix##_##_field##_WIDTH, (_val))
1680
1681 #define XI2C_IOREAD(_pdata, _reg) \
1682 ioread32((_pdata)->xi2c_regs + (_reg))
1683
1684 #define XI2C_IOREAD_BITS(_pdata, _reg, _field) \
1685 GET_BITS(XI2C_IOREAD((_pdata), (_reg)), \
1686 _reg##_##_field##_INDEX, \
1687 _reg##_##_field##_WIDTH)
1688
1689 #define XI2C_IOWRITE(_pdata, _reg, _val) \
1690 iowrite32((_val), (_pdata)->xi2c_regs + (_reg))
1691
1692 #define XI2C_IOWRITE_BITS(_pdata, _reg, _field, _val) \
1693 do { \
1694 u32 reg_val = XI2C_IOREAD((_pdata), (_reg)); \
1695 SET_BITS(reg_val, \
1696 _reg##_##_field##_INDEX, \
1697 _reg##_##_field##_WIDTH, (_val)); \
1698 XI2C_IOWRITE((_pdata), (_reg), reg_val); \
1699 } while (0)
1700
1701
1702
1703
1704
1705
1706 #define XMDIO_READ(_pdata, _mmd, _reg) \
1707 ((_pdata)->hw_if.read_mmd_regs((_pdata), 0, \
1708 MII_ADDR_C45 | (_mmd << 16) | ((_reg) & 0xffff)))
1709
1710 #define XMDIO_READ_BITS(_pdata, _mmd, _reg, _mask) \
1711 (XMDIO_READ((_pdata), _mmd, _reg) & _mask)
1712
1713 #define XMDIO_WRITE(_pdata, _mmd, _reg, _val) \
1714 ((_pdata)->hw_if.write_mmd_regs((_pdata), 0, \
1715 MII_ADDR_C45 | (_mmd << 16) | ((_reg) & 0xffff), (_val)))
1716
1717 #define XMDIO_WRITE_BITS(_pdata, _mmd, _reg, _mask, _val) \
1718 do { \
1719 u32 mmd_val = XMDIO_READ((_pdata), _mmd, _reg); \
1720 mmd_val &= ~_mask; \
1721 mmd_val |= (_val); \
1722 XMDIO_WRITE((_pdata), _mmd, _reg, mmd_val); \
1723 } while (0)
1724
1725 #endif