mirror of
https://github.com/torvalds/linux
synced 2024-10-17 00:39:37 +00:00
net: lan966x: add vcap registers
Add registers used to access vcap controller. Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
39bedc169c
commit
f919ccc93d
|
@ -47,6 +47,9 @@ static const struct lan966x_main_io_resource lan966x_main_iomap[] = {
|
|||
{ TARGET_PTP, 0xc000, 1 }, /* 0xe200c000 */
|
||||
{ TARGET_CHIP_TOP, 0x10000, 1 }, /* 0xe2010000 */
|
||||
{ TARGET_REW, 0x14000, 1 }, /* 0xe2014000 */
|
||||
{ TARGET_VCAP, 0x18000, 1 }, /* 0xe2018000 */
|
||||
{ TARGET_VCAP + 1, 0x20000, 1 }, /* 0xe2020000 */
|
||||
{ TARGET_VCAP + 2, 0x24000, 1 }, /* 0xe2024000 */
|
||||
{ TARGET_SYS, 0x28000, 1 }, /* 0xe2028000 */
|
||||
{ TARGET_DEV, 0x34000, 1 }, /* 0xe2034000 */
|
||||
{ TARGET_DEV + 1, 0x38000, 1 }, /* 0xe2038000 */
|
||||
|
|
|
@ -25,6 +25,7 @@ enum lan966x_target {
|
|||
TARGET_QSYS = 46,
|
||||
TARGET_REW = 47,
|
||||
TARGET_SYS = 52,
|
||||
TARGET_VCAP = 61,
|
||||
NUM_TARGETS = 66
|
||||
};
|
||||
|
||||
|
@ -315,6 +316,69 @@ enum lan966x_target {
|
|||
#define ANA_DROP_CFG_DROP_MC_SMAC_ENA_GET(x)\
|
||||
FIELD_GET(ANA_DROP_CFG_DROP_MC_SMAC_ENA, x)
|
||||
|
||||
/* ANA:PORT:VCAP_S2_CFG */
|
||||
#define ANA_VCAP_S2_CFG(g) __REG(TARGET_ANA, 0, 1, 28672, g, 9, 128, 28, 0, 1, 4)
|
||||
|
||||
#define ANA_VCAP_S2_CFG_ISDX_ENA GENMASK(20, 19)
|
||||
#define ANA_VCAP_S2_CFG_ISDX_ENA_SET(x)\
|
||||
FIELD_PREP(ANA_VCAP_S2_CFG_ISDX_ENA, x)
|
||||
#define ANA_VCAP_S2_CFG_ISDX_ENA_GET(x)\
|
||||
FIELD_GET(ANA_VCAP_S2_CFG_ISDX_ENA, x)
|
||||
|
||||
#define ANA_VCAP_S2_CFG_UDP_PAYLOAD_ENA GENMASK(18, 17)
|
||||
#define ANA_VCAP_S2_CFG_UDP_PAYLOAD_ENA_SET(x)\
|
||||
FIELD_PREP(ANA_VCAP_S2_CFG_UDP_PAYLOAD_ENA, x)
|
||||
#define ANA_VCAP_S2_CFG_UDP_PAYLOAD_ENA_GET(x)\
|
||||
FIELD_GET(ANA_VCAP_S2_CFG_UDP_PAYLOAD_ENA, x)
|
||||
|
||||
#define ANA_VCAP_S2_CFG_ETYPE_PAYLOAD_ENA GENMASK(16, 15)
|
||||
#define ANA_VCAP_S2_CFG_ETYPE_PAYLOAD_ENA_SET(x)\
|
||||
FIELD_PREP(ANA_VCAP_S2_CFG_ETYPE_PAYLOAD_ENA, x)
|
||||
#define ANA_VCAP_S2_CFG_ETYPE_PAYLOAD_ENA_GET(x)\
|
||||
FIELD_GET(ANA_VCAP_S2_CFG_ETYPE_PAYLOAD_ENA, x)
|
||||
|
||||
#define ANA_VCAP_S2_CFG_ENA BIT(14)
|
||||
#define ANA_VCAP_S2_CFG_ENA_SET(x)\
|
||||
FIELD_PREP(ANA_VCAP_S2_CFG_ENA, x)
|
||||
#define ANA_VCAP_S2_CFG_ENA_GET(x)\
|
||||
FIELD_GET(ANA_VCAP_S2_CFG_ENA, x)
|
||||
|
||||
#define ANA_VCAP_S2_CFG_SNAP_DIS GENMASK(13, 12)
|
||||
#define ANA_VCAP_S2_CFG_SNAP_DIS_SET(x)\
|
||||
FIELD_PREP(ANA_VCAP_S2_CFG_SNAP_DIS, x)
|
||||
#define ANA_VCAP_S2_CFG_SNAP_DIS_GET(x)\
|
||||
FIELD_GET(ANA_VCAP_S2_CFG_SNAP_DIS, x)
|
||||
|
||||
#define ANA_VCAP_S2_CFG_ARP_DIS GENMASK(11, 10)
|
||||
#define ANA_VCAP_S2_CFG_ARP_DIS_SET(x)\
|
||||
FIELD_PREP(ANA_VCAP_S2_CFG_ARP_DIS, x)
|
||||
#define ANA_VCAP_S2_CFG_ARP_DIS_GET(x)\
|
||||
FIELD_GET(ANA_VCAP_S2_CFG_ARP_DIS, x)
|
||||
|
||||
#define ANA_VCAP_S2_CFG_IP_TCPUDP_DIS GENMASK(9, 8)
|
||||
#define ANA_VCAP_S2_CFG_IP_TCPUDP_DIS_SET(x)\
|
||||
FIELD_PREP(ANA_VCAP_S2_CFG_IP_TCPUDP_DIS, x)
|
||||
#define ANA_VCAP_S2_CFG_IP_TCPUDP_DIS_GET(x)\
|
||||
FIELD_GET(ANA_VCAP_S2_CFG_IP_TCPUDP_DIS, x)
|
||||
|
||||
#define ANA_VCAP_S2_CFG_IP_OTHER_DIS GENMASK(7, 6)
|
||||
#define ANA_VCAP_S2_CFG_IP_OTHER_DIS_SET(x)\
|
||||
FIELD_PREP(ANA_VCAP_S2_CFG_IP_OTHER_DIS, x)
|
||||
#define ANA_VCAP_S2_CFG_IP_OTHER_DIS_GET(x)\
|
||||
FIELD_GET(ANA_VCAP_S2_CFG_IP_OTHER_DIS, x)
|
||||
|
||||
#define ANA_VCAP_S2_CFG_IP6_CFG GENMASK(5, 2)
|
||||
#define ANA_VCAP_S2_CFG_IP6_CFG_SET(x)\
|
||||
FIELD_PREP(ANA_VCAP_S2_CFG_IP6_CFG, x)
|
||||
#define ANA_VCAP_S2_CFG_IP6_CFG_GET(x)\
|
||||
FIELD_GET(ANA_VCAP_S2_CFG_IP6_CFG, x)
|
||||
|
||||
#define ANA_VCAP_S2_CFG_OAM_DIS GENMASK(1, 0)
|
||||
#define ANA_VCAP_S2_CFG_OAM_DIS_SET(x)\
|
||||
FIELD_PREP(ANA_VCAP_S2_CFG_OAM_DIS, x)
|
||||
#define ANA_VCAP_S2_CFG_OAM_DIS_GET(x)\
|
||||
FIELD_GET(ANA_VCAP_S2_CFG_OAM_DIS, x)
|
||||
|
||||
/* ANA:PORT:CPU_FWD_CFG */
|
||||
#define ANA_CPU_FWD_CFG(g) __REG(TARGET_ANA, 0, 1, 28672, g, 9, 128, 96, 0, 1, 4)
|
||||
|
||||
|
@ -1506,4 +1570,136 @@ enum lan966x_target {
|
|||
#define SYS_RAM_INIT_RAM_INIT_GET(x)\
|
||||
FIELD_GET(SYS_RAM_INIT_RAM_INIT, x)
|
||||
|
||||
/* VCAP:VCAP_CORE_CFG:VCAP_UPDATE_CTRL */
|
||||
#define VCAP_UPDATE_CTRL(t) __REG(TARGET_VCAP, t, 3, 0, 0, 1, 8, 0, 0, 1, 4)
|
||||
|
||||
#define VCAP_UPDATE_CTRL_UPDATE_CMD GENMASK(24, 22)
|
||||
#define VCAP_UPDATE_CTRL_UPDATE_CMD_SET(x)\
|
||||
FIELD_PREP(VCAP_UPDATE_CTRL_UPDATE_CMD, x)
|
||||
#define VCAP_UPDATE_CTRL_UPDATE_CMD_GET(x)\
|
||||
FIELD_GET(VCAP_UPDATE_CTRL_UPDATE_CMD, x)
|
||||
|
||||
#define VCAP_UPDATE_CTRL_UPDATE_ENTRY_DIS BIT(21)
|
||||
#define VCAP_UPDATE_CTRL_UPDATE_ENTRY_DIS_SET(x)\
|
||||
FIELD_PREP(VCAP_UPDATE_CTRL_UPDATE_ENTRY_DIS, x)
|
||||
#define VCAP_UPDATE_CTRL_UPDATE_ENTRY_DIS_GET(x)\
|
||||
FIELD_GET(VCAP_UPDATE_CTRL_UPDATE_ENTRY_DIS, x)
|
||||
|
||||
#define VCAP_UPDATE_CTRL_UPDATE_ACTION_DIS BIT(20)
|
||||
#define VCAP_UPDATE_CTRL_UPDATE_ACTION_DIS_SET(x)\
|
||||
FIELD_PREP(VCAP_UPDATE_CTRL_UPDATE_ACTION_DIS, x)
|
||||
#define VCAP_UPDATE_CTRL_UPDATE_ACTION_DIS_GET(x)\
|
||||
FIELD_GET(VCAP_UPDATE_CTRL_UPDATE_ACTION_DIS, x)
|
||||
|
||||
#define VCAP_UPDATE_CTRL_UPDATE_CNT_DIS BIT(19)
|
||||
#define VCAP_UPDATE_CTRL_UPDATE_CNT_DIS_SET(x)\
|
||||
FIELD_PREP(VCAP_UPDATE_CTRL_UPDATE_CNT_DIS, x)
|
||||
#define VCAP_UPDATE_CTRL_UPDATE_CNT_DIS_GET(x)\
|
||||
FIELD_GET(VCAP_UPDATE_CTRL_UPDATE_CNT_DIS, x)
|
||||
|
||||
#define VCAP_UPDATE_CTRL_UPDATE_ADDR GENMASK(18, 3)
|
||||
#define VCAP_UPDATE_CTRL_UPDATE_ADDR_SET(x)\
|
||||
FIELD_PREP(VCAP_UPDATE_CTRL_UPDATE_ADDR, x)
|
||||
#define VCAP_UPDATE_CTRL_UPDATE_ADDR_GET(x)\
|
||||
FIELD_GET(VCAP_UPDATE_CTRL_UPDATE_ADDR, x)
|
||||
|
||||
#define VCAP_UPDATE_CTRL_UPDATE_SHOT BIT(2)
|
||||
#define VCAP_UPDATE_CTRL_UPDATE_SHOT_SET(x)\
|
||||
FIELD_PREP(VCAP_UPDATE_CTRL_UPDATE_SHOT, x)
|
||||
#define VCAP_UPDATE_CTRL_UPDATE_SHOT_GET(x)\
|
||||
FIELD_GET(VCAP_UPDATE_CTRL_UPDATE_SHOT, x)
|
||||
|
||||
#define VCAP_UPDATE_CTRL_CLEAR_CACHE BIT(1)
|
||||
#define VCAP_UPDATE_CTRL_CLEAR_CACHE_SET(x)\
|
||||
FIELD_PREP(VCAP_UPDATE_CTRL_CLEAR_CACHE, x)
|
||||
#define VCAP_UPDATE_CTRL_CLEAR_CACHE_GET(x)\
|
||||
FIELD_GET(VCAP_UPDATE_CTRL_CLEAR_CACHE, x)
|
||||
|
||||
#define VCAP_UPDATE_CTRL_MV_TRAFFIC_IGN BIT(0)
|
||||
#define VCAP_UPDATE_CTRL_MV_TRAFFIC_IGN_SET(x)\
|
||||
FIELD_PREP(VCAP_UPDATE_CTRL_MV_TRAFFIC_IGN, x)
|
||||
#define VCAP_UPDATE_CTRL_MV_TRAFFIC_IGN_GET(x)\
|
||||
FIELD_GET(VCAP_UPDATE_CTRL_MV_TRAFFIC_IGN, x)
|
||||
|
||||
/* VCAP:VCAP_CORE_CFG:VCAP_MV_CFG */
|
||||
#define VCAP_MV_CFG(t) __REG(TARGET_VCAP, t, 3, 0, 0, 1, 8, 4, 0, 1, 4)
|
||||
|
||||
#define VCAP_MV_CFG_MV_NUM_POS GENMASK(31, 16)
|
||||
#define VCAP_MV_CFG_MV_NUM_POS_SET(x)\
|
||||
FIELD_PREP(VCAP_MV_CFG_MV_NUM_POS, x)
|
||||
#define VCAP_MV_CFG_MV_NUM_POS_GET(x)\
|
||||
FIELD_GET(VCAP_MV_CFG_MV_NUM_POS, x)
|
||||
|
||||
#define VCAP_MV_CFG_MV_SIZE GENMASK(15, 0)
|
||||
#define VCAP_MV_CFG_MV_SIZE_SET(x)\
|
||||
FIELD_PREP(VCAP_MV_CFG_MV_SIZE, x)
|
||||
#define VCAP_MV_CFG_MV_SIZE_GET(x)\
|
||||
FIELD_GET(VCAP_MV_CFG_MV_SIZE, x)
|
||||
|
||||
/* VCAP:VCAP_CORE_CACHE:VCAP_ENTRY_DAT */
|
||||
#define VCAP_ENTRY_DAT(t, r) __REG(TARGET_VCAP, t, 3, 8, 0, 1, 904, 0, r, 64, 4)
|
||||
|
||||
/* VCAP:VCAP_CORE_CACHE:VCAP_MASK_DAT */
|
||||
#define VCAP_MASK_DAT(t, r) __REG(TARGET_VCAP, t, 3, 8, 0, 1, 904, 256, r, 64, 4)
|
||||
|
||||
/* VCAP:VCAP_CORE_CACHE:VCAP_ACTION_DAT */
|
||||
#define VCAP_ACTION_DAT(t, r) __REG(TARGET_VCAP, t, 3, 8, 0, 1, 904, 512, r, 64, 4)
|
||||
|
||||
/* VCAP:VCAP_CORE_CACHE:VCAP_CNT_DAT */
|
||||
#define VCAP_CNT_DAT(t, r) __REG(TARGET_VCAP, t, 3, 8, 0, 1, 904, 768, r, 32, 4)
|
||||
|
||||
/* VCAP:VCAP_CORE_CACHE:VCAP_CNT_FW_DAT */
|
||||
#define VCAP_CNT_FW_DAT(t) __REG(TARGET_VCAP, t, 3, 8, 0, 1, 904, 896, 0, 1, 4)
|
||||
|
||||
/* VCAP:VCAP_CORE_CACHE:VCAP_TG_DAT */
|
||||
#define VCAP_TG_DAT(t) __REG(TARGET_VCAP, t, 3, 8, 0, 1, 904, 900, 0, 1, 4)
|
||||
|
||||
/* VCAP:VCAP_CORE_MAP:VCAP_CORE_IDX */
|
||||
#define VCAP_CORE_IDX(t) __REG(TARGET_VCAP, t, 3, 912, 0, 1, 8, 0, 0, 1, 4)
|
||||
|
||||
#define VCAP_CORE_IDX_CORE_IDX GENMASK(3, 0)
|
||||
#define VCAP_CORE_IDX_CORE_IDX_SET(x)\
|
||||
FIELD_PREP(VCAP_CORE_IDX_CORE_IDX, x)
|
||||
#define VCAP_CORE_IDX_CORE_IDX_GET(x)\
|
||||
FIELD_GET(VCAP_CORE_IDX_CORE_IDX, x)
|
||||
|
||||
/* VCAP:VCAP_CORE_MAP:VCAP_CORE_MAP */
|
||||
#define VCAP_CORE_MAP(t) __REG(TARGET_VCAP, t, 3, 912, 0, 1, 8, 4, 0, 1, 4)
|
||||
|
||||
#define VCAP_CORE_MAP_CORE_MAP GENMASK(2, 0)
|
||||
#define VCAP_CORE_MAP_CORE_MAP_SET(x)\
|
||||
FIELD_PREP(VCAP_CORE_MAP_CORE_MAP, x)
|
||||
#define VCAP_CORE_MAP_CORE_MAP_GET(x)\
|
||||
FIELD_GET(VCAP_CORE_MAP_CORE_MAP, x)
|
||||
|
||||
/* VCAP:VCAP_CONST:VCAP_VER */
|
||||
#define VCAP_VER(t) __REG(TARGET_VCAP, t, 3, 924, 0, 1, 40, 0, 0, 1, 4)
|
||||
|
||||
/* VCAP:VCAP_CONST:ENTRY_WIDTH */
|
||||
#define VCAP_ENTRY_WIDTH(t) __REG(TARGET_VCAP, t, 3, 924, 0, 1, 40, 4, 0, 1, 4)
|
||||
|
||||
/* VCAP:VCAP_CONST:ENTRY_CNT */
|
||||
#define VCAP_ENTRY_CNT(t) __REG(TARGET_VCAP, t, 3, 924, 0, 1, 40, 8, 0, 1, 4)
|
||||
|
||||
/* VCAP:VCAP_CONST:ENTRY_SWCNT */
|
||||
#define VCAP_ENTRY_SWCNT(t) __REG(TARGET_VCAP, t, 3, 924, 0, 1, 40, 12, 0, 1, 4)
|
||||
|
||||
/* VCAP:VCAP_CONST:ENTRY_TG_WIDTH */
|
||||
#define VCAP_ENTRY_TG_WIDTH(t) __REG(TARGET_VCAP, t, 3, 924, 0, 1, 40, 16, 0, 1, 4)
|
||||
|
||||
/* VCAP:VCAP_CONST:ACTION_DEF_CNT */
|
||||
#define VCAP_ACTION_DEF_CNT(t) __REG(TARGET_VCAP, t, 3, 924, 0, 1, 40, 20, 0, 1, 4)
|
||||
|
||||
/* VCAP:VCAP_CONST:ACTION_WIDTH */
|
||||
#define VCAP_ACTION_WIDTH(t) __REG(TARGET_VCAP, t, 3, 924, 0, 1, 40, 24, 0, 1, 4)
|
||||
|
||||
/* VCAP:VCAP_CONST:CNT_WIDTH */
|
||||
#define VCAP_CNT_WIDTH(t) __REG(TARGET_VCAP, t, 3, 924, 0, 1, 40, 28, 0, 1, 4)
|
||||
|
||||
/* VCAP:VCAP_CONST:CORE_CNT */
|
||||
#define VCAP_CORE_CNT(t) __REG(TARGET_VCAP, t, 3, 924, 0, 1, 40, 32, 0, 1, 4)
|
||||
|
||||
/* VCAP:VCAP_CONST:IF_CNT */
|
||||
#define VCAP_IF_CNT(t) __REG(TARGET_VCAP, t, 3, 924, 0, 1, 40, 36, 0, 1, 4)
|
||||
|
||||
#endif /* _LAN966X_REGS_H_ */
|
||||
|
|
Loading…
Reference in a new issue