/* SPDX-License-Identifier: GPL-2.0 */
#ifndef __BCMASP_INTF_DEFS_H
#define __BCMASP_INTF_DEFS_H
#define UMC_OFFSET(intf) \
((((intf)->port) * 0 x800) + 0 xc000)
#define UMC_CMD 0 x008
#define UMC_CMD_TX_EN BIT(0 )
#define UMC_CMD_RX_EN BIT(1 )
#define UMC_CMD_SPEED_SHIFT 0 x2
#define UMC_CMD_SPEED_MASK 0 x3
#define UMC_CMD_SPEED_10 0 x0
#define UMC_CMD_SPEED_100 0 x1
#define UMC_CMD_SPEED_1000 0 x2
#define UMC_CMD_SPEED_2500 0 x3
#define UMC_CMD_PROMISC BIT(4 )
#define UMC_CMD_PAD_EN BIT(5 )
#define UMC_CMD_CRC_FWD BIT(6 )
#define UMC_CMD_PAUSE_FWD BIT(7 )
#define UMC_CMD_RX_PAUSE_IGNORE BIT(8 )
#define UMC_CMD_TX_ADDR_INS BIT(9 )
#define UMC_CMD_HD_EN BIT(10 )
#define UMC_CMD_SW_RESET BIT(13 )
#define UMC_CMD_LCL_LOOP_EN BIT(15 )
#define UMC_CMD_AUTO_CONFIG BIT(22 )
#define UMC_CMD_CNTL_FRM_EN BIT(23 )
#define UMC_CMD_NO_LEN_CHK BIT(24 )
#define UMC_CMD_RMT_LOOP_EN BIT(25 )
#define UMC_CMD_PRBL_EN BIT(27 )
#define UMC_CMD_TX_PAUSE_IGNORE BIT(28 )
#define UMC_CMD_TX_RX_EN BIT(29 )
#define UMC_CMD_RUNT_FILTER_DIS BIT(30 )
#define UMC_MAC0 0 x0c
#define UMC_MAC1 0 x10
#define UMC_FRM_LEN 0 x14
#define UMC_EEE_CTRL 0 x64
#define EN_LPI_RX_PAUSE BIT(0 )
#define EN_LPI_TX_PFC BIT(1 )
#define EN_LPI_TX_PAUSE BIT(2 )
#define EEE_EN BIT(3 )
#define RX_FIFO_CHECK BIT(4 )
#define EEE_TX_CLK_DIS BIT(5 )
#define DIS_EEE_10M BIT(6 )
#define LP_IDLE_PREDICTION_MODE BIT(7 )
#define UMC_EEE_LPI_TIMER 0 x68
#define UMC_PAUSE_CNTRL 0 x330
#define UMC_TX_FLUSH 0 x334
#define UMC_GR64 0 x400
#define UMC_GR127 0 x404
#define UMC_GR255 0 x408
#define UMC_GR511 0 x40c
#define UMC_GR1023 0 x410
#define UMC_GR1518 0 x414
#define UMC_GRMGV 0 x418
#define UMC_GR2047 0 x41c
#define UMC_GR4095 0 x420
#define UMC_GR9216 0 x424
#define UMC_GRPKT 0 x428
#define UMC_GRBYT 0 x42c
#define UMC_GRMCA 0 x430
#define UMC_GRBCA 0 x434
#define UMC_GRFCS 0 x438
#define UMC_GRXCF 0 x43c
#define UMC_GRXPF 0 x440
#define UMC_GRXUO 0 x444
#define UMC_GRALN 0 x448
#define UMC_GRFLR 0 x44c
#define UMC_GRCDE 0 x450
#define UMC_GRFCR 0 x454
#define UMC_GROVR 0 x458
#define UMC_GRJBR 0 x45c
#define UMC_GRMTUE 0 x460
#define UMC_GRPOK 0 x464
#define UMC_GRUC 0 x468
#define UMC_GRPPP 0 x46c
#define UMC_GRMCRC 0 x470
#define UMC_TR64 0 x480
#define UMC_TR127 0 x484
#define UMC_TR255 0 x488
#define UMC_TR511 0 x48c
#define UMC_TR1023 0 x490
#define UMC_TR1518 0 x494
#define UMC_TRMGV 0 x498
#define UMC_TR2047 0 x49c
#define UMC_TR4095 0 x4a0
#define UMC_TR9216 0 x4a4
#define UMC_GTPKT 0 x4a8
#define UMC_GTMCA 0 x4ac
#define UMC_GTBCA 0 x4b0
#define UMC_GTXPF 0 x4b4
#define UMC_GTXCF 0 x4b8
#define UMC_GTFCS 0 x4bc
#define UMC_GTOVR 0 x4c0
#define UMC_GTDRF 0 x4c4
#define UMC_GTEDF 0 x4c8
#define UMC_GTSCL 0 x4cc
#define UMC_GTMCL 0 x4d0
#define UMC_GTLCL 0 x4d4
#define UMC_GTXCL 0 x4d8
#define UMC_GTFRG 0 x4dc
#define UMC_GTNCL 0 x4e0
#define UMC_GTJBR 0 x4e4
#define UMC_GTBYT 0 x4e8
#define UMC_GTPOK 0 x4ec
#define UMC_GTUC 0 x4f0
#define UMC_RRPKT 0 x500
#define UMC_RRUND 0 x504
#define UMC_RRFRG 0 x508
#define UMC_RRBYT 0 x50c
#define UMC_MIB_CNTRL 0 x580
#define UMC_MIB_CNTRL_RX_CNT_RST BIT(0 )
#define UMC_MIB_CNTRL_RUNT_CNT_RST BIT(1 )
#define UMC_MIB_CNTRL_TX_CNT_RST BIT(2 )
#define UMC_RX_MAX_PKT_SZ 0 x608
#define UMC_MPD_CTRL 0 x620
#define UMC_MPD_CTRL_MPD_EN BIT(0 )
#define UMC_MPD_CTRL_PSW_EN BIT(27 )
#define UMC_PSW_MS 0 x624
#define UMC_PSW_LS 0 x628
#define UMAC2FB_OFFSET 0 x9f044
#define UMAC2FB_CFG 0 x0
#define UMAC2FB_CFG_OPUT_EN BIT(0 )
#define UMAC2FB_CFG_VLAN_EN BIT(1 )
#define UMAC2FB_CFG_SNAP_EN BIT(2 )
#define UMAC2FB_CFG_BCM_TG_EN BIT(3 )
#define UMAC2FB_CFG_IPUT_EN BIT(4 )
#define UMAC2FB_CFG_CHID_SHIFT 8
#define UMAC2FB_CFG_OK_SEND_SHIFT 24
#define UMAC2FB_CFG_DEFAULT_EN \
(UMAC2FB_CFG_OPUT_EN | UMAC2FB_CFG_VLAN_EN \
| UMAC2FB_CFG_SNAP_EN | UMAC2FB_CFG_IPUT_EN)
#define RGMII_OFFSET(intf) \
((((intf)->port) * 0 x100) + 0 xd000)
#define RGMII_EPHY_CNTRL 0 x00
#define RGMII_EPHY_CFG_IDDQ_BIAS BIT(0 )
#define RGMII_EPHY_CFG_EXT_PWRDOWN BIT(1 )
#define RGMII_EPHY_CFG_FORCE_DLL_EN BIT(2 )
#define RGMII_EPHY_CFG_IDDQ_GLOBAL BIT(3 )
#define RGMII_EPHY_CK25_DIS BIT(4 )
#define RGMII_EPHY_RESET BIT(7 )
#define RGMII_OOB_CNTRL 0 x0c
#define RGMII_LINK BIT(4 )
#define RGMII_OOB_DIS BIT(5 )
#define RGMII_MODE_EN BIT(6 )
#define RGMII_ID_MODE_DIS BIT(16 )
#define RGMII_PORT_CNTRL 0 x60
#define RGMII_PORT_MODE_EPHY 0
#define RGMII_PORT_MODE_GPHY 1
#define RGMII_PORT_MODE_EXT_EPHY 2
#define RGMII_PORT_MODE_EXT_GPHY 3
#define RGMII_PORT_MODE_EXT_RVMII 4
#define RGMII_PORT_MODE_MASK GENMASK(2 , 0 )
#define RGMII_SYS_LED_CNTRL 0 x74
#define RGMII_SYS_LED_CNTRL_LINK_OVRD BIT(15 )
#define TX_SPB_DMA_OFFSET(intf) \
((((intf)->channel) * 0 x30) + 0 x48180)
#define TX_SPB_DMA_READ 0 x00
#define TX_SPB_DMA_BASE 0 x08
#define TX_SPB_DMA_END 0 x10
#define TX_SPB_DMA_VALID 0 x18
#define TX_SPB_DMA_FIFO_CTRL 0 x20
#define TX_SPB_DMA_FIFO_FLUSH BIT(0 )
#define TX_SPB_DMA_FIFO_STATUS 0 x24
#define TX_SPB_CTRL_OFFSET(intf) \
((((intf)->channel) * 0 x68) + 0 x49340)
#define TX_SPB_CTRL_ENABLE 0 x0
#define TX_SPB_CTRL_ENABLE_EN BIT(0 )
#define TX_SPB_CTRL_XF_CTRL2 0 x20
#define TX_SPB_CTRL_XF_BID_SHIFT 16
#define TX_SPB_TOP_OFFSET(intf) \
((((intf)->channel) * 0 x1c) + 0 x4a0e0)
#define TX_SPB_TOP_BLKOUT 0 x0
#define TX_SPB_TOP_SPRE_BW_CTRL 0 x4
#define TX_EPKT_C_OFFSET(intf) \
((((intf)->channel) * 0 x120) + 0 x40900)
#define TX_EPKT_C_CFG_MISC 0 x0
#define TX_EPKT_C_CFG_MISC_EN BIT(0 )
#define TX_EPKT_C_CFG_MISC_PT BIT(1 )
#define TX_EPKT_C_CFG_MISC_PS_SHIFT 14
#define TX_EPKT_C_CFG_MISC_FD_SHIFT 20
#define TX_PAUSE_CTRL_OFFSET(intf) \
((((intf)->channel * 0 xc) + 0 x49a20))
#define TX_PAUSE_MAP_VECTOR 0 x8
#define RX_EDPKT_DMA_OFFSET(intf) \
((((intf)->channel) * 0 x38) + 0 x9ca00)
#define RX_EDPKT_DMA_WRITE 0 x00
#define RX_EDPKT_DMA_READ 0 x08
#define RX_EDPKT_DMA_BASE 0 x10
#define RX_EDPKT_DMA_END 0 x18
#define RX_EDPKT_DMA_VALID 0 x20
#define RX_EDPKT_DMA_FULLNESS 0 x28
#define RX_EDPKT_DMA_MIN_THRES 0 x2c
#define RX_EDPKT_DMA_CH_XONOFF 0 x30
#define RX_EDPKT_CFG_OFFSET(intf) \
((((intf)->channel) * 0 x70) + 0 x9c600)
#define RX_EDPKT_CFG_CFG0 0 x0
#define RX_EDPKT_CFG_CFG0_DBUF_SHIFT 9
#define RX_EDPKT_CFG_CFG0_RBUF 0 x0
#define RX_EDPKT_CFG_CFG0_RBUF_4K 0 x1
#define RX_EDPKT_CFG_CFG0_BUF_4K 0 x2
/* EFRM STUFF, 0 = no byte stuff, 1 = two byte stuff */
#define RX_EDPKT_CFG_CFG0_EFRM_STUF BIT(11 )
#define RX_EDPKT_CFG_CFG0_BALN_SHIFT 12
#define RX_EDPKT_CFG_CFG0_NO_ALN 0
#define RX_EDPKT_CFG_CFG0_4_ALN 2
#define RX_EDPKT_CFG_CFG0_64_ALN 6
#define RX_EDPKT_RING_BUFFER_WRITE 0 x38
#define RX_EDPKT_RING_BUFFER_READ 0 x40
#define RX_EDPKT_RING_BUFFER_BASE 0 x48
#define RX_EDPKT_RING_BUFFER_END 0 x50
#define RX_EDPKT_RING_BUFFER_VALID 0 x58
#define RX_EDPKT_CFG_ENABLE 0 x6c
#define RX_EDPKT_CFG_ENABLE_EN BIT(0 )
#define RX_SPB_DMA_OFFSET(intf) \
((((intf)->channel) * 0 x30) + 0 xa0000)
#define RX_SPB_DMA_READ 0 x00
#define RX_SPB_DMA_BASE 0 x08
#define RX_SPB_DMA_END 0 x10
#define RX_SPB_DMA_VALID 0 x18
#define RX_SPB_DMA_FIFO_CTRL 0 x20
#define RX_SPB_DMA_FIFO_FLUSH BIT(0 )
#define RX_SPB_DMA_FIFO_STATUS 0 x24
#define RX_SPB_CTRL_OFFSET(intf) \
((((intf)->channel - 6 ) * 0 x68) + 0 xa1000)
#define RX_SPB_CTRL_ENABLE 0 x00
#define RX_SPB_CTRL_ENABLE_EN BIT(0 )
#define RX_PAUSE_CTRL_OFFSET(intf) \
((((intf)->channel - 6 ) * 0 x4) + 0 xa1138)
#define RX_PAUSE_MAP_VECTOR 0 x00
#define RX_SPB_TOP_CTRL_OFFSET(intf) \
((((intf)->channel - 6 ) * 0 x14) + 0 xa2000)
#define RX_SPB_TOP_BLKOUT 0 x00
#define NUM_4K_BUFFERS 32
#define RING_BUFFER_SIZE (PAGE_SIZE * NUM_4K_BUFFERS)
#define DESC_RING_COUNT (64 * NUM_4K_BUFFERS)
#define DESC_SIZE 16
#define DESC_RING_SIZE (DESC_RING_COUNT * DESC_SIZE)
#endif
Messung V0.5 in Prozent C=94 H=91 G=92
¤ Dauer der Verarbeitung: 0.8 Sekunden
(vorverarbeitet am 2026-06-07)
¤
*© Formatika GbR, Deutschland