xref: /freebsd/sys/dev/eqos/if_eqos_reg.h (revision cd92dd23241e22dce06ebeb0c8e98eec5afcc896)
1702b53ddSSøren Schmidt /*-
24d846d26SWarner Losh  * SPDX-License-Identifier: BSD-2-Clause
3702b53ddSSøren Schmidt  *
4702b53ddSSøren Schmidt  * Copyright (c) 2022 Jared McNeill <jmcneill@invisible.ca>
5702b53ddSSøren Schmidt  * All rights reserved.
6702b53ddSSøren Schmidt  *
7702b53ddSSøren Schmidt  * Redistribution and use in source and binary forms, with or without
8702b53ddSSøren Schmidt  * modification, are permitted provided that the following conditions
9702b53ddSSøren Schmidt  * are met:
10702b53ddSSøren Schmidt  * 1. Redistributions of source code must retain the above copyright
11702b53ddSSøren Schmidt  *    notice, this list of conditions and the following disclaimer.
12702b53ddSSøren Schmidt  * 2. Redistributions in binary form must reproduce the above copyright
13702b53ddSSøren Schmidt  *    notice, this list of conditions and the following disclaimer in the
14702b53ddSSøren Schmidt  *    documentation and/or other materials provided with the distribution.
15702b53ddSSøren Schmidt  *
16702b53ddSSøren Schmidt  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17702b53ddSSøren Schmidt  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18702b53ddSSøren Schmidt  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19702b53ddSSøren Schmidt  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20702b53ddSSøren Schmidt  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
21702b53ddSSøren Schmidt  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22702b53ddSSøren Schmidt  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
23702b53ddSSøren Schmidt  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
24702b53ddSSøren Schmidt  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25702b53ddSSøren Schmidt  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26702b53ddSSøren Schmidt  * SUCH DAMAGE.
27702b53ddSSøren Schmidt  *
28702b53ddSSøren Schmidt  * $Id: eqos_reg.h 921 2022-08-09 18:38:11Z sos $
29702b53ddSSøren Schmidt  */
30702b53ddSSøren Schmidt 
31702b53ddSSøren Schmidt /*
32702b53ddSSøren Schmidt  * DesignWare Ethernet Quality-of-Service controller
33702b53ddSSøren Schmidt  */
34702b53ddSSøren Schmidt 
35702b53ddSSøren Schmidt #ifndef _EQOS_REG_H
36702b53ddSSøren Schmidt #define	_EQOS_REG_H
37702b53ddSSøren Schmidt 
38702b53ddSSøren Schmidt #define	GMAC_MAC_CONFIGURATION			0x0000
39702b53ddSSøren Schmidt #define	 GMAC_MAC_CONFIGURATION_CST		(1U << 21)
40702b53ddSSøren Schmidt #define	 GMAC_MAC_CONFIGURATION_ACS		(1U << 20)
41702b53ddSSøren Schmidt #define	 GMAC_MAC_CONFIGURATION_BE		(1U << 18)
42702b53ddSSøren Schmidt #define	 GMAC_MAC_CONFIGURATION_JD		(1U << 17)
43702b53ddSSøren Schmidt #define	 GMAC_MAC_CONFIGURATION_JE		(1U << 16)
44702b53ddSSøren Schmidt #define	 GMAC_MAC_CONFIGURATION_PS		(1U << 15)
45702b53ddSSøren Schmidt #define	 GMAC_MAC_CONFIGURATION_FES		(1U << 14)
46702b53ddSSøren Schmidt #define	 GMAC_MAC_CONFIGURATION_DM		(1U << 13)
47702b53ddSSøren Schmidt #define	 GMAC_MAC_CONFIGURATION_DCRS		(1U << 9)
48702b53ddSSøren Schmidt #define	 GMAC_MAC_CONFIGURATION_TE		(1U << 1)
49702b53ddSSøren Schmidt #define	 GMAC_MAC_CONFIGURATION_RE		(1U << 0)
50702b53ddSSøren Schmidt #define	GMAC_MAC_EXT_CONFIGURATION		0x0004
51702b53ddSSøren Schmidt #define	GMAC_MAC_PACKET_FILTER			0x0008
52702b53ddSSøren Schmidt #define	 GMAC_MAC_PACKET_FILTER_HPF		(1U << 10)
53702b53ddSSøren Schmidt #define	 GMAC_MAC_PACKET_FILTER_PCF_MASK	(3U << 6)
54702b53ddSSøren Schmidt #define	 GMAC_MAC_PACKET_FILTER_PCF_ALL		(2U << 6)
55702b53ddSSøren Schmidt #define	 GMAC_MAC_PACKET_FILTER_DBF		(1U << 5)
56702b53ddSSøren Schmidt #define	 GMAC_MAC_PACKET_FILTER_PM		(1U << 4)
57702b53ddSSøren Schmidt #define	 GMAC_MAC_PACKET_FILTER_HMC		(1U << 2)
58702b53ddSSøren Schmidt #define	 GMAC_MAC_PACKET_FILTER_HUC		(1U << 1)
59702b53ddSSøren Schmidt #define	 GMAC_MAC_PACKET_FILTER_PR		(1U << 0)
60702b53ddSSøren Schmidt #define	GMAC_MAC_WATCHDOG_TIMEOUT		0x000C
61702b53ddSSøren Schmidt #define	GMAC_MAC_HASH_TABLE_REG0		0x0010
62702b53ddSSøren Schmidt #define	GMAC_MAC_HASH_TABLE_REG1		0x0014
63702b53ddSSøren Schmidt #define	GMAC_MAC_VLAN_TAG			0x0050
64702b53ddSSøren Schmidt #define	GMAC_MAC_Q0_TX_FLOW_CTRL		0x0070
65702b53ddSSøren Schmidt #define	 GMAC_MAC_Q0_TX_FLOW_CTRL_PT_SHIFT	16
66702b53ddSSøren Schmidt #define	 GMAC_MAC_Q0_TX_FLOW_CTRL_TFE		(1U << 1)
67702b53ddSSøren Schmidt #define	GMAC_MAC_RX_FLOW_CTRL			0x0090
68702b53ddSSøren Schmidt #define	 GMAC_MAC_RX_FLOW_CTRL_RFE		(1U << 0)
69702b53ddSSøren Schmidt #define	GMAC_RXQ_CTRL0				0x00A0
70702b53ddSSøren Schmidt #define	 GMAC_RXQ_CTRL0_EN_MASK			0x3
71702b53ddSSøren Schmidt #define	 GMAC_RXQ_CTRL0_EN_DCB			0x2
72702b53ddSSøren Schmidt #define	GMAC_RXQ_CTRL1				0x00A4
73702b53ddSSøren Schmidt #define	GMAC_MAC_INTERRUPT_STATUS		0x00B0
74702b53ddSSøren Schmidt #define	GMAC_MAC_INTERRUPT_ENABLE		0x00B4
75702b53ddSSøren Schmidt #define	GMAC_MAC_RX_TX_STATUS			0x00B8
76702b53ddSSøren Schmidt #define	 GMAC_MAC_RX_TX_STATUS_RWT		(1U << 8)
77702b53ddSSøren Schmidt #define	 GMAC_MAC_RX_TX_STATUS_EXCOL		(1U << 5)
78702b53ddSSøren Schmidt #define	 GMAC_MAC_RX_TX_STATUS_LCOL		(1U << 4)
79702b53ddSSøren Schmidt #define	 GMAC_MAC_RX_TX_STATUS_EXDEF		(1U << 3)
80702b53ddSSøren Schmidt #define	 GMAC_MAC_RX_TX_STATUS_LCARR		(1U << 2)
81702b53ddSSøren Schmidt #define	 GMAC_MAC_RX_TX_STATUS_NCARR		(1U << 1)
82702b53ddSSøren Schmidt #define	 GMAC_MAC_RX_TX_STATUS_TJT		(1U << 0)
83702b53ddSSøren Schmidt #define	GMAC_MAC_PMT_CONTROL_STATUS		0x00C0
84702b53ddSSøren Schmidt #define	GMAC_MAC_RWK_PACKET_FILTER		0x00C4
85702b53ddSSøren Schmidt #define	GMAC_MAC_LPI_CONTROL_STATUS		0x00D0
86702b53ddSSøren Schmidt #define	GMAC_MAC_LPI_TIMERS_CONTROL		0x00D4
87702b53ddSSøren Schmidt #define	GMAC_MAC_LPI_ENTRY_TIMER		0x00D8
88702b53ddSSøren Schmidt #define	GMAC_MAC_1US_TIC_COUNTER		0x00DC
89702b53ddSSøren Schmidt #define	GMAC_MAC_PHYIF_CONTROL_STATUS		0x00F8
90702b53ddSSøren Schmidt #define	GMAC_MAC_VERSION			0x0110
91702b53ddSSøren Schmidt #define	 GMAC_MAC_VERSION_USERVER_SHIFT		8
92702b53ddSSøren Schmidt #define	 GMAC_MAC_VERSION_USERVER_MASK		(0xFFU << GMAC_MAC_VERSION_USERVER_SHIFT)
93702b53ddSSøren Schmidt #define	 GMAC_MAC_VERSION_SNPSVER_MASK		0xFFU
94702b53ddSSøren Schmidt #define	GMAC_MAC_DEBUG				0x0114
95702b53ddSSøren Schmidt #define	GMAC_MAC_HW_FEATURE(n)			(0x011C + 0x4 * (n))
96702b53ddSSøren Schmidt #define	 GMAC_MAC_HW_FEATURE1_ADDR64_SHIFT	14
97702b53ddSSøren Schmidt #define	 GMAC_MAC_HW_FEATURE1_ADDR64_MASK	(0x3U << GMAC_MAC_HW_FEATURE1_ADDR64_SHIFT)
98702b53ddSSøren Schmidt #define	 GMAC_MAC_HW_FEATURE1_ADDR64_32BIT	(0x0U << GMAC_MAC_HW_FEATURE1_ADDR64_SHIFT)
99702b53ddSSøren Schmidt #define	GMAC_MAC_MDIO_ADDRESS			0x0200
100702b53ddSSøren Schmidt #define	 GMAC_MAC_MDIO_ADDRESS_PA_SHIFT		21
101702b53ddSSøren Schmidt #define	 GMAC_MAC_MDIO_ADDRESS_RDA_SHIFT	16
102702b53ddSSøren Schmidt #define	 GMAC_MAC_MDIO_ADDRESS_CR_SHIFT		8
103702b53ddSSøren Schmidt #define	 GMAC_MAC_MDIO_ADDRESS_CR_MASK		(0x7U << GMAC_MAC_MDIO_ADDRESS_CR_SHIFT)
104702b53ddSSøren Schmidt #define	 GMAC_MAC_MDIO_ADDRESS_CR_60_100	(0U << GMAC_MAC_MDIO_ADDRESS_CR_SHIFT)
105702b53ddSSøren Schmidt #define	 GMAC_MAC_MDIO_ADDRESS_CR_100_150	(1U << GMAC_MAC_MDIO_ADDRESS_CR_SHIFT)
106702b53ddSSøren Schmidt #define	 GMAC_MAC_MDIO_ADDRESS_CR_20_35		(2U << GMAC_MAC_MDIO_ADDRESS_CR_SHIFT)
107702b53ddSSøren Schmidt #define	 GMAC_MAC_MDIO_ADDRESS_CR_35_60		(3U << GMAC_MAC_MDIO_ADDRESS_CR_SHIFT)
108702b53ddSSøren Schmidt #define	 GMAC_MAC_MDIO_ADDRESS_CR_150_250	(4U << GMAC_MAC_MDIO_ADDRESS_CR_SHIFT)
109702b53ddSSøren Schmidt #define	 GMAC_MAC_MDIO_ADDRESS_CR_250_300	(5U << GMAC_MAC_MDIO_ADDRESS_CR_SHIFT)
110702b53ddSSøren Schmidt #define	 GMAC_MAC_MDIO_ADDRESS_CR_300_500	(6U << GMAC_MAC_MDIO_ADDRESS_CR_SHIFT)
111702b53ddSSøren Schmidt #define	 GMAC_MAC_MDIO_ADDRESS_CR_500_800	(7U << GMAC_MAC_MDIO_ADDRESS_CR_SHIFT)
112702b53ddSSøren Schmidt #define	 GMAC_MAC_MDIO_ADDRESS_SKAP		(1U << 4)
113702b53ddSSøren Schmidt #define	 GMAC_MAC_MDIO_ADDRESS_GOC_SHIFT	2
114702b53ddSSøren Schmidt #define	 GMAC_MAC_MDIO_ADDRESS_GOC_READ		(3U << GMAC_MAC_MDIO_ADDRESS_GOC_SHIFT)
115702b53ddSSøren Schmidt #define	 GMAC_MAC_MDIO_ADDRESS_GOC_WRITE	(1U << GMAC_MAC_MDIO_ADDRESS_GOC_SHIFT)
116702b53ddSSøren Schmidt #define	 GMAC_MAC_MDIO_ADDRESS_C45E		(1U << 1)
117702b53ddSSøren Schmidt #define	 GMAC_MAC_MDIO_ADDRESS_GB		(1U << 0)
118702b53ddSSøren Schmidt #define	GMAC_MAC_MDIO_DATA			0x0204
119702b53ddSSøren Schmidt #define	GMAC_MAC_CSR_SW_CTRL			0x0230
120702b53ddSSøren Schmidt #define	GMAC_MAC_ADDRESS0_HIGH			0x0300
121702b53ddSSøren Schmidt #define	GMAC_MAC_ADDRESS0_LOW			0x0304
122702b53ddSSøren Schmidt #define	GMAC_MMC_CONTROL			0x0700
123702b53ddSSøren Schmidt #define	 GMAC_MMC_CONTROL_UCDBC			(1U << 8)
124702b53ddSSøren Schmidt #define	 GMAC_MMC_CONTROL_CNTPRSTLVL		(1U << 5)
125702b53ddSSøren Schmidt #define	 GMAC_MMC_CONTROL_CNTPRST		(1U << 4)
126702b53ddSSøren Schmidt #define	 GMAC_MMC_CONTROL_CNTFREEZ		(1U << 3)
127702b53ddSSøren Schmidt #define	 GMAC_MMC_CONTROL_RSTONRD		(1U << 2)
128702b53ddSSøren Schmidt #define	 GMAC_MMC_CONTROL_CNTSTOPRO		(1U << 1)
129702b53ddSSøren Schmidt #define	 GMAC_MMC_CONTROL_CNTRST		(1U << 0)
130702b53ddSSøren Schmidt #define	GMAC_MMC_RX_INTERRUPT			0x0704
131702b53ddSSøren Schmidt #define	GMAC_MMC_TX_INTERRUPT			0x0708
132702b53ddSSøren Schmidt #define	GMAC_MMC_RX_INTERRUPT_MASK		0x070C
133702b53ddSSøren Schmidt #define	GMAC_MMC_TX_INTERRUPT_MASK		0x0710
134702b53ddSSøren Schmidt #define	GMAC_TX_OCTET_COUNT_GOOD_BAD		0x0714
135702b53ddSSøren Schmidt #define	GMAC_TX_PACKET_COUNT_GOOD_BAD		0x0718
136702b53ddSSøren Schmidt #define	GMAC_TX_UNDERFLOW_ERROR_PACKETS		0x0748
137702b53ddSSøren Schmidt #define	GMAC_TX_CARRIER_ERROR_PACKETS		0x0760
138702b53ddSSøren Schmidt #define	GMAC_TX_OCTET_COUNT_GOOD		0x0764
139702b53ddSSøren Schmidt #define	GMAC_TX_PACKET_COUNT_GOOD		0x0768
140702b53ddSSøren Schmidt #define	GMAC_RX_PACKETS_COUNT_GOOD_BAD		0x0780
141702b53ddSSøren Schmidt #define	GMAC_RX_OCTET_COUNT_GOOD_BAD		0x0784
142702b53ddSSøren Schmidt #define	GMAC_RX_OCTET_COUNT_GOOD		0x0788
143702b53ddSSøren Schmidt #define	GMAC_RX_MULTICAST_PACKETS_GOOD		0x0790
144702b53ddSSøren Schmidt #define	GMAC_RX_CRC_ERROR_PACKETS		0x0794
145702b53ddSSøren Schmidt #define	GMAC_RX_LENGTH_ERROR_PACKETS		0x07C8
146702b53ddSSøren Schmidt #define	GMAC_RX_FIFO_OVERFLOW_PACKETS		0x07D4
147702b53ddSSøren Schmidt #define	GMAC_MMC_IPC_RX_INTERRUPT_MASK		0x0800
148702b53ddSSøren Schmidt #define	GMAC_MMC_IPC_RX_INTERRUPT		0x0808
149702b53ddSSøren Schmidt #define	GMAC_RXIPV4_GOOD_PACKETS		0x0810
150702b53ddSSøren Schmidt #define	GMAC_RXIPV4_HEADER_ERROR_PACKETS	0x0814
151702b53ddSSøren Schmidt #define	GMAC_RXIPV6_GOOD_PACKETS		0x0824
152702b53ddSSøren Schmidt #define	GMAC_RXIPV6_HEADER_ERROR_PACKETS	0x0828
153702b53ddSSøren Schmidt #define	GMAC_RXUDP_ERROR_PACKETS		0x0834
154702b53ddSSøren Schmidt #define	GMAC_RXTCP_ERROR_PACKETS		0x083C
155702b53ddSSøren Schmidt #define	GMAC_RXICMP_ERROR_PACKETS		0x0844
156702b53ddSSøren Schmidt #define	GMAC_RXIPV4_HEADER_ERROR_OCTETS		0x0854
157702b53ddSSøren Schmidt #define	GMAC_RXIPV6_HEADER_ERROR_OCTETS		0x0868
158702b53ddSSøren Schmidt #define	GMAC_RXUDP_ERROR_OCTETS			0x0874
159702b53ddSSøren Schmidt #define	GMAC_RXTCP_ERROR_OCTETS			0x087C
160702b53ddSSøren Schmidt #define	GMAC_RXICMP_ERROR_OCTETS		0x0884
161702b53ddSSøren Schmidt #define	GMAC_MAC_TIMESTAMP_CONTROL		0x0B00
162702b53ddSSøren Schmidt #define	GMAC_MAC_SUB_SECOND_INCREMENT		0x0B04
163702b53ddSSøren Schmidt #define	GMAC_MAC_SYSTEM_TIME_SECS		0x0B08
164702b53ddSSøren Schmidt #define	GMAC_MAC_SYSTEM_TIME_NS			0x0B0C
165702b53ddSSøren Schmidt #define	GMAC_MAC_SYS_TIME_SECS_UPDATE		0x0B10
166702b53ddSSøren Schmidt #define	GMAC_MAC_SYS_TIME_NS_UPDATE		0x0B14
167702b53ddSSøren Schmidt #define	GMAC_MAC_TIMESTAMP_ADDEND		0x0B18
168702b53ddSSøren Schmidt #define	GMAC_MAC_TIMESTAMP_STATUS		0x0B20
169702b53ddSSøren Schmidt #define	GMAC_MAC_TX_TS_STATUS_NS		0x0B30
170702b53ddSSøren Schmidt #define	GMAC_MAC_TX_TS_STATUS_SECS		0x0B34
171702b53ddSSøren Schmidt #define	GMAC_MAC_AUXILIARY_CONTROL		0x0B40
172702b53ddSSøren Schmidt #define	GMAC_MAC_AUXILIARY_TS_NS		0x0B48
173702b53ddSSøren Schmidt #define	GMAC_MAC_AUXILIARY_TS_SECS		0x0B4C
174702b53ddSSøren Schmidt #define	GMAC_MAC_TS_INGRESS_CORR_NS		0x0B58
175702b53ddSSøren Schmidt #define	GMAC_MAC_TS_EGRESS_CORR_NS		0x0B5C
176702b53ddSSøren Schmidt #define	GMAC_MAC_TS_INGRESS_LATENCY		0x0B68
177702b53ddSSøren Schmidt #define	GMAC_MAC_TS_EGRESS_LATENCY		0x0B6C
178702b53ddSSøren Schmidt #define	GMAC_MAC_PPS_CONTROL			0x0B70
179702b53ddSSøren Schmidt #define	GMAC_MTL_DBG_CTL			0x0C08
180702b53ddSSøren Schmidt #define	GMAC_MTL_DBG_STS			0x0C0C
181702b53ddSSøren Schmidt #define	GMAC_MTL_FIFO_DEBUG_DATA		0x0C10
182702b53ddSSøren Schmidt #define	GMAC_MTL_INTERRUPT_STATUS		0x0C20
183702b53ddSSøren Schmidt #define	 GMAC_MTL_INTERRUPT_STATUS_DBGIS	(1U << 17)
184702b53ddSSøren Schmidt #define	 GMAC_MTL_INTERRUPT_STATUS_Q0IS		(1U << 0)
185702b53ddSSøren Schmidt #define	GMAC_MTL_TXQ0_OPERATION_MODE		0x0D00
186702b53ddSSøren Schmidt #define	 GMAC_MTL_TXQ0_OPERATION_MODE_TXQEN_SHIFT	2
187702b53ddSSøren Schmidt #define	 GMAC_MTL_TXQ0_OPERATION_MODE_TXQEN_MASK	(0x3U << GMAC_MTL_TXQ0_OPERATION_MODE_TXQEN_SHIFT)
188702b53ddSSøren Schmidt #define	 GMAC_MTL_TXQ0_OPERATION_MODE_TXQEN_EN		(2U << GMAC_MTL_TXQ0_OPERATION_MODE_TXQEN_SHIFT)
189702b53ddSSøren Schmidt #define	 GMAC_MTL_TXQ0_OPERATION_MODE_TSF		(1U << 1)
190702b53ddSSøren Schmidt #define	 GMAC_MTL_TXQ0_OPERATION_MODE_FTQ		(1U << 0)
191702b53ddSSøren Schmidt #define	GMAC_MTL_TXQ0_UNDERFLOW			0x0D04
192702b53ddSSøren Schmidt #define	GMAC_MTL_TXQ0_DEBUG			0x0D08
193702b53ddSSøren Schmidt #define	GMAC_MTL_Q0_INTERRUPT_CTRL_STATUS	0x0D2C
194702b53ddSSøren Schmidt #define	 GMAC_MTL_Q0_INTERRUPT_CTRL_STATUS_RXOIE	(1U << 24)
195702b53ddSSøren Schmidt #define	 GMAC_MTL_Q0_INTERRUPT_CTRL_STATUS_RXOVFIS	(1U << 16)
196702b53ddSSøren Schmidt #define	 GMAC_MTL_Q0_INTERRUPT_CTRL_STATUS_TXUIE	(1U << 8)
197702b53ddSSøren Schmidt #define	 GMAC_MTL_Q0_INTERRUPT_CTRL_STATUS_TXUNFIS	(1U << 0)
198702b53ddSSøren Schmidt #define	GMAC_MTL_RXQ0_OPERATION_MODE		0x0D30
199702b53ddSSøren Schmidt #define	 GMAC_MTL_RXQ0_OPERATION_MODE_RSF		(1U << 5)
200702b53ddSSøren Schmidt #define	 GMAC_MTL_RXQ0_OPERATION_MODE_FEP		(1U << 4)
201702b53ddSSøren Schmidt #define	 GMAC_MTL_RXQ0_OPERATION_MODE_FUP		(1U << 3)
202702b53ddSSøren Schmidt #define	GMAC_MTL_RXQ0_MISS_PKT_OVF_CNT		0x0D34
203702b53ddSSøren Schmidt #define	GMAC_MTL_RXQ0_DEBUG			0x0D38
204702b53ddSSøren Schmidt #define	GMAC_DMA_MODE				0x1000
205702b53ddSSøren Schmidt #define	 GMAC_DMA_MODE_SWR			(1U << 0)
206702b53ddSSøren Schmidt #define	GMAC_DMA_SYSBUS_MODE			0x1004
207702b53ddSSøren Schmidt #define	 GMAC_DMA_SYSBUS_MODE_WR_OSR_LMT_SHIFT	24
208702b53ddSSøren Schmidt #define	 GMAC_DMA_SYSBUS_MODE_WR_OSR_LMT_MASK	(0x3U << GMAC_DMA_SYSBUS_MODE_WR_OSR_LMT_SHIFT)
209702b53ddSSøren Schmidt #define	 GMAC_DMA_SYSBUS_MODE_RD_OSR_LMT_SHIFT	16
210702b53ddSSøren Schmidt #define	 GMAC_DMA_SYSBUS_MODE_RD_OSR_LMT_MASK	(0x7U << GMAC_DMA_SYSBUS_MODE_RD_OSR_LMT_SHIFT)
211702b53ddSSøren Schmidt #define	 GMAC_DMA_SYSBUS_MODE_MB		(1U << 14)
212702b53ddSSøren Schmidt #define	 GMAC_DMA_SYSBUS_MODE_EAME		(1U << 11)
213702b53ddSSøren Schmidt #define	 GMAC_DMA_SYSBUS_MODE_BLEN16		(1U << 3)
214702b53ddSSøren Schmidt #define	 GMAC_DMA_SYSBUS_MODE_BLEN8		(1U << 2)
215702b53ddSSøren Schmidt #define	 GMAC_DMA_SYSBUS_MODE_BLEN4		(1U << 1)
216702b53ddSSøren Schmidt #define	 GMAC_DMA_SYSBUS_MODE_FB		(1U << 0)
217702b53ddSSøren Schmidt #define	GMAC_DMA_INTERRUPT_STATUS		0x1008
218702b53ddSSøren Schmidt #define	GMAC_DMA_DEBUG_STATUS0			0x100C
219702b53ddSSøren Schmidt #define	GMAC_AXI_LPI_ENTRY_INTERVAL		0x1040
220702b53ddSSøren Schmidt #define	GMAC_RWK_FILTERn_BYTE_MASK(n)		(0x10C0 + 0x4 * (n))
221702b53ddSSøren Schmidt #define	GMAC_RWK_FILTER01_CRC			0x10D0
222702b53ddSSøren Schmidt #define	GMAC_RWK_FILTER23_CRC			0x10D4
223702b53ddSSøren Schmidt #define	GMAC_RWK_FILTER_OFFSET			0x10D8
224702b53ddSSøren Schmidt #define	GMAC_RWK_FILTER_COMMAND			0x10DC
225702b53ddSSøren Schmidt #define	GMAC_DMA_CHAN0_CONTROL			0x1100
226702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_CONTROL_DSL_SHIFT	18
227702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_CONTROL_DSL_MASK	(0x7U << GMAC_DMA_CHAN0_CONTROL_DSL_SHIFT)
228702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_CONTROL_PBLX8		(1U << 16)
229702b53ddSSøren Schmidt #define	GMAC_DMA_CHAN0_TX_CONTROL		0x1104
230702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_TX_CONTROL_OSP		(1U << 4)
231702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_TX_CONTROL_START	(1U << 0)
232702b53ddSSøren Schmidt #define	GMAC_DMA_CHAN0_RX_CONTROL		0x1108
233702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_RX_CONTROL_RBSZ_SHIFT	1
234702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_RX_CONTROL_RBSZ_MASK	(0x3FFFU << GMAC_DMA_CHAN0_RX_CONTROL_RBSZ_SHIFT)
235702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_RX_CONTROL_START	(1U << 0)
236702b53ddSSøren Schmidt #define	GMAC_DMA_CHAN0_TX_BASE_ADDR_HI		0x1110
237702b53ddSSøren Schmidt #define	GMAC_DMA_CHAN0_TX_BASE_ADDR		0x1114
238702b53ddSSøren Schmidt #define	GMAC_DMA_CHAN0_RX_BASE_ADDR_HI		0x1118
239702b53ddSSøren Schmidt #define	GMAC_DMA_CHAN0_RX_BASE_ADDR		0x111C
240702b53ddSSøren Schmidt #define	GMAC_DMA_CHAN0_TX_END_ADDR		0x1120
241702b53ddSSøren Schmidt #define	GMAC_DMA_CHAN0_RX_END_ADDR		0x1128
242702b53ddSSøren Schmidt #define	GMAC_DMA_CHAN0_TX_RING_LEN		0x112C
243702b53ddSSøren Schmidt #define	GMAC_DMA_CHAN0_RX_RING_LEN		0x1130
244*cd92dd23SJari Sihvola #define	 GMAC_DMA_CHAN0_TXRX_PBL_SHIFT          16
245702b53ddSSøren Schmidt #define	GMAC_DMA_CHAN0_INTR_ENABLE		0x1134
246702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_INTR_ENABLE_NIE		(1U << 15)
247702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_INTR_ENABLE_AIE		(1U << 14)
248702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_INTR_ENABLE_CDE		(1U << 13)
249702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_INTR_ENABLE_FBE		(1U << 12)
250702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_INTR_ENABLE_ERI		(1U << 11)
251702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_INTR_ENABLE_ETI		(1U << 10)
252702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_INTR_ENABLE_RWT		(1U << 9)
253702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_INTR_ENABLE_RPS		(1U << 8)
254702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_INTR_ENABLE_RBU		(1U << 7)
255702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_INTR_ENABLE_RIE		(1U << 6)
256702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_INTR_ENABLE_TPU		(1U << 2)
257702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_INTR_ENABLE_TPS		(1U << 1)
258702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_INTR_ENABLE_TIE		(1U << 0)
259702b53ddSSøren Schmidt #define	GMAC_DMA_CHAN0_RX_WATCHDOG		0x1138
260702b53ddSSøren Schmidt #define	GMAC_DMA_CHAN0_SLOT_CTRL_STATUS		0x113C
261702b53ddSSøren Schmidt #define	GMAC_DMA_CHAN0_CUR_TX_DESC		0x1144
262702b53ddSSøren Schmidt #define	GMAC_DMA_CHAN0_CUR_RX_DESC		0x114C
263702b53ddSSøren Schmidt #define	GMAC_DMA_CHAN0_CUR_TX_BUF_ADDR		0x1154
264702b53ddSSøren Schmidt #define	GMAC_DMA_CHAN0_CUR_RX_BUF_ADDR		0x115C
265702b53ddSSøren Schmidt #define	GMAC_DMA_CHAN0_STATUS			0x1160
266702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_STATUS_NIS		(1U << 15)
267702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_STATUS_AIS		(1U << 14)
268702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_STATUS_CDE		(1U << 13)
269702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_STATUS_FB		(1U << 12)
270702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_STATUS_ERI		(1U << 11)
271702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_STATUS_ETI		(1U << 10)
272702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_STATUS_RWT		(1U << 9)
273702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_STATUS_RPS		(1U << 8)
274702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_STATUS_RBU		(1U << 7)
275702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_STATUS_RI		(1U << 6)
276702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_STATUS_TPU		(1U << 2)
277702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_STATUS_TPS		(1U << 1)
278702b53ddSSøren Schmidt #define	 GMAC_DMA_CHAN0_STATUS_TI		(1U << 0)
279702b53ddSSøren Schmidt 
280702b53ddSSøren Schmidt #define	EQOS_TDES2_IOC				(1U << 31)
281702b53ddSSøren Schmidt #define	EQOS_TDES3_OWN				(1U << 31)
282702b53ddSSøren Schmidt #define	EQOS_TDES3_FD				(1U << 29)
283702b53ddSSøren Schmidt #define	EQOS_TDES3_LD				(1U << 28)
284702b53ddSSøren Schmidt #define	EQOS_TDES3_DE				(1U << 23)
285702b53ddSSøren Schmidt #define	EQOS_TDES3_OE				(1U << 21)
286702b53ddSSøren Schmidt #define	EQOS_TDES3_ES				(1U << 15)
287702b53ddSSøren Schmidt 
288702b53ddSSøren Schmidt #define	EQOS_RDES3_OWN				(1U << 31)
289702b53ddSSøren Schmidt #define	EQOS_RDES3_IOC				(1U << 30)
290702b53ddSSøren Schmidt #define	EQOS_RDES3_BUF1V			(1U << 24)
291702b53ddSSøren Schmidt #define	EQOS_RDES3_GP				(1U << 23)
292702b53ddSSøren Schmidt #define	EQOS_RDES3_OE				(1U << 21)
293702b53ddSSøren Schmidt #define	EQOS_RDES3_RE				(1U << 20)
294702b53ddSSøren Schmidt #define	EQOS_RDES3_LENGTH_MASK			0x7FFFU
295702b53ddSSøren Schmidt 
296702b53ddSSøren Schmidt #endif
297