File Index
Files and directories
Sign in
FILE

bcmasp_intf_defs.h

File preview with syntax highlighting.

linux-6.19.14/drivers/net/ethernet/broadcom/asp2/bcmasp_intf_defs.h C
  1/* SPDX-License-Identifier: GPL-2.0 */
  2#ifndef __BCMASP_INTF_DEFS_H
  3#define __BCMASP_INTF_DEFS_H
  4
  5#define UMC_OFFSET(intf)		\
  6	((((intf)->port) * 0x800) + 0xc000)
  7#define  UMC_CMD			0x008
  8#define   UMC_CMD_TX_EN			BIT(0)
  9#define   UMC_CMD_RX_EN			BIT(1)
 10#define   UMC_CMD_SPEED_SHIFT		0x2
 11#define    UMC_CMD_SPEED_MASK		0x3
 12#define    UMC_CMD_SPEED_10		0x0
 13#define    UMC_CMD_SPEED_100		0x1
 14#define    UMC_CMD_SPEED_1000		0x2
 15#define    UMC_CMD_SPEED_2500		0x3
 16#define   UMC_CMD_PROMISC		BIT(4)
 17#define   UMC_CMD_PAD_EN		BIT(5)
 18#define   UMC_CMD_CRC_FWD		BIT(6)
 19#define   UMC_CMD_PAUSE_FWD		BIT(7)
 20#define   UMC_CMD_RX_PAUSE_IGNORE	BIT(8)
 21#define   UMC_CMD_TX_ADDR_INS		BIT(9)
 22#define   UMC_CMD_HD_EN			BIT(10)
 23#define   UMC_CMD_SW_RESET		BIT(13)
 24#define   UMC_CMD_LCL_LOOP_EN		BIT(15)
 25#define   UMC_CMD_AUTO_CONFIG		BIT(22)
 26#define   UMC_CMD_CNTL_FRM_EN		BIT(23)
 27#define   UMC_CMD_NO_LEN_CHK		BIT(24)
 28#define   UMC_CMD_RMT_LOOP_EN		BIT(25)
 29#define   UMC_CMD_PRBL_EN		BIT(27)
 30#define   UMC_CMD_TX_PAUSE_IGNORE	BIT(28)
 31#define   UMC_CMD_TX_RX_EN		BIT(29)
 32#define   UMC_CMD_RUNT_FILTER_DIS	BIT(30)
 33#define  UMC_MAC0			0x0c
 34#define  UMC_MAC1			0x10
 35#define  UMC_FRM_LEN			0x14
 36#define  UMC_EEE_CTRL			0x64
 37#define   EN_LPI_RX_PAUSE		BIT(0)
 38#define   EN_LPI_TX_PFC			BIT(1)
 39#define   EN_LPI_TX_PAUSE		BIT(2)
 40#define   EEE_EN			BIT(3)
 41#define   RX_FIFO_CHECK			BIT(4)
 42#define   EEE_TX_CLK_DIS		BIT(5)
 43#define   DIS_EEE_10M			BIT(6)
 44#define   LP_IDLE_PREDICTION_MODE	BIT(7)
 45#define  UMC_EEE_LPI_TIMER		0x68
 46#define  UMC_PAUSE_CNTRL		0x330
 47#define  UMC_TX_FLUSH			0x334
 48#define  UMC_GR64			0x400
 49#define  UMC_GR127			0x404
 50#define  UMC_GR255			0x408
 51#define  UMC_GR511			0x40c
 52#define  UMC_GR1023			0x410
 53#define  UMC_GR1518			0x414
 54#define  UMC_GRMGV			0x418
 55#define  UMC_GR2047			0x41c
 56#define  UMC_GR4095			0x420
 57#define  UMC_GR9216			0x424
 58#define  UMC_GRPKT			0x428
 59#define  UMC_GRBYT			0x42c
 60#define  UMC_GRMCA			0x430
 61#define  UMC_GRBCA			0x434
 62#define  UMC_GRFCS			0x438
 63#define  UMC_GRXCF			0x43c
 64#define  UMC_GRXPF			0x440
 65#define  UMC_GRXUO			0x444
 66#define  UMC_GRALN			0x448
 67#define  UMC_GRFLR			0x44c
 68#define  UMC_GRCDE			0x450
 69#define  UMC_GRFCR			0x454
 70#define  UMC_GROVR			0x458
 71#define  UMC_GRJBR			0x45c
 72#define  UMC_GRMTUE			0x460
 73#define  UMC_GRPOK			0x464
 74#define  UMC_GRUC			0x468
 75#define  UMC_GRPPP			0x46c
 76#define  UMC_GRMCRC			0x470
 77#define  UMC_TR64			0x480
 78#define  UMC_TR127			0x484
 79#define  UMC_TR255			0x488
 80#define  UMC_TR511			0x48c
 81#define  UMC_TR1023			0x490
 82#define  UMC_TR1518			0x494
 83#define  UMC_TRMGV			0x498
 84#define  UMC_TR2047			0x49c
 85#define  UMC_TR4095			0x4a0
 86#define  UMC_TR9216			0x4a4
 87#define  UMC_GTPKT			0x4a8
 88#define  UMC_GTMCA			0x4ac
 89#define  UMC_GTBCA			0x4b0
 90#define  UMC_GTXPF			0x4b4
 91#define  UMC_GTXCF			0x4b8
 92#define  UMC_GTFCS			0x4bc
 93#define  UMC_GTOVR			0x4c0
 94#define  UMC_GTDRF			0x4c4
 95#define  UMC_GTEDF			0x4c8
 96#define  UMC_GTSCL			0x4cc
 97#define  UMC_GTMCL			0x4d0
 98#define  UMC_GTLCL			0x4d4
 99#define  UMC_GTXCL			0x4d8
100#define  UMC_GTFRG			0x4dc
101#define  UMC_GTNCL			0x4e0
102#define  UMC_GTJBR			0x4e4
103#define  UMC_GTBYT			0x4e8
104#define  UMC_GTPOK			0x4ec
105#define  UMC_GTUC			0x4f0
106#define  UMC_RRPKT			0x500
107#define  UMC_RRUND			0x504
108#define  UMC_RRFRG			0x508
109#define  UMC_RRBYT			0x50c
110#define  UMC_MIB_CNTRL			0x580
111#define   UMC_MIB_CNTRL_RX_CNT_RST	BIT(0)
112#define   UMC_MIB_CNTRL_RUNT_CNT_RST	BIT(1)
113#define   UMC_MIB_CNTRL_TX_CNT_RST	BIT(2)
114#define  UMC_RX_MAX_PKT_SZ		0x608
115#define  UMC_MPD_CTRL			0x620
116#define   UMC_MPD_CTRL_MPD_EN		BIT(0)
117#define   UMC_MPD_CTRL_PSW_EN		BIT(27)
118#define  UMC_PSW_MS			0x624
119#define  UMC_PSW_LS			0x628
120
121#define UMAC2FB_OFFSET			0x9f044
122#define  UMAC2FB_CFG			0x0
123#define   UMAC2FB_CFG_OPUT_EN		BIT(0)
124#define   UMAC2FB_CFG_VLAN_EN		BIT(1)
125#define   UMAC2FB_CFG_SNAP_EN		BIT(2)
126#define   UMAC2FB_CFG_BCM_TG_EN		BIT(3)
127#define   UMAC2FB_CFG_IPUT_EN		BIT(4)
128#define   UMAC2FB_CFG_CHID_SHIFT	8
129#define   UMAC2FB_CFG_OK_SEND_SHIFT	24
130#define   UMAC2FB_CFG_DEFAULT_EN	\
131		(UMAC2FB_CFG_OPUT_EN | UMAC2FB_CFG_VLAN_EN \
132		| UMAC2FB_CFG_SNAP_EN | UMAC2FB_CFG_IPUT_EN)
133
134#define RGMII_OFFSET(intf)	\
135	((((intf)->port) * 0x100) + 0xd000)
136#define  RGMII_EPHY_CNTRL		0x00
137#define    RGMII_EPHY_CFG_IDDQ_BIAS	BIT(0)
138#define    RGMII_EPHY_CFG_EXT_PWRDOWN	BIT(1)
139#define    RGMII_EPHY_CFG_FORCE_DLL_EN	BIT(2)
140#define    RGMII_EPHY_CFG_IDDQ_GLOBAL	BIT(3)
141#define    RGMII_EPHY_CK25_DIS		BIT(4)
142#define    RGMII_EPHY_RESET		BIT(7)
143#define  RGMII_OOB_CNTRL		0x0c
144#define   RGMII_LINK			BIT(4)
145#define   RGMII_OOB_DIS			BIT(5)
146#define   RGMII_MODE_EN			BIT(6)
147#define   RGMII_ID_MODE_DIS		BIT(16)
148
149#define RGMII_PORT_CNTRL		0x60
150#define   RGMII_PORT_MODE_EPHY		0
151#define   RGMII_PORT_MODE_GPHY		1
152#define   RGMII_PORT_MODE_EXT_EPHY	2
153#define   RGMII_PORT_MODE_EXT_GPHY	3
154#define   RGMII_PORT_MODE_EXT_RVMII	4
155#define   RGMII_PORT_MODE_MASK		GENMASK(2, 0)
156
157#define RGMII_SYS_LED_CNTRL		0x74
158#define  RGMII_SYS_LED_CNTRL_LINK_OVRD	BIT(15)
159
160#define TX_SPB_DMA_OFFSET(intf) \
161	((((intf)->channel) * 0x30) + 0x48180)
162#define  TX_SPB_DMA_READ		0x00
163#define  TX_SPB_DMA_BASE		0x08
164#define  TX_SPB_DMA_END			0x10
165#define  TX_SPB_DMA_VALID		0x18
166#define  TX_SPB_DMA_FIFO_CTRL		0x20
167#define   TX_SPB_DMA_FIFO_FLUSH		BIT(0)
168#define  TX_SPB_DMA_FIFO_STATUS		0x24
169
170#define TX_SPB_CTRL_OFFSET(intf) \
171	((((intf)->channel) * 0x68) + 0x49340)
172#define  TX_SPB_CTRL_ENABLE		0x0
173#define   TX_SPB_CTRL_ENABLE_EN		BIT(0)
174#define  TX_SPB_CTRL_XF_CTRL2		0x20
175#define   TX_SPB_CTRL_XF_BID_SHIFT	16
176
177#define TX_SPB_TOP_OFFSET(intf) \
178	((((intf)->channel) * 0x1c) + 0x4a0e0)
179#define TX_SPB_TOP_BLKOUT		0x0
180#define TX_SPB_TOP_SPRE_BW_CTRL		0x4
181
182#define TX_EPKT_C_OFFSET(intf) \
183	((((intf)->channel) * 0x120) + 0x40900)
184#define  TX_EPKT_C_CFG_MISC		0x0
185#define   TX_EPKT_C_CFG_MISC_EN		BIT(0)
186#define   TX_EPKT_C_CFG_MISC_PT		BIT(1)
187#define   TX_EPKT_C_CFG_MISC_PS_SHIFT	14
188#define   TX_EPKT_C_CFG_MISC_FD_SHIFT	20
189
190#define TX_PAUSE_CTRL_OFFSET(intf) \
191	((((intf)->channel * 0xc) + 0x49a20))
192#define  TX_PAUSE_MAP_VECTOR		0x8
193
194#define RX_EDPKT_DMA_OFFSET(intf) \
195	((((intf)->channel) * 0x38) + 0x9ca00)
196#define  RX_EDPKT_DMA_WRITE		0x00
197#define  RX_EDPKT_DMA_READ		0x08
198#define  RX_EDPKT_DMA_BASE		0x10
199#define  RX_EDPKT_DMA_END		0x18
200#define  RX_EDPKT_DMA_VALID		0x20
201#define  RX_EDPKT_DMA_FULLNESS		0x28
202#define  RX_EDPKT_DMA_MIN_THRES		0x2c
203#define  RX_EDPKT_DMA_CH_XONOFF		0x30
204
205#define RX_EDPKT_CFG_OFFSET(intf) \
206	((((intf)->channel) * 0x70) + 0x9c600)
207#define  RX_EDPKT_CFG_CFG0		0x0
208#define   RX_EDPKT_CFG_CFG0_DBUF_SHIFT	9
209#define    RX_EDPKT_CFG_CFG0_RBUF	0x0
210#define    RX_EDPKT_CFG_CFG0_RBUF_4K	0x1
211#define    RX_EDPKT_CFG_CFG0_BUF_4K	0x2
212/* EFRM STUFF, 0 = no byte stuff, 1 = two byte stuff */
213#define   RX_EDPKT_CFG_CFG0_EFRM_STUF	BIT(11)
214#define   RX_EDPKT_CFG_CFG0_BALN_SHIFT	12
215#define    RX_EDPKT_CFG_CFG0_NO_ALN	0
216#define    RX_EDPKT_CFG_CFG0_4_ALN	2
217#define    RX_EDPKT_CFG_CFG0_64_ALN	6
218#define  RX_EDPKT_RING_BUFFER_WRITE	0x38
219#define  RX_EDPKT_RING_BUFFER_READ	0x40
220#define  RX_EDPKT_RING_BUFFER_BASE	0x48
221#define  RX_EDPKT_RING_BUFFER_END	0x50
222#define  RX_EDPKT_RING_BUFFER_VALID	0x58
223#define  RX_EDPKT_CFG_ENABLE		0x6c
224#define   RX_EDPKT_CFG_ENABLE_EN	BIT(0)
225
226#define RX_SPB_DMA_OFFSET(intf) \
227	((((intf)->channel) * 0x30) + 0xa0000)
228#define  RX_SPB_DMA_READ		0x00
229#define  RX_SPB_DMA_BASE		0x08
230#define  RX_SPB_DMA_END			0x10
231#define  RX_SPB_DMA_VALID		0x18
232#define  RX_SPB_DMA_FIFO_CTRL		0x20
233#define   RX_SPB_DMA_FIFO_FLUSH		BIT(0)
234#define  RX_SPB_DMA_FIFO_STATUS		0x24
235
236#define RX_SPB_CTRL_OFFSET(intf) \
237	((((intf)->channel - 6) * 0x68) + 0xa1000)
238#define  RX_SPB_CTRL_ENABLE		0x00
239#define   RX_SPB_CTRL_ENABLE_EN		BIT(0)
240
241#define RX_PAUSE_CTRL_OFFSET(intf) \
242	((((intf)->channel - 6) * 0x4) + 0xa1138)
243#define  RX_PAUSE_MAP_VECTOR		0x00
244
245#define RX_SPB_TOP_CTRL_OFFSET(intf) \
246	((((intf)->channel - 6) * 0x14) + 0xa2000)
247#define  RX_SPB_TOP_BLKOUT		0x00
248
249#define NUM_4K_BUFFERS			32
250#define RING_BUFFER_SIZE		(PAGE_SIZE * NUM_4K_BUFFERS)
251
252#define DESC_RING_COUNT			(64 * NUM_4K_BUFFERS)
253#define DESC_SIZE			16
254#define DESC_RING_SIZE			(DESC_RING_COUNT * DESC_SIZE)
255
256#endif
~/ Read-only file preview.