1fa8f86a1SJerin Jacob /* SPDX-License-Identifier: BSD-3-Clause 2fa8f86a1SJerin Jacob * Copyright(C) 2021 Marvell. 3fa8f86a1SJerin Jacob */ 4fa8f86a1SJerin Jacob 5fa8f86a1SJerin Jacob #ifndef __RVU_HW_H__ 6fa8f86a1SJerin Jacob #define __RVU_HW_H__ 7fa8f86a1SJerin Jacob 8fa8f86a1SJerin Jacob /* Register offsets */ 9fa8f86a1SJerin Jacob 10fa8f86a1SJerin Jacob #define RVU_AF_MSIXTR_BASE (0x10ull) 11fa8f86a1SJerin Jacob #define RVU_AF_BLK_RST (0x30ull) 12fa8f86a1SJerin Jacob #define RVU_AF_PF_BAR4_ADDR (0x40ull) 13fa8f86a1SJerin Jacob #define RVU_AF_RAS (0x100ull) 14fa8f86a1SJerin Jacob #define RVU_AF_RAS_W1S (0x108ull) 15fa8f86a1SJerin Jacob #define RVU_AF_RAS_ENA_W1S (0x110ull) 16fa8f86a1SJerin Jacob #define RVU_AF_RAS_ENA_W1C (0x118ull) 17fa8f86a1SJerin Jacob #define RVU_AF_GEN_INT (0x120ull) 18fa8f86a1SJerin Jacob #define RVU_AF_GEN_INT_W1S (0x128ull) 19fa8f86a1SJerin Jacob #define RVU_AF_GEN_INT_ENA_W1S (0x130ull) 20fa8f86a1SJerin Jacob #define RVU_AF_GEN_INT_ENA_W1C (0x138ull) 21fa8f86a1SJerin Jacob #define RVU_AF_AFPFX_MBOXX(a, b) \ 22fa8f86a1SJerin Jacob (0x2000ull | (uint64_t)(a) << 4 | (uint64_t)(b) << 3) 23fa8f86a1SJerin Jacob #define RVU_AF_PFME_STATUS (0x2800ull) 24fa8f86a1SJerin Jacob #define RVU_AF_PFTRPEND (0x2810ull) 25fa8f86a1SJerin Jacob #define RVU_AF_PFTRPEND_W1S (0x2820ull) 26fa8f86a1SJerin Jacob #define RVU_AF_PF_RST (0x2840ull) 27fa8f86a1SJerin Jacob #define RVU_AF_HWVF_RST (0x2850ull) 28fa8f86a1SJerin Jacob #define RVU_AF_PFAF_MBOX_INT (0x2880ull) 29fa8f86a1SJerin Jacob #define RVU_AF_PFAF_MBOX_INT_W1S (0x2888ull) 30fa8f86a1SJerin Jacob #define RVU_AF_PFAF_MBOX_INT_ENA_W1S (0x2890ull) 31fa8f86a1SJerin Jacob #define RVU_AF_PFAF_MBOX_INT_ENA_W1C (0x2898ull) 32fa8f86a1SJerin Jacob #define RVU_AF_PFFLR_INT (0x28a0ull) 33fa8f86a1SJerin Jacob #define RVU_AF_PFFLR_INT_W1S (0x28a8ull) 34fa8f86a1SJerin Jacob #define RVU_AF_PFFLR_INT_ENA_W1S (0x28b0ull) 35fa8f86a1SJerin Jacob #define RVU_AF_PFFLR_INT_ENA_W1C (0x28b8ull) 36fa8f86a1SJerin Jacob #define RVU_AF_PFME_INT (0x28c0ull) 37fa8f86a1SJerin Jacob #define RVU_AF_PFME_INT_W1S (0x28c8ull) 38fa8f86a1SJerin Jacob #define RVU_AF_PFME_INT_ENA_W1S (0x28d0ull) 39fa8f86a1SJerin Jacob #define RVU_AF_PFME_INT_ENA_W1C (0x28d8ull) 40fa8f86a1SJerin Jacob #define RVU_PRIV_CONST (0x8000000ull) 41fa8f86a1SJerin Jacob #define RVU_PRIV_GEN_CFG (0x8000010ull) 42fa8f86a1SJerin Jacob #define RVU_PRIV_CLK_CFG (0x8000020ull) 43fa8f86a1SJerin Jacob #define RVU_PRIV_ACTIVE_PC (0x8000030ull) 44fa8f86a1SJerin Jacob #define RVU_PRIV_PFX_CFG(a) (0x8000100ull | (uint64_t)(a) << 16) 45fa8f86a1SJerin Jacob #define RVU_PRIV_PFX_MSIX_CFG(a) (0x8000110ull | (uint64_t)(a) << 16) 46fa8f86a1SJerin Jacob #define RVU_PRIV_PFX_ID_CFG(a) (0x8000120ull | (uint64_t)(a) << 16) 47fa8f86a1SJerin Jacob #define RVU_PRIV_PFX_INT_CFG(a) (0x8000200ull | (uint64_t)(a) << 16) 48fa8f86a1SJerin Jacob #define RVU_PRIV_PFX_NIXX_CFG(a, b) \ 49fa8f86a1SJerin Jacob (0x8000300ull | (uint64_t)(a) << 16 | (uint64_t)(b) << 3) 50fa8f86a1SJerin Jacob #define RVU_PRIV_PFX_NPA_CFG(a) (0x8000310ull | (uint64_t)(a) << 16) 51fa8f86a1SJerin Jacob #define RVU_PRIV_PFX_SSO_CFG(a) (0x8000320ull | (uint64_t)(a) << 16) 52fa8f86a1SJerin Jacob #define RVU_PRIV_PFX_SSOW_CFG(a) (0x8000330ull | (uint64_t)(a) << 16) 53fa8f86a1SJerin Jacob #define RVU_PRIV_PFX_TIM_CFG(a) (0x8000340ull | (uint64_t)(a) << 16) 54fa8f86a1SJerin Jacob #define RVU_PRIV_PFX_CPTX_CFG(a, b) \ 55fa8f86a1SJerin Jacob (0x8000350ull | (uint64_t)(a) << 16 | (uint64_t)(b) << 3) 56fa8f86a1SJerin Jacob #define RVU_PRIV_BLOCK_TYPEX_REV(a) (0x8000400ull | (uint64_t)(a) << 3) 57fa8f86a1SJerin Jacob #define RVU_PRIV_HWVFX_INT_CFG(a) (0x8001280ull | (uint64_t)(a) << 16) 58fa8f86a1SJerin Jacob #define RVU_PRIV_HWVFX_NIXX_CFG(a, b) \ 59fa8f86a1SJerin Jacob (0x8001300ull | (uint64_t)(a) << 16 | (uint64_t)(b) << 3) 60fa8f86a1SJerin Jacob #define RVU_PRIV_HWVFX_NPA_CFG(a) (0x8001310ull | (uint64_t)(a) << 16) 61fa8f86a1SJerin Jacob #define RVU_PRIV_HWVFX_SSO_CFG(a) (0x8001320ull | (uint64_t)(a) << 16) 62fa8f86a1SJerin Jacob #define RVU_PRIV_HWVFX_SSOW_CFG(a) (0x8001330ull | (uint64_t)(a) << 16) 63fa8f86a1SJerin Jacob #define RVU_PRIV_HWVFX_TIM_CFG(a) (0x8001340ull | (uint64_t)(a) << 16) 64fa8f86a1SJerin Jacob #define RVU_PRIV_HWVFX_CPTX_CFG(a, b) \ 65fa8f86a1SJerin Jacob (0x8001350ull | (uint64_t)(a) << 16 | (uint64_t)(b) << 3) 66fa8f86a1SJerin Jacob 67fa8f86a1SJerin Jacob #define RVU_PF_VFX_PFVF_MBOXX(a, b) \ 68fa8f86a1SJerin Jacob (0x0ull | (uint64_t)(a) << 12 | (uint64_t)(b) << 3) 69fa8f86a1SJerin Jacob #define RVU_PF_VF_BAR4_ADDR (0x10ull) 70*9a01217eSSatha Rao 71*9a01217eSSatha Rao #define RVU_PF_DISC (0x0ull) /* [CN20K, .) */ 72*9a01217eSSatha Rao #define RVU_PF_BLOCK_ADDRX_DISC(a) (0x200ull | (uint64_t)(a) << 3) /* [CN9K, CN20K) */ 73fa8f86a1SJerin Jacob #define RVU_PF_VFME_STATUSX(a) (0x800ull | (uint64_t)(a) << 3) 74fa8f86a1SJerin Jacob #define RVU_PF_VFTRPENDX(a) (0x820ull | (uint64_t)(a) << 3) 75fa8f86a1SJerin Jacob #define RVU_PF_VFTRPEND_W1SX(a) (0x840ull | (uint64_t)(a) << 3) 76fa8f86a1SJerin Jacob #define RVU_PF_VFPF_MBOX_INTX(a) (0x880ull | (uint64_t)(a) << 3) 77fa8f86a1SJerin Jacob #define RVU_PF_VFPF_MBOX_INT_W1SX(a) (0x8a0ull | (uint64_t)(a) << 3) 78fa8f86a1SJerin Jacob #define RVU_PF_VFPF_MBOX_INT_ENA_W1SX(a) (0x8c0ull | (uint64_t)(a) << 3) 79fa8f86a1SJerin Jacob #define RVU_PF_VFPF_MBOX_INT_ENA_W1CX(a) (0x8e0ull | (uint64_t)(a) << 3) 80fa8f86a1SJerin Jacob #define RVU_PF_VFFLR_INTX(a) (0x900ull | (uint64_t)(a) << 3) 81fa8f86a1SJerin Jacob #define RVU_PF_VFFLR_INT_W1SX(a) (0x920ull | (uint64_t)(a) << 3) 82fa8f86a1SJerin Jacob #define RVU_PF_VFFLR_INT_ENA_W1SX(a) (0x940ull | (uint64_t)(a) << 3) 83fa8f86a1SJerin Jacob #define RVU_PF_VFFLR_INT_ENA_W1CX(a) (0x960ull | (uint64_t)(a) << 3) 84fa8f86a1SJerin Jacob #define RVU_PF_VFME_INTX(a) (0x980ull | (uint64_t)(a) << 3) 85fa8f86a1SJerin Jacob #define RVU_PF_VFME_INT_W1SX(a) (0x9a0ull | (uint64_t)(a) << 3) 86fa8f86a1SJerin Jacob #define RVU_PF_VFME_INT_ENA_W1SX(a) (0x9c0ull | (uint64_t)(a) << 3) 87fa8f86a1SJerin Jacob #define RVU_PF_VFME_INT_ENA_W1CX(a) (0x9e0ull | (uint64_t)(a) << 3) 88fa8f86a1SJerin Jacob #define RVU_PF_PFAF_MBOXX(a) (0xc00ull | (uint64_t)(a) << 3) 89fa8f86a1SJerin Jacob #define RVU_PF_INT (0xc20ull) 90fa8f86a1SJerin Jacob #define RVU_PF_INT_W1S (0xc28ull) 91fa8f86a1SJerin Jacob #define RVU_PF_INT_ENA_W1S (0xc30ull) 92fa8f86a1SJerin Jacob #define RVU_PF_INT_ENA_W1C (0xc38ull) 93fa8f86a1SJerin Jacob #define RVU_PF_MSIX_VECX_ADDR(a) (0x80000ull | (uint64_t)(a) << 4) 94fa8f86a1SJerin Jacob #define RVU_PF_MSIX_VECX_CTL(a) (0x80008ull | (uint64_t)(a) << 4) 95fa8f86a1SJerin Jacob #define RVU_PF_MSIX_PBAX(a) (0xf0000ull | (uint64_t)(a) << 3) 96*9a01217eSSatha Rao #define RVU_VF_DISC (0x0ull) /* [CN20K, .) */ 97*9a01217eSSatha Rao #define RVU_VF_VFPF_MBOXX(a) (0x0ull | (uint64_t)(a) << 3) /* [CN9K, CN20K) */ 98fa8f86a1SJerin Jacob #define RVU_VF_INT (0x20ull) 99fa8f86a1SJerin Jacob #define RVU_VF_INT_W1S (0x28ull) 100fa8f86a1SJerin Jacob #define RVU_VF_INT_ENA_W1S (0x30ull) 101fa8f86a1SJerin Jacob #define RVU_VF_INT_ENA_W1C (0x38ull) 102fa8f86a1SJerin Jacob #define RVU_VF_BLOCK_ADDRX_DISC(a) (0x200ull | (uint64_t)(a) << 3) 103fa8f86a1SJerin Jacob #define RVU_VF_MSIX_VECX_ADDR(a) (0x80000ull | (uint64_t)(a) << 4) 104fa8f86a1SJerin Jacob #define RVU_VF_MSIX_VECX_CTL(a) (0x80008ull | (uint64_t)(a) << 4) 105fa8f86a1SJerin Jacob #define RVU_VF_MBOX_REGION (0xc0000ull) /* [CN10K, .) */ 106fa8f86a1SJerin Jacob #define RVU_VF_MSIX_PBAX(a) (0xf0000ull | (uint64_t)(a) << 3) 107fa8f86a1SJerin Jacob 10861deac72SHarman Kalra /* CN20k RVU mbox registers */ 10961deac72SHarman Kalra #define RVU_MBOX_AF_AFPFX_TRIGX(a) (0x9000 | (a) << 3) 11061deac72SHarman Kalra #define RVU_MBOX_PF_PFAF_TRIGX(a) RVU_PF_PFAF_MBOXX(a) 1119bd368caSHarman Kalra #define RVU_MBOX_PF_VFX_PFVF_TRIGX(a) (0x2000 | (a) << 3) 1129bd368caSHarman Kalra #define RVU_MBOX_VF_VFPF_TRIGX(a) (0x3000 | (a) << 3) 1139bd368caSHarman Kalra 1149bd368caSHarman Kalra #define RVU_PF_VF_MBOX_ADDR (0xC40) 11561deac72SHarman Kalra 11661deac72SHarman Kalra /* cn20k Enum */ 11761deac72SHarman Kalra #define RVU_PFX_FUNC_PFAF_MBOX (0x80000) 11861deac72SHarman Kalra 11961deac72SHarman Kalra #define RVU_FUNC_BLKADDR_SHIFT 20 12061deac72SHarman Kalra #define RVU_FUNC_BLKADDR_MASK 0x1FULL 12161deac72SHarman Kalra 122fa8f86a1SJerin Jacob /* Enum offsets */ 123fa8f86a1SJerin Jacob 124fa8f86a1SJerin Jacob #define RVU_BAR_RVU_PF_END_BAR0 (0x84f000000000ull) 125fa8f86a1SJerin Jacob #define RVU_BAR_RVU_PF_START_BAR0 (0x840000000000ull) 126fa8f86a1SJerin Jacob #define RVU_BAR_RVU_PFX_FUNCX_BAR2(a, b) \ 127fa8f86a1SJerin Jacob (0x840200000000ull | ((uint64_t)(a) << 36) | ((uint64_t)(b) << 25)) 128fa8f86a1SJerin Jacob 129fa8f86a1SJerin Jacob #define RVU_AF_INT_VEC_POISON (0x0ull) 130fa8f86a1SJerin Jacob #define RVU_AF_INT_VEC_PFFLR (0x1ull) 131fa8f86a1SJerin Jacob #define RVU_AF_INT_VEC_PFME (0x2ull) 132fa8f86a1SJerin Jacob #define RVU_AF_INT_VEC_GEN (0x3ull) 133fa8f86a1SJerin Jacob #define RVU_AF_INT_VEC_MBOX (0x4ull) 134fa8f86a1SJerin Jacob 135fa8f86a1SJerin Jacob #define RVU_BLOCK_TYPE_RVUM (0x0ull) 136fa8f86a1SJerin Jacob #define RVU_BLOCK_TYPE_LMT (0x2ull) 137fa8f86a1SJerin Jacob #define RVU_BLOCK_TYPE_NIX (0x3ull) 138fa8f86a1SJerin Jacob #define RVU_BLOCK_TYPE_NPA (0x4ull) 139fa8f86a1SJerin Jacob #define RVU_BLOCK_TYPE_NPC (0x5ull) 140fa8f86a1SJerin Jacob #define RVU_BLOCK_TYPE_SSO (0x6ull) 141fa8f86a1SJerin Jacob #define RVU_BLOCK_TYPE_SSOW (0x7ull) 142fa8f86a1SJerin Jacob #define RVU_BLOCK_TYPE_TIM (0x8ull) 143fa8f86a1SJerin Jacob #define RVU_BLOCK_TYPE_CPT (0x9ull) 144fa8f86a1SJerin Jacob #define RVU_BLOCK_TYPE_NDC (0xaull) 145fa8f86a1SJerin Jacob #define RVU_BLOCK_TYPE_DDF (0xbull) 146fa8f86a1SJerin Jacob #define RVU_BLOCK_TYPE_ZIP (0xcull) 147fa8f86a1SJerin Jacob #define RVU_BLOCK_TYPE_RAD (0xdull) 148fa8f86a1SJerin Jacob #define RVU_BLOCK_TYPE_DFA (0xeull) 149fa8f86a1SJerin Jacob #define RVU_BLOCK_TYPE_HNA (0xfull) 15020a027ccSLiron Himi #define RVU_BLOCK_TYPE_REE (0xeull) 151fa8f86a1SJerin Jacob 152fa8f86a1SJerin Jacob #define RVU_BLOCK_ADDR_RVUM (0x0ull) 153fa8f86a1SJerin Jacob #define RVU_BLOCK_ADDR_LMT (0x1ull) 154fa8f86a1SJerin Jacob #define RVU_BLOCK_ADDR_NPA (0x3ull) 155fa8f86a1SJerin Jacob #define RVU_BLOCK_ADDR_NIX0 (0x4ull) 156fa8f86a1SJerin Jacob #define RVU_BLOCK_ADDR_NIX1 (0x5ull) 157fa8f86a1SJerin Jacob #define RVU_BLOCK_ADDR_NPC (0x6ull) 158fa8f86a1SJerin Jacob #define RVU_BLOCK_ADDR_SSO (0x7ull) 159fa8f86a1SJerin Jacob #define RVU_BLOCK_ADDR_SSOW (0x8ull) 160fa8f86a1SJerin Jacob #define RVU_BLOCK_ADDR_TIM (0x9ull) 161fa8f86a1SJerin Jacob #define RVU_BLOCK_ADDR_CPT0 (0xaull) 162fa8f86a1SJerin Jacob #define RVU_BLOCK_ADDR_CPT1 (0xbull) 163fa8f86a1SJerin Jacob #define RVU_BLOCK_ADDR_NDC0 (0xcull) 164fa8f86a1SJerin Jacob #define RVU_BLOCK_ADDR_NDC1 (0xdull) 165fa8f86a1SJerin Jacob #define RVU_BLOCK_ADDR_NDC2 (0xeull) 166fa8f86a1SJerin Jacob #define RVU_BLOCK_ADDR_R_END (0x1full) 167fa8f86a1SJerin Jacob #define RVU_BLOCK_ADDR_R_START (0x14ull) 16820a027ccSLiron Himi #define RVU_BLOCK_ADDR_REE0 (0x14ull) 16920a027ccSLiron Himi #define RVU_BLOCK_ADDR_REE1 (0x15ull) 17061deac72SHarman Kalra #define RVU_BLOCK_ADDR_MBOX (0x1bULL) 171fa8f86a1SJerin Jacob 172fa8f86a1SJerin Jacob #define RVU_VF_INT_VEC_MBOX (0x0ull) 173fa8f86a1SJerin Jacob 174fa8f86a1SJerin Jacob #define RVU_PF_INT_VEC_AFPF_MBOX (0x6ull) 175fa8f86a1SJerin Jacob #define RVU_PF_INT_VEC_VFFLR0 (0x0ull) 176fa8f86a1SJerin Jacob #define RVU_PF_INT_VEC_VFFLR1 (0x1ull) 177fa8f86a1SJerin Jacob #define RVU_PF_INT_VEC_VFME0 (0x2ull) 178fa8f86a1SJerin Jacob #define RVU_PF_INT_VEC_VFME1 (0x3ull) 179fa8f86a1SJerin Jacob #define RVU_PF_INT_VEC_VFPF_MBOX0 (0x4ull) 180fa8f86a1SJerin Jacob #define RVU_PF_INT_VEC_VFPF_MBOX1 (0x5ull) 181fa8f86a1SJerin Jacob 18261deac72SHarman Kalra #define RVU_MBOX_PF_INT_VEC_VFPF_MBOX0 (0x4ull) 18361deac72SHarman Kalra #define RVU_MBOX_PF_INT_VEC_VFPF_MBOX1 (0x5ull) 18461deac72SHarman Kalra #define RVU_MBOX_PF_INT_VEC_VFPF1_MBOX0 (0x6ull) 18561deac72SHarman Kalra #define RVU_MBOX_PF_INT_VEC_VFPF1_MBOX1 (0x7ull) 18661deac72SHarman Kalra #define RVU_MBOX_PF_INT_VEC_AFPF_MBOX (0x8ull) 18761deac72SHarman Kalra 1889bd368caSHarman Kalra #define RVU_MBOX_PF_VFPF_INTX(a) (0x1000 | (a) << 3) 1899bd368caSHarman Kalra #define RVU_MBOX_PF_VFPF_INT_W1SX(a) (0x1020 | (a) << 3) 1909bd368caSHarman Kalra #define RVU_MBOX_PF_VFPF_INT_ENA_W1SX(a) (0x1040 | (a) << 3) 1919bd368caSHarman Kalra #define RVU_MBOX_PF_VFPF_INT_ENA_W1CX(a) (0x1060 | (a) << 3) 1929bd368caSHarman Kalra 1939bd368caSHarman Kalra #define RVU_MBOX_PF_VFPF1_INTX(a) (0x1080 | (a) << 3) 1949bd368caSHarman Kalra #define RVU_MBOX_PF_VFPF1_INT_W1SX(a) (0x10a0 | (a) << 3) 1959bd368caSHarman Kalra #define RVU_MBOX_PF_VFPF1_INT_ENA_W1SX(a) (0x10c0 | (a) << 3) 1969bd368caSHarman Kalra #define RVU_MBOX_PF_VFPF1_INT_ENA_W1CX(a) (0x10e0 | (a) << 3) 1979bd368caSHarman Kalra 198fa8f86a1SJerin Jacob #define AF_BAR2_ALIASX_SIZE (0x100000ull) 199fa8f86a1SJerin Jacob 200fa8f86a1SJerin Jacob #define TIM_AF_BAR2_SEL (0x9000000ull) 201fa8f86a1SJerin Jacob #define SSO_AF_BAR2_SEL (0x9000000ull) 202fa8f86a1SJerin Jacob #define NIX_AF_BAR2_SEL (0x9000000ull) 203fa8f86a1SJerin Jacob #define SSOW_AF_BAR2_SEL (0x9000000ull) 204fa8f86a1SJerin Jacob #define NPA_AF_BAR2_SEL (0x9000000ull) 205fa8f86a1SJerin Jacob #define CPT_AF_BAR2_SEL (0x9000000ull) 206fa8f86a1SJerin Jacob #define RVU_AF_BAR2_SEL (0x9000000ull) 20720a027ccSLiron Himi #define REE_AF_BAR2_SEL (0x9000000ull) 208fa8f86a1SJerin Jacob 209fa8f86a1SJerin Jacob #define AF_BAR2_ALIASX(a, b) \ 210fa8f86a1SJerin Jacob (0x9100000ull | (uint64_t)(a) << 12 | (uint64_t)(b)) 211fa8f86a1SJerin Jacob #define TIM_AF_BAR2_ALIASX(a, b) AF_BAR2_ALIASX(a, b) 212fa8f86a1SJerin Jacob #define SSO_AF_BAR2_ALIASX(a, b) AF_BAR2_ALIASX(a, b) 213fa8f86a1SJerin Jacob #define NIX_AF_BAR2_ALIASX(a, b) AF_BAR2_ALIASX(0, b) 214fa8f86a1SJerin Jacob #define SSOW_AF_BAR2_ALIASX(a, b) AF_BAR2_ALIASX(a, b) 215fa8f86a1SJerin Jacob #define NPA_AF_BAR2_ALIASX(a, b) AF_BAR2_ALIASX(0, b) 216fa8f86a1SJerin Jacob #define CPT_AF_BAR2_ALIASX(a, b) AF_BAR2_ALIASX(a, b) 217fa8f86a1SJerin Jacob #define RVU_AF_BAR2_ALIASX(a, b) AF_BAR2_ALIASX(a, b) 21820a027ccSLiron Himi #define REE_AF_BAR2_ALIASX(a, b) AF_BAR2_ALIASX(a, b) 219fa8f86a1SJerin Jacob 220fa8f86a1SJerin Jacob /* Structures definitions */ 221fa8f86a1SJerin Jacob 222fa8f86a1SJerin Jacob /* RVU admin function register address structure */ 223fa8f86a1SJerin Jacob struct rvu_af_addr_s { 224fa8f86a1SJerin Jacob uint64_t addr : 28; 225fa8f86a1SJerin Jacob uint64_t block : 5; 226fa8f86a1SJerin Jacob uint64_t rsvd_63_33 : 31; 227fa8f86a1SJerin Jacob }; 228fa8f86a1SJerin Jacob 229fa8f86a1SJerin Jacob /* RVU function-unique address structure */ 230fa8f86a1SJerin Jacob struct rvu_func_addr_s { 231fa8f86a1SJerin Jacob uint32_t addr : 12; 232fa8f86a1SJerin Jacob uint32_t lf_slot : 8; 233fa8f86a1SJerin Jacob uint32_t block : 5; 234fa8f86a1SJerin Jacob uint32_t rsvd_31_25 : 7; 235fa8f86a1SJerin Jacob }; 236fa8f86a1SJerin Jacob 237fa8f86a1SJerin Jacob /* RVU msi-x vector structure */ 238fa8f86a1SJerin Jacob struct rvu_msix_vec_s { 239fa8f86a1SJerin Jacob uint64_t addr : 64; /* W0 */ 240fa8f86a1SJerin Jacob uint64_t data : 32; 241fa8f86a1SJerin Jacob uint64_t mask : 1; 242fa8f86a1SJerin Jacob uint64_t pend : 1; 243fa8f86a1SJerin Jacob uint64_t rsvd_127_98 : 30; 244fa8f86a1SJerin Jacob }; 245fa8f86a1SJerin Jacob 246fa8f86a1SJerin Jacob /* RVU pf function identification structure */ 247fa8f86a1SJerin Jacob struct rvu_pf_func_s { 248fa8f86a1SJerin Jacob uint16_t func : 10; 249fa8f86a1SJerin Jacob uint16_t pf : 6; 250fa8f86a1SJerin Jacob }; 251fa8f86a1SJerin Jacob 252fa8f86a1SJerin Jacob #define RVU_CN9K_LMT_SLOT_MAX 256ULL 253fa8f86a1SJerin Jacob #define RVU_CN9K_LMT_SLOT_MASK (RVU_CN9K_LMT_SLOT_MAX - 1) 254fa8f86a1SJerin Jacob 255fa8f86a1SJerin Jacob #define RVU_LMT_SZ 128ULL 256fa8f86a1SJerin Jacob 257fa8f86a1SJerin Jacob /* 2048 LMT lines in BAR4 [CN10k, .) */ 258fa8f86a1SJerin Jacob #define RVU_LMT_LINE_MAX 2048 259fa8f86a1SJerin Jacob #define RVU_LMT_LINE_BURST_MAX (uint16_t)32 /* [CN10K, .) */ 260fa8f86a1SJerin Jacob 261fa8f86a1SJerin Jacob #endif /* __RVU_HW_H__ */ 262