cregit-Linux how code gets into the kernel

Release 4.16 drivers/net/ethernet/synopsys/dwc-xlgmac-reg.h

/* Synopsys DesignWare Core Enterprise Ethernet (XLGMAC) Driver
 *
 * Copyright (c) 2017 Synopsys, Inc. (www.synopsys.com)
 *
 * This program is dual-licensed; you may select either version 2 of
 * the GNU General Public License ("GPL") or BSD license ("BSD").
 *
 * This Synopsys DWC XLGMAC software driver and associated documentation
 * (hereinafter the "Software") is an unsupported proprietary work of
 * Synopsys, Inc. unless otherwise expressly agreed to in writing between
 * Synopsys and you. The Software IS NOT an item of Licensed Software or a
 * Licensed Product under any End User Software License Agreement or
 * Agreement for Licensed Products with Synopsys or any supplement thereto.
 * Synopsys is a registered trademark of Synopsys, Inc. Other names included
 * in the SOFTWARE may be the trademarks of their respective owners.
 */

#ifndef __DWC_XLGMAC_REG_H__

#define __DWC_XLGMAC_REG_H__

/* MAC register offsets */

#define MAC_TCR				0x0000

#define MAC_RCR				0x0004

#define MAC_PFR				0x0008

#define MAC_HTR0			0x0010

#define MAC_VLANTR			0x0050

#define MAC_VLANHTR			0x0058

#define MAC_VLANIR			0x0060

#define MAC_Q0TFCR			0x0070

#define MAC_RFCR			0x0090

#define MAC_RQC0R			0x00a0

#define MAC_RQC1R			0x00a4

#define MAC_RQC2R			0x00a8

#define MAC_RQC3R			0x00ac

#define MAC_ISR				0x00b0

#define MAC_IER				0x00b4

#define MAC_VR				0x0110

#define MAC_HWF0R			0x011c

#define MAC_HWF1R			0x0120

#define MAC_HWF2R			0x0124

#define MAC_MACA0HR			0x0300

#define MAC_MACA0LR			0x0304

#define MAC_MACA1HR			0x0308

#define MAC_MACA1LR			0x030c

#define MAC_RSSCR			0x0c80

#define MAC_RSSAR			0x0c88

#define MAC_RSSDR			0x0c8c


#define MAC_QTFCR_INC			4

#define MAC_MACA_INC			4

#define MAC_HTR_INC			4

#define MAC_RQC2_INC			4

#define MAC_RQC2_Q_PER_REG		4

/* MAC register entry bit positions and sizes */

#define MAC_HWF0R_ADDMACADRSEL_POS	18

#define MAC_HWF0R_ADDMACADRSEL_LEN	5

#define MAC_HWF0R_ARPOFFSEL_POS		9

#define MAC_HWF0R_ARPOFFSEL_LEN		1

#define MAC_HWF0R_EEESEL_POS		13

#define MAC_HWF0R_EEESEL_LEN		1

#define MAC_HWF0R_PHYIFSEL_POS		1

#define MAC_HWF0R_PHYIFSEL_LEN		2

#define MAC_HWF0R_MGKSEL_POS		7

#define MAC_HWF0R_MGKSEL_LEN		1

#define MAC_HWF0R_MMCSEL_POS		8

#define MAC_HWF0R_MMCSEL_LEN		1

#define MAC_HWF0R_RWKSEL_POS		6

#define MAC_HWF0R_RWKSEL_LEN		1

#define MAC_HWF0R_RXCOESEL_POS		16

#define MAC_HWF0R_RXCOESEL_LEN		1

#define MAC_HWF0R_SAVLANINS_POS		27

#define MAC_HWF0R_SAVLANINS_LEN		1

#define MAC_HWF0R_SMASEL_POS		5

#define MAC_HWF0R_SMASEL_LEN		1

#define MAC_HWF0R_TSSEL_POS		12

#define MAC_HWF0R_TSSEL_LEN		1

#define MAC_HWF0R_TSSTSSEL_POS		25

#define MAC_HWF0R_TSSTSSEL_LEN		2

#define MAC_HWF0R_TXCOESEL_POS		14

#define MAC_HWF0R_TXCOESEL_LEN		1

#define MAC_HWF0R_VLHASH_POS		4

#define MAC_HWF0R_VLHASH_LEN		1

#define MAC_HWF1R_ADDR64_POS		14

#define MAC_HWF1R_ADDR64_LEN		2

#define MAC_HWF1R_ADVTHWORD_POS		13

#define MAC_HWF1R_ADVTHWORD_LEN		1

#define MAC_HWF1R_DBGMEMA_POS		19

#define MAC_HWF1R_DBGMEMA_LEN		1

#define MAC_HWF1R_DCBEN_POS		16

#define MAC_HWF1R_DCBEN_LEN		1

#define MAC_HWF1R_HASHTBLSZ_POS		24

#define MAC_HWF1R_HASHTBLSZ_LEN		3

#define MAC_HWF1R_L3L4FNUM_POS		27

#define MAC_HWF1R_L3L4FNUM_LEN		4

#define MAC_HWF1R_NUMTC_POS		21

#define MAC_HWF1R_NUMTC_LEN		3

#define MAC_HWF1R_RSSEN_POS		20

#define MAC_HWF1R_RSSEN_LEN		1

#define MAC_HWF1R_RXFIFOSIZE_POS	0

#define MAC_HWF1R_RXFIFOSIZE_LEN	5

#define MAC_HWF1R_SPHEN_POS		17

#define MAC_HWF1R_SPHEN_LEN		1

#define MAC_HWF1R_TSOEN_POS		18

#define MAC_HWF1R_TSOEN_LEN		1

#define MAC_HWF1R_TXFIFOSIZE_POS	6

#define MAC_HWF1R_TXFIFOSIZE_LEN	5

#define MAC_HWF2R_AUXSNAPNUM_POS	28

#define MAC_HWF2R_AUXSNAPNUM_LEN	3

#define MAC_HWF2R_PPSOUTNUM_POS		24

#define MAC_HWF2R_PPSOUTNUM_LEN		3

#define MAC_HWF2R_RXCHCNT_POS		12

#define MAC_HWF2R_RXCHCNT_LEN		4

#define MAC_HWF2R_RXQCNT_POS		0

#define MAC_HWF2R_RXQCNT_LEN		4

#define MAC_HWF2R_TXCHCNT_POS		18

#define MAC_HWF2R_TXCHCNT_LEN		4

#define MAC_HWF2R_TXQCNT_POS		6

#define MAC_HWF2R_TXQCNT_LEN		4

#define MAC_IER_TSIE_POS		12

#define MAC_IER_TSIE_LEN		1

#define MAC_ISR_MMCRXIS_POS		9

#define MAC_ISR_MMCRXIS_LEN		1

#define MAC_ISR_MMCTXIS_POS		10

#define MAC_ISR_MMCTXIS_LEN		1

#define MAC_ISR_PMTIS_POS		4

#define MAC_ISR_PMTIS_LEN		1

#define MAC_ISR_TSIS_POS		12

#define MAC_ISR_TSIS_LEN		1

#define MAC_MACA1HR_AE_POS		31

#define MAC_MACA1HR_AE_LEN		1

#define MAC_PFR_HMC_POS			2

#define MAC_PFR_HMC_LEN			1

#define MAC_PFR_HPF_POS			10

#define MAC_PFR_HPF_LEN			1

#define MAC_PFR_HUC_POS			1

#define MAC_PFR_HUC_LEN			1

#define MAC_PFR_PM_POS			4

#define MAC_PFR_PM_LEN			1

#define MAC_PFR_PR_POS			0

#define MAC_PFR_PR_LEN			1

#define MAC_PFR_VTFE_POS		16

#define MAC_PFR_VTFE_LEN		1

#define MAC_Q0TFCR_PT_POS		16

#define MAC_Q0TFCR_PT_LEN		16

#define MAC_Q0TFCR_TFE_POS		1

#define MAC_Q0TFCR_TFE_LEN		1

#define MAC_RCR_ACS_POS			1

#define MAC_RCR_ACS_LEN			1

#define MAC_RCR_CST_POS			2

#define MAC_RCR_CST_LEN			1

#define MAC_RCR_DCRCC_POS		3

#define MAC_RCR_DCRCC_LEN		1

#define MAC_RCR_HDSMS_POS		12

#define MAC_RCR_HDSMS_LEN		3

#define MAC_RCR_IPC_POS			9

#define MAC_RCR_IPC_LEN			1

#define MAC_RCR_JE_POS			8

#define MAC_RCR_JE_LEN			1

#define MAC_RCR_LM_POS			10

#define MAC_RCR_LM_LEN			1

#define MAC_RCR_RE_POS			0

#define MAC_RCR_RE_LEN			1

#define MAC_RFCR_PFCE_POS		8

#define MAC_RFCR_PFCE_LEN		1

#define MAC_RFCR_RFE_POS		0

#define MAC_RFCR_RFE_LEN		1

#define MAC_RFCR_UP_POS			1

#define MAC_RFCR_UP_LEN			1

#define MAC_RQC0R_RXQ0EN_POS		0

#define MAC_RQC0R_RXQ0EN_LEN		2

#define MAC_RSSAR_ADDRT_POS		2

#define MAC_RSSAR_ADDRT_LEN		1

#define MAC_RSSAR_CT_POS		1

#define MAC_RSSAR_CT_LEN		1

#define MAC_RSSAR_OB_POS		0

#define MAC_RSSAR_OB_LEN		1

#define MAC_RSSAR_RSSIA_POS		8

#define MAC_RSSAR_RSSIA_LEN		8

#define MAC_RSSCR_IP2TE_POS		1

#define MAC_RSSCR_IP2TE_LEN		1

#define MAC_RSSCR_RSSE_POS		0

#define MAC_RSSCR_RSSE_LEN		1

#define MAC_RSSCR_TCP4TE_POS		2

#define MAC_RSSCR_TCP4TE_LEN		1

#define MAC_RSSCR_UDP4TE_POS		3

#define MAC_RSSCR_UDP4TE_LEN		1

#define MAC_RSSDR_DMCH_POS		0

#define MAC_RSSDR_DMCH_LEN		4

#define MAC_TCR_SS_POS			28

#define MAC_TCR_SS_LEN			3

#define MAC_TCR_TE_POS			0

#define MAC_TCR_TE_LEN			1

#define MAC_VLANHTR_VLHT_POS		0

#define MAC_VLANHTR_VLHT_LEN		16

#define MAC_VLANIR_VLTI_POS		20

#define MAC_VLANIR_VLTI_LEN		1

#define MAC_VLANIR_CSVL_POS		19

#define MAC_VLANIR_CSVL_LEN		1

#define MAC_VLANTR_DOVLTC_POS		20

#define MAC_VLANTR_DOVLTC_LEN		1

#define MAC_VLANTR_ERSVLM_POS		19

#define MAC_VLANTR_ERSVLM_LEN		1

#define MAC_VLANTR_ESVL_POS		18

#define MAC_VLANTR_ESVL_LEN		1

#define MAC_VLANTR_ETV_POS		16

#define MAC_VLANTR_ETV_LEN		1

#define MAC_VLANTR_EVLS_POS		21

#define MAC_VLANTR_EVLS_LEN		2

#define MAC_VLANTR_EVLRXS_POS		24

#define MAC_VLANTR_EVLRXS_LEN		1

#define MAC_VLANTR_VL_POS		0

#define MAC_VLANTR_VL_LEN		16

#define MAC_VLANTR_VTHM_POS		25

#define MAC_VLANTR_VTHM_LEN		1

#define MAC_VLANTR_VTIM_POS		17

#define MAC_VLANTR_VTIM_LEN		1

#define MAC_VR_DEVID_POS		8

#define MAC_VR_DEVID_LEN		8

#define MAC_VR_SNPSVER_POS		0

#define MAC_VR_SNPSVER_LEN		8

#define MAC_VR_USERVER_POS		16

#define MAC_VR_USERVER_LEN		8

/* MMC register offsets */

#define MMC_CR				0x0800

#define MMC_RISR			0x0804

#define MMC_TISR			0x0808

#define MMC_RIER			0x080c

#define MMC_TIER			0x0810

#define MMC_TXOCTETCOUNT_GB_LO		0x0814

#define MMC_TXFRAMECOUNT_GB_LO		0x081c

#define MMC_TXBROADCASTFRAMES_G_LO	0x0824

#define MMC_TXMULTICASTFRAMES_G_LO	0x082c

#define MMC_TX64OCTETS_GB_LO		0x0834

#define MMC_TX65TO127OCTETS_GB_LO	0x083c

#define MMC_TX128TO255OCTETS_GB_LO	0x0844

#define MMC_TX256TO511OCTETS_GB_LO	0x084c

#define MMC_TX512TO1023OCTETS_GB_LO	0x0854

#define MMC_TX1024TOMAXOCTETS_GB_LO	0x085c

#define MMC_TXUNICASTFRAMES_GB_LO	0x0864

#define MMC_TXMULTICASTFRAMES_GB_LO	0x086c

#define MMC_TXBROADCASTFRAMES_GB_LO	0x0874

#define MMC_TXUNDERFLOWERROR_LO		0x087c

#define MMC_TXOCTETCOUNT_G_LO		0x0884

#define MMC_TXFRAMECOUNT_G_LO		0x088c

#define MMC_TXPAUSEFRAMES_LO		0x0894

#define MMC_TXVLANFRAMES_G_LO		0x089c

#define MMC_RXFRAMECOUNT_GB_LO		0x0900

#define MMC_RXOCTETCOUNT_GB_LO		0x0908

#define MMC_RXOCTETCOUNT_G_LO		0x0910

#define MMC_RXBROADCASTFRAMES_G_LO	0x0918

#define MMC_RXMULTICASTFRAMES_G_LO	0x0920

#define MMC_RXCRCERROR_LO		0x0928

#define MMC_RXRUNTERROR			0x0930

#define MMC_RXJABBERERROR		0x0934

#define MMC_RXUNDERSIZE_G		0x0938

#define MMC_RXOVERSIZE_G		0x093c

#define MMC_RX64OCTETS_GB_LO		0x0940

#define MMC_RX65TO127OCTETS_GB_LO	0x0948

#define MMC_RX128TO255OCTETS_GB_LO	0x0950

#define MMC_RX256TO511OCTETS_GB_LO	0x0958

#define MMC_RX512TO1023OCTETS_GB_LO	0x0960

#define MMC_RX1024TOMAXOCTETS_GB_LO	0x0968

#define MMC_RXUNICASTFRAMES_G_LO	0x0970

#define MMC_RXLENGTHERROR_LO		0x0978

#define MMC_RXOUTOFRANGETYPE_LO		0x0980

#define MMC_RXPAUSEFRAMES_LO		0x0988

#define MMC_RXFIFOOVERFLOW_LO		0x0990

#define MMC_RXVLANFRAMES_GB_LO		0x0998

#define MMC_RXWATCHDOGERROR		0x09a0

/* MMC register entry bit positions and sizes */

#define MMC_CR_CR_POS				0

#define MMC_CR_CR_LEN				1

#define MMC_CR_CSR_POS				1

#define MMC_CR_CSR_LEN				1

#define MMC_CR_ROR_POS				2

#define MMC_CR_ROR_LEN				1

#define MMC_CR_MCF_POS				3

#define MMC_CR_MCF_LEN				1

#define MMC_CR_MCT_POS				4

#define MMC_CR_MCT_LEN				2

#define MMC_RIER_ALL_INTERRUPTS_POS		0

#define MMC_RIER_ALL_INTERRUPTS_LEN		23

#define MMC_RISR_RXFRAMECOUNT_GB_POS		0

#define MMC_RISR_RXFRAMECOUNT_GB_LEN		1

#define MMC_RISR_RXOCTETCOUNT_GB_POS		1

#define MMC_RISR_RXOCTETCOUNT_GB_LEN		1

#define MMC_RISR_RXOCTETCOUNT_G_POS		2

#define MMC_RISR_RXOCTETCOUNT_G_LEN		1

#define MMC_RISR_RXBROADCASTFRAMES_G_POS	3

#define MMC_RISR_RXBROADCASTFRAMES_G_LEN	1

#define MMC_RISR_RXMULTICASTFRAMES_G_POS	4

#define MMC_RISR_RXMULTICASTFRAMES_G_LEN	1

#define MMC_RISR_RXCRCERROR_POS			5

#define MMC_RISR_RXCRCERROR_LEN			1

#define MMC_RISR_RXRUNTERROR_POS		6

#define MMC_RISR_RXRUNTERROR_LEN		1

#define MMC_RISR_RXJABBERERROR_POS		7

#define MMC_RISR_RXJABBERERROR_LEN		1

#define MMC_RISR_RXUNDERSIZE_G_POS		8

#define MMC_RISR_RXUNDERSIZE_G_LEN		1

#define MMC_RISR_RXOVERSIZE_G_POS		9

#define MMC_RISR_RXOVERSIZE_G_LEN		1

#define MMC_RISR_RX64OCTETS_GB_POS		10

#define MMC_RISR_RX64OCTETS_GB_LEN		1

#define MMC_RISR_RX65TO127OCTETS_GB_POS		11

#define MMC_RISR_RX65TO127OCTETS_GB_LEN		1

#define MMC_RISR_RX128TO255OCTETS_GB_POS	12

#define MMC_RISR_RX128TO255OCTETS_GB_LEN	1

#define MMC_RISR_RX256TO511OCTETS_GB_POS	13

#define MMC_RISR_RX256TO511OCTETS_GB_LEN	1

#define MMC_RISR_RX512TO1023OCTETS_GB_POS	14

#define MMC_RISR_RX512TO1023OCTETS_GB_LEN	1

#define MMC_RISR_RX1024TOMAXOCTETS_GB_POS	15

#define MMC_RISR_RX1024TOMAXOCTETS_GB_LEN	1

#define MMC_RISR_RXUNICASTFRAMES_G_POS		16

#define MMC_RISR_RXUNICASTFRAMES_G_LEN		1

#define MMC_RISR_RXLENGTHERROR_POS		17

#define MMC_RISR_RXLENGTHERROR_LEN		1

#define MMC_RISR_RXOUTOFRANGETYPE_POS		18

#define MMC_RISR_RXOUTOFRANGETYPE_LEN		1

#define MMC_RISR_RXPAUSEFRAMES_POS		19

#define MMC_RISR_RXPAUSEFRAMES_LEN		1

#define MMC_RISR_RXFIFOOVERFLOW_POS		20

#define MMC_RISR_RXFIFOOVERFLOW_LEN		1

#define MMC_RISR_RXVLANFRAMES_GB_POS		21

#define MMC_RISR_RXVLANFRAMES_GB_LEN		1

#define MMC_RISR_RXWATCHDOGERROR_POS		22

#define MMC_RISR_RXWATCHDOGERROR_LEN		1

#define MMC_TIER_ALL_INTERRUPTS_POS		0

#define MMC_TIER_ALL_INTERRUPTS_LEN		18

#define MMC_TISR_TXOCTETCOUNT_GB_POS		0

#define MMC_TISR_TXOCTETCOUNT_GB_LEN		1

#define MMC_TISR_TXFRAMECOUNT_GB_POS		1

#define MMC_TISR_TXFRAMECOUNT_GB_LEN		1

#define MMC_TISR_TXBROADCASTFRAMES_G_POS	2

#define MMC_TISR_TXBROADCASTFRAMES_G_LEN	1

#define MMC_TISR_TXMULTICASTFRAMES_G_POS	3

#define MMC_TISR_TXMULTICASTFRAMES_G_LEN	1

#define MMC_TISR_TX64OCTETS_GB_POS		4

#define MMC_TISR_TX64OCTETS_GB_LEN		1

#define MMC_TISR_TX65TO127OCTETS_GB_POS		5

#define MMC_TISR_TX65TO127OCTETS_GB_LEN		1

#define MMC_TISR_TX128TO255OCTETS_GB_POS	6

#define MMC_TISR_TX128TO255OCTETS_GB_LEN	1

#define MMC_TISR_TX256TO511OCTETS_GB_POS	7

#define MMC_TISR_TX256TO511OCTETS_GB_LEN	1

#define MMC_TISR_TX512TO1023OCTETS_GB_POS	8

#define MMC_TISR_TX512TO1023OCTETS_GB_LEN	1

#define MMC_TISR_TX1024TOMAXOCTETS_GB_POS	9

#define MMC_TISR_TX1024TOMAXOCTETS_GB_LEN	1

#define MMC_TISR_TXUNICASTFRAMES_GB_POS		10

#define MMC_TISR_TXUNICASTFRAMES_GB_LEN		1

#define MMC_TISR_TXMULTICASTFRAMES_GB_POS	11

#define MMC_TISR_TXMULTICASTFRAMES_GB_LEN	1

#define MMC_TISR_TXBROADCASTFRAMES_GB_POS	12

#define MMC_TISR_TXBROADCASTFRAMES_GB_LEN	1

#define MMC_TISR_TXUNDERFLOWERROR_POS		13

#define MMC_TISR_TXUNDERFLOWERROR_LEN		1

#define MMC_TISR_TXOCTETCOUNT_G_POS		14

#define MMC_TISR_TXOCTETCOUNT_G_LEN		1

#define MMC_TISR_TXFRAMECOUNT_G_POS		15

#define MMC_TISR_TXFRAMECOUNT_G_LEN		1

#define MMC_TISR_TXPAUSEFRAMES_POS		16

#define MMC_TISR_TXPAUSEFRAMES_LEN		1

#define MMC_TISR_TXVLANFRAMES_G_POS		17

#define MMC_TISR_TXVLANFRAMES_G_LEN		1

/* MTL register offsets */

#define MTL_OMR				0x1000

#define MTL_FDDR			0x1010

#define MTL_RQDCM0R			0x1030


#define MTL_RQDCM_INC			4

#define MTL_RQDCM_Q_PER_REG		4

/* MTL register entry bit positions and sizes */

#define MTL_OMR_ETSALG_POS		5

#define MTL_OMR_ETSALG_LEN		2

#define MTL_OMR_RAA_POS			2

#define MTL_OMR_RAA_LEN			1

/* MTL queue register offsets
 *   Multiple queues can be active.  The first queue has registers
 *   that begin at 0x1100.  Each subsequent queue has registers that
 *   are accessed using an offset of 0x80 from the previous queue.
 */

#define MTL_Q_BASE			0x1100

#define MTL_Q_INC			0x80


#define MTL_Q_TQOMR			0x00

#define MTL_Q_RQOMR			0x40

#define MTL_Q_RQDR			0x48

#define MTL_Q_RQFCR			0x50

#define MTL_Q_IER			0x70

#define MTL_Q_ISR			0x74

/* MTL queue register entry bit positions and sizes */

#define MTL_Q_RQDR_PRXQ_POS		16

#define MTL_Q_RQDR_PRXQ_LEN		14

#define MTL_Q_RQDR_RXQSTS_POS		4

#define MTL_Q_RQDR_RXQSTS_LEN		2

#define MTL_Q_RQFCR_RFA_POS		1

#define MTL_Q_RQFCR_RFA_LEN		6

#define MTL_Q_RQFCR_RFD_POS		17

#define MTL_Q_RQFCR_RFD_LEN		6

#define MTL_Q_RQOMR_EHFC_POS		7

#define MTL_Q_RQOMR_EHFC_LEN		1

#define MTL_Q_RQOMR_RQS_POS		16

#define MTL_Q_RQOMR_RQS_LEN		9

#define MTL_Q_RQOMR_RSF_POS		5

#define MTL_Q_RQOMR_RSF_LEN		1

#define MTL_Q_RQOMR_FEP_POS		4

#define MTL_Q_RQOMR_FEP_LEN		1

#define MTL_Q_RQOMR_FUP_POS		3

#define MTL_Q_RQOMR_FUP_LEN		1

#define MTL_Q_RQOMR_RTC_POS		0

#define MTL_Q_RQOMR_RTC_LEN		2

#define MTL_Q_TQOMR_FTQ_POS		0

#define MTL_Q_TQOMR_FTQ_LEN		1

#define MTL_Q_TQOMR_Q2TCMAP_POS		8

#define MTL_Q_TQOMR_Q2TCMAP_LEN		3

#define MTL_Q_TQOMR_TQS_POS		16

#define MTL_Q_TQOMR_TQS_LEN		10

#define MTL_Q_TQOMR_TSF_POS		1

#define MTL_Q_TQOMR_TSF_LEN		1

#define MTL_Q_TQOMR_TTC_POS		4

#define MTL_Q_TQOMR_TTC_LEN		3

#define MTL_Q_TQOMR_TXQEN_POS		2

#define MTL_Q_TQOMR_TXQEN_LEN		2

/* MTL queue register value */

#define MTL_RSF_DISABLE			0x00

#define MTL_RSF_ENABLE			0x01

#define MTL_TSF_DISABLE			0x00

#define MTL_TSF_ENABLE			0x01


#define MTL_RX_THRESHOLD_64		0x00

#define MTL_RX_THRESHOLD_96		0x02

#define MTL_RX_THRESHOLD_128		0x03

#define MTL_TX_THRESHOLD_64		0x00

#define MTL_TX_THRESHOLD_96		0x02

#define MTL_TX_THRESHOLD_128		0x03

#define MTL_TX_THRESHOLD_192		0x04

#define MTL_TX_THRESHOLD_256		0x05

#define MTL_TX_THRESHOLD_384		0x06

#define MTL_TX_THRESHOLD_512		0x07


#define MTL_ETSALG_WRR			0x00

#define MTL_ETSALG_WFQ			0x01

#define MTL_ETSALG_DWRR			0x02

#define MTL_RAA_SP			0x00

#define MTL_RAA_WSP			0x01


#define MTL_Q_DISABLED			0x00

#define MTL_Q_ENABLED			0x02


#define MTL_RQDCM0R_Q0MDMACH		0x0

#define MTL_RQDCM0R_Q1MDMACH		0x00000100

#define MTL_RQDCM0R_Q2MDMACH		0x00020000

#define MTL_RQDCM0R_Q3MDMACH		0x03000000

#define MTL_RQDCM1R_Q4MDMACH		0x00000004

#define MTL_RQDCM1R_Q5MDMACH		0x00000500

#define MTL_RQDCM1R_Q6MDMACH		0x00060000

#define MTL_RQDCM1R_Q7MDMACH		0x07000000

#define MTL_RQDCM2R_Q8MDMACH		0x00000008

#define MTL_RQDCM2R_Q9MDMACH		0x00000900

#define MTL_RQDCM2R_Q10MDMACH		0x000A0000

#define MTL_RQDCM2R_Q11MDMACH		0x0B000000

/* MTL traffic class register offsets
 *   Multiple traffic classes can be active.  The first class has registers
 *   that begin at 0x1100.  Each subsequent queue has registers that
 *   are accessed using an offset of 0x80 from the previous queue.
 */

#define MTL_TC_BASE			MTL_Q_BASE

#define MTL_TC_INC			MTL_Q_INC


#define MTL_TC_ETSCR			0x10

#define MTL_TC_ETSSR			0x14

#define MTL_TC_QWR			0x18

/* MTL traffic class register entry bit positions and sizes */

#define MTL_TC_ETSCR_TSA_POS		0

#define MTL_TC_ETSCR_TSA_LEN		2

#define MTL_TC_QWR_QW_POS		0

#define MTL_TC_QWR_QW_LEN		21

/* MTL traffic class register value */

#define MTL_TSA_SP			0x00

#define MTL_TSA_ETS			0x02

/* DMA register offsets */

#define DMA_MR				0x3000

#define DMA_SBMR			0x3004

#define DMA_ISR				0x3008

#define DMA_DSR0			0x3020

#define DMA_DSR1			0x3024

/* DMA register entry bit positions and sizes */

#define DMA_ISR_MACIS_POS		17

#define DMA_ISR_MACIS_LEN		1

#define DMA_ISR_MTLIS_POS		16

#define DMA_ISR_MTLIS_LEN		1

#define DMA_MR_SWR_POS			0

#define DMA_MR_SWR_LEN			1

#define DMA_SBMR_EAME_POS		11

#define DMA_SBMR_EAME_LEN		1

#define DMA_SBMR_BLEN_64_POS		5

#define DMA_SBMR_BLEN_64_LEN		1

#define DMA_SBMR_BLEN_128_POS		6

#define DMA_SBMR_BLEN_128_LEN		1

#define DMA_SBMR_BLEN_256_POS		7

#define DMA_SBMR_BLEN_256_LEN		1

#define DMA_SBMR_UNDEF_POS		0

#define DMA_SBMR_UNDEF_LEN		1

/* DMA register values */

#define DMA_DSR_RPS_LEN			4

#define DMA_DSR_TPS_LEN			4

#define DMA_DSR_Q_LEN			(DMA_DSR_RPS_LEN + DMA_DSR_TPS_LEN)

#define DMA_DSR0_TPS_START		12

#define DMA_DSRX_FIRST_QUEUE		3

#define DMA_DSRX_INC			4

#define DMA_DSRX_QPR			4

#define DMA_DSRX_TPS_START		4

#define DMA_TPS_STOPPED			0x00

#define DMA_TPS_SUSPENDED		0x06

/* DMA channel register offsets
 *   Multiple channels can be active.  The first channel has registers
 *   that begin at 0x3100.  Each subsequent channel has registers that
 *   are accessed using an offset of 0x80 from the previous channel.
 */

#define DMA_CH_BASE			0x3100

#define DMA_CH_INC			0x80


#define DMA_CH_CR			0x00

#define DMA_CH_TCR			0x04

#define DMA_CH_RCR			0x08

#define DMA_CH_TDLR_HI			0x10

#define DMA_CH_TDLR_LO			0x14

#define DMA_CH_RDLR_HI			0x18

#define DMA_CH_RDLR_LO			0x1c

#define DMA_CH_TDTR_LO			0x24

#define DMA_CH_RDTR_LO			0x2c

#define DMA_CH_TDRLR			0x30

#define DMA_CH_RDRLR			0x34

#define DMA_CH_IER			0x38

#define DMA_CH_RIWT			0x3c

#define DMA_CH_SR			0x60

/* DMA channel register entry bit positions and sizes */

#define DMA_CH_CR_PBLX8_POS		16

#define DMA_CH_CR_PBLX8_LEN		1

#define DMA_CH_CR_SPH_POS		24

#define DMA_CH_CR_SPH_LEN		1

#define DMA_CH_IER_AIE_POS		15

#define DMA_CH_IER_AIE_LEN		1

#define DMA_CH_IER_FBEE_POS		12

#define DMA_CH_IER_FBEE_LEN		1

#define DMA_CH_IER_NIE_POS		16

#define DMA_CH_IER_NIE_LEN		1

#define DMA_CH_IER_RBUE_POS		7

#define DMA_CH_IER_RBUE_LEN		1

#define DMA_CH_IER_RIE_POS		6

#define DMA_CH_IER_RIE_LEN		1

#define DMA_CH_IER_RSE_POS		8

#define DMA_CH_IER_RSE_LEN		1

#define DMA_CH_IER_TBUE_POS		2

#define DMA_CH_IER_TBUE_LEN		1

#define DMA_CH_IER_TIE_POS		0

#define DMA_CH_IER_TIE_LEN		1

#define DMA_CH_IER_TXSE_POS		1

#define DMA_CH_IER_TXSE_LEN		1

#define DMA_CH_RCR_PBL_POS		16

#define DMA_CH_RCR_PBL_LEN		6

#define DMA_CH_RCR_RBSZ_POS		1

#define DMA_CH_RCR_RBSZ_LEN		14

#define DMA_CH_RCR_SR_POS		0

#define DMA_CH_RCR_SR_LEN		1

#define DMA_CH_RIWT_RWT_POS		0

#define DMA_CH_RIWT_RWT_LEN		8

#define DMA_CH_SR_FBE_POS		12

#define DMA_CH_SR_FBE_LEN		1

#define DMA_CH_SR_RBU_POS		7

#define DMA_CH_SR_RBU_LEN		1

#define DMA_CH_SR_RI_POS		6

#define DMA_CH_SR_RI_LEN		1

#define DMA_CH_SR_RPS_POS		8

#define DMA_CH_SR_RPS_LEN		1

#define DMA_CH_SR_TBU_POS		2

#define DMA_CH_SR_TBU_LEN		1

#define DMA_CH_SR_TI_POS		0

#define DMA_CH_SR_TI_LEN		1

#define DMA_CH_SR_TPS_POS		1

#define DMA_CH_SR_TPS_LEN		1

#define DMA_CH_TCR_OSP_POS		4

#define DMA_CH_TCR_OSP_LEN		1

#define DMA_CH_TCR_PBL_POS		16

#define DMA_CH_TCR_PBL_LEN		6

#define DMA_CH_TCR_ST_POS		0

#define DMA_CH_TCR_ST_LEN		1

#define DMA_CH_TCR_TSE_POS		12

#define DMA_CH_TCR_TSE_LEN		1

/* DMA channel register values */

#define DMA_OSP_DISABLE			0x00

#define DMA_OSP_ENABLE			0x01

#define DMA_PBL_1			1

#define DMA_PBL_2			2

#define DMA_PBL_4			4

#define DMA_PBL_8			8

#define DMA_PBL_16			16

#define DMA_PBL_32			32

#define DMA_PBL_64			64

#define DMA_PBL_128			128

#define DMA_PBL_256			256

#define DMA_PBL_X8_DISABLE		0x00

#define DMA_PBL_X8_ENABLE		0x01

/* Descriptor/Packet entry bit positions and sizes */

#define RX_PACKET_ERRORS_CRC_POS		2

#define RX_PACKET_ERRORS_CRC_LEN		1

#define RX_PACKET_ERRORS_FRAME_POS		3

#define RX_PACKET_ERRORS_FRAME_LEN		1

#define RX_PACKET_ERRORS_LENGTH_POS		0

#define RX_PACKET_ERRORS_LENGTH_LEN		1

#define RX_PACKET_ERRORS_OVERRUN_POS		1

#define RX_PACKET_ERRORS_OVERRUN_LEN		1


#define RX_PACKET_ATTRIBUTES_CSUM_DONE_POS	0

#define RX_PACKET_ATTRIBUTES_CSUM_DONE_LEN	1

#define RX_PACKET_ATTRIBUTES_VLAN_CTAG_POS	1

#define RX_PACKET_ATTRIBUTES_VLAN_CTAG_LEN	1

#define RX_PACKET_ATTRIBUTES_INCOMPLETE_POS	2

#define RX_PACKET_ATTRIBUTES_INCOMPLETE_LEN	1

#define RX_PACKET_ATTRIBUTES_CONTEXT_NEXT_POS	3

#define RX_PACKET_ATTRIBUTES_CONTEXT_NEXT_LEN	1

#define RX_PACKET_ATTRIBUTES_CONTEXT_POS	4

#define RX_PACKET_ATTRIBUTES_CONTEXT_LEN	1

#define RX_PACKET_ATTRIBUTES_RX_TSTAMP_POS	5

#define RX_PACKET_ATTRIBUTES_RX_TSTAMP_LEN	1

#define RX_PACKET_ATTRIBUTES_RSS_HASH_POS	6

#define RX_PACKET_ATTRIBUTES_RSS_HASH_LEN	1


#define RX_NORMAL_DESC0_OVT_POS			0

#define RX_NORMAL_DESC0_OVT_LEN			16

#define RX_NORMAL_DESC2_HL_POS			0

#define RX_NORMAL_DESC2_HL_LEN			10

#define RX_NORMAL_DESC3_CDA_POS			27

#define RX_NORMAL_DESC3_CDA_LEN			1

#define RX_NORMAL_DESC3_CTXT_POS		30

#define RX_NORMAL_DESC3_CTXT_LEN		1

#define RX_NORMAL_DESC3_ES_POS			15

#define RX_NORMAL_DESC3_ES_LEN			1

#define RX_NORMAL_DESC3_ETLT_POS		16

#define RX_NORMAL_DESC3_ETLT_LEN		4

#define RX_NORMAL_DESC3_FD_POS			29

#define RX_NORMAL_DESC3_FD_LEN			1

#define RX_NORMAL_DESC3_INTE_POS		30

#define RX_NORMAL_DESC3_INTE_LEN		1

#define RX_NORMAL_DESC3_L34T_POS		20

#define RX_NORMAL_DESC3_L34T_LEN		4

#define RX_NORMAL_DESC3_LD_POS			28

#define RX_NORMAL_DESC3_LD_LEN			1

#define RX_NORMAL_DESC3_OWN_POS			31

#define RX_NORMAL_DESC3_OWN_LEN			1

#define RX_NORMAL_DESC3_PL_POS			0

#define RX_NORMAL_DESC3_PL_LEN			14

#define RX_NORMAL_DESC3_RSV_POS			26

#define RX_NORMAL_DESC3_RSV_LEN			1


#define RX_DESC3_L34T_IPV4_TCP			1

#define RX_DESC3_L34T_IPV4_UDP			2

#define RX_DESC3_L34T_IPV4_ICMP			3

#define RX_DESC3_L34T_IPV6_TCP			9

#define RX_DESC3_L34T_IPV6_UDP			10

#define RX_DESC3_L34T_IPV6_ICMP			11


#define RX_CONTEXT_DESC3_TSA_POS		4

#define RX_CONTEXT_DESC3_TSA_LEN		1

#define RX_CONTEXT_DESC3_TSD_POS		6

#define RX_CONTEXT_DESC3_TSD_LEN		1


#define TX_PACKET_ATTRIBUTES_CSUM_ENABLE_POS	0

#define TX_PACKET_ATTRIBUTES_CSUM_ENABLE_LEN	1

#define TX_PACKET_ATTRIBUTES_TSO_ENABLE_POS	1

#define TX_PACKET_ATTRIBUTES_TSO_ENABLE_LEN	1

#define TX_PACKET_ATTRIBUTES_VLAN_CTAG_POS	2

#define TX_PACKET_ATTRIBUTES_VLAN_CTAG_LEN	1

#define TX_PACKET_ATTRIBUTES_PTP_POS		3

#define TX_PACKET_ATTRIBUTES_PTP_LEN		1


#define TX_CONTEXT_DESC2_MSS_POS		0

#define TX_CONTEXT_DESC2_MSS_LEN		15

#define TX_CONTEXT_DESC3_CTXT_POS		30

#define TX_CONTEXT_DESC3_CTXT_LEN		1

#define TX_CONTEXT_DESC3_TCMSSV_POS		26

#define TX_CONTEXT_DESC3_TCMSSV_LEN		1

#define TX_CONTEXT_DESC3_VLTV_POS		16

#define TX_CONTEXT_DESC3_VLTV_LEN		1

#define TX_CONTEXT_DESC3_VT_POS			0

#define TX_CONTEXT_DESC3_VT_LEN			16


#define TX_NORMAL_DESC2_HL_B1L_POS		0

#define TX_NORMAL_DESC2_HL_B1L_LEN		14

#define TX_NORMAL_DESC2_IC_POS			31

#define TX_NORMAL_DESC2_IC_LEN			1

#define TX_NORMAL_DESC2_TTSE_POS		30

#define TX_NORMAL_DESC2_TTSE_LEN		1

#define TX_NORMAL_DESC2_VTIR_POS		14

#define TX_NORMAL_DESC2_VTIR_LEN		2

#define TX_NORMAL_DESC3_CIC_POS			16

#define TX_NORMAL_DESC3_CIC_LEN			2

#define TX_NORMAL_DESC3_CPC_POS			26

#define TX_NORMAL_DESC3_CPC_LEN			2

#define TX_NORMAL_DESC3_CTXT_POS		30

#define TX_NORMAL_DESC3_CTXT_LEN		1

#define TX_NORMAL_DESC3_FD_POS			29

#define TX_NORMAL_DESC3_FD_LEN			1

#define TX_NORMAL_DESC3_FL_POS			0

#define TX_NORMAL_DESC3_FL_LEN			15

#define TX_NORMAL_DESC3_LD_POS			28

#define TX_NORMAL_DESC3_LD_LEN			1

#define TX_NORMAL_DESC3_OWN_POS			31

#define TX_NORMAL_DESC3_OWN_LEN			1

#define TX_NORMAL_DESC3_TCPHDRLEN_POS		19

#define TX_NORMAL_DESC3_TCPHDRLEN_LEN		4

#define TX_NORMAL_DESC3_TCPPL_POS		0

#define TX_NORMAL_DESC3_TCPPL_LEN		18

#define TX_NORMAL_DESC3_TSE_POS			18

#define TX_NORMAL_DESC3_TSE_LEN			1


#define TX_NORMAL_DESC2_VLAN_INSERT		0x2


#define XLGMAC_MTL_REG(pdata, n, reg)					\
	((pdata)->mac_regs + MTL_Q_BASE + ((n) * MTL_Q_INC) + (reg))


#define XLGMAC_DMA_REG(channel, reg)	((channel)->dma_regs + (reg))

#endif /* __DWC_XLGMAC_REG_H__ */

Overall Contributors

PersonTokensPropCommitsCommitProp
Jie Deng2654100.00%2100.00%
Total2654100.00%2100.00%
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
Created with cregit.