linux/drivers/net/ethernet/marvell/octeontx2/af/rvu_reg.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/* Marvell RVU Admin Function driver
   3 *
   4 * Copyright (C) 2018 Marvell.
   5 *
   6 */
   7
   8#ifndef RVU_REG_H
   9#define RVU_REG_H
  10
  11/* Admin function registers */
  12#define RVU_AF_MSIXTR_BASE                  (0x10)
  13#define RVU_AF_ECO                          (0x20)
  14#define RVU_AF_BLK_RST                      (0x30)
  15#define RVU_AF_PF_BAR4_ADDR                 (0x40)
  16#define RVU_AF_RAS                          (0x100)
  17#define RVU_AF_RAS_W1S                      (0x108)
  18#define RVU_AF_RAS_ENA_W1S                  (0x110)
  19#define RVU_AF_RAS_ENA_W1C                  (0x118)
  20#define RVU_AF_GEN_INT                      (0x120)
  21#define RVU_AF_GEN_INT_W1S                  (0x128)
  22#define RVU_AF_GEN_INT_ENA_W1S              (0x130)
  23#define RVU_AF_GEN_INT_ENA_W1C              (0x138)
  24#define RVU_AF_AFPF_MBOX0                   (0x02000)
  25#define RVU_AF_AFPF_MBOX1                   (0x02008)
  26#define RVU_AF_AFPFX_MBOXX(a, b)            (0x2000 | (a) << 4 | (b) << 3)
  27#define RVU_AF_PFME_STATUS                  (0x2800)
  28#define RVU_AF_PFTRPEND                     (0x2810)
  29#define RVU_AF_PFTRPEND_W1S                 (0x2820)
  30#define RVU_AF_PF_RST                       (0x2840)
  31#define RVU_AF_HWVF_RST                     (0x2850)
  32#define RVU_AF_PFAF_MBOX_INT                (0x2880)
  33#define RVU_AF_PFAF_MBOX_INT_W1S            (0x2888)
  34#define RVU_AF_PFAF_MBOX_INT_ENA_W1S        (0x2890)
  35#define RVU_AF_PFAF_MBOX_INT_ENA_W1C        (0x2898)
  36#define RVU_AF_PFFLR_INT                    (0x28a0)
  37#define RVU_AF_PFFLR_INT_W1S                (0x28a8)
  38#define RVU_AF_PFFLR_INT_ENA_W1S            (0x28b0)
  39#define RVU_AF_PFFLR_INT_ENA_W1C            (0x28b8)
  40#define RVU_AF_PFME_INT                     (0x28c0)
  41#define RVU_AF_PFME_INT_W1S                 (0x28c8)
  42#define RVU_AF_PFME_INT_ENA_W1S             (0x28d0)
  43#define RVU_AF_PFME_INT_ENA_W1C             (0x28d8)
  44#define RVU_AF_PFX_BAR4_ADDR(a)             (0x5000 | (a) << 4)
  45#define RVU_AF_PFX_BAR4_CFG                 (0x5200 | (a) << 4)
  46#define RVU_AF_PFX_VF_BAR4_ADDR             (0x5400 | (a) << 4)
  47#define RVU_AF_PFX_VF_BAR4_CFG              (0x5600 | (a) << 4)
  48#define RVU_AF_PFX_LMTLINE_ADDR             (0x5800 | (a) << 4)
  49#define RVU_AF_SMMU_ADDR_REQ                (0x6000)
  50#define RVU_AF_SMMU_TXN_REQ                 (0x6008)
  51#define RVU_AF_SMMU_ADDR_RSP_STS            (0x6010)
  52#define RVU_AF_SMMU_ADDR_TLN                (0x6018)
  53#define RVU_AF_SMMU_TLN_FLIT0               (0x6020)
  54
  55/* Admin function's privileged PF/VF registers */
  56#define RVU_PRIV_CONST                      (0x8000000)
  57#define RVU_PRIV_GEN_CFG                    (0x8000010)
  58#define RVU_PRIV_CLK_CFG                    (0x8000020)
  59#define RVU_PRIV_ACTIVE_PC                  (0x8000030)
  60#define RVU_PRIV_PFX_CFG(a)                 (0x8000100 | (a) << 16)
  61#define RVU_PRIV_PFX_MSIX_CFG(a)            (0x8000110 | (a) << 16)
  62#define RVU_PRIV_PFX_ID_CFG(a)              (0x8000120 | (a) << 16)
  63#define RVU_PRIV_PFX_INT_CFG(a)             (0x8000200 | (a) << 16)
  64#define RVU_PRIV_PFX_NIXX_CFG(a)            (0x8000300 | (a) << 3)
  65#define RVU_PRIV_PFX_NPA_CFG                (0x8000310)
  66#define RVU_PRIV_PFX_SSO_CFG                (0x8000320)
  67#define RVU_PRIV_PFX_SSOW_CFG               (0x8000330)
  68#define RVU_PRIV_PFX_TIM_CFG                (0x8000340)
  69#define RVU_PRIV_PFX_CPTX_CFG(a)            (0x8000350 | (a) << 3)
  70#define RVU_PRIV_BLOCK_TYPEX_REV(a)         (0x8000400 | (a) << 3)
  71#define RVU_PRIV_HWVFX_INT_CFG(a)           (0x8001280 | (a) << 16)
  72#define RVU_PRIV_HWVFX_NIXX_CFG(a)          (0x8001300 | (a) << 3)
  73#define RVU_PRIV_HWVFX_NPA_CFG              (0x8001310)
  74#define RVU_PRIV_HWVFX_SSO_CFG              (0x8001320)
  75#define RVU_PRIV_HWVFX_SSOW_CFG             (0x8001330)
  76#define RVU_PRIV_HWVFX_TIM_CFG              (0x8001340)
  77#define RVU_PRIV_HWVFX_CPTX_CFG(a)          (0x8001350 | (a) << 3)
  78
  79/* RVU PF registers */
  80#define RVU_PF_VFX_PFVF_MBOX0               (0x00000)
  81#define RVU_PF_VFX_PFVF_MBOX1               (0x00008)
  82#define RVU_PF_VFX_PFVF_MBOXX(a, b)         (0x0 | (a) << 12 | (b) << 3)
  83#define RVU_PF_VF_BAR4_ADDR                 (0x10)
  84#define RVU_PF_BLOCK_ADDRX_DISC(a)          (0x200 | (a) << 3)
  85#define RVU_PF_VFME_STATUSX(a)              (0x800 | (a) << 3)
  86#define RVU_PF_VFTRPENDX(a)                 (0x820 | (a) << 3)
  87#define RVU_PF_VFTRPEND_W1SX(a)             (0x840 | (a) << 3)
  88#define RVU_PF_VFPF_MBOX_INTX(a)            (0x880 | (a) << 3)
  89#define RVU_PF_VFPF_MBOX_INT_W1SX(a)        (0x8A0 | (a) << 3)
  90#define RVU_PF_VFPF_MBOX_INT_ENA_W1SX(a)    (0x8C0 | (a) << 3)
  91#define RVU_PF_VFPF_MBOX_INT_ENA_W1CX(a)    (0x8E0 | (a) << 3)
  92#define RVU_PF_VFFLR_INTX(a)                (0x900 | (a) << 3)
  93#define RVU_PF_VFFLR_INT_W1SX(a)            (0x920 | (a) << 3)
  94#define RVU_PF_VFFLR_INT_ENA_W1SX(a)        (0x940 | (a) << 3)
  95#define RVU_PF_VFFLR_INT_ENA_W1CX(a)        (0x960 | (a) << 3)
  96#define RVU_PF_VFME_INTX(a)                 (0x980 | (a) << 3)
  97#define RVU_PF_VFME_INT_W1SX(a)             (0x9A0 | (a) << 3)
  98#define RVU_PF_VFME_INT_ENA_W1SX(a)         (0x9C0 | (a) << 3)
  99#define RVU_PF_VFME_INT_ENA_W1CX(a)         (0x9E0 | (a) << 3)
 100#define RVU_PF_PFAF_MBOX0                   (0xC00)
 101#define RVU_PF_PFAF_MBOX1                   (0xC08)
 102#define RVU_PF_PFAF_MBOXX(a)                (0xC00 | (a) << 3)
 103#define RVU_PF_INT                          (0xc20)
 104#define RVU_PF_INT_W1S                      (0xc28)
 105#define RVU_PF_INT_ENA_W1S                  (0xc30)
 106#define RVU_PF_INT_ENA_W1C                  (0xc38)
 107#define RVU_PF_MSIX_VECX_ADDR(a)            (0x000 | (a) << 4)
 108#define RVU_PF_MSIX_VECX_CTL(a)             (0x008 | (a) << 4)
 109#define RVU_PF_MSIX_PBAX(a)                 (0xF0000 | (a) << 3)
 110#define RVU_PF_VF_MBOX_ADDR                 (0xC40)
 111#define RVU_PF_LMTLINE_ADDR                 (0xC48)
 112
 113/* RVU VF registers */
 114#define RVU_VF_VFPF_MBOX0                   (0x00000)
 115#define RVU_VF_VFPF_MBOX1                   (0x00008)
 116
 117/* NPA block's admin function registers */
 118#define NPA_AF_BLK_RST                  (0x0000)
 119#define NPA_AF_CONST                    (0x0010)
 120#define NPA_AF_CONST1                   (0x0018)
 121#define NPA_AF_LF_RST                   (0x0020)
 122#define NPA_AF_GEN_CFG                  (0x0030)
 123#define NPA_AF_NDC_CFG                  (0x0040)
 124#define NPA_AF_INP_CTL                  (0x00D0)
 125#define NPA_AF_ACTIVE_CYCLES_PC         (0x00F0)
 126#define NPA_AF_AVG_DELAY                (0x0100)
 127#define NPA_AF_GEN_INT                  (0x0140)
 128#define NPA_AF_GEN_INT_W1S              (0x0148)
 129#define NPA_AF_GEN_INT_ENA_W1S          (0x0150)
 130#define NPA_AF_GEN_INT_ENA_W1C          (0x0158)
 131#define NPA_AF_RVU_INT                  (0x0160)
 132#define NPA_AF_RVU_INT_W1S              (0x0168)
 133#define NPA_AF_RVU_INT_ENA_W1S          (0x0170)
 134#define NPA_AF_RVU_INT_ENA_W1C          (0x0178)
 135#define NPA_AF_ERR_INT                  (0x0180)
 136#define NPA_AF_ERR_INT_W1S              (0x0188)
 137#define NPA_AF_ERR_INT_ENA_W1S          (0x0190)
 138#define NPA_AF_ERR_INT_ENA_W1C          (0x0198)
 139#define NPA_AF_RAS                      (0x01A0)
 140#define NPA_AF_RAS_W1S                  (0x01A8)
 141#define NPA_AF_RAS_ENA_W1S              (0x01B0)
 142#define NPA_AF_RAS_ENA_W1C              (0x01B8)
 143#define NPA_AF_BP_TEST                  (0x0200)
 144#define NPA_AF_ECO                      (0x0300)
 145#define NPA_AF_AQ_CFG                   (0x0600)
 146#define NPA_AF_AQ_BASE                  (0x0610)
 147#define NPA_AF_AQ_STATUS                (0x0620)
 148#define NPA_AF_AQ_DOOR                  (0x0630)
 149#define NPA_AF_AQ_DONE_WAIT             (0x0640)
 150#define NPA_AF_AQ_DONE                  (0x0650)
 151#define NPA_AF_AQ_DONE_ACK              (0x0660)
 152#define NPA_AF_AQ_DONE_INT              (0x0680)
 153#define NPA_AF_AQ_DONE_INT_W1S          (0x0688)
 154#define NPA_AF_AQ_DONE_ENA_W1S          (0x0690)
 155#define NPA_AF_AQ_DONE_ENA_W1C          (0x0698)
 156#define NPA_AF_BATCH_CTL                (0x06a0)
 157#define NPA_AF_LFX_AURAS_CFG(a)         (0x4000 | (a) << 18)
 158#define NPA_AF_LFX_LOC_AURAS_BASE(a)    (0x4010 | (a) << 18)
 159#define NPA_AF_LFX_QINTS_CFG(a)         (0x4100 | (a) << 18)
 160#define NPA_AF_LFX_QINTS_BASE(a)        (0x4110 | (a) << 18)
 161#define NPA_PRIV_AF_INT_CFG             (0x10000)
 162#define NPA_PRIV_LFX_CFG                (0x10010)
 163#define NPA_PRIV_LFX_INT_CFG            (0x10020)
 164#define NPA_AF_RVU_LF_CFG_DEBUG         (0x10030)
 165
 166/* NIX block's admin function registers */
 167#define NIX_AF_CFG                      (0x0000)
 168#define NIX_AF_STATUS                   (0x0010)
 169#define NIX_AF_NDC_CFG                  (0x0018)
 170#define NIX_AF_CONST                    (0x0020)
 171#define NIX_AF_CONST1                   (0x0028)
 172#define NIX_AF_CONST2                   (0x0030)
 173#define NIX_AF_CONST3                   (0x0038)
 174#define NIX_AF_SQ_CONST                 (0x0040)
 175#define NIX_AF_CQ_CONST                 (0x0048)
 176#define NIX_AF_RQ_CONST                 (0x0050)
 177#define NIX_AF_PL_CONST                 (0x0058)
 178#define NIX_AF_PSE_CONST                (0x0060)
 179#define NIX_AF_TL1_CONST                (0x0070)
 180#define NIX_AF_TL2_CONST                (0x0078)
 181#define NIX_AF_TL3_CONST                (0x0080)
 182#define NIX_AF_TL4_CONST                (0x0088)
 183#define NIX_AF_MDQ_CONST                (0x0090)
 184#define NIX_AF_MC_MIRROR_CONST          (0x0098)
 185#define NIX_AF_LSO_CFG                  (0x00A8)
 186#define NIX_AF_BLK_RST                  (0x00B0)
 187#define NIX_AF_TX_TSTMP_CFG             (0x00C0)
 188#define NIX_AF_PL_TS                    (0x00C8)
 189#define NIX_AF_RX_CFG                   (0x00D0)
 190#define NIX_AF_AVG_DELAY                (0x00E0)
 191#define NIX_AF_CINT_DELAY               (0x00F0)
 192#define NIX_AF_RX_MCAST_BASE            (0x0100)
 193#define NIX_AF_RX_MCAST_CFG             (0x0110)
 194#define NIX_AF_RX_MCAST_BUF_BASE        (0x0120)
 195#define NIX_AF_RX_MCAST_BUF_CFG         (0x0130)
 196#define NIX_AF_RX_MIRROR_BUF_BASE       (0x0140)
 197#define NIX_AF_RX_MIRROR_BUF_CFG        (0x0148)
 198#define NIX_AF_LF_RST                   (0x0150)
 199#define NIX_AF_GEN_INT                  (0x0160)
 200#define NIX_AF_GEN_INT_W1S              (0x0168)
 201#define NIX_AF_GEN_INT_ENA_W1S          (0x0170)
 202#define NIX_AF_GEN_INT_ENA_W1C          (0x0178)
 203#define NIX_AF_ERR_INT                  (0x0180)
 204#define NIX_AF_ERR_INT_W1S              (0x0188)
 205#define NIX_AF_ERR_INT_ENA_W1S          (0x0190)
 206#define NIX_AF_ERR_INT_ENA_W1C          (0x0198)
 207#define NIX_AF_RAS                      (0x01A0)
 208#define NIX_AF_RAS_W1S                  (0x01A8)
 209#define NIX_AF_RAS_ENA_W1S              (0x01B0)
 210#define NIX_AF_RAS_ENA_W1C              (0x01B8)
 211#define NIX_AF_RVU_INT                  (0x01C0)
 212#define NIX_AF_RVU_INT_W1S              (0x01C8)
 213#define NIX_AF_RVU_INT_ENA_W1S          (0x01D0)
 214#define NIX_AF_RVU_INT_ENA_W1C          (0x01D8)
 215#define NIX_AF_TCP_TIMER                (0x01E0)
 216#define NIX_AF_RX_DEF_ET(a)             (0x01F0ull | (uint64_t)(a) << 3)
 217#define NIX_AF_RX_DEF_OL2               (0x0200)
 218#define NIX_AF_RX_DEF_OIP4              (0x0210)
 219#define NIX_AF_RX_DEF_IIP4              (0x0220)
 220#define NIX_AF_RX_DEF_VLAN0_PCP_DEI     (0x0228)
 221#define NIX_AF_RX_DEF_OIP6              (0x0230)
 222#define NIX_AF_RX_DEF_VLAN1_PCP_DEI     (0x0238)
 223#define NIX_AF_RX_DEF_IIP6              (0x0240)
 224#define NIX_AF_RX_DEF_OTCP              (0x0250)
 225#define NIX_AF_RX_DEF_ITCP              (0x0260)
 226#define NIX_AF_RX_DEF_OUDP              (0x0270)
 227#define NIX_AF_RX_DEF_IUDP              (0x0280)
 228#define NIX_AF_RX_DEF_OSCTP             (0x0290)
 229#define NIX_AF_RX_DEF_CST_APAD0         (0x0298)
 230#define NIX_AF_RX_DEF_ISCTP             (0x02A0)
 231#define NIX_AF_RX_DEF_IPSECX            (0x02B0)
 232#define NIX_AF_RX_DEF_CST_APAD1         (0x02A8)
 233#define NIX_AF_RX_DEF_IIP4_DSCP         (0x02E0)
 234#define NIX_AF_RX_DEF_OIP4_DSCP         (0x02E8)
 235#define NIX_AF_RX_DEF_IIP6_DSCP         (0x02F0)
 236#define NIX_AF_RX_DEF_OIP6_DSCP         (0x02F8)
 237#define NIX_AF_RX_IPSEC_GEN_CFG         (0x0300)
 238#define NIX_AF_RX_CPTX_INST_ADDR        (0x0310)
 239#define NIX_AF_RX_CPTX_INST_QSEL(a)     (0x0320ull | (uint64_t)(a) << 3)
 240#define NIX_AF_RX_CPTX_CREDIT(a)        (0x0360ull | (uint64_t)(a) << 3)
 241#define NIX_AF_NDC_TX_SYNC              (0x03F0)
 242#define NIX_AF_AQ_CFG                   (0x0400)
 243#define NIX_AF_AQ_BASE                  (0x0410)
 244#define NIX_AF_AQ_STATUS                (0x0420)
 245#define NIX_AF_AQ_DOOR                  (0x0430)
 246#define NIX_AF_AQ_DONE_WAIT             (0x0440)
 247#define NIX_AF_AQ_DONE                  (0x0450)
 248#define NIX_AF_AQ_DONE_ACK              (0x0460)
 249#define NIX_AF_AQ_DONE_TIMER            (0x0470)
 250#define NIX_AF_AQ_DONE_INT              (0x0480)
 251#define NIX_AF_AQ_DONE_INT_W1S          (0x0488)
 252#define NIX_AF_AQ_DONE_ENA_W1S          (0x0490)
 253#define NIX_AF_AQ_DONE_ENA_W1C          (0x0498)
 254#define NIX_AF_RX_LINKX_SLX_SPKT_CNT    (0x0500)
 255#define NIX_AF_RX_LINKX_SLX_SXQE_CNT    (0x0510)
 256#define NIX_AF_RX_MCAST_JOBSX_SW_CNT    (0x0520)
 257#define NIX_AF_RX_MIRROR_JOBSX_SW_CNT   (0x0530)
 258#define NIX_AF_RX_LINKX_CFG(a)          (0x0540 | (a) << 16)
 259#define NIX_AF_RX_SW_SYNC               (0x0550)
 260#define NIX_AF_RX_SW_SYNC_DONE          (0x0560)
 261#define NIX_AF_SEB_ECO                  (0x0600)
 262#define NIX_AF_SEB_TEST_BP              (0x0610)
 263#define NIX_AF_NORM_TX_FIFO_STATUS      (0x0620)
 264#define NIX_AF_EXPR_TX_FIFO_STATUS      (0x0630)
 265#define NIX_AF_SDP_TX_FIFO_STATUS       (0x0640)
 266#define NIX_AF_TX_NPC_CAPTURE_CONFIG    (0x0660)
 267#define NIX_AF_TX_NPC_CAPTURE_INFO      (0x0670)
 268#define NIX_AF_SEB_CFG                  (0x05F0)
 269
 270#define NIX_AF_DEBUG_NPC_RESP_DATAX(a)          (0x680 | (a) << 3)
 271#define NIX_AF_SMQX_CFG(a)                      (0x700 | (a) << 16)
 272#define NIX_AF_SQM_DBG_CTL_STATUS               (0x750)
 273#define NIX_AF_DWRR_SDP_MTU                     (0x790)
 274#define NIX_AF_DWRR_RPM_MTU                     (0x7A0)
 275#define NIX_AF_PSE_CHANNEL_LEVEL                (0x800)
 276#define NIX_AF_PSE_SHAPER_CFG                   (0x810)
 277#define NIX_AF_TX_EXPR_CREDIT                   (0x830)
 278#define NIX_AF_MARK_FORMATX_CTL(a)              (0x900 | (a) << 18)
 279#define NIX_AF_TX_LINKX_NORM_CREDIT(a)          (0xA00 | (a) << 16)
 280#define NIX_AF_TX_LINKX_EXPR_CREDIT(a)          (0xA10 | (a) << 16)
 281#define NIX_AF_TX_LINKX_SW_XOFF(a)              (0xA20 | (a) << 16)
 282#define NIX_AF_TX_LINKX_HW_XOFF(a)              (0xA30 | (a) << 16)
 283#define NIX_AF_SDP_LINK_CREDIT                  (0xa40)
 284#define NIX_AF_SDP_SW_XOFFX(a)                  (0xA60 | (a) << 3)
 285#define NIX_AF_SDP_HW_XOFFX(a)                  (0xAC0 | (a) << 3)
 286#define NIX_AF_TL4X_BP_STATUS(a)                (0xB00 | (a) << 16)
 287#define NIX_AF_TL4X_SDP_LINK_CFG(a)             (0xB10 | (a) << 16)
 288#define NIX_AF_TL1X_SCHEDULE(a)                 (0xC00 | (a) << 16)
 289#define NIX_AF_TL1X_SHAPE(a)                    (0xC10 | (a) << 16)
 290#define NIX_AF_TL1X_CIR(a)                      (0xC20 | (a) << 16)
 291#define NIX_AF_TL1X_SHAPE_STATE(a)              (0xC50 | (a) << 16)
 292#define NIX_AF_TL1X_SW_XOFF(a)                  (0xC70 | (a) << 16)
 293#define NIX_AF_TL1X_TOPOLOGY(a)                 (0xC80 | (a) << 16)
 294#define NIX_AF_TL1X_GREEN(a)                    (0xC90 | (a) << 16)
 295#define NIX_AF_TL1X_YELLOW(a)                   (0xCA0 | (a) << 16)
 296#define NIX_AF_TL1X_RED(a)                      (0xCB0 | (a) << 16)
 297#define NIX_AF_TL1X_MD_DEBUG0(a)                (0xCC0 | (a) << 16)
 298#define NIX_AF_TL1X_MD_DEBUG1(a)                (0xCC8 | (a) << 16)
 299#define NIX_AF_TL1X_MD_DEBUG2(a)                (0xCD0 | (a) << 16)
 300#define NIX_AF_TL1X_MD_DEBUG3(a)                (0xCD8 | (a) << 16)
 301#define NIX_AF_TL1A_DEBUG                       (0xce0)
 302#define NIX_AF_TL1B_DEBUG                       (0xcf0)
 303#define NIX_AF_TL1_DEBUG_GREEN                  (0xd00)
 304#define NIX_AF_TL1_DEBUG_NODE                   (0xd10)
 305#define NIX_AF_TL1X_DROPPED_PACKETS(a)          (0xD20 | (a) << 16)
 306#define NIX_AF_TL1X_DROPPED_BYTES(a)            (0xD30 | (a) << 16)
 307#define NIX_AF_TL1X_RED_PACKETS(a)              (0xD40 | (a) << 16)
 308#define NIX_AF_TL1X_RED_BYTES(a)                (0xD50 | (a) << 16)
 309#define NIX_AF_TL1X_YELLOW_PACKETS(a)           (0xD60 | (a) << 16)
 310#define NIX_AF_TL1X_YELLOW_BYTES(a)             (0xD70 | (a) << 16)
 311#define NIX_AF_TL1X_GREEN_PACKETS(a)            (0xD80 | (a) << 16)
 312#define NIX_AF_TL1X_GREEN_BYTES(a)              (0xD90 | (a) << 16)
 313#define NIX_AF_TL2X_SCHEDULE(a)                 (0xE00 | (a) << 16)
 314#define NIX_AF_TL2X_SHAPE(a)                    (0xE10 | (a) << 16)
 315#define NIX_AF_TL2X_CIR(a)                      (0xE20 | (a) << 16)
 316#define NIX_AF_TL2X_PIR(a)                      (0xE30 | (a) << 16)
 317#define NIX_AF_TL2X_SCHED_STATE(a)              (0xE40 | (a) << 16)
 318#define NIX_AF_TL2X_SHAPE_STATE(a)              (0xE50 | (a) << 16)
 319#define NIX_AF_TL2X_POINTERS(a)                 (0xE60 | (a) << 16)
 320#define NIX_AF_TL2X_SW_XOFF(a)                  (0xE70 | (a) << 16)
 321#define NIX_AF_TL2X_TOPOLOGY(a)                 (0xE80 | (a) << 16)
 322#define NIX_AF_TL2X_PARENT(a)                   (0xE88 | (a) << 16)
 323#define NIX_AF_TL2X_GREEN(a)                    (0xE90 | (a) << 16)
 324#define NIX_AF_TL2X_YELLOW(a)                   (0xEA0 | (a) << 16)
 325#define NIX_AF_TL2X_RED(a)                      (0xEB0 | (a) << 16)
 326#define NIX_AF_TL2X_MD_DEBUG0(a)                (0xEC0 | (a) << 16)
 327#define NIX_AF_TL2X_MD_DEBUG1(a)                (0xEC8 | (a) << 16)
 328#define NIX_AF_TL2X_MD_DEBUG2(a)                (0xED0 | (a) << 16)
 329#define NIX_AF_TL2X_MD_DEBUG3(a)                (0xED8 | (a) << 16)
 330#define NIX_AF_TL2A_DEBUG                       (0xee0)
 331#define NIX_AF_TL2B_DEBUG                       (0xef0)
 332#define NIX_AF_TL3X_SCHEDULE(a)                 (0x1000 | (a) << 16)
 333#define NIX_AF_TL3X_SHAPE(a)                    (0x1010 | (a) << 16)
 334#define NIX_AF_TL3X_CIR(a)                      (0x1020 | (a) << 16)
 335#define NIX_AF_TL3X_PIR(a)                      (0x1030 | (a) << 16)
 336#define NIX_AF_TL3X_SCHED_STATE(a)              (0x1040 | (a) << 16)
 337#define NIX_AF_TL3X_SHAPE_STATE(a)              (0x1050 | (a) << 16)
 338#define NIX_AF_TL3X_POINTERS(a)                 (0x1060 | (a) << 16)
 339#define NIX_AF_TL3X_SW_XOFF(a)                  (0x1070 | (a) << 16)
 340#define NIX_AF_TL3X_TOPOLOGY(a)                 (0x1080 | (a) << 16)
 341#define NIX_AF_TL3X_PARENT(a)                   (0x1088 | (a) << 16)
 342#define NIX_AF_TL3X_GREEN(a)                    (0x1090 | (a) << 16)
 343#define NIX_AF_TL3X_YELLOW(a)                   (0x10A0 | (a) << 16)
 344#define NIX_AF_TL3X_RED(a)                      (0x10B0 | (a) << 16)
 345#define NIX_AF_TL3X_MD_DEBUG0(a)                (0x10C0 | (a) << 16)
 346#define NIX_AF_TL3X_MD_DEBUG1(a)                (0x10C8 | (a) << 16)
 347#define NIX_AF_TL3X_MD_DEBUG2(a)                (0x10D0 | (a) << 16)
 348#define NIX_AF_TL3X_MD_DEBUG3(a)                (0x10D8 | (a) << 16)
 349#define NIX_AF_TL3A_DEBUG                       (0x10e0)
 350#define NIX_AF_TL3B_DEBUG                       (0x10f0)
 351#define NIX_AF_TL4X_SCHEDULE(a)                 (0x1200 | (a) << 16)
 352#define NIX_AF_TL4X_SHAPE(a)                    (0x1210 | (a) << 16)
 353#define NIX_AF_TL4X_CIR(a)                      (0x1220 | (a) << 16)
 354#define NIX_AF_TL4X_PIR(a)                      (0x1230 | (a) << 16)
 355#define NIX_AF_TL4X_SCHED_STATE(a)              (0x1240 | (a) << 16)
 356#define NIX_AF_TL4X_SHAPE_STATE(a)              (0x1250 | (a) << 16)
 357#define NIX_AF_TL4X_POINTERS(a)                 (0x1260 | (a) << 16)
 358#define NIX_AF_TL4X_SW_XOFF(a)                  (0x1270 | (a) << 16)
 359#define NIX_AF_TL4X_TOPOLOGY(a)                 (0x1280 | (a) << 16)
 360#define NIX_AF_TL4X_PARENT(a)                   (0x1288 | (a) << 16)
 361#define NIX_AF_TL4X_GREEN(a)                    (0x1290 | (a) << 16)
 362#define NIX_AF_TL4X_YELLOW(a)                   (0x12A0 | (a) << 16)
 363#define NIX_AF_TL4X_RED(a)                      (0x12B0 | (a) << 16)
 364#define NIX_AF_TL4X_MD_DEBUG0(a)                (0x12C0 | (a) << 16)
 365#define NIX_AF_TL4X_MD_DEBUG1(a)                (0x12C8 | (a) << 16)
 366#define NIX_AF_TL4X_MD_DEBUG2(a)                (0x12D0 | (a) << 16)
 367#define NIX_AF_TL4X_MD_DEBUG3(a)                (0x12D8 | (a) << 16)
 368#define NIX_AF_TL4A_DEBUG                       (0x12e0)
 369#define NIX_AF_TL4B_DEBUG                       (0x12f0)
 370#define NIX_AF_MDQX_SCHEDULE(a)                 (0x1400 | (a) << 16)
 371#define NIX_AF_MDQX_SHAPE(a)                    (0x1410 | (a) << 16)
 372#define NIX_AF_MDQX_CIR(a)                      (0x1420 | (a) << 16)
 373#define NIX_AF_MDQX_PIR(a)                      (0x1430 | (a) << 16)
 374#define NIX_AF_MDQX_SCHED_STATE(a)              (0x1440 | (a) << 16)
 375#define NIX_AF_MDQX_SHAPE_STATE(a)              (0x1450 | (a) << 16)
 376#define NIX_AF_MDQX_POINTERS(a)                 (0x1460 | (a) << 16)
 377#define NIX_AF_MDQX_SW_XOFF(a)                  (0x1470 | (a) << 16)
 378#define NIX_AF_MDQX_PARENT(a)                   (0x1480 | (a) << 16)
 379#define NIX_AF_MDQX_MD_DEBUG(a)                 (0x14C0 | (a) << 16)
 380#define NIX_AF_MDQX_PTR_FIFO(a)                 (0x14D0 | (a) << 16)
 381#define NIX_AF_MDQA_DEBUG                       (0x14e0)
 382#define NIX_AF_MDQB_DEBUG                       (0x14f0)
 383#define NIX_AF_TL3_TL2X_CFG(a)                  (0x1600 | (a) << 18)
 384#define NIX_AF_TL3_TL2X_BP_STATUS(a)            (0x1610 | (a) << 16)
 385#define NIX_AF_TL3_TL2X_LINKX_CFG(a, b)         (0x1700 | (a) << 16 | (b) << 3)
 386#define NIX_AF_RX_FLOW_KEY_ALGX_FIELDX(a, b)    (0x1800 | (a) << 18 | (b) << 3)
 387#define NIX_AF_TX_MCASTX(a)                     (0x1900 | (a) << 15)
 388#define NIX_AF_TX_VTAG_DEFX_CTL(a)              (0x1A00 | (a) << 16)
 389#define NIX_AF_TX_VTAG_DEFX_DATA(a)             (0x1A10 | (a) << 16)
 390#define NIX_AF_RX_BPIDX_STATUS(a)               (0x1A20 | (a) << 17)
 391#define NIX_AF_RX_CHANX_CFG(a)                  (0x1A30 | (a) << 15)
 392#define NIX_AF_CINT_TIMERX(a)                   (0x1A40 | (a) << 18)
 393#define NIX_AF_LSO_FORMATX_FIELDX(a, b)         (0x1B00 | (a) << 16 | (b) << 3)
 394#define NIX_AF_LFX_CFG(a)               (0x4000 | (a) << 17)
 395#define NIX_AF_LFX_SQS_CFG(a)           (0x4020 | (a) << 17)
 396#define NIX_AF_LFX_TX_CFG2(a)           (0x4028 | (a) << 17)
 397#define NIX_AF_LFX_SQS_BASE(a)          (0x4030 | (a) << 17)
 398#define NIX_AF_LFX_RQS_CFG(a)           (0x4040 | (a) << 17)
 399#define NIX_AF_LFX_RQS_BASE(a)          (0x4050 | (a) << 17)
 400#define NIX_AF_LFX_CQS_CFG(a)           (0x4060 | (a) << 17)
 401#define NIX_AF_LFX_CQS_BASE(a)          (0x4070 | (a) << 17)
 402#define NIX_AF_LFX_TX_CFG(a)            (0x4080 | (a) << 17)
 403#define NIX_AF_LFX_TX_PARSE_CFG(a)      (0x4090 | (a) << 17)
 404#define NIX_AF_LFX_RX_CFG(a)            (0x40A0 | (a) << 17)
 405#define NIX_AF_LFX_RSS_CFG(a)           (0x40C0 | (a) << 17)
 406#define NIX_AF_LFX_RSS_BASE(a)          (0x40D0 | (a) << 17)
 407#define NIX_AF_LFX_QINTS_CFG(a)         (0x4100 | (a) << 17)
 408#define NIX_AF_LFX_QINTS_BASE(a)        (0x4110 | (a) << 17)
 409#define NIX_AF_LFX_CINTS_CFG(a)         (0x4120 | (a) << 17)
 410#define NIX_AF_LFX_CINTS_BASE(a)        (0x4130 | (a) << 17)
 411#define NIX_AF_LFX_RX_IPSEC_CFG0(a)     (0x4140 | (a) << 17)
 412#define NIX_AF_LFX_RX_IPSEC_CFG1(a)     (0x4148 | (a) << 17)
 413#define NIX_AF_LFX_RX_IPSEC_DYNO_CFG(a) (0x4150 | (a) << 17)
 414#define NIX_AF_LFX_RX_IPSEC_DYNO_BASE(a)        (0x4158 | (a) << 17)
 415#define NIX_AF_LFX_RX_IPSEC_SA_BASE(a)  (0x4170 | (a) << 17)
 416#define NIX_AF_LFX_TX_STATUS(a)         (0x4180 | (a) << 17)
 417#define NIX_AF_LFX_RX_VTAG_TYPEX(a, b)  (0x4200 | (a) << 17 | (b) << 3)
 418#define NIX_AF_LFX_LOCKX(a, b)          (0x4300 | (a) << 17 | (b) << 3)
 419#define NIX_AF_LFX_TX_STATX(a, b)       (0x4400 | (a) << 17 | (b) << 3)
 420#define NIX_AF_LFX_RX_STATX(a, b)       (0x4500 | (a) << 17 | (b) << 3)
 421#define NIX_AF_LFX_RSS_GRPX(a, b)       (0x4600 | (a) << 17 | (b) << 3)
 422#define NIX_AF_RX_NPC_MC_RCV            (0x4700)
 423#define NIX_AF_RX_NPC_MC_DROP           (0x4710)
 424#define NIX_AF_RX_NPC_MIRROR_RCV        (0x4720)
 425#define NIX_AF_RX_NPC_MIRROR_DROP       (0x4730)
 426#define NIX_AF_RX_ACTIVE_CYCLES_PCX(a)  (0x4800 | (a) << 16)
 427#define NIX_AF_LINKX_CFG(a)             (0x4010 | (a) << 17)
 428
 429#define NIX_PRIV_AF_INT_CFG             (0x8000000)
 430#define NIX_PRIV_LFX_CFG                (0x8000010)
 431#define NIX_PRIV_LFX_INT_CFG            (0x8000020)
 432#define NIX_AF_RVU_LF_CFG_DEBUG         (0x8000030)
 433
 434#define NIX_AF_LINKX_BASE_MASK          GENMASK_ULL(11, 0)
 435#define NIX_AF_LINKX_RANGE_MASK         GENMASK_ULL(19, 16)
 436
 437/* SSO */
 438#define SSO_AF_CONST                    (0x1000)
 439#define SSO_AF_CONST1                   (0x1008)
 440#define SSO_AF_BLK_RST                  (0x10f8)
 441#define SSO_AF_LF_HWGRP_RST             (0x10e0)
 442#define SSO_AF_RVU_LF_CFG_DEBUG         (0x3800)
 443#define SSO_PRIV_LFX_HWGRP_CFG          (0x10000)
 444#define SSO_PRIV_LFX_HWGRP_INT_CFG      (0x20000)
 445
 446/* SSOW */
 447#define SSOW_AF_RVU_LF_HWS_CFG_DEBUG    (0x0010)
 448#define SSOW_AF_LF_HWS_RST              (0x0030)
 449#define SSOW_PRIV_LFX_HWS_CFG           (0x1000)
 450#define SSOW_PRIV_LFX_HWS_INT_CFG       (0x2000)
 451
 452/* TIM */
 453#define TIM_AF_CONST                    (0x90)
 454#define TIM_PRIV_LFX_CFG                (0x20000)
 455#define TIM_PRIV_LFX_INT_CFG            (0x24000)
 456#define TIM_AF_RVU_LF_CFG_DEBUG         (0x30000)
 457#define TIM_AF_BLK_RST                  (0x10)
 458#define TIM_AF_LF_RST                   (0x20)
 459
 460/* CPT */
 461#define CPT_AF_CONSTANTS0               (0x0000)
 462#define CPT_AF_CONSTANTS1               (0x1000)
 463#define CPT_AF_DIAG                     (0x3000)
 464#define CPT_AF_ECO                      (0x4000)
 465#define CPT_AF_FLTX_INT(a)              (0xa000ull | (u64)(a) << 3)
 466#define CPT_AF_FLTX_INT_W1S(a)          (0xb000ull | (u64)(a) << 3)
 467#define CPT_AF_FLTX_INT_ENA_W1C(a)      (0xc000ull | (u64)(a) << 3)
 468#define CPT_AF_FLTX_INT_ENA_W1S(a)      (0xd000ull | (u64)(a) << 3)
 469#define CPT_AF_PSNX_EXE(a)              (0xe000ull | (u64)(a) << 3)
 470#define CPT_AF_PSNX_EXE_W1S(a)          (0xf000ull | (u64)(a) << 3)
 471#define CPT_AF_PSNX_LF(a)               (0x10000ull | (u64)(a) << 3)
 472#define CPT_AF_PSNX_LF_W1S(a)           (0x11000ull | (u64)(a) << 3)
 473#define CPT_AF_EXEX_CTL2(a)             (0x12000ull | (u64)(a) << 3)
 474#define CPT_AF_EXEX_STS(a)              (0x13000ull | (u64)(a) << 3)
 475#define CPT_AF_EXE_ERR_INFO             (0x14000)
 476#define CPT_AF_EXEX_ACTIVE(a)           (0x16000ull | (u64)(a) << 3)
 477#define CPT_AF_INST_REQ_PC              (0x17000)
 478#define CPT_AF_INST_LATENCY_PC          (0x18000)
 479#define CPT_AF_RD_REQ_PC                (0x19000)
 480#define CPT_AF_RD_LATENCY_PC            (0x1a000)
 481#define CPT_AF_RD_UC_PC                 (0x1b000)
 482#define CPT_AF_ACTIVE_CYCLES_PC         (0x1c000)
 483#define CPT_AF_EXE_DBG_CTL              (0x1d000)
 484#define CPT_AF_EXE_DBG_DATA             (0x1e000)
 485#define CPT_AF_EXE_REQ_TIMER            (0x1f000)
 486#define CPT_AF_EXEX_CTL(a)              (0x20000ull | (u64)(a) << 3)
 487#define CPT_AF_EXE_PERF_CTL             (0x21000)
 488#define CPT_AF_EXE_DBG_CNTX(a)          (0x22000ull | (u64)(a) << 3)
 489#define CPT_AF_EXE_PERF_EVENT_CNT       (0x23000)
 490#define CPT_AF_EXE_EPCI_INBX_CNT(a)     (0x24000ull | (u64)(a) << 3)
 491#define CPT_AF_EXE_EPCI_OUTBX_CNT(a)    (0x25000ull | (u64)(a) << 3)
 492#define CPT_AF_EXEX_UCODE_BASE(a)       (0x26000ull | (u64)(a) << 3)
 493#define CPT_AF_LFX_CTL(a)               (0x27000ull | (u64)(a) << 3)
 494#define CPT_AF_LFX_CTL2(a)              (0x29000ull | (u64)(a) << 3)
 495#define CPT_AF_CPTCLK_CNT               (0x2a000)
 496#define CPT_AF_PF_FUNC                  (0x2b000)
 497#define CPT_AF_LFX_PTR_CTL(a)           (0x2c000ull | (u64)(a) << 3)
 498#define CPT_AF_GRPX_THR(a)              (0x2d000ull | (u64)(a) << 3)
 499#define CPT_AF_CTL                      (0x2e000ull)
 500#define CPT_AF_XEX_THR(a)               (0x2f000ull | (u64)(a) << 3)
 501#define CPT_PRIV_LFX_CFG                (0x41000)
 502#define CPT_PRIV_AF_INT_CFG             (0x42000)
 503#define CPT_PRIV_LFX_INT_CFG            (0x43000)
 504#define CPT_AF_LF_RST                   (0x44000)
 505#define CPT_AF_RVU_LF_CFG_DEBUG         (0x45000)
 506#define CPT_AF_BLK_RST                  (0x46000)
 507#define CPT_AF_RVU_INT                  (0x47000)
 508#define CPT_AF_RVU_INT_W1S              (0x47008)
 509#define CPT_AF_RVU_INT_ENA_W1S          (0x47010)
 510#define CPT_AF_RVU_INT_ENA_W1C          (0x47018)
 511#define CPT_AF_RAS_INT                  (0x47020)
 512#define CPT_AF_RAS_INT_W1S              (0x47028)
 513#define CPT_AF_RAS_INT_ENA_W1S          (0x47030)
 514#define CPT_AF_RAS_INT_ENA_W1C          (0x47038)
 515#define CPT_AF_CTX_FLUSH_TIMER          (0x48000ull)
 516#define CPT_AF_CTX_ERR                  (0x48008ull)
 517#define CPT_AF_CTX_ENC_ID               (0x48010ull)
 518#define CPT_AF_CTX_MIS_PC               (0x49400ull)
 519#define CPT_AF_CTX_HIT_PC               (0x49408ull)
 520#define CPT_AF_CTX_AOP_PC               (0x49410ull)
 521#define CPT_AF_CTX_AOP_LATENCY_PC       (0x49418ull)
 522#define CPT_AF_CTX_IFETCH_PC            (0x49420ull)
 523#define CPT_AF_CTX_IFETCH_LATENCY_PC    (0x49428ull)
 524#define CPT_AF_CTX_FFETCH_PC            (0x49430ull)
 525#define CPT_AF_CTX_FFETCH_LATENCY_PC    (0x49438ull)
 526#define CPT_AF_CTX_WBACK_PC             (0x49440ull)
 527#define CPT_AF_CTX_WBACK_LATENCY_PC     (0x49448ull)
 528#define CPT_AF_CTX_PSH_PC               (0x49450ull)
 529#define CPT_AF_CTX_PSH_LATENCY_PC       (0x49458ull)
 530#define CPT_AF_CTX_CAM_DATA(a)          (0x49800ull | (u64)(a) << 3)
 531#define CPT_AF_RXC_TIME                 (0x50010ull)
 532#define CPT_AF_RXC_TIME_CFG             (0x50018ull)
 533#define CPT_AF_RXC_DFRG                 (0x50020ull)
 534#define CPT_AF_RXC_ACTIVE_STS           (0x50028ull)
 535#define CPT_AF_RXC_ZOMBIE_STS           (0x50030ull)
 536#define CPT_AF_X2PX_LINK_CFG(a)         (0x51000ull | (u64)(a) << 3)
 537
 538#define AF_BAR2_ALIASX(a, b)            (0x9100000ull | (a) << 12 | (b))
 539#define CPT_AF_BAR2_SEL                 0x9000000
 540#define CPT_AF_BAR2_ALIASX(a, b)        AF_BAR2_ALIASX(a, b)
 541
 542#define CPT_AF_LF_CTL2_SHIFT 3
 543#define CPT_AF_LF_SSO_PF_FUNC_SHIFT 32
 544
 545#define CPT_LF_CTL                      0x10
 546#define CPT_LF_INPROG                   0x40
 547#define CPT_LF_Q_GRP_PTR                0x120
 548#define CPT_LF_CTX_FLUSH                0x510
 549
 550#define NPC_AF_BLK_RST                  (0x00040)
 551
 552/* NPC */
 553#define NPC_AF_CFG                      (0x00000)
 554#define NPC_AF_ACTIVE_PC                (0x00010)
 555#define NPC_AF_CONST                    (0x00020)
 556#define NPC_AF_CONST1                   (0x00030)
 557#define NPC_AF_BLK_RST                  (0x00040)
 558#define NPC_AF_MCAM_SCRUB_CTL           (0x000a0)
 559#define NPC_AF_KCAM_SCRUB_CTL           (0x000b0)
 560#define NPC_AF_CONST2                   (0x00100)
 561#define NPC_AF_CONST3                   (0x00110)
 562#define NPC_AF_KPUX_CFG(a)              (0x00500 | (a) << 3)
 563#define NPC_AF_PCK_CFG                  (0x00600)
 564#define NPC_AF_PCK_DEF_OL2              (0x00610)
 565#define NPC_AF_PCK_DEF_OIP4             (0x00620)
 566#define NPC_AF_PCK_DEF_OIP6             (0x00630)
 567#define NPC_AF_PCK_DEF_IIP4             (0x00640)
 568#define NPC_AF_KEX_LDATAX_FLAGS_CFG(a)  (0x00800 | (a) << 3)
 569#define NPC_AF_INTFX_KEX_CFG(a)         (0x01010 | (a) << 8)
 570#define NPC_AF_PKINDX_ACTION0(a)        (0x80000ull | (a) << 6)
 571#define NPC_AF_PKINDX_ACTION1(a)        (0x80008ull | (a) << 6)
 572#define NPC_AF_PKINDX_CPI_DEFX(a, b)    (0x80020ull | (a) << 6 | (b) << 3)
 573#define NPC_AF_KPUX_ENTRYX_CAMX(a, b, c) \
 574                (0x100000 | (a) << 14 | (b) << 6 | (c) << 3)
 575#define NPC_AF_KPUX_ENTRYX_ACTION0(a, b) \
 576                (0x100020 | (a) << 14 | (b) << 6)
 577#define NPC_AF_KPUX_ENTRYX_ACTION1(a, b) \
 578                (0x100028 | (a) << 14 | (b) << 6)
 579#define NPC_AF_KPUX_ENTRY_DISX(a, b)    (0x180000 | (a) << 6 | (b) << 3)
 580#define NPC_AF_CPIX_CFG(a)              (0x200000 | (a) << 3)
 581#define NPC_AF_INTFX_LIDX_LTX_LDX_CFG(a, b, c, d) \
 582                (0x900000 | (a) << 16 | (b) << 12 | (c) << 5 | (d) << 3)
 583#define NPC_AF_INTFX_LDATAX_FLAGSX_CFG(a, b, c) \
 584                (0x980000 | (a) << 16 | (b) << 12 | (c) << 3)
 585#define NPC_AF_INTFX_MISS_STAT_ACT(a)   (0x1880040 + (a) * 0x8)
 586#define NPC_AF_INTFX_MISS_ACT(a)        (0x1a00000 | (a) << 4)
 587#define NPC_AF_INTFX_MISS_TAG_ACT(a)    (0x1b00008 | (a) << 4)
 588#define NPC_AF_MCAM_BANKX_HITX(a, b)    (0x1c80000 | (a) << 8 | (b) << 4)
 589#define NPC_AF_LKUP_CTL                 (0x2000000)
 590#define NPC_AF_LKUP_DATAX(a)            (0x2000200 | (a) << 4)
 591#define NPC_AF_LKUP_RESULTX(a)          (0x2000400 | (a) << 4)
 592#define NPC_AF_INTFX_STAT(a)            (0x2000800 | (a) << 4)
 593#define NPC_AF_DBG_CTL                  (0x3000000)
 594#define NPC_AF_DBG_STATUS               (0x3000010)
 595#define NPC_AF_KPUX_DBG(a)              (0x3000020 | (a) << 8)
 596#define NPC_AF_IKPU_ERR_CTL             (0x3000080)
 597#define NPC_AF_KPUX_ERR_CTL(a)          (0x30000a0 | (a) << 8)
 598#define NPC_AF_MCAM_DBG                 (0x3001000)
 599#define NPC_AF_DBG_DATAX(a)             (0x3001400 | (a) << 4)
 600#define NPC_AF_DBG_RESULTX(a)           (0x3001800 | (a) << 4)
 601
 602#define NPC_AF_MCAMEX_BANKX_CAMX_INTF(a, b, c) ({                          \
 603        u64 offset;                                                        \
 604                                                                           \
 605        offset = (0x1000000ull | (a) << 10 | (b) << 6 | (c) << 3);         \
 606        if (rvu->hw->npc_ext_set)                                          \
 607                offset = (0x8000000ull | (a) << 8 | (b) << 22 | (c) << 3); \
 608        offset; })
 609
 610#define NPC_AF_MCAMEX_BANKX_CAMX_W0(a, b, c) ({                            \
 611        u64 offset;                                                        \
 612                                                                           \
 613        offset = (0x1000010ull | (a) << 10 | (b) << 6 | (c) << 3);         \
 614        if (rvu->hw->npc_ext_set)                                          \
 615                offset = (0x8000010ull | (a) << 8 | (b) << 22 | (c) << 3); \
 616        offset; })
 617
 618#define NPC_AF_MCAMEX_BANKX_CAMX_W1(a, b, c) ({                            \
 619        u64 offset;                                                        \
 620                                                                           \
 621        offset = (0x1000020ull | (a) << 10 | (b) << 6 | (c) << 3);         \
 622        if (rvu->hw->npc_ext_set)                                          \
 623                offset = (0x8000020ull | (a) << 8 | (b) << 22 | (c) << 3); \
 624        offset; })
 625
 626#define NPC_AF_MCAMEX_BANKX_CFG(a, b) ({                                   \
 627        u64 offset;                                                        \
 628                                                                           \
 629        offset = (0x1800000ull | (a) << 8 | (b) << 4);                     \
 630        if (rvu->hw->npc_ext_set)                                          \
 631                offset = (0x8000038ull | (a) << 8 | (b) << 22);            \
 632        offset; })
 633
 634#define NPC_AF_MCAMEX_BANKX_ACTION(a, b) ({                                \
 635        u64 offset;                                                        \
 636                                                                           \
 637        offset = (0x1900000ull | (a) << 8 | (b) << 4);                     \
 638        if (rvu->hw->npc_ext_set)                                          \
 639                offset = (0x8000040ull | (a) << 8 | (b) << 22);            \
 640        offset; })                                                         \
 641
 642#define NPC_AF_MCAMEX_BANKX_TAG_ACT(a, b) ({                               \
 643        u64 offset;                                                        \
 644                                                                           \
 645        offset = (0x1900008ull | (a) << 8 | (b) << 4);                     \
 646        if (rvu->hw->npc_ext_set)                                          \
 647                offset = (0x8000048ull | (a) << 8 | (b) << 22);            \
 648        offset; })                                                         \
 649
 650#define NPC_AF_MCAMEX_BANKX_STAT_ACT(a, b) ({                              \
 651        u64 offset;                                                        \
 652                                                                           \
 653        offset = (0x1880000ull | (a) << 8 | (b) << 4);                     \
 654        if (rvu->hw->npc_ext_set)                                          \
 655                offset = (0x8000050ull | (a) << 8 | (b) << 22);            \
 656        offset; })                                                         \
 657
 658#define NPC_AF_MATCH_STATX(a) ({                                           \
 659        u64 offset;                                                        \
 660                                                                           \
 661        offset = (0x1880008ull | (a) << 8);                                \
 662        if (rvu->hw->npc_ext_set)                                          \
 663                offset = (0x8000078ull | (a) << 8);                        \
 664        offset; })                                                         \
 665
 666/* NDC */
 667#define NDC_AF_CONST                    (0x00000)
 668#define NDC_AF_CLK_EN                   (0x00020)
 669#define NDC_AF_CTL                      (0x00030)
 670#define NDC_AF_BANK_CTL                 (0x00040)
 671#define NDC_AF_BANK_CTL_DONE            (0x00048)
 672#define NDC_AF_INTR                     (0x00058)
 673#define NDC_AF_INTR_W1S                 (0x00060)
 674#define NDC_AF_INTR_ENA_W1S             (0x00068)
 675#define NDC_AF_INTR_ENA_W1C             (0x00070)
 676#define NDC_AF_ACTIVE_PC                (0x00078)
 677#define NDC_AF_BP_TEST_ENABLE           (0x001F8)
 678#define NDC_AF_BP_TEST(a)               (0x00200 | (a) << 3)
 679#define NDC_AF_BLK_RST                  (0x002F0)
 680#define NDC_PRIV_AF_INT_CFG             (0x002F8)
 681#define NDC_AF_HASHX(a)                 (0x00300 | (a) << 3)
 682#define NDC_AF_PORTX_RTX_RWX_REQ_PC(a, b, c) \
 683                (0x00C00 | (a) << 5 | (b) << 4 | (c) << 3)
 684#define NDC_AF_PORTX_RTX_RWX_OSTDN_PC(a, b, c) \
 685                (0x00D00 | (a) << 5 | (b) << 4 | (c) << 3)
 686#define NDC_AF_PORTX_RTX_RWX_LAT_PC(a, b, c) \
 687                (0x00E00 | (a) << 5 | (b) << 4 | (c) << 3)
 688#define NDC_AF_PORTX_RTX_CANT_ALLOC_PC(a, b) \
 689                (0x00F00 | (a) << 5 | (b) << 4)
 690#define NDC_AF_BANKX_HIT_PC(a)          (0x01000 | (a) << 3)
 691#define NDC_AF_BANKX_MISS_PC(a)         (0x01100 | (a) << 3)
 692
 693/* LBK */
 694#define LBK_CONST                       (0x10ull)
 695#define LBK_LINK_CFG_P2X                (0x400ull)
 696#define LBK_LINK_CFG_X2P                (0x408ull)
 697#define LBK_CONST_CHANS                 GENMASK_ULL(47, 32)
 698#define LBK_CONST_DST                   GENMASK_ULL(31, 28)
 699#define LBK_CONST_SRC                   GENMASK_ULL(27, 24)
 700#define LBK_CONST_BUF_SIZE              GENMASK_ULL(23, 0)
 701#define LBK_LINK_CFG_RANGE_MASK         GENMASK_ULL(19, 16)
 702#define LBK_LINK_CFG_ID_MASK            GENMASK_ULL(11, 6)
 703#define LBK_LINK_CFG_BASE_MASK          GENMASK_ULL(5, 0)
 704
 705/* APR */
 706#define APR_AF_LMT_CFG                  (0x000ull)
 707#define APR_AF_LMT_MAP_BASE             (0x008ull)
 708#define APR_AF_LMT_CTL                  (0x010ull)
 709#define APR_LMT_MAP_ENT_DIS_SCH_CMP_SHIFT       23
 710#define APR_LMT_MAP_ENT_SCH_ENA_SHIFT           22
 711#define APR_LMT_MAP_ENT_DIS_LINE_PREF_SHIFT     21
 712
 713#endif /* RVU_REG_H */
 714