1fa8f86a1SJerin Jacob /* SPDX-License-Identifier: BSD-3-Clause 2fa8f86a1SJerin Jacob * Copyright(C) 2021 Marvell. 3fa8f86a1SJerin Jacob */ 4fa8f86a1SJerin Jacob 5fa8f86a1SJerin Jacob #ifndef __NIX_HW_H__ 6fa8f86a1SJerin Jacob #define __NIX_HW_H__ 7fa8f86a1SJerin Jacob 8fa8f86a1SJerin Jacob /* Register offsets */ 9fa8f86a1SJerin Jacob 10fa8f86a1SJerin Jacob #define NIX_AF_CFG (0x0ull) 11fa8f86a1SJerin Jacob #define NIX_AF_STATUS (0x10ull) 12fa8f86a1SJerin Jacob #define NIX_AF_NDC_CFG (0x18ull) 13fa8f86a1SJerin Jacob #define NIX_AF_CONST (0x20ull) 14fa8f86a1SJerin Jacob #define NIX_AF_CONST1 (0x28ull) 15fa8f86a1SJerin Jacob #define NIX_AF_CONST2 (0x30ull) 16fa8f86a1SJerin Jacob #define NIX_AF_CONST3 (0x38ull) 17fa8f86a1SJerin Jacob #define NIX_AF_SQ_CONST (0x40ull) 18fa8f86a1SJerin Jacob #define NIX_AF_CQ_CONST (0x48ull) 19fa8f86a1SJerin Jacob #define NIX_AF_RQ_CONST (0x50ull) 20fa8f86a1SJerin Jacob #define NIX_AF_PL_CONST (0x58ull) /* [CN10K, .) */ 21fa8f86a1SJerin Jacob #define NIX_AF_PSE_CONST (0x60ull) 22fa8f86a1SJerin Jacob #define NIX_AF_TL1_CONST (0x70ull) 23fa8f86a1SJerin Jacob #define NIX_AF_TL2_CONST (0x78ull) 24fa8f86a1SJerin Jacob #define NIX_AF_TL3_CONST (0x80ull) 25fa8f86a1SJerin Jacob #define NIX_AF_TL4_CONST (0x88ull) 26fa8f86a1SJerin Jacob #define NIX_AF_MDQ_CONST (0x90ull) 27fa8f86a1SJerin Jacob #define NIX_AF_MC_MIRROR_CONST (0x98ull) 28fa8f86a1SJerin Jacob #define NIX_AF_LSO_CFG (0xa8ull) 29fa8f86a1SJerin Jacob #define NIX_AF_BLK_RST (0xb0ull) 30fa8f86a1SJerin Jacob #define NIX_AF_TX_TSTMP_CFG (0xc0ull) 31fa8f86a1SJerin Jacob #define NIX_AF_PL_TS (0xc8ull) /* [CN10K, .) */ 32fa8f86a1SJerin Jacob #define NIX_AF_RX_CFG (0xd0ull) 33fa8f86a1SJerin Jacob #define NIX_AF_AVG_DELAY (0xe0ull) 34fa8f86a1SJerin Jacob #define NIX_AF_CINT_DELAY (0xf0ull) 35*9a01217eSSatha Rao #define NIX_AF_VWQE_TIMER (0xf8ull) /* [CN10K, CN20K) */ 36fa8f86a1SJerin Jacob #define NIX_AF_RX_MCAST_BASE (0x100ull) 37fa8f86a1SJerin Jacob #define NIX_AF_RX_MCAST_CFG (0x110ull) 38fa8f86a1SJerin Jacob #define NIX_AF_RX_MCAST_BUF_BASE (0x120ull) 39fa8f86a1SJerin Jacob #define NIX_AF_RX_MCAST_BUF_CFG (0x130ull) 40fa8f86a1SJerin Jacob #define NIX_AF_RX_MIRROR_BUF_BASE (0x140ull) 41fa8f86a1SJerin Jacob #define NIX_AF_RX_MIRROR_BUF_CFG (0x148ull) 42fa8f86a1SJerin Jacob #define NIX_AF_LF_RST (0x150ull) 43fa8f86a1SJerin Jacob #define NIX_AF_GEN_INT (0x160ull) 44fa8f86a1SJerin Jacob #define NIX_AF_GEN_INT_W1S (0x168ull) 45fa8f86a1SJerin Jacob #define NIX_AF_GEN_INT_ENA_W1S (0x170ull) 46fa8f86a1SJerin Jacob #define NIX_AF_GEN_INT_ENA_W1C (0x178ull) 47fa8f86a1SJerin Jacob #define NIX_AF_ERR_INT (0x180ull) 48fa8f86a1SJerin Jacob #define NIX_AF_ERR_INT_W1S (0x188ull) 49fa8f86a1SJerin Jacob #define NIX_AF_ERR_INT_ENA_W1S (0x190ull) 50fa8f86a1SJerin Jacob #define NIX_AF_ERR_INT_ENA_W1C (0x198ull) 51fa8f86a1SJerin Jacob #define NIX_AF_RAS (0x1a0ull) 52fa8f86a1SJerin Jacob #define NIX_AF_RAS_W1S (0x1a8ull) 53fa8f86a1SJerin Jacob #define NIX_AF_RAS_ENA_W1S (0x1b0ull) 54fa8f86a1SJerin Jacob #define NIX_AF_RAS_ENA_W1C (0x1b8ull) 55fa8f86a1SJerin Jacob #define NIX_AF_RVU_INT (0x1c0ull) 56fa8f86a1SJerin Jacob #define NIX_AF_RVU_INT_W1S (0x1c8ull) 57fa8f86a1SJerin Jacob #define NIX_AF_RVU_INT_ENA_W1S (0x1d0ull) 58fa8f86a1SJerin Jacob #define NIX_AF_RVU_INT_ENA_W1C (0x1d8ull) 59fa8f86a1SJerin Jacob #define NIX_AF_TCP_TIMER (0x1e0ull) 60fa8f86a1SJerin Jacob /* [CN10k, .) */ 61fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_ETX(a) (0x1f0ull | (uint64_t)(a) << 3) 62fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_OL2 (0x200ull) 63fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_GEN0_COLOR (0x208ull) /* [CN10K, .) */ 64fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_OIP4 (0x210ull) 65fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_GEN1_COLOR (0x218ull) /* [CN10K, .) */ 66fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_IIP4 (0x220ull) 67fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_VLAN0_PCP_DEI (0x228ull) /* [CN10K, .) */ 68fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_OIP6 (0x230ull) 69fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_VLAN1_PCP_DEI (0x238ull) /* [CN10K, .) */ 70fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_IIP6 (0x240ull) 71fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_OTCP (0x250ull) 72fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_ITCP (0x260ull) 73fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_OUDP (0x270ull) 74fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_IUDP (0x280ull) 75fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_OSCTP (0x290ull) 76fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_CST_APAD_0 (0x298ull) /* [CN10K, .) */ 77fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_ISCTP (0x2a0ull) 78fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_CST_APAD_1 (0x2a8ull) /* [CN10K, .) */ 79fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_IPSECX(a) (0x2b0ull | (uint64_t)(a) << 3) 80fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_IIP4_DSCP (0x2e0ull) /* [CN10K, .) */ 81fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_OIP4_DSCP (0x2e8ull) /* [CN10K, .) */ 82fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_IIP6_DSCP (0x2f0ull) /* [CN10K, .) */ 83fa8f86a1SJerin Jacob #define NIX_AF_RX_DEF_OIP6_DSCP (0x2f8ull) /* [CN10K, .) */ 84fa8f86a1SJerin Jacob #define NIX_AF_RX_IPSEC_GEN_CFG (0x300ull) 85*9a01217eSSatha Rao #define NIX_AF_RX_IPSEC_VWQE_GEN_CFG (0x310ull) /* [CN10K, CN20K) */ 86*9a01217eSSatha Rao #define NIX_AF_RX_CPTX_INST_QSEL(a) (0x340ull | (uint64_t)(a) << 16) /* [CN20K, .) */ 87*9a01217eSSatha Rao #define NIX_AF_RX_CPTX_CREDIT(a) (0x380ull | (uint64_t)(a) << 16) /* [CN20K, .) */ 88*9a01217eSSatha Rao #define NIX_AF_CN9K_RX_CPTX_INST_QSEL(a)(0x320ull | (uint64_t)(a) << 3) /* [CN9K, CN20K) */ 89*9a01217eSSatha Rao #define NIX_AF_CN9K_RX_CPTX_CREDIT(a) (0x360ull | (uint64_t)(a) << 3) /* [CN9K, CN20K) */ 90fa8f86a1SJerin Jacob #define NIX_AF_NDC_RX_SYNC (0x3e0ull) 91fa8f86a1SJerin Jacob #define NIX_AF_NDC_TX_SYNC (0x3f0ull) 92fa8f86a1SJerin Jacob #define NIX_AF_AQ_CFG (0x400ull) 93fa8f86a1SJerin Jacob #define NIX_AF_AQ_BASE (0x410ull) 94fa8f86a1SJerin Jacob #define NIX_AF_AQ_STATUS (0x420ull) 95fa8f86a1SJerin Jacob #define NIX_AF_AQ_DOOR (0x430ull) 96fa8f86a1SJerin Jacob #define NIX_AF_AQ_DONE_WAIT (0x440ull) 97fa8f86a1SJerin Jacob #define NIX_AF_AQ_DONE (0x450ull) 98fa8f86a1SJerin Jacob #define NIX_AF_AQ_DONE_ACK (0x460ull) 99fa8f86a1SJerin Jacob #define NIX_AF_AQ_DONE_TIMER (0x470ull) 100fa8f86a1SJerin Jacob #define NIX_AF_AQ_DONE_ENA_W1S (0x490ull) 101fa8f86a1SJerin Jacob #define NIX_AF_AQ_DONE_ENA_W1C (0x498ull) 102fa8f86a1SJerin Jacob #define NIX_AF_RX_LINKX_CFG(a) (0x540ull | (uint64_t)(a) << 16) 103fa8f86a1SJerin Jacob #define NIX_AF_RX_SW_SYNC (0x550ull) 104fa8f86a1SJerin Jacob #define NIX_AF_RX_LINKX_WRR_CFG(a) (0x560ull | (uint64_t)(a) << 16) 105*9a01217eSSatha Rao #define NIX_AF_RQM_ECO (0x5a0ull) 106fa8f86a1SJerin Jacob #define NIX_AF_SEB_CFG (0x5f0ull) /* [CN10K, .) */ 107fa8f86a1SJerin Jacob #define NIX_AF_EXPR_TX_FIFO_STATUS (0x640ull) /* [CN9K, CN10K) */ 108fa8f86a1SJerin Jacob #define NIX_AF_NORM_TX_FIFO_STATUS (0x648ull) 109fa8f86a1SJerin Jacob #define NIX_AF_SDP_TX_FIFO_STATUS (0x650ull) 110fa8f86a1SJerin Jacob #define NIX_AF_TX_NPC_CAPTURE_CONFIG (0x660ull) 111fa8f86a1SJerin Jacob #define NIX_AF_TX_NPC_CAPTURE_INFO (0x668ull) 112*9a01217eSSatha Rao #define NIX_AF_SEB_COALESCE_DBGX(a) (0x670ull | (uint64_t)(a) << 3) 113fa8f86a1SJerin Jacob #define NIX_AF_TX_NPC_CAPTURE_RESPX(a) (0x680ull | (uint64_t)(a) << 3) 114fa8f86a1SJerin Jacob #define NIX_AF_SEB_ACTIVE_CYCLES_PCX(a) (0x6c0ull | (uint64_t)(a) << 3) 115fa8f86a1SJerin Jacob #define NIX_AF_SMQX_CFG(a) (0x700ull | (uint64_t)(a) << 16) 116fa8f86a1SJerin Jacob #define NIX_AF_SMQX_HEAD(a) (0x710ull | (uint64_t)(a) << 16) 117fa8f86a1SJerin Jacob #define NIX_AF_SMQX_TAIL(a) (0x720ull | (uint64_t)(a) << 16) 118fa8f86a1SJerin Jacob #define NIX_AF_SMQX_STATUS(a) (0x730ull | (uint64_t)(a) << 16) 119fa8f86a1SJerin Jacob #define NIX_AF_SMQX_NXT_HEAD(a) (0x740ull | (uint64_t)(a) << 16) 120fa8f86a1SJerin Jacob #define NIX_AF_SQM_ACTIVE_CYCLES_PC (0x770ull) 121fa8f86a1SJerin Jacob #define NIX_AF_SQM_SCLK_CNT (0x780ull) /* [CN10K, .) */ 122*9a01217eSSatha Rao #define NIX_AF_DWRR_MTUX(a) (0x790ull | (uint64_t)(a) << 16) 123fa8f86a1SJerin Jacob #define NIX_AF_DWRR_SDP_MTU (0x790ull) /* [CN10K, .) */ 124fa8f86a1SJerin Jacob #define NIX_AF_DWRR_RPM_MTU (0x7a0ull) /* [CN10K, .) */ 125fa8f86a1SJerin Jacob #define NIX_AF_PSE_CHANNEL_LEVEL (0x800ull) 126fa8f86a1SJerin Jacob #define NIX_AF_PSE_SHAPER_CFG (0x810ull) 127fa8f86a1SJerin Jacob #define NIX_AF_PSE_ACTIVE_CYCLES_PC (0x8c0ull) 128fa8f86a1SJerin Jacob #define NIX_AF_MARK_FORMATX_CTL(a) (0x900ull | (uint64_t)(a) << 18) 129fa8f86a1SJerin Jacob #define NIX_AF_TX_LINKX_NORM_CREDIT(a) (0xa00ull | (uint64_t)(a) << 16) 130fa8f86a1SJerin Jacob /* [CN9K, CN10K) */ 131fa8f86a1SJerin Jacob #define NIX_AF_TX_LINKX_EXPR_CREDIT(a) (0xa10ull | (uint64_t)(a) << 16) 132fa8f86a1SJerin Jacob /* [CN9K, CN10K) */ 133fa8f86a1SJerin Jacob #define NIX_AF_TX_LINKX_SW_XOFF(a) (0xa20ull | (uint64_t)(a) << 16) 134fa8f86a1SJerin Jacob /* [CN10K, .) */ 135fa8f86a1SJerin Jacob #define NIX_AF_TX_LINKX_NORM_CDT_ADJ(a) (0xa20ull | (uint64_t)(a) << 16) 136fa8f86a1SJerin Jacob #define NIX_AF_TX_LINKX_HW_XOFF(a) (0xa30ull | (uint64_t)(a) << 16) 137fa8f86a1SJerin Jacob #define NIX_AF_SDP_LINK_CREDIT (0xa40ull) 138fa8f86a1SJerin Jacob #define NIX_AF_SDP_LINK_CDT_ADJ (0xa50ull) /* [CN10K, .) */ 139*9a01217eSSatha Rao #define NIX_AF_LINK_CDT_ADJ_ERR (0xaa0ull) /* [CN10K, .) */ 140fa8f86a1SJerin Jacob /* [CN9K, CN10K) */ 141fa8f86a1SJerin Jacob #define NIX_AF_SDP_SW_XOFFX(a) (0xa60ull | (uint64_t)(a) << 3) 142fa8f86a1SJerin Jacob #define NIX_AF_SDP_HW_XOFFX(a) (0xac0ull | (uint64_t)(a) << 3) 143fa8f86a1SJerin Jacob #define NIX_AF_TL4X_BP_STATUS(a) (0xb00ull | (uint64_t)(a) << 16) 144fa8f86a1SJerin Jacob #define NIX_AF_TL4X_SDP_LINK_CFG(a) (0xb10ull | (uint64_t)(a) << 16) 145fa8f86a1SJerin Jacob #define NIX_AF_TL1_TW_ARB_CTL_DEBUG (0xbc0ull) /* [CN10K, .) */ 146fa8f86a1SJerin Jacob #define NIX_AF_TL1_TW_ARB_REQ_DEBUG (0xbc8ull) /* [CN10K, .) */ 147fa8f86a1SJerin Jacob #define NIX_AF_TL1X_SCHEDULE(a) (0xc00ull | (uint64_t)(a) << 16) 148fa8f86a1SJerin Jacob #define NIX_AF_TL1X_SHAPE(a) (0xc10ull | (uint64_t)(a) << 16) 149fa8f86a1SJerin Jacob #define NIX_AF_TL1X_CIR(a) (0xc20ull | (uint64_t)(a) << 16) 150fa8f86a1SJerin Jacob /* [CN9K, CN10K) */ 151fa8f86a1SJerin Jacob #define NIX_AF_TL1X_SHAPE_STATE(a) (0xc50ull | (uint64_t)(a) << 16) 152fa8f86a1SJerin Jacob /* [CN10K, .) */ 153fa8f86a1SJerin Jacob #define NIX_AF_TL1X_SHAPE_STATE_CIR(a) (0xc50ull | (uint64_t)(a) << 16) 154fa8f86a1SJerin Jacob #define NIX_AF_TL1X_SW_XOFF(a) (0xc70ull | (uint64_t)(a) << 16) 155fa8f86a1SJerin Jacob #define NIX_AF_TL1X_TOPOLOGY(a) (0xc80ull | (uint64_t)(a) << 16) 156fa8f86a1SJerin Jacob #define NIX_AF_TL1X_MD_DEBUG0(a) (0xcc0ull | (uint64_t)(a) << 16) 157fa8f86a1SJerin Jacob #define NIX_AF_TL1X_MD_DEBUG1(a) (0xcc8ull | (uint64_t)(a) << 16) 158fa8f86a1SJerin Jacob /* [CN9K, CN10K) */ 159fa8f86a1SJerin Jacob #define NIX_AF_TL1X_MD_DEBUG2(a) (0xcd0ull | (uint64_t)(a) << 16) 160fa8f86a1SJerin Jacob /* [CN10K, .) */ 161fa8f86a1SJerin Jacob #define NIX_AF_TL2X_SHAPE_STATE_CIR(a) (0xcd0ull | (uint64_t)(a) << 16) 162fa8f86a1SJerin Jacob /* [CN9K, CN10K) */ 163fa8f86a1SJerin Jacob #define NIX_AF_TL1X_MD_DEBUG3(a) (0xcd8ull | (uint64_t)(a) << 16) 164fa8f86a1SJerin Jacob #define NIX_AF_TL1X_DROPPED_PACKETS(a) (0xd20ull | (uint64_t)(a) << 16) 165fa8f86a1SJerin Jacob #define NIX_AF_TL1X_DROPPED_BYTES(a) (0xd30ull | (uint64_t)(a) << 16) 166fa8f86a1SJerin Jacob #define NIX_AF_TL1X_RED_PACKETS(a) (0xd40ull | (uint64_t)(a) << 16) 167fa8f86a1SJerin Jacob #define NIX_AF_TL1X_RED_BYTES(a) (0xd50ull | (uint64_t)(a) << 16) 168fa8f86a1SJerin Jacob #define NIX_AF_TL1X_YELLOW_PACKETS(a) (0xd60ull | (uint64_t)(a) << 16) 169fa8f86a1SJerin Jacob #define NIX_AF_TL1X_YELLOW_BYTES(a) (0xd70ull | (uint64_t)(a) << 16) 170fa8f86a1SJerin Jacob #define NIX_AF_TL1X_GREEN_PACKETS(a) (0xd80ull | (uint64_t)(a) << 16) 171fa8f86a1SJerin Jacob #define NIX_AF_TL1X_GREEN_BYTES(a) (0xd90ull | (uint64_t)(a) << 16) 172fa8f86a1SJerin Jacob #define NIX_AF_MDQ_MD_COUNT (0xda0ull) /* [CN10K, .) */ 173fa8f86a1SJerin Jacob /* [CN10K, .) */ 174fa8f86a1SJerin Jacob #define NIX_AF_MDQX_OUT_MD_COUNT(a) (0xdb0ull | (uint64_t)(a) << 16) 175fa8f86a1SJerin Jacob #define NIX_AF_TL2_TW_ARB_CTL_DEBUG (0xdc0ull) /* [CN10K, .) */ 176fa8f86a1SJerin Jacob /* [CN10K, .) */ 177fa8f86a1SJerin Jacob #define NIX_AF_TL2_TWX_ARB_REQ_DEBUG0(a) (0xdc8ull | (uint64_t)(a) << 16) 178fa8f86a1SJerin Jacob /* [CN10K, .) */ 179fa8f86a1SJerin Jacob #define NIX_AF_TL2_TWX_ARB_REQ_DEBUG1(a) (0xdd0ull | (uint64_t)(a) << 16) 180fa8f86a1SJerin Jacob #define NIX_AF_TL2X_SCHEDULE(a) (0xe00ull | (uint64_t)(a) << 16) 181fa8f86a1SJerin Jacob #define NIX_AF_TL2X_SHAPE(a) (0xe10ull | (uint64_t)(a) << 16) 182fa8f86a1SJerin Jacob #define NIX_AF_TL2X_CIR(a) (0xe20ull | (uint64_t)(a) << 16) 183fa8f86a1SJerin Jacob #define NIX_AF_TL2X_PIR(a) (0xe30ull | (uint64_t)(a) << 16) 184fa8f86a1SJerin Jacob #define NIX_AF_TL2X_SCHED_STATE(a) (0xe40ull | (uint64_t)(a) << 16) 185fa8f86a1SJerin Jacob /* [CN9K, CN10K) */ 186fa8f86a1SJerin Jacob #define NIX_AF_TL2X_SHAPE_STATE(a) (0xe50ull | (uint64_t)(a) << 16) 187fa8f86a1SJerin Jacob /* [CN10K, .) */ 188fa8f86a1SJerin Jacob #define NIX_AF_TL2X_SHAPE_STATE_PIR(a) (0xe50ull | (uint64_t)(a) << 16) 189fa8f86a1SJerin Jacob #define NIX_AF_TL2X_SW_XOFF(a) (0xe70ull | (uint64_t)(a) << 16) 190fa8f86a1SJerin Jacob #define NIX_AF_TL2X_TOPOLOGY(a) (0xe80ull | (uint64_t)(a) << 16) 191fa8f86a1SJerin Jacob #define NIX_AF_TL2X_PARENT(a) (0xe88ull | (uint64_t)(a) << 16) 192fa8f86a1SJerin Jacob #define NIX_AF_TL2X_MD_DEBUG0(a) (0xec0ull | (uint64_t)(a) << 16) 193fa8f86a1SJerin Jacob #define NIX_AF_TL2X_MD_DEBUG1(a) (0xec8ull | (uint64_t)(a) << 16) 194fa8f86a1SJerin Jacob /* [CN9K, CN10K) */ 195fa8f86a1SJerin Jacob #define NIX_AF_TL2X_MD_DEBUG2(a) (0xed0ull | (uint64_t)(a) << 16) 196fa8f86a1SJerin Jacob /* [CN10K, .) */ 197fa8f86a1SJerin Jacob #define NIX_AF_TL3X_SHAPE_STATE_CIR(a) (0xed0ull | (uint64_t)(a) << 16) 198fa8f86a1SJerin Jacob /* [CN9K, CN10K) */ 199fa8f86a1SJerin Jacob #define NIX_AF_TL2X_MD_DEBUG3(a) (0xed8ull | (uint64_t)(a) << 16) 200fa8f86a1SJerin Jacob #define NIX_AF_TL3_TW_ARB_CTL_DEBUG (0xfc0ull) /* [CN10K, .) */ 201fa8f86a1SJerin Jacob /* [CN10k, .) */ 202fa8f86a1SJerin Jacob #define NIX_AF_TL3_TWX_ARB_REQ_DEBUG0(a) (0xfc8ull | (uint64_t)(a) << 16) 203fa8f86a1SJerin Jacob /* [CN10K, .) */ 204fa8f86a1SJerin Jacob #define NIX_AF_TL3_TWX_ARB_REQ_DEBUG1(a) (0xfd0ull | (uint64_t)(a) << 16) 205fa8f86a1SJerin Jacob #define NIX_AF_TL3X_SCHEDULE(a) (0x1000ull | (uint64_t)(a) << 16) 206fa8f86a1SJerin Jacob #define NIX_AF_TL3X_SHAPE(a) (0x1010ull | (uint64_t)(a) << 16) 207fa8f86a1SJerin Jacob #define NIX_AF_TL3X_CIR(a) (0x1020ull | (uint64_t)(a) << 16) 208fa8f86a1SJerin Jacob #define NIX_AF_TL3X_PIR(a) (0x1030ull | (uint64_t)(a) << 16) 209fa8f86a1SJerin Jacob #define NIX_AF_TL3X_SCHED_STATE(a) (0x1040ull | (uint64_t)(a) << 16) 210fa8f86a1SJerin Jacob /* [CN9K, CN10K) */ 211fa8f86a1SJerin Jacob #define NIX_AF_TL3X_SHAPE_STATE(a) (0x1050ull | (uint64_t)(a) << 16) 212fa8f86a1SJerin Jacob /* [CN10K, .) */ 213fa8f86a1SJerin Jacob #define NIX_AF_TL3X_SHAPE_STATE_PIR(a) (0x1050ull | (uint64_t)(a) << 16) 214fa8f86a1SJerin Jacob #define NIX_AF_TL3X_SW_XOFF(a) (0x1070ull | (uint64_t)(a) << 16) 215fa8f86a1SJerin Jacob #define NIX_AF_TL3X_TOPOLOGY(a) (0x1080ull | (uint64_t)(a) << 16) 216fa8f86a1SJerin Jacob #define NIX_AF_TL3X_PARENT(a) (0x1088ull | (uint64_t)(a) << 16) 217fa8f86a1SJerin Jacob #define NIX_AF_TL3X_MD_DEBUG0(a) (0x10c0ull | (uint64_t)(a) << 16) 218fa8f86a1SJerin Jacob #define NIX_AF_TL3X_MD_DEBUG1(a) (0x10c8ull | (uint64_t)(a) << 16) 219fa8f86a1SJerin Jacob /* [CN9K, CN10K) */ 220fa8f86a1SJerin Jacob #define NIX_AF_TL3X_MD_DEBUG2(a) (0x10d0ull | (uint64_t)(a) << 16) 221fa8f86a1SJerin Jacob /* [CN10K, .) */ 222fa8f86a1SJerin Jacob #define NIX_AF_TL4X_SHAPE_STATE_CIR(a) (0x10d0ull | (uint64_t)(a) << 16) 223fa8f86a1SJerin Jacob /* [CN9K, CN10K) */ 224fa8f86a1SJerin Jacob #define NIX_AF_TL3X_MD_DEBUG3(a) (0x10d8ull | (uint64_t)(a) << 16) 225fa8f86a1SJerin Jacob #define NIX_AF_TL4_TW_ARB_CTL_DEBUG (0x11c0ull) /* [CN10K, .) */ 226fa8f86a1SJerin Jacob /* [CN10K, .) */ 227fa8f86a1SJerin Jacob #define NIX_AF_TL4_TWX_ARB_REQ_DEBUG0(a) (0x11c8ull | (uint64_t)(a) << 16) 228fa8f86a1SJerin Jacob /* [CN10K, .) */ 229fa8f86a1SJerin Jacob #define NIX_AF_TL4_TWX_ARB_REQ_DEBUG1(a) (0x11d0ull | (uint64_t)(a) << 16) 230fa8f86a1SJerin Jacob #define NIX_AF_TL4X_SCHEDULE(a) (0x1200ull | (uint64_t)(a) << 16) 231fa8f86a1SJerin Jacob #define NIX_AF_TL4X_SHAPE(a) (0x1210ull | (uint64_t)(a) << 16) 232fa8f86a1SJerin Jacob #define NIX_AF_TL4X_CIR(a) (0x1220ull | (uint64_t)(a) << 16) 233fa8f86a1SJerin Jacob #define NIX_AF_TL4X_PIR(a) (0x1230ull | (uint64_t)(a) << 16) 234fa8f86a1SJerin Jacob #define NIX_AF_TL4X_SCHED_STATE(a) (0x1240ull | (uint64_t)(a) << 16) 235*9a01217eSSatha Rao #define NIX_AF_TL4X_SHAPE_STATE_PIR(a) (0x1250ull | (uint64_t)(a) << 16) 236fa8f86a1SJerin Jacob #define NIX_AF_TL4X_SW_XOFF(a) (0x1270ull | (uint64_t)(a) << 16) 237fa8f86a1SJerin Jacob #define NIX_AF_TL4X_TOPOLOGY(a) (0x1280ull | (uint64_t)(a) << 16) 238fa8f86a1SJerin Jacob #define NIX_AF_TL4X_PARENT(a) (0x1288ull | (uint64_t)(a) << 16) 239fa8f86a1SJerin Jacob #define NIX_AF_TL4X_MD_DEBUG0(a) (0x12c0ull | (uint64_t)(a) << 16) 240fa8f86a1SJerin Jacob #define NIX_AF_TL4X_MD_DEBUG1(a) (0x12c8ull | (uint64_t)(a) << 16) 241fa8f86a1SJerin Jacob /* [CN9K, CN10K) */ 242fa8f86a1SJerin Jacob #define NIX_AF_TL4X_MD_DEBUG2(a) (0x12d0ull | (uint64_t)(a) << 16) 243fa8f86a1SJerin Jacob /* [CN10K, .) */ 244fa8f86a1SJerin Jacob #define NIX_AF_MDQX_SHAPE_STATE_CIR(a) (0x12d0ull | (uint64_t)(a) << 16) 245fa8f86a1SJerin Jacob /* [CN9K, CN10K) */ 246fa8f86a1SJerin Jacob #define NIX_AF_TL4X_MD_DEBUG3(a) (0x12d8ull | (uint64_t)(a) << 16) 247fa8f86a1SJerin Jacob #define NIX_AF_MDQ_TW_ARB_CTL_DEBUG (0x13c0ull) /* [CN10K, .) */ 248fa8f86a1SJerin Jacob /* [CN10K, .) */ 249fa8f86a1SJerin Jacob #define NIX_AF_MDQ_TWX_ARB_REQ_DEBUG0(a) (0x13c8ull | (uint64_t)(a) << 16) 250fa8f86a1SJerin Jacob /* [CN10K, .) */ 251fa8f86a1SJerin Jacob #define NIX_AF_MDQ_TWX_ARB_REQ_DEBUG1(a) (0x13d0ull | (uint64_t)(a) << 16) 252fa8f86a1SJerin Jacob #define NIX_AF_MDQX_SCHEDULE(a) (0x1400ull | (uint64_t)(a) << 16) 253fa8f86a1SJerin Jacob #define NIX_AF_MDQX_SHAPE(a) (0x1410ull | (uint64_t)(a) << 16) 254fa8f86a1SJerin Jacob #define NIX_AF_MDQX_CIR(a) (0x1420ull | (uint64_t)(a) << 16) 255fa8f86a1SJerin Jacob #define NIX_AF_MDQX_PIR(a) (0x1430ull | (uint64_t)(a) << 16) 256fa8f86a1SJerin Jacob #define NIX_AF_MDQX_SCHED_STATE(a) (0x1440ull | (uint64_t)(a) << 16) 257fa8f86a1SJerin Jacob /* [CN9K, CN10K) */ 258fa8f86a1SJerin Jacob #define NIX_AF_MDQX_SHAPE_STATE(a) (0x1450ull | (uint64_t)(a) << 16) 259fa8f86a1SJerin Jacob /* [CN10K, .) */ 260fa8f86a1SJerin Jacob #define NIX_AF_MDQX_SHAPE_STATE_PIR(a) (0x1450ull | (uint64_t)(a) << 16) 261fa8f86a1SJerin Jacob #define NIX_AF_MDQX_SW_XOFF(a) (0x1470ull | (uint64_t)(a) << 16) 262fa8f86a1SJerin Jacob #define NIX_AF_MDQX_PARENT(a) (0x1480ull | (uint64_t)(a) << 16) 263fa8f86a1SJerin Jacob #define NIX_AF_MDQX_MD_DEBUG(a) (0x14c0ull | (uint64_t)(a) << 16) 264fa8f86a1SJerin Jacob /* [CN10K, .) */ 265fa8f86a1SJerin Jacob #define NIX_AF_MDQX_IN_MD_COUNT(a) (0x14e0ull | (uint64_t)(a) << 16) 266fa8f86a1SJerin Jacob /* [CN9K, CN10K) */ 267fa8f86a1SJerin Jacob #define NIX_AF_TL3_TL2X_CFG(a) (0x1600ull | (uint64_t)(a) << 16) 268fa8f86a1SJerin Jacob #define NIX_AF_TL3_TL2X_BP_STATUS(a) (0x1610ull | (uint64_t)(a) << 16) 269fa8f86a1SJerin Jacob #define NIX_AF_TL3_TL2X_LINKX_CFG(a, b) \ 270fa8f86a1SJerin Jacob (0x1700ull | (uint64_t)(a) << 16 | (uint64_t)(b) << 3) 271fa8f86a1SJerin Jacob #define NIX_AF_RX_FLOW_KEY_ALGX_FIELDX(a, b) \ 272fa8f86a1SJerin Jacob (0x1800ull | (uint64_t)(a) << 18 | (uint64_t)(b) << 3) 273fa8f86a1SJerin Jacob #define NIX_AF_TX_MCASTX(a) (0x1900ull | (uint64_t)(a) << 15) 274fa8f86a1SJerin Jacob #define NIX_AF_TX_VTAG_DEFX_CTL(a) (0x1a00ull | (uint64_t)(a) << 16) 275fa8f86a1SJerin Jacob #define NIX_AF_TX_VTAG_DEFX_DATA(a) (0x1a10ull | (uint64_t)(a) << 16) 276fa8f86a1SJerin Jacob #define NIX_AF_RX_BPIDX_STATUS(a) (0x1a20ull | (uint64_t)(a) << 17) 277fa8f86a1SJerin Jacob #define NIX_AF_RX_CHANX_CFG(a) (0x1a30ull | (uint64_t)(a) << 15) 278fa8f86a1SJerin Jacob #define NIX_AF_CINT_TIMERX(a) (0x1a40ull | (uint64_t)(a) << 18) 279fa8f86a1SJerin Jacob #define NIX_AF_LSO_FORMATX_FIELDX(a, b) \ 280fa8f86a1SJerin Jacob (0x1b00ull | (uint64_t)(a) << 16 | (uint64_t)(b) << 3) 281*9a01217eSSatha Rao /* [CN10K, .) */ 282*9a01217eSSatha Rao #define NIX_AF_SPI_TO_SA_KEYX_WAYX(a, b) (0x1c00ull | (uint64_t)(a) << 16 | (uint64_t)(b) << 3) 283*9a01217eSSatha Rao #define NIX_AF_SPI_TO_SA_VALUEX_WAYX(a, b) (0x1c40ull | (uint64_t)(a) << 16 | (uint64_t)(b) << 3) 284*9a01217eSSatha Rao #define NIX_AF_SPI_TO_SA_CFG (0x1c80ull) 285*9a01217eSSatha Rao #define NIX_AF_SPI_TO_SA_CFG1 (0x1c88ull) 286*9a01217eSSatha Rao #define NIX_AF_SPI_TO_SA_HASH_KEY (0x1c90ull) 287*9a01217eSSatha Rao #define NIX_AF_SPI_TO_SA_HASH_VALUE (0x1ca0ull) 288*9a01217eSSatha Rao /* CN20K, .) */ 289*9a01217eSSatha Rao #define NIX_AF_RX_IPSEC_VLAN_CFGX(a) (0x1d00ull | (uint64_t)(a) << 3) 290*9a01217eSSatha Rao #define NIX_AF_RX_IPSEC_QMAPX_DSCPX(a, b) (0x1e00ull | (uint64_t)(a) << 6 | (uint64_t)(b) << 3) 291*9a01217eSSatha Rao #define NIX_AF_RX_SSO_GRPX_BP_CFG(a) (0x2000ull | (uint64_t)(a) << 3) 292*9a01217eSSatha Rao #define NIX_AF_RX_SSO_GRPX_BP_LEVEL(a) (0x3000ull | (uint64_t)(a) << 3) 293fa8f86a1SJerin Jacob #define NIX_AF_LFX_CFG(a) (0x4000ull | (uint64_t)(a) << 17) 294fa8f86a1SJerin Jacob /* [CN10K, .) */ 295fa8f86a1SJerin Jacob #define NIX_AF_LINKX_CFG(a) (0x4010ull | (uint64_t)(a) << 17) 296fa8f86a1SJerin Jacob #define NIX_AF_LFX_SQS_CFG(a) (0x4020ull | (uint64_t)(a) << 17) 297fa8f86a1SJerin Jacob #define NIX_AF_LFX_TX_CFG2(a) (0x4028ull | (uint64_t)(a) << 17) 298fa8f86a1SJerin Jacob #define NIX_AF_LFX_SQS_BASE(a) (0x4030ull | (uint64_t)(a) << 17) 299fa8f86a1SJerin Jacob #define NIX_AF_LFX_RQS_CFG(a) (0x4040ull | (uint64_t)(a) << 17) 300fa8f86a1SJerin Jacob #define NIX_AF_LFX_RQS_BASE(a) (0x4050ull | (uint64_t)(a) << 17) 301fa8f86a1SJerin Jacob #define NIX_AF_LFX_CQS_CFG(a) (0x4060ull | (uint64_t)(a) << 17) 302fa8f86a1SJerin Jacob #define NIX_AF_LFX_CQS_BASE(a) (0x4070ull | (uint64_t)(a) << 17) 303fa8f86a1SJerin Jacob #define NIX_AF_LFX_TX_CFG(a) (0x4080ull | (uint64_t)(a) << 17) 304fa8f86a1SJerin Jacob #define NIX_AF_LFX_TX_PARSE_CFG(a) (0x4090ull | (uint64_t)(a) << 17) 305fa8f86a1SJerin Jacob #define NIX_AF_LFX_RX_CFG(a) (0x40a0ull | (uint64_t)(a) << 17) 306fa8f86a1SJerin Jacob #define NIX_AF_LFX_RSS_CFG(a) (0x40c0ull | (uint64_t)(a) << 17) 307fa8f86a1SJerin Jacob #define NIX_AF_LFX_RSS_BASE(a) (0x40d0ull | (uint64_t)(a) << 17) 308fa8f86a1SJerin Jacob #define NIX_AF_LFX_QINTS_CFG(a) (0x4100ull | (uint64_t)(a) << 17) 309fa8f86a1SJerin Jacob #define NIX_AF_LFX_QINTS_BASE(a) (0x4110ull | (uint64_t)(a) << 17) 310fa8f86a1SJerin Jacob #define NIX_AF_LFX_CINTS_CFG(a) (0x4120ull | (uint64_t)(a) << 17) 311fa8f86a1SJerin Jacob #define NIX_AF_LFX_CINTS_BASE(a) (0x4130ull | (uint64_t)(a) << 17) 312fa8f86a1SJerin Jacob #define NIX_AF_LFX_RX_IPSEC_CFG0(a) (0x4140ull | (uint64_t)(a) << 17) 313fa8f86a1SJerin Jacob #define NIX_AF_LFX_RX_IPSEC_CFG1(a) (0x4148ull | (uint64_t)(a) << 17) 314fa8f86a1SJerin Jacob #define NIX_AF_LFX_RX_IPSEC_DYNO_CFG(a) (0x4150ull | (uint64_t)(a) << 17) 315fa8f86a1SJerin Jacob #define NIX_AF_LFX_RX_IPSEC_DYNO_BASE(a) (0x4158ull | (uint64_t)(a) << 17) 316fa8f86a1SJerin Jacob #define NIX_AF_LFX_RX_IPSEC_SA_BASE(a) (0x4170ull | (uint64_t)(a) << 17) 317fa8f86a1SJerin Jacob #define NIX_AF_LFX_TX_STATUS(a) (0x4180ull | (uint64_t)(a) << 17) 318fa8f86a1SJerin Jacob #define NIX_AF_LFX_RX_VTAG_TYPEX(a, b) \ 319fa8f86a1SJerin Jacob (0x4200ull | (uint64_t)(a) << 17 | (uint64_t)(b) << 3) 320fa8f86a1SJerin Jacob #define NIX_AF_LFX_LOCKX(a, b) \ 321fa8f86a1SJerin Jacob (0x4300ull | (uint64_t)(a) << 17 | (uint64_t)(b) << 3) 322fa8f86a1SJerin Jacob #define NIX_AF_LFX_TX_STATX(a, b) \ 323fa8f86a1SJerin Jacob (0x4400ull | (uint64_t)(a) << 17 | (uint64_t)(b) << 3) 324fa8f86a1SJerin Jacob #define NIX_AF_LFX_RX_STATX(a, b) \ 325fa8f86a1SJerin Jacob (0x4500ull | (uint64_t)(a) << 17 | (uint64_t)(b) << 3) 326fa8f86a1SJerin Jacob #define NIX_AF_LFX_RSS_GRPX(a, b) \ 327fa8f86a1SJerin Jacob (0x4600ull | (uint64_t)(a) << 17 | (uint64_t)(b) << 3) 328fa8f86a1SJerin Jacob #define NIX_AF_RX_NPC_MC_RCV (0x4700ull) 329fa8f86a1SJerin Jacob #define NIX_AF_RX_NPC_MC_DROP (0x4710ull) 330fa8f86a1SJerin Jacob #define NIX_AF_RX_NPC_MIRROR_RCV (0x4720ull) 331fa8f86a1SJerin Jacob #define NIX_AF_RX_NPC_MIRROR_DROP (0x4730ull) 332fa8f86a1SJerin Jacob /* [CN10K, .) */ 333fa8f86a1SJerin Jacob #define NIX_AF_LFX_VWQE_NORM_COMPL(a) (0x4740ull | (uint64_t)(a) << 17) 334fa8f86a1SJerin Jacob /* [CN10K, .) */ 335fa8f86a1SJerin Jacob #define NIX_AF_LFX_VWQE_RLS_TIMEOUT(a) (0x4750ull | (uint64_t)(a) << 17) 336fa8f86a1SJerin Jacob /* [CN10K, .) */ 337fa8f86a1SJerin Jacob #define NIX_AF_LFX_VWQE_HASH_FULL(a) (0x4760ull | (uint64_t)(a) << 17) 338fa8f86a1SJerin Jacob /* [CN10K, .) */ 339fa8f86a1SJerin Jacob #define NIX_AF_LFX_VWQE_SA_FULL(a) (0x4770ull | (uint64_t)(a) << 17) 340fa8f86a1SJerin Jacob #define NIX_AF_VWQE_HASH_FUNC_MASK (0x47a0ull) /* [CN10K, .) */ 341fa8f86a1SJerin Jacob #define NIX_AF_RX_ACTIVE_CYCLES_PCX(a) (0x4800ull | (uint64_t)(a) << 16) 342fa8f86a1SJerin Jacob /* [CN10K, .) */ 343fa8f86a1SJerin Jacob #define NIX_AF_RX_LINKX_WRR_OUT_CFG(a) (0x4a00ull | (uint64_t)(a) << 16) 344fa8f86a1SJerin Jacob #define NIX_PRIV_AF_INT_CFG (0x8000000ull) 345fa8f86a1SJerin Jacob #define NIX_PRIV_LFX_CFG(a) (0x8000010ull | (uint64_t)(a) << 8) 346fa8f86a1SJerin Jacob #define NIX_PRIV_LFX_INT_CFG(a) (0x8000020ull | (uint64_t)(a) << 8) 347fa8f86a1SJerin Jacob #define NIX_AF_RVU_LF_CFG_DEBUG (0x8000030ull) 348fa8f86a1SJerin Jacob 349fa8f86a1SJerin Jacob #define NIX_LF_RX_SECRETX(a) (0x0ull | (uint64_t)(a) << 3) 350fa8f86a1SJerin Jacob #define NIX_LF_CFG (0x100ull) 351fa8f86a1SJerin Jacob #define NIX_LF_GINT (0x200ull) 352fa8f86a1SJerin Jacob #define NIX_LF_GINT_W1S (0x208ull) 353fa8f86a1SJerin Jacob #define NIX_LF_GINT_ENA_W1C (0x210ull) 354fa8f86a1SJerin Jacob #define NIX_LF_GINT_ENA_W1S (0x218ull) 355fa8f86a1SJerin Jacob #define NIX_LF_ERR_INT (0x220ull) 356fa8f86a1SJerin Jacob #define NIX_LF_ERR_INT_W1S (0x228ull) 357fa8f86a1SJerin Jacob #define NIX_LF_ERR_INT_ENA_W1C (0x230ull) 358fa8f86a1SJerin Jacob #define NIX_LF_ERR_INT_ENA_W1S (0x238ull) 359fa8f86a1SJerin Jacob #define NIX_LF_RAS (0x240ull) 360fa8f86a1SJerin Jacob #define NIX_LF_RAS_W1S (0x248ull) 361fa8f86a1SJerin Jacob #define NIX_LF_RAS_ENA_W1C (0x250ull) 362fa8f86a1SJerin Jacob #define NIX_LF_RAS_ENA_W1S (0x258ull) 363fa8f86a1SJerin Jacob #define NIX_LF_SQ_OP_ERR_DBG (0x260ull) 364fa8f86a1SJerin Jacob #define NIX_LF_MNQ_ERR_DBG (0x270ull) 365fa8f86a1SJerin Jacob #define NIX_LF_SEND_ERR_DBG (0x280ull) 366fa8f86a1SJerin Jacob #define NIX_LF_TX_STATX(a) (0x300ull | (uint64_t)(a) << 3) 367fa8f86a1SJerin Jacob #define NIX_LF_RX_STATX(a) (0x400ull | (uint64_t)(a) << 3) 368fa8f86a1SJerin Jacob #define NIX_LF_OP_SENDX(a) (0x800ull | (uint64_t)(a) << 3) 369*9a01217eSSatha Rao #define NIX_LF_PTP_CLOCK (0x8f8ull) /* [CN20K, .) */ 370fa8f86a1SJerin Jacob #define NIX_LF_RQ_OP_INT (0x900ull) 371fa8f86a1SJerin Jacob #define NIX_LF_RQ_OP_OCTS (0x910ull) 372fa8f86a1SJerin Jacob #define NIX_LF_RQ_OP_PKTS (0x920ull) 373fa8f86a1SJerin Jacob #define NIX_LF_RQ_OP_DROP_OCTS (0x930ull) 374fa8f86a1SJerin Jacob #define NIX_LF_RQ_OP_DROP_PKTS (0x940ull) 375fa8f86a1SJerin Jacob #define NIX_LF_RQ_OP_RE_PKTS (0x950ull) 376fa8f86a1SJerin Jacob #define NIX_LF_OP_IPSEC_DYNO_CNT (0x980ull) 377*9a01217eSSatha Rao #define NIX_LF_OP_VWQE_FLUSH (0x9a0ull) /* [CN10K, CN20K) */ 378fa8f86a1SJerin Jacob #define NIX_LF_PL_OP_BAND_PROF (0x9c0ull) /* [CN10K, .) */ 379fa8f86a1SJerin Jacob #define NIX_LF_SQ_OP_INT (0xa00ull) 380fa8f86a1SJerin Jacob #define NIX_LF_SQ_OP_OCTS (0xa10ull) 381fa8f86a1SJerin Jacob #define NIX_LF_SQ_OP_PKTS (0xa20ull) 382fa8f86a1SJerin Jacob #define NIX_LF_SQ_OP_STATUS (0xa30ull) 383fa8f86a1SJerin Jacob #define NIX_LF_SQ_OP_DROP_OCTS (0xa40ull) 384fa8f86a1SJerin Jacob #define NIX_LF_SQ_OP_DROP_PKTS (0xa50ull) 3853ae7a30eSSatha Rao #define NIX_LF_SQ_OP_AGE_DROP_OCTS (0xa60ull) /* [CN10K, .) */ 3863ae7a30eSSatha Rao #define NIX_LF_SQ_OP_AGE_DROP_PKTS (0xa70ull) /* [CN10K, .) */ 387fa8f86a1SJerin Jacob #define NIX_LF_CQ_OP_INT (0xb00ull) 388fa8f86a1SJerin Jacob #define NIX_LF_CQ_OP_DOOR (0xb30ull) 389fa8f86a1SJerin Jacob #define NIX_LF_CQ_OP_STATUS (0xb40ull) 390*9a01217eSSatha Rao #define NIX_LF_SSO_BP_OP_DOOR (0xb50ull) /* [CN20K, .) */ 391*9a01217eSSatha Rao #define NIX_LF_SSO_BP_OP_LEVEL (0xb58ull) /* [CN20K, .) */ 392*9a01217eSSatha Rao #define NIX_LF_SSO_BP_OP_INT (0xb60ull) /* [CN20K, .) */ 393fa8f86a1SJerin Jacob #define NIX_LF_QINTX_CNT(a) (0xc00ull | (uint64_t)(a) << 12) 394fa8f86a1SJerin Jacob #define NIX_LF_QINTX_INT(a) (0xc10ull | (uint64_t)(a) << 12) 395fa8f86a1SJerin Jacob #define NIX_LF_QINTX_ENA_W1S(a) (0xc20ull | (uint64_t)(a) << 12) 396fa8f86a1SJerin Jacob #define NIX_LF_QINTX_ENA_W1C(a) (0xc30ull | (uint64_t)(a) << 12) 397fa8f86a1SJerin Jacob #define NIX_LF_CINTX_CNT(a) (0xd00ull | (uint64_t)(a) << 12) 398fa8f86a1SJerin Jacob #define NIX_LF_CINTX_WAIT(a) (0xd10ull | (uint64_t)(a) << 12) 399fa8f86a1SJerin Jacob #define NIX_LF_CINTX_INT(a) (0xd20ull | (uint64_t)(a) << 12) 400fa8f86a1SJerin Jacob #define NIX_LF_CINTX_INT_W1S(a) (0xd30ull | (uint64_t)(a) << 12) 401fa8f86a1SJerin Jacob #define NIX_LF_CINTX_ENA_W1S(a) (0xd40ull | (uint64_t)(a) << 12) 402fa8f86a1SJerin Jacob #define NIX_LF_CINTX_ENA_W1C(a) (0xd50ull | (uint64_t)(a) << 12) 403fa8f86a1SJerin Jacob /* [CN10K, .) */ 404fa8f86a1SJerin Jacob #define NIX_LF_RX_GEN_COLOR_CONVX(a) (0x4740ull | (uint64_t)(a) << 3) 405fa8f86a1SJerin Jacob #define NIX_LF_RX_VLAN0_COLOR_CONV (0x4760ull) /* [CN10K, .) */ 406fa8f86a1SJerin Jacob #define NIX_LF_RX_VLAN1_COLOR_CONV (0x4768ull) /* [CN10K, .) */ 407fa8f86a1SJerin Jacob #define NIX_LF_RX_IIP_COLOR_CONV_LO (0x4770ull) /* [CN10K, .) */ 408fa8f86a1SJerin Jacob #define NIX_LF_RX_IIP_COLOR_CONV_HI (0x4778ull) /* [CN10K, .) */ 409fa8f86a1SJerin Jacob #define NIX_LF_RX_OIP_COLOR_CONV_LO (0x4780ull) /* [CN10K, .) */ 410fa8f86a1SJerin Jacob #define NIX_LF_RX_OIP_COLOR_CONV_HI (0x4788ull) /* [CN10K, .) */ 411fa8f86a1SJerin Jacob 412fa8f86a1SJerin Jacob /* Enum offsets */ 413fa8f86a1SJerin Jacob 414*9a01217eSSatha Rao #define NIX_SSOERRINT_DOOR_ERR (0x0ull) /*[CN20K, .) */ 415*9a01217eSSatha Rao 416fa8f86a1SJerin Jacob #define NIX_STAT_LF_TX_TX_UCAST (0x0ull) 417fa8f86a1SJerin Jacob #define NIX_STAT_LF_TX_TX_BCAST (0x1ull) 418fa8f86a1SJerin Jacob #define NIX_STAT_LF_TX_TX_MCAST (0x2ull) 419fa8f86a1SJerin Jacob #define NIX_STAT_LF_TX_TX_DROP (0x3ull) 420fa8f86a1SJerin Jacob #define NIX_STAT_LF_TX_TX_OCTS (0x4ull) 421fa8f86a1SJerin Jacob 422fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_OCTS (0x0ull) 423fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_UCAST (0x1ull) 424fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_BCAST (0x2ull) 425fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_MCAST (0x3ull) 426fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_DROP (0x4ull) 427fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_DROP_OCTS (0x5ull) 428fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_FCS (0x6ull) 429fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_ERR (0x7ull) 430fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_DRP_BCAST (0x8ull) 431fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_DRP_MCAST (0x9ull) 432fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_DRP_L3BCAST (0xaull) 433fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_DRP_L3MCAST (0xbull) 434fa8f86a1SJerin Jacob 435fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_GC_OCTS_PASSED (0xcull) /* [CN10K, .) */ 436fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_GC_PKTS_PASSED (0xdull) /* [CN10K, .) */ 437fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_YC_OCTS_PASSED (0xeull) /* [CN10K, .) */ 438fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_YC_PKTS_PASSED (0xfull) /* [CN10K, .) */ 439fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_RC_OCTS_PASSED (0x10ull) /* [CN10K, .) */ 440fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_RC_PKTS_PASSED (0x11ull) /* [CN10K, .) */ 441fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_GC_OCTS_DROP (0x12ull) /* [CN10K, .) */ 442fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_GC_PKTS_DROP (0x13ull) /* [CN10K, .) */ 443fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_YC_OCTS_DROP (0x14ull) /* [CN10K, .) */ 444fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_YC_PKTS_DROP (0x15ull) /* [CN10K, .) */ 445fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_RC_OCTS_DROP (0x16ull) /* [CN10K, .) */ 446fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_RC_PKTS_DROP (0x17ull) /* [CN10K, .) */ 447fa8f86a1SJerin Jacob #define NIX_STAT_LF_RX_RX_CPT_DROP_PKTS (0x18ull) /* [CN10K, .) */ 4488fbad405SRahul Bhansali #define NIX_STAT_LF_RX_RX_IPSECD_DROP_PKTS (0x19ull) /* [CN10K, .) */ 449fa8f86a1SJerin Jacob 450fa8f86a1SJerin Jacob #define CGX_RX_PKT_CNT (0x0ull) /* [CN9K, CN10K) */ 451fa8f86a1SJerin Jacob #define CGX_RX_OCT_CNT (0x1ull) /* [CN9K, CN10K) */ 452fa8f86a1SJerin Jacob #define CGX_RX_PAUSE_PKT_CNT (0x2ull) /* [CN9K, CN10K) */ 453fa8f86a1SJerin Jacob #define CGX_RX_PAUSE_OCT_CNT (0x3ull) /* [CN9K, CN10K) */ 454fa8f86a1SJerin Jacob #define CGX_RX_DMAC_FILT_PKT_CNT (0x4ull) /* [CN9K, CN10K) */ 455fa8f86a1SJerin Jacob #define CGX_RX_DMAC_FILT_OCT_CNT (0x5ull) /* [CN9K, CN10K) */ 456fa8f86a1SJerin Jacob #define CGX_RX_FIFO_DROP_PKT_CNT (0x6ull) /* [CN9K, CN10K) */ 457fa8f86a1SJerin Jacob #define CGX_RX_FIFO_DROP_OCT_CNT (0x7ull) /* [CN9K, CN10K) */ 458fa8f86a1SJerin Jacob #define CGX_RX_ERR_CNT (0x8ull) /* [CN9K, CN10K) */ 459fa8f86a1SJerin Jacob 460fa8f86a1SJerin Jacob #define CGX_TX_COLLISION_DROP (0x0ull) /* [CN9K, CN10K) */ 461fa8f86a1SJerin Jacob #define CGX_TX_FRAME_DEFER_CNT (0x1ull) /* [CN9K, CN10K) */ 462fa8f86a1SJerin Jacob #define CGX_TX_MULTIPLE_COLLISION (0x2ull) /* [CN9K, CN10K) */ 463fa8f86a1SJerin Jacob #define CGX_TX_SINGLE_COLLISION (0x3ull) /* [CN9K, CN10K) */ 464fa8f86a1SJerin Jacob #define CGX_TX_OCT_CNT (0x4ull) /* [CN9K, CN10K) */ 465fa8f86a1SJerin Jacob #define CGX_TX_PKT_CNT (0x5ull) /* [CN9K, CN10K) */ 466fa8f86a1SJerin Jacob #define CGX_TX_1_63_PKT_CNT (0x6ull) /* [CN9K, CN10K) */ 467fa8f86a1SJerin Jacob #define CGX_TX_64_PKT_CNT (0x7ull) /* [CN9K, CN10K) */ 468fa8f86a1SJerin Jacob #define CGX_TX_65_127_PKT_CNT (0x8ull) /* [CN9K, CN10K) */ 469fa8f86a1SJerin Jacob #define CGX_TX_128_255_PKT_CNT (0x9ull) /* [CN9K, CN10K) */ 470fa8f86a1SJerin Jacob #define CGX_TX_256_511_PKT_CNT (0xaull) /* [CN9K, CN10K) */ 471fa8f86a1SJerin Jacob #define CGX_TX_512_1023_PKT_CNT (0xbull) /* [CN9K, CN10K) */ 472fa8f86a1SJerin Jacob #define CGX_TX_1024_1518_PKT_CNT (0xcull) /* [CN9K, CN10K) */ 473fa8f86a1SJerin Jacob #define CGX_TX_1519_MAX_PKT_CNT (0xdull) /* [CN9K, CN10K) */ 474fa8f86a1SJerin Jacob #define CGX_TX_BCAST_PKTS (0xeull) /* [CN9K, CN10K) */ 475fa8f86a1SJerin Jacob #define CGX_TX_MCAST_PKTS (0xfull) /* [CN9K, CN10K) */ 476fa8f86a1SJerin Jacob #define CGX_TX_UFLOW_PKTS (0x10ull) /* [CN9K, CN10K) */ 477fa8f86a1SJerin Jacob #define CGX_TX_PAUSE_PKTS (0x11ull) /* [CN9K, CN10K) */ 478fa8f86a1SJerin Jacob 479fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_OCT_CNT (0x0ull) /* [CN10K, .) */ 480fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_OCT_RECV_OK (0x1ull) /* [CN10K, .) */ 481fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_ALIG_ERR (0x2ull) /* [CN10K, .) */ 482fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_CTRL_FRM_RECV (0x3ull) /* [CN10K, .) */ 483fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_FRM_LONG (0x4ull) /* [CN10K, .) */ 484fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_LEN_ERR (0x5ull) /* [CN10K, .) */ 485fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_FRM_RECV (0x6ull) /* [CN10K, .) */ 486fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_FRM_SEQ_ERR (0x7ull) /* [CN10K, .) */ 487fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_VLAN_OK (0x8ull) /* [CN10K, .) */ 488fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_IN_ERR (0x9ull) /* [CN10K, .) */ 489fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_IN_UCAST_PKT (0xaull) /* [CN10K, .) */ 490fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_IN_MCAST_PKT (0xbull) /* [CN10K, .) */ 491fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_IN_BCAST_PKT (0xcull) /* [CN10K, .) */ 492fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_DRP_EVENTS (0xdull) /* [CN10K, .) */ 493fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_PKT (0xeull) /* [CN10K, .) */ 494fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_UNDER_SIZE (0xfull) /* [CN10K, .) */ 495fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_1_64_PKT_CNT (0x10ull) /* [CN10K, .) */ 496fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_65_127_PKT_CNT (0x11ull) /* [CN10K, .) */ 497fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_128_255_PKT_CNT (0x12ull) /* [CN10K, .) */ 498fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_256_511_PKT_CNT (0x13ull) /* [CN10K, .) */ 499fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_512_1023_PKT_CNT (0x14ull) /* [CN10K, .) */ 500fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_1024_1518_PKT_CNT (0x15ull) /* [CN10K, .) */ 501fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_1519_MAX_PKT_CNT (0x16ull) /* [CN10K, .) */ 502fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_OVER_SIZE (0x17ull) /* [CN10K, .) */ 503fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_JABBER (0x18ull) /* [CN10K, .) */ 504fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_ETH_FRAGS (0x19ull) /* [CN10K, .) */ 505fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_CBFC_CLASS_0 (0x1aull) /* [CN10K, .) */ 506fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_CBFC_CLASS_1 (0x1bull) /* [CN10K, .) */ 507fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_CBFC_CLASS_2 (0x1cull) /* [CN10K, .) */ 508fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_CBFC_CLASS_3 (0x1dull) /* [CN10K, .) */ 509fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_CBFC_CLASS_4 (0x1eull) /* [CN10K, .) */ 510fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_CBFC_CLASS_5 (0x1full) /* [CN10K, .) */ 511fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_CBFC_CLASS_6 (0x20ull) /* [CN10K, .) */ 512fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_CBFC_CLASS_7 (0x21ull) /* [CN10K, .) */ 513fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_CBFC_CLASS_8 (0x22ull) /* [CN10K, .) */ 514fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_CBFC_CLASS_9 (0x23ull) /* [CN10K, .) */ 515fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_CBFC_CLASS_10 (0x24ull) /* [CN10K, .) */ 516fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_CBFC_CLASS_11 (0x25ull) /* [CN10K, .) */ 517fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_CBFC_CLASS_12 (0x26ull) /* [CN10K, .) */ 518fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_CBFC_CLASS_13 (0x27ull) /* [CN10K, .) */ 519fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_CBFC_CLASS_14 (0x28ull) /* [CN10K, .) */ 520fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_CBFC_CLASS_15 (0x29ull) /* [CN10K, .) */ 521fa8f86a1SJerin Jacob #define RPM_MTI_STAT_RX_MAC_CONTROL (0x2aull) /* [CN10K, .) */ 522fa8f86a1SJerin Jacob 523fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_OCT_CNT (0x0ull) /* [CN10K, .) */ 524fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_OCT_TX_OK (0x1ull) /* [CN10K, .) */ 525fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_PAUSE_MAC_CTRL (0x2ull) /* [CN10K, .) */ 526fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_FRAMES_OK (0x3ull) /* [CN10K, .) */ 527fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_VLAN_OK (0x4ull) /* [CN10K, .) */ 528fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_OUT_ERR (0x5ull) /* [CN10K, .) */ 529fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_UCAST_PKT_CNT (0x6ull) /* [CN10K, .) */ 530fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_MCAST_PKT_CNT (0x7ull) /* [CN10K, .) */ 531fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_BCAST_PKT_CNT (0x8ull) /* [CN10K, .) */ 532fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_1_64_PKT_CNT (0x9ull) /* [CN10K, .) */ 533fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_65_127_PKT_CNT (0xaull) /* [CN10K, .) */ 534fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_128_255_PKT_CNT (0xbull) /* [CN10K, .) */ 535fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_256_511_PKT_CNT (0xcull) /* [CN10K, .) */ 536fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_512_1023_PKT_CNT (0xdull) /* [CN10K, .) */ 537fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_1024_1518_PKT_CNT (0xeull) /* [CN10K, .) */ 538fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_1519_MAX_PKT_CNT (0xfull) /* [CN10K, .) */ 539fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_CBFC_CLASS_0 (0x10ull) /* [CN10K, .) */ 540fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_CBFC_CLASS_1 (0x11ull) /* [CN10K, .) */ 541fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_CBFC_CLASS_2 (0x12ull) /* [CN10K, .) */ 542fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_CBFC_CLASS_3 (0x13ull) /* [CN10K, .) */ 543fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_CBFC_CLASS_4 (0x14ull) /* [CN10K, .) */ 544fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_CBFC_CLASS_5 (0x15ull) /* [CN10K, .) */ 545fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_CBFC_CLASS_6 (0x16ull) /* [CN10K, .) */ 546fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_CBFC_CLASS_7 (0x17ull) /* [CN10K, .) */ 547fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_CBFC_CLASS_8 (0x18ull) /* [CN10K, .) */ 548fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_CBFC_CLASS_9 (0x19ull) /* [CN10K, .) */ 549fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_CBFC_CLASS_10 (0x1aull) /* [CN10K, .) */ 550fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_CBFC_CLASS_11 (0x1bull) /* [CN10K, .) */ 551fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_CBFC_CLASS_12 (0x1cull) /* [CN10K, .) */ 552fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_CBFC_CLASS_13 (0x1dull) /* [CN10K, .) */ 553fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_CBFC_CLASS_14 (0x1eull) /* [CN10K, .) */ 554fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_CBFC_CLASS_15 (0x1full) /* [CN10K, .) */ 555fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_MAC_CONTROL_FRAMES (0x20ull) /* [CN10K, .) */ 556fa8f86a1SJerin Jacob #define RPM_MTI_STAT_TX_PKT_CNT (0x21ull) /* [CN10K, .) */ 557fa8f86a1SJerin Jacob 558fa8f86a1SJerin Jacob #define NIX_SQOPERR_SQ_OOR (0x0ull) 559fa8f86a1SJerin Jacob #define NIX_SQOPERR_SQ_CTX_FAULT (0x1ull) 560fa8f86a1SJerin Jacob #define NIX_SQOPERR_SQ_CTX_POISON (0x2ull) 561fa8f86a1SJerin Jacob #define NIX_SQOPERR_SQ_DISABLED (0x3ull) 562fa8f86a1SJerin Jacob #define NIX_SQOPERR_MAX_SQE_SIZE_ERR (0x4ull) 563fa8f86a1SJerin Jacob #define NIX_SQOPERR_SQE_OFLOW (0x5ull) 564fa8f86a1SJerin Jacob #define NIX_SQOPERR_SQB_NULL (0x6ull) 565fa8f86a1SJerin Jacob #define NIX_SQOPERR_SQB_FAULT (0x7ull) 566fa8f86a1SJerin Jacob #define NIX_SQOPERR_SQE_SIZEM1_ZERO (0x8ull) /* [CN10K, .) */ 567fa8f86a1SJerin Jacob 568fa8f86a1SJerin Jacob #define NIX_SQINT_LMT_ERR (0x0ull) 569fa8f86a1SJerin Jacob #define NIX_SQINT_MNQ_ERR (0x1ull) 570fa8f86a1SJerin Jacob #define NIX_SQINT_SEND_ERR (0x2ull) 571fa8f86a1SJerin Jacob #define NIX_SQINT_SQB_ALLOC_FAIL (0x3ull) 572fa8f86a1SJerin Jacob 573fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_GOOD (0x0ull) 574fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_SQ_CTX_FAULT (0x1ull) 575fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_SQ_CTX_POISON (0x2ull) 576fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_SQB_FAULT (0x3ull) 577fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_SQB_POISON (0x4ull) 578fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_SEND_HDR_ERR (0x5ull) 579fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_SEND_EXT_ERR (0x6ull) 580fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_JUMP_FAULT (0x7ull) 581fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_JUMP_POISON (0x8ull) 582fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_SEND_CRC_ERR (0x10ull) 583fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_SEND_IMM_ERR (0x11ull) 584fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_SEND_SG_ERR (0x12ull) 585fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_SEND_MEM_ERR (0x13ull) 586fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_INVALID_SUBDC (0x14ull) 587fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_SUBDC_ORDER_ERR (0x15ull) 588fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_DATA_FAULT (0x16ull) 589fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_DATA_POISON (0x17ull) 590fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_NPC_DROP_ACTION (0x20ull) 591fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_LOCK_VIOL (0x21ull) 592fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_NPC_UCAST_CHAN_ERR (0x22ull) 593fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_NPC_MCAST_CHAN_ERR (0x23ull) 594fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_NPC_MCAST_ABORT (0x24ull) 595fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_NPC_VTAG_PTR_ERR (0x25ull) 596fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_NPC_VTAG_SIZE_ERR (0x26ull) 597fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_SEND_MEM_FAULT (0x27ull) 598fa8f86a1SJerin Jacob #define NIX_SEND_STATUS_SEND_STATS_ERR (0x28ull) 599*9a01217eSSatha Rao #define NIX_SEND_STATUS_SEND_HDR_DROP (0x29ull) /* [CN20K, .) */ 600fa8f86a1SJerin Jacob 601fa8f86a1SJerin Jacob #define NIX_SENDSTATSALG_NOP (0x0ull) 602fa8f86a1SJerin Jacob #define NIX_SENDSTATSALG_ADD_PKT_CNT (0x1ull) 603fa8f86a1SJerin Jacob #define NIX_SENDSTATSALG_ADD_BYTE_CNT (0x2ull) 604fa8f86a1SJerin Jacob #define NIX_SENDSTATSALG_ADD_PKT_BYTE_CNT (0x3ull) 605fa8f86a1SJerin Jacob #define NIX_SENDSTATSALG_UPDATE_PKT_CNT_ON_DROP (0x4ull) 606fa8f86a1SJerin Jacob #define NIX_SENDSTATSALG_UPDATE_BYTE_CNT_ON_DROP (0x5ull) 607fa8f86a1SJerin Jacob #define NIX_SENDSTATSALG_UPDATE_PKT_BYTE_CNT_ON_DROP (0x6ull) 608fa8f86a1SJerin Jacob 609fa8f86a1SJerin Jacob #define NIX_SENDMEMDSZ_B64 (0x0ull) 610fa8f86a1SJerin Jacob #define NIX_SENDMEMDSZ_B32 (0x1ull) 611fa8f86a1SJerin Jacob #define NIX_SENDMEMDSZ_B16 (0x2ull) 612fa8f86a1SJerin Jacob #define NIX_SENDMEMDSZ_B8 (0x3ull) 613fa8f86a1SJerin Jacob 614fa8f86a1SJerin Jacob #define NIX_SENDMEMALG_SET (0x0ull) 615fa8f86a1SJerin Jacob #define NIX_SENDMEMALG_SETTSTMP (0x1ull) 616fa8f86a1SJerin Jacob #define NIX_SENDMEMALG_SETRSLT (0x2ull) 617fa8f86a1SJerin Jacob #define NIX_SENDMEMALG_ADD (0x8ull) 618fa8f86a1SJerin Jacob #define NIX_SENDMEMALG_SUB (0x9ull) 619fa8f86a1SJerin Jacob #define NIX_SENDMEMALG_ADDLEN (0xaull) 620fa8f86a1SJerin Jacob #define NIX_SENDMEMALG_SUBLEN (0xbull) 621fa8f86a1SJerin Jacob #define NIX_SENDMEMALG_ADDMBUF (0xcull) 622fa8f86a1SJerin Jacob #define NIX_SENDMEMALG_SUBMBUF (0xdull) 623fa8f86a1SJerin Jacob 624fa8f86a1SJerin Jacob #define NIX_SUBDC_NOP (0x0ull) 625fa8f86a1SJerin Jacob #define NIX_SUBDC_EXT (0x1ull) 626fa8f86a1SJerin Jacob #define NIX_SUBDC_CRC (0x2ull) 627fa8f86a1SJerin Jacob #define NIX_SUBDC_IMM (0x3ull) 628fa8f86a1SJerin Jacob #define NIX_SUBDC_SG (0x4ull) 629fa8f86a1SJerin Jacob #define NIX_SUBDC_MEM (0x5ull) 630fa8f86a1SJerin Jacob #define NIX_SUBDC_JUMP (0x6ull) 631fa8f86a1SJerin Jacob #define NIX_SUBDC_WORK (0x7ull) 632fa8f86a1SJerin Jacob #define NIX_SUBDC_SG2 (0x8ull) /* [CN10K, .) */ 633fa8f86a1SJerin Jacob #define NIX_SUBDC_AGE_AND_STATS (0x9ull) /* [CN10K, .) */ 634*9a01217eSSatha Rao #define NIX_SUBDC_COMPID (0xaull) /* [CN20K, .) */ 635fa8f86a1SJerin Jacob #define NIX_SUBDC_SOD (0xfull) 636fa8f86a1SJerin Jacob 637fa8f86a1SJerin Jacob #define NIX_STYPE_STF (0x0ull) 638fa8f86a1SJerin Jacob #define NIX_STYPE_STT (0x1ull) 639fa8f86a1SJerin Jacob #define NIX_STYPE_STP (0x2ull) 640fa8f86a1SJerin Jacob 641fa8f86a1SJerin Jacob #define NIX_RX_ACTIONOP_DROP (0x0ull) 642fa8f86a1SJerin Jacob #define NIX_RX_ACTIONOP_UCAST (0x1ull) 643fa8f86a1SJerin Jacob #define NIX_RX_ACTIONOP_UCAST_IPSEC (0x2ull) 644fa8f86a1SJerin Jacob #define NIX_RX_ACTIONOP_MCAST (0x3ull) 645fa8f86a1SJerin Jacob #define NIX_RX_ACTIONOP_RSS (0x4ull) 646fa8f86a1SJerin Jacob #define NIX_RX_ACTIONOP_PF_FUNC_DROP (0x5ull) 647fa8f86a1SJerin Jacob #define NIX_RX_ACTIONOP_MIRROR (0x6ull) 648b1f677d4SSatheesh Paul #define NIX_RX_ACTIONOP_DEFAULT (0xfull) 649fa8f86a1SJerin Jacob 650fa8f86a1SJerin Jacob #define NIX_RX_VTAGACTION_VTAG0_RELPTR (0x0ull) 651fa8f86a1SJerin Jacob #define NIX_RX_VTAGACTION_VTAG1_RELPTR (0x4ull) 652fa8f86a1SJerin Jacob #define NIX_RX_VTAGACTION_VTAG_VALID (0x1ull) 653fa8f86a1SJerin Jacob #define NIX_TX_VTAGACTION_VTAG0_RELPTR (sizeof(struct nix_inst_hdr_s) + 2 * 6) 654fa8f86a1SJerin Jacob #define NIX_TX_VTAGACTION_VTAG1_RELPTR \ 655fa8f86a1SJerin Jacob (sizeof(struct nix_inst_hdr_s) + 2 * 6 + 4) 656fa8f86a1SJerin Jacob #define NIX_RQINT_DROP (0x0ull) 657fa8f86a1SJerin Jacob #define NIX_RQINT_RED (0x1ull) 658fa8f86a1SJerin Jacob #define NIX_RQINT_R2 (0x2ull) 659fa8f86a1SJerin Jacob #define NIX_RQINT_R3 (0x3ull) 660fa8f86a1SJerin Jacob #define NIX_RQINT_R4 (0x4ull) 661fa8f86a1SJerin Jacob #define NIX_RQINT_R5 (0x5ull) 662fa8f86a1SJerin Jacob #define NIX_RQINT_R6 (0x6ull) 663fa8f86a1SJerin Jacob #define NIX_RQINT_R7 (0x7ull) 664fa8f86a1SJerin Jacob 665fa8f86a1SJerin Jacob #define NIX_MAXSQESZ_W16 (0x0ull) 666fa8f86a1SJerin Jacob #define NIX_MAXSQESZ_W8 (0x1ull) 667fa8f86a1SJerin Jacob 668fa8f86a1SJerin Jacob #define NIX_LSOALG_NOP (0x0ull) 669fa8f86a1SJerin Jacob #define NIX_LSOALG_ADD_SEGNUM (0x1ull) 670fa8f86a1SJerin Jacob #define NIX_LSOALG_ADD_PAYLEN (0x2ull) 671fa8f86a1SJerin Jacob #define NIX_LSOALG_ADD_OFFSET (0x3ull) 672fa8f86a1SJerin Jacob #define NIX_LSOALG_TCP_FLAGS (0x4ull) 673*9a01217eSSatha Rao #define NIX_LSOALG_ALT_FLAGS (0x5ull) /* [CN20K, .) */ 674*9a01217eSSatha Rao 675*9a01217eSSatha Rao #define NIX_METER_CFG_RFC_2698 (0x0ull) /* [CN20K, .) */ 676*9a01217eSSatha Rao #define NIX_METER_CFG_RFC_2697 (0x1ull) /* [CN20K, .) */ 677*9a01217eSSatha Rao #define NIX_METER_CFG_RFC_4115 (0x2ull) /* [CN20K, .) */ 678*9a01217eSSatha Rao 679*9a01217eSSatha Rao #define NIX_NDC_RX_PORT_AQ (0x0ull) 680*9a01217eSSatha Rao #define NIX_NDC_RX_PORT_C (0x1ull) 681*9a01217eSSatha Rao #define NIX_NDC_RX_PORT_CINT (0x2ull) 682*9a01217eSSatha Rao #define NIX_NDC_RX_PORT_MC (0x3ull) 683*9a01217eSSatha Rao #define NIX_NDC_RX_PORT_PKT (0x4ull) 684*9a01217eSSatha Rao #define NIX_NDC_RX_PORT_RQ (0x5ull) 685fa8f86a1SJerin Jacob 686fa8f86a1SJerin Jacob #define NIX_MNQERR_SQ_CTX_FAULT (0x0ull) 687fa8f86a1SJerin Jacob #define NIX_MNQERR_SQ_CTX_POISON (0x1ull) 688fa8f86a1SJerin Jacob #define NIX_MNQERR_SQB_FAULT (0x2ull) 689fa8f86a1SJerin Jacob #define NIX_MNQERR_SQB_POISON (0x3ull) 690fa8f86a1SJerin Jacob #define NIX_MNQERR_TOTAL_ERR (0x4ull) 691fa8f86a1SJerin Jacob #define NIX_MNQERR_LSO_ERR (0x5ull) 692fa8f86a1SJerin Jacob #define NIX_MNQERR_CQ_QUERY_ERR (0x6ull) 693fa8f86a1SJerin Jacob #define NIX_MNQERR_MAX_SQE_SIZE_ERR (0x7ull) 694fa8f86a1SJerin Jacob #define NIX_MNQERR_MAXLEN_ERR (0x8ull) 695fa8f86a1SJerin Jacob #define NIX_MNQERR_SQE_SIZEM1_ZERO (0x9ull) 696fa8f86a1SJerin Jacob 697fa8f86a1SJerin Jacob #define NIX_MDTYPE_RSVD (0x0ull) 698fa8f86a1SJerin Jacob #define NIX_MDTYPE_FLUSH (0x1ull) 699fa8f86a1SJerin Jacob #define NIX_MDTYPE_PMD (0x2ull) 700fa8f86a1SJerin Jacob 701fa8f86a1SJerin Jacob #define NIX_NDC_TX_PORT_LMT (0x0ull) 702fa8f86a1SJerin Jacob #define NIX_NDC_TX_PORT_ENQ (0x1ull) 703fa8f86a1SJerin Jacob #define NIX_NDC_TX_PORT_MNQ (0x2ull) 704fa8f86a1SJerin Jacob #define NIX_NDC_TX_PORT_DEQ (0x3ull) 705fa8f86a1SJerin Jacob #define NIX_NDC_TX_PORT_DMA (0x4ull) 706fa8f86a1SJerin Jacob #define NIX_NDC_TX_PORT_XQE (0x5ull) 707fa8f86a1SJerin Jacob 708fa8f86a1SJerin Jacob #define NIX_NDC_RX_PORT_AQ (0x0ull) 709fa8f86a1SJerin Jacob #define NIX_NDC_RX_PORT_CQ (0x1ull) 710fa8f86a1SJerin Jacob #define NIX_NDC_RX_PORT_CINT (0x2ull) 711fa8f86a1SJerin Jacob #define NIX_NDC_RX_PORT_MC (0x3ull) 712fa8f86a1SJerin Jacob #define NIX_NDC_RX_PORT_PKT (0x4ull) 713fa8f86a1SJerin Jacob #define NIX_NDC_RX_PORT_RQ (0x5ull) 714fa8f86a1SJerin Jacob 715fa8f86a1SJerin Jacob #define NIX_RE_OPCODE_RE_NONE (0x0ull) 716fa8f86a1SJerin Jacob #define NIX_RE_OPCODE_RE_PARTIAL (0x1ull) 717fa8f86a1SJerin Jacob #define NIX_RE_OPCODE_RE_JABBER (0x2ull) 718fa8f86a1SJerin Jacob #define NIX_RE_OPCODE_RE_FCS (0x7ull) 719fa8f86a1SJerin Jacob #define NIX_RE_OPCODE_RE_FCS_RCV (0x8ull) 720fa8f86a1SJerin Jacob #define NIX_RE_OPCODE_RE_TERMINATE (0x9ull) 721fa8f86a1SJerin Jacob #define NIX_RE_OPCODE_RE_RX_CTL (0xbull) 722fa8f86a1SJerin Jacob #define NIX_RE_OPCODE_RE_SKIP (0xcull) 723fa8f86a1SJerin Jacob #define NIX_RE_OPCODE_RE_DMAPKT (0xfull) 724fa8f86a1SJerin Jacob #define NIX_RE_OPCODE_UNDERSIZE (0x10ull) 725fa8f86a1SJerin Jacob #define NIX_RE_OPCODE_OVERSIZE (0x11ull) 726fa8f86a1SJerin Jacob #define NIX_RE_OPCODE_OL2_LENMISM (0x12ull) 727fa8f86a1SJerin Jacob 728fa8f86a1SJerin Jacob #define NIX_REDALG_STD (0x0ull) 729fa8f86a1SJerin Jacob #define NIX_REDALG_SEND (0x1ull) 730fa8f86a1SJerin Jacob #define NIX_REDALG_STALL (0x2ull) 731fa8f86a1SJerin Jacob #define NIX_REDALG_DISCARD (0x3ull) 732fa8f86a1SJerin Jacob 733fa8f86a1SJerin Jacob #define NIX_RX_BAND_PROF_ACTIONRESULT_PASS (0x0ull) /* [CN10K, .) */ 734fa8f86a1SJerin Jacob #define NIX_RX_BAND_PROF_ACTIONRESULT_DROP (0x1ull) /* [CN10K, .) */ 735fa8f86a1SJerin Jacob #define NIX_RX_BAND_PROF_ACTIONRESULT_RED (0x2ull) /* [CN10K, .) */ 736fa8f86a1SJerin Jacob 737fa8f86a1SJerin Jacob #define NIX_RX_BAND_PROF_LAYER_LEAF (0x0ull) /* [CN10K, .) */ 738cf8f6aa1SSunil Kumar Kori #define NIX_RX_BAND_PROF_LAYER_INVALID (0x1ull) /* [CN10K, .) */ 739cf8f6aa1SSunil Kumar Kori #define NIX_RX_BAND_PROF_LAYER_MIDDLE (0x2ull) /* [CN10K, .) */ 740cf8f6aa1SSunil Kumar Kori #define NIX_RX_BAND_PROF_LAYER_TOP (0x3ull) /* [CN10K, .) */ 741cf8f6aa1SSunil Kumar Kori #define NIX_RX_BAND_PROF_LAYER_MAX (0x4ull) /* [CN10K, .) */ 742cf8f6aa1SSunil Kumar Kori 743cf8f6aa1SSunil Kumar Kori #define NIX_RX_BAND_PROF_PC_MODE_VLAN (0x0ull) /* [CN10K, .) */ 744cf8f6aa1SSunil Kumar Kori #define NIX_RX_BAND_PROF_PC_MODE_DSCP (0x1ull) /* [CN10K, .) */ 745cf8f6aa1SSunil Kumar Kori #define NIX_RX_BAND_PROF_PC_MODE_GEN (0x2ull) /* [CN10K, .) */ 746cf8f6aa1SSunil Kumar Kori #define NIX_RX_BAND_PROF_PC_MODE_RSVD (0x3ull) /* [CN10K, .) */ 747fa8f86a1SJerin Jacob 748fa8f86a1SJerin Jacob #define NIX_RX_COLORRESULT_GREEN (0x0ull) /* [CN10K, .) */ 749fa8f86a1SJerin Jacob #define NIX_RX_COLORRESULT_YELLOW (0x1ull) /* [CN10K, .) */ 750fa8f86a1SJerin Jacob #define NIX_RX_COLORRESULT_RED (0x2ull) /* [CN10K, .) */ 751fa8f86a1SJerin Jacob 752fa8f86a1SJerin Jacob #define NIX_RX_MCOP_RQ (0x0ull) 753fa8f86a1SJerin Jacob #define NIX_RX_MCOP_RSS (0x1ull) 754fa8f86a1SJerin Jacob 755fa8f86a1SJerin Jacob #define NIX_RX_PERRCODE_NPC_RESULT_ERR (0x2ull) 756fa8f86a1SJerin Jacob #define NIX_RX_PERRCODE_MCAST_FAULT (0x4ull) 757fa8f86a1SJerin Jacob #define NIX_RX_PERRCODE_MIRROR_FAULT (0x5ull) 758fa8f86a1SJerin Jacob #define NIX_RX_PERRCODE_MCAST_POISON (0x6ull) 759fa8f86a1SJerin Jacob #define NIX_RX_PERRCODE_MIRROR_POISON (0x7ull) 760fa8f86a1SJerin Jacob #define NIX_RX_PERRCODE_DATA_FAULT (0x8ull) 761fa8f86a1SJerin Jacob #define NIX_RX_PERRCODE_MEMOUT (0x9ull) 762fa8f86a1SJerin Jacob #define NIX_RX_PERRCODE_BUFS_OFLOW (0xaull) 763fa8f86a1SJerin Jacob #define NIX_RX_PERRCODE_OL3_LEN (0x10ull) 764fa8f86a1SJerin Jacob #define NIX_RX_PERRCODE_OL4_LEN (0x11ull) 765fa8f86a1SJerin Jacob #define NIX_RX_PERRCODE_OL4_CHK (0x12ull) 766fa8f86a1SJerin Jacob #define NIX_RX_PERRCODE_OL4_PORT (0x13ull) 767fa8f86a1SJerin Jacob #define NIX_RX_PERRCODE_IL3_LEN (0x20ull) 768fa8f86a1SJerin Jacob #define NIX_RX_PERRCODE_IL4_LEN (0x21ull) 769fa8f86a1SJerin Jacob #define NIX_RX_PERRCODE_IL4_CHK (0x22ull) 770fa8f86a1SJerin Jacob #define NIX_RX_PERRCODE_IL4_PORT (0x23ull) 771fa8f86a1SJerin Jacob 772fa8f86a1SJerin Jacob #define NIX_SA_ALG_NON_MS (0x0ull) /* [CN10K, .) */ 773*9a01217eSSatha Rao #define NIX_SA_ALG_MS_31_28 (0x1ull) /* [CN10K, .) */ 774*9a01217eSSatha Rao #define NIX_SA_ALG_MS_27_25 (0x2ull) /* [CN10K, .) */ 775*9a01217eSSatha Rao #define NIX_SA_ALG_MS_28_25 (0x3ull) /* [CN10K, .) */ 776fa8f86a1SJerin Jacob 777fa8f86a1SJerin Jacob #define NIX_SENDCRCALG_CRC32 (0x0ull) 778fa8f86a1SJerin Jacob #define NIX_SENDCRCALG_CRC32C (0x1ull) 779fa8f86a1SJerin Jacob #define NIX_SENDCRCALG_ONES16 (0x2ull) 780*9a01217eSSatha Rao #define NIX_SENDCRCALG_INVCRC (0x3ull) /* [CN10K, .) */ 781fa8f86a1SJerin Jacob 782fa8f86a1SJerin Jacob #define NIX_SENDL3TYPE_NONE (0x0ull) 783fa8f86a1SJerin Jacob #define NIX_SENDL3TYPE_IP4 (0x2ull) 784fa8f86a1SJerin Jacob #define NIX_SENDL3TYPE_IP4_CKSUM (0x3ull) 785fa8f86a1SJerin Jacob #define NIX_SENDL3TYPE_IP6 (0x4ull) 786fa8f86a1SJerin Jacob 787fa8f86a1SJerin Jacob #define NIX_SENDL4TYPE_NONE (0x0ull) 788fa8f86a1SJerin Jacob #define NIX_SENDL4TYPE_TCP_CKSUM (0x1ull) 789fa8f86a1SJerin Jacob #define NIX_SENDL4TYPE_SCTP_CKSUM (0x2ull) 790fa8f86a1SJerin Jacob #define NIX_SENDL4TYPE_UDP_CKSUM (0x3ull) 791fa8f86a1SJerin Jacob 792fa8f86a1SJerin Jacob #define NIX_SENDLDTYPE_LDD (0x0ull) 793fa8f86a1SJerin Jacob #define NIX_SENDLDTYPE_LDT (0x1ull) 794fa8f86a1SJerin Jacob #define NIX_SENDLDTYPE_LDWB (0x2ull) 795fa8f86a1SJerin Jacob 796fa8f86a1SJerin Jacob #define NIX_XQESZ_W64 (0x0ull) 797fa8f86a1SJerin Jacob #define NIX_XQESZ_W16 (0x1ull) 798fa8f86a1SJerin Jacob 799fa8f86a1SJerin Jacob #define NIX_XQE_TYPE_INVALID (0x0ull) 800fa8f86a1SJerin Jacob #define NIX_XQE_TYPE_RX (0x1ull) 801fa8f86a1SJerin Jacob #define NIX_XQE_TYPE_RX_IPSECS (0x2ull) 802fa8f86a1SJerin Jacob #define NIX_XQE_TYPE_RX_IPSECH (0x3ull) 803fa8f86a1SJerin Jacob #define NIX_XQE_TYPE_RX_IPSECD (0x4ull) 804*9a01217eSSatha Rao #define NIX_XQE_TYPE_RX_VWQE (0x5ull) /* [CN10K, CN20K) */ 805fa8f86a1SJerin Jacob #define NIX_XQE_TYPE_RES_6 (0x6ull) 806fa8f86a1SJerin Jacob #define NIX_XQE_TYPE_RES_7 (0x7ull) 807fa8f86a1SJerin Jacob #define NIX_XQE_TYPE_SEND (0x8ull) 808fa8f86a1SJerin Jacob #define NIX_XQE_TYPE_RES_9 (0x9ull) 809fa8f86a1SJerin Jacob #define NIX_XQE_TYPE_RES_A (0xAull) 810fa8f86a1SJerin Jacob #define NIX_XQE_TYPE_RES_B (0xBull) 811fa8f86a1SJerin Jacob #define NIX_XQE_TYPE_RES_C (0xCull) 812fa8f86a1SJerin Jacob #define NIX_XQE_TYPE_RES_D (0xDull) 813fa8f86a1SJerin Jacob #define NIX_XQE_TYPE_RES_E (0xEull) 814fa8f86a1SJerin Jacob #define NIX_XQE_TYPE_RES_F (0xFull) 815fa8f86a1SJerin Jacob 816fa8f86a1SJerin Jacob #define NIX_TX_VTAGOP_NOP (0x0ull) 817fa8f86a1SJerin Jacob #define NIX_TX_VTAGOP_INSERT (0x1ull) 818fa8f86a1SJerin Jacob #define NIX_TX_VTAGOP_REPLACE (0x2ull) 819fa8f86a1SJerin Jacob 820fa8f86a1SJerin Jacob #define NIX_VTAGSIZE_T4 (0x0ull) 821fa8f86a1SJerin Jacob #define NIX_VTAGSIZE_T8 (0x1ull) 822fa8f86a1SJerin Jacob 823fa8f86a1SJerin Jacob #define NIX_TXLAYER_OL3 (0x0ull) 824fa8f86a1SJerin Jacob #define NIX_TXLAYER_OL4 (0x1ull) 825fa8f86a1SJerin Jacob #define NIX_TXLAYER_IL3 (0x2ull) 826fa8f86a1SJerin Jacob #define NIX_TXLAYER_IL4 (0x3ull) 827fa8f86a1SJerin Jacob 828fa8f86a1SJerin Jacob #define NIX_TX_ACTIONOP_DROP (0x0ull) 829fa8f86a1SJerin Jacob #define NIX_TX_ACTIONOP_UCAST_DEFAULT (0x1ull) 830fa8f86a1SJerin Jacob #define NIX_TX_ACTIONOP_UCAST_CHAN (0x2ull) 831fa8f86a1SJerin Jacob #define NIX_TX_ACTIONOP_MCAST (0x3ull) 832fa8f86a1SJerin Jacob #define NIX_TX_ACTIONOP_DROP_VIOL (0x5ull) 833fa8f86a1SJerin Jacob 834fa8f86a1SJerin Jacob #define NIX_AQ_COMP_NOTDONE (0x0ull) 835fa8f86a1SJerin Jacob #define NIX_AQ_COMP_GOOD (0x1ull) 836fa8f86a1SJerin Jacob #define NIX_AQ_COMP_SWERR (0x2ull) 837fa8f86a1SJerin Jacob #define NIX_AQ_COMP_CTX_POISON (0x3ull) 838fa8f86a1SJerin Jacob #define NIX_AQ_COMP_CTX_FAULT (0x4ull) 839fa8f86a1SJerin Jacob #define NIX_AQ_COMP_LOCKERR (0x5ull) 840fa8f86a1SJerin Jacob #define NIX_AQ_COMP_SQB_ALLOC_FAIL (0x6ull) 841fa8f86a1SJerin Jacob 842fa8f86a1SJerin Jacob #define NIX_AF_INT_VEC_RVU (0x0ull) 843fa8f86a1SJerin Jacob #define NIX_AF_INT_VEC_GEN (0x1ull) 844fa8f86a1SJerin Jacob #define NIX_AF_INT_VEC_AQ_DONE (0x2ull) 845fa8f86a1SJerin Jacob #define NIX_AF_INT_VEC_AF_ERR (0x3ull) 846fa8f86a1SJerin Jacob #define NIX_AF_INT_VEC_POISON (0x4ull) 847fa8f86a1SJerin Jacob 848fa8f86a1SJerin Jacob #define NIX_AQINT_GEN_RX_MCAST_DROP (0x0ull) 849fa8f86a1SJerin Jacob #define NIX_AQINT_GEN_RX_MIRROR_DROP (0x1ull) 850fa8f86a1SJerin Jacob #define NIX_AQINT_GEN_TL1_DRAIN (0x3ull) 851fa8f86a1SJerin Jacob #define NIX_AQINT_GEN_SMQ_FLUSH_DONE (0x4ull) 852fa8f86a1SJerin Jacob 853fa8f86a1SJerin Jacob #define NIX_AQ_INSTOP_NOP (0x0ull) 854fa8f86a1SJerin Jacob #define NIX_AQ_INSTOP_INIT (0x1ull) 855fa8f86a1SJerin Jacob #define NIX_AQ_INSTOP_WRITE (0x2ull) 856fa8f86a1SJerin Jacob #define NIX_AQ_INSTOP_READ (0x3ull) 857fa8f86a1SJerin Jacob #define NIX_AQ_INSTOP_LOCK (0x4ull) 858fa8f86a1SJerin Jacob #define NIX_AQ_INSTOP_UNLOCK (0x5ull) 859fa8f86a1SJerin Jacob 860fa8f86a1SJerin Jacob #define NIX_AQ_CTYPE_RQ (0x0ull) 861fa8f86a1SJerin Jacob #define NIX_AQ_CTYPE_SQ (0x1ull) 862fa8f86a1SJerin Jacob #define NIX_AQ_CTYPE_CQ (0x2ull) 863fa8f86a1SJerin Jacob #define NIX_AQ_CTYPE_MCE (0x3ull) 864fa8f86a1SJerin Jacob #define NIX_AQ_CTYPE_RSS (0x4ull) 865fa8f86a1SJerin Jacob #define NIX_AQ_CTYPE_DYNO (0x5ull) 866fa8f86a1SJerin Jacob #define NIX_AQ_CTYPE_BAND_PROF (0x6ull) /* [CN10K, .) */ 867fa8f86a1SJerin Jacob 868*9a01217eSSatha Rao #define NIX_CQERRINT_DOOR_ERR (0x0ull) 869*9a01217eSSatha Rao #define NIX_CQERRINT_WR_FULL (0x1ull) 870*9a01217eSSatha Rao #define NIX_CQERRINT_CQE_FAULT (0x2ull) 871*9a01217eSSatha Rao #define NIX_CQERRINT_CPT_DROP (0x3ull) /* [CN10KB, .) */ 872*9a01217eSSatha Rao 873fa8f86a1SJerin Jacob #define NIX_COLORRESULT_GREEN (0x0ull) 874fa8f86a1SJerin Jacob #define NIX_COLORRESULT_YELLOW (0x1ull) 875fa8f86a1SJerin Jacob #define NIX_COLORRESULT_RED_SEND (0x2ull) 876fa8f86a1SJerin Jacob #define NIX_COLORRESULT_RED_DROP (0x3ull) 877fa8f86a1SJerin Jacob 878fa8f86a1SJerin Jacob #define NIX_CHAN_LBKX_CHX(a, b) \ 879fa8f86a1SJerin Jacob (0x000ull | ((uint64_t)(a) << 8) | (uint64_t)(b)) 880fa8f86a1SJerin Jacob #define NIX_CHAN_CPT_CH_END (0x4ffull) /* [CN10K, .) */ 8814968b362SSatheesh Paul #define NIX_CHAN_CPT_CH_START (0x800ull) /* [CN10K, .) */ 882fa8f86a1SJerin Jacob #define NIX_CHAN_R4 (0x400ull) /* [CN9K, CN10K) */ 883fa8f86a1SJerin Jacob #define NIX_CHAN_R5 (0x500ull) 884fa8f86a1SJerin Jacob #define NIX_CHAN_R6 (0x600ull) 885fa8f86a1SJerin Jacob #define NIX_CHAN_SDP_CH_END (0x7ffull) 886fa8f86a1SJerin Jacob #define NIX_CHAN_SDP_CH_START (0x700ull) 887fa8f86a1SJerin Jacob /* [CN9K, CN10K) */ 888fa8f86a1SJerin Jacob #define NIX_CHAN_CGXX_LMACX_CHX(a, b, c) \ 889fa8f86a1SJerin Jacob (0x800ull | ((uint64_t)(a) << 8) | ((uint64_t)(b) << 4) | (uint64_t)(c)) 890fa8f86a1SJerin Jacob /* [CN10K, .) */ 891fa8f86a1SJerin Jacob #define NIX_CHAN_RPMX_LMACX_CHX(a, b, c) \ 892fa8f86a1SJerin Jacob (0x800ull | ((uint64_t)(a) << 8) | ((uint64_t)(b) << 4) | (uint64_t)(c)) 893fa8f86a1SJerin Jacob 894fa8f86a1SJerin Jacob #define NIX_INTF_SDP (0x4ull) 895fa8f86a1SJerin Jacob #define NIX_INTF_CGX0 (0x0ull) /* [CN9K, CN10K) */ 896fa8f86a1SJerin Jacob #define NIX_INTF_CGX1 (0x1ull) /* [CN9K, CN10K) */ 897fa8f86a1SJerin Jacob #define NIX_INTF_CGX2 (0x2ull) /* [CN9K, CN10K) */ 898fa8f86a1SJerin Jacob #define NIX_INTF_RPM0 (0x0ull) /* [CN10K, .) */ 899fa8f86a1SJerin Jacob #define NIX_INTF_RPM1 (0x1ull) /* [CN10K, .) */ 900fa8f86a1SJerin Jacob #define NIX_INTF_RPM2 (0x2ull) /* [CN10K, .) */ 901fa8f86a1SJerin Jacob #define NIX_INTF_LBK0 (0x3ull) 902fa8f86a1SJerin Jacob #define NIX_INTF_CPT0 (0x5ull) /* [CN10K, .) */ 903fa8f86a1SJerin Jacob 904fa8f86a1SJerin Jacob #define NIX_LINK_SDP (0xdull) /* [CN10K, .) */ 905fa8f86a1SJerin Jacob #define NIX_LINK_CPT (0xeull) /* [CN10K, .) */ 906fa8f86a1SJerin Jacob #define NIX_LINK_MC (0xfull) /* [CN10K, .) */ 907fa8f86a1SJerin Jacob /* [CN10K, .) */ 908fa8f86a1SJerin Jacob #define NIX_LINK_RPMX_LMACX(a, b) \ 909fa8f86a1SJerin Jacob (0x00ull | ((uint64_t)(a) << 2) | (uint64_t)(b)) 910fa8f86a1SJerin Jacob #define NIX_LINK_LBK0 (0xcull) 911fa8f86a1SJerin Jacob 912fa8f86a1SJerin Jacob #define NIX_LF_INT_VEC_GINT (0x80ull) 913fa8f86a1SJerin Jacob #define NIX_LF_INT_VEC_ERR_INT (0x81ull) 914fa8f86a1SJerin Jacob #define NIX_LF_INT_VEC_POISON (0x82ull) 915fa8f86a1SJerin Jacob #define NIX_LF_INT_VEC_QINT_END (0x3full) 916fa8f86a1SJerin Jacob #define NIX_LF_INT_VEC_QINT_START (0x0ull) 917fa8f86a1SJerin Jacob #define NIX_LF_INT_VEC_CINT_END (0x7full) 918fa8f86a1SJerin Jacob #define NIX_LF_INT_VEC_CINT_START (0x40ull) 919fa8f86a1SJerin Jacob 920fa8f86a1SJerin Jacob #define NIX_INTF_RX (0x0ull) 921fa8f86a1SJerin Jacob #define NIX_INTF_TX (0x1ull) 922fa8f86a1SJerin Jacob 923fa8f86a1SJerin Jacob /* Enums definitions */ 924fa8f86a1SJerin Jacob 925fa8f86a1SJerin Jacob /* Structures definitions */ 926fa8f86a1SJerin Jacob 927fa8f86a1SJerin Jacob /* NIX aging and send stats subdescriptor structure */ 928fa8f86a1SJerin Jacob struct nix_age_and_send_stats_s { 929fa8f86a1SJerin Jacob uint64_t threshold : 29; 930fa8f86a1SJerin Jacob uint64_t latency_drop : 1; 931fa8f86a1SJerin Jacob uint64_t aging : 1; 932*9a01217eSSatha Rao uint64_t coas_en : 1; 933fa8f86a1SJerin Jacob uint64_t ooffset : 12; 934fa8f86a1SJerin Jacob uint64_t ioffset : 12; 935fa8f86a1SJerin Jacob uint64_t sel : 1; 936fa8f86a1SJerin Jacob uint64_t alg : 3; 937fa8f86a1SJerin Jacob uint64_t subdc : 4; 938fa8f86a1SJerin Jacob uint64_t addr : 64; /* W1 */ 939fa8f86a1SJerin Jacob }; 940fa8f86a1SJerin Jacob 941fa8f86a1SJerin Jacob /* NIX admin queue instruction structure */ 942fa8f86a1SJerin Jacob struct nix_aq_inst_s { 943fa8f86a1SJerin Jacob uint64_t op : 4; 944fa8f86a1SJerin Jacob uint64_t ctype : 4; 945*9a01217eSSatha Rao uint64_t lf : 9; 946*9a01217eSSatha Rao uint64_t rsvd_23_17 : 7; 947fa8f86a1SJerin Jacob uint64_t cindex : 20; 948fa8f86a1SJerin Jacob uint64_t rsvd_62_44 : 19; 949fa8f86a1SJerin Jacob uint64_t doneint : 1; 950fa8f86a1SJerin Jacob uint64_t res_addr : 64; /* W1 */ 951fa8f86a1SJerin Jacob }; 952fa8f86a1SJerin Jacob 953fa8f86a1SJerin Jacob /* NIX admin queue result structure */ 954fa8f86a1SJerin Jacob struct nix_aq_res_s { 955fa8f86a1SJerin Jacob uint64_t op : 4; 956fa8f86a1SJerin Jacob uint64_t ctype : 4; 957fa8f86a1SJerin Jacob uint64_t compcode : 8; 958fa8f86a1SJerin Jacob uint64_t doneint : 1; 959fa8f86a1SJerin Jacob uint64_t rsvd_63_17 : 47; 960fa8f86a1SJerin Jacob uint64_t rsvd_127_64 : 64; /* W1 */ 961fa8f86a1SJerin Jacob }; 962fa8f86a1SJerin Jacob 963fa8f86a1SJerin Jacob /* NIX bandwidth profile structure */ 964fa8f86a1SJerin Jacob struct nix_band_prof_s { 965*9a01217eSSatha Rao uint64_t pc_mode : 2; /* W0 */ 966fa8f86a1SJerin Jacob uint64_t icolor : 2; 967fa8f86a1SJerin Jacob uint64_t tnl_ena : 1; 968fa8f86a1SJerin Jacob uint64_t rsvd_7_5 : 3; 969fa8f86a1SJerin Jacob uint64_t peir_exponent : 5; 970fa8f86a1SJerin Jacob uint64_t rsvd_15_13 : 3; 971fa8f86a1SJerin Jacob uint64_t pebs_exponent : 5; 972fa8f86a1SJerin Jacob uint64_t rsvd_23_21 : 3; 973fa8f86a1SJerin Jacob uint64_t cir_exponent : 5; 974fa8f86a1SJerin Jacob uint64_t rsvd_31_29 : 3; 975fa8f86a1SJerin Jacob uint64_t cbs_exponent : 5; 976fa8f86a1SJerin Jacob uint64_t rsvd_39_37 : 3; 977fa8f86a1SJerin Jacob uint64_t peir_mantissa : 8; 978fa8f86a1SJerin Jacob uint64_t pebs_mantissa : 8; 979fa8f86a1SJerin Jacob uint64_t cir_mantissa : 8; 980*9a01217eSSatha Rao uint64_t cbs_mantissa : 8; /* W1 */ 981fa8f86a1SJerin Jacob uint64_t lmode : 1; 982fa8f86a1SJerin Jacob uint64_t l_sellect : 3; 983fa8f86a1SJerin Jacob uint64_t rdiv : 4; 984fa8f86a1SJerin Jacob uint64_t adjust_exponent : 5; 985fa8f86a1SJerin Jacob uint64_t rsvd_86_85 : 2; 986fa8f86a1SJerin Jacob uint64_t adjust_mantissa : 9; 987fa8f86a1SJerin Jacob uint64_t gc_action : 2; 988fa8f86a1SJerin Jacob uint64_t yc_action : 2; 989fa8f86a1SJerin Jacob uint64_t rc_action : 2; 990fa8f86a1SJerin Jacob uint64_t meter_algo : 2; 991*9a01217eSSatha Rao uint64_t band_prof_id : 11; 992*9a01217eSSatha Rao uint64_t rsvd_118_115 : 4; 993fa8f86a1SJerin Jacob uint64_t hl_en : 1; 994fa8f86a1SJerin Jacob uint64_t rsvd_127_120 : 8; 995*9a01217eSSatha Rao uint64_t ts : 48; /* W2 */ 996fa8f86a1SJerin Jacob uint64_t rsvd_191_176 : 16; 997*9a01217eSSatha Rao uint64_t pe_accum : 32; /* W3 */ 998fa8f86a1SJerin Jacob uint64_t c_accum : 32; 999*9a01217eSSatha Rao uint64_t green_pkt_pass : 48; /* W4 */ 1000fa8f86a1SJerin Jacob uint64_t rsvd_319_304 : 16; 1001*9a01217eSSatha Rao uint64_t yellow_pkt_pass : 48; /* W5 */ 1002fa8f86a1SJerin Jacob uint64_t rsvd_383_368 : 16; 1003*9a01217eSSatha Rao uint64_t red_pkt_pass : 48; /* W6 */ 1004fa8f86a1SJerin Jacob uint64_t rsvd_447_432 : 16; 1005*9a01217eSSatha Rao uint64_t green_octs_pass : 48; /* W7 */ 1006fa8f86a1SJerin Jacob uint64_t rsvd_511_496 : 16; 1007*9a01217eSSatha Rao uint64_t yellow_octs_pass : 48; /* W8 */ 1008fa8f86a1SJerin Jacob uint64_t rsvd_575_560 : 16; 1009*9a01217eSSatha Rao uint64_t red_octs_pass : 48; /* W9 */ 1010fa8f86a1SJerin Jacob uint64_t rsvd_639_624 : 16; 1011*9a01217eSSatha Rao uint64_t green_pkt_drop : 48; /* W10 */ 1012fa8f86a1SJerin Jacob uint64_t rsvd_703_688 : 16; 1013*9a01217eSSatha Rao uint64_t yellow_pkt_drop : 48; /* W11 */ 1014fa8f86a1SJerin Jacob uint64_t rsvd_767_752 : 16; 1015*9a01217eSSatha Rao uint64_t red_pkt_drop : 48; /* W12 */ 1016fa8f86a1SJerin Jacob uint64_t rsvd_831_816 : 16; 1017*9a01217eSSatha Rao uint64_t green_octs_drop : 48; /* W13 */ 1018fa8f86a1SJerin Jacob uint64_t rsvd_895_880 : 16; 1019*9a01217eSSatha Rao uint64_t yellow_octs_drop : 48; /* W14 */ 1020fa8f86a1SJerin Jacob uint64_t rsvd_959_944 : 16; 1021*9a01217eSSatha Rao uint64_t red_octs_drop : 48; /* W15 */ 1022fa8f86a1SJerin Jacob uint64_t rsvd_1023_1008 : 16; 1023fa8f86a1SJerin Jacob }; 1024fa8f86a1SJerin Jacob 1025fa8f86a1SJerin Jacob /* NIX completion interrupt context hardware structure */ 1026fa8f86a1SJerin Jacob struct nix_cint_hw_s { 1027fa8f86a1SJerin Jacob uint64_t ecount : 32; 1028fa8f86a1SJerin Jacob uint64_t qcount : 16; 1029fa8f86a1SJerin Jacob uint64_t intr : 1; 1030fa8f86a1SJerin Jacob uint64_t ena : 1; 1031fa8f86a1SJerin Jacob uint64_t timer_idx : 8; 1032fa8f86a1SJerin Jacob uint64_t rsvd_63_58 : 6; 1033fa8f86a1SJerin Jacob uint64_t ecount_wait : 32; 1034fa8f86a1SJerin Jacob uint64_t qcount_wait : 16; 1035fa8f86a1SJerin Jacob uint64_t time_wait : 8; 1036fa8f86a1SJerin Jacob uint64_t rsvd_127_120 : 8; 1037fa8f86a1SJerin Jacob }; 1038fa8f86a1SJerin Jacob 1039fa8f86a1SJerin Jacob /* NIX completion queue entry header structure */ 1040fa8f86a1SJerin Jacob struct nix_cqe_hdr_s { 1041fa8f86a1SJerin Jacob uint64_t tag : 32; 1042fa8f86a1SJerin Jacob uint64_t q : 20; 1043*9a01217eSSatha Rao uint64_t long_send_comp : 1; 1044*9a01217eSSatha Rao uint64_t rsvd_57_53 : 5; 1045fa8f86a1SJerin Jacob uint64_t node : 2; 1046fa8f86a1SJerin Jacob uint64_t cqe_type : 4; 1047fa8f86a1SJerin Jacob }; 1048fa8f86a1SJerin Jacob 1049*9a01217eSSatha Rao /* [CN20K, .) NIX Completion queue context structure */ 1050*9a01217eSSatha Rao struct nix_cn20k_cq_ctx_s { 1051*9a01217eSSatha Rao uint64_t base : 64; /* W0 */ 1052*9a01217eSSatha Rao uint64_t lbp_ena : 1; /* W1 */ 1053*9a01217eSSatha Rao uint64_t lbpid_low : 3; 1054*9a01217eSSatha Rao uint64_t bp_ena : 1; 1055*9a01217eSSatha Rao uint64_t lbpid_med : 3; 1056*9a01217eSSatha Rao uint64_t bpid : 9; 1057*9a01217eSSatha Rao uint64_t lbpid_high : 3; 1058*9a01217eSSatha Rao uint64_t qint_idx : 7; 1059*9a01217eSSatha Rao uint64_t cq_err : 1; 1060*9a01217eSSatha Rao uint64_t cint_idx : 7; 1061*9a01217eSSatha Rao uint64_t avg_con : 9; 1062*9a01217eSSatha Rao uint64_t wrptr : 20; 1063*9a01217eSSatha Rao uint64_t tail : 20; /* W2 */ 1064*9a01217eSSatha Rao uint64_t head : 20; 1065*9a01217eSSatha Rao uint64_t avg_level : 8; 1066*9a01217eSSatha Rao uint64_t update_time : 16; 1067*9a01217eSSatha Rao uint64_t bp : 8; /* W3 */ 1068*9a01217eSSatha Rao uint64_t drop : 8; 1069*9a01217eSSatha Rao uint64_t drop_ena : 1; 1070*9a01217eSSatha Rao uint64_t ena : 1; 1071*9a01217eSSatha Rao uint64_t cpt_drop_err_en : 1; 1072*9a01217eSSatha Rao uint64_t reserved_211_211 : 1; 1073*9a01217eSSatha Rao uint64_t msh_dst : 11; 1074*9a01217eSSatha Rao uint64_t msh_valid : 1; 1075*9a01217eSSatha Rao uint64_t stash_thresh : 4; 1076*9a01217eSSatha Rao uint64_t lbp_frac : 4; 1077*9a01217eSSatha Rao uint64_t caching : 1; 1078*9a01217eSSatha Rao uint64_t stashing : 1; 1079*9a01217eSSatha Rao uint64_t reserved_234_235 : 2; 1080*9a01217eSSatha Rao uint64_t qsize : 4; 1081*9a01217eSSatha Rao uint64_t cq_err_int : 8; 1082*9a01217eSSatha Rao uint64_t cq_err_int_ena : 8; 1083*9a01217eSSatha Rao uint64_t bpid_ext : 2; /* W4 */ 1084*9a01217eSSatha Rao uint64_t reserved_258_259 : 2; 1085*9a01217eSSatha Rao uint64_t lbpid_ext : 2; 1086*9a01217eSSatha Rao uint64_t reserved_262_319 : 58; 1087*9a01217eSSatha Rao uint64_t reserved_320_383 : 64; /* W5 */ 1088*9a01217eSSatha Rao uint64_t reserved_384_447 : 64; /* W6 */ 1089*9a01217eSSatha Rao uint64_t reserved_448_511 : 64; /* W7 */ 1090*9a01217eSSatha Rao }; 1091*9a01217eSSatha Rao 1092fa8f86a1SJerin Jacob /* NIX completion queue context structure */ 1093fa8f86a1SJerin Jacob struct nix_cq_ctx_s { 1094fa8f86a1SJerin Jacob uint64_t base : 64; /* W0 */ 10958bc924cfSNithin Dabilpuram uint64_t lbp_ena : 1; 10968bc924cfSNithin Dabilpuram uint64_t lbpid_low : 3; 1097fa8f86a1SJerin Jacob uint64_t bp_ena : 1; 10988bc924cfSNithin Dabilpuram uint64_t lbpid_med : 3; 1099fa8f86a1SJerin Jacob uint64_t bpid : 9; 11008bc924cfSNithin Dabilpuram uint64_t lbpid_high : 3; 1101fa8f86a1SJerin Jacob uint64_t qint_idx : 7; 1102fa8f86a1SJerin Jacob uint64_t cq_err : 1; 1103fa8f86a1SJerin Jacob uint64_t cint_idx : 7; 1104fa8f86a1SJerin Jacob uint64_t avg_con : 9; 1105fa8f86a1SJerin Jacob uint64_t wrptr : 20; 1106fa8f86a1SJerin Jacob uint64_t tail : 20; 1107fa8f86a1SJerin Jacob uint64_t head : 20; 1108fa8f86a1SJerin Jacob uint64_t avg_level : 8; 1109fa8f86a1SJerin Jacob uint64_t update_time : 16; 1110fa8f86a1SJerin Jacob uint64_t bp : 8; 1111fa8f86a1SJerin Jacob uint64_t drop : 8; 1112fa8f86a1SJerin Jacob uint64_t drop_ena : 1; 1113fa8f86a1SJerin Jacob uint64_t ena : 1; 11148bc924cfSNithin Dabilpuram uint64_t cpt_drop_err_en : 1; 11158bc924cfSNithin Dabilpuram uint64_t rsvd_211 : 1; 11168bc924cfSNithin Dabilpuram uint64_t substream : 12; 11178bc924cfSNithin Dabilpuram uint64_t stash_thresh : 4; 11188bc924cfSNithin Dabilpuram uint64_t lbp_frac : 4; 1119fa8f86a1SJerin Jacob uint64_t caching : 1; 11208bc924cfSNithin Dabilpuram uint64_t stashing : 1; 11218bc924cfSNithin Dabilpuram uint64_t rsvd_235_234 : 2; 1122fa8f86a1SJerin Jacob uint64_t qsize : 4; 1123fa8f86a1SJerin Jacob uint64_t cq_err_int : 8; 1124fa8f86a1SJerin Jacob uint64_t cq_err_int_ena : 8; 1125fa8f86a1SJerin Jacob }; 1126fa8f86a1SJerin Jacob 1127fa8f86a1SJerin Jacob /* NIX instruction header structure */ 1128fa8f86a1SJerin Jacob struct nix_inst_hdr_s { 1129fa8f86a1SJerin Jacob uint64_t pf_func : 16; 1130fa8f86a1SJerin Jacob uint64_t sq : 20; 1131fa8f86a1SJerin Jacob uint64_t rsvd_63_36 : 28; 1132fa8f86a1SJerin Jacob }; 1133fa8f86a1SJerin Jacob 1134fa8f86a1SJerin Jacob /* NIX i/o virtual address structure */ 1135fa8f86a1SJerin Jacob struct nix_iova_s { 1136fa8f86a1SJerin Jacob uint64_t addr : 64; /* W0 */ 1137fa8f86a1SJerin Jacob }; 1138fa8f86a1SJerin Jacob 1139fa8f86a1SJerin Jacob /* NIX IPsec dynamic ordering counter structure */ 1140fa8f86a1SJerin Jacob struct nix_ipsec_dyno_s { 1141fa8f86a1SJerin Jacob uint32_t count : 32; /* W0 */ 1142fa8f86a1SJerin Jacob }; 1143fa8f86a1SJerin Jacob 1144fa8f86a1SJerin Jacob /* NIX memory value structure */ 1145fa8f86a1SJerin Jacob struct nix_mem_result_s { 1146fa8f86a1SJerin Jacob uint64_t v : 1; 1147fa8f86a1SJerin Jacob uint64_t color : 2; 1148fa8f86a1SJerin Jacob uint64_t rsvd_63_3 : 61; 1149fa8f86a1SJerin Jacob }; 1150fa8f86a1SJerin Jacob 1151fa8f86a1SJerin Jacob /* NIX statistics operation write data structure */ 1152fa8f86a1SJerin Jacob struct nix_op_q_wdata_s { 1153fa8f86a1SJerin Jacob uint64_t rsvd_31_0 : 32; 1154fa8f86a1SJerin Jacob uint64_t q : 20; 1155fa8f86a1SJerin Jacob uint64_t rsvd_63_52 : 12; 1156fa8f86a1SJerin Jacob }; 1157fa8f86a1SJerin Jacob 1158fa8f86a1SJerin Jacob /* NIX queue interrupt context hardware structure */ 1159fa8f86a1SJerin Jacob struct nix_qint_hw_s { 1160fa8f86a1SJerin Jacob uint32_t count : 22; 1161fa8f86a1SJerin Jacob uint32_t rsvd_30_22 : 9; 1162fa8f86a1SJerin Jacob uint32_t ena : 1; 1163fa8f86a1SJerin Jacob }; 1164fa8f86a1SJerin Jacob 1165*9a01217eSSatha Rao /* [CN20K, .) NIX receive queue context structure */ 1166*9a01217eSSatha Rao struct nix_cn20k_rq_ctx_hw_s { 1167*9a01217eSSatha Rao uint64_t ena : 1; /* W0 */ 1168*9a01217eSSatha Rao uint64_t sso_ena : 1; 1169*9a01217eSSatha Rao uint64_t ipsech_ena : 1; 1170*9a01217eSSatha Rao uint64_t ena_wqwd : 1; 1171*9a01217eSSatha Rao uint64_t cq : 20; 1172*9a01217eSSatha Rao uint64_t rsvd_34_24 : 11; 1173*9a01217eSSatha Rao uint64_t port_il4_dis : 1; 1174*9a01217eSSatha Rao uint64_t port_ol4_dis : 1; 1175*9a01217eSSatha Rao uint64_t lenerr_dis : 1; 1176*9a01217eSSatha Rao uint64_t csum_il4_dis : 1; 1177*9a01217eSSatha Rao uint64_t csum_ol4_dis : 1; 1178*9a01217eSSatha Rao uint64_t len_il4_dis : 1; 1179*9a01217eSSatha Rao uint64_t len_il3_dis : 1; 1180*9a01217eSSatha Rao uint64_t len_ol4_dis : 1; 1181*9a01217eSSatha Rao uint64_t len_ol3_dis : 1; 1182*9a01217eSSatha Rao uint64_t wqe_aura : 20; 1183*9a01217eSSatha Rao uint64_t spb_aura : 20; /* W1 */ 1184*9a01217eSSatha Rao uint64_t lpb_aura : 20; 1185*9a01217eSSatha Rao uint64_t sso_grp : 10; 1186*9a01217eSSatha Rao uint64_t sso_tt : 2; 1187*9a01217eSSatha Rao uint64_t pb_caching : 2; 1188*9a01217eSSatha Rao uint64_t wqe_caching : 1; 1189*9a01217eSSatha Rao uint64_t xqe_drop_ena : 1; 1190*9a01217eSSatha Rao uint64_t spb_drop_ena : 1; 1191*9a01217eSSatha Rao uint64_t lpb_drop_ena : 1; 1192*9a01217eSSatha Rao uint64_t pb_stashing : 1; 1193*9a01217eSSatha Rao uint64_t ipsecd_drop_en : 1; 1194*9a01217eSSatha Rao uint64_t chi_ena : 1; 1195*9a01217eSSatha Rao uint64_t rsvd_127_125 : 3; 1196*9a01217eSSatha Rao uint64_t band_prof_id_l : 10; /* W2 */ 1197*9a01217eSSatha Rao uint64_t sso_drop_ena : 1; 1198*9a01217eSSatha Rao uint64_t policer_ena : 1; 1199*9a01217eSSatha Rao uint64_t spb_sizem1 : 6; 1200*9a01217eSSatha Rao uint64_t wqe_skip : 2; 1201*9a01217eSSatha Rao uint64_t spb_high_sizem1 : 3; 1202*9a01217eSSatha Rao uint64_t spb_ena : 1; 1203*9a01217eSSatha Rao uint64_t lpb_sizem1 : 12; 1204*9a01217eSSatha Rao uint64_t first_skip : 7; 1205*9a01217eSSatha Rao uint64_t sso_bp_ena : 1; 1206*9a01217eSSatha Rao uint64_t later_skip : 6; 1207*9a01217eSSatha Rao uint64_t xqe_imm_size : 6; 1208*9a01217eSSatha Rao uint64_t band_prof_id_h : 4; 1209*9a01217eSSatha Rao uint64_t rsvd_189_188 : 2; 1210*9a01217eSSatha Rao uint64_t xqe_imm_copy : 1; 1211*9a01217eSSatha Rao uint64_t xqe_hdr_split : 1; 1212*9a01217eSSatha Rao uint64_t xqe_drop : 8; /* W3 */ 1213*9a01217eSSatha Rao uint64_t xqe_pass : 8; 1214*9a01217eSSatha Rao uint64_t wqe_pool_drop : 8; 1215*9a01217eSSatha Rao uint64_t wqe_pool_pass : 8; 1216*9a01217eSSatha Rao uint64_t spb_aura_drop : 8; 1217*9a01217eSSatha Rao uint64_t spb_aura_pass : 8; 1218*9a01217eSSatha Rao uint64_t spb_pool_drop : 8; 1219*9a01217eSSatha Rao uint64_t spb_pool_pass : 8; 1220*9a01217eSSatha Rao uint64_t lpb_aura_drop : 8; /* W4 */ 1221*9a01217eSSatha Rao uint64_t lpb_aura_pass : 8; 1222*9a01217eSSatha Rao uint64_t lpb_pool_drop : 8; 1223*9a01217eSSatha Rao uint64_t lpb_pool_pass : 8; 1224*9a01217eSSatha Rao uint64_t rsvd_319_288 : 32; 1225*9a01217eSSatha Rao uint64_t ltag : 24; /* W5 */ 1226*9a01217eSSatha Rao uint64_t good_utag : 8; 1227*9a01217eSSatha Rao uint64_t bad_utag : 8; 1228*9a01217eSSatha Rao uint64_t flow_tagw : 6; 1229*9a01217eSSatha Rao uint64_t rsvd_366 : 1; 1230*9a01217eSSatha Rao uint64_t rsvd_367 : 1; 1231*9a01217eSSatha Rao uint64_t rsvd_375_368 : 8; 1232*9a01217eSSatha Rao uint64_t rsvd_379_376 : 4; 1233*9a01217eSSatha Rao uint64_t rsvd_381_380 : 2; 1234*9a01217eSSatha Rao uint64_t rsvd_383_382 : 2; 1235*9a01217eSSatha Rao uint64_t octs : 48; /* W6 */ 1236*9a01217eSSatha Rao uint64_t rsvd_447_432 : 16; 1237*9a01217eSSatha Rao uint64_t pkts : 48; /* W7 */ 1238*9a01217eSSatha Rao uint64_t rsvd_511_496 : 16; 1239*9a01217eSSatha Rao uint64_t drop_octs : 48; /* W8 */ 1240*9a01217eSSatha Rao uint64_t rsvd_575_560 : 16; 1241*9a01217eSSatha Rao uint64_t drop_pkts : 48; /* W9 */ 1242*9a01217eSSatha Rao uint64_t rsvd_639_624 : 16; 1243*9a01217eSSatha Rao uint64_t re_pkts : 48; /* W10 */ 1244*9a01217eSSatha Rao uint64_t rsvd_702_688 : 15; 1245*9a01217eSSatha Rao uint64_t ena_copy : 1; 1246*9a01217eSSatha Rao uint64_t rsvd_739_704 : 36; /* W11 */ 1247*9a01217eSSatha Rao uint64_t rq_int : 8; 1248*9a01217eSSatha Rao uint64_t rq_int_ena : 8; 1249*9a01217eSSatha Rao uint64_t qint_idx : 7; 1250*9a01217eSSatha Rao uint64_t rsvd_767_763 : 5; 1251*9a01217eSSatha Rao uint64_t rsvd_831_768 : 64; /* W12 */ 1252*9a01217eSSatha Rao uint64_t rsvd_895_832 : 64; /* W13 */ 1253*9a01217eSSatha Rao uint64_t rsvd_959_896 : 64; /* W14 */ 1254*9a01217eSSatha Rao uint64_t rsvd_1023_960 : 64; /* W15 */ 1255*9a01217eSSatha Rao }; 1256*9a01217eSSatha Rao 1257*9a01217eSSatha Rao /* [CN20K, .) NIX Receive queue context structure */ 1258*9a01217eSSatha Rao struct nix_cn20k_rq_ctx_s { 1259*9a01217eSSatha Rao uint64_t ena : 1; /* W0 */ 1260*9a01217eSSatha Rao uint64_t sso_ena : 1; 1261*9a01217eSSatha Rao uint64_t ipsech_ena : 1; 1262*9a01217eSSatha Rao uint64_t ena_wqwd : 1; 1263*9a01217eSSatha Rao uint64_t cq : 20; 1264*9a01217eSSatha Rao uint64_t reserved_24_34 : 11; 1265*9a01217eSSatha Rao uint64_t port_il4_dis : 1; 1266*9a01217eSSatha Rao uint64_t port_ol4_dis : 1; 1267*9a01217eSSatha Rao uint64_t lenerr_dis : 1; 1268*9a01217eSSatha Rao uint64_t csum_il4_dis : 1; 1269*9a01217eSSatha Rao uint64_t csum_ol4_dis : 1; 1270*9a01217eSSatha Rao uint64_t len_il4_dis : 1; 1271*9a01217eSSatha Rao uint64_t len_il3_dis : 1; 1272*9a01217eSSatha Rao uint64_t len_ol4_dis : 1; 1273*9a01217eSSatha Rao uint64_t len_ol3_dis : 1; 1274*9a01217eSSatha Rao uint64_t wqe_aura : 20; 1275*9a01217eSSatha Rao uint64_t spb_aura : 20; /* W1 */ 1276*9a01217eSSatha Rao uint64_t lpb_aura : 20; 1277*9a01217eSSatha Rao uint64_t sso_grp : 10; 1278*9a01217eSSatha Rao uint64_t sso_tt : 2; 1279*9a01217eSSatha Rao uint64_t pb_caching : 2; 1280*9a01217eSSatha Rao uint64_t wqe_caching : 1; 1281*9a01217eSSatha Rao uint64_t xqe_drop_ena : 1; 1282*9a01217eSSatha Rao uint64_t spb_drop_ena : 1; 1283*9a01217eSSatha Rao uint64_t lpb_drop_ena : 1; 1284*9a01217eSSatha Rao uint64_t pb_stashing : 1; 1285*9a01217eSSatha Rao uint64_t ipsecd_drop_en : 1; 1286*9a01217eSSatha Rao uint64_t chi_ena : 1; 1287*9a01217eSSatha Rao uint64_t reserved_125_127 : 3; 1288*9a01217eSSatha Rao uint64_t band_prof_id_l : 10; /* W2 */ 1289*9a01217eSSatha Rao uint64_t sso_fc_ena : 1; 1290*9a01217eSSatha Rao uint64_t policer_ena : 1; 1291*9a01217eSSatha Rao uint64_t spb_sizem1 : 6; 1292*9a01217eSSatha Rao uint64_t wqe_skip : 2; 1293*9a01217eSSatha Rao uint64_t spb_high_sizem1 : 3; 1294*9a01217eSSatha Rao uint64_t spb_ena : 1; 1295*9a01217eSSatha Rao uint64_t lpb_sizem1 : 12; 1296*9a01217eSSatha Rao uint64_t first_skip : 7; 1297*9a01217eSSatha Rao uint64_t sso_bp_ena : 1; 1298*9a01217eSSatha Rao uint64_t later_skip : 6; 1299*9a01217eSSatha Rao uint64_t xqe_imm_size : 6; 1300*9a01217eSSatha Rao uint64_t band_prof_id_h : 4; 1301*9a01217eSSatha Rao uint64_t reserved_188_189 : 2; 1302*9a01217eSSatha Rao uint64_t xqe_imm_copy : 1; 1303*9a01217eSSatha Rao uint64_t xqe_hdr_split : 1; 1304*9a01217eSSatha Rao uint64_t xqe_drop : 8; /* W3 */ 1305*9a01217eSSatha Rao uint64_t xqe_pass : 8; 1306*9a01217eSSatha Rao uint64_t wqe_pool_drop : 8; 1307*9a01217eSSatha Rao uint64_t wqe_pool_pass : 8; 1308*9a01217eSSatha Rao uint64_t spb_aura_drop : 8; 1309*9a01217eSSatha Rao uint64_t spb_aura_pass : 8; 1310*9a01217eSSatha Rao uint64_t spb_pool_drop : 8; 1311*9a01217eSSatha Rao uint64_t spb_pool_pass : 8; 1312*9a01217eSSatha Rao uint64_t lpb_aura_drop : 8; /* W4 */ 1313*9a01217eSSatha Rao uint64_t lpb_aura_pass : 8; 1314*9a01217eSSatha Rao uint64_t lpb_pool_drop : 8; 1315*9a01217eSSatha Rao uint64_t lpb_pool_pass : 8; 1316*9a01217eSSatha Rao uint64_t reserved_288_291 : 4; 1317*9a01217eSSatha Rao uint64_t rq_int : 8; 1318*9a01217eSSatha Rao uint64_t rq_int_ena : 8; 1319*9a01217eSSatha Rao uint64_t qint_idx : 7; 1320*9a01217eSSatha Rao uint64_t reserved_315_319 : 5; 1321*9a01217eSSatha Rao uint64_t ltag : 24; /* W5 */ 1322*9a01217eSSatha Rao uint64_t good_utag : 8; 1323*9a01217eSSatha Rao uint64_t bad_utag : 8; 1324*9a01217eSSatha Rao uint64_t flow_tagw : 6; 1325*9a01217eSSatha Rao uint64_t reserved_366_383 : 18; 1326*9a01217eSSatha Rao uint64_t octs : 48; /* W6 */ 1327*9a01217eSSatha Rao uint64_t reserved_432_447 : 16; 1328*9a01217eSSatha Rao uint64_t pkts : 48; /* W7 */ 1329*9a01217eSSatha Rao uint64_t reserved_496_511 : 16; 1330*9a01217eSSatha Rao uint64_t drop_octs : 48; /* W8 */ 1331*9a01217eSSatha Rao uint64_t reserved_560_575 : 16; 1332*9a01217eSSatha Rao uint64_t drop_pkts : 48; /* W9 */ 1333*9a01217eSSatha Rao uint64_t reserved_624_639 : 16; 1334*9a01217eSSatha Rao uint64_t re_pkts : 48; /* W10 */ 1335*9a01217eSSatha Rao uint64_t reserved_688_703 : 16; 1336*9a01217eSSatha Rao uint64_t reserved_704_767 : 64; /* W11 */ 1337*9a01217eSSatha Rao uint64_t reserved_768_831 : 64; /* W12 */ 1338*9a01217eSSatha Rao uint64_t reserved_832_895 : 64; /* W13 */ 1339*9a01217eSSatha Rao uint64_t reserved_896_959 : 64; /* W14 */ 1340*9a01217eSSatha Rao uint64_t reserved_960_1023 : 64; /* W15 */ 1341*9a01217eSSatha Rao }; 1342*9a01217eSSatha Rao 1343fa8f86a1SJerin Jacob /* [CN10K, .) NIX receive queue context structure */ 1344fa8f86a1SJerin Jacob struct nix_cn10k_rq_ctx_hw_s { 1345fa8f86a1SJerin Jacob uint64_t ena : 1; 1346fa8f86a1SJerin Jacob uint64_t sso_ena : 1; 1347fa8f86a1SJerin Jacob uint64_t ipsech_ena : 1; 1348fa8f86a1SJerin Jacob uint64_t ena_wqwd : 1; 1349fa8f86a1SJerin Jacob uint64_t cq : 20; 1350fa8f86a1SJerin Jacob uint64_t rsvd_36_24 : 13; 1351fa8f86a1SJerin Jacob uint64_t lenerr_dis : 1; 1352fa8f86a1SJerin Jacob uint64_t csum_il4_dis : 1; 1353fa8f86a1SJerin Jacob uint64_t csum_ol4_dis : 1; 1354fa8f86a1SJerin Jacob uint64_t len_il4_dis : 1; 1355fa8f86a1SJerin Jacob uint64_t len_il3_dis : 1; 1356fa8f86a1SJerin Jacob uint64_t len_ol4_dis : 1; 1357fa8f86a1SJerin Jacob uint64_t len_ol3_dis : 1; 1358fa8f86a1SJerin Jacob uint64_t wqe_aura : 20; 1359fa8f86a1SJerin Jacob uint64_t spb_aura : 20; 1360fa8f86a1SJerin Jacob uint64_t lpb_aura : 20; 1361fa8f86a1SJerin Jacob uint64_t sso_grp : 10; 1362fa8f86a1SJerin Jacob uint64_t sso_tt : 2; 1363fa8f86a1SJerin Jacob uint64_t pb_caching : 2; 1364fa8f86a1SJerin Jacob uint64_t wqe_caching : 1; 1365fa8f86a1SJerin Jacob uint64_t xqe_drop_ena : 1; 1366fa8f86a1SJerin Jacob uint64_t spb_drop_ena : 1; 1367fa8f86a1SJerin Jacob uint64_t lpb_drop_ena : 1; 1368fa8f86a1SJerin Jacob uint64_t pb_stashing : 1; 1369fa8f86a1SJerin Jacob uint64_t ipsecd_drop_en : 1; 1370fa8f86a1SJerin Jacob uint64_t chi_ena : 1; 1371fa8f86a1SJerin Jacob uint64_t rsvd_127_125 : 3; 1372fa8f86a1SJerin Jacob uint64_t band_prof_id : 10; 1373fa8f86a1SJerin Jacob uint64_t rsvd_138 : 1; 1374fa8f86a1SJerin Jacob uint64_t policer_ena : 1; 1375fa8f86a1SJerin Jacob uint64_t spb_sizem1 : 6; 1376fa8f86a1SJerin Jacob uint64_t wqe_skip : 2; 1377fa8f86a1SJerin Jacob uint64_t spb_high_sizem1 : 3; 1378fa8f86a1SJerin Jacob uint64_t spb_ena : 1; 1379fa8f86a1SJerin Jacob uint64_t lpb_sizem1 : 12; 1380fa8f86a1SJerin Jacob uint64_t first_skip : 7; 1381fa8f86a1SJerin Jacob uint64_t rsvd_171 : 1; 1382fa8f86a1SJerin Jacob uint64_t later_skip : 6; 1383fa8f86a1SJerin Jacob uint64_t xqe_imm_size : 6; 1384fa8f86a1SJerin Jacob uint64_t rsvd_189_184 : 6; 1385fa8f86a1SJerin Jacob uint64_t xqe_imm_copy : 1; 1386fa8f86a1SJerin Jacob uint64_t xqe_hdr_split : 1; 1387fa8f86a1SJerin Jacob uint64_t xqe_drop : 8; 1388fa8f86a1SJerin Jacob uint64_t xqe_pass : 8; 1389fa8f86a1SJerin Jacob uint64_t wqe_pool_drop : 8; 1390fa8f86a1SJerin Jacob uint64_t wqe_pool_pass : 8; 1391fa8f86a1SJerin Jacob uint64_t spb_aura_drop : 8; 1392fa8f86a1SJerin Jacob uint64_t spb_aura_pass : 8; 1393fa8f86a1SJerin Jacob uint64_t spb_pool_drop : 8; 1394fa8f86a1SJerin Jacob uint64_t spb_pool_pass : 8; 1395fa8f86a1SJerin Jacob uint64_t lpb_aura_drop : 8; 1396fa8f86a1SJerin Jacob uint64_t lpb_aura_pass : 8; 1397fa8f86a1SJerin Jacob uint64_t lpb_pool_drop : 8; 1398fa8f86a1SJerin Jacob uint64_t lpb_pool_pass : 8; 1399fa8f86a1SJerin Jacob uint64_t rsvd_319_288 : 32; 1400fa8f86a1SJerin Jacob uint64_t ltag : 24; 1401fa8f86a1SJerin Jacob uint64_t good_utag : 8; 1402fa8f86a1SJerin Jacob uint64_t bad_utag : 8; 1403fa8f86a1SJerin Jacob uint64_t flow_tagw : 6; 1404fa8f86a1SJerin Jacob uint64_t ipsec_vwqe : 1; 1405fa8f86a1SJerin Jacob uint64_t vwqe_ena : 1; 1406fa8f86a1SJerin Jacob uint64_t vtime_wait : 8; 1407fa8f86a1SJerin Jacob uint64_t max_vsize_exp : 4; 1408fa8f86a1SJerin Jacob uint64_t vwqe_skip : 2; 1409fa8f86a1SJerin Jacob uint64_t rsvd_383_382 : 2; 1410fa8f86a1SJerin Jacob uint64_t octs : 48; 1411fa8f86a1SJerin Jacob uint64_t rsvd_447_432 : 16; 1412fa8f86a1SJerin Jacob uint64_t pkts : 48; 1413fa8f86a1SJerin Jacob uint64_t rsvd_511_496 : 16; 1414fa8f86a1SJerin Jacob uint64_t drop_octs : 48; 1415fa8f86a1SJerin Jacob uint64_t rsvd_575_560 : 16; 1416fa8f86a1SJerin Jacob uint64_t drop_pkts : 48; 1417fa8f86a1SJerin Jacob uint64_t rsvd_639_624 : 16; 1418fa8f86a1SJerin Jacob uint64_t re_pkts : 48; 1419fa8f86a1SJerin Jacob uint64_t rsvd_702_688 : 15; 1420fa8f86a1SJerin Jacob uint64_t ena_copy : 1; 1421fa8f86a1SJerin Jacob uint64_t rsvd_739_704 : 36; 1422fa8f86a1SJerin Jacob uint64_t rq_int : 8; 1423fa8f86a1SJerin Jacob uint64_t rq_int_ena : 8; 1424fa8f86a1SJerin Jacob uint64_t qint_idx : 7; 1425fa8f86a1SJerin Jacob uint64_t rsvd_767_763 : 5; 1426fa8f86a1SJerin Jacob uint64_t rsvd_831_768 : 64; /* W12 */ 1427fa8f86a1SJerin Jacob uint64_t rsvd_895_832 : 64; /* W13 */ 1428fa8f86a1SJerin Jacob uint64_t rsvd_959_896 : 64; /* W14 */ 1429fa8f86a1SJerin Jacob uint64_t rsvd_1023_960 : 64; /* W15 */ 1430fa8f86a1SJerin Jacob }; 1431fa8f86a1SJerin Jacob 1432fa8f86a1SJerin Jacob /* NIX receive queue context structure */ 1433fa8f86a1SJerin Jacob struct nix_rq_ctx_hw_s { 1434fa8f86a1SJerin Jacob uint64_t ena : 1; 1435fa8f86a1SJerin Jacob uint64_t sso_ena : 1; 1436fa8f86a1SJerin Jacob uint64_t ipsech_ena : 1; 1437fa8f86a1SJerin Jacob uint64_t ena_wqwd : 1; 1438fa8f86a1SJerin Jacob uint64_t cq : 20; 1439fa8f86a1SJerin Jacob uint64_t substream : 20; 1440fa8f86a1SJerin Jacob uint64_t wqe_aura : 20; 1441fa8f86a1SJerin Jacob uint64_t spb_aura : 20; 1442fa8f86a1SJerin Jacob uint64_t lpb_aura : 20; 1443fa8f86a1SJerin Jacob uint64_t sso_grp : 10; 1444fa8f86a1SJerin Jacob uint64_t sso_tt : 2; 1445fa8f86a1SJerin Jacob uint64_t pb_caching : 2; 1446fa8f86a1SJerin Jacob uint64_t wqe_caching : 1; 1447fa8f86a1SJerin Jacob uint64_t xqe_drop_ena : 1; 1448fa8f86a1SJerin Jacob uint64_t spb_drop_ena : 1; 1449fa8f86a1SJerin Jacob uint64_t lpb_drop_ena : 1; 1450fa8f86a1SJerin Jacob uint64_t wqe_skip : 2; 1451fa8f86a1SJerin Jacob uint64_t rsvd_127_124 : 4; 1452fa8f86a1SJerin Jacob uint64_t rsvd_139_128 : 12; 1453fa8f86a1SJerin Jacob uint64_t spb_sizem1 : 6; 1454fa8f86a1SJerin Jacob uint64_t rsvd_150_146 : 5; 1455fa8f86a1SJerin Jacob uint64_t spb_ena : 1; 1456fa8f86a1SJerin Jacob uint64_t lpb_sizem1 : 12; 1457fa8f86a1SJerin Jacob uint64_t first_skip : 7; 1458fa8f86a1SJerin Jacob uint64_t rsvd_171 : 1; 1459fa8f86a1SJerin Jacob uint64_t later_skip : 6; 1460fa8f86a1SJerin Jacob uint64_t xqe_imm_size : 6; 1461fa8f86a1SJerin Jacob uint64_t rsvd_189_184 : 6; 1462fa8f86a1SJerin Jacob uint64_t xqe_imm_copy : 1; 1463fa8f86a1SJerin Jacob uint64_t xqe_hdr_split : 1; 1464fa8f86a1SJerin Jacob uint64_t xqe_drop : 8; 1465fa8f86a1SJerin Jacob uint64_t xqe_pass : 8; 1466fa8f86a1SJerin Jacob uint64_t wqe_pool_drop : 8; 1467fa8f86a1SJerin Jacob uint64_t wqe_pool_pass : 8; 1468fa8f86a1SJerin Jacob uint64_t spb_aura_drop : 8; 1469fa8f86a1SJerin Jacob uint64_t spb_aura_pass : 8; 1470fa8f86a1SJerin Jacob uint64_t spb_pool_drop : 8; 1471fa8f86a1SJerin Jacob uint64_t spb_pool_pass : 8; 1472fa8f86a1SJerin Jacob uint64_t lpb_aura_drop : 8; 1473fa8f86a1SJerin Jacob uint64_t lpb_aura_pass : 8; 1474fa8f86a1SJerin Jacob uint64_t lpb_pool_drop : 8; 1475fa8f86a1SJerin Jacob uint64_t lpb_pool_pass : 8; 1476fa8f86a1SJerin Jacob uint64_t rsvd_319_288 : 32; 1477fa8f86a1SJerin Jacob uint64_t ltag : 24; 1478fa8f86a1SJerin Jacob uint64_t good_utag : 8; 1479fa8f86a1SJerin Jacob uint64_t bad_utag : 8; 1480fa8f86a1SJerin Jacob uint64_t flow_tagw : 6; 1481fa8f86a1SJerin Jacob uint64_t rsvd_383_366 : 18; 1482fa8f86a1SJerin Jacob uint64_t octs : 48; 1483fa8f86a1SJerin Jacob uint64_t rsvd_447_432 : 16; 1484fa8f86a1SJerin Jacob uint64_t pkts : 48; 1485fa8f86a1SJerin Jacob uint64_t rsvd_511_496 : 16; 1486fa8f86a1SJerin Jacob uint64_t drop_octs : 48; 1487fa8f86a1SJerin Jacob uint64_t rsvd_575_560 : 16; 1488fa8f86a1SJerin Jacob uint64_t drop_pkts : 48; 1489fa8f86a1SJerin Jacob uint64_t rsvd_639_624 : 16; 1490fa8f86a1SJerin Jacob uint64_t re_pkts : 48; 1491fa8f86a1SJerin Jacob uint64_t rsvd_702_688 : 15; 1492fa8f86a1SJerin Jacob uint64_t ena_copy : 1; 1493fa8f86a1SJerin Jacob uint64_t rsvd_739_704 : 36; 1494fa8f86a1SJerin Jacob uint64_t rq_int : 8; 1495fa8f86a1SJerin Jacob uint64_t rq_int_ena : 8; 1496fa8f86a1SJerin Jacob uint64_t qint_idx : 7; 1497fa8f86a1SJerin Jacob uint64_t rsvd_767_763 : 5; 1498fa8f86a1SJerin Jacob uint64_t rsvd_831_768 : 64; /* W12 */ 1499fa8f86a1SJerin Jacob uint64_t rsvd_895_832 : 64; /* W13 */ 1500fa8f86a1SJerin Jacob uint64_t rsvd_959_896 : 64; /* W14 */ 1501fa8f86a1SJerin Jacob uint64_t rsvd_1023_960 : 64; /* W15 */ 1502fa8f86a1SJerin Jacob }; 1503fa8f86a1SJerin Jacob 1504fa8f86a1SJerin Jacob /* [CN10K, .) NIX Receive queue context structure */ 1505fa8f86a1SJerin Jacob struct nix_cn10k_rq_ctx_s { 1506fa8f86a1SJerin Jacob uint64_t ena : 1; 1507fa8f86a1SJerin Jacob uint64_t sso_ena : 1; 1508fa8f86a1SJerin Jacob uint64_t ipsech_ena : 1; 1509fa8f86a1SJerin Jacob uint64_t ena_wqwd : 1; 1510fa8f86a1SJerin Jacob uint64_t cq : 20; 1511ddf955d3SRakesh Kudurumalla uint64_t rsvd_34_24 : 11; 1512ddf955d3SRakesh Kudurumalla uint64_t port_ol4_dis : 1; 1513ddf955d3SRakesh Kudurumalla uint64_t port_il4_dis : 1; 1514fa8f86a1SJerin Jacob uint64_t lenerr_dis : 1; 1515fa8f86a1SJerin Jacob uint64_t csum_il4_dis : 1; 1516fa8f86a1SJerin Jacob uint64_t csum_ol4_dis : 1; 1517fa8f86a1SJerin Jacob uint64_t len_il4_dis : 1; 1518fa8f86a1SJerin Jacob uint64_t len_il3_dis : 1; 1519fa8f86a1SJerin Jacob uint64_t len_ol4_dis : 1; 1520fa8f86a1SJerin Jacob uint64_t len_ol3_dis : 1; 1521fa8f86a1SJerin Jacob uint64_t wqe_aura : 20; 1522fa8f86a1SJerin Jacob uint64_t spb_aura : 20; 1523fa8f86a1SJerin Jacob uint64_t lpb_aura : 20; 1524fa8f86a1SJerin Jacob uint64_t sso_grp : 10; 1525fa8f86a1SJerin Jacob uint64_t sso_tt : 2; 1526fa8f86a1SJerin Jacob uint64_t pb_caching : 2; 1527fa8f86a1SJerin Jacob uint64_t wqe_caching : 1; 1528fa8f86a1SJerin Jacob uint64_t xqe_drop_ena : 1; 1529fa8f86a1SJerin Jacob uint64_t spb_drop_ena : 1; 1530fa8f86a1SJerin Jacob uint64_t lpb_drop_ena : 1; 1531fa8f86a1SJerin Jacob uint64_t pb_stashing : 1; 1532fa8f86a1SJerin Jacob uint64_t ipsecd_drop_en : 1; 1533fa8f86a1SJerin Jacob uint64_t chi_ena : 1; 1534fa8f86a1SJerin Jacob uint64_t rsvd_127_125 : 3; 1535fa8f86a1SJerin Jacob uint64_t band_prof_id : 10; 1536fa8f86a1SJerin Jacob uint64_t rsvd_138 : 1; 1537fa8f86a1SJerin Jacob uint64_t policer_ena : 1; 1538fa8f86a1SJerin Jacob uint64_t spb_sizem1 : 6; 1539fa8f86a1SJerin Jacob uint64_t wqe_skip : 2; 1540fa8f86a1SJerin Jacob uint64_t spb_high_sizem1 : 3; 1541fa8f86a1SJerin Jacob uint64_t spb_ena : 1; 1542fa8f86a1SJerin Jacob uint64_t lpb_sizem1 : 12; 1543fa8f86a1SJerin Jacob uint64_t first_skip : 7; 1544fa8f86a1SJerin Jacob uint64_t rsvd_171 : 1; 1545fa8f86a1SJerin Jacob uint64_t later_skip : 6; 1546fa8f86a1SJerin Jacob uint64_t xqe_imm_size : 6; 1547fa8f86a1SJerin Jacob uint64_t rsvd_189_184 : 6; 1548fa8f86a1SJerin Jacob uint64_t xqe_imm_copy : 1; 1549fa8f86a1SJerin Jacob uint64_t xqe_hdr_split : 1; 1550fa8f86a1SJerin Jacob uint64_t xqe_drop : 8; 1551fa8f86a1SJerin Jacob uint64_t xqe_pass : 8; 1552fa8f86a1SJerin Jacob uint64_t wqe_pool_drop : 8; 1553fa8f86a1SJerin Jacob uint64_t wqe_pool_pass : 8; 1554fa8f86a1SJerin Jacob uint64_t spb_aura_drop : 8; 1555fa8f86a1SJerin Jacob uint64_t spb_aura_pass : 8; 1556fa8f86a1SJerin Jacob uint64_t spb_pool_drop : 8; 1557fa8f86a1SJerin Jacob uint64_t spb_pool_pass : 8; 1558fa8f86a1SJerin Jacob uint64_t lpb_aura_drop : 8; 1559fa8f86a1SJerin Jacob uint64_t lpb_aura_pass : 8; 1560fa8f86a1SJerin Jacob uint64_t lpb_pool_drop : 8; 1561fa8f86a1SJerin Jacob uint64_t lpb_pool_pass : 8; 1562fa8f86a1SJerin Jacob uint64_t rsvd_291_288 : 4; 1563fa8f86a1SJerin Jacob uint64_t rq_int : 8; 1564fa8f86a1SJerin Jacob uint64_t rq_int_ena : 8; 1565fa8f86a1SJerin Jacob uint64_t qint_idx : 7; 1566fa8f86a1SJerin Jacob uint64_t rsvd_319_315 : 5; 1567fa8f86a1SJerin Jacob uint64_t ltag : 24; 1568fa8f86a1SJerin Jacob uint64_t good_utag : 8; 1569fa8f86a1SJerin Jacob uint64_t bad_utag : 8; 1570fa8f86a1SJerin Jacob uint64_t flow_tagw : 6; 1571fa8f86a1SJerin Jacob uint64_t ipsec_vwqe : 1; 1572fa8f86a1SJerin Jacob uint64_t vwqe_ena : 1; 1573fa8f86a1SJerin Jacob uint64_t vtime_wait : 8; 1574fa8f86a1SJerin Jacob uint64_t max_vsize_exp : 4; 1575fa8f86a1SJerin Jacob uint64_t vwqe_skip : 2; 1576fa8f86a1SJerin Jacob uint64_t rsvd_383_382 : 2; 1577fa8f86a1SJerin Jacob uint64_t octs : 48; 1578fa8f86a1SJerin Jacob uint64_t rsvd_447_432 : 16; 1579fa8f86a1SJerin Jacob uint64_t pkts : 48; 1580fa8f86a1SJerin Jacob uint64_t rsvd_511_496 : 16; 1581fa8f86a1SJerin Jacob uint64_t drop_octs : 48; 1582fa8f86a1SJerin Jacob uint64_t rsvd_575_560 : 16; 1583fa8f86a1SJerin Jacob uint64_t drop_pkts : 48; 1584fa8f86a1SJerin Jacob uint64_t rsvd_639_624 : 16; 1585fa8f86a1SJerin Jacob uint64_t re_pkts : 48; 1586fa8f86a1SJerin Jacob uint64_t rsvd_703_688 : 16; 1587fa8f86a1SJerin Jacob uint64_t rsvd_767_704 : 64; /* W11 */ 1588fa8f86a1SJerin Jacob uint64_t rsvd_831_768 : 64; /* W12 */ 1589fa8f86a1SJerin Jacob uint64_t rsvd_895_832 : 64; /* W13 */ 1590fa8f86a1SJerin Jacob uint64_t rsvd_959_896 : 64; /* W14 */ 1591fa8f86a1SJerin Jacob uint64_t rsvd_1023_960 : 64; /* W15 */ 1592fa8f86a1SJerin Jacob }; 1593fa8f86a1SJerin Jacob 1594fa8f86a1SJerin Jacob /* NIX receive queue context structure */ 1595fa8f86a1SJerin Jacob struct nix_rq_ctx_s { 1596fa8f86a1SJerin Jacob uint64_t ena : 1; 1597fa8f86a1SJerin Jacob uint64_t sso_ena : 1; 1598fa8f86a1SJerin Jacob uint64_t ipsech_ena : 1; 1599fa8f86a1SJerin Jacob uint64_t ena_wqwd : 1; 1600fa8f86a1SJerin Jacob uint64_t cq : 20; 1601fa8f86a1SJerin Jacob uint64_t substream : 20; 1602fa8f86a1SJerin Jacob uint64_t wqe_aura : 20; 1603fa8f86a1SJerin Jacob uint64_t spb_aura : 20; 1604fa8f86a1SJerin Jacob uint64_t lpb_aura : 20; 1605fa8f86a1SJerin Jacob uint64_t sso_grp : 10; 1606fa8f86a1SJerin Jacob uint64_t sso_tt : 2; 1607fa8f86a1SJerin Jacob uint64_t pb_caching : 2; 1608fa8f86a1SJerin Jacob uint64_t wqe_caching : 1; 1609fa8f86a1SJerin Jacob uint64_t xqe_drop_ena : 1; 1610fa8f86a1SJerin Jacob uint64_t spb_drop_ena : 1; 1611fa8f86a1SJerin Jacob uint64_t lpb_drop_ena : 1; 1612fa8f86a1SJerin Jacob uint64_t rsvd_127_122 : 6; 1613fa8f86a1SJerin Jacob uint64_t rsvd_139_128 : 12; 1614fa8f86a1SJerin Jacob uint64_t spb_sizem1 : 6; 1615fa8f86a1SJerin Jacob uint64_t wqe_skip : 2; 1616fa8f86a1SJerin Jacob uint64_t rsvd_150_148 : 3; 1617fa8f86a1SJerin Jacob uint64_t spb_ena : 1; 1618fa8f86a1SJerin Jacob uint64_t lpb_sizem1 : 12; 1619fa8f86a1SJerin Jacob uint64_t first_skip : 7; 1620fa8f86a1SJerin Jacob uint64_t rsvd_171 : 1; 1621fa8f86a1SJerin Jacob uint64_t later_skip : 6; 1622fa8f86a1SJerin Jacob uint64_t xqe_imm_size : 6; 1623fa8f86a1SJerin Jacob uint64_t rsvd_189_184 : 6; 1624fa8f86a1SJerin Jacob uint64_t xqe_imm_copy : 1; 1625fa8f86a1SJerin Jacob uint64_t xqe_hdr_split : 1; 1626fa8f86a1SJerin Jacob uint64_t xqe_drop : 8; 1627fa8f86a1SJerin Jacob uint64_t xqe_pass : 8; 1628fa8f86a1SJerin Jacob uint64_t wqe_pool_drop : 8; 1629fa8f86a1SJerin Jacob uint64_t wqe_pool_pass : 8; 1630fa8f86a1SJerin Jacob uint64_t spb_aura_drop : 8; 1631fa8f86a1SJerin Jacob uint64_t spb_aura_pass : 8; 1632fa8f86a1SJerin Jacob uint64_t spb_pool_drop : 8; 1633fa8f86a1SJerin Jacob uint64_t spb_pool_pass : 8; 1634fa8f86a1SJerin Jacob uint64_t lpb_aura_drop : 8; 1635fa8f86a1SJerin Jacob uint64_t lpb_aura_pass : 8; 1636fa8f86a1SJerin Jacob uint64_t lpb_pool_drop : 8; 1637fa8f86a1SJerin Jacob uint64_t lpb_pool_pass : 8; 1638fa8f86a1SJerin Jacob uint64_t rsvd_291_288 : 4; 1639fa8f86a1SJerin Jacob uint64_t rq_int : 8; 1640fa8f86a1SJerin Jacob uint64_t rq_int_ena : 8; 1641fa8f86a1SJerin Jacob uint64_t qint_idx : 7; 1642fa8f86a1SJerin Jacob uint64_t rsvd_319_315 : 5; 1643fa8f86a1SJerin Jacob uint64_t ltag : 24; 1644fa8f86a1SJerin Jacob uint64_t good_utag : 8; 1645fa8f86a1SJerin Jacob uint64_t bad_utag : 8; 1646fa8f86a1SJerin Jacob uint64_t flow_tagw : 6; 1647fa8f86a1SJerin Jacob uint64_t rsvd_383_366 : 18; 1648fa8f86a1SJerin Jacob uint64_t octs : 48; 1649fa8f86a1SJerin Jacob uint64_t rsvd_447_432 : 16; 1650fa8f86a1SJerin Jacob uint64_t pkts : 48; 1651fa8f86a1SJerin Jacob uint64_t rsvd_511_496 : 16; 1652fa8f86a1SJerin Jacob uint64_t drop_octs : 48; 1653fa8f86a1SJerin Jacob uint64_t rsvd_575_560 : 16; 1654fa8f86a1SJerin Jacob uint64_t drop_pkts : 48; 1655fa8f86a1SJerin Jacob uint64_t rsvd_639_624 : 16; 1656fa8f86a1SJerin Jacob uint64_t re_pkts : 48; 1657fa8f86a1SJerin Jacob uint64_t rsvd_703_688 : 16; 1658fa8f86a1SJerin Jacob uint64_t rsvd_767_704 : 64; /* W11 */ 1659fa8f86a1SJerin Jacob uint64_t rsvd_831_768 : 64; /* W12 */ 1660fa8f86a1SJerin Jacob uint64_t rsvd_895_832 : 64; /* W13 */ 1661fa8f86a1SJerin Jacob uint64_t rsvd_959_896 : 64; /* W14 */ 1662fa8f86a1SJerin Jacob uint64_t rsvd_1023_960 : 64; /* W15 */ 1663fa8f86a1SJerin Jacob }; 1664fa8f86a1SJerin Jacob 1665fa8f86a1SJerin Jacob /* NIX receive side scaling entry structure */ 1666fa8f86a1SJerin Jacob struct nix_rsse_s { 1667fa8f86a1SJerin Jacob uint32_t rq : 20; 1668fa8f86a1SJerin Jacob uint32_t rsvd_31_20 : 12; 1669fa8f86a1SJerin Jacob }; 1670fa8f86a1SJerin Jacob 1671fa8f86a1SJerin Jacob /* NIX receive action structure */ 1672fa8f86a1SJerin Jacob struct nix_rx_action_s { 1673fa8f86a1SJerin Jacob uint64_t op : 4; 1674fa8f86a1SJerin Jacob uint64_t pf_func : 16; 1675fa8f86a1SJerin Jacob uint64_t index : 20; 1676fa8f86a1SJerin Jacob uint64_t match_id : 16; 1677fa8f86a1SJerin Jacob uint64_t flow_key_alg : 5; 1678fa8f86a1SJerin Jacob uint64_t rsvd_63_61 : 3; 1679fa8f86a1SJerin Jacob }; 1680fa8f86a1SJerin Jacob 1681fa8f86a1SJerin Jacob /* NIX receive immediate sub descriptor structure */ 1682fa8f86a1SJerin Jacob struct nix_rx_imm_s { 1683fa8f86a1SJerin Jacob uint64_t size : 16; 1684fa8f86a1SJerin Jacob uint64_t apad : 3; 1685fa8f86a1SJerin Jacob uint64_t rsvd_59_19 : 41; 1686fa8f86a1SJerin Jacob uint64_t subdc : 4; 1687fa8f86a1SJerin Jacob }; 1688fa8f86a1SJerin Jacob 1689fa8f86a1SJerin Jacob /* NIX receive multicast/mirror entry structure */ 1690fa8f86a1SJerin Jacob struct nix_rx_mce_s { 1691fa8f86a1SJerin Jacob uint64_t op : 2; 1692fa8f86a1SJerin Jacob uint64_t rsvd_2 : 1; 1693fa8f86a1SJerin Jacob uint64_t eol : 1; 1694fa8f86a1SJerin Jacob uint64_t index : 20; 1695fa8f86a1SJerin Jacob uint64_t rsvd_31_24 : 8; 1696fa8f86a1SJerin Jacob uint64_t pf_func : 16; 1697fa8f86a1SJerin Jacob uint64_t next : 16; 1698fa8f86a1SJerin Jacob }; 1699fa8f86a1SJerin Jacob 1700fa8f86a1SJerin Jacob /* NIX receive parse structure */ 1701fa8f86a1SJerin Jacob union nix_rx_parse_u { 1702fa8f86a1SJerin Jacob struct { 1703fa8f86a1SJerin Jacob uint64_t chan : 12; 1704fa8f86a1SJerin Jacob uint64_t desc_sizem1 : 5; 1705fa8f86a1SJerin Jacob uint64_t imm_copy : 1; 1706fa8f86a1SJerin Jacob uint64_t express : 1; 1707fa8f86a1SJerin Jacob uint64_t wqwd : 1; 1708fa8f86a1SJerin Jacob uint64_t errlev : 4; 1709fa8f86a1SJerin Jacob uint64_t errcode : 8; 1710fa8f86a1SJerin Jacob uint64_t latype : 4; 1711fa8f86a1SJerin Jacob uint64_t lbtype : 4; 1712fa8f86a1SJerin Jacob uint64_t lctype : 4; 1713fa8f86a1SJerin Jacob uint64_t ldtype : 4; 1714fa8f86a1SJerin Jacob uint64_t letype : 4; 1715fa8f86a1SJerin Jacob uint64_t lftype : 4; 1716fa8f86a1SJerin Jacob uint64_t lgtype : 4; 1717fa8f86a1SJerin Jacob uint64_t lhtype : 4; 1718fa8f86a1SJerin Jacob uint64_t pkt_lenm1 : 16; 1719fa8f86a1SJerin Jacob uint64_t l2m : 1; 1720fa8f86a1SJerin Jacob uint64_t l2b : 1; 1721fa8f86a1SJerin Jacob uint64_t l3m : 1; 1722fa8f86a1SJerin Jacob uint64_t l3b : 1; 1723fa8f86a1SJerin Jacob uint64_t vtag0_valid : 1; 1724fa8f86a1SJerin Jacob uint64_t vtag0_gone : 1; 1725fa8f86a1SJerin Jacob uint64_t vtag1_valid : 1; 1726fa8f86a1SJerin Jacob uint64_t vtag1_gone : 1; 1727fa8f86a1SJerin Jacob uint64_t pkind : 6; 1728fa8f86a1SJerin Jacob uint64_t nix_idx : 2; 1729fa8f86a1SJerin Jacob uint64_t vtag0_tci : 16; 1730fa8f86a1SJerin Jacob uint64_t vtag1_tci : 16; 1731fa8f86a1SJerin Jacob uint64_t laflags : 8; 1732fa8f86a1SJerin Jacob uint64_t lbflags : 8; 1733fa8f86a1SJerin Jacob uint64_t lcflags : 8; 1734fa8f86a1SJerin Jacob uint64_t ldflags : 8; 1735fa8f86a1SJerin Jacob uint64_t leflags : 8; 1736fa8f86a1SJerin Jacob uint64_t lfflags : 8; 1737fa8f86a1SJerin Jacob uint64_t lgflags : 8; 1738fa8f86a1SJerin Jacob uint64_t lhflags : 8; 1739fa8f86a1SJerin Jacob uint64_t eoh_ptr : 8; 1740fa8f86a1SJerin Jacob uint64_t wqe_aura : 20; 1741fa8f86a1SJerin Jacob uint64_t pb_aura : 20; 1742fa8f86a1SJerin Jacob uint64_t match_id : 16; 1743fa8f86a1SJerin Jacob uint64_t laptr : 8; 1744fa8f86a1SJerin Jacob uint64_t lbptr : 8; 1745fa8f86a1SJerin Jacob uint64_t lcptr : 8; 1746fa8f86a1SJerin Jacob uint64_t ldptr : 8; 1747fa8f86a1SJerin Jacob uint64_t leptr : 8; 1748fa8f86a1SJerin Jacob uint64_t lfptr : 8; 1749fa8f86a1SJerin Jacob uint64_t lgptr : 8; 1750fa8f86a1SJerin Jacob uint64_t lhptr : 8; 1751fa8f86a1SJerin Jacob uint64_t vtag0_ptr : 8; 1752fa8f86a1SJerin Jacob uint64_t vtag1_ptr : 8; 1753*9a01217eSSatha Rao uint64_t flow_key_alg : 6; 1754fa8f86a1SJerin Jacob uint64_t rsvd_349_342 : 8; 1755fa8f86a1SJerin Jacob uint64_t rsvd_353_350 : 4; 1756fa8f86a1SJerin Jacob uint64_t rsvd_359_354 : 6; 1757fa8f86a1SJerin Jacob uint64_t color : 2; 1758*9a01217eSSatha Rao uint64_t mcs_mdata : 14; 1759*9a01217eSSatha Rao uint64_t rsvd_381_376 : 6; 1760fa8f86a1SJerin Jacob uint64_t rsvd_382 : 1; 1761fa8f86a1SJerin Jacob uint64_t rsvd_383 : 1; 1762fa8f86a1SJerin Jacob uint64_t rsvd_447_384 : 64; /* W6 */ 1763fa8f86a1SJerin Jacob }; 1764fa8f86a1SJerin Jacob struct { 1765fa8f86a1SJerin Jacob uint64_t chan : 12; 1766fa8f86a1SJerin Jacob uint64_t desc_sizem1 : 5; 1767fa8f86a1SJerin Jacob uint64_t imm_copy : 1; 1768fa8f86a1SJerin Jacob uint64_t express : 1; 1769fa8f86a1SJerin Jacob uint64_t wqwd : 1; 1770fa8f86a1SJerin Jacob uint64_t errlev : 4; 1771fa8f86a1SJerin Jacob uint64_t errcode : 8; 1772fa8f86a1SJerin Jacob uint64_t latype : 4; 1773fa8f86a1SJerin Jacob uint64_t lbtype : 4; 1774fa8f86a1SJerin Jacob uint64_t lctype : 4; 1775fa8f86a1SJerin Jacob uint64_t ldtype : 4; 1776fa8f86a1SJerin Jacob uint64_t letype : 4; 1777fa8f86a1SJerin Jacob uint64_t lftype : 4; 1778fa8f86a1SJerin Jacob uint64_t lgtype : 4; 1779fa8f86a1SJerin Jacob uint64_t lhtype : 4; 1780fa8f86a1SJerin Jacob uint64_t pkt_lenm1 : 16; 1781fa8f86a1SJerin Jacob uint64_t l2m : 1; 1782fa8f86a1SJerin Jacob uint64_t l2b : 1; 1783fa8f86a1SJerin Jacob uint64_t l3m : 1; 1784fa8f86a1SJerin Jacob uint64_t l3b : 1; 1785fa8f86a1SJerin Jacob uint64_t vtag0_valid : 1; 1786fa8f86a1SJerin Jacob uint64_t vtag0_gone : 1; 1787fa8f86a1SJerin Jacob uint64_t vtag1_valid : 1; 1788fa8f86a1SJerin Jacob uint64_t vtag1_gone : 1; 1789fa8f86a1SJerin Jacob uint64_t pkind : 6; 1790fa8f86a1SJerin Jacob uint64_t rsvd_95_94 : 2; 1791fa8f86a1SJerin Jacob uint64_t vtag0_tci : 16; 1792fa8f86a1SJerin Jacob uint64_t vtag1_tci : 16; 1793fa8f86a1SJerin Jacob uint64_t laflags : 8; 1794fa8f86a1SJerin Jacob uint64_t lbflags : 8; 1795fa8f86a1SJerin Jacob uint64_t lcflags : 8; 1796fa8f86a1SJerin Jacob uint64_t ldflags : 8; 1797fa8f86a1SJerin Jacob uint64_t leflags : 8; 1798fa8f86a1SJerin Jacob uint64_t lfflags : 8; 1799fa8f86a1SJerin Jacob uint64_t lgflags : 8; 1800fa8f86a1SJerin Jacob uint64_t lhflags : 8; 1801fa8f86a1SJerin Jacob uint64_t eoh_ptr : 8; 1802fa8f86a1SJerin Jacob uint64_t wqe_aura : 20; 1803fa8f86a1SJerin Jacob uint64_t pb_aura : 20; 1804fa8f86a1SJerin Jacob uint64_t match_id : 16; 1805fa8f86a1SJerin Jacob uint64_t laptr : 8; 1806fa8f86a1SJerin Jacob uint64_t lbptr : 8; 1807fa8f86a1SJerin Jacob uint64_t lcptr : 8; 1808fa8f86a1SJerin Jacob uint64_t ldptr : 8; 1809fa8f86a1SJerin Jacob uint64_t leptr : 8; 1810fa8f86a1SJerin Jacob uint64_t lfptr : 8; 1811fa8f86a1SJerin Jacob uint64_t lgptr : 8; 1812fa8f86a1SJerin Jacob uint64_t lhptr : 8; 1813fa8f86a1SJerin Jacob uint64_t vtag0_ptr : 8; 1814fa8f86a1SJerin Jacob uint64_t vtag1_ptr : 8; 1815fa8f86a1SJerin Jacob uint64_t flow_key_alg : 5; 1816fa8f86a1SJerin Jacob uint64_t rsvd_383_341 : 43; 1817fa8f86a1SJerin Jacob uint64_t rsvd_447_384 : 64; /* W6 */ 1818fa8f86a1SJerin Jacob } cn9k; 1819fa8f86a1SJerin Jacob }; 1820fa8f86a1SJerin Jacob 1821fa8f86a1SJerin Jacob /* NIX receive scatter/gather sub descriptor structure */ 1822fa8f86a1SJerin Jacob struct nix_rx_sg_s { 1823fa8f86a1SJerin Jacob uint64_t seg1_size : 16; 1824fa8f86a1SJerin Jacob uint64_t seg2_size : 16; 1825fa8f86a1SJerin Jacob uint64_t seg3_size : 16; 1826fa8f86a1SJerin Jacob uint64_t segs : 2; 1827fa8f86a1SJerin Jacob uint64_t rsvd_59_50 : 10; 1828fa8f86a1SJerin Jacob uint64_t subdc : 4; 1829fa8f86a1SJerin Jacob }; 1830fa8f86a1SJerin Jacob 1831fa8f86a1SJerin Jacob /* NIX receive vtag action structure */ 1832fa8f86a1SJerin Jacob union nix_rx_vtag_action_u { 1833fa8f86a1SJerin Jacob struct { 1834fa8f86a1SJerin Jacob uint64_t vtag0_relptr : 8; 1835fa8f86a1SJerin Jacob uint64_t vtag0_lid : 3; 1836fa8f86a1SJerin Jacob uint64_t sa_xor : 1; 1837fa8f86a1SJerin Jacob uint64_t vtag0_type : 3; 1838fa8f86a1SJerin Jacob uint64_t vtag0_valid : 1; 1839fa8f86a1SJerin Jacob uint64_t sa_lo : 16; 1840fa8f86a1SJerin Jacob uint64_t vtag1_relptr : 8; 1841fa8f86a1SJerin Jacob uint64_t vtag1_lid : 3; 1842fa8f86a1SJerin Jacob uint64_t rsvd_43 : 1; 1843fa8f86a1SJerin Jacob uint64_t vtag1_type : 3; 1844fa8f86a1SJerin Jacob uint64_t vtag1_valid : 1; 1845fa8f86a1SJerin Jacob uint64_t sa_hi : 16; 1846fa8f86a1SJerin Jacob }; 1847fa8f86a1SJerin Jacob struct { 1848fa8f86a1SJerin Jacob uint64_t vtag0_relptr : 8; 1849fa8f86a1SJerin Jacob uint64_t vtag0_lid : 3; 1850fa8f86a1SJerin Jacob uint64_t rsvd_11 : 1; 1851fa8f86a1SJerin Jacob uint64_t vtag0_type : 3; 1852fa8f86a1SJerin Jacob uint64_t vtag0_valid : 1; 1853fa8f86a1SJerin Jacob uint64_t rsvd_31_16 : 16; 1854fa8f86a1SJerin Jacob uint64_t vtag1_relptr : 8; 1855fa8f86a1SJerin Jacob uint64_t vtag1_lid : 3; 1856fa8f86a1SJerin Jacob uint64_t rsvd_43 : 1; 1857fa8f86a1SJerin Jacob uint64_t vtag1_type : 3; 1858fa8f86a1SJerin Jacob uint64_t vtag1_valid : 1; 1859fa8f86a1SJerin Jacob uint64_t rsvd_63_48 : 16; 1860fa8f86a1SJerin Jacob } cn9k; 1861fa8f86a1SJerin Jacob }; 1862fa8f86a1SJerin Jacob 1863fa8f86a1SJerin Jacob /* NIX send completion structure */ 1864fa8f86a1SJerin Jacob struct nix_send_comp_s { 1865fa8f86a1SJerin Jacob uint64_t status : 8; 1866fa8f86a1SJerin Jacob uint64_t sqe_id : 16; 1867fa8f86a1SJerin Jacob uint64_t rsvd_63_24 : 40; 1868fa8f86a1SJerin Jacob }; 1869fa8f86a1SJerin Jacob 1870fa8f86a1SJerin Jacob /* NIX send CRC sub descriptor structure */ 1871fa8f86a1SJerin Jacob struct nix_send_crc_s { 1872fa8f86a1SJerin Jacob uint64_t size : 16; 1873fa8f86a1SJerin Jacob uint64_t start : 16; 1874fa8f86a1SJerin Jacob uint64_t insert : 16; 1875fa8f86a1SJerin Jacob uint64_t rsvd_57_48 : 10; 1876fa8f86a1SJerin Jacob uint64_t alg : 2; 1877fa8f86a1SJerin Jacob uint64_t subdc : 4; 1878fa8f86a1SJerin Jacob uint64_t iv : 32; 1879fa8f86a1SJerin Jacob uint64_t rsvd_127_96 : 32; 1880fa8f86a1SJerin Jacob }; 1881fa8f86a1SJerin Jacob 1882fa8f86a1SJerin Jacob /* NIX send extended header sub descriptor structure */ 1883fa8f86a1SJerin Jacob union nix_send_ext_w0_u { 1884fa8f86a1SJerin Jacob uint64_t u; 1885fa8f86a1SJerin Jacob struct { 1886fa8f86a1SJerin Jacob uint64_t lso_mps : 14; 1887fa8f86a1SJerin Jacob uint64_t lso : 1; 1888fa8f86a1SJerin Jacob uint64_t tstmp : 1; 1889fa8f86a1SJerin Jacob uint64_t lso_sb : 8; 1890fa8f86a1SJerin Jacob uint64_t lso_format : 5; 1891fa8f86a1SJerin Jacob uint64_t rsvd_31_29 : 3; 1892fa8f86a1SJerin Jacob uint64_t shp_chg : 9; 1893fa8f86a1SJerin Jacob uint64_t shp_dis : 1; 1894fa8f86a1SJerin Jacob uint64_t shp_ra : 2; 1895fa8f86a1SJerin Jacob uint64_t markptr : 8; 1896fa8f86a1SJerin Jacob uint64_t markform : 7; 1897fa8f86a1SJerin Jacob uint64_t mark_en : 1; 1898fa8f86a1SJerin Jacob uint64_t subdc : 4; 1899fa8f86a1SJerin Jacob }; 1900fa8f86a1SJerin Jacob }; 1901fa8f86a1SJerin Jacob 1902fa8f86a1SJerin Jacob union nix_send_ext_w1_u { 1903fa8f86a1SJerin Jacob uint64_t u; 1904fa8f86a1SJerin Jacob struct { 1905fa8f86a1SJerin Jacob uint64_t vlan0_ins_ptr : 8; 1906fa8f86a1SJerin Jacob uint64_t vlan0_ins_tci : 16; 1907fa8f86a1SJerin Jacob uint64_t vlan1_ins_ptr : 8; 1908fa8f86a1SJerin Jacob uint64_t vlan1_ins_tci : 16; 1909fa8f86a1SJerin Jacob uint64_t vlan0_ins_ena : 1; 1910fa8f86a1SJerin Jacob uint64_t vlan1_ins_ena : 1; 1911fa8f86a1SJerin Jacob uint64_t init_color : 2; 1912*9a01217eSSatha Rao uint64_t flow_id : 7; 1913*9a01217eSSatha Rao uint64_t flow_override : 1; 1914*9a01217eSSatha Rao uint64_t rsvd_127_124 : 4; 1915fa8f86a1SJerin Jacob }; 1916fa8f86a1SJerin Jacob struct { 1917fa8f86a1SJerin Jacob uint64_t vlan0_ins_ptr : 8; 1918fa8f86a1SJerin Jacob uint64_t vlan0_ins_tci : 16; 1919fa8f86a1SJerin Jacob uint64_t vlan1_ins_ptr : 8; 1920fa8f86a1SJerin Jacob uint64_t vlan1_ins_tci : 16; 1921fa8f86a1SJerin Jacob uint64_t vlan0_ins_ena : 1; 1922fa8f86a1SJerin Jacob uint64_t vlan1_ins_ena : 1; 1923fa8f86a1SJerin Jacob uint64_t rsvd_127_114 : 14; 1924fa8f86a1SJerin Jacob } cn9k; 1925fa8f86a1SJerin Jacob }; 1926fa8f86a1SJerin Jacob 1927fa8f86a1SJerin Jacob struct nix_send_ext_s { 1928fa8f86a1SJerin Jacob union nix_send_ext_w0_u w0; 1929fa8f86a1SJerin Jacob union nix_send_ext_w1_u w1; 1930fa8f86a1SJerin Jacob }; 1931fa8f86a1SJerin Jacob 1932fa8f86a1SJerin Jacob /* NIX send header sub descriptor structure */ 1933fa8f86a1SJerin Jacob union nix_send_hdr_w0_u { 1934fa8f86a1SJerin Jacob uint64_t u; 1935fa8f86a1SJerin Jacob struct { 1936fa8f86a1SJerin Jacob uint64_t total : 18; 1937*9a01217eSSatha Rao uint64_t cpt_error : 1; 1938fa8f86a1SJerin Jacob uint64_t df : 1; 1939fa8f86a1SJerin Jacob uint64_t aura : 20; 1940fa8f86a1SJerin Jacob uint64_t sizem1 : 3; 1941fa8f86a1SJerin Jacob uint64_t pnc : 1; 1942fa8f86a1SJerin Jacob uint64_t sq : 20; 1943fa8f86a1SJerin Jacob }; 1944fa8f86a1SJerin Jacob }; 1945fa8f86a1SJerin Jacob 1946fa8f86a1SJerin Jacob union nix_send_hdr_w1_u { 1947fa8f86a1SJerin Jacob uint64_t u; 1948fa8f86a1SJerin Jacob struct { 1949fa8f86a1SJerin Jacob uint64_t ol3ptr : 8; 1950fa8f86a1SJerin Jacob uint64_t ol4ptr : 8; 1951fa8f86a1SJerin Jacob uint64_t il3ptr : 8; 1952fa8f86a1SJerin Jacob uint64_t il4ptr : 8; 1953fa8f86a1SJerin Jacob uint64_t ol3type : 4; 1954fa8f86a1SJerin Jacob uint64_t ol4type : 4; 1955fa8f86a1SJerin Jacob uint64_t il3type : 4; 1956fa8f86a1SJerin Jacob uint64_t il4type : 4; 1957fa8f86a1SJerin Jacob uint64_t sqe_id : 16; 1958fa8f86a1SJerin Jacob }; 1959fa8f86a1SJerin Jacob }; 1960fa8f86a1SJerin Jacob 1961fa8f86a1SJerin Jacob struct nix_send_hdr_s { 1962fa8f86a1SJerin Jacob union nix_send_hdr_w0_u w0; 1963fa8f86a1SJerin Jacob union nix_send_hdr_w1_u w1; 1964fa8f86a1SJerin Jacob }; 1965fa8f86a1SJerin Jacob 1966fa8f86a1SJerin Jacob /* NIX send immediate sub descriptor structure */ 1967fa8f86a1SJerin Jacob struct nix_send_imm_s { 1968fa8f86a1SJerin Jacob uint64_t size : 16; 1969fa8f86a1SJerin Jacob uint64_t apad : 3; 1970fa8f86a1SJerin Jacob uint64_t rsvd_59_19 : 41; 1971fa8f86a1SJerin Jacob uint64_t subdc : 4; 1972fa8f86a1SJerin Jacob }; 1973fa8f86a1SJerin Jacob 1974fa8f86a1SJerin Jacob /* NIX send jump sub descriptor structure */ 1975fa8f86a1SJerin Jacob struct nix_send_jump_s { 1976fa8f86a1SJerin Jacob uint64_t sizem1 : 7; 1977fa8f86a1SJerin Jacob uint64_t rsvd_13_7 : 7; 1978fa8f86a1SJerin Jacob uint64_t ld_type : 2; 1979fa8f86a1SJerin Jacob uint64_t aura : 20; 1980*9a01217eSSatha Rao uint64_t refcnt_en : 1; 1981*9a01217eSSatha Rao uint64_t rsvd_58_37 : 22; 1982fa8f86a1SJerin Jacob uint64_t f : 1; 1983fa8f86a1SJerin Jacob uint64_t subdc : 4; 1984fa8f86a1SJerin Jacob uint64_t addr : 64; /* W1 */ 1985fa8f86a1SJerin Jacob }; 1986fa8f86a1SJerin Jacob 1987fa8f86a1SJerin Jacob /* NIX send memory sub descriptor structure */ 1988fa8f86a1SJerin Jacob union nix_send_mem_w0_u { 1989fa8f86a1SJerin Jacob uint64_t u; 1990fa8f86a1SJerin Jacob struct { 1991fa8f86a1SJerin Jacob uint64_t offset : 16; 1992*9a01217eSSatha Rao uint64_t base_ns : 32; 1993*9a01217eSSatha Rao uint64_t step_type : 1; 1994*9a01217eSSatha Rao uint64_t rsvd_50_49 : 2; 1995*9a01217eSSatha Rao uint64_t coas_en : 1; 1996fa8f86a1SJerin Jacob uint64_t per_lso_seg : 1; 1997fa8f86a1SJerin Jacob uint64_t wmem : 1; 1998fa8f86a1SJerin Jacob uint64_t dsz : 2; 1999fa8f86a1SJerin Jacob uint64_t alg : 4; 2000fa8f86a1SJerin Jacob uint64_t subdc : 4; 2001fa8f86a1SJerin Jacob }; 2002fa8f86a1SJerin Jacob struct { 2003fa8f86a1SJerin Jacob uint64_t offset : 16; 2004fa8f86a1SJerin Jacob uint64_t rsvd_52_16 : 37; 2005fa8f86a1SJerin Jacob uint64_t wmem : 1; 2006fa8f86a1SJerin Jacob uint64_t dsz : 2; 2007fa8f86a1SJerin Jacob uint64_t alg : 4; 2008fa8f86a1SJerin Jacob uint64_t subdc : 4; 2009fa8f86a1SJerin Jacob } cn9k; 2010fa8f86a1SJerin Jacob }; 2011fa8f86a1SJerin Jacob 2012fa8f86a1SJerin Jacob struct nix_send_mem_s { 2013fa8f86a1SJerin Jacob union nix_send_mem_w0_u w0; 2014fa8f86a1SJerin Jacob uint64_t addr : 64; /* W1 */ 2015fa8f86a1SJerin Jacob }; 2016fa8f86a1SJerin Jacob 2017fa8f86a1SJerin Jacob /* NIX send scatter/gather sub descriptor structure */ 2018fa8f86a1SJerin Jacob union nix_send_sg2_s { 2019fa8f86a1SJerin Jacob uint64_t u; 2020fa8f86a1SJerin Jacob struct { 2021fa8f86a1SJerin Jacob uint64_t seg1_size : 16; 2022fa8f86a1SJerin Jacob uint64_t aura : 20; 2023fa8f86a1SJerin Jacob uint64_t i1 : 1; 2024fa8f86a1SJerin Jacob uint64_t fabs : 1; 2025fa8f86a1SJerin Jacob uint64_t foff : 8; 2026*9a01217eSSatha Rao uint64_t refcnt_en1 : 1; 2027*9a01217eSSatha Rao uint64_t rsvd_57_47 : 11; 2028fa8f86a1SJerin Jacob uint64_t ld_type : 2; 2029fa8f86a1SJerin Jacob uint64_t subdc : 4; 2030fa8f86a1SJerin Jacob }; 2031fa8f86a1SJerin Jacob }; 2032fa8f86a1SJerin Jacob 2033fa8f86a1SJerin Jacob union nix_send_sg_s { 2034fa8f86a1SJerin Jacob uint64_t u; 2035fa8f86a1SJerin Jacob struct { 2036fa8f86a1SJerin Jacob uint64_t seg1_size : 16; 2037fa8f86a1SJerin Jacob uint64_t seg2_size : 16; 2038fa8f86a1SJerin Jacob uint64_t seg3_size : 16; 2039fa8f86a1SJerin Jacob uint64_t segs : 2; 2040*9a01217eSSatha Rao uint64_t rsvd_51_50 : 2; 2041*9a01217eSSatha Rao uint64_t refcnt_en1 : 1; 2042*9a01217eSSatha Rao uint64_t refcnt_en2 : 1; 2043*9a01217eSSatha Rao uint64_t refcnt_en3 : 1; 2044fa8f86a1SJerin Jacob uint64_t i1 : 1; 2045fa8f86a1SJerin Jacob uint64_t i2 : 1; 2046fa8f86a1SJerin Jacob uint64_t i3 : 1; 2047fa8f86a1SJerin Jacob uint64_t ld_type : 2; 2048fa8f86a1SJerin Jacob uint64_t subdc : 4; 2049fa8f86a1SJerin Jacob }; 2050fa8f86a1SJerin Jacob }; 2051fa8f86a1SJerin Jacob 2052fa8f86a1SJerin Jacob /* NIX send work sub descriptor structure */ 2053fa8f86a1SJerin Jacob struct nix_send_work_s { 2054fa8f86a1SJerin Jacob uint64_t tag : 32; 2055fa8f86a1SJerin Jacob uint64_t tt : 2; 2056fa8f86a1SJerin Jacob uint64_t grp : 10; 2057fa8f86a1SJerin Jacob uint64_t rsvd_59_44 : 16; 2058fa8f86a1SJerin Jacob uint64_t subdc : 4; 2059fa8f86a1SJerin Jacob uint64_t addr : 64; /* W1 */ 2060fa8f86a1SJerin Jacob }; 2061fa8f86a1SJerin Jacob 2062*9a01217eSSatha Rao /* [CN20K, .) NIX sq context hardware structure */ 2063*9a01217eSSatha Rao struct nix_cn20k_sq_ctx_hw_s { 2064*9a01217eSSatha Rao uint64_t ena : 1; 2065*9a01217eSSatha Rao uint64_t substream : 20; 2066*9a01217eSSatha Rao uint64_t max_sqe_size : 2; 2067*9a01217eSSatha Rao uint64_t sqe_way_mask : 16; 2068*9a01217eSSatha Rao uint64_t sqb_aura : 20; 2069*9a01217eSSatha Rao uint64_t gbl_rsvd1 : 5; 2070*9a01217eSSatha Rao uint64_t cq_id : 20; /* W1 */ 2071*9a01217eSSatha Rao uint64_t cq_ena : 1; 2072*9a01217eSSatha Rao uint64_t qint_idx : 6; 2073*9a01217eSSatha Rao uint64_t gbl_rsvd2 : 1; 2074*9a01217eSSatha Rao uint64_t sq_int : 8; 2075*9a01217eSSatha Rao uint64_t sq_int_ena : 8; 2076*9a01217eSSatha Rao uint64_t xoff : 1; 2077*9a01217eSSatha Rao uint64_t sqe_stype : 2; 2078*9a01217eSSatha Rao uint64_t gbl_rsvd : 17; 2079*9a01217eSSatha Rao uint64_t head_sqb : 64; /* W2 */ 2080*9a01217eSSatha Rao uint64_t head_offset : 6; /* W3 */ 2081*9a01217eSSatha Rao uint64_t sqb_dequeue_count : 16; 2082*9a01217eSSatha Rao uint64_t default_chan : 12; 2083*9a01217eSSatha Rao uint64_t sdp_mcast : 1; 2084*9a01217eSSatha Rao uint64_t sso_ena : 1; 2085*9a01217eSSatha Rao uint64_t dse_rsvd1 : 28; 2086*9a01217eSSatha Rao uint64_t sqb_enqueue_count : 16; /* W4 */ 2087*9a01217eSSatha Rao uint64_t tail_offset : 6; 2088*9a01217eSSatha Rao uint64_t lmt_dis : 1; 2089*9a01217eSSatha Rao uint64_t smq_rr_weight : 14; 2090*9a01217eSSatha Rao uint64_t dnq_rsvd1 : 27; 2091*9a01217eSSatha Rao uint64_t tail_sqb : 64; /* W5 */ 2092*9a01217eSSatha Rao uint64_t next_sqb : 64; /* W6 */ 2093*9a01217eSSatha Rao uint64_t smq : 11; /* W7 */ 2094*9a01217eSSatha Rao uint64_t smq_pend : 1; 2095*9a01217eSSatha Rao uint64_t smq_next_sq : 20; 2096*9a01217eSSatha Rao uint64_t smq_next_sq_vld : 1; 2097*9a01217eSSatha Rao uint64_t mnq_dis : 1; 2098*9a01217eSSatha Rao uint64_t scm1_rsvd2 : 30; 2099*9a01217eSSatha Rao uint64_t smenq_sqb : 64; /* W8 */ 2100*9a01217eSSatha Rao uint64_t smenq_offset : 6; /* W9 */ 2101*9a01217eSSatha Rao uint64_t cq_limit : 8; 2102*9a01217eSSatha Rao uint64_t smq_rr_count : 32; 2103*9a01217eSSatha Rao uint64_t scm_lso_rem : 18; 2104*9a01217eSSatha Rao uint64_t smq_lso_segnum : 8; /* W10 */ 2105*9a01217eSSatha Rao uint64_t vfi_lso_total : 18; 2106*9a01217eSSatha Rao uint64_t vfi_lso_sizem1 : 3; 2107*9a01217eSSatha Rao uint64_t vfi_lso_sb : 8; 2108*9a01217eSSatha Rao uint64_t vfi_lso_mps : 14; 2109*9a01217eSSatha Rao uint64_t vfi_lso_vlan0_ins_ena : 1; 2110*9a01217eSSatha Rao uint64_t vfi_lso_vlan1_ins_ena : 1; 2111*9a01217eSSatha Rao uint64_t vfi_lso_vld : 1; 2112*9a01217eSSatha Rao uint64_t smenq_next_sqb_vld : 1; 2113*9a01217eSSatha Rao uint64_t scm_dq_rsvd1 : 9; 2114*9a01217eSSatha Rao uint64_t smenq_next_sqb : 64; /* W11 */ 2115*9a01217eSSatha Rao uint64_t age_drop_octs : 32; /* W12 */ 2116*9a01217eSSatha Rao uint64_t age_drop_pkts : 32; 2117*9a01217eSSatha Rao uint64_t drop_pkts : 48; /* W13 */ 2118*9a01217eSSatha Rao uint64_t drop_octs_lsw : 16; 2119*9a01217eSSatha Rao uint64_t drop_octs_msw : 32; /* W14 */ 2120*9a01217eSSatha Rao uint64_t pkts_lsw : 32; 2121*9a01217eSSatha Rao uint64_t pkts_msw : 16; /* W15 */ 2122*9a01217eSSatha Rao uint64_t octs : 48; 2123*9a01217eSSatha Rao }; 2124*9a01217eSSatha Rao 2125*9a01217eSSatha Rao /* [CN20K, .) NIX Send queue context structure */ 2126*9a01217eSSatha Rao struct nix_cn20k_sq_ctx_s { 2127*9a01217eSSatha Rao uint64_t ena : 1; /* W0 */ 2128*9a01217eSSatha Rao uint64_t qint_idx : 6; 2129*9a01217eSSatha Rao uint64_t substream : 20; 2130*9a01217eSSatha Rao uint64_t sdp_mcast : 1; 2131*9a01217eSSatha Rao uint64_t cq : 20; 2132*9a01217eSSatha Rao uint64_t sqe_way_mask : 16; 2133*9a01217eSSatha Rao uint64_t smq : 11; /* W1 */ 2134*9a01217eSSatha Rao uint64_t cq_ena : 1; 2135*9a01217eSSatha Rao uint64_t xoff : 1; 2136*9a01217eSSatha Rao uint64_t sso_ena : 1; 2137*9a01217eSSatha Rao uint64_t smq_rr_weight : 14; 2138*9a01217eSSatha Rao uint64_t default_chan : 12; 2139*9a01217eSSatha Rao uint64_t sqb_count : 16; 2140*9a01217eSSatha Rao uint64_t reserved_120_120 : 1; 2141*9a01217eSSatha Rao uint64_t smq_rr_count_lb : 7; 2142*9a01217eSSatha Rao uint64_t smq_rr_count_ub : 25; /* W2 */ 2143*9a01217eSSatha Rao uint64_t sqb_aura : 20; 2144*9a01217eSSatha Rao uint64_t sq_int : 8; 2145*9a01217eSSatha Rao uint64_t sq_int_ena : 8; 2146*9a01217eSSatha Rao uint64_t sqe_stype : 2; 2147*9a01217eSSatha Rao uint64_t reserved_191_191 : 1; 2148*9a01217eSSatha Rao uint64_t max_sqe_size : 2; /* W3 */ 2149*9a01217eSSatha Rao uint64_t cq_limit : 8; 2150*9a01217eSSatha Rao uint64_t lmt_dis : 1; 2151*9a01217eSSatha Rao uint64_t mnq_dis : 1; 2152*9a01217eSSatha Rao uint64_t smq_next_sq : 20; 2153*9a01217eSSatha Rao uint64_t smq_lso_segnum : 8; 2154*9a01217eSSatha Rao uint64_t tail_offset : 6; 2155*9a01217eSSatha Rao uint64_t smenq_offset : 6; 2156*9a01217eSSatha Rao uint64_t head_offset : 6; 2157*9a01217eSSatha Rao uint64_t smenq_next_sqb_vld : 1; 2158*9a01217eSSatha Rao uint64_t smq_pend : 1; 2159*9a01217eSSatha Rao uint64_t smq_next_sq_vld : 1; 2160*9a01217eSSatha Rao uint64_t reserved_253_255 : 3; 2161*9a01217eSSatha Rao uint64_t next_sqb : 64; /* W4 */ 2162*9a01217eSSatha Rao uint64_t tail_sqb : 64; /* W5 */ 2163*9a01217eSSatha Rao uint64_t smenq_sqb : 64; /* W6 */ 2164*9a01217eSSatha Rao uint64_t smenq_next_sqb : 64; /* W7 */ 2165*9a01217eSSatha Rao uint64_t head_sqb : 64; /* W8 */ 2166*9a01217eSSatha Rao uint64_t reserved_576_583 : 8; /* W9 */ 2167*9a01217eSSatha Rao uint64_t vfi_lso_total : 18; 2168*9a01217eSSatha Rao uint64_t vfi_lso_sizem1 : 3; 2169*9a01217eSSatha Rao uint64_t vfi_lso_sb : 8; 2170*9a01217eSSatha Rao uint64_t vfi_lso_mps : 14; 2171*9a01217eSSatha Rao uint64_t vfi_lso_vlan0_ins_ena : 1; 2172*9a01217eSSatha Rao uint64_t vfi_lso_vlan1_ins_ena : 1; 2173*9a01217eSSatha Rao uint64_t vfi_lso_vld : 1; 2174*9a01217eSSatha Rao uint64_t reserved_630_639 : 10; 2175*9a01217eSSatha Rao uint64_t scm_lso_rem : 18; /* W10 */ 2176*9a01217eSSatha Rao uint64_t reserved_658_703 : 46; 2177*9a01217eSSatha Rao uint64_t octs : 48; /* W11 */ 2178*9a01217eSSatha Rao uint64_t reserved_752_767 : 16; 2179*9a01217eSSatha Rao uint64_t pkts : 48; /* W12 */ 2180*9a01217eSSatha Rao uint64_t reserved_816_831 : 16; 2181*9a01217eSSatha Rao uint64_t aged_drop_octs : 32; /* W13 */ 2182*9a01217eSSatha Rao uint64_t aged_drop_pkts : 32; 2183*9a01217eSSatha Rao uint64_t drop_octs : 48; /* W14 */ 2184*9a01217eSSatha Rao uint64_t reserved_944_959 : 16; 2185*9a01217eSSatha Rao uint64_t drop_pkts : 48; /* W15 */ 2186*9a01217eSSatha Rao uint64_t reserved_1008_1023 : 16; 2187*9a01217eSSatha Rao }; 2188*9a01217eSSatha Rao 2189fa8f86a1SJerin Jacob /* [CN10K, .) NIX sq context hardware structure */ 2190fa8f86a1SJerin Jacob struct nix_cn10k_sq_ctx_hw_s { 2191fa8f86a1SJerin Jacob uint64_t ena : 1; 2192fa8f86a1SJerin Jacob uint64_t substream : 20; 2193fa8f86a1SJerin Jacob uint64_t max_sqe_size : 2; 2194fa8f86a1SJerin Jacob uint64_t sqe_way_mask : 16; 2195fa8f86a1SJerin Jacob uint64_t sqb_aura : 20; 2196fa8f86a1SJerin Jacob uint64_t gbl_rsvd1 : 5; 2197fa8f86a1SJerin Jacob uint64_t cq_id : 20; 2198fa8f86a1SJerin Jacob uint64_t cq_ena : 1; 2199fa8f86a1SJerin Jacob uint64_t qint_idx : 6; 2200fa8f86a1SJerin Jacob uint64_t gbl_rsvd2 : 1; 2201fa8f86a1SJerin Jacob uint64_t sq_int : 8; 2202fa8f86a1SJerin Jacob uint64_t sq_int_ena : 8; 2203fa8f86a1SJerin Jacob uint64_t xoff : 1; 2204fa8f86a1SJerin Jacob uint64_t sqe_stype : 2; 2205fa8f86a1SJerin Jacob uint64_t gbl_rsvd : 17; 2206fa8f86a1SJerin Jacob uint64_t head_sqb : 64; /* W2 */ 2207fa8f86a1SJerin Jacob uint64_t head_offset : 6; 2208fa8f86a1SJerin Jacob uint64_t sqb_dequeue_count : 16; 2209fa8f86a1SJerin Jacob uint64_t default_chan : 12; 2210fa8f86a1SJerin Jacob uint64_t sdp_mcast : 1; 2211fa8f86a1SJerin Jacob uint64_t sso_ena : 1; 2212fa8f86a1SJerin Jacob uint64_t dse_rsvd1 : 28; 2213fa8f86a1SJerin Jacob uint64_t sqb_enqueue_count : 16; 2214fa8f86a1SJerin Jacob uint64_t tail_offset : 6; 2215fa8f86a1SJerin Jacob uint64_t lmt_dis : 1; 2216fa8f86a1SJerin Jacob uint64_t smq_rr_weight : 14; 2217fa8f86a1SJerin Jacob uint64_t dnq_rsvd1 : 27; 2218fa8f86a1SJerin Jacob uint64_t tail_sqb : 64; /* W5 */ 2219fa8f86a1SJerin Jacob uint64_t next_sqb : 64; /* W6 */ 2220fa8f86a1SJerin Jacob uint64_t smq : 10; 2221fa8f86a1SJerin Jacob uint64_t smq_pend : 1; 2222fa8f86a1SJerin Jacob uint64_t smq_next_sq : 20; 2223fa8f86a1SJerin Jacob uint64_t smq_next_sq_vld : 1; 2224fa8f86a1SJerin Jacob uint64_t mnq_dis : 1; 2225fa8f86a1SJerin Jacob uint64_t scm1_rsvd2 : 31; 2226fa8f86a1SJerin Jacob uint64_t smenq_sqb : 64; /* W8 */ 2227fa8f86a1SJerin Jacob uint64_t smenq_offset : 6; 2228fa8f86a1SJerin Jacob uint64_t cq_limit : 8; 2229fa8f86a1SJerin Jacob uint64_t smq_rr_count : 32; 2230fa8f86a1SJerin Jacob uint64_t scm_lso_rem : 18; 2231fa8f86a1SJerin Jacob uint64_t smq_lso_segnum : 8; 2232fa8f86a1SJerin Jacob uint64_t vfi_lso_total : 18; 2233fa8f86a1SJerin Jacob uint64_t vfi_lso_sizem1 : 3; 2234fa8f86a1SJerin Jacob uint64_t vfi_lso_sb : 8; 2235fa8f86a1SJerin Jacob uint64_t vfi_lso_mps : 14; 2236fa8f86a1SJerin Jacob uint64_t vfi_lso_vlan0_ins_ena : 1; 2237fa8f86a1SJerin Jacob uint64_t vfi_lso_vlan1_ins_ena : 1; 2238fa8f86a1SJerin Jacob uint64_t vfi_lso_vld : 1; 2239fa8f86a1SJerin Jacob uint64_t smenq_next_sqb_vld : 1; 2240fa8f86a1SJerin Jacob uint64_t scm_dq_rsvd1 : 9; 2241fa8f86a1SJerin Jacob uint64_t smenq_next_sqb : 64; /* W11 */ 2242fa8f86a1SJerin Jacob uint64_t age_drop_octs : 32; 2243fa8f86a1SJerin Jacob uint64_t age_drop_pkts : 32; 2244fa8f86a1SJerin Jacob uint64_t drop_pkts : 48; 2245fa8f86a1SJerin Jacob uint64_t drop_octs_lsw : 16; 2246fa8f86a1SJerin Jacob uint64_t drop_octs_msw : 32; 2247fa8f86a1SJerin Jacob uint64_t pkts_lsw : 32; 2248fa8f86a1SJerin Jacob uint64_t pkts_msw : 16; 2249fa8f86a1SJerin Jacob uint64_t octs : 48; 2250fa8f86a1SJerin Jacob }; 2251fa8f86a1SJerin Jacob 2252fa8f86a1SJerin Jacob /* NIX sq context hardware structure */ 2253fa8f86a1SJerin Jacob struct nix_sq_ctx_hw_s { 2254fa8f86a1SJerin Jacob uint64_t ena : 1; 2255fa8f86a1SJerin Jacob uint64_t substream : 20; 2256fa8f86a1SJerin Jacob uint64_t max_sqe_size : 2; 2257fa8f86a1SJerin Jacob uint64_t sqe_way_mask : 16; 2258fa8f86a1SJerin Jacob uint64_t sqb_aura : 20; 2259fa8f86a1SJerin Jacob uint64_t gbl_rsvd1 : 5; 2260fa8f86a1SJerin Jacob uint64_t cq_id : 20; 2261fa8f86a1SJerin Jacob uint64_t cq_ena : 1; 2262fa8f86a1SJerin Jacob uint64_t qint_idx : 6; 2263fa8f86a1SJerin Jacob uint64_t gbl_rsvd2 : 1; 2264fa8f86a1SJerin Jacob uint64_t sq_int : 8; 2265fa8f86a1SJerin Jacob uint64_t sq_int_ena : 8; 2266fa8f86a1SJerin Jacob uint64_t xoff : 1; 2267fa8f86a1SJerin Jacob uint64_t sqe_stype : 2; 2268fa8f86a1SJerin Jacob uint64_t gbl_rsvd : 17; 2269fa8f86a1SJerin Jacob uint64_t head_sqb : 64; /* W2 */ 2270fa8f86a1SJerin Jacob uint64_t head_offset : 6; 2271fa8f86a1SJerin Jacob uint64_t sqb_dequeue_count : 16; 2272fa8f86a1SJerin Jacob uint64_t default_chan : 12; 2273fa8f86a1SJerin Jacob uint64_t sdp_mcast : 1; 2274fa8f86a1SJerin Jacob uint64_t sso_ena : 1; 2275fa8f86a1SJerin Jacob uint64_t dse_rsvd1 : 28; 2276fa8f86a1SJerin Jacob uint64_t sqb_enqueue_count : 16; 2277fa8f86a1SJerin Jacob uint64_t tail_offset : 6; 2278fa8f86a1SJerin Jacob uint64_t lmt_dis : 1; 2279fa8f86a1SJerin Jacob uint64_t smq_rr_quantum : 24; 2280fa8f86a1SJerin Jacob uint64_t dnq_rsvd1 : 17; 2281fa8f86a1SJerin Jacob uint64_t tail_sqb : 64; /* W5 */ 2282fa8f86a1SJerin Jacob uint64_t next_sqb : 64; /* W6 */ 2283fa8f86a1SJerin Jacob uint64_t mnq_dis : 1; 2284fa8f86a1SJerin Jacob uint64_t smq : 9; 2285fa8f86a1SJerin Jacob uint64_t smq_pend : 1; 2286fa8f86a1SJerin Jacob uint64_t smq_next_sq : 20; 2287fa8f86a1SJerin Jacob uint64_t smq_next_sq_vld : 1; 2288fa8f86a1SJerin Jacob uint64_t scm1_rsvd2 : 32; 2289fa8f86a1SJerin Jacob uint64_t smenq_sqb : 64; /* W8 */ 2290fa8f86a1SJerin Jacob uint64_t smenq_offset : 6; 2291fa8f86a1SJerin Jacob uint64_t cq_limit : 8; 2292fa8f86a1SJerin Jacob uint64_t smq_rr_count : 25; 2293fa8f86a1SJerin Jacob uint64_t scm_lso_rem : 18; 2294fa8f86a1SJerin Jacob uint64_t scm_dq_rsvd0 : 7; 2295fa8f86a1SJerin Jacob uint64_t smq_lso_segnum : 8; 2296fa8f86a1SJerin Jacob uint64_t vfi_lso_total : 18; 2297fa8f86a1SJerin Jacob uint64_t vfi_lso_sizem1 : 3; 2298fa8f86a1SJerin Jacob uint64_t vfi_lso_sb : 8; 2299fa8f86a1SJerin Jacob uint64_t vfi_lso_mps : 14; 2300fa8f86a1SJerin Jacob uint64_t vfi_lso_vlan0_ins_ena : 1; 2301fa8f86a1SJerin Jacob uint64_t vfi_lso_vlan1_ins_ena : 1; 2302fa8f86a1SJerin Jacob uint64_t vfi_lso_vld : 1; 2303fa8f86a1SJerin Jacob uint64_t smenq_next_sqb_vld : 1; 2304fa8f86a1SJerin Jacob uint64_t scm_dq_rsvd1 : 9; 2305fa8f86a1SJerin Jacob uint64_t smenq_next_sqb : 64; /* W11 */ 2306fa8f86a1SJerin Jacob uint64_t seb_rsvd1 : 64; /* W12 */ 2307fa8f86a1SJerin Jacob uint64_t drop_pkts : 48; 2308fa8f86a1SJerin Jacob uint64_t drop_octs_lsw : 16; 2309fa8f86a1SJerin Jacob uint64_t drop_octs_msw : 32; 2310fa8f86a1SJerin Jacob uint64_t pkts_lsw : 32; 2311fa8f86a1SJerin Jacob uint64_t pkts_msw : 16; 2312fa8f86a1SJerin Jacob uint64_t octs : 48; 2313fa8f86a1SJerin Jacob }; 2314fa8f86a1SJerin Jacob 2315fa8f86a1SJerin Jacob /* [CN10K, .) NIX Send queue context structure */ 2316fa8f86a1SJerin Jacob struct nix_cn10k_sq_ctx_s { 2317fa8f86a1SJerin Jacob uint64_t ena : 1; 2318fa8f86a1SJerin Jacob uint64_t qint_idx : 6; 2319fa8f86a1SJerin Jacob uint64_t substream : 20; 2320fa8f86a1SJerin Jacob uint64_t sdp_mcast : 1; 2321fa8f86a1SJerin Jacob uint64_t cq : 20; 2322fa8f86a1SJerin Jacob uint64_t sqe_way_mask : 16; 2323fa8f86a1SJerin Jacob uint64_t smq : 10; 2324fa8f86a1SJerin Jacob uint64_t cq_ena : 1; 2325fa8f86a1SJerin Jacob uint64_t xoff : 1; 2326fa8f86a1SJerin Jacob uint64_t sso_ena : 1; 2327fa8f86a1SJerin Jacob uint64_t smq_rr_weight : 14; 2328fa8f86a1SJerin Jacob uint64_t default_chan : 12; 2329fa8f86a1SJerin Jacob uint64_t sqb_count : 16; 2330fa8f86a1SJerin Jacob uint64_t rsvd_120_119 : 2; 2331fa8f86a1SJerin Jacob uint64_t smq_rr_count_lb : 7; 2332fa8f86a1SJerin Jacob uint64_t smq_rr_count_ub : 25; 2333fa8f86a1SJerin Jacob uint64_t sqb_aura : 20; 2334fa8f86a1SJerin Jacob uint64_t sq_int : 8; 2335fa8f86a1SJerin Jacob uint64_t sq_int_ena : 8; 2336fa8f86a1SJerin Jacob uint64_t sqe_stype : 2; 2337fa8f86a1SJerin Jacob uint64_t rsvd_191 : 1; 2338fa8f86a1SJerin Jacob uint64_t max_sqe_size : 2; 2339fa8f86a1SJerin Jacob uint64_t cq_limit : 8; 2340fa8f86a1SJerin Jacob uint64_t lmt_dis : 1; 2341fa8f86a1SJerin Jacob uint64_t mnq_dis : 1; 2342fa8f86a1SJerin Jacob uint64_t smq_next_sq : 20; 2343fa8f86a1SJerin Jacob uint64_t smq_lso_segnum : 8; 2344fa8f86a1SJerin Jacob uint64_t tail_offset : 6; 2345fa8f86a1SJerin Jacob uint64_t smenq_offset : 6; 2346fa8f86a1SJerin Jacob uint64_t head_offset : 6; 2347fa8f86a1SJerin Jacob uint64_t smenq_next_sqb_vld : 1; 2348fa8f86a1SJerin Jacob uint64_t smq_pend : 1; 2349fa8f86a1SJerin Jacob uint64_t smq_next_sq_vld : 1; 2350fa8f86a1SJerin Jacob uint64_t rsvd_255_253 : 3; 2351fa8f86a1SJerin Jacob uint64_t next_sqb : 64; /* W4 */ 2352fa8f86a1SJerin Jacob uint64_t tail_sqb : 64; /* W5 */ 2353fa8f86a1SJerin Jacob uint64_t smenq_sqb : 64; /* W6 */ 2354fa8f86a1SJerin Jacob uint64_t smenq_next_sqb : 64; /* W7 */ 2355fa8f86a1SJerin Jacob uint64_t head_sqb : 64; /* W8 */ 2356fa8f86a1SJerin Jacob uint64_t rsvd_583_576 : 8; 2357fa8f86a1SJerin Jacob uint64_t vfi_lso_total : 18; 2358fa8f86a1SJerin Jacob uint64_t vfi_lso_sizem1 : 3; 2359fa8f86a1SJerin Jacob uint64_t vfi_lso_sb : 8; 2360fa8f86a1SJerin Jacob uint64_t vfi_lso_mps : 14; 2361fa8f86a1SJerin Jacob uint64_t vfi_lso_vlan0_ins_ena : 1; 2362fa8f86a1SJerin Jacob uint64_t vfi_lso_vlan1_ins_ena : 1; 2363fa8f86a1SJerin Jacob uint64_t vfi_lso_vld : 1; 2364fa8f86a1SJerin Jacob uint64_t rsvd_639_630 : 10; 2365fa8f86a1SJerin Jacob uint64_t scm_lso_rem : 18; 2366fa8f86a1SJerin Jacob uint64_t rsvd_703_658 : 46; 2367fa8f86a1SJerin Jacob uint64_t octs : 48; 2368fa8f86a1SJerin Jacob uint64_t rsvd_767_752 : 16; 2369fa8f86a1SJerin Jacob uint64_t pkts : 48; 2370fa8f86a1SJerin Jacob uint64_t rsvd_831_816 : 16; 2371fa8f86a1SJerin Jacob uint64_t aged_drop_octs : 32; 2372fa8f86a1SJerin Jacob uint64_t aged_drop_pkts : 32; 2373fa8f86a1SJerin Jacob uint64_t drop_octs : 48; 2374fa8f86a1SJerin Jacob uint64_t rsvd_959_944 : 16; 2375fa8f86a1SJerin Jacob uint64_t drop_pkts : 48; 2376fa8f86a1SJerin Jacob uint64_t rsvd_1023_1008 : 16; 2377fa8f86a1SJerin Jacob }; 2378fa8f86a1SJerin Jacob 2379fa8f86a1SJerin Jacob /* NIX send queue context structure */ 2380fa8f86a1SJerin Jacob struct nix_sq_ctx_s { 2381fa8f86a1SJerin Jacob uint64_t ena : 1; 2382fa8f86a1SJerin Jacob uint64_t qint_idx : 6; 2383fa8f86a1SJerin Jacob uint64_t substream : 20; 2384fa8f86a1SJerin Jacob uint64_t sdp_mcast : 1; 2385fa8f86a1SJerin Jacob uint64_t cq : 20; 2386fa8f86a1SJerin Jacob uint64_t sqe_way_mask : 16; 2387fa8f86a1SJerin Jacob uint64_t smq : 9; 2388fa8f86a1SJerin Jacob uint64_t cq_ena : 1; 2389fa8f86a1SJerin Jacob uint64_t xoff : 1; 2390fa8f86a1SJerin Jacob uint64_t sso_ena : 1; 2391fa8f86a1SJerin Jacob uint64_t smq_rr_quantum : 24; 2392fa8f86a1SJerin Jacob uint64_t default_chan : 12; 2393fa8f86a1SJerin Jacob uint64_t sqb_count : 16; 2394fa8f86a1SJerin Jacob uint64_t smq_rr_count : 25; 2395fa8f86a1SJerin Jacob uint64_t sqb_aura : 20; 2396fa8f86a1SJerin Jacob uint64_t sq_int : 8; 2397fa8f86a1SJerin Jacob uint64_t sq_int_ena : 8; 2398fa8f86a1SJerin Jacob uint64_t sqe_stype : 2; 2399fa8f86a1SJerin Jacob uint64_t rsvd_191 : 1; 2400fa8f86a1SJerin Jacob uint64_t max_sqe_size : 2; 2401fa8f86a1SJerin Jacob uint64_t cq_limit : 8; 2402fa8f86a1SJerin Jacob uint64_t lmt_dis : 1; 2403fa8f86a1SJerin Jacob uint64_t mnq_dis : 1; 2404fa8f86a1SJerin Jacob uint64_t smq_next_sq : 20; 2405fa8f86a1SJerin Jacob uint64_t smq_lso_segnum : 8; 2406fa8f86a1SJerin Jacob uint64_t tail_offset : 6; 2407fa8f86a1SJerin Jacob uint64_t smenq_offset : 6; 2408fa8f86a1SJerin Jacob uint64_t head_offset : 6; 2409fa8f86a1SJerin Jacob uint64_t smenq_next_sqb_vld : 1; 2410fa8f86a1SJerin Jacob uint64_t smq_pend : 1; 2411fa8f86a1SJerin Jacob uint64_t smq_next_sq_vld : 1; 2412fa8f86a1SJerin Jacob uint64_t rsvd_255_253 : 3; 2413fa8f86a1SJerin Jacob uint64_t next_sqb : 64; /* W4 */ 2414fa8f86a1SJerin Jacob uint64_t tail_sqb : 64; /* W5 */ 2415fa8f86a1SJerin Jacob uint64_t smenq_sqb : 64; /* W6 */ 2416fa8f86a1SJerin Jacob uint64_t smenq_next_sqb : 64; /* W7 */ 2417fa8f86a1SJerin Jacob uint64_t head_sqb : 64; /* W8 */ 2418fa8f86a1SJerin Jacob uint64_t rsvd_583_576 : 8; 2419fa8f86a1SJerin Jacob uint64_t vfi_lso_total : 18; 2420fa8f86a1SJerin Jacob uint64_t vfi_lso_sizem1 : 3; 2421fa8f86a1SJerin Jacob uint64_t vfi_lso_sb : 8; 2422fa8f86a1SJerin Jacob uint64_t vfi_lso_mps : 14; 2423fa8f86a1SJerin Jacob uint64_t vfi_lso_vlan0_ins_ena : 1; 2424fa8f86a1SJerin Jacob uint64_t vfi_lso_vlan1_ins_ena : 1; 2425fa8f86a1SJerin Jacob uint64_t vfi_lso_vld : 1; 2426fa8f86a1SJerin Jacob uint64_t rsvd_639_630 : 10; 2427fa8f86a1SJerin Jacob uint64_t scm_lso_rem : 18; 2428fa8f86a1SJerin Jacob uint64_t rsvd_703_658 : 46; 2429fa8f86a1SJerin Jacob uint64_t octs : 48; 2430fa8f86a1SJerin Jacob uint64_t rsvd_767_752 : 16; 2431fa8f86a1SJerin Jacob uint64_t pkts : 48; 2432fa8f86a1SJerin Jacob uint64_t rsvd_831_816 : 16; 2433fa8f86a1SJerin Jacob uint64_t rsvd_895_832 : 64; /* W13 */ 2434fa8f86a1SJerin Jacob uint64_t drop_octs : 48; 2435fa8f86a1SJerin Jacob uint64_t rsvd_959_944 : 16; 2436fa8f86a1SJerin Jacob uint64_t drop_pkts : 48; 2437fa8f86a1SJerin Jacob uint64_t rsvd_1023_1008 : 16; 2438fa8f86a1SJerin Jacob }; 2439fa8f86a1SJerin Jacob 2440fa8f86a1SJerin Jacob /* NIX transmit action structure */ 2441fa8f86a1SJerin Jacob struct nix_tx_action_s { 2442fa8f86a1SJerin Jacob uint64_t op : 4; 2443fa8f86a1SJerin Jacob uint64_t rsvd_11_4 : 8; 2444fa8f86a1SJerin Jacob uint64_t index : 20; 2445fa8f86a1SJerin Jacob uint64_t match_id : 16; 2446fa8f86a1SJerin Jacob uint64_t rsvd_63_48 : 16; 2447fa8f86a1SJerin Jacob }; 2448fa8f86a1SJerin Jacob 2449fa8f86a1SJerin Jacob /* NIX transmit vtag action structure */ 2450fa8f86a1SJerin Jacob struct nix_tx_vtag_action_s { 2451fa8f86a1SJerin Jacob uint64_t vtag0_relptr : 8; 2452fa8f86a1SJerin Jacob uint64_t vtag0_lid : 3; 2453fa8f86a1SJerin Jacob uint64_t rsvd_11 : 1; 2454fa8f86a1SJerin Jacob uint64_t vtag0_op : 2; 2455fa8f86a1SJerin Jacob uint64_t rsvd_15_14 : 2; 2456fa8f86a1SJerin Jacob uint64_t vtag0_def : 10; 2457fa8f86a1SJerin Jacob uint64_t rsvd_31_26 : 6; 2458fa8f86a1SJerin Jacob uint64_t vtag1_relptr : 8; 2459fa8f86a1SJerin Jacob uint64_t vtag1_lid : 3; 2460fa8f86a1SJerin Jacob uint64_t rsvd_43 : 1; 2461fa8f86a1SJerin Jacob uint64_t vtag1_op : 2; 2462fa8f86a1SJerin Jacob uint64_t rsvd_47_46 : 2; 2463fa8f86a1SJerin Jacob uint64_t vtag1_def : 10; 2464fa8f86a1SJerin Jacob uint64_t rsvd_63_58 : 6; 2465fa8f86a1SJerin Jacob }; 2466fa8f86a1SJerin Jacob 2467fa8f86a1SJerin Jacob /* NIX work queue entry header structure */ 2468fa8f86a1SJerin Jacob struct nix_wqe_hdr_s { 2469fa8f86a1SJerin Jacob uint64_t tag : 32; 2470fa8f86a1SJerin Jacob uint64_t tt : 2; 2471fa8f86a1SJerin Jacob uint64_t grp : 10; 2472fa8f86a1SJerin Jacob uint64_t node : 2; 2473fa8f86a1SJerin Jacob uint64_t q : 14; 2474fa8f86a1SJerin Jacob uint64_t wqe_type : 4; 2475fa8f86a1SJerin Jacob }; 2476fa8f86a1SJerin Jacob 2477fa8f86a1SJerin Jacob /* NIX Rx flow key algorithm field structure */ 2478fa8f86a1SJerin Jacob struct nix_rx_flowkey_alg { 2479fa8f86a1SJerin Jacob uint64_t key_offset : 6; 2480fa8f86a1SJerin Jacob uint64_t ln_mask : 1; 2481fa8f86a1SJerin Jacob uint64_t fn_mask : 1; 2482fa8f86a1SJerin Jacob uint64_t hdr_offset : 8; 2483fa8f86a1SJerin Jacob uint64_t bytesm1 : 5; 2484fa8f86a1SJerin Jacob uint64_t lid : 3; 2485fa8f86a1SJerin Jacob uint64_t reserved_24_24 : 1; 2486fa8f86a1SJerin Jacob uint64_t ena : 1; 2487fa8f86a1SJerin Jacob uint64_t sel_chan : 1; 2488fa8f86a1SJerin Jacob uint64_t ltype_mask : 4; 2489fa8f86a1SJerin Jacob uint64_t ltype_match : 4; 2490fa8f86a1SJerin Jacob uint64_t reserved_35_63 : 29; 2491fa8f86a1SJerin Jacob }; 2492fa8f86a1SJerin Jacob 2493fa8f86a1SJerin Jacob /* NIX LSO format field structure */ 2494fa8f86a1SJerin Jacob struct nix_lso_format { 2495fa8f86a1SJerin Jacob uint64_t offset : 8; 2496fa8f86a1SJerin Jacob uint64_t layer : 2; 2497fa8f86a1SJerin Jacob uint64_t rsvd_10_11 : 2; 2498fa8f86a1SJerin Jacob uint64_t sizem1 : 2; 2499fa8f86a1SJerin Jacob uint64_t rsvd_14_15 : 2; 2500fa8f86a1SJerin Jacob uint64_t alg : 3; 2501fa8f86a1SJerin Jacob uint64_t rsvd_19_63 : 45; 2502fa8f86a1SJerin Jacob }; 2503fa8f86a1SJerin Jacob 2504fa8f86a1SJerin Jacob #define NIX_LSO_FIELD_MAX (8) 2505fa8f86a1SJerin Jacob #define NIX_LSO_FIELD_ALG_MASK GENMASK(18, 16) 2506fa8f86a1SJerin Jacob #define NIX_LSO_FIELD_SZ_MASK GENMASK(13, 12) 2507fa8f86a1SJerin Jacob #define NIX_LSO_FIELD_LY_MASK GENMASK(9, 8) 2508fa8f86a1SJerin Jacob #define NIX_LSO_FIELD_OFF_MASK GENMASK(7, 0) 2509fa8f86a1SJerin Jacob 2510fa8f86a1SJerin Jacob #define NIX_LSO_FIELD_MASK \ 2511fa8f86a1SJerin Jacob (NIX_LSO_FIELD_OFF_MASK | NIX_LSO_FIELD_LY_MASK | \ 2512fa8f86a1SJerin Jacob NIX_LSO_FIELD_SZ_MASK | NIX_LSO_FIELD_ALG_MASK) 2513fa8f86a1SJerin Jacob 2514fa8f86a1SJerin Jacob #define NIX_CN9K_MAX_HW_FRS 9212UL 2515fa8f86a1SJerin Jacob #define NIX_LBK_MAX_HW_FRS 65535UL 2516457d0774SSatha Rao #define NIX_SDP_MAX_HW_FRS 65535UL 2517e98f5831SSathesh Edara #define NIX_SDP_16K_HW_FRS 16380UL 2518fa8f86a1SJerin Jacob #define NIX_RPM_MAX_HW_FRS 16380UL 25193e504438SAkhil Goyal #define NIX_MIN_HW_FRS 40UL 2520fa8f86a1SJerin Jacob 25214ad8bc2fSSunil Kumar Kori /** NIX policer rate limits */ 25224ad8bc2fSSunil Kumar Kori #define NIX_BPF_MAX_RATE_DIV_EXP 12 252367e1cbf3SRakesh Kudurumalla #define NIX_BPF_MAX_RATE_EXPONENT 0x16 25244ad8bc2fSSunil Kumar Kori #define NIX_BPF_MAX_RATE_MANTISSA 0xff 25254ad8bc2fSSunil Kumar Kori 252667e1cbf3SRakesh Kudurumalla #define NIX_BPF_RATE_CONST 8000000000ULL 25274ad8bc2fSSunil Kumar Kori 25284ad8bc2fSSunil Kumar Kori /* NIX rate calculation in Bits/Sec 25294ad8bc2fSSunil Kumar Kori * PIR_ADD = ((256 + NIX_*_PIR[RATE_MANTISSA]) 25304ad8bc2fSSunil Kumar Kori * << NIX_*_PIR[RATE_EXPONENT]) / 256 25314ad8bc2fSSunil Kumar Kori * PIR = (2E6 * PIR_ADD / (1 << NIX_*_PIR[RATE_DIVIDER_EXPONENT])) 25324ad8bc2fSSunil Kumar Kori * 25334ad8bc2fSSunil Kumar Kori * CIR_ADD = ((256 + NIX_*_CIR[RATE_MANTISSA]) 25344ad8bc2fSSunil Kumar Kori * << NIX_*_CIR[RATE_EXPONENT]) / 256 25354ad8bc2fSSunil Kumar Kori * CIR = (2E6 * CIR_ADD / (CCLK_TICKS << NIX_*_CIR[RATE_DIVIDER_EXPONENT])) 25364ad8bc2fSSunil Kumar Kori */ 253767e1cbf3SRakesh Kudurumalla #define NIX_BPF_RATE(policer_timeunit, exponent, mantissa, div_exp) \ 25384ad8bc2fSSunil Kumar Kori ((NIX_BPF_RATE_CONST * ((256 + (mantissa)) << (exponent))) / \ 253967e1cbf3SRakesh Kudurumalla (((1ull << (div_exp)) * 256 * policer_timeunit))) 25404ad8bc2fSSunil Kumar Kori 25414ad8bc2fSSunil Kumar Kori #define NIX_BPF_DEFAULT_ADJUST_MANTISSA 511 25424ad8bc2fSSunil Kumar Kori #define NIX_BPF_DEFAULT_ADJUST_EXPONENT 0 25434ad8bc2fSSunil Kumar Kori 25444ad8bc2fSSunil Kumar Kori /** NIX burst limits */ 25454ad8bc2fSSunil Kumar Kori #define NIX_BPF_MAX_BURST_EXPONENT 0xf 25464ad8bc2fSSunil Kumar Kori #define NIX_BPF_MAX_BURST_MANTISSA 0xff 25474ad8bc2fSSunil Kumar Kori 25484ad8bc2fSSunil Kumar Kori /* NIX burst calculation 25494ad8bc2fSSunil Kumar Kori * PIR_BURST = ((256 + NIX_*_PIR[BURST_MANTISSA]) 25504ad8bc2fSSunil Kumar Kori * << (NIX_*_PIR[BURST_EXPONENT] + 1)) 25514ad8bc2fSSunil Kumar Kori * / 256 25524ad8bc2fSSunil Kumar Kori * 25534ad8bc2fSSunil Kumar Kori * CIR_BURST = ((256 + NIX_*_CIR[BURST_MANTISSA]) 25544ad8bc2fSSunil Kumar Kori * << (NIX_*_CIR[BURST_EXPONENT] + 1)) 25554ad8bc2fSSunil Kumar Kori * / 256 25564ad8bc2fSSunil Kumar Kori */ 25574ad8bc2fSSunil Kumar Kori #define NIX_BPF_BURST(exponent, mantissa) \ 25584ad8bc2fSSunil Kumar Kori (((256 + (mantissa)) << ((exponent) + 1)) / 256) 25594ad8bc2fSSunil Kumar Kori 25604ad8bc2fSSunil Kumar Kori /** Meter burst limits */ 25614ad8bc2fSSunil Kumar Kori #define NIX_BPF_BURST_MIN NIX_BPF_BURST(0, 0) 25624ad8bc2fSSunil Kumar Kori #define NIX_BPF_BURST_MAX \ 25634ad8bc2fSSunil Kumar Kori NIX_BPF_BURST(NIX_BPF_MAX_BURST_EXPONENT, NIX_BPF_MAX_BURST_MANTISSA) 25644ad8bc2fSSunil Kumar Kori 2565fa8f86a1SJerin Jacob /* NIX rate limits */ 2566fa8f86a1SJerin Jacob #define NIX_TM_MAX_RATE_DIV_EXP 12 2567fa8f86a1SJerin Jacob #define NIX_TM_MAX_RATE_EXPONENT 0xf 2568fa8f86a1SJerin Jacob #define NIX_TM_MAX_RATE_MANTISSA 0xff 2569fa8f86a1SJerin Jacob 2570fa8f86a1SJerin Jacob #define NIX_TM_SHAPER_RATE_CONST ((uint64_t)2E6) 2571fa8f86a1SJerin Jacob 2572fa8f86a1SJerin Jacob /* NIX rate calculation in Bits/Sec 2573fa8f86a1SJerin Jacob * PIR_ADD = ((256 + NIX_*_PIR[RATE_MANTISSA]) 2574fa8f86a1SJerin Jacob * << NIX_*_PIR[RATE_EXPONENT]) / 256 2575fa8f86a1SJerin Jacob * PIR = (2E6 * PIR_ADD / (1 << NIX_*_PIR[RATE_DIVIDER_EXPONENT])) 2576fa8f86a1SJerin Jacob * 2577fa8f86a1SJerin Jacob * CIR_ADD = ((256 + NIX_*_CIR[RATE_MANTISSA]) 2578fa8f86a1SJerin Jacob * << NIX_*_CIR[RATE_EXPONENT]) / 256 2579fa8f86a1SJerin Jacob * CIR = (2E6 * CIR_ADD / (CCLK_TICKS << NIX_*_CIR[RATE_DIVIDER_EXPONENT])) 2580fa8f86a1SJerin Jacob */ 2581fa8f86a1SJerin Jacob #define NIX_TM_SHAPER_RATE(exponent, mantissa, div_exp) \ 2582fa8f86a1SJerin Jacob ((NIX_TM_SHAPER_RATE_CONST * ((256 + (mantissa)) << (exponent))) / \ 2583fa8f86a1SJerin Jacob (((1ull << (div_exp)) * 256))) 2584fa8f86a1SJerin Jacob 2585fa8f86a1SJerin Jacob /* Rate limit in Bits/Sec */ 2586fa8f86a1SJerin Jacob #define NIX_TM_MIN_SHAPER_RATE NIX_TM_SHAPER_RATE(0, 0, NIX_TM_MAX_RATE_DIV_EXP) 2587fa8f86a1SJerin Jacob 2588fa8f86a1SJerin Jacob #define NIX_TM_MAX_SHAPER_RATE \ 2589fa8f86a1SJerin Jacob NIX_TM_SHAPER_RATE(NIX_TM_MAX_RATE_EXPONENT, NIX_TM_MAX_RATE_MANTISSA, \ 2590fa8f86a1SJerin Jacob 0) 2591fa8f86a1SJerin Jacob 2592680078faSSatha Rao #define NIX_TM_MIN_SHAPER_PPS_RATE 25 2593680078faSSatha Rao #define NIX_TM_MAX_SHAPER_PPS_RATE (100ul << 20) 2594680078faSSatha Rao 2595fa8f86a1SJerin Jacob /* NIX burst limits */ 25966fe49f10SNithin Dabilpuram #define NIX_TM_MAX_BURST_EXPONENT 0xful 25976fe49f10SNithin Dabilpuram #define NIX_TM_MAX_BURST_MANTISSA 0x7ffful 25986fe49f10SNithin Dabilpuram #define NIX_CN9K_TM_MAX_BURST_MANTISSA 0xfful 2599fa8f86a1SJerin Jacob 2600fa8f86a1SJerin Jacob /* NIX burst calculation 2601fa8f86a1SJerin Jacob * PIR_BURST = ((256 + NIX_*_PIR[BURST_MANTISSA]) 2602fa8f86a1SJerin Jacob * << (NIX_*_PIR[BURST_EXPONENT] + 1)) 2603fa8f86a1SJerin Jacob * / 256 2604fa8f86a1SJerin Jacob * 2605fa8f86a1SJerin Jacob * CIR_BURST = ((256 + NIX_*_CIR[BURST_MANTISSA]) 2606fa8f86a1SJerin Jacob * << (NIX_*_CIR[BURST_EXPONENT] + 1)) 2607fa8f86a1SJerin Jacob * / 256 2608fa8f86a1SJerin Jacob */ 2609fa8f86a1SJerin Jacob #define NIX_TM_SHAPER_BURST(exponent, mantissa) \ 26106fe49f10SNithin Dabilpuram (((256ul + (mantissa)) << ((exponent) + 1)) / 256ul) 2611fa8f86a1SJerin Jacob 2612fa8f86a1SJerin Jacob /* Burst limit in Bytes */ 2613fa8f86a1SJerin Jacob #define NIX_TM_MIN_SHAPER_BURST NIX_TM_SHAPER_BURST(0, 0) 2614fa8f86a1SJerin Jacob 2615fa8f86a1SJerin Jacob #define NIX_TM_MAX_SHAPER_BURST \ 2616fa8f86a1SJerin Jacob NIX_TM_SHAPER_BURST(NIX_TM_MAX_BURST_EXPONENT, \ 2617fa8f86a1SJerin Jacob NIX_TM_MAX_BURST_MANTISSA) 2618fa8f86a1SJerin Jacob 26196fe49f10SNithin Dabilpuram #define NIX_CN9K_TM_MAX_SHAPER_BURST \ 26206fe49f10SNithin Dabilpuram NIX_TM_SHAPER_BURST(NIX_TM_MAX_BURST_EXPONENT, \ 26216fe49f10SNithin Dabilpuram NIX_CN9K_TM_MAX_BURST_MANTISSA) 26226fe49f10SNithin Dabilpuram 2623fa8f86a1SJerin Jacob /* Min is limited so that NIX_AF_SMQX_CFG[MINLEN]+ADJUST is not -ve */ 2624fa8f86a1SJerin Jacob #define NIX_TM_LENGTH_ADJUST_MIN ((int)-NIX_MIN_HW_FRS + 1) 2625fa8f86a1SJerin Jacob #define NIX_TM_LENGTH_ADJUST_MAX 255 2626fa8f86a1SJerin Jacob 2627fa8f86a1SJerin Jacob #define NIX_TM_TLX_SP_PRIO_MAX 10 2628fa8f86a1SJerin Jacob #define NIX_CN9K_TM_RR_QUANTUM_MAX (BIT_ULL(24) - 1) 26296fe49f10SNithin Dabilpuram #define NIX_TM_RR_WEIGHT_MAX (BIT_ULL(14) - 1) 2630fa8f86a1SJerin Jacob 2631*9a01217eSSatha Rao /* [CN9K, .) */ 2632*9a01217eSSatha Rao #define NIX_TXSCH_LVL_TL1_MAX 28 2633*9a01217eSSatha Rao #define NIX_TXSCH_LVL_TL2_MAX 256 2634*9a01217eSSatha Rao 2635*9a01217eSSatha Rao /* CN9K */ 2636*9a01217eSSatha Rao #define NIX_CN9K_TXSCH_LVL_TL3_MAX 256 2637*9a01217eSSatha Rao #define NIX_CN9K_TXSCH_LVL_TL4_MAX 512 2638fa8f86a1SJerin Jacob #define NIX_CN9K_TXSCH_LVL_SMQ_MAX 512 2639fa8f86a1SJerin Jacob 2640*9a01217eSSatha Rao /* CN10K */ 2641*9a01217eSSatha Rao #define NIX_CN10K_TXSCH_LVL_TL3_MAX 256 2642*9a01217eSSatha Rao #define NIX_CN10K_TXSCH_LVL_TL4_MAX 512 2643*9a01217eSSatha Rao #define NIX_CN10K_TXSCH_LVL_SMQ_MAX 832 2644fa8f86a1SJerin Jacob 2645*9a01217eSSatha Rao /* [CN20K, .) */ 2646*9a01217eSSatha Rao #define NIX_TXSCH_LVL_TL3_MAX 512 2647*9a01217eSSatha Rao #define NIX_TXSCH_LVL_TL4_MAX 1280 2648*9a01217eSSatha Rao #define NIX_TXSCH_LVL_SMQ_MAX 2048 2649fa8f86a1SJerin Jacob 2650fa8f86a1SJerin Jacob #define NIX_CQ_OP_STAT_OP_ERR 63 2651fa8f86a1SJerin Jacob #define NIX_CQ_OP_STAT_CQ_ERR 46 2652fa8f86a1SJerin Jacob 2653fa8f86a1SJerin Jacob #define NIX_RQ_CN10K_SPB_MAX_SIZE 4096 2654fa8f86a1SJerin Jacob 2655fa8f86a1SJerin Jacob /* [CN9K, .) */ 2656fa8f86a1SJerin Jacob #define NIX_LSO_SEG_MAX 256 2657fa8f86a1SJerin Jacob #define NIX_LSO_MPS_MAX (BIT_ULL(14) - 1) 2658fa8f86a1SJerin Jacob 2659fa8f86a1SJerin Jacob /* Software defined LSO base format IDX */ 2660fa8f86a1SJerin Jacob #define NIX_LSO_FORMAT_IDX_TSOV4 0 2661fa8f86a1SJerin Jacob #define NIX_LSO_FORMAT_IDX_TSOV6 1 2662fa8f86a1SJerin Jacob 26638cfde95dSSatha Rao /* [CN10K, .) */ 26648cfde95dSSatha Rao #define NIX_SENDSTATALG_MASK 0x7 26658cfde95dSSatha Rao #define NIX_SENDSTATALG_SEL_MASK 0x8 26668cfde95dSSatha Rao #define NIX_SENDSTAT_IOFFSET_MASK 0xFFF 26678cfde95dSSatha Rao #define NIX_SENDSTAT_OOFFSET_MASK 0xFFF 26688cfde95dSSatha Rao 2669*9a01217eSSatha Rao /* The mask is to extract lower 10-bits of channel number 2670*9a01217eSSatha Rao * which CPT will pass to X2P. 2671*9a01217eSSatha Rao */ 2672*9a01217eSSatha Rao #define NIX_CHAN_CPT_X2P_MASK (0x3ffull) 2673*9a01217eSSatha Rao 2674fa8f86a1SJerin Jacob #endif /* __NIX_HW_H__ */ 2675