dwc-xlgmac-reg.h (24442B)
1/* Synopsys DesignWare Core Enterprise Ethernet (XLGMAC) Driver 2 * 3 * Copyright (c) 2017 Synopsys, Inc. (www.synopsys.com) 4 * 5 * This program is dual-licensed; you may select either version 2 of 6 * the GNU General Public License ("GPL") or BSD license ("BSD"). 7 * 8 * This Synopsys DWC XLGMAC software driver and associated documentation 9 * (hereinafter the "Software") is an unsupported proprietary work of 10 * Synopsys, Inc. unless otherwise expressly agreed to in writing between 11 * Synopsys and you. The Software IS NOT an item of Licensed Software or a 12 * Licensed Product under any End User Software License Agreement or 13 * Agreement for Licensed Products with Synopsys or any supplement thereto. 14 * Synopsys is a registered trademark of Synopsys, Inc. Other names included 15 * in the SOFTWARE may be the trademarks of their respective owners. 16 */ 17 18#ifndef __DWC_XLGMAC_REG_H__ 19#define __DWC_XLGMAC_REG_H__ 20 21/* MAC register offsets */ 22#define MAC_TCR 0x0000 23#define MAC_RCR 0x0004 24#define MAC_PFR 0x0008 25#define MAC_HTR0 0x0010 26#define MAC_VLANTR 0x0050 27#define MAC_VLANHTR 0x0058 28#define MAC_VLANIR 0x0060 29#define MAC_Q0TFCR 0x0070 30#define MAC_RFCR 0x0090 31#define MAC_RQC0R 0x00a0 32#define MAC_RQC1R 0x00a4 33#define MAC_RQC2R 0x00a8 34#define MAC_RQC3R 0x00ac 35#define MAC_ISR 0x00b0 36#define MAC_IER 0x00b4 37#define MAC_VR 0x0110 38#define MAC_HWF0R 0x011c 39#define MAC_HWF1R 0x0120 40#define MAC_HWF2R 0x0124 41#define MAC_MACA0HR 0x0300 42#define MAC_MACA0LR 0x0304 43#define MAC_MACA1HR 0x0308 44#define MAC_MACA1LR 0x030c 45#define MAC_RSSCR 0x0c80 46#define MAC_RSSAR 0x0c88 47#define MAC_RSSDR 0x0c8c 48 49#define MAC_QTFCR_INC 4 50#define MAC_MACA_INC 4 51#define MAC_HTR_INC 4 52#define MAC_RQC2_INC 4 53#define MAC_RQC2_Q_PER_REG 4 54 55/* MAC register entry bit positions and sizes */ 56#define MAC_HWF0R_ADDMACADRSEL_POS 18 57#define MAC_HWF0R_ADDMACADRSEL_LEN 5 58#define MAC_HWF0R_ARPOFFSEL_POS 9 59#define MAC_HWF0R_ARPOFFSEL_LEN 1 60#define MAC_HWF0R_EEESEL_POS 13 61#define MAC_HWF0R_EEESEL_LEN 1 62#define MAC_HWF0R_PHYIFSEL_POS 1 63#define MAC_HWF0R_PHYIFSEL_LEN 2 64#define MAC_HWF0R_MGKSEL_POS 7 65#define MAC_HWF0R_MGKSEL_LEN 1 66#define MAC_HWF0R_MMCSEL_POS 8 67#define MAC_HWF0R_MMCSEL_LEN 1 68#define MAC_HWF0R_RWKSEL_POS 6 69#define MAC_HWF0R_RWKSEL_LEN 1 70#define MAC_HWF0R_RXCOESEL_POS 16 71#define MAC_HWF0R_RXCOESEL_LEN 1 72#define MAC_HWF0R_SAVLANINS_POS 27 73#define MAC_HWF0R_SAVLANINS_LEN 1 74#define MAC_HWF0R_SMASEL_POS 5 75#define MAC_HWF0R_SMASEL_LEN 1 76#define MAC_HWF0R_TSSEL_POS 12 77#define MAC_HWF0R_TSSEL_LEN 1 78#define MAC_HWF0R_TSSTSSEL_POS 25 79#define MAC_HWF0R_TSSTSSEL_LEN 2 80#define MAC_HWF0R_TXCOESEL_POS 14 81#define MAC_HWF0R_TXCOESEL_LEN 1 82#define MAC_HWF0R_VLHASH_POS 4 83#define MAC_HWF0R_VLHASH_LEN 1 84#define MAC_HWF1R_ADDR64_POS 14 85#define MAC_HWF1R_ADDR64_LEN 2 86#define MAC_HWF1R_ADVTHWORD_POS 13 87#define MAC_HWF1R_ADVTHWORD_LEN 1 88#define MAC_HWF1R_DBGMEMA_POS 19 89#define MAC_HWF1R_DBGMEMA_LEN 1 90#define MAC_HWF1R_DCBEN_POS 16 91#define MAC_HWF1R_DCBEN_LEN 1 92#define MAC_HWF1R_HASHTBLSZ_POS 24 93#define MAC_HWF1R_HASHTBLSZ_LEN 3 94#define MAC_HWF1R_L3L4FNUM_POS 27 95#define MAC_HWF1R_L3L4FNUM_LEN 4 96#define MAC_HWF1R_NUMTC_POS 21 97#define MAC_HWF1R_NUMTC_LEN 3 98#define MAC_HWF1R_RSSEN_POS 20 99#define MAC_HWF1R_RSSEN_LEN 1 100#define MAC_HWF1R_RXFIFOSIZE_POS 0 101#define MAC_HWF1R_RXFIFOSIZE_LEN 5 102#define MAC_HWF1R_SPHEN_POS 17 103#define MAC_HWF1R_SPHEN_LEN 1 104#define MAC_HWF1R_TSOEN_POS 18 105#define MAC_HWF1R_TSOEN_LEN 1 106#define MAC_HWF1R_TXFIFOSIZE_POS 6 107#define MAC_HWF1R_TXFIFOSIZE_LEN 5 108#define MAC_HWF2R_AUXSNAPNUM_POS 28 109#define MAC_HWF2R_AUXSNAPNUM_LEN 3 110#define MAC_HWF2R_PPSOUTNUM_POS 24 111#define MAC_HWF2R_PPSOUTNUM_LEN 3 112#define MAC_HWF2R_RXCHCNT_POS 12 113#define MAC_HWF2R_RXCHCNT_LEN 4 114#define MAC_HWF2R_RXQCNT_POS 0 115#define MAC_HWF2R_RXQCNT_LEN 4 116#define MAC_HWF2R_TXCHCNT_POS 18 117#define MAC_HWF2R_TXCHCNT_LEN 4 118#define MAC_HWF2R_TXQCNT_POS 6 119#define MAC_HWF2R_TXQCNT_LEN 4 120#define MAC_IER_TSIE_POS 12 121#define MAC_IER_TSIE_LEN 1 122#define MAC_ISR_MMCRXIS_POS 9 123#define MAC_ISR_MMCRXIS_LEN 1 124#define MAC_ISR_MMCTXIS_POS 10 125#define MAC_ISR_MMCTXIS_LEN 1 126#define MAC_ISR_PMTIS_POS 4 127#define MAC_ISR_PMTIS_LEN 1 128#define MAC_ISR_TSIS_POS 12 129#define MAC_ISR_TSIS_LEN 1 130#define MAC_MACA1HR_AE_POS 31 131#define MAC_MACA1HR_AE_LEN 1 132#define MAC_PFR_HMC_POS 2 133#define MAC_PFR_HMC_LEN 1 134#define MAC_PFR_HPF_POS 10 135#define MAC_PFR_HPF_LEN 1 136#define MAC_PFR_HUC_POS 1 137#define MAC_PFR_HUC_LEN 1 138#define MAC_PFR_PM_POS 4 139#define MAC_PFR_PM_LEN 1 140#define MAC_PFR_PR_POS 0 141#define MAC_PFR_PR_LEN 1 142#define MAC_PFR_VTFE_POS 16 143#define MAC_PFR_VTFE_LEN 1 144#define MAC_Q0TFCR_PT_POS 16 145#define MAC_Q0TFCR_PT_LEN 16 146#define MAC_Q0TFCR_TFE_POS 1 147#define MAC_Q0TFCR_TFE_LEN 1 148#define MAC_RCR_ACS_POS 1 149#define MAC_RCR_ACS_LEN 1 150#define MAC_RCR_CST_POS 2 151#define MAC_RCR_CST_LEN 1 152#define MAC_RCR_DCRCC_POS 3 153#define MAC_RCR_DCRCC_LEN 1 154#define MAC_RCR_HDSMS_POS 12 155#define MAC_RCR_HDSMS_LEN 3 156#define MAC_RCR_IPC_POS 9 157#define MAC_RCR_IPC_LEN 1 158#define MAC_RCR_JE_POS 8 159#define MAC_RCR_JE_LEN 1 160#define MAC_RCR_LM_POS 10 161#define MAC_RCR_LM_LEN 1 162#define MAC_RCR_RE_POS 0 163#define MAC_RCR_RE_LEN 1 164#define MAC_RFCR_PFCE_POS 8 165#define MAC_RFCR_PFCE_LEN 1 166#define MAC_RFCR_RFE_POS 0 167#define MAC_RFCR_RFE_LEN 1 168#define MAC_RFCR_UP_POS 1 169#define MAC_RFCR_UP_LEN 1 170#define MAC_RQC0R_RXQ0EN_POS 0 171#define MAC_RQC0R_RXQ0EN_LEN 2 172#define MAC_RSSAR_ADDRT_POS 2 173#define MAC_RSSAR_ADDRT_LEN 1 174#define MAC_RSSAR_CT_POS 1 175#define MAC_RSSAR_CT_LEN 1 176#define MAC_RSSAR_OB_POS 0 177#define MAC_RSSAR_OB_LEN 1 178#define MAC_RSSAR_RSSIA_POS 8 179#define MAC_RSSAR_RSSIA_LEN 8 180#define MAC_RSSCR_IP2TE_POS 1 181#define MAC_RSSCR_IP2TE_LEN 1 182#define MAC_RSSCR_RSSE_POS 0 183#define MAC_RSSCR_RSSE_LEN 1 184#define MAC_RSSCR_TCP4TE_POS 2 185#define MAC_RSSCR_TCP4TE_LEN 1 186#define MAC_RSSCR_UDP4TE_POS 3 187#define MAC_RSSCR_UDP4TE_LEN 1 188#define MAC_RSSDR_DMCH_POS 0 189#define MAC_RSSDR_DMCH_LEN 4 190#define MAC_TCR_SS_POS 28 191#define MAC_TCR_SS_LEN 3 192#define MAC_TCR_TE_POS 0 193#define MAC_TCR_TE_LEN 1 194#define MAC_VLANHTR_VLHT_POS 0 195#define MAC_VLANHTR_VLHT_LEN 16 196#define MAC_VLANIR_VLTI_POS 20 197#define MAC_VLANIR_VLTI_LEN 1 198#define MAC_VLANIR_CSVL_POS 19 199#define MAC_VLANIR_CSVL_LEN 1 200#define MAC_VLANTR_DOVLTC_POS 20 201#define MAC_VLANTR_DOVLTC_LEN 1 202#define MAC_VLANTR_ERSVLM_POS 19 203#define MAC_VLANTR_ERSVLM_LEN 1 204#define MAC_VLANTR_ESVL_POS 18 205#define MAC_VLANTR_ESVL_LEN 1 206#define MAC_VLANTR_ETV_POS 16 207#define MAC_VLANTR_ETV_LEN 1 208#define MAC_VLANTR_EVLS_POS 21 209#define MAC_VLANTR_EVLS_LEN 2 210#define MAC_VLANTR_EVLRXS_POS 24 211#define MAC_VLANTR_EVLRXS_LEN 1 212#define MAC_VLANTR_VL_POS 0 213#define MAC_VLANTR_VL_LEN 16 214#define MAC_VLANTR_VTHM_POS 25 215#define MAC_VLANTR_VTHM_LEN 1 216#define MAC_VLANTR_VTIM_POS 17 217#define MAC_VLANTR_VTIM_LEN 1 218#define MAC_VR_DEVID_POS 8 219#define MAC_VR_DEVID_LEN 8 220#define MAC_VR_SNPSVER_POS 0 221#define MAC_VR_SNPSVER_LEN 8 222#define MAC_VR_USERVER_POS 16 223#define MAC_VR_USERVER_LEN 8 224 225/* MMC register offsets */ 226#define MMC_CR 0x0800 227#define MMC_RISR 0x0804 228#define MMC_TISR 0x0808 229#define MMC_RIER 0x080c 230#define MMC_TIER 0x0810 231#define MMC_TXOCTETCOUNT_GB_LO 0x0814 232#define MMC_TXFRAMECOUNT_GB_LO 0x081c 233#define MMC_TXBROADCASTFRAMES_G_LO 0x0824 234#define MMC_TXMULTICASTFRAMES_G_LO 0x082c 235#define MMC_TX64OCTETS_GB_LO 0x0834 236#define MMC_TX65TO127OCTETS_GB_LO 0x083c 237#define MMC_TX128TO255OCTETS_GB_LO 0x0844 238#define MMC_TX256TO511OCTETS_GB_LO 0x084c 239#define MMC_TX512TO1023OCTETS_GB_LO 0x0854 240#define MMC_TX1024TOMAXOCTETS_GB_LO 0x085c 241#define MMC_TXUNICASTFRAMES_GB_LO 0x0864 242#define MMC_TXMULTICASTFRAMES_GB_LO 0x086c 243#define MMC_TXBROADCASTFRAMES_GB_LO 0x0874 244#define MMC_TXUNDERFLOWERROR_LO 0x087c 245#define MMC_TXOCTETCOUNT_G_LO 0x0884 246#define MMC_TXFRAMECOUNT_G_LO 0x088c 247#define MMC_TXPAUSEFRAMES_LO 0x0894 248#define MMC_TXVLANFRAMES_G_LO 0x089c 249#define MMC_RXFRAMECOUNT_GB_LO 0x0900 250#define MMC_RXOCTETCOUNT_GB_LO 0x0908 251#define MMC_RXOCTETCOUNT_G_LO 0x0910 252#define MMC_RXBROADCASTFRAMES_G_LO 0x0918 253#define MMC_RXMULTICASTFRAMES_G_LO 0x0920 254#define MMC_RXCRCERROR_LO 0x0928 255#define MMC_RXRUNTERROR 0x0930 256#define MMC_RXJABBERERROR 0x0934 257#define MMC_RXUNDERSIZE_G 0x0938 258#define MMC_RXOVERSIZE_G 0x093c 259#define MMC_RX64OCTETS_GB_LO 0x0940 260#define MMC_RX65TO127OCTETS_GB_LO 0x0948 261#define MMC_RX128TO255OCTETS_GB_LO 0x0950 262#define MMC_RX256TO511OCTETS_GB_LO 0x0958 263#define MMC_RX512TO1023OCTETS_GB_LO 0x0960 264#define MMC_RX1024TOMAXOCTETS_GB_LO 0x0968 265#define MMC_RXUNICASTFRAMES_G_LO 0x0970 266#define MMC_RXLENGTHERROR_LO 0x0978 267#define MMC_RXOUTOFRANGETYPE_LO 0x0980 268#define MMC_RXPAUSEFRAMES_LO 0x0988 269#define MMC_RXFIFOOVERFLOW_LO 0x0990 270#define MMC_RXVLANFRAMES_GB_LO 0x0998 271#define MMC_RXWATCHDOGERROR 0x09a0 272 273/* MMC register entry bit positions and sizes */ 274#define MMC_CR_CR_POS 0 275#define MMC_CR_CR_LEN 1 276#define MMC_CR_CSR_POS 1 277#define MMC_CR_CSR_LEN 1 278#define MMC_CR_ROR_POS 2 279#define MMC_CR_ROR_LEN 1 280#define MMC_CR_MCF_POS 3 281#define MMC_CR_MCF_LEN 1 282#define MMC_CR_MCT_POS 4 283#define MMC_CR_MCT_LEN 2 284#define MMC_RIER_ALL_INTERRUPTS_POS 0 285#define MMC_RIER_ALL_INTERRUPTS_LEN 23 286#define MMC_RISR_RXFRAMECOUNT_GB_POS 0 287#define MMC_RISR_RXFRAMECOUNT_GB_LEN 1 288#define MMC_RISR_RXOCTETCOUNT_GB_POS 1 289#define MMC_RISR_RXOCTETCOUNT_GB_LEN 1 290#define MMC_RISR_RXOCTETCOUNT_G_POS 2 291#define MMC_RISR_RXOCTETCOUNT_G_LEN 1 292#define MMC_RISR_RXBROADCASTFRAMES_G_POS 3 293#define MMC_RISR_RXBROADCASTFRAMES_G_LEN 1 294#define MMC_RISR_RXMULTICASTFRAMES_G_POS 4 295#define MMC_RISR_RXMULTICASTFRAMES_G_LEN 1 296#define MMC_RISR_RXCRCERROR_POS 5 297#define MMC_RISR_RXCRCERROR_LEN 1 298#define MMC_RISR_RXRUNTERROR_POS 6 299#define MMC_RISR_RXRUNTERROR_LEN 1 300#define MMC_RISR_RXJABBERERROR_POS 7 301#define MMC_RISR_RXJABBERERROR_LEN 1 302#define MMC_RISR_RXUNDERSIZE_G_POS 8 303#define MMC_RISR_RXUNDERSIZE_G_LEN 1 304#define MMC_RISR_RXOVERSIZE_G_POS 9 305#define MMC_RISR_RXOVERSIZE_G_LEN 1 306#define MMC_RISR_RX64OCTETS_GB_POS 10 307#define MMC_RISR_RX64OCTETS_GB_LEN 1 308#define MMC_RISR_RX65TO127OCTETS_GB_POS 11 309#define MMC_RISR_RX65TO127OCTETS_GB_LEN 1 310#define MMC_RISR_RX128TO255OCTETS_GB_POS 12 311#define MMC_RISR_RX128TO255OCTETS_GB_LEN 1 312#define MMC_RISR_RX256TO511OCTETS_GB_POS 13 313#define MMC_RISR_RX256TO511OCTETS_GB_LEN 1 314#define MMC_RISR_RX512TO1023OCTETS_GB_POS 14 315#define MMC_RISR_RX512TO1023OCTETS_GB_LEN 1 316#define MMC_RISR_RX1024TOMAXOCTETS_GB_POS 15 317#define MMC_RISR_RX1024TOMAXOCTETS_GB_LEN 1 318#define MMC_RISR_RXUNICASTFRAMES_G_POS 16 319#define MMC_RISR_RXUNICASTFRAMES_G_LEN 1 320#define MMC_RISR_RXLENGTHERROR_POS 17 321#define MMC_RISR_RXLENGTHERROR_LEN 1 322#define MMC_RISR_RXOUTOFRANGETYPE_POS 18 323#define MMC_RISR_RXOUTOFRANGETYPE_LEN 1 324#define MMC_RISR_RXPAUSEFRAMES_POS 19 325#define MMC_RISR_RXPAUSEFRAMES_LEN 1 326#define MMC_RISR_RXFIFOOVERFLOW_POS 20 327#define MMC_RISR_RXFIFOOVERFLOW_LEN 1 328#define MMC_RISR_RXVLANFRAMES_GB_POS 21 329#define MMC_RISR_RXVLANFRAMES_GB_LEN 1 330#define MMC_RISR_RXWATCHDOGERROR_POS 22 331#define MMC_RISR_RXWATCHDOGERROR_LEN 1 332#define MMC_TIER_ALL_INTERRUPTS_POS 0 333#define MMC_TIER_ALL_INTERRUPTS_LEN 18 334#define MMC_TISR_TXOCTETCOUNT_GB_POS 0 335#define MMC_TISR_TXOCTETCOUNT_GB_LEN 1 336#define MMC_TISR_TXFRAMECOUNT_GB_POS 1 337#define MMC_TISR_TXFRAMECOUNT_GB_LEN 1 338#define MMC_TISR_TXBROADCASTFRAMES_G_POS 2 339#define MMC_TISR_TXBROADCASTFRAMES_G_LEN 1 340#define MMC_TISR_TXMULTICASTFRAMES_G_POS 3 341#define MMC_TISR_TXMULTICASTFRAMES_G_LEN 1 342#define MMC_TISR_TX64OCTETS_GB_POS 4 343#define MMC_TISR_TX64OCTETS_GB_LEN 1 344#define MMC_TISR_TX65TO127OCTETS_GB_POS 5 345#define MMC_TISR_TX65TO127OCTETS_GB_LEN 1 346#define MMC_TISR_TX128TO255OCTETS_GB_POS 6 347#define MMC_TISR_TX128TO255OCTETS_GB_LEN 1 348#define MMC_TISR_TX256TO511OCTETS_GB_POS 7 349#define MMC_TISR_TX256TO511OCTETS_GB_LEN 1 350#define MMC_TISR_TX512TO1023OCTETS_GB_POS 8 351#define MMC_TISR_TX512TO1023OCTETS_GB_LEN 1 352#define MMC_TISR_TX1024TOMAXOCTETS_GB_POS 9 353#define MMC_TISR_TX1024TOMAXOCTETS_GB_LEN 1 354#define MMC_TISR_TXUNICASTFRAMES_GB_POS 10 355#define MMC_TISR_TXUNICASTFRAMES_GB_LEN 1 356#define MMC_TISR_TXMULTICASTFRAMES_GB_POS 11 357#define MMC_TISR_TXMULTICASTFRAMES_GB_LEN 1 358#define MMC_TISR_TXBROADCASTFRAMES_GB_POS 12 359#define MMC_TISR_TXBROADCASTFRAMES_GB_LEN 1 360#define MMC_TISR_TXUNDERFLOWERROR_POS 13 361#define MMC_TISR_TXUNDERFLOWERROR_LEN 1 362#define MMC_TISR_TXOCTETCOUNT_G_POS 14 363#define MMC_TISR_TXOCTETCOUNT_G_LEN 1 364#define MMC_TISR_TXFRAMECOUNT_G_POS 15 365#define MMC_TISR_TXFRAMECOUNT_G_LEN 1 366#define MMC_TISR_TXPAUSEFRAMES_POS 16 367#define MMC_TISR_TXPAUSEFRAMES_LEN 1 368#define MMC_TISR_TXVLANFRAMES_G_POS 17 369#define MMC_TISR_TXVLANFRAMES_G_LEN 1 370 371/* MTL register offsets */ 372#define MTL_OMR 0x1000 373#define MTL_FDDR 0x1010 374#define MTL_RQDCM0R 0x1030 375 376#define MTL_RQDCM_INC 4 377#define MTL_RQDCM_Q_PER_REG 4 378 379/* MTL register entry bit positions and sizes */ 380#define MTL_OMR_ETSALG_POS 5 381#define MTL_OMR_ETSALG_LEN 2 382#define MTL_OMR_RAA_POS 2 383#define MTL_OMR_RAA_LEN 1 384 385/* MTL queue register offsets 386 * Multiple queues can be active. The first queue has registers 387 * that begin at 0x1100. Each subsequent queue has registers that 388 * are accessed using an offset of 0x80 from the previous queue. 389 */ 390#define MTL_Q_BASE 0x1100 391#define MTL_Q_INC 0x80 392 393#define MTL_Q_TQOMR 0x00 394#define MTL_Q_RQOMR 0x40 395#define MTL_Q_RQDR 0x48 396#define MTL_Q_RQFCR 0x50 397#define MTL_Q_IER 0x70 398#define MTL_Q_ISR 0x74 399 400/* MTL queue register entry bit positions and sizes */ 401#define MTL_Q_RQDR_PRXQ_POS 16 402#define MTL_Q_RQDR_PRXQ_LEN 14 403#define MTL_Q_RQDR_RXQSTS_POS 4 404#define MTL_Q_RQDR_RXQSTS_LEN 2 405#define MTL_Q_RQFCR_RFA_POS 1 406#define MTL_Q_RQFCR_RFA_LEN 6 407#define MTL_Q_RQFCR_RFD_POS 17 408#define MTL_Q_RQFCR_RFD_LEN 6 409#define MTL_Q_RQOMR_EHFC_POS 7 410#define MTL_Q_RQOMR_EHFC_LEN 1 411#define MTL_Q_RQOMR_RQS_POS 16 412#define MTL_Q_RQOMR_RQS_LEN 9 413#define MTL_Q_RQOMR_RSF_POS 5 414#define MTL_Q_RQOMR_RSF_LEN 1 415#define MTL_Q_RQOMR_FEP_POS 4 416#define MTL_Q_RQOMR_FEP_LEN 1 417#define MTL_Q_RQOMR_FUP_POS 3 418#define MTL_Q_RQOMR_FUP_LEN 1 419#define MTL_Q_RQOMR_RTC_POS 0 420#define MTL_Q_RQOMR_RTC_LEN 2 421#define MTL_Q_TQOMR_FTQ_POS 0 422#define MTL_Q_TQOMR_FTQ_LEN 1 423#define MTL_Q_TQOMR_Q2TCMAP_POS 8 424#define MTL_Q_TQOMR_Q2TCMAP_LEN 3 425#define MTL_Q_TQOMR_TQS_POS 16 426#define MTL_Q_TQOMR_TQS_LEN 10 427#define MTL_Q_TQOMR_TSF_POS 1 428#define MTL_Q_TQOMR_TSF_LEN 1 429#define MTL_Q_TQOMR_TTC_POS 4 430#define MTL_Q_TQOMR_TTC_LEN 3 431#define MTL_Q_TQOMR_TXQEN_POS 2 432#define MTL_Q_TQOMR_TXQEN_LEN 2 433 434/* MTL queue register value */ 435#define MTL_RSF_DISABLE 0x00 436#define MTL_RSF_ENABLE 0x01 437#define MTL_TSF_DISABLE 0x00 438#define MTL_TSF_ENABLE 0x01 439 440#define MTL_RX_THRESHOLD_64 0x00 441#define MTL_RX_THRESHOLD_96 0x02 442#define MTL_RX_THRESHOLD_128 0x03 443#define MTL_TX_THRESHOLD_64 0x00 444#define MTL_TX_THRESHOLD_96 0x02 445#define MTL_TX_THRESHOLD_128 0x03 446#define MTL_TX_THRESHOLD_192 0x04 447#define MTL_TX_THRESHOLD_256 0x05 448#define MTL_TX_THRESHOLD_384 0x06 449#define MTL_TX_THRESHOLD_512 0x07 450 451#define MTL_ETSALG_WRR 0x00 452#define MTL_ETSALG_WFQ 0x01 453#define MTL_ETSALG_DWRR 0x02 454#define MTL_RAA_SP 0x00 455#define MTL_RAA_WSP 0x01 456 457#define MTL_Q_DISABLED 0x00 458#define MTL_Q_ENABLED 0x02 459 460#define MTL_RQDCM0R_Q0MDMACH 0x0 461#define MTL_RQDCM0R_Q1MDMACH 0x00000100 462#define MTL_RQDCM0R_Q2MDMACH 0x00020000 463#define MTL_RQDCM0R_Q3MDMACH 0x03000000 464#define MTL_RQDCM1R_Q4MDMACH 0x00000004 465#define MTL_RQDCM1R_Q5MDMACH 0x00000500 466#define MTL_RQDCM1R_Q6MDMACH 0x00060000 467#define MTL_RQDCM1R_Q7MDMACH 0x07000000 468#define MTL_RQDCM2R_Q8MDMACH 0x00000008 469#define MTL_RQDCM2R_Q9MDMACH 0x00000900 470#define MTL_RQDCM2R_Q10MDMACH 0x000A0000 471#define MTL_RQDCM2R_Q11MDMACH 0x0B000000 472 473/* MTL traffic class register offsets 474 * Multiple traffic classes can be active. The first class has registers 475 * that begin at 0x1100. Each subsequent queue has registers that 476 * are accessed using an offset of 0x80 from the previous queue. 477 */ 478#define MTL_TC_BASE MTL_Q_BASE 479#define MTL_TC_INC MTL_Q_INC 480 481#define MTL_TC_ETSCR 0x10 482#define MTL_TC_ETSSR 0x14 483#define MTL_TC_QWR 0x18 484 485/* MTL traffic class register entry bit positions and sizes */ 486#define MTL_TC_ETSCR_TSA_POS 0 487#define MTL_TC_ETSCR_TSA_LEN 2 488#define MTL_TC_QWR_QW_POS 0 489#define MTL_TC_QWR_QW_LEN 21 490 491/* MTL traffic class register value */ 492#define MTL_TSA_SP 0x00 493#define MTL_TSA_ETS 0x02 494 495/* DMA register offsets */ 496#define DMA_MR 0x3000 497#define DMA_SBMR 0x3004 498#define DMA_ISR 0x3008 499#define DMA_DSR0 0x3020 500#define DMA_DSR1 0x3024 501 502/* DMA register entry bit positions and sizes */ 503#define DMA_ISR_MACIS_POS 17 504#define DMA_ISR_MACIS_LEN 1 505#define DMA_ISR_MTLIS_POS 16 506#define DMA_ISR_MTLIS_LEN 1 507#define DMA_MR_SWR_POS 0 508#define DMA_MR_SWR_LEN 1 509#define DMA_SBMR_EAME_POS 11 510#define DMA_SBMR_EAME_LEN 1 511#define DMA_SBMR_BLEN_64_POS 5 512#define DMA_SBMR_BLEN_64_LEN 1 513#define DMA_SBMR_BLEN_128_POS 6 514#define DMA_SBMR_BLEN_128_LEN 1 515#define DMA_SBMR_BLEN_256_POS 7 516#define DMA_SBMR_BLEN_256_LEN 1 517#define DMA_SBMR_UNDEF_POS 0 518#define DMA_SBMR_UNDEF_LEN 1 519 520/* DMA register values */ 521#define DMA_DSR_RPS_LEN 4 522#define DMA_DSR_TPS_LEN 4 523#define DMA_DSR_Q_LEN (DMA_DSR_RPS_LEN + DMA_DSR_TPS_LEN) 524#define DMA_DSR0_TPS_START 12 525#define DMA_DSRX_FIRST_QUEUE 3 526#define DMA_DSRX_INC 4 527#define DMA_DSRX_QPR 4 528#define DMA_DSRX_TPS_START 4 529#define DMA_TPS_STOPPED 0x00 530#define DMA_TPS_SUSPENDED 0x06 531 532/* DMA channel register offsets 533 * Multiple channels can be active. The first channel has registers 534 * that begin at 0x3100. Each subsequent channel has registers that 535 * are accessed using an offset of 0x80 from the previous channel. 536 */ 537#define DMA_CH_BASE 0x3100 538#define DMA_CH_INC 0x80 539 540#define DMA_CH_CR 0x00 541#define DMA_CH_TCR 0x04 542#define DMA_CH_RCR 0x08 543#define DMA_CH_TDLR_HI 0x10 544#define DMA_CH_TDLR_LO 0x14 545#define DMA_CH_RDLR_HI 0x18 546#define DMA_CH_RDLR_LO 0x1c 547#define DMA_CH_TDTR_LO 0x24 548#define DMA_CH_RDTR_LO 0x2c 549#define DMA_CH_TDRLR 0x30 550#define DMA_CH_RDRLR 0x34 551#define DMA_CH_IER 0x38 552#define DMA_CH_RIWT 0x3c 553#define DMA_CH_SR 0x60 554 555/* DMA channel register entry bit positions and sizes */ 556#define DMA_CH_CR_PBLX8_POS 16 557#define DMA_CH_CR_PBLX8_LEN 1 558#define DMA_CH_CR_SPH_POS 24 559#define DMA_CH_CR_SPH_LEN 1 560#define DMA_CH_IER_AIE_POS 15 561#define DMA_CH_IER_AIE_LEN 1 562#define DMA_CH_IER_FBEE_POS 12 563#define DMA_CH_IER_FBEE_LEN 1 564#define DMA_CH_IER_NIE_POS 16 565#define DMA_CH_IER_NIE_LEN 1 566#define DMA_CH_IER_RBUE_POS 7 567#define DMA_CH_IER_RBUE_LEN 1 568#define DMA_CH_IER_RIE_POS 6 569#define DMA_CH_IER_RIE_LEN 1 570#define DMA_CH_IER_RSE_POS 8 571#define DMA_CH_IER_RSE_LEN 1 572#define DMA_CH_IER_TBUE_POS 2 573#define DMA_CH_IER_TBUE_LEN 1 574#define DMA_CH_IER_TIE_POS 0 575#define DMA_CH_IER_TIE_LEN 1 576#define DMA_CH_IER_TXSE_POS 1 577#define DMA_CH_IER_TXSE_LEN 1 578#define DMA_CH_RCR_PBL_POS 16 579#define DMA_CH_RCR_PBL_LEN 6 580#define DMA_CH_RCR_RBSZ_POS 1 581#define DMA_CH_RCR_RBSZ_LEN 14 582#define DMA_CH_RCR_SR_POS 0 583#define DMA_CH_RCR_SR_LEN 1 584#define DMA_CH_RIWT_RWT_POS 0 585#define DMA_CH_RIWT_RWT_LEN 8 586#define DMA_CH_SR_FBE_POS 12 587#define DMA_CH_SR_FBE_LEN 1 588#define DMA_CH_SR_RBU_POS 7 589#define DMA_CH_SR_RBU_LEN 1 590#define DMA_CH_SR_RI_POS 6 591#define DMA_CH_SR_RI_LEN 1 592#define DMA_CH_SR_RPS_POS 8 593#define DMA_CH_SR_RPS_LEN 1 594#define DMA_CH_SR_TBU_POS 2 595#define DMA_CH_SR_TBU_LEN 1 596#define DMA_CH_SR_TI_POS 0 597#define DMA_CH_SR_TI_LEN 1 598#define DMA_CH_SR_TPS_POS 1 599#define DMA_CH_SR_TPS_LEN 1 600#define DMA_CH_TCR_OSP_POS 4 601#define DMA_CH_TCR_OSP_LEN 1 602#define DMA_CH_TCR_PBL_POS 16 603#define DMA_CH_TCR_PBL_LEN 6 604#define DMA_CH_TCR_ST_POS 0 605#define DMA_CH_TCR_ST_LEN 1 606#define DMA_CH_TCR_TSE_POS 12 607#define DMA_CH_TCR_TSE_LEN 1 608 609/* DMA channel register values */ 610#define DMA_OSP_DISABLE 0x00 611#define DMA_OSP_ENABLE 0x01 612#define DMA_PBL_1 1 613#define DMA_PBL_2 2 614#define DMA_PBL_4 4 615#define DMA_PBL_8 8 616#define DMA_PBL_16 16 617#define DMA_PBL_32 32 618#define DMA_PBL_64 64 619#define DMA_PBL_128 128 620#define DMA_PBL_256 256 621#define DMA_PBL_X8_DISABLE 0x00 622#define DMA_PBL_X8_ENABLE 0x01 623 624/* Descriptor/Packet entry bit positions and sizes */ 625#define RX_PACKET_ERRORS_CRC_POS 2 626#define RX_PACKET_ERRORS_CRC_LEN 1 627#define RX_PACKET_ERRORS_FRAME_POS 3 628#define RX_PACKET_ERRORS_FRAME_LEN 1 629#define RX_PACKET_ERRORS_LENGTH_POS 0 630#define RX_PACKET_ERRORS_LENGTH_LEN 1 631#define RX_PACKET_ERRORS_OVERRUN_POS 1 632#define RX_PACKET_ERRORS_OVERRUN_LEN 1 633 634#define RX_PACKET_ATTRIBUTES_CSUM_DONE_POS 0 635#define RX_PACKET_ATTRIBUTES_CSUM_DONE_LEN 1 636#define RX_PACKET_ATTRIBUTES_VLAN_CTAG_POS 1 637#define RX_PACKET_ATTRIBUTES_VLAN_CTAG_LEN 1 638#define RX_PACKET_ATTRIBUTES_INCOMPLETE_POS 2 639#define RX_PACKET_ATTRIBUTES_INCOMPLETE_LEN 1 640#define RX_PACKET_ATTRIBUTES_CONTEXT_NEXT_POS 3 641#define RX_PACKET_ATTRIBUTES_CONTEXT_NEXT_LEN 1 642#define RX_PACKET_ATTRIBUTES_CONTEXT_POS 4 643#define RX_PACKET_ATTRIBUTES_CONTEXT_LEN 1 644#define RX_PACKET_ATTRIBUTES_RX_TSTAMP_POS 5 645#define RX_PACKET_ATTRIBUTES_RX_TSTAMP_LEN 1 646#define RX_PACKET_ATTRIBUTES_RSS_HASH_POS 6 647#define RX_PACKET_ATTRIBUTES_RSS_HASH_LEN 1 648 649#define RX_NORMAL_DESC0_OVT_POS 0 650#define RX_NORMAL_DESC0_OVT_LEN 16 651#define RX_NORMAL_DESC2_HL_POS 0 652#define RX_NORMAL_DESC2_HL_LEN 10 653#define RX_NORMAL_DESC3_CDA_POS 27 654#define RX_NORMAL_DESC3_CDA_LEN 1 655#define RX_NORMAL_DESC3_CTXT_POS 30 656#define RX_NORMAL_DESC3_CTXT_LEN 1 657#define RX_NORMAL_DESC3_ES_POS 15 658#define RX_NORMAL_DESC3_ES_LEN 1 659#define RX_NORMAL_DESC3_ETLT_POS 16 660#define RX_NORMAL_DESC3_ETLT_LEN 4 661#define RX_NORMAL_DESC3_FD_POS 29 662#define RX_NORMAL_DESC3_FD_LEN 1 663#define RX_NORMAL_DESC3_INTE_POS 30 664#define RX_NORMAL_DESC3_INTE_LEN 1 665#define RX_NORMAL_DESC3_L34T_POS 20 666#define RX_NORMAL_DESC3_L34T_LEN 4 667#define RX_NORMAL_DESC3_LD_POS 28 668#define RX_NORMAL_DESC3_LD_LEN 1 669#define RX_NORMAL_DESC3_OWN_POS 31 670#define RX_NORMAL_DESC3_OWN_LEN 1 671#define RX_NORMAL_DESC3_PL_POS 0 672#define RX_NORMAL_DESC3_PL_LEN 14 673#define RX_NORMAL_DESC3_RSV_POS 26 674#define RX_NORMAL_DESC3_RSV_LEN 1 675 676#define RX_DESC3_L34T_IPV4_TCP 1 677#define RX_DESC3_L34T_IPV4_UDP 2 678#define RX_DESC3_L34T_IPV4_ICMP 3 679#define RX_DESC3_L34T_IPV6_TCP 9 680#define RX_DESC3_L34T_IPV6_UDP 10 681#define RX_DESC3_L34T_IPV6_ICMP 11 682 683#define RX_CONTEXT_DESC3_TSA_POS 4 684#define RX_CONTEXT_DESC3_TSA_LEN 1 685#define RX_CONTEXT_DESC3_TSD_POS 6 686#define RX_CONTEXT_DESC3_TSD_LEN 1 687 688#define TX_PACKET_ATTRIBUTES_CSUM_ENABLE_POS 0 689#define TX_PACKET_ATTRIBUTES_CSUM_ENABLE_LEN 1 690#define TX_PACKET_ATTRIBUTES_TSO_ENABLE_POS 1 691#define TX_PACKET_ATTRIBUTES_TSO_ENABLE_LEN 1 692#define TX_PACKET_ATTRIBUTES_VLAN_CTAG_POS 2 693#define TX_PACKET_ATTRIBUTES_VLAN_CTAG_LEN 1 694#define TX_PACKET_ATTRIBUTES_PTP_POS 3 695#define TX_PACKET_ATTRIBUTES_PTP_LEN 1 696 697#define TX_CONTEXT_DESC2_MSS_POS 0 698#define TX_CONTEXT_DESC2_MSS_LEN 15 699#define TX_CONTEXT_DESC3_CTXT_POS 30 700#define TX_CONTEXT_DESC3_CTXT_LEN 1 701#define TX_CONTEXT_DESC3_TCMSSV_POS 26 702#define TX_CONTEXT_DESC3_TCMSSV_LEN 1 703#define TX_CONTEXT_DESC3_VLTV_POS 16 704#define TX_CONTEXT_DESC3_VLTV_LEN 1 705#define TX_CONTEXT_DESC3_VT_POS 0 706#define TX_CONTEXT_DESC3_VT_LEN 16 707 708#define TX_NORMAL_DESC2_HL_B1L_POS 0 709#define TX_NORMAL_DESC2_HL_B1L_LEN 14 710#define TX_NORMAL_DESC2_IC_POS 31 711#define TX_NORMAL_DESC2_IC_LEN 1 712#define TX_NORMAL_DESC2_TTSE_POS 30 713#define TX_NORMAL_DESC2_TTSE_LEN 1 714#define TX_NORMAL_DESC2_VTIR_POS 14 715#define TX_NORMAL_DESC2_VTIR_LEN 2 716#define TX_NORMAL_DESC3_CIC_POS 16 717#define TX_NORMAL_DESC3_CIC_LEN 2 718#define TX_NORMAL_DESC3_CPC_POS 26 719#define TX_NORMAL_DESC3_CPC_LEN 2 720#define TX_NORMAL_DESC3_CTXT_POS 30 721#define TX_NORMAL_DESC3_CTXT_LEN 1 722#define TX_NORMAL_DESC3_FD_POS 29 723#define TX_NORMAL_DESC3_FD_LEN 1 724#define TX_NORMAL_DESC3_FL_POS 0 725#define TX_NORMAL_DESC3_FL_LEN 15 726#define TX_NORMAL_DESC3_LD_POS 28 727#define TX_NORMAL_DESC3_LD_LEN 1 728#define TX_NORMAL_DESC3_OWN_POS 31 729#define TX_NORMAL_DESC3_OWN_LEN 1 730#define TX_NORMAL_DESC3_TCPHDRLEN_POS 19 731#define TX_NORMAL_DESC3_TCPHDRLEN_LEN 4 732#define TX_NORMAL_DESC3_TCPPL_POS 0 733#define TX_NORMAL_DESC3_TCPPL_LEN 18 734#define TX_NORMAL_DESC3_TSE_POS 18 735#define TX_NORMAL_DESC3_TSE_LEN 1 736 737#define TX_NORMAL_DESC2_VLAN_INSERT 0x2 738 739#define XLGMAC_MTL_REG(pdata, n, reg) \ 740 ((pdata)->mac_regs + MTL_Q_BASE + ((n) * MTL_Q_INC) + (reg)) 741 742#define XLGMAC_DMA_REG(channel, reg) ((channel)->dma_regs + (reg)) 743 744#endif /* __DWC_XLGMAC_REG_H__ */