cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

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__ */