@@ -25,6 +25,7 @@ enum lan966x_target {
2525 TARGET_QSYS = 46 ,
2626 TARGET_REW = 47 ,
2727 TARGET_SYS = 52 ,
28+ TARGET_VCAP = 61 ,
2829 NUM_TARGETS = 66
2930};
3031
@@ -315,6 +316,69 @@ enum lan966x_target {
315316#define ANA_DROP_CFG_DROP_MC_SMAC_ENA_GET (x )\
316317 FIELD_GET(ANA_DROP_CFG_DROP_MC_SMAC_ENA, x)
317318
319+ /* ANA:PORT:VCAP_S2_CFG */
320+ #define ANA_VCAP_S2_CFG (g ) __REG(TARGET_ANA, 0, 1, 28672, g, 9, 128, 28, 0, 1, 4)
321+
322+ #define ANA_VCAP_S2_CFG_ISDX_ENA GENMASK(20, 19)
323+ #define ANA_VCAP_S2_CFG_ISDX_ENA_SET (x )\
324+ FIELD_PREP(ANA_VCAP_S2_CFG_ISDX_ENA, x)
325+ #define ANA_VCAP_S2_CFG_ISDX_ENA_GET (x )\
326+ FIELD_GET(ANA_VCAP_S2_CFG_ISDX_ENA, x)
327+
328+ #define ANA_VCAP_S2_CFG_UDP_PAYLOAD_ENA GENMASK(18, 17)
329+ #define ANA_VCAP_S2_CFG_UDP_PAYLOAD_ENA_SET (x )\
330+ FIELD_PREP(ANA_VCAP_S2_CFG_UDP_PAYLOAD_ENA, x)
331+ #define ANA_VCAP_S2_CFG_UDP_PAYLOAD_ENA_GET (x )\
332+ FIELD_GET(ANA_VCAP_S2_CFG_UDP_PAYLOAD_ENA, x)
333+
334+ #define ANA_VCAP_S2_CFG_ETYPE_PAYLOAD_ENA GENMASK(16, 15)
335+ #define ANA_VCAP_S2_CFG_ETYPE_PAYLOAD_ENA_SET (x )\
336+ FIELD_PREP(ANA_VCAP_S2_CFG_ETYPE_PAYLOAD_ENA, x)
337+ #define ANA_VCAP_S2_CFG_ETYPE_PAYLOAD_ENA_GET (x )\
338+ FIELD_GET(ANA_VCAP_S2_CFG_ETYPE_PAYLOAD_ENA, x)
339+
340+ #define ANA_VCAP_S2_CFG_ENA BIT(14)
341+ #define ANA_VCAP_S2_CFG_ENA_SET (x )\
342+ FIELD_PREP(ANA_VCAP_S2_CFG_ENA, x)
343+ #define ANA_VCAP_S2_CFG_ENA_GET (x )\
344+ FIELD_GET(ANA_VCAP_S2_CFG_ENA, x)
345+
346+ #define ANA_VCAP_S2_CFG_SNAP_DIS GENMASK(13, 12)
347+ #define ANA_VCAP_S2_CFG_SNAP_DIS_SET (x )\
348+ FIELD_PREP(ANA_VCAP_S2_CFG_SNAP_DIS, x)
349+ #define ANA_VCAP_S2_CFG_SNAP_DIS_GET (x )\
350+ FIELD_GET(ANA_VCAP_S2_CFG_SNAP_DIS, x)
351+
352+ #define ANA_VCAP_S2_CFG_ARP_DIS GENMASK(11, 10)
353+ #define ANA_VCAP_S2_CFG_ARP_DIS_SET (x )\
354+ FIELD_PREP(ANA_VCAP_S2_CFG_ARP_DIS, x)
355+ #define ANA_VCAP_S2_CFG_ARP_DIS_GET (x )\
356+ FIELD_GET(ANA_VCAP_S2_CFG_ARP_DIS, x)
357+
358+ #define ANA_VCAP_S2_CFG_IP_TCPUDP_DIS GENMASK(9, 8)
359+ #define ANA_VCAP_S2_CFG_IP_TCPUDP_DIS_SET (x )\
360+ FIELD_PREP(ANA_VCAP_S2_CFG_IP_TCPUDP_DIS, x)
361+ #define ANA_VCAP_S2_CFG_IP_TCPUDP_DIS_GET (x )\
362+ FIELD_GET(ANA_VCAP_S2_CFG_IP_TCPUDP_DIS, x)
363+
364+ #define ANA_VCAP_S2_CFG_IP_OTHER_DIS GENMASK(7, 6)
365+ #define ANA_VCAP_S2_CFG_IP_OTHER_DIS_SET (x )\
366+ FIELD_PREP(ANA_VCAP_S2_CFG_IP_OTHER_DIS, x)
367+ #define ANA_VCAP_S2_CFG_IP_OTHER_DIS_GET (x )\
368+ FIELD_GET(ANA_VCAP_S2_CFG_IP_OTHER_DIS, x)
369+
370+ #define ANA_VCAP_S2_CFG_IP6_CFG GENMASK(5, 2)
371+ #define ANA_VCAP_S2_CFG_IP6_CFG_SET (x )\
372+ FIELD_PREP(ANA_VCAP_S2_CFG_IP6_CFG, x)
373+ #define ANA_VCAP_S2_CFG_IP6_CFG_GET (x )\
374+ FIELD_GET(ANA_VCAP_S2_CFG_IP6_CFG, x)
375+
376+ #define ANA_VCAP_S2_CFG_OAM_DIS GENMASK(1, 0)
377+ #define ANA_VCAP_S2_CFG_OAM_DIS_SET (x )\
378+ FIELD_PREP(ANA_VCAP_S2_CFG_OAM_DIS, x)
379+ #define ANA_VCAP_S2_CFG_OAM_DIS_GET (x )\
380+ FIELD_GET(ANA_VCAP_S2_CFG_OAM_DIS, x)
381+
318382/* ANA:PORT:CPU_FWD_CFG */
319383#define ANA_CPU_FWD_CFG (g ) __REG(TARGET_ANA, 0, 1, 28672, g, 9, 128, 96, 0, 1, 4)
320384
@@ -1506,4 +1570,136 @@ enum lan966x_target {
15061570#define SYS_RAM_INIT_RAM_INIT_GET (x )\
15071571 FIELD_GET(SYS_RAM_INIT_RAM_INIT, x)
15081572
1573+ /* VCAP:VCAP_CORE_CFG:VCAP_UPDATE_CTRL */
1574+ #define VCAP_UPDATE_CTRL (t ) __REG(TARGET_VCAP, t, 3, 0, 0, 1, 8, 0, 0, 1, 4)
1575+
1576+ #define VCAP_UPDATE_CTRL_UPDATE_CMD GENMASK(24, 22)
1577+ #define VCAP_UPDATE_CTRL_UPDATE_CMD_SET (x )\
1578+ FIELD_PREP(VCAP_UPDATE_CTRL_UPDATE_CMD, x)
1579+ #define VCAP_UPDATE_CTRL_UPDATE_CMD_GET (x )\
1580+ FIELD_GET(VCAP_UPDATE_CTRL_UPDATE_CMD, x)
1581+
1582+ #define VCAP_UPDATE_CTRL_UPDATE_ENTRY_DIS BIT(21)
1583+ #define VCAP_UPDATE_CTRL_UPDATE_ENTRY_DIS_SET (x )\
1584+ FIELD_PREP(VCAP_UPDATE_CTRL_UPDATE_ENTRY_DIS, x)
1585+ #define VCAP_UPDATE_CTRL_UPDATE_ENTRY_DIS_GET (x )\
1586+ FIELD_GET(VCAP_UPDATE_CTRL_UPDATE_ENTRY_DIS, x)
1587+
1588+ #define VCAP_UPDATE_CTRL_UPDATE_ACTION_DIS BIT(20)
1589+ #define VCAP_UPDATE_CTRL_UPDATE_ACTION_DIS_SET (x )\
1590+ FIELD_PREP(VCAP_UPDATE_CTRL_UPDATE_ACTION_DIS, x)
1591+ #define VCAP_UPDATE_CTRL_UPDATE_ACTION_DIS_GET (x )\
1592+ FIELD_GET(VCAP_UPDATE_CTRL_UPDATE_ACTION_DIS, x)
1593+
1594+ #define VCAP_UPDATE_CTRL_UPDATE_CNT_DIS BIT(19)
1595+ #define VCAP_UPDATE_CTRL_UPDATE_CNT_DIS_SET (x )\
1596+ FIELD_PREP(VCAP_UPDATE_CTRL_UPDATE_CNT_DIS, x)
1597+ #define VCAP_UPDATE_CTRL_UPDATE_CNT_DIS_GET (x )\
1598+ FIELD_GET(VCAP_UPDATE_CTRL_UPDATE_CNT_DIS, x)
1599+
1600+ #define VCAP_UPDATE_CTRL_UPDATE_ADDR GENMASK(18, 3)
1601+ #define VCAP_UPDATE_CTRL_UPDATE_ADDR_SET (x )\
1602+ FIELD_PREP(VCAP_UPDATE_CTRL_UPDATE_ADDR, x)
1603+ #define VCAP_UPDATE_CTRL_UPDATE_ADDR_GET (x )\
1604+ FIELD_GET(VCAP_UPDATE_CTRL_UPDATE_ADDR, x)
1605+
1606+ #define VCAP_UPDATE_CTRL_UPDATE_SHOT BIT(2)
1607+ #define VCAP_UPDATE_CTRL_UPDATE_SHOT_SET (x )\
1608+ FIELD_PREP(VCAP_UPDATE_CTRL_UPDATE_SHOT, x)
1609+ #define VCAP_UPDATE_CTRL_UPDATE_SHOT_GET (x )\
1610+ FIELD_GET(VCAP_UPDATE_CTRL_UPDATE_SHOT, x)
1611+
1612+ #define VCAP_UPDATE_CTRL_CLEAR_CACHE BIT(1)
1613+ #define VCAP_UPDATE_CTRL_CLEAR_CACHE_SET (x )\
1614+ FIELD_PREP(VCAP_UPDATE_CTRL_CLEAR_CACHE, x)
1615+ #define VCAP_UPDATE_CTRL_CLEAR_CACHE_GET (x )\
1616+ FIELD_GET(VCAP_UPDATE_CTRL_CLEAR_CACHE, x)
1617+
1618+ #define VCAP_UPDATE_CTRL_MV_TRAFFIC_IGN BIT(0)
1619+ #define VCAP_UPDATE_CTRL_MV_TRAFFIC_IGN_SET (x )\
1620+ FIELD_PREP(VCAP_UPDATE_CTRL_MV_TRAFFIC_IGN, x)
1621+ #define VCAP_UPDATE_CTRL_MV_TRAFFIC_IGN_GET (x )\
1622+ FIELD_GET(VCAP_UPDATE_CTRL_MV_TRAFFIC_IGN, x)
1623+
1624+ /* VCAP:VCAP_CORE_CFG:VCAP_MV_CFG */
1625+ #define VCAP_MV_CFG (t ) __REG(TARGET_VCAP, t, 3, 0, 0, 1, 8, 4, 0, 1, 4)
1626+
1627+ #define VCAP_MV_CFG_MV_NUM_POS GENMASK(31, 16)
1628+ #define VCAP_MV_CFG_MV_NUM_POS_SET (x )\
1629+ FIELD_PREP(VCAP_MV_CFG_MV_NUM_POS, x)
1630+ #define VCAP_MV_CFG_MV_NUM_POS_GET (x )\
1631+ FIELD_GET(VCAP_MV_CFG_MV_NUM_POS, x)
1632+
1633+ #define VCAP_MV_CFG_MV_SIZE GENMASK(15, 0)
1634+ #define VCAP_MV_CFG_MV_SIZE_SET (x )\
1635+ FIELD_PREP(VCAP_MV_CFG_MV_SIZE, x)
1636+ #define VCAP_MV_CFG_MV_SIZE_GET (x )\
1637+ FIELD_GET(VCAP_MV_CFG_MV_SIZE, x)
1638+
1639+ /* VCAP:VCAP_CORE_CACHE:VCAP_ENTRY_DAT */
1640+ #define VCAP_ENTRY_DAT (t , r ) __REG(TARGET_VCAP, t, 3, 8, 0, 1, 904, 0, r, 64, 4)
1641+
1642+ /* VCAP:VCAP_CORE_CACHE:VCAP_MASK_DAT */
1643+ #define VCAP_MASK_DAT (t , r ) __REG(TARGET_VCAP, t, 3, 8, 0, 1, 904, 256, r, 64, 4)
1644+
1645+ /* VCAP:VCAP_CORE_CACHE:VCAP_ACTION_DAT */
1646+ #define VCAP_ACTION_DAT (t , r ) __REG(TARGET_VCAP, t, 3, 8, 0, 1, 904, 512, r, 64, 4)
1647+
1648+ /* VCAP:VCAP_CORE_CACHE:VCAP_CNT_DAT */
1649+ #define VCAP_CNT_DAT (t , r ) __REG(TARGET_VCAP, t, 3, 8, 0, 1, 904, 768, r, 32, 4)
1650+
1651+ /* VCAP:VCAP_CORE_CACHE:VCAP_CNT_FW_DAT */
1652+ #define VCAP_CNT_FW_DAT (t ) __REG(TARGET_VCAP, t, 3, 8, 0, 1, 904, 896, 0, 1, 4)
1653+
1654+ /* VCAP:VCAP_CORE_CACHE:VCAP_TG_DAT */
1655+ #define VCAP_TG_DAT (t ) __REG(TARGET_VCAP, t, 3, 8, 0, 1, 904, 900, 0, 1, 4)
1656+
1657+ /* VCAP:VCAP_CORE_MAP:VCAP_CORE_IDX */
1658+ #define VCAP_CORE_IDX (t ) __REG(TARGET_VCAP, t, 3, 912, 0, 1, 8, 0, 0, 1, 4)
1659+
1660+ #define VCAP_CORE_IDX_CORE_IDX GENMASK(3, 0)
1661+ #define VCAP_CORE_IDX_CORE_IDX_SET (x )\
1662+ FIELD_PREP(VCAP_CORE_IDX_CORE_IDX, x)
1663+ #define VCAP_CORE_IDX_CORE_IDX_GET (x )\
1664+ FIELD_GET(VCAP_CORE_IDX_CORE_IDX, x)
1665+
1666+ /* VCAP:VCAP_CORE_MAP:VCAP_CORE_MAP */
1667+ #define VCAP_CORE_MAP (t ) __REG(TARGET_VCAP, t, 3, 912, 0, 1, 8, 4, 0, 1, 4)
1668+
1669+ #define VCAP_CORE_MAP_CORE_MAP GENMASK(2, 0)
1670+ #define VCAP_CORE_MAP_CORE_MAP_SET (x )\
1671+ FIELD_PREP(VCAP_CORE_MAP_CORE_MAP, x)
1672+ #define VCAP_CORE_MAP_CORE_MAP_GET (x )\
1673+ FIELD_GET(VCAP_CORE_MAP_CORE_MAP, x)
1674+
1675+ /* VCAP:VCAP_CONST:VCAP_VER */
1676+ #define VCAP_VER (t ) __REG(TARGET_VCAP, t, 3, 924, 0, 1, 40, 0, 0, 1, 4)
1677+
1678+ /* VCAP:VCAP_CONST:ENTRY_WIDTH */
1679+ #define VCAP_ENTRY_WIDTH (t ) __REG(TARGET_VCAP, t, 3, 924, 0, 1, 40, 4, 0, 1, 4)
1680+
1681+ /* VCAP:VCAP_CONST:ENTRY_CNT */
1682+ #define VCAP_ENTRY_CNT (t ) __REG(TARGET_VCAP, t, 3, 924, 0, 1, 40, 8, 0, 1, 4)
1683+
1684+ /* VCAP:VCAP_CONST:ENTRY_SWCNT */
1685+ #define VCAP_ENTRY_SWCNT (t ) __REG(TARGET_VCAP, t, 3, 924, 0, 1, 40, 12, 0, 1, 4)
1686+
1687+ /* VCAP:VCAP_CONST:ENTRY_TG_WIDTH */
1688+ #define VCAP_ENTRY_TG_WIDTH (t ) __REG(TARGET_VCAP, t, 3, 924, 0, 1, 40, 16, 0, 1, 4)
1689+
1690+ /* VCAP:VCAP_CONST:ACTION_DEF_CNT */
1691+ #define VCAP_ACTION_DEF_CNT (t ) __REG(TARGET_VCAP, t, 3, 924, 0, 1, 40, 20, 0, 1, 4)
1692+
1693+ /* VCAP:VCAP_CONST:ACTION_WIDTH */
1694+ #define VCAP_ACTION_WIDTH (t ) __REG(TARGET_VCAP, t, 3, 924, 0, 1, 40, 24, 0, 1, 4)
1695+
1696+ /* VCAP:VCAP_CONST:CNT_WIDTH */
1697+ #define VCAP_CNT_WIDTH (t ) __REG(TARGET_VCAP, t, 3, 924, 0, 1, 40, 28, 0, 1, 4)
1698+
1699+ /* VCAP:VCAP_CONST:CORE_CNT */
1700+ #define VCAP_CORE_CNT (t ) __REG(TARGET_VCAP, t, 3, 924, 0, 1, 40, 32, 0, 1, 4)
1701+
1702+ /* VCAP:VCAP_CONST:IF_CNT */
1703+ #define VCAP_IF_CNT (t ) __REG(TARGET_VCAP, t, 3, 924, 0, 1, 40, 36, 0, 1, 4)
1704+
15091705#endif /* _LAN966X_REGS_H_ */
0 commit comments