uboot/arch/mips/mach-octeon/include/mach/cvmx-npei-defs.h
<<
>>
Prefs
   1/* SPDX-License-Identifier: GPL-2.0 */
   2/*
   3 * Copyright (C) 2018-2022 Marvell International Ltd.
   4 *
   5 * Configuration and status register (CSR) type definitions for
   6 * Octeon npei.
   7 */
   8
   9#ifndef __CVMX_NPEI_DEFS_H__
  10#define __CVMX_NPEI_DEFS_H__
  11
  12#define CVMX_NPEI_BAR1_INDEXX(offset)                                          \
  13        (0x0000000000000000ull + ((offset) & 31) * 16)
  14#define CVMX_NPEI_BIST_STATUS    (0x0000000000000580ull)
  15#define CVMX_NPEI_BIST_STATUS2   (0x0000000000000680ull)
  16#define CVMX_NPEI_CTL_PORT0      (0x0000000000000250ull)
  17#define CVMX_NPEI_CTL_PORT1      (0x0000000000000260ull)
  18#define CVMX_NPEI_CTL_STATUS     (0x0000000000000570ull)
  19#define CVMX_NPEI_CTL_STATUS2    (0x0000000000003C00ull)
  20#define CVMX_NPEI_DATA_OUT_CNT   (0x00000000000005F0ull)
  21#define CVMX_NPEI_DBG_DATA       (0x0000000000000510ull)
  22#define CVMX_NPEI_DBG_SELECT     (0x0000000000000500ull)
  23#define CVMX_NPEI_DMA0_INT_LEVEL (0x00000000000005C0ull)
  24#define CVMX_NPEI_DMA1_INT_LEVEL (0x00000000000005D0ull)
  25#define CVMX_NPEI_DMAX_COUNTS(offset)                                          \
  26        (0x0000000000000450ull + ((offset) & 7) * 16)
  27#define CVMX_NPEI_DMAX_DBELL(offset) (0x00000000000003B0ull + ((offset) & 7) * 16)
  28#define CVMX_NPEI_DMAX_IBUFF_SADDR(offset)                                     \
  29        (0x0000000000000400ull + ((offset) & 7) * 16)
  30#define CVMX_NPEI_DMAX_NADDR(offset) (0x00000000000004A0ull + ((offset) & 7) * 16)
  31#define CVMX_NPEI_DMA_CNTS           (0x00000000000005E0ull)
  32#define CVMX_NPEI_DMA_CONTROL        (0x00000000000003A0ull)
  33#define CVMX_NPEI_DMA_PCIE_REQ_NUM   (0x00000000000005B0ull)
  34#define CVMX_NPEI_DMA_STATE1         (0x00000000000006C0ull)
  35#define CVMX_NPEI_DMA_STATE1_P1      (0x0000000000000680ull)
  36#define CVMX_NPEI_DMA_STATE2         (0x00000000000006D0ull)
  37#define CVMX_NPEI_DMA_STATE2_P1      (0x0000000000000690ull)
  38#define CVMX_NPEI_DMA_STATE3_P1      (0x00000000000006A0ull)
  39#define CVMX_NPEI_DMA_STATE4_P1      (0x00000000000006B0ull)
  40#define CVMX_NPEI_DMA_STATE5_P1      (0x00000000000006C0ull)
  41#define CVMX_NPEI_INT_A_ENB          (0x0000000000000560ull)
  42#define CVMX_NPEI_INT_A_ENB2         (0x0000000000003CE0ull)
  43#define CVMX_NPEI_INT_A_SUM          (0x0000000000000550ull)
  44#define CVMX_NPEI_INT_ENB            (0x0000000000000540ull)
  45#define CVMX_NPEI_INT_ENB2           (0x0000000000003CD0ull)
  46#define CVMX_NPEI_INT_INFO           (0x0000000000000590ull)
  47#define CVMX_NPEI_INT_SUM            (0x0000000000000530ull)
  48#define CVMX_NPEI_INT_SUM2           (0x0000000000003CC0ull)
  49#define CVMX_NPEI_LAST_WIN_RDATA0    (0x0000000000000600ull)
  50#define CVMX_NPEI_LAST_WIN_RDATA1    (0x0000000000000610ull)
  51#define CVMX_NPEI_MEM_ACCESS_CTL     (0x00000000000004F0ull)
  52#define CVMX_NPEI_MEM_ACCESS_SUBIDX(offset)                                    \
  53        (0x0000000000000280ull + ((offset) & 31) * 16 - 16 * 12)
  54#define CVMX_NPEI_MSI_ENB0          (0x0000000000003C50ull)
  55#define CVMX_NPEI_MSI_ENB1          (0x0000000000003C60ull)
  56#define CVMX_NPEI_MSI_ENB2          (0x0000000000003C70ull)
  57#define CVMX_NPEI_MSI_ENB3          (0x0000000000003C80ull)
  58#define CVMX_NPEI_MSI_RCV0          (0x0000000000003C10ull)
  59#define CVMX_NPEI_MSI_RCV1          (0x0000000000003C20ull)
  60#define CVMX_NPEI_MSI_RCV2          (0x0000000000003C30ull)
  61#define CVMX_NPEI_MSI_RCV3          (0x0000000000003C40ull)
  62#define CVMX_NPEI_MSI_RD_MAP        (0x0000000000003CA0ull)
  63#define CVMX_NPEI_MSI_W1C_ENB0      (0x0000000000003CF0ull)
  64#define CVMX_NPEI_MSI_W1C_ENB1      (0x0000000000003D00ull)
  65#define CVMX_NPEI_MSI_W1C_ENB2      (0x0000000000003D10ull)
  66#define CVMX_NPEI_MSI_W1C_ENB3      (0x0000000000003D20ull)
  67#define CVMX_NPEI_MSI_W1S_ENB0      (0x0000000000003D30ull)
  68#define CVMX_NPEI_MSI_W1S_ENB1      (0x0000000000003D40ull)
  69#define CVMX_NPEI_MSI_W1S_ENB2      (0x0000000000003D50ull)
  70#define CVMX_NPEI_MSI_W1S_ENB3      (0x0000000000003D60ull)
  71#define CVMX_NPEI_MSI_WR_MAP        (0x0000000000003C90ull)
  72#define CVMX_NPEI_PCIE_CREDIT_CNT   (0x0000000000003D70ull)
  73#define CVMX_NPEI_PCIE_MSI_RCV      (0x0000000000003CB0ull)
  74#define CVMX_NPEI_PCIE_MSI_RCV_B1   (0x0000000000000650ull)
  75#define CVMX_NPEI_PCIE_MSI_RCV_B2   (0x0000000000000660ull)
  76#define CVMX_NPEI_PCIE_MSI_RCV_B3   (0x0000000000000670ull)
  77#define CVMX_NPEI_PKTX_CNTS(offset) (0x0000000000002400ull + ((offset) & 31) * 16)
  78#define CVMX_NPEI_PKTX_INSTR_BADDR(offset)                                     \
  79        (0x0000000000002800ull + ((offset) & 31) * 16)
  80#define CVMX_NPEI_PKTX_INSTR_BAOFF_DBELL(offset)                               \
  81        (0x0000000000002C00ull + ((offset) & 31) * 16)
  82#define CVMX_NPEI_PKTX_INSTR_FIFO_RSIZE(offset)                                \
  83        (0x0000000000003000ull + ((offset) & 31) * 16)
  84#define CVMX_NPEI_PKTX_INSTR_HEADER(offset)                                    \
  85        (0x0000000000003400ull + ((offset) & 31) * 16)
  86#define CVMX_NPEI_PKTX_IN_BP(offset)                                           \
  87        (0x0000000000003800ull + ((offset) & 31) * 16)
  88#define CVMX_NPEI_PKTX_SLIST_BADDR(offset)                                     \
  89        (0x0000000000001400ull + ((offset) & 31) * 16)
  90#define CVMX_NPEI_PKTX_SLIST_BAOFF_DBELL(offset)                               \
  91        (0x0000000000001800ull + ((offset) & 31) * 16)
  92#define CVMX_NPEI_PKTX_SLIST_FIFO_RSIZE(offset)                                \
  93        (0x0000000000001C00ull + ((offset) & 31) * 16)
  94#define CVMX_NPEI_PKT_CNT_INT       (0x0000000000001110ull)
  95#define CVMX_NPEI_PKT_CNT_INT_ENB   (0x0000000000001130ull)
  96#define CVMX_NPEI_PKT_DATA_OUT_ES   (0x00000000000010B0ull)
  97#define CVMX_NPEI_PKT_DATA_OUT_NS   (0x00000000000010A0ull)
  98#define CVMX_NPEI_PKT_DATA_OUT_ROR  (0x0000000000001090ull)
  99#define CVMX_NPEI_PKT_DPADDR        (0x0000000000001080ull)
 100#define CVMX_NPEI_PKT_INPUT_CONTROL (0x0000000000001150ull)
 101#define CVMX_NPEI_PKT_INSTR_ENB     (0x0000000000001000ull)
 102#define CVMX_NPEI_PKT_INSTR_RD_SIZE (0x0000000000001190ull)
 103#define CVMX_NPEI_PKT_INSTR_SIZE    (0x0000000000001020ull)
 104#define CVMX_NPEI_PKT_INT_LEVELS    (0x0000000000001100ull)
 105#define CVMX_NPEI_PKT_IN_BP         (0x00000000000006B0ull)
 106#define CVMX_NPEI_PKT_IN_DONEX_CNTS(offset)                                    \
 107        (0x0000000000002000ull + ((offset) & 31) * 16)
 108#define CVMX_NPEI_PKT_IN_INSTR_COUNTS (0x00000000000006A0ull)
 109#define CVMX_NPEI_PKT_IN_PCIE_PORT    (0x00000000000011A0ull)
 110#define CVMX_NPEI_PKT_IPTR            (0x0000000000001070ull)
 111#define CVMX_NPEI_PKT_OUTPUT_WMARK    (0x0000000000001160ull)
 112#define CVMX_NPEI_PKT_OUT_BMODE       (0x00000000000010D0ull)
 113#define CVMX_NPEI_PKT_OUT_ENB         (0x0000000000001010ull)
 114#define CVMX_NPEI_PKT_PCIE_PORT       (0x00000000000010E0ull)
 115#define CVMX_NPEI_PKT_PORT_IN_RST     (0x0000000000000690ull)
 116#define CVMX_NPEI_PKT_SLIST_ES        (0x0000000000001050ull)
 117#define CVMX_NPEI_PKT_SLIST_ID_SIZE   (0x0000000000001180ull)
 118#define CVMX_NPEI_PKT_SLIST_NS        (0x0000000000001040ull)
 119#define CVMX_NPEI_PKT_SLIST_ROR       (0x0000000000001030ull)
 120#define CVMX_NPEI_PKT_TIME_INT        (0x0000000000001120ull)
 121#define CVMX_NPEI_PKT_TIME_INT_ENB    (0x0000000000001140ull)
 122#define CVMX_NPEI_RSL_INT_BLOCKS      (0x0000000000000520ull)
 123#define CVMX_NPEI_SCRATCH_1           (0x0000000000000270ull)
 124#define CVMX_NPEI_STATE1              (0x0000000000000620ull)
 125#define CVMX_NPEI_STATE2              (0x0000000000000630ull)
 126#define CVMX_NPEI_STATE3              (0x0000000000000640ull)
 127#define CVMX_NPEI_WINDOW_CTL          (0x0000000000000380ull)
 128#define CVMX_NPEI_WIN_RD_ADDR         (0x0000000000000210ull)
 129#define CVMX_NPEI_WIN_RD_DATA         (0x0000000000000240ull)
 130#define CVMX_NPEI_WIN_WR_ADDR         (0x0000000000000200ull)
 131#define CVMX_NPEI_WIN_WR_DATA         (0x0000000000000220ull)
 132#define CVMX_NPEI_WIN_WR_MASK         (0x0000000000000230ull)
 133
 134/**
 135 * cvmx_npei_bar1_index#
 136 *
 137 * Total Address is 16Kb; 0x0000 - 0x3fff, 0x000 - 0x7fe(Reg, every other 8B)
 138 *
 139 * General  5kb; 0x0000 - 0x13ff, 0x000 - 0x27e(Reg-General)
 140 * PktMem  10Kb; 0x1400 - 0x3bff, 0x280 - 0x77e(Reg-General-Packet)
 141 * Rsvd     1Kb; 0x3c00 - 0x3fff, 0x780 - 0x7fe(Reg-NCB Only Mode)
 142 *                                   == NPEI_PKT_CNT_INT_ENB[PORT]
 143 *                                   == NPEI_PKT_TIME_INT_ENB[PORT]
 144 *                                   == NPEI_PKT_CNT_INT[PORT]
 145 *                                   == NPEI_PKT_TIME_INT[PORT]
 146 *                                   == NPEI_PKT_PCIE_PORT[PP]
 147 *                                   == NPEI_PKT_SLIST_ROR[ROR]
 148 *                                   == NPEI_PKT_SLIST_ROR[NSR] ?
 149 *                                   == NPEI_PKT_SLIST_ES[ES]
 150 *                                   == NPEI_PKTn_SLIST_BAOFF_DBELL[AOFF]
 151 *                                   == NPEI_PKTn_SLIST_BAOFF_DBELL[DBELL]
 152 *                                   == NPEI_PKTn_CNTS[CNT]
 153 * NPEI_CTL_STATUS[OUTn_ENB]         == NPEI_PKT_OUT_ENB[ENB]
 154 * NPEI_BASE_ADDRESS_OUTPUTn[BADDR]  == NPEI_PKTn_SLIST_BADDR[ADDR]
 155 * NPEI_DESC_OUTPUTn[SIZE]           == NPEI_PKTn_SLIST_FIFO_RSIZE[RSIZE]
 156 * NPEI_Pn_DBPAIR_ADDR[NADDR]        == NPEI_PKTn_SLIST_BADDR[ADDR] +
 157 *                                      NPEI_PKTn_SLIST_BAOFF_DBELL[AOFF]
 158 * NPEI_PKT_CREDITSn[PTR_CNT]        == NPEI_PKTn_SLIST_BAOFF_DBELL[DBELL]
 159 * NPEI_P0_PAIR_CNTS[AVAIL]          == NPEI_PKTn_SLIST_BAOFF_DBELL[DBELL]
 160 * NPEI_P0_PAIR_CNTS[FCNT]           ==
 161 * NPEI_PKTS_SENTn[PKT_CNT]          == NPEI_PKTn_CNTS[CNT]
 162 * NPEI_OUTPUT_CONTROL[Pn_BMODE]     == NPEI_PKT_OUT_BMODE[BMODE]
 163 * NPEI_PKT_CREDITSn[PKT_CNT]        == NPEI_PKTn_CNTS[CNT]
 164 * NPEI_BUFF_SIZE_OUTPUTn[BSIZE]     == NPEI_PKT_SLIST_ID_SIZE[BSIZE]
 165 * NPEI_BUFF_SIZE_OUTPUTn[ISIZE]     == NPEI_PKT_SLIST_ID_SIZE[ISIZE]
 166 * NPEI_OUTPUT_CONTROL[On_CSRM]      == NPEI_PKT_DPADDR[DPTR] &
 167 *                                      NPEI_PKT_OUT_USE_IPTR[PORT]
 168 * NPEI_OUTPUT_CONTROL[On_ES]        == NPEI_PKT_DATA_OUT_ES[ES]
 169 * NPEI_OUTPUT_CONTROL[On_NS]        == NPEI_PKT_DATA_OUT_NS[NSR] ?
 170 * NPEI_OUTPUT_CONTROL[On_RO]        == NPEI_PKT_DATA_OUT_ROR[ROR]
 171 * NPEI_PKTS_SENT_INT_LEVn[PKT_CNT]  == NPEI_PKT_INT_LEVELS[CNT]
 172 * NPEI_PKTS_SENT_TIMEn[PKT_TIME]    == NPEI_PKT_INT_LEVELS[TIME]
 173 * NPEI_OUTPUT_CONTROL[IPTR_On]      == NPEI_PKT_IPTR[IPTR]
 174 * NPEI_PCIE_PORT_OUTPUT[]           == NPEI_PKT_PCIE_PORT[PP]
 175 *
 176 *                  NPEI_BAR1_INDEXX = NPEI BAR1 IndexX Register
 177 *
 178 * Contains address index and control bits for access to memory ranges of
 179 * BAR-1. Index is build from supplied address [25:22].
 180 * NPEI_BAR1_INDEX0 through NPEI_BAR1_INDEX15 is used for transactions
 181 * orginating with PCIE-PORT0 and NPEI_BAR1_INDEX16
 182 * through NPEI_BAR1_INDEX31 is used for transactions originating with
 183 * PCIE-PORT1.
 184 */
 185union cvmx_npei_bar1_indexx {
 186        u32 u32;
 187        struct cvmx_npei_bar1_indexx_s {
 188                u32 reserved_18_31 : 14;
 189                u32 addr_idx : 14;
 190                u32 ca : 1;
 191                u32 end_swp : 2;
 192                u32 addr_v : 1;
 193        } s;
 194        struct cvmx_npei_bar1_indexx_s cn52xx;
 195        struct cvmx_npei_bar1_indexx_s cn52xxp1;
 196        struct cvmx_npei_bar1_indexx_s cn56xx;
 197        struct cvmx_npei_bar1_indexx_s cn56xxp1;
 198};
 199
 200typedef union cvmx_npei_bar1_indexx cvmx_npei_bar1_indexx_t;
 201
 202/**
 203 * cvmx_npei_bist_status
 204 *
 205 * NPEI_BIST_STATUS = NPI's BIST Status Register
 206 *
 207 * Results from BIST runs of NPEI's memories.
 208 */
 209union cvmx_npei_bist_status {
 210        u64 u64;
 211        struct cvmx_npei_bist_status_s {
 212                u64 pkt_rdf : 1;
 213                u64 reserved_60_62 : 3;
 214                u64 pcr_gim : 1;
 215                u64 pkt_pif : 1;
 216                u64 pcsr_int : 1;
 217                u64 pcsr_im : 1;
 218                u64 pcsr_cnt : 1;
 219                u64 pcsr_id : 1;
 220                u64 pcsr_sl : 1;
 221                u64 reserved_50_52 : 3;
 222                u64 pkt_ind : 1;
 223                u64 pkt_slm : 1;
 224                u64 reserved_36_47 : 12;
 225                u64 d0_pst : 1;
 226                u64 d1_pst : 1;
 227                u64 d2_pst : 1;
 228                u64 d3_pst : 1;
 229                u64 reserved_31_31 : 1;
 230                u64 n2p0_c : 1;
 231                u64 n2p0_o : 1;
 232                u64 n2p1_c : 1;
 233                u64 n2p1_o : 1;
 234                u64 cpl_p0 : 1;
 235                u64 cpl_p1 : 1;
 236                u64 p2n1_po : 1;
 237                u64 p2n1_no : 1;
 238                u64 p2n1_co : 1;
 239                u64 p2n0_po : 1;
 240                u64 p2n0_no : 1;
 241                u64 p2n0_co : 1;
 242                u64 p2n0_c0 : 1;
 243                u64 p2n0_c1 : 1;
 244                u64 p2n0_n : 1;
 245                u64 p2n0_p0 : 1;
 246                u64 p2n0_p1 : 1;
 247                u64 p2n1_c0 : 1;
 248                u64 p2n1_c1 : 1;
 249                u64 p2n1_n : 1;
 250                u64 p2n1_p0 : 1;
 251                u64 p2n1_p1 : 1;
 252                u64 csm0 : 1;
 253                u64 csm1 : 1;
 254                u64 dif0 : 1;
 255                u64 dif1 : 1;
 256                u64 dif2 : 1;
 257                u64 dif3 : 1;
 258                u64 reserved_2_2 : 1;
 259                u64 msi : 1;
 260                u64 ncb_cmd : 1;
 261        } s;
 262        struct cvmx_npei_bist_status_cn52xx {
 263                u64 pkt_rdf : 1;
 264                u64 reserved_60_62 : 3;
 265                u64 pcr_gim : 1;
 266                u64 pkt_pif : 1;
 267                u64 pcsr_int : 1;
 268                u64 pcsr_im : 1;
 269                u64 pcsr_cnt : 1;
 270                u64 pcsr_id : 1;
 271                u64 pcsr_sl : 1;
 272                u64 pkt_imem : 1;
 273                u64 pkt_pfm : 1;
 274                u64 pkt_pof : 1;
 275                u64 reserved_48_49 : 2;
 276                u64 pkt_pop0 : 1;
 277                u64 pkt_pop1 : 1;
 278                u64 d0_mem : 1;
 279                u64 d1_mem : 1;
 280                u64 d2_mem : 1;
 281                u64 d3_mem : 1;
 282                u64 d4_mem : 1;
 283                u64 ds_mem : 1;
 284                u64 reserved_36_39 : 4;
 285                u64 d0_pst : 1;
 286                u64 d1_pst : 1;
 287                u64 d2_pst : 1;
 288                u64 d3_pst : 1;
 289                u64 d4_pst : 1;
 290                u64 n2p0_c : 1;
 291                u64 n2p0_o : 1;
 292                u64 n2p1_c : 1;
 293                u64 n2p1_o : 1;
 294                u64 cpl_p0 : 1;
 295                u64 cpl_p1 : 1;
 296                u64 p2n1_po : 1;
 297                u64 p2n1_no : 1;
 298                u64 p2n1_co : 1;
 299                u64 p2n0_po : 1;
 300                u64 p2n0_no : 1;
 301                u64 p2n0_co : 1;
 302                u64 p2n0_c0 : 1;
 303                u64 p2n0_c1 : 1;
 304                u64 p2n0_n : 1;
 305                u64 p2n0_p0 : 1;
 306                u64 p2n0_p1 : 1;
 307                u64 p2n1_c0 : 1;
 308                u64 p2n1_c1 : 1;
 309                u64 p2n1_n : 1;
 310                u64 p2n1_p0 : 1;
 311                u64 p2n1_p1 : 1;
 312                u64 csm0 : 1;
 313                u64 csm1 : 1;
 314                u64 dif0 : 1;
 315                u64 dif1 : 1;
 316                u64 dif2 : 1;
 317                u64 dif3 : 1;
 318                u64 dif4 : 1;
 319                u64 msi : 1;
 320                u64 ncb_cmd : 1;
 321        } cn52xx;
 322        struct cvmx_npei_bist_status_cn52xxp1 {
 323                u64 reserved_46_63 : 18;
 324                u64 d0_mem0 : 1;
 325                u64 d1_mem1 : 1;
 326                u64 d2_mem2 : 1;
 327                u64 d3_mem3 : 1;
 328                u64 dr0_mem : 1;
 329                u64 d0_mem : 1;
 330                u64 d1_mem : 1;
 331                u64 d2_mem : 1;
 332                u64 d3_mem : 1;
 333                u64 dr1_mem : 1;
 334                u64 d0_pst : 1;
 335                u64 d1_pst : 1;
 336                u64 d2_pst : 1;
 337                u64 d3_pst : 1;
 338                u64 dr2_mem : 1;
 339                u64 n2p0_c : 1;
 340                u64 n2p0_o : 1;
 341                u64 n2p1_c : 1;
 342                u64 n2p1_o : 1;
 343                u64 cpl_p0 : 1;
 344                u64 cpl_p1 : 1;
 345                u64 p2n1_po : 1;
 346                u64 p2n1_no : 1;
 347                u64 p2n1_co : 1;
 348                u64 p2n0_po : 1;
 349                u64 p2n0_no : 1;
 350                u64 p2n0_co : 1;
 351                u64 p2n0_c0 : 1;
 352                u64 p2n0_c1 : 1;
 353                u64 p2n0_n : 1;
 354                u64 p2n0_p0 : 1;
 355                u64 p2n0_p1 : 1;
 356                u64 p2n1_c0 : 1;
 357                u64 p2n1_c1 : 1;
 358                u64 p2n1_n : 1;
 359                u64 p2n1_p0 : 1;
 360                u64 p2n1_p1 : 1;
 361                u64 csm0 : 1;
 362                u64 csm1 : 1;
 363                u64 dif0 : 1;
 364                u64 dif1 : 1;
 365                u64 dif2 : 1;
 366                u64 dif3 : 1;
 367                u64 dr3_mem : 1;
 368                u64 msi : 1;
 369                u64 ncb_cmd : 1;
 370        } cn52xxp1;
 371        struct cvmx_npei_bist_status_cn52xx cn56xx;
 372        struct cvmx_npei_bist_status_cn56xxp1 {
 373                u64 reserved_58_63 : 6;
 374                u64 pcsr_int : 1;
 375                u64 pcsr_im : 1;
 376                u64 pcsr_cnt : 1;
 377                u64 pcsr_id : 1;
 378                u64 pcsr_sl : 1;
 379                u64 pkt_pout : 1;
 380                u64 pkt_imem : 1;
 381                u64 pkt_cntm : 1;
 382                u64 pkt_ind : 1;
 383                u64 pkt_slm : 1;
 384                u64 pkt_odf : 1;
 385                u64 pkt_oif : 1;
 386                u64 pkt_out : 1;
 387                u64 pkt_i0 : 1;
 388                u64 pkt_i1 : 1;
 389                u64 pkt_s0 : 1;
 390                u64 pkt_s1 : 1;
 391                u64 d0_mem : 1;
 392                u64 d1_mem : 1;
 393                u64 d2_mem : 1;
 394                u64 d3_mem : 1;
 395                u64 d4_mem : 1;
 396                u64 d0_pst : 1;
 397                u64 d1_pst : 1;
 398                u64 d2_pst : 1;
 399                u64 d3_pst : 1;
 400                u64 d4_pst : 1;
 401                u64 n2p0_c : 1;
 402                u64 n2p0_o : 1;
 403                u64 n2p1_c : 1;
 404                u64 n2p1_o : 1;
 405                u64 cpl_p0 : 1;
 406                u64 cpl_p1 : 1;
 407                u64 p2n1_po : 1;
 408                u64 p2n1_no : 1;
 409                u64 p2n1_co : 1;
 410                u64 p2n0_po : 1;
 411                u64 p2n0_no : 1;
 412                u64 p2n0_co : 1;
 413                u64 p2n0_c0 : 1;
 414                u64 p2n0_c1 : 1;
 415                u64 p2n0_n : 1;
 416                u64 p2n0_p0 : 1;
 417                u64 p2n0_p1 : 1;
 418                u64 p2n1_c0 : 1;
 419                u64 p2n1_c1 : 1;
 420                u64 p2n1_n : 1;
 421                u64 p2n1_p0 : 1;
 422                u64 p2n1_p1 : 1;
 423                u64 csm0 : 1;
 424                u64 csm1 : 1;
 425                u64 dif0 : 1;
 426                u64 dif1 : 1;
 427                u64 dif2 : 1;
 428                u64 dif3 : 1;
 429                u64 dif4 : 1;
 430                u64 msi : 1;
 431                u64 ncb_cmd : 1;
 432        } cn56xxp1;
 433};
 434
 435typedef union cvmx_npei_bist_status cvmx_npei_bist_status_t;
 436
 437/**
 438 * cvmx_npei_bist_status2
 439 *
 440 * NPEI_BIST_STATUS2 = NPI's BIST Status Register2
 441 *
 442 * Results from BIST runs of NPEI's memories.
 443 */
 444union cvmx_npei_bist_status2 {
 445        u64 u64;
 446        struct cvmx_npei_bist_status2_s {
 447                u64 reserved_14_63 : 50;
 448                u64 prd_tag : 1;
 449                u64 prd_st0 : 1;
 450                u64 prd_st1 : 1;
 451                u64 prd_err : 1;
 452                u64 nrd_st : 1;
 453                u64 nwe_st : 1;
 454                u64 nwe_wr0 : 1;
 455                u64 nwe_wr1 : 1;
 456                u64 pkt_rd : 1;
 457                u64 psc_p0 : 1;
 458                u64 psc_p1 : 1;
 459                u64 pkt_gd : 1;
 460                u64 pkt_gl : 1;
 461                u64 pkt_blk : 1;
 462        } s;
 463        struct cvmx_npei_bist_status2_s cn52xx;
 464        struct cvmx_npei_bist_status2_s cn56xx;
 465};
 466
 467typedef union cvmx_npei_bist_status2 cvmx_npei_bist_status2_t;
 468
 469/**
 470 * cvmx_npei_ctl_port0
 471 *
 472 * NPEI_CTL_PORT0 = NPEI's Control Port 0
 473 *
 474 * Contains control for access for Port0
 475 */
 476union cvmx_npei_ctl_port0 {
 477        u64 u64;
 478        struct cvmx_npei_ctl_port0_s {
 479                u64 reserved_21_63 : 43;
 480                u64 waitl_com : 1;
 481                u64 intd : 1;
 482                u64 intc : 1;
 483                u64 intb : 1;
 484                u64 inta : 1;
 485                u64 intd_map : 2;
 486                u64 intc_map : 2;
 487                u64 intb_map : 2;
 488                u64 inta_map : 2;
 489                u64 ctlp_ro : 1;
 490                u64 reserved_6_6 : 1;
 491                u64 ptlp_ro : 1;
 492                u64 bar2_enb : 1;
 493                u64 bar2_esx : 2;
 494                u64 bar2_cax : 1;
 495                u64 wait_com : 1;
 496        } s;
 497        struct cvmx_npei_ctl_port0_s cn52xx;
 498        struct cvmx_npei_ctl_port0_s cn52xxp1;
 499        struct cvmx_npei_ctl_port0_s cn56xx;
 500        struct cvmx_npei_ctl_port0_s cn56xxp1;
 501};
 502
 503typedef union cvmx_npei_ctl_port0 cvmx_npei_ctl_port0_t;
 504
 505/**
 506 * cvmx_npei_ctl_port1
 507 *
 508 * NPEI_CTL_PORT1 = NPEI's Control Port1
 509 *
 510 * Contains control for access for Port1
 511 */
 512union cvmx_npei_ctl_port1 {
 513        u64 u64;
 514        struct cvmx_npei_ctl_port1_s {
 515                u64 reserved_21_63 : 43;
 516                u64 waitl_com : 1;
 517                u64 intd : 1;
 518                u64 intc : 1;
 519                u64 intb : 1;
 520                u64 inta : 1;
 521                u64 intd_map : 2;
 522                u64 intc_map : 2;
 523                u64 intb_map : 2;
 524                u64 inta_map : 2;
 525                u64 ctlp_ro : 1;
 526                u64 reserved_6_6 : 1;
 527                u64 ptlp_ro : 1;
 528                u64 bar2_enb : 1;
 529                u64 bar2_esx : 2;
 530                u64 bar2_cax : 1;
 531                u64 wait_com : 1;
 532        } s;
 533        struct cvmx_npei_ctl_port1_s cn52xx;
 534        struct cvmx_npei_ctl_port1_s cn52xxp1;
 535        struct cvmx_npei_ctl_port1_s cn56xx;
 536        struct cvmx_npei_ctl_port1_s cn56xxp1;
 537};
 538
 539typedef union cvmx_npei_ctl_port1 cvmx_npei_ctl_port1_t;
 540
 541/**
 542 * cvmx_npei_ctl_status
 543 *
 544 * NPEI_CTL_STATUS = NPEI Control Status Register
 545 *
 546 * Contains control and status for NPEI. Writes to this register are not
 547 * oSrdered with writes/reads to the PCIe Memory space.
 548 * To ensure that a write has completed the user must read the register
 549 * before making an access(i.e. PCIe memory space)
 550 * that requires the value of this register to be updated.
 551 */
 552union cvmx_npei_ctl_status {
 553        u64 u64;
 554        struct cvmx_npei_ctl_status_s {
 555                u64 reserved_44_63 : 20;
 556                u64 p1_ntags : 6;
 557                u64 p0_ntags : 6;
 558                u64 cfg_rtry : 16;
 559                u64 ring_en : 1;
 560                u64 lnk_rst : 1;
 561                u64 arb : 1;
 562                u64 pkt_bp : 4;
 563                u64 host_mode : 1;
 564                u64 chip_rev : 8;
 565        } s;
 566        struct cvmx_npei_ctl_status_s cn52xx;
 567        struct cvmx_npei_ctl_status_cn52xxp1 {
 568                u64 reserved_44_63 : 20;
 569                u64 p1_ntags : 6;
 570                u64 p0_ntags : 6;
 571                u64 cfg_rtry : 16;
 572                u64 reserved_15_15 : 1;
 573                u64 lnk_rst : 1;
 574                u64 arb : 1;
 575                u64 reserved_9_12 : 4;
 576                u64 host_mode : 1;
 577                u64 chip_rev : 8;
 578        } cn52xxp1;
 579        struct cvmx_npei_ctl_status_s cn56xx;
 580        struct cvmx_npei_ctl_status_cn56xxp1 {
 581                u64 reserved_15_63 : 49;
 582                u64 lnk_rst : 1;
 583                u64 arb : 1;
 584                u64 pkt_bp : 4;
 585                u64 host_mode : 1;
 586                u64 chip_rev : 8;
 587        } cn56xxp1;
 588};
 589
 590typedef union cvmx_npei_ctl_status cvmx_npei_ctl_status_t;
 591
 592/**
 593 * cvmx_npei_ctl_status2
 594 *
 595 * NPEI_CTL_STATUS2 = NPEI's Control Status2 Register
 596 *
 597 * Contains control and status for NPEI.
 598 * Writes to this register are not ordered with writes/reads to the PCI
 599 * Memory space.
 600 * To ensure that a write has completed the user must read the register before
 601 * making an access(i.e. PCI memory space) that requires the value of this
 602 * register to be updated.
 603 */
 604union cvmx_npei_ctl_status2 {
 605        u64 u64;
 606        struct cvmx_npei_ctl_status2_s {
 607                u64 reserved_16_63 : 48;
 608                u64 mps : 1;
 609                u64 mrrs : 3;
 610                u64 c1_w_flt : 1;
 611                u64 c0_w_flt : 1;
 612                u64 c1_b1_s : 3;
 613                u64 c0_b1_s : 3;
 614                u64 c1_wi_d : 1;
 615                u64 c1_b0_d : 1;
 616                u64 c0_wi_d : 1;
 617                u64 c0_b0_d : 1;
 618        } s;
 619        struct cvmx_npei_ctl_status2_s cn52xx;
 620        struct cvmx_npei_ctl_status2_s cn52xxp1;
 621        struct cvmx_npei_ctl_status2_s cn56xx;
 622        struct cvmx_npei_ctl_status2_s cn56xxp1;
 623};
 624
 625typedef union cvmx_npei_ctl_status2 cvmx_npei_ctl_status2_t;
 626
 627/**
 628 * cvmx_npei_data_out_cnt
 629 *
 630 * NPEI_DATA_OUT_CNT = NPEI DATA OUT COUNT
 631 *
 632 * The EXEC data out fifo-count and the data unload counter.
 633 */
 634union cvmx_npei_data_out_cnt {
 635        u64 u64;
 636        struct cvmx_npei_data_out_cnt_s {
 637                u64 reserved_44_63 : 20;
 638                u64 p1_ucnt : 16;
 639                u64 p1_fcnt : 6;
 640                u64 p0_ucnt : 16;
 641                u64 p0_fcnt : 6;
 642        } s;
 643        struct cvmx_npei_data_out_cnt_s cn52xx;
 644        struct cvmx_npei_data_out_cnt_s cn52xxp1;
 645        struct cvmx_npei_data_out_cnt_s cn56xx;
 646        struct cvmx_npei_data_out_cnt_s cn56xxp1;
 647};
 648
 649typedef union cvmx_npei_data_out_cnt cvmx_npei_data_out_cnt_t;
 650
 651/**
 652 * cvmx_npei_dbg_data
 653 *
 654 * NPEI_DBG_DATA = NPEI Debug Data Register
 655 *
 656 * Value returned on the debug-data lines from the RSLs
 657 */
 658union cvmx_npei_dbg_data {
 659        u64 u64;
 660        struct cvmx_npei_dbg_data_s {
 661                u64 reserved_28_63 : 36;
 662                u64 qlm0_rev_lanes : 1;
 663                u64 reserved_25_26 : 2;
 664                u64 qlm1_spd : 2;
 665                u64 c_mul : 5;
 666                u64 dsel_ext : 1;
 667                u64 data : 17;
 668        } s;
 669        struct cvmx_npei_dbg_data_cn52xx {
 670                u64 reserved_29_63 : 35;
 671                u64 qlm0_link_width : 1;
 672                u64 qlm0_rev_lanes : 1;
 673                u64 qlm1_mode : 2;
 674                u64 qlm1_spd : 2;
 675                u64 c_mul : 5;
 676                u64 dsel_ext : 1;
 677                u64 data : 17;
 678        } cn52xx;
 679        struct cvmx_npei_dbg_data_cn52xx cn52xxp1;
 680        struct cvmx_npei_dbg_data_cn56xx {
 681                u64 reserved_29_63 : 35;
 682                u64 qlm2_rev_lanes : 1;
 683                u64 qlm0_rev_lanes : 1;
 684                u64 qlm3_spd : 2;
 685                u64 qlm1_spd : 2;
 686                u64 c_mul : 5;
 687                u64 dsel_ext : 1;
 688                u64 data : 17;
 689        } cn56xx;
 690        struct cvmx_npei_dbg_data_cn56xx cn56xxp1;
 691};
 692
 693typedef union cvmx_npei_dbg_data cvmx_npei_dbg_data_t;
 694
 695/**
 696 * cvmx_npei_dbg_select
 697 *
 698 * NPEI_DBG_SELECT = Debug Select Register
 699 *
 700 * Contains the debug select value last written to the RSLs.
 701 */
 702union cvmx_npei_dbg_select {
 703        u64 u64;
 704        struct cvmx_npei_dbg_select_s {
 705                u64 reserved_16_63 : 48;
 706                u64 dbg_sel : 16;
 707        } s;
 708        struct cvmx_npei_dbg_select_s cn52xx;
 709        struct cvmx_npei_dbg_select_s cn52xxp1;
 710        struct cvmx_npei_dbg_select_s cn56xx;
 711        struct cvmx_npei_dbg_select_s cn56xxp1;
 712};
 713
 714typedef union cvmx_npei_dbg_select cvmx_npei_dbg_select_t;
 715
 716/**
 717 * cvmx_npei_dma#_counts
 718 *
 719 * NPEI_DMA[0..4]_COUNTS = DMA Instruction Counts
 720 *
 721 * Values for determing the number of instructions for DMA[0..4] in the NPEI.
 722 */
 723union cvmx_npei_dmax_counts {
 724        u64 u64;
 725        struct cvmx_npei_dmax_counts_s {
 726                u64 reserved_39_63 : 25;
 727                u64 fcnt : 7;
 728                u64 dbell : 32;
 729        } s;
 730        struct cvmx_npei_dmax_counts_s cn52xx;
 731        struct cvmx_npei_dmax_counts_s cn52xxp1;
 732        struct cvmx_npei_dmax_counts_s cn56xx;
 733        struct cvmx_npei_dmax_counts_s cn56xxp1;
 734};
 735
 736typedef union cvmx_npei_dmax_counts cvmx_npei_dmax_counts_t;
 737
 738/**
 739 * cvmx_npei_dma#_dbell
 740 *
 741 * NPEI_DMA_DBELL[0..4] = DMA Door Bell
 742 *
 743 * The door bell register for DMA[0..4] queue.
 744 */
 745union cvmx_npei_dmax_dbell {
 746        u32 u32;
 747        struct cvmx_npei_dmax_dbell_s {
 748                u32 reserved_16_31 : 16;
 749                u32 dbell : 16;
 750        } s;
 751        struct cvmx_npei_dmax_dbell_s cn52xx;
 752        struct cvmx_npei_dmax_dbell_s cn52xxp1;
 753        struct cvmx_npei_dmax_dbell_s cn56xx;
 754        struct cvmx_npei_dmax_dbell_s cn56xxp1;
 755};
 756
 757typedef union cvmx_npei_dmax_dbell cvmx_npei_dmax_dbell_t;
 758
 759/**
 760 * cvmx_npei_dma#_ibuff_saddr
 761 *
 762 * NPEI_DMA[0..4]_IBUFF_SADDR = DMA Instruction Buffer Starting Address
 763 *
 764 * The address to start reading Instructions from for DMA[0..4].
 765 */
 766union cvmx_npei_dmax_ibuff_saddr {
 767        u64 u64;
 768        struct cvmx_npei_dmax_ibuff_saddr_s {
 769                u64 reserved_37_63 : 27;
 770                u64 idle : 1;
 771                u64 saddr : 29;
 772                u64 reserved_0_6 : 7;
 773        } s;
 774        struct cvmx_npei_dmax_ibuff_saddr_s cn52xx;
 775        struct cvmx_npei_dmax_ibuff_saddr_cn52xxp1 {
 776                u64 reserved_36_63 : 28;
 777                u64 saddr : 29;
 778                u64 reserved_0_6 : 7;
 779        } cn52xxp1;
 780        struct cvmx_npei_dmax_ibuff_saddr_s cn56xx;
 781        struct cvmx_npei_dmax_ibuff_saddr_cn52xxp1 cn56xxp1;
 782};
 783
 784typedef union cvmx_npei_dmax_ibuff_saddr cvmx_npei_dmax_ibuff_saddr_t;
 785
 786/**
 787 * cvmx_npei_dma#_naddr
 788 *
 789 * NPEI_DMA[0..4]_NADDR = DMA Next Ichunk Address
 790 *
 791 * Place NPEI will read the next Ichunk data from. This is valid when state is 0
 792 */
 793union cvmx_npei_dmax_naddr {
 794        u64 u64;
 795        struct cvmx_npei_dmax_naddr_s {
 796                u64 reserved_36_63 : 28;
 797                u64 addr : 36;
 798        } s;
 799        struct cvmx_npei_dmax_naddr_s cn52xx;
 800        struct cvmx_npei_dmax_naddr_s cn52xxp1;
 801        struct cvmx_npei_dmax_naddr_s cn56xx;
 802        struct cvmx_npei_dmax_naddr_s cn56xxp1;
 803};
 804
 805typedef union cvmx_npei_dmax_naddr cvmx_npei_dmax_naddr_t;
 806
 807/**
 808 * cvmx_npei_dma0_int_level
 809 *
 810 * NPEI_DMA0_INT_LEVEL = NPEI DMA0 Interrupt Level
 811 *
 812 * Thresholds for DMA count and timer interrupts for DMA0.
 813 */
 814union cvmx_npei_dma0_int_level {
 815        u64 u64;
 816        struct cvmx_npei_dma0_int_level_s {
 817                u64 time : 32;
 818                u64 cnt : 32;
 819        } s;
 820        struct cvmx_npei_dma0_int_level_s cn52xx;
 821        struct cvmx_npei_dma0_int_level_s cn52xxp1;
 822        struct cvmx_npei_dma0_int_level_s cn56xx;
 823        struct cvmx_npei_dma0_int_level_s cn56xxp1;
 824};
 825
 826typedef union cvmx_npei_dma0_int_level cvmx_npei_dma0_int_level_t;
 827
 828/**
 829 * cvmx_npei_dma1_int_level
 830 *
 831 * NPEI_DMA1_INT_LEVEL = NPEI DMA1 Interrupt Level
 832 *
 833 * Thresholds for DMA count and timer interrupts for DMA1.
 834 */
 835union cvmx_npei_dma1_int_level {
 836        u64 u64;
 837        struct cvmx_npei_dma1_int_level_s {
 838                u64 time : 32;
 839                u64 cnt : 32;
 840        } s;
 841        struct cvmx_npei_dma1_int_level_s cn52xx;
 842        struct cvmx_npei_dma1_int_level_s cn52xxp1;
 843        struct cvmx_npei_dma1_int_level_s cn56xx;
 844        struct cvmx_npei_dma1_int_level_s cn56xxp1;
 845};
 846
 847typedef union cvmx_npei_dma1_int_level cvmx_npei_dma1_int_level_t;
 848
 849/**
 850 * cvmx_npei_dma_cnts
 851 *
 852 * NPEI_DMA_CNTS = NPEI DMA Count
 853 *
 854 * The DMA Count values for DMA0 and DMA1.
 855 */
 856union cvmx_npei_dma_cnts {
 857        u64 u64;
 858        struct cvmx_npei_dma_cnts_s {
 859                u64 dma1 : 32;
 860                u64 dma0 : 32;
 861        } s;
 862        struct cvmx_npei_dma_cnts_s cn52xx;
 863        struct cvmx_npei_dma_cnts_s cn52xxp1;
 864        struct cvmx_npei_dma_cnts_s cn56xx;
 865        struct cvmx_npei_dma_cnts_s cn56xxp1;
 866};
 867
 868typedef union cvmx_npei_dma_cnts cvmx_npei_dma_cnts_t;
 869
 870/**
 871 * cvmx_npei_dma_control
 872 *
 873 * NPEI_DMA_CONTROL = DMA Control Register
 874 *
 875 * Controls operation of the DMA IN/OUT.
 876 */
 877union cvmx_npei_dma_control {
 878        u64 u64;
 879        struct cvmx_npei_dma_control_s {
 880                u64 reserved_40_63 : 24;
 881                u64 p_32b_m : 1;
 882                u64 dma4_enb : 1;
 883                u64 dma3_enb : 1;
 884                u64 dma2_enb : 1;
 885                u64 dma1_enb : 1;
 886                u64 dma0_enb : 1;
 887                u64 b0_lend : 1;
 888                u64 dwb_denb : 1;
 889                u64 dwb_ichk : 9;
 890                u64 fpa_que : 3;
 891                u64 o_add1 : 1;
 892                u64 o_ro : 1;
 893                u64 o_ns : 1;
 894                u64 o_es : 2;
 895                u64 o_mode : 1;
 896                u64 csize : 14;
 897        } s;
 898        struct cvmx_npei_dma_control_s cn52xx;
 899        struct cvmx_npei_dma_control_cn52xxp1 {
 900                u64 reserved_38_63 : 26;
 901                u64 dma3_enb : 1;
 902                u64 dma2_enb : 1;
 903                u64 dma1_enb : 1;
 904                u64 dma0_enb : 1;
 905                u64 b0_lend : 1;
 906                u64 dwb_denb : 1;
 907                u64 dwb_ichk : 9;
 908                u64 fpa_que : 3;
 909                u64 o_add1 : 1;
 910                u64 o_ro : 1;
 911                u64 o_ns : 1;
 912                u64 o_es : 2;
 913                u64 o_mode : 1;
 914                u64 csize : 14;
 915        } cn52xxp1;
 916        struct cvmx_npei_dma_control_s cn56xx;
 917        struct cvmx_npei_dma_control_cn56xxp1 {
 918                u64 reserved_39_63 : 25;
 919                u64 dma4_enb : 1;
 920                u64 dma3_enb : 1;
 921                u64 dma2_enb : 1;
 922                u64 dma1_enb : 1;
 923                u64 dma0_enb : 1;
 924                u64 b0_lend : 1;
 925                u64 dwb_denb : 1;
 926                u64 dwb_ichk : 9;
 927                u64 fpa_que : 3;
 928                u64 o_add1 : 1;
 929                u64 o_ro : 1;
 930                u64 o_ns : 1;
 931                u64 o_es : 2;
 932                u64 o_mode : 1;
 933                u64 csize : 14;
 934        } cn56xxp1;
 935};
 936
 937typedef union cvmx_npei_dma_control cvmx_npei_dma_control_t;
 938
 939/**
 940 * cvmx_npei_dma_pcie_req_num
 941 *
 942 * NPEI_DMA_PCIE_REQ_NUM = NPEI DMA PCIE Outstanding Read Request Number
 943 *
 944 * Outstanding PCIE read request number for DMAs and Packet, maximum number
 945 * is 16
 946 */
 947union cvmx_npei_dma_pcie_req_num {
 948        u64 u64;
 949        struct cvmx_npei_dma_pcie_req_num_s {
 950                u64 dma_arb : 1;
 951                u64 reserved_53_62 : 10;
 952                u64 pkt_cnt : 5;
 953                u64 reserved_45_47 : 3;
 954                u64 dma4_cnt : 5;
 955                u64 reserved_37_39 : 3;
 956                u64 dma3_cnt : 5;
 957                u64 reserved_29_31 : 3;
 958                u64 dma2_cnt : 5;
 959                u64 reserved_21_23 : 3;
 960                u64 dma1_cnt : 5;
 961                u64 reserved_13_15 : 3;
 962                u64 dma0_cnt : 5;
 963                u64 reserved_5_7 : 3;
 964                u64 dma_cnt : 5;
 965        } s;
 966        struct cvmx_npei_dma_pcie_req_num_s cn52xx;
 967        struct cvmx_npei_dma_pcie_req_num_s cn56xx;
 968};
 969
 970typedef union cvmx_npei_dma_pcie_req_num cvmx_npei_dma_pcie_req_num_t;
 971
 972/**
 973 * cvmx_npei_dma_state1
 974 *
 975 * NPEI_DMA_STATE1 = NPI's DMA State 1
 976 *
 977 * Results from DMA state register 1
 978 */
 979union cvmx_npei_dma_state1 {
 980        u64 u64;
 981        struct cvmx_npei_dma_state1_s {
 982                u64 reserved_40_63 : 24;
 983                u64 d4_dwe : 8;
 984                u64 d3_dwe : 8;
 985                u64 d2_dwe : 8;
 986                u64 d1_dwe : 8;
 987                u64 d0_dwe : 8;
 988        } s;
 989        struct cvmx_npei_dma_state1_s cn52xx;
 990};
 991
 992typedef union cvmx_npei_dma_state1 cvmx_npei_dma_state1_t;
 993
 994/**
 995 * cvmx_npei_dma_state1_p1
 996 *
 997 * NPEI_DMA_STATE1_P1 = NPEI DMA Request and Instruction State
 998 *
 999 * DMA engine Debug information.
1000 */
1001union cvmx_npei_dma_state1_p1 {
1002        u64 u64;
1003        struct cvmx_npei_dma_state1_p1_s {
1004                u64 reserved_60_63 : 4;
1005                u64 d0_difst : 7;
1006                u64 d1_difst : 7;
1007                u64 d2_difst : 7;
1008                u64 d3_difst : 7;
1009                u64 d4_difst : 7;
1010                u64 d0_reqst : 5;
1011                u64 d1_reqst : 5;
1012                u64 d2_reqst : 5;
1013                u64 d3_reqst : 5;
1014                u64 d4_reqst : 5;
1015        } s;
1016        struct cvmx_npei_dma_state1_p1_cn52xxp1 {
1017                u64 reserved_60_63 : 4;
1018                u64 d0_difst : 7;
1019                u64 d1_difst : 7;
1020                u64 d2_difst : 7;
1021                u64 d3_difst : 7;
1022                u64 reserved_25_31 : 7;
1023                u64 d0_reqst : 5;
1024                u64 d1_reqst : 5;
1025                u64 d2_reqst : 5;
1026                u64 d3_reqst : 5;
1027                u64 reserved_0_4 : 5;
1028        } cn52xxp1;
1029        struct cvmx_npei_dma_state1_p1_s cn56xxp1;
1030};
1031
1032typedef union cvmx_npei_dma_state1_p1 cvmx_npei_dma_state1_p1_t;
1033
1034/**
1035 * cvmx_npei_dma_state2
1036 *
1037 * NPEI_DMA_STATE2 = NPI's DMA State 2
1038 *
1039 * Results from DMA state register 2
1040 */
1041union cvmx_npei_dma_state2 {
1042        u64 u64;
1043        struct cvmx_npei_dma_state2_s {
1044                u64 reserved_28_63 : 36;
1045                u64 ndwe : 4;
1046                u64 reserved_21_23 : 3;
1047                u64 ndre : 5;
1048                u64 reserved_10_15 : 6;
1049                u64 prd : 10;
1050        } s;
1051        struct cvmx_npei_dma_state2_s cn52xx;
1052};
1053
1054typedef union cvmx_npei_dma_state2 cvmx_npei_dma_state2_t;
1055
1056/**
1057 * cvmx_npei_dma_state2_p1
1058 *
1059 * NPEI_DMA_STATE2_P1 = NPEI DMA Instruction Fetch State
1060 *
1061 * DMA engine Debug information.
1062 */
1063union cvmx_npei_dma_state2_p1 {
1064        u64 u64;
1065        struct cvmx_npei_dma_state2_p1_s {
1066                u64 reserved_45_63 : 19;
1067                u64 d0_dffst : 9;
1068                u64 d1_dffst : 9;
1069                u64 d2_dffst : 9;
1070                u64 d3_dffst : 9;
1071                u64 d4_dffst : 9;
1072        } s;
1073        struct cvmx_npei_dma_state2_p1_cn52xxp1 {
1074                u64 reserved_45_63 : 19;
1075                u64 d0_dffst : 9;
1076                u64 d1_dffst : 9;
1077                u64 d2_dffst : 9;
1078                u64 d3_dffst : 9;
1079                u64 reserved_0_8 : 9;
1080        } cn52xxp1;
1081        struct cvmx_npei_dma_state2_p1_s cn56xxp1;
1082};
1083
1084typedef union cvmx_npei_dma_state2_p1 cvmx_npei_dma_state2_p1_t;
1085
1086/**
1087 * cvmx_npei_dma_state3_p1
1088 *
1089 * NPEI_DMA_STATE3_P1 = NPEI DMA DRE State
1090 *
1091 * DMA engine Debug information.
1092 */
1093union cvmx_npei_dma_state3_p1 {
1094        u64 u64;
1095        struct cvmx_npei_dma_state3_p1_s {
1096                u64 reserved_60_63 : 4;
1097                u64 d0_drest : 15;
1098                u64 d1_drest : 15;
1099                u64 d2_drest : 15;
1100                u64 d3_drest : 15;
1101        } s;
1102        struct cvmx_npei_dma_state3_p1_s cn52xxp1;
1103        struct cvmx_npei_dma_state3_p1_s cn56xxp1;
1104};
1105
1106typedef union cvmx_npei_dma_state3_p1 cvmx_npei_dma_state3_p1_t;
1107
1108/**
1109 * cvmx_npei_dma_state4_p1
1110 *
1111 * NPEI_DMA_STATE4_P1 = NPEI DMA DWE State
1112 *
1113 * DMA engine Debug information.
1114 */
1115union cvmx_npei_dma_state4_p1 {
1116        u64 u64;
1117        struct cvmx_npei_dma_state4_p1_s {
1118                u64 reserved_52_63 : 12;
1119                u64 d0_dwest : 13;
1120                u64 d1_dwest : 13;
1121                u64 d2_dwest : 13;
1122                u64 d3_dwest : 13;
1123        } s;
1124        struct cvmx_npei_dma_state4_p1_s cn52xxp1;
1125        struct cvmx_npei_dma_state4_p1_s cn56xxp1;
1126};
1127
1128typedef union cvmx_npei_dma_state4_p1 cvmx_npei_dma_state4_p1_t;
1129
1130/**
1131 * cvmx_npei_dma_state5_p1
1132 *
1133 * NPEI_DMA_STATE5_P1 = NPEI DMA DWE and DRE State
1134 *
1135 * DMA engine Debug information.
1136 */
1137union cvmx_npei_dma_state5_p1 {
1138        u64 u64;
1139        struct cvmx_npei_dma_state5_p1_s {
1140                u64 reserved_28_63 : 36;
1141                u64 d4_drest : 15;
1142                u64 d4_dwest : 13;
1143        } s;
1144        struct cvmx_npei_dma_state5_p1_s cn56xxp1;
1145};
1146
1147typedef union cvmx_npei_dma_state5_p1 cvmx_npei_dma_state5_p1_t;
1148
1149/**
1150 * cvmx_npei_int_a_enb
1151 *
1152 * NPEI_INTERRUPT_A_ENB = NPI's Interrupt A Enable Register
1153 *
1154 * Used to allow the generation of interrupts (MSI/INTA) to the PCIe
1155 * CoresUsed to enable the various interrupting conditions of NPEI
1156 */
1157union cvmx_npei_int_a_enb {
1158        u64 u64;
1159        struct cvmx_npei_int_a_enb_s {
1160                u64 reserved_10_63 : 54;
1161                u64 pout_err : 1;
1162                u64 pin_bp : 1;
1163                u64 p1_rdlk : 1;
1164                u64 p0_rdlk : 1;
1165                u64 pgl_err : 1;
1166                u64 pdi_err : 1;
1167                u64 pop_err : 1;
1168                u64 pins_err : 1;
1169                u64 dma1_cpl : 1;
1170                u64 dma0_cpl : 1;
1171        } s;
1172        struct cvmx_npei_int_a_enb_s cn52xx;
1173        struct cvmx_npei_int_a_enb_cn52xxp1 {
1174                u64 reserved_2_63 : 62;
1175                u64 dma1_cpl : 1;
1176                u64 dma0_cpl : 1;
1177        } cn52xxp1;
1178        struct cvmx_npei_int_a_enb_s cn56xx;
1179};
1180
1181typedef union cvmx_npei_int_a_enb cvmx_npei_int_a_enb_t;
1182
1183/**
1184 * cvmx_npei_int_a_enb2
1185 *
1186 * NPEI_INTERRUPT_A_ENB2 = NPEI's Interrupt A Enable2 Register
1187 *
1188 * Used to enable the various interrupting conditions of NPEI
1189 */
1190union cvmx_npei_int_a_enb2 {
1191        u64 u64;
1192        struct cvmx_npei_int_a_enb2_s {
1193                u64 reserved_10_63 : 54;
1194                u64 pout_err : 1;
1195                u64 pin_bp : 1;
1196                u64 p1_rdlk : 1;
1197                u64 p0_rdlk : 1;
1198                u64 pgl_err : 1;
1199                u64 pdi_err : 1;
1200                u64 pop_err : 1;
1201                u64 pins_err : 1;
1202                u64 dma1_cpl : 1;
1203                u64 dma0_cpl : 1;
1204        } s;
1205        struct cvmx_npei_int_a_enb2_s cn52xx;
1206        struct cvmx_npei_int_a_enb2_cn52xxp1 {
1207                u64 reserved_2_63 : 62;
1208                u64 dma1_cpl : 1;
1209                u64 dma0_cpl : 1;
1210        } cn52xxp1;
1211        struct cvmx_npei_int_a_enb2_s cn56xx;
1212};
1213
1214typedef union cvmx_npei_int_a_enb2 cvmx_npei_int_a_enb2_t;
1215
1216/**
1217 * cvmx_npei_int_a_sum
1218 *
1219 * NPEI_INTERRUPT_A_SUM = NPI Interrupt A Summary Register
1220 *
1221 * Set when an interrupt condition occurs, write '1' to clear. When an
1222 * interrupt bitin this register is set and
1223 * the cooresponding bit in the NPEI_INT_A_ENB register is set, then
1224 * NPEI_INT_SUM[61] will be set.
1225 */
1226union cvmx_npei_int_a_sum {
1227        u64 u64;
1228        struct cvmx_npei_int_a_sum_s {
1229                u64 reserved_10_63 : 54;
1230                u64 pout_err : 1;
1231                u64 pin_bp : 1;
1232                u64 p1_rdlk : 1;
1233                u64 p0_rdlk : 1;
1234                u64 pgl_err : 1;
1235                u64 pdi_err : 1;
1236                u64 pop_err : 1;
1237                u64 pins_err : 1;
1238                u64 dma1_cpl : 1;
1239                u64 dma0_cpl : 1;
1240        } s;
1241        struct cvmx_npei_int_a_sum_s cn52xx;
1242        struct cvmx_npei_int_a_sum_cn52xxp1 {
1243                u64 reserved_2_63 : 62;
1244                u64 dma1_cpl : 1;
1245                u64 dma0_cpl : 1;
1246        } cn52xxp1;
1247        struct cvmx_npei_int_a_sum_s cn56xx;
1248};
1249
1250typedef union cvmx_npei_int_a_sum cvmx_npei_int_a_sum_t;
1251
1252/**
1253 * cvmx_npei_int_enb
1254 *
1255 * NPEI_INTERRUPT_ENB = NPI's Interrupt Enable Register
1256 *
1257 * Used to allow the generation of interrupts (MSI/INTA) to the PCIe
1258 * CoresUsed to enable the various interrupting conditions of NPI
1259 */
1260union cvmx_npei_int_enb {
1261        u64 u64;
1262        struct cvmx_npei_int_enb_s {
1263                u64 mio_inta : 1;
1264                u64 reserved_62_62 : 1;
1265                u64 int_a : 1;
1266                u64 c1_ldwn : 1;
1267                u64 c0_ldwn : 1;
1268                u64 c1_exc : 1;
1269                u64 c0_exc : 1;
1270                u64 c1_up_wf : 1;
1271                u64 c0_up_wf : 1;
1272                u64 c1_un_wf : 1;
1273                u64 c0_un_wf : 1;
1274                u64 c1_un_bx : 1;
1275                u64 c1_un_wi : 1;
1276                u64 c1_un_b2 : 1;
1277                u64 c1_un_b1 : 1;
1278                u64 c1_un_b0 : 1;
1279                u64 c1_up_bx : 1;
1280                u64 c1_up_wi : 1;
1281                u64 c1_up_b2 : 1;
1282                u64 c1_up_b1 : 1;
1283                u64 c1_up_b0 : 1;
1284                u64 c0_un_bx : 1;
1285                u64 c0_un_wi : 1;
1286                u64 c0_un_b2 : 1;
1287                u64 c0_un_b1 : 1;
1288                u64 c0_un_b0 : 1;
1289                u64 c0_up_bx : 1;
1290                u64 c0_up_wi : 1;
1291                u64 c0_up_b2 : 1;
1292                u64 c0_up_b1 : 1;
1293                u64 c0_up_b0 : 1;
1294                u64 c1_hpint : 1;
1295                u64 c1_pmei : 1;
1296                u64 c1_wake : 1;
1297                u64 crs1_dr : 1;
1298                u64 c1_se : 1;
1299                u64 crs1_er : 1;
1300                u64 c1_aeri : 1;
1301                u64 c0_hpint : 1;
1302                u64 c0_pmei : 1;
1303                u64 c0_wake : 1;
1304                u64 crs0_dr : 1;
1305                u64 c0_se : 1;
1306                u64 crs0_er : 1;
1307                u64 c0_aeri : 1;
1308                u64 ptime : 1;
1309                u64 pcnt : 1;
1310                u64 pidbof : 1;
1311                u64 psldbof : 1;
1312                u64 dtime1 : 1;
1313                u64 dtime0 : 1;
1314                u64 dcnt1 : 1;
1315                u64 dcnt0 : 1;
1316                u64 dma1fi : 1;
1317                u64 dma0fi : 1;
1318                u64 dma4dbo : 1;
1319                u64 dma3dbo : 1;
1320                u64 dma2dbo : 1;
1321                u64 dma1dbo : 1;
1322                u64 dma0dbo : 1;
1323                u64 iob2big : 1;
1324                u64 bar0_to : 1;
1325                u64 rml_wto : 1;
1326                u64 rml_rto : 1;
1327        } s;
1328        struct cvmx_npei_int_enb_s cn52xx;
1329        struct cvmx_npei_int_enb_cn52xxp1 {
1330                u64 mio_inta : 1;
1331                u64 reserved_62_62 : 1;
1332                u64 int_a : 1;
1333                u64 c1_ldwn : 1;
1334                u64 c0_ldwn : 1;
1335                u64 c1_exc : 1;
1336                u64 c0_exc : 1;
1337                u64 c1_up_wf : 1;
1338                u64 c0_up_wf : 1;
1339                u64 c1_un_wf : 1;
1340                u64 c0_un_wf : 1;
1341                u64 c1_un_bx : 1;
1342                u64 c1_un_wi : 1;
1343                u64 c1_un_b2 : 1;
1344                u64 c1_un_b1 : 1;
1345                u64 c1_un_b0 : 1;
1346                u64 c1_up_bx : 1;
1347                u64 c1_up_wi : 1;
1348                u64 c1_up_b2 : 1;
1349                u64 c1_up_b1 : 1;
1350                u64 c1_up_b0 : 1;
1351                u64 c0_un_bx : 1;
1352                u64 c0_un_wi : 1;
1353                u64 c0_un_b2 : 1;
1354                u64 c0_un_b1 : 1;
1355                u64 c0_un_b0 : 1;
1356                u64 c0_up_bx : 1;
1357                u64 c0_up_wi : 1;
1358                u64 c0_up_b2 : 1;
1359                u64 c0_up_b1 : 1;
1360                u64 c0_up_b0 : 1;
1361                u64 c1_hpint : 1;
1362                u64 c1_pmei : 1;
1363                u64 c1_wake : 1;
1364                u64 crs1_dr : 1;
1365                u64 c1_se : 1;
1366                u64 crs1_er : 1;
1367                u64 c1_aeri : 1;
1368                u64 c0_hpint : 1;
1369                u64 c0_pmei : 1;
1370                u64 c0_wake : 1;
1371                u64 crs0_dr : 1;
1372                u64 c0_se : 1;
1373                u64 crs0_er : 1;
1374                u64 c0_aeri : 1;
1375                u64 ptime : 1;
1376                u64 pcnt : 1;
1377                u64 pidbof : 1;
1378                u64 psldbof : 1;
1379                u64 dtime1 : 1;
1380                u64 dtime0 : 1;
1381                u64 dcnt1 : 1;
1382                u64 dcnt0 : 1;
1383                u64 dma1fi : 1;
1384                u64 dma0fi : 1;
1385                u64 reserved_8_8 : 1;
1386                u64 dma3dbo : 1;
1387                u64 dma2dbo : 1;
1388                u64 dma1dbo : 1;
1389                u64 dma0dbo : 1;
1390                u64 iob2big : 1;
1391                u64 bar0_to : 1;
1392                u64 rml_wto : 1;
1393                u64 rml_rto : 1;
1394        } cn52xxp1;
1395        struct cvmx_npei_int_enb_s cn56xx;
1396        struct cvmx_npei_int_enb_cn56xxp1 {
1397                u64 mio_inta : 1;
1398                u64 reserved_61_62 : 2;
1399                u64 c1_ldwn : 1;
1400                u64 c0_ldwn : 1;
1401                u64 c1_exc : 1;
1402                u64 c0_exc : 1;
1403                u64 c1_up_wf : 1;
1404                u64 c0_up_wf : 1;
1405                u64 c1_un_wf : 1;
1406                u64 c0_un_wf : 1;
1407                u64 c1_un_bx : 1;
1408                u64 c1_un_wi : 1;
1409                u64 c1_un_b2 : 1;
1410                u64 c1_un_b1 : 1;
1411                u64 c1_un_b0 : 1;
1412                u64 c1_up_bx : 1;
1413                u64 c1_up_wi : 1;
1414                u64 c1_up_b2 : 1;
1415                u64 c1_up_b1 : 1;
1416                u64 c1_up_b0 : 1;
1417                u64 c0_un_bx : 1;
1418                u64 c0_un_wi : 1;
1419                u64 c0_un_b2 : 1;
1420                u64 c0_un_b1 : 1;
1421                u64 c0_un_b0 : 1;
1422                u64 c0_up_bx : 1;
1423                u64 c0_up_wi : 1;
1424                u64 c0_up_b2 : 1;
1425                u64 c0_up_b1 : 1;
1426                u64 c0_up_b0 : 1;
1427                u64 c1_hpint : 1;
1428                u64 c1_pmei : 1;
1429                u64 c1_wake : 1;
1430                u64 reserved_29_29 : 1;
1431                u64 c1_se : 1;
1432                u64 reserved_27_27 : 1;
1433                u64 c1_aeri : 1;
1434                u64 c0_hpint : 1;
1435                u64 c0_pmei : 1;
1436                u64 c0_wake : 1;
1437                u64 reserved_22_22 : 1;
1438                u64 c0_se : 1;
1439                u64 reserved_20_20 : 1;
1440                u64 c0_aeri : 1;
1441                u64 ptime : 1;
1442                u64 pcnt : 1;
1443                u64 pidbof : 1;
1444                u64 psldbof : 1;
1445                u64 dtime1 : 1;
1446                u64 dtime0 : 1;
1447                u64 dcnt1 : 1;
1448                u64 dcnt0 : 1;
1449                u64 dma1fi : 1;
1450                u64 dma0fi : 1;
1451                u64 dma4dbo : 1;
1452                u64 dma3dbo : 1;
1453                u64 dma2dbo : 1;
1454                u64 dma1dbo : 1;
1455                u64 dma0dbo : 1;
1456                u64 iob2big : 1;
1457                u64 bar0_to : 1;
1458                u64 rml_wto : 1;
1459                u64 rml_rto : 1;
1460        } cn56xxp1;
1461};
1462
1463typedef union cvmx_npei_int_enb cvmx_npei_int_enb_t;
1464
1465/**
1466 * cvmx_npei_int_enb2
1467 *
1468 * NPEI_INTERRUPT_ENB2 = NPI's Interrupt Enable2 Register
1469 *
1470 * Used to enable the various interrupting conditions of NPI
1471 */
1472union cvmx_npei_int_enb2 {
1473        u64 u64;
1474        struct cvmx_npei_int_enb2_s {
1475                u64 reserved_62_63 : 2;
1476                u64 int_a : 1;
1477                u64 c1_ldwn : 1;
1478                u64 c0_ldwn : 1;
1479                u64 c1_exc : 1;
1480                u64 c0_exc : 1;
1481                u64 c1_up_wf : 1;
1482                u64 c0_up_wf : 1;
1483                u64 c1_un_wf : 1;
1484                u64 c0_un_wf : 1;
1485                u64 c1_un_bx : 1;
1486                u64 c1_un_wi : 1;
1487                u64 c1_un_b2 : 1;
1488                u64 c1_un_b1 : 1;
1489                u64 c1_un_b0 : 1;
1490                u64 c1_up_bx : 1;
1491                u64 c1_up_wi : 1;
1492                u64 c1_up_b2 : 1;
1493                u64 c1_up_b1 : 1;
1494                u64 c1_up_b0 : 1;
1495                u64 c0_un_bx : 1;
1496                u64 c0_un_wi : 1;
1497                u64 c0_un_b2 : 1;
1498                u64 c0_un_b1 : 1;
1499                u64 c0_un_b0 : 1;
1500                u64 c0_up_bx : 1;
1501                u64 c0_up_wi : 1;
1502                u64 c0_up_b2 : 1;
1503                u64 c0_up_b1 : 1;
1504                u64 c0_up_b0 : 1;
1505                u64 c1_hpint : 1;
1506                u64 c1_pmei : 1;
1507                u64 c1_wake : 1;
1508                u64 crs1_dr : 1;
1509                u64 c1_se : 1;
1510                u64 crs1_er : 1;
1511                u64 c1_aeri : 1;
1512                u64 c0_hpint : 1;
1513                u64 c0_pmei : 1;
1514                u64 c0_wake : 1;
1515                u64 crs0_dr : 1;
1516                u64 c0_se : 1;
1517                u64 crs0_er : 1;
1518                u64 c0_aeri : 1;
1519                u64 ptime : 1;
1520                u64 pcnt : 1;
1521                u64 pidbof : 1;
1522                u64 psldbof : 1;
1523                u64 dtime1 : 1;
1524                u64 dtime0 : 1;
1525                u64 dcnt1 : 1;
1526                u64 dcnt0 : 1;
1527                u64 dma1fi : 1;
1528                u64 dma0fi : 1;
1529                u64 dma4dbo : 1;
1530                u64 dma3dbo : 1;
1531                u64 dma2dbo : 1;
1532                u64 dma1dbo : 1;
1533                u64 dma0dbo : 1;
1534                u64 iob2big : 1;
1535                u64 bar0_to : 1;
1536                u64 rml_wto : 1;
1537                u64 rml_rto : 1;
1538        } s;
1539        struct cvmx_npei_int_enb2_s cn52xx;
1540        struct cvmx_npei_int_enb2_cn52xxp1 {
1541                u64 reserved_62_63 : 2;
1542                u64 int_a : 1;
1543                u64 c1_ldwn : 1;
1544                u64 c0_ldwn : 1;
1545                u64 c1_exc : 1;
1546                u64 c0_exc : 1;
1547                u64 c1_up_wf : 1;
1548                u64 c0_up_wf : 1;
1549                u64 c1_un_wf : 1;
1550                u64 c0_un_wf : 1;
1551                u64 c1_un_bx : 1;
1552                u64 c1_un_wi : 1;
1553                u64 c1_un_b2 : 1;
1554                u64 c1_un_b1 : 1;
1555                u64 c1_un_b0 : 1;
1556                u64 c1_up_bx : 1;
1557                u64 c1_up_wi : 1;
1558                u64 c1_up_b2 : 1;
1559                u64 c1_up_b1 : 1;
1560                u64 c1_up_b0 : 1;
1561                u64 c0_un_bx : 1;
1562                u64 c0_un_wi : 1;
1563                u64 c0_un_b2 : 1;
1564                u64 c0_un_b1 : 1;
1565                u64 c0_un_b0 : 1;
1566                u64 c0_up_bx : 1;
1567                u64 c0_up_wi : 1;
1568                u64 c0_up_b2 : 1;
1569                u64 c0_up_b1 : 1;
1570                u64 c0_up_b0 : 1;
1571                u64 c1_hpint : 1;
1572                u64 c1_pmei : 1;
1573                u64 c1_wake : 1;
1574                u64 crs1_dr : 1;
1575                u64 c1_se : 1;
1576                u64 crs1_er : 1;
1577                u64 c1_aeri : 1;
1578                u64 c0_hpint : 1;
1579                u64 c0_pmei : 1;
1580                u64 c0_wake : 1;
1581                u64 crs0_dr : 1;
1582                u64 c0_se : 1;
1583                u64 crs0_er : 1;
1584                u64 c0_aeri : 1;
1585                u64 ptime : 1;
1586                u64 pcnt : 1;
1587                u64 pidbof : 1;
1588                u64 psldbof : 1;
1589                u64 dtime1 : 1;
1590                u64 dtime0 : 1;
1591                u64 dcnt1 : 1;
1592                u64 dcnt0 : 1;
1593                u64 dma1fi : 1;
1594                u64 dma0fi : 1;
1595                u64 reserved_8_8 : 1;
1596                u64 dma3dbo : 1;
1597                u64 dma2dbo : 1;
1598                u64 dma1dbo : 1;
1599                u64 dma0dbo : 1;
1600                u64 iob2big : 1;
1601                u64 bar0_to : 1;
1602                u64 rml_wto : 1;
1603                u64 rml_rto : 1;
1604        } cn52xxp1;
1605        struct cvmx_npei_int_enb2_s cn56xx;
1606        struct cvmx_npei_int_enb2_cn56xxp1 {
1607                u64 reserved_61_63 : 3;
1608                u64 c1_ldwn : 1;
1609                u64 c0_ldwn : 1;
1610                u64 c1_exc : 1;
1611                u64 c0_exc : 1;
1612                u64 c1_up_wf : 1;
1613                u64 c0_up_wf : 1;
1614                u64 c1_un_wf : 1;
1615                u64 c0_un_wf : 1;
1616                u64 c1_un_bx : 1;
1617                u64 c1_un_wi : 1;
1618                u64 c1_un_b2 : 1;
1619                u64 c1_un_b1 : 1;
1620                u64 c1_un_b0 : 1;
1621                u64 c1_up_bx : 1;
1622                u64 c1_up_wi : 1;
1623                u64 c1_up_b2 : 1;
1624                u64 c1_up_b1 : 1;
1625                u64 c1_up_b0 : 1;
1626                u64 c0_un_bx : 1;
1627                u64 c0_un_wi : 1;
1628                u64 c0_un_b2 : 1;
1629                u64 c0_un_b1 : 1;
1630                u64 c0_un_b0 : 1;
1631                u64 c0_up_bx : 1;
1632                u64 c0_up_wi : 1;
1633                u64 c0_up_b2 : 1;
1634                u64 c0_up_b1 : 1;
1635                u64 c0_up_b0 : 1;
1636                u64 c1_hpint : 1;
1637                u64 c1_pmei : 1;
1638                u64 c1_wake : 1;
1639                u64 reserved_29_29 : 1;
1640                u64 c1_se : 1;
1641                u64 reserved_27_27 : 1;
1642                u64 c1_aeri : 1;
1643                u64 c0_hpint : 1;
1644                u64 c0_pmei : 1;
1645                u64 c0_wake : 1;
1646                u64 reserved_22_22 : 1;
1647                u64 c0_se : 1;
1648                u64 reserved_20_20 : 1;
1649                u64 c0_aeri : 1;
1650                u64 ptime : 1;
1651                u64 pcnt : 1;
1652                u64 pidbof : 1;
1653                u64 psldbof : 1;
1654                u64 dtime1 : 1;
1655                u64 dtime0 : 1;
1656                u64 dcnt1 : 1;
1657                u64 dcnt0 : 1;
1658                u64 dma1fi : 1;
1659                u64 dma0fi : 1;
1660                u64 dma4dbo : 1;
1661                u64 dma3dbo : 1;
1662                u64 dma2dbo : 1;
1663                u64 dma1dbo : 1;
1664                u64 dma0dbo : 1;
1665                u64 iob2big : 1;
1666                u64 bar0_to : 1;
1667                u64 rml_wto : 1;
1668                u64 rml_rto : 1;
1669        } cn56xxp1;
1670};
1671
1672typedef union cvmx_npei_int_enb2 cvmx_npei_int_enb2_t;
1673
1674/**
1675 * cvmx_npei_int_info
1676 *
1677 * NPEI_INT_INFO = NPI Interrupt Information
1678 *
1679 * Contains information about some of the interrupt condition that can occur
1680 * in the NPEI_INTERRUPT_SUM register.
1681 */
1682union cvmx_npei_int_info {
1683        u64 u64;
1684        struct cvmx_npei_int_info_s {
1685                u64 reserved_12_63 : 52;
1686                u64 pidbof : 6;
1687                u64 psldbof : 6;
1688        } s;
1689        struct cvmx_npei_int_info_s cn52xx;
1690        struct cvmx_npei_int_info_s cn56xx;
1691        struct cvmx_npei_int_info_s cn56xxp1;
1692};
1693
1694typedef union cvmx_npei_int_info cvmx_npei_int_info_t;
1695
1696/**
1697 * cvmx_npei_int_sum
1698 *
1699 * NPEI_INTERRUPT_SUM = NPI Interrupt Summary Register
1700 *
1701 * Set when an interrupt condition occurs, write '1' to clear.
1702 */
1703union cvmx_npei_int_sum {
1704        u64 u64;
1705        struct cvmx_npei_int_sum_s {
1706                u64 mio_inta : 1;
1707                u64 reserved_62_62 : 1;
1708                u64 int_a : 1;
1709                u64 c1_ldwn : 1;
1710                u64 c0_ldwn : 1;
1711                u64 c1_exc : 1;
1712                u64 c0_exc : 1;
1713                u64 c1_up_wf : 1;
1714                u64 c0_up_wf : 1;
1715                u64 c1_un_wf : 1;
1716                u64 c0_un_wf : 1;
1717                u64 c1_un_bx : 1;
1718                u64 c1_un_wi : 1;
1719                u64 c1_un_b2 : 1;
1720                u64 c1_un_b1 : 1;
1721                u64 c1_un_b0 : 1;
1722                u64 c1_up_bx : 1;
1723                u64 c1_up_wi : 1;
1724                u64 c1_up_b2 : 1;
1725                u64 c1_up_b1 : 1;
1726                u64 c1_up_b0 : 1;
1727                u64 c0_un_bx : 1;
1728                u64 c0_un_wi : 1;
1729                u64 c0_un_b2 : 1;
1730                u64 c0_un_b1 : 1;
1731                u64 c0_un_b0 : 1;
1732                u64 c0_up_bx : 1;
1733                u64 c0_up_wi : 1;
1734                u64 c0_up_b2 : 1;
1735                u64 c0_up_b1 : 1;
1736                u64 c0_up_b0 : 1;
1737                u64 c1_hpint : 1;
1738                u64 c1_pmei : 1;
1739                u64 c1_wake : 1;
1740                u64 crs1_dr : 1;
1741                u64 c1_se : 1;
1742                u64 crs1_er : 1;
1743                u64 c1_aeri : 1;
1744                u64 c0_hpint : 1;
1745                u64 c0_pmei : 1;
1746                u64 c0_wake : 1;
1747                u64 crs0_dr : 1;
1748                u64 c0_se : 1;
1749                u64 crs0_er : 1;
1750                u64 c0_aeri : 1;
1751                u64 ptime : 1;
1752                u64 pcnt : 1;
1753                u64 pidbof : 1;
1754                u64 psldbof : 1;
1755                u64 dtime1 : 1;
1756                u64 dtime0 : 1;
1757                u64 dcnt1 : 1;
1758                u64 dcnt0 : 1;
1759                u64 dma1fi : 1;
1760                u64 dma0fi : 1;
1761                u64 dma4dbo : 1;
1762                u64 dma3dbo : 1;
1763                u64 dma2dbo : 1;
1764                u64 dma1dbo : 1;
1765                u64 dma0dbo : 1;
1766                u64 iob2big : 1;
1767                u64 bar0_to : 1;
1768                u64 rml_wto : 1;
1769                u64 rml_rto : 1;
1770        } s;
1771        struct cvmx_npei_int_sum_s cn52xx;
1772        struct cvmx_npei_int_sum_cn52xxp1 {
1773                u64 mio_inta : 1;
1774                u64 reserved_62_62 : 1;
1775                u64 int_a : 1;
1776                u64 c1_ldwn : 1;
1777                u64 c0_ldwn : 1;
1778                u64 c1_exc : 1;
1779                u64 c0_exc : 1;
1780                u64 c1_up_wf : 1;
1781                u64 c0_up_wf : 1;
1782                u64 c1_un_wf : 1;
1783                u64 c0_un_wf : 1;
1784                u64 c1_un_bx : 1;
1785                u64 c1_un_wi : 1;
1786                u64 c1_un_b2 : 1;
1787                u64 c1_un_b1 : 1;
1788                u64 c1_un_b0 : 1;
1789                u64 c1_up_bx : 1;
1790                u64 c1_up_wi : 1;
1791                u64 c1_up_b2 : 1;
1792                u64 c1_up_b1 : 1;
1793                u64 c1_up_b0 : 1;
1794                u64 c0_un_bx : 1;
1795                u64 c0_un_wi : 1;
1796                u64 c0_un_b2 : 1;
1797                u64 c0_un_b1 : 1;
1798                u64 c0_un_b0 : 1;
1799                u64 c0_up_bx : 1;
1800                u64 c0_up_wi : 1;
1801                u64 c0_up_b2 : 1;
1802                u64 c0_up_b1 : 1;
1803                u64 c0_up_b0 : 1;
1804                u64 c1_hpint : 1;
1805                u64 c1_pmei : 1;
1806                u64 c1_wake : 1;
1807                u64 crs1_dr : 1;
1808                u64 c1_se : 1;
1809                u64 crs1_er : 1;
1810                u64 c1_aeri : 1;
1811                u64 c0_hpint : 1;
1812                u64 c0_pmei : 1;
1813                u64 c0_wake : 1;
1814                u64 crs0_dr : 1;
1815                u64 c0_se : 1;
1816                u64 crs0_er : 1;
1817                u64 c0_aeri : 1;
1818                u64 reserved_15_18 : 4;
1819                u64 dtime1 : 1;
1820                u64 dtime0 : 1;
1821                u64 dcnt1 : 1;
1822                u64 dcnt0 : 1;
1823                u64 dma1fi : 1;
1824                u64 dma0fi : 1;
1825                u64 reserved_8_8 : 1;
1826                u64 dma3dbo : 1;
1827                u64 dma2dbo : 1;
1828                u64 dma1dbo : 1;
1829                u64 dma0dbo : 1;
1830                u64 iob2big : 1;
1831                u64 bar0_to : 1;
1832                u64 rml_wto : 1;
1833                u64 rml_rto : 1;
1834        } cn52xxp1;
1835        struct cvmx_npei_int_sum_s cn56xx;
1836        struct cvmx_npei_int_sum_cn56xxp1 {
1837                u64 mio_inta : 1;
1838                u64 reserved_61_62 : 2;
1839                u64 c1_ldwn : 1;
1840                u64 c0_ldwn : 1;
1841                u64 c1_exc : 1;
1842                u64 c0_exc : 1;
1843                u64 c1_up_wf : 1;
1844                u64 c0_up_wf : 1;
1845                u64 c1_un_wf : 1;
1846                u64 c0_un_wf : 1;
1847                u64 c1_un_bx : 1;
1848                u64 c1_un_wi : 1;
1849                u64 c1_un_b2 : 1;
1850                u64 c1_un_b1 : 1;
1851                u64 c1_un_b0 : 1;
1852                u64 c1_up_bx : 1;
1853                u64 c1_up_wi : 1;
1854                u64 c1_up_b2 : 1;
1855                u64 c1_up_b1 : 1;
1856                u64 c1_up_b0 : 1;
1857                u64 c0_un_bx : 1;
1858                u64 c0_un_wi : 1;
1859                u64 c0_un_b2 : 1;
1860                u64 c0_un_b1 : 1;
1861                u64 c0_un_b0 : 1;
1862                u64 c0_up_bx : 1;
1863                u64 c0_up_wi : 1;
1864                u64 c0_up_b2 : 1;
1865                u64 c0_up_b1 : 1;
1866                u64 c0_up_b0 : 1;
1867                u64 c1_hpint : 1;
1868                u64 c1_pmei : 1;
1869                u64 c1_wake : 1;
1870                u64 reserved_29_29 : 1;
1871                u64 c1_se : 1;
1872                u64 reserved_27_27 : 1;
1873                u64 c1_aeri : 1;
1874                u64 c0_hpint : 1;
1875                u64 c0_pmei : 1;
1876                u64 c0_wake : 1;
1877                u64 reserved_22_22 : 1;
1878                u64 c0_se : 1;
1879                u64 reserved_20_20 : 1;
1880                u64 c0_aeri : 1;
1881                u64 reserved_15_18 : 4;
1882                u64 dtime1 : 1;
1883                u64 dtime0 : 1;
1884                u64 dcnt1 : 1;
1885                u64 dcnt0 : 1;
1886                u64 dma1fi : 1;
1887                u64 dma0fi : 1;
1888                u64 dma4dbo : 1;
1889                u64 dma3dbo : 1;
1890                u64 dma2dbo : 1;
1891                u64 dma1dbo : 1;
1892                u64 dma0dbo : 1;
1893                u64 iob2big : 1;
1894                u64 bar0_to : 1;
1895                u64 rml_wto : 1;
1896                u64 rml_rto : 1;
1897        } cn56xxp1;
1898};
1899
1900typedef union cvmx_npei_int_sum cvmx_npei_int_sum_t;
1901
1902/**
1903 * cvmx_npei_int_sum2
1904 *
1905 * NPEI_INTERRUPT_SUM2 = NPI Interrupt Summary2 Register
1906 *
1907 * This is a read only copy of the NPEI_INTERRUPT_SUM register with bit
1908 * variances.
1909 */
1910union cvmx_npei_int_sum2 {
1911        u64 u64;
1912        struct cvmx_npei_int_sum2_s {
1913                u64 mio_inta : 1;
1914                u64 reserved_62_62 : 1;
1915                u64 int_a : 1;
1916                u64 c1_ldwn : 1;
1917                u64 c0_ldwn : 1;
1918                u64 c1_exc : 1;
1919                u64 c0_exc : 1;
1920                u64 c1_up_wf : 1;
1921                u64 c0_up_wf : 1;
1922                u64 c1_un_wf : 1;
1923                u64 c0_un_wf : 1;
1924                u64 c1_un_bx : 1;
1925                u64 c1_un_wi : 1;
1926                u64 c1_un_b2 : 1;
1927                u64 c1_un_b1 : 1;
1928                u64 c1_un_b0 : 1;
1929                u64 c1_up_bx : 1;
1930                u64 c1_up_wi : 1;
1931                u64 c1_up_b2 : 1;
1932                u64 c1_up_b1 : 1;
1933                u64 c1_up_b0 : 1;
1934                u64 c0_un_bx : 1;
1935                u64 c0_un_wi : 1;
1936                u64 c0_un_b2 : 1;
1937                u64 c0_un_b1 : 1;
1938                u64 c0_un_b0 : 1;
1939                u64 c0_up_bx : 1;
1940                u64 c0_up_wi : 1;
1941                u64 c0_up_b2 : 1;
1942                u64 c0_up_b1 : 1;
1943                u64 c0_up_b0 : 1;
1944                u64 c1_hpint : 1;
1945                u64 c1_pmei : 1;
1946                u64 c1_wake : 1;
1947                u64 crs1_dr : 1;
1948                u64 c1_se : 1;
1949                u64 crs1_er : 1;
1950                u64 c1_aeri : 1;
1951                u64 c0_hpint : 1;
1952                u64 c0_pmei : 1;
1953                u64 c0_wake : 1;
1954                u64 crs0_dr : 1;
1955                u64 c0_se : 1;
1956                u64 crs0_er : 1;
1957                u64 c0_aeri : 1;
1958                u64 reserved_15_18 : 4;
1959                u64 dtime1 : 1;
1960                u64 dtime0 : 1;
1961                u64 dcnt1 : 1;
1962                u64 dcnt0 : 1;
1963                u64 dma1fi : 1;
1964                u64 dma0fi : 1;
1965                u64 reserved_8_8 : 1;
1966                u64 dma3dbo : 1;
1967                u64 dma2dbo : 1;
1968                u64 dma1dbo : 1;
1969                u64 dma0dbo : 1;
1970                u64 iob2big : 1;
1971                u64 bar0_to : 1;
1972                u64 rml_wto : 1;
1973                u64 rml_rto : 1;
1974        } s;
1975        struct cvmx_npei_int_sum2_s cn52xx;
1976        struct cvmx_npei_int_sum2_s cn52xxp1;
1977        struct cvmx_npei_int_sum2_s cn56xx;
1978};
1979
1980typedef union cvmx_npei_int_sum2 cvmx_npei_int_sum2_t;
1981
1982/**
1983 * cvmx_npei_last_win_rdata0
1984 *
1985 * NPEI_LAST_WIN_RDATA0 = NPEI Last Window Read Data Port0
1986 *
1987 * The data from the last initiated window read.
1988 */
1989union cvmx_npei_last_win_rdata0 {
1990        u64 u64;
1991        struct cvmx_npei_last_win_rdata0_s {
1992                u64 data : 64;
1993        } s;
1994        struct cvmx_npei_last_win_rdata0_s cn52xx;
1995        struct cvmx_npei_last_win_rdata0_s cn52xxp1;
1996        struct cvmx_npei_last_win_rdata0_s cn56xx;
1997        struct cvmx_npei_last_win_rdata0_s cn56xxp1;
1998};
1999
2000typedef union cvmx_npei_last_win_rdata0 cvmx_npei_last_win_rdata0_t;
2001
2002/**
2003 * cvmx_npei_last_win_rdata1
2004 *
2005 * NPEI_LAST_WIN_RDATA1 = NPEI Last Window Read Data Port1
2006 *
2007 * The data from the last initiated window read.
2008 */
2009union cvmx_npei_last_win_rdata1 {
2010        u64 u64;
2011        struct cvmx_npei_last_win_rdata1_s {
2012                u64 data : 64;
2013        } s;
2014        struct cvmx_npei_last_win_rdata1_s cn52xx;
2015        struct cvmx_npei_last_win_rdata1_s cn52xxp1;
2016        struct cvmx_npei_last_win_rdata1_s cn56xx;
2017        struct cvmx_npei_last_win_rdata1_s cn56xxp1;
2018};
2019
2020typedef union cvmx_npei_last_win_rdata1 cvmx_npei_last_win_rdata1_t;
2021
2022/**
2023 * cvmx_npei_mem_access_ctl
2024 *
2025 * NPEI_MEM_ACCESS_CTL = NPEI's Memory Access Control
2026 *
2027 * Contains control for access to the PCIe address space.
2028 */
2029union cvmx_npei_mem_access_ctl {
2030        u64 u64;
2031        struct cvmx_npei_mem_access_ctl_s {
2032                u64 reserved_14_63 : 50;
2033                u64 max_word : 4;
2034                u64 timer : 10;
2035        } s;
2036        struct cvmx_npei_mem_access_ctl_s cn52xx;
2037        struct cvmx_npei_mem_access_ctl_s cn52xxp1;
2038        struct cvmx_npei_mem_access_ctl_s cn56xx;
2039        struct cvmx_npei_mem_access_ctl_s cn56xxp1;
2040};
2041
2042typedef union cvmx_npei_mem_access_ctl cvmx_npei_mem_access_ctl_t;
2043
2044/**
2045 * cvmx_npei_mem_access_subid#
2046 *
2047 * NPEI_MEM_ACCESS_SUBIDX = NPEI Memory Access SubidX Register
2048 *
2049 * Contains address index and control bits for access to memory from Core PPs.
2050 */
2051union cvmx_npei_mem_access_subidx {
2052        u64 u64;
2053        struct cvmx_npei_mem_access_subidx_s {
2054                u64 reserved_42_63 : 22;
2055                u64 zero : 1;
2056                u64 port : 2;
2057                u64 nmerge : 1;
2058                u64 esr : 2;
2059                u64 esw : 2;
2060                u64 nsr : 1;
2061                u64 nsw : 1;
2062                u64 ror : 1;
2063                u64 row : 1;
2064                u64 ba : 30;
2065        } s;
2066        struct cvmx_npei_mem_access_subidx_s cn52xx;
2067        struct cvmx_npei_mem_access_subidx_s cn52xxp1;
2068        struct cvmx_npei_mem_access_subidx_s cn56xx;
2069        struct cvmx_npei_mem_access_subidx_s cn56xxp1;
2070};
2071
2072typedef union cvmx_npei_mem_access_subidx cvmx_npei_mem_access_subidx_t;
2073
2074/**
2075 * cvmx_npei_msi_enb0
2076 *
2077 * NPEI_MSI_ENB0 = NPEI MSI Enable0
2078 *
2079 * Used to enable the interrupt generation for the bits in the NPEI_MSI_RCV0.
2080 */
2081union cvmx_npei_msi_enb0 {
2082        u64 u64;
2083        struct cvmx_npei_msi_enb0_s {
2084                u64 enb : 64;
2085        } s;
2086        struct cvmx_npei_msi_enb0_s cn52xx;
2087        struct cvmx_npei_msi_enb0_s cn52xxp1;
2088        struct cvmx_npei_msi_enb0_s cn56xx;
2089        struct cvmx_npei_msi_enb0_s cn56xxp1;
2090};
2091
2092typedef union cvmx_npei_msi_enb0 cvmx_npei_msi_enb0_t;
2093
2094/**
2095 * cvmx_npei_msi_enb1
2096 *
2097 * NPEI_MSI_ENB1 = NPEI MSI Enable1
2098 *
2099 * Used to enable the interrupt generation for the bits in the NPEI_MSI_RCV1.
2100 */
2101union cvmx_npei_msi_enb1 {
2102        u64 u64;
2103        struct cvmx_npei_msi_enb1_s {
2104                u64 enb : 64;
2105        } s;
2106        struct cvmx_npei_msi_enb1_s cn52xx;
2107        struct cvmx_npei_msi_enb1_s cn52xxp1;
2108        struct cvmx_npei_msi_enb1_s cn56xx;
2109        struct cvmx_npei_msi_enb1_s cn56xxp1;
2110};
2111
2112typedef union cvmx_npei_msi_enb1 cvmx_npei_msi_enb1_t;
2113
2114/**
2115 * cvmx_npei_msi_enb2
2116 *
2117 * NPEI_MSI_ENB2 = NPEI MSI Enable2
2118 *
2119 * Used to enable the interrupt generation for the bits in the NPEI_MSI_RCV2.
2120 */
2121union cvmx_npei_msi_enb2 {
2122        u64 u64;
2123        struct cvmx_npei_msi_enb2_s {
2124                u64 enb : 64;
2125        } s;
2126        struct cvmx_npei_msi_enb2_s cn52xx;
2127        struct cvmx_npei_msi_enb2_s cn52xxp1;
2128        struct cvmx_npei_msi_enb2_s cn56xx;
2129        struct cvmx_npei_msi_enb2_s cn56xxp1;
2130};
2131
2132typedef union cvmx_npei_msi_enb2 cvmx_npei_msi_enb2_t;
2133
2134/**
2135 * cvmx_npei_msi_enb3
2136 *
2137 * NPEI_MSI_ENB3 = NPEI MSI Enable3
2138 *
2139 * Used to enable the interrupt generation for the bits in the NPEI_MSI_RCV3.
2140 */
2141union cvmx_npei_msi_enb3 {
2142        u64 u64;
2143        struct cvmx_npei_msi_enb3_s {
2144                u64 enb : 64;
2145        } s;
2146        struct cvmx_npei_msi_enb3_s cn52xx;
2147        struct cvmx_npei_msi_enb3_s cn52xxp1;
2148        struct cvmx_npei_msi_enb3_s cn56xx;
2149        struct cvmx_npei_msi_enb3_s cn56xxp1;
2150};
2151
2152typedef union cvmx_npei_msi_enb3 cvmx_npei_msi_enb3_t;
2153
2154/**
2155 * cvmx_npei_msi_rcv0
2156 *
2157 * NPEI_MSI_RCV0 = NPEI MSI Receive0
2158 *
2159 * Contains bits [63:0] of the 256 bits oof MSI interrupts.
2160 */
2161union cvmx_npei_msi_rcv0 {
2162        u64 u64;
2163        struct cvmx_npei_msi_rcv0_s {
2164                u64 intr : 64;
2165        } s;
2166        struct cvmx_npei_msi_rcv0_s cn52xx;
2167        struct cvmx_npei_msi_rcv0_s cn52xxp1;
2168        struct cvmx_npei_msi_rcv0_s cn56xx;
2169        struct cvmx_npei_msi_rcv0_s cn56xxp1;
2170};
2171
2172typedef union cvmx_npei_msi_rcv0 cvmx_npei_msi_rcv0_t;
2173
2174/**
2175 * cvmx_npei_msi_rcv1
2176 *
2177 * NPEI_MSI_RCV1 = NPEI MSI Receive1
2178 *
2179 * Contains bits [127:64] of the 256 bits oof MSI interrupts.
2180 */
2181union cvmx_npei_msi_rcv1 {
2182        u64 u64;
2183        struct cvmx_npei_msi_rcv1_s {
2184                u64 intr : 64;
2185        } s;
2186        struct cvmx_npei_msi_rcv1_s cn52xx;
2187        struct cvmx_npei_msi_rcv1_s cn52xxp1;
2188        struct cvmx_npei_msi_rcv1_s cn56xx;
2189        struct cvmx_npei_msi_rcv1_s cn56xxp1;
2190};
2191
2192typedef union cvmx_npei_msi_rcv1 cvmx_npei_msi_rcv1_t;
2193
2194/**
2195 * cvmx_npei_msi_rcv2
2196 *
2197 * NPEI_MSI_RCV2 = NPEI MSI Receive2
2198 *
2199 * Contains bits [191:128] of the 256 bits oof MSI interrupts.
2200 */
2201union cvmx_npei_msi_rcv2 {
2202        u64 u64;
2203        struct cvmx_npei_msi_rcv2_s {
2204                u64 intr : 64;
2205        } s;
2206        struct cvmx_npei_msi_rcv2_s cn52xx;
2207        struct cvmx_npei_msi_rcv2_s cn52xxp1;
2208        struct cvmx_npei_msi_rcv2_s cn56xx;
2209        struct cvmx_npei_msi_rcv2_s cn56xxp1;
2210};
2211
2212typedef union cvmx_npei_msi_rcv2 cvmx_npei_msi_rcv2_t;
2213
2214/**
2215 * cvmx_npei_msi_rcv3
2216 *
2217 * NPEI_MSI_RCV3 = NPEI MSI Receive3
2218 *
2219 * Contains bits [255:192] of the 256 bits oof MSI interrupts.
2220 */
2221union cvmx_npei_msi_rcv3 {
2222        u64 u64;
2223        struct cvmx_npei_msi_rcv3_s {
2224                u64 intr : 64;
2225        } s;
2226        struct cvmx_npei_msi_rcv3_s cn52xx;
2227        struct cvmx_npei_msi_rcv3_s cn52xxp1;
2228        struct cvmx_npei_msi_rcv3_s cn56xx;
2229        struct cvmx_npei_msi_rcv3_s cn56xxp1;
2230};
2231
2232typedef union cvmx_npei_msi_rcv3 cvmx_npei_msi_rcv3_t;
2233
2234/**
2235 * cvmx_npei_msi_rd_map
2236 *
2237 * NPEI_MSI_RD_MAP = NPEI MSI Read MAP
2238 *
2239 * Used to read the mapping function of the NPEI_PCIE_MSI_RCV to NPEI_MSI_RCV
2240 * registers.
2241 */
2242union cvmx_npei_msi_rd_map {
2243        u64 u64;
2244        struct cvmx_npei_msi_rd_map_s {
2245                u64 reserved_16_63 : 48;
2246                u64 rd_int : 8;
2247                u64 msi_int : 8;
2248        } s;
2249        struct cvmx_npei_msi_rd_map_s cn52xx;
2250        struct cvmx_npei_msi_rd_map_s cn52xxp1;
2251        struct cvmx_npei_msi_rd_map_s cn56xx;
2252        struct cvmx_npei_msi_rd_map_s cn56xxp1;
2253};
2254
2255typedef union cvmx_npei_msi_rd_map cvmx_npei_msi_rd_map_t;
2256
2257/**
2258 * cvmx_npei_msi_w1c_enb0
2259 *
2260 * NPEI_MSI_W1C_ENB0 = NPEI MSI Write 1 To Clear Enable0
2261 *
2262 * Used to clear bits in NPEI_MSI_ENB0. This is a PASS2 register.
2263 */
2264union cvmx_npei_msi_w1c_enb0 {
2265        u64 u64;
2266        struct cvmx_npei_msi_w1c_enb0_s {
2267                u64 clr : 64;
2268        } s;
2269        struct cvmx_npei_msi_w1c_enb0_s cn52xx;
2270        struct cvmx_npei_msi_w1c_enb0_s cn56xx;
2271};
2272
2273typedef union cvmx_npei_msi_w1c_enb0 cvmx_npei_msi_w1c_enb0_t;
2274
2275/**
2276 * cvmx_npei_msi_w1c_enb1
2277 *
2278 * NPEI_MSI_W1C_ENB1 = NPEI MSI Write 1 To Clear Enable1
2279 *
2280 * Used to clear bits in NPEI_MSI_ENB1. This is a PASS2 register.
2281 */
2282union cvmx_npei_msi_w1c_enb1 {
2283        u64 u64;
2284        struct cvmx_npei_msi_w1c_enb1_s {
2285                u64 clr : 64;
2286        } s;
2287        struct cvmx_npei_msi_w1c_enb1_s cn52xx;
2288        struct cvmx_npei_msi_w1c_enb1_s cn56xx;
2289};
2290
2291typedef union cvmx_npei_msi_w1c_enb1 cvmx_npei_msi_w1c_enb1_t;
2292
2293/**
2294 * cvmx_npei_msi_w1c_enb2
2295 *
2296 * NPEI_MSI_W1C_ENB2 = NPEI MSI Write 1 To Clear Enable2
2297 *
2298 * Used to clear bits in NPEI_MSI_ENB2. This is a PASS2 register.
2299 */
2300union cvmx_npei_msi_w1c_enb2 {
2301        u64 u64;
2302        struct cvmx_npei_msi_w1c_enb2_s {
2303                u64 clr : 64;
2304        } s;
2305        struct cvmx_npei_msi_w1c_enb2_s cn52xx;
2306        struct cvmx_npei_msi_w1c_enb2_s cn56xx;
2307};
2308
2309typedef union cvmx_npei_msi_w1c_enb2 cvmx_npei_msi_w1c_enb2_t;
2310
2311/**
2312 * cvmx_npei_msi_w1c_enb3
2313 *
2314 * NPEI_MSI_W1C_ENB3 = NPEI MSI Write 1 To Clear Enable3
2315 *
2316 * Used to clear bits in NPEI_MSI_ENB3. This is a PASS2 register.
2317 */
2318union cvmx_npei_msi_w1c_enb3 {
2319        u64 u64;
2320        struct cvmx_npei_msi_w1c_enb3_s {
2321                u64 clr : 64;
2322        } s;
2323        struct cvmx_npei_msi_w1c_enb3_s cn52xx;
2324        struct cvmx_npei_msi_w1c_enb3_s cn56xx;
2325};
2326
2327typedef union cvmx_npei_msi_w1c_enb3 cvmx_npei_msi_w1c_enb3_t;
2328
2329/**
2330 * cvmx_npei_msi_w1s_enb0
2331 *
2332 * NPEI_MSI_W1S_ENB0 = NPEI MSI Write 1 To Set Enable0
2333 *
2334 * Used to set bits in NPEI_MSI_ENB0. This is a PASS2 register.
2335 */
2336union cvmx_npei_msi_w1s_enb0 {
2337        u64 u64;
2338        struct cvmx_npei_msi_w1s_enb0_s {
2339                u64 set : 64;
2340        } s;
2341        struct cvmx_npei_msi_w1s_enb0_s cn52xx;
2342        struct cvmx_npei_msi_w1s_enb0_s cn56xx;
2343};
2344
2345typedef union cvmx_npei_msi_w1s_enb0 cvmx_npei_msi_w1s_enb0_t;
2346
2347/**
2348 * cvmx_npei_msi_w1s_enb1
2349 *
2350 * NPEI_MSI_W1S_ENB0 = NPEI MSI Write 1 To Set Enable1
2351 *
2352 * Used to set bits in NPEI_MSI_ENB1. This is a PASS2 register.
2353 */
2354union cvmx_npei_msi_w1s_enb1 {
2355        u64 u64;
2356        struct cvmx_npei_msi_w1s_enb1_s {
2357                u64 set : 64;
2358        } s;
2359        struct cvmx_npei_msi_w1s_enb1_s cn52xx;
2360        struct cvmx_npei_msi_w1s_enb1_s cn56xx;
2361};
2362
2363typedef union cvmx_npei_msi_w1s_enb1 cvmx_npei_msi_w1s_enb1_t;
2364
2365/**
2366 * cvmx_npei_msi_w1s_enb2
2367 *
2368 * NPEI_MSI_W1S_ENB2 = NPEI MSI Write 1 To Set Enable2
2369 *
2370 * Used to set bits in NPEI_MSI_ENB2. This is a PASS2 register.
2371 */
2372union cvmx_npei_msi_w1s_enb2 {
2373        u64 u64;
2374        struct cvmx_npei_msi_w1s_enb2_s {
2375                u64 set : 64;
2376        } s;
2377        struct cvmx_npei_msi_w1s_enb2_s cn52xx;
2378        struct cvmx_npei_msi_w1s_enb2_s cn56xx;
2379};
2380
2381typedef union cvmx_npei_msi_w1s_enb2 cvmx_npei_msi_w1s_enb2_t;
2382
2383/**
2384 * cvmx_npei_msi_w1s_enb3
2385 *
2386 * NPEI_MSI_W1S_ENB3 = NPEI MSI Write 1 To Set Enable3
2387 *
2388 * Used to set bits in NPEI_MSI_ENB3. This is a PASS2 register.
2389 */
2390union cvmx_npei_msi_w1s_enb3 {
2391        u64 u64;
2392        struct cvmx_npei_msi_w1s_enb3_s {
2393                u64 set : 64;
2394        } s;
2395        struct cvmx_npei_msi_w1s_enb3_s cn52xx;
2396        struct cvmx_npei_msi_w1s_enb3_s cn56xx;
2397};
2398
2399typedef union cvmx_npei_msi_w1s_enb3 cvmx_npei_msi_w1s_enb3_t;
2400
2401/**
2402 * cvmx_npei_msi_wr_map
2403 *
2404 * NPEI_MSI_WR_MAP = NPEI MSI Write MAP
2405 *
2406 * Used to write the mapping function of the NPEI_PCIE_MSI_RCV to NPEI_MSI_RCV
2407 * registers.
2408 */
2409union cvmx_npei_msi_wr_map {
2410        u64 u64;
2411        struct cvmx_npei_msi_wr_map_s {
2412                u64 reserved_16_63 : 48;
2413                u64 ciu_int : 8;
2414                u64 msi_int : 8;
2415        } s;
2416        struct cvmx_npei_msi_wr_map_s cn52xx;
2417        struct cvmx_npei_msi_wr_map_s cn52xxp1;
2418        struct cvmx_npei_msi_wr_map_s cn56xx;
2419        struct cvmx_npei_msi_wr_map_s cn56xxp1;
2420};
2421
2422typedef union cvmx_npei_msi_wr_map cvmx_npei_msi_wr_map_t;
2423
2424/**
2425 * cvmx_npei_pcie_credit_cnt
2426 *
2427 * NPEI_PCIE_CREDIT_CNT = NPEI PCIE Credit Count
2428 *
2429 * Contains the number of credits for the pcie port FIFOs used by the NPEI.
2430 * This value needs to be set BEFORE PCIe traffic
2431 * flow from NPEI to PCIE Ports starts. A write to this register will cause
2432 * the credit counts in the NPEI for the two
2433 * PCIE ports to be reset to the value in this register.
2434 */
2435union cvmx_npei_pcie_credit_cnt {
2436        u64 u64;
2437        struct cvmx_npei_pcie_credit_cnt_s {
2438                u64 reserved_48_63 : 16;
2439                u64 p1_ccnt : 8;
2440                u64 p1_ncnt : 8;
2441                u64 p1_pcnt : 8;
2442                u64 p0_ccnt : 8;
2443                u64 p0_ncnt : 8;
2444                u64 p0_pcnt : 8;
2445        } s;
2446        struct cvmx_npei_pcie_credit_cnt_s cn52xx;
2447        struct cvmx_npei_pcie_credit_cnt_s cn56xx;
2448};
2449
2450typedef union cvmx_npei_pcie_credit_cnt cvmx_npei_pcie_credit_cnt_t;
2451
2452/**
2453 * cvmx_npei_pcie_msi_rcv
2454 *
2455 * NPEI_PCIE_MSI_RCV = NPEI PCIe MSI Receive
2456 *
2457 * Register where MSI writes are directed from the PCIe.
2458 */
2459union cvmx_npei_pcie_msi_rcv {
2460        u64 u64;
2461        struct cvmx_npei_pcie_msi_rcv_s {
2462                u64 reserved_8_63 : 56;
2463                u64 intr : 8;
2464        } s;
2465        struct cvmx_npei_pcie_msi_rcv_s cn52xx;
2466        struct cvmx_npei_pcie_msi_rcv_s cn52xxp1;
2467        struct cvmx_npei_pcie_msi_rcv_s cn56xx;
2468        struct cvmx_npei_pcie_msi_rcv_s cn56xxp1;
2469};
2470
2471typedef union cvmx_npei_pcie_msi_rcv cvmx_npei_pcie_msi_rcv_t;
2472
2473/**
2474 * cvmx_npei_pcie_msi_rcv_b1
2475 *
2476 * NPEI_PCIE_MSI_RCV_B1 = NPEI PCIe MSI Receive Byte 1
2477 *
2478 * Register where MSI writes are directed from the PCIe.
2479 */
2480union cvmx_npei_pcie_msi_rcv_b1 {
2481        u64 u64;
2482        struct cvmx_npei_pcie_msi_rcv_b1_s {
2483                u64 reserved_16_63 : 48;
2484                u64 intr : 8;
2485                u64 reserved_0_7 : 8;
2486        } s;
2487        struct cvmx_npei_pcie_msi_rcv_b1_s cn52xx;
2488        struct cvmx_npei_pcie_msi_rcv_b1_s cn52xxp1;
2489        struct cvmx_npei_pcie_msi_rcv_b1_s cn56xx;
2490        struct cvmx_npei_pcie_msi_rcv_b1_s cn56xxp1;
2491};
2492
2493typedef union cvmx_npei_pcie_msi_rcv_b1 cvmx_npei_pcie_msi_rcv_b1_t;
2494
2495/**
2496 * cvmx_npei_pcie_msi_rcv_b2
2497 *
2498 * NPEI_PCIE_MSI_RCV_B2 = NPEI PCIe MSI Receive Byte 2
2499 *
2500 * Register where MSI writes are directed from the PCIe.
2501 */
2502union cvmx_npei_pcie_msi_rcv_b2 {
2503        u64 u64;
2504        struct cvmx_npei_pcie_msi_rcv_b2_s {
2505                u64 reserved_24_63 : 40;
2506                u64 intr : 8;
2507                u64 reserved_0_15 : 16;
2508        } s;
2509        struct cvmx_npei_pcie_msi_rcv_b2_s cn52xx;
2510        struct cvmx_npei_pcie_msi_rcv_b2_s cn52xxp1;
2511        struct cvmx_npei_pcie_msi_rcv_b2_s cn56xx;
2512        struct cvmx_npei_pcie_msi_rcv_b2_s cn56xxp1;
2513};
2514
2515typedef union cvmx_npei_pcie_msi_rcv_b2 cvmx_npei_pcie_msi_rcv_b2_t;
2516
2517/**
2518 * cvmx_npei_pcie_msi_rcv_b3
2519 *
2520 * NPEI_PCIE_MSI_RCV_B3 = NPEI PCIe MSI Receive Byte 3
2521 *
2522 * Register where MSI writes are directed from the PCIe.
2523 */
2524union cvmx_npei_pcie_msi_rcv_b3 {
2525        u64 u64;
2526        struct cvmx_npei_pcie_msi_rcv_b3_s {
2527                u64 reserved_32_63 : 32;
2528                u64 intr : 8;
2529                u64 reserved_0_23 : 24;
2530        } s;
2531        struct cvmx_npei_pcie_msi_rcv_b3_s cn52xx;
2532        struct cvmx_npei_pcie_msi_rcv_b3_s cn52xxp1;
2533        struct cvmx_npei_pcie_msi_rcv_b3_s cn56xx;
2534        struct cvmx_npei_pcie_msi_rcv_b3_s cn56xxp1;
2535};
2536
2537typedef union cvmx_npei_pcie_msi_rcv_b3 cvmx_npei_pcie_msi_rcv_b3_t;
2538
2539/**
2540 * cvmx_npei_pkt#_cnts
2541 *
2542 * NPEI_PKT[0..31]_CNTS = NPEI Packet ring# Counts
2543 *
2544 * The counters for output rings.
2545 */
2546union cvmx_npei_pktx_cnts {
2547        u64 u64;
2548        struct cvmx_npei_pktx_cnts_s {
2549                u64 reserved_54_63 : 10;
2550                u64 timer : 22;
2551                u64 cnt : 32;
2552        } s;
2553        struct cvmx_npei_pktx_cnts_s cn52xx;
2554        struct cvmx_npei_pktx_cnts_s cn56xx;
2555};
2556
2557typedef union cvmx_npei_pktx_cnts cvmx_npei_pktx_cnts_t;
2558
2559/**
2560 * cvmx_npei_pkt#_in_bp
2561 *
2562 * NPEI_PKT[0..31]_IN_BP = NPEI Packet ring# Input Backpressure
2563 *
2564 * The counters and thresholds for input packets to apply backpressure to
2565 * processing of the packets.
2566 */
2567union cvmx_npei_pktx_in_bp {
2568        u64 u64;
2569        struct cvmx_npei_pktx_in_bp_s {
2570                u64 wmark : 32;
2571                u64 cnt : 32;
2572        } s;
2573        struct cvmx_npei_pktx_in_bp_s cn52xx;
2574        struct cvmx_npei_pktx_in_bp_s cn56xx;
2575};
2576
2577typedef union cvmx_npei_pktx_in_bp cvmx_npei_pktx_in_bp_t;
2578
2579/**
2580 * cvmx_npei_pkt#_instr_baddr
2581 *
2582 * NPEI_PKT[0..31]_INSTR_BADDR = NPEI Packet ring# Instruction Base Address
2583 *
2584 * Start of Instruction for input packets.
2585 */
2586union cvmx_npei_pktx_instr_baddr {
2587        u64 u64;
2588        struct cvmx_npei_pktx_instr_baddr_s {
2589                u64 addr : 61;
2590                u64 reserved_0_2 : 3;
2591        } s;
2592        struct cvmx_npei_pktx_instr_baddr_s cn52xx;
2593        struct cvmx_npei_pktx_instr_baddr_s cn56xx;
2594};
2595
2596typedef union cvmx_npei_pktx_instr_baddr cvmx_npei_pktx_instr_baddr_t;
2597
2598/**
2599 * cvmx_npei_pkt#_instr_baoff_dbell
2600 *
2601 * NPEI_PKT[0..31]_INSTR_BAOFF_DBELL = NPEI Packet ring# Instruction Base
2602 * Address Offset and Doorbell
2603 *
2604 * The doorbell and base address offset for next read.
2605 */
2606union cvmx_npei_pktx_instr_baoff_dbell {
2607        u64 u64;
2608        struct cvmx_npei_pktx_instr_baoff_dbell_s {
2609                u64 aoff : 32;
2610                u64 dbell : 32;
2611        } s;
2612        struct cvmx_npei_pktx_instr_baoff_dbell_s cn52xx;
2613        struct cvmx_npei_pktx_instr_baoff_dbell_s cn56xx;
2614};
2615
2616typedef union cvmx_npei_pktx_instr_baoff_dbell
2617        cvmx_npei_pktx_instr_baoff_dbell_t;
2618
2619/**
2620 * cvmx_npei_pkt#_instr_fifo_rsize
2621 *
2622 * NPEI_PKT[0..31]_INSTR_FIFO_RSIZE = NPEI Packet ring# Instruction FIFO and
2623 * Ring Size.
2624 *
2625 * Fifo field and ring size for Instructions.
2626 */
2627union cvmx_npei_pktx_instr_fifo_rsize {
2628        u64 u64;
2629        struct cvmx_npei_pktx_instr_fifo_rsize_s {
2630                u64 max : 9;
2631                u64 rrp : 9;
2632                u64 wrp : 9;
2633                u64 fcnt : 5;
2634                u64 rsize : 32;
2635        } s;
2636        struct cvmx_npei_pktx_instr_fifo_rsize_s cn52xx;
2637        struct cvmx_npei_pktx_instr_fifo_rsize_s cn56xx;
2638};
2639
2640typedef union cvmx_npei_pktx_instr_fifo_rsize cvmx_npei_pktx_instr_fifo_rsize_t;
2641
2642/**
2643 * cvmx_npei_pkt#_instr_header
2644 *
2645 * NPEI_PKT[0..31]_INSTR_HEADER = NPEI Packet ring# Instruction Header.
2646 *
2647 * VAlues used to build input packet header.
2648 */
2649union cvmx_npei_pktx_instr_header {
2650        u64 u64;
2651        struct cvmx_npei_pktx_instr_header_s {
2652                u64 reserved_44_63 : 20;
2653                u64 pbp : 1;
2654                u64 reserved_38_42 : 5;
2655                u64 rparmode : 2;
2656                u64 reserved_35_35 : 1;
2657                u64 rskp_len : 7;
2658                u64 reserved_22_27 : 6;
2659                u64 use_ihdr : 1;
2660                u64 reserved_16_20 : 5;
2661                u64 par_mode : 2;
2662                u64 reserved_13_13 : 1;
2663                u64 skp_len : 7;
2664                u64 reserved_0_5 : 6;
2665        } s;
2666        struct cvmx_npei_pktx_instr_header_s cn52xx;
2667        struct cvmx_npei_pktx_instr_header_s cn56xx;
2668};
2669
2670typedef union cvmx_npei_pktx_instr_header cvmx_npei_pktx_instr_header_t;
2671
2672/**
2673 * cvmx_npei_pkt#_slist_baddr
2674 *
2675 * NPEI_PKT[0..31]_SLIST_BADDR = NPEI Packet ring# Scatter List Base Address
2676 *
2677 * Start of Scatter List for output packet pointers - MUST be 16 byte aligned
2678 */
2679union cvmx_npei_pktx_slist_baddr {
2680        u64 u64;
2681        struct cvmx_npei_pktx_slist_baddr_s {
2682                u64 addr : 60;
2683                u64 reserved_0_3 : 4;
2684        } s;
2685        struct cvmx_npei_pktx_slist_baddr_s cn52xx;
2686        struct cvmx_npei_pktx_slist_baddr_s cn56xx;
2687};
2688
2689typedef union cvmx_npei_pktx_slist_baddr cvmx_npei_pktx_slist_baddr_t;
2690
2691/**
2692 * cvmx_npei_pkt#_slist_baoff_dbell
2693 *
2694 * NPEI_PKT[0..31]_SLIST_BAOFF_DBELL = NPEI Packet ring# Scatter List Base
2695 * Address Offset and Doorbell
2696 *
2697 * The doorbell and base address offset for next read.
2698 */
2699union cvmx_npei_pktx_slist_baoff_dbell {
2700        u64 u64;
2701        struct cvmx_npei_pktx_slist_baoff_dbell_s {
2702                u64 aoff : 32;
2703                u64 dbell : 32;
2704        } s;
2705        struct cvmx_npei_pktx_slist_baoff_dbell_s cn52xx;
2706        struct cvmx_npei_pktx_slist_baoff_dbell_s cn56xx;
2707};
2708
2709typedef union cvmx_npei_pktx_slist_baoff_dbell
2710        cvmx_npei_pktx_slist_baoff_dbell_t;
2711
2712/**
2713 * cvmx_npei_pkt#_slist_fifo_rsize
2714 *
2715 * NPEI_PKT[0..31]_SLIST_FIFO_RSIZE = NPEI Packet ring# Scatter List FIFO and
2716 * Ring Size.
2717 *
2718 * The number of scatter pointer pairs in the scatter list.
2719 */
2720union cvmx_npei_pktx_slist_fifo_rsize {
2721        u64 u64;
2722        struct cvmx_npei_pktx_slist_fifo_rsize_s {
2723                u64 reserved_32_63 : 32;
2724                u64 rsize : 32;
2725        } s;
2726        struct cvmx_npei_pktx_slist_fifo_rsize_s cn52xx;
2727        struct cvmx_npei_pktx_slist_fifo_rsize_s cn56xx;
2728};
2729
2730typedef union cvmx_npei_pktx_slist_fifo_rsize cvmx_npei_pktx_slist_fifo_rsize_t;
2731
2732/**
2733 * cvmx_npei_pkt_cnt_int
2734 *
2735 * NPEI_PKT_CNT_INT = NPI Packet Counter Interrupt
2736 *
2737 * The packets rings that are interrupting because of Packet Counters.
2738 */
2739union cvmx_npei_pkt_cnt_int {
2740        u64 u64;
2741        struct cvmx_npei_pkt_cnt_int_s {
2742                u64 reserved_32_63 : 32;
2743                u64 port : 32;
2744        } s;
2745        struct cvmx_npei_pkt_cnt_int_s cn52xx;
2746        struct cvmx_npei_pkt_cnt_int_s cn56xx;
2747};
2748
2749typedef union cvmx_npei_pkt_cnt_int cvmx_npei_pkt_cnt_int_t;
2750
2751/**
2752 * cvmx_npei_pkt_cnt_int_enb
2753 *
2754 * NPEI_PKT_CNT_INT_ENB = NPI Packet Counter Interrupt Enable
2755 *
2756 * Enable for the packets rings that are interrupting because of Packet Counters.
2757 */
2758union cvmx_npei_pkt_cnt_int_enb {
2759        u64 u64;
2760        struct cvmx_npei_pkt_cnt_int_enb_s {
2761                u64 reserved_32_63 : 32;
2762                u64 port : 32;
2763        } s;
2764        struct cvmx_npei_pkt_cnt_int_enb_s cn52xx;
2765        struct cvmx_npei_pkt_cnt_int_enb_s cn56xx;
2766};
2767
2768typedef union cvmx_npei_pkt_cnt_int_enb cvmx_npei_pkt_cnt_int_enb_t;
2769
2770/**
2771 * cvmx_npei_pkt_data_out_es
2772 *
2773 * NPEI_PKT_DATA_OUT_ES = NPEI's Packet Data Out Endian Swap
2774 *
2775 * The Endian Swap for writing Data Out.
2776 */
2777union cvmx_npei_pkt_data_out_es {
2778        u64 u64;
2779        struct cvmx_npei_pkt_data_out_es_s {
2780                u64 es : 64;
2781        } s;
2782        struct cvmx_npei_pkt_data_out_es_s cn52xx;
2783        struct cvmx_npei_pkt_data_out_es_s cn56xx;
2784};
2785
2786typedef union cvmx_npei_pkt_data_out_es cvmx_npei_pkt_data_out_es_t;
2787
2788/**
2789 * cvmx_npei_pkt_data_out_ns
2790 *
2791 * NPEI_PKT_DATA_OUT_NS = NPEI's Packet Data Out No Snoop
2792 *
2793 * The NS field for the TLP when writing packet data.
2794 */
2795union cvmx_npei_pkt_data_out_ns {
2796        u64 u64;
2797        struct cvmx_npei_pkt_data_out_ns_s {
2798                u64 reserved_32_63 : 32;
2799                u64 nsr : 32;
2800        } s;
2801        struct cvmx_npei_pkt_data_out_ns_s cn52xx;
2802        struct cvmx_npei_pkt_data_out_ns_s cn56xx;
2803};
2804
2805typedef union cvmx_npei_pkt_data_out_ns cvmx_npei_pkt_data_out_ns_t;
2806
2807/**
2808 * cvmx_npei_pkt_data_out_ror
2809 *
2810 * NPEI_PKT_DATA_OUT_ROR = NPEI's Packet Data Out Relaxed Ordering
2811 *
2812 * The ROR field for the TLP when writing Packet Data.
2813 */
2814union cvmx_npei_pkt_data_out_ror {
2815        u64 u64;
2816        struct cvmx_npei_pkt_data_out_ror_s {
2817                u64 reserved_32_63 : 32;
2818                u64 ror : 32;
2819        } s;
2820        struct cvmx_npei_pkt_data_out_ror_s cn52xx;
2821        struct cvmx_npei_pkt_data_out_ror_s cn56xx;
2822};
2823
2824typedef union cvmx_npei_pkt_data_out_ror cvmx_npei_pkt_data_out_ror_t;
2825
2826/**
2827 * cvmx_npei_pkt_dpaddr
2828 *
2829 * NPEI_PKT_DPADDR = NPEI's Packet Data Pointer Addr
2830 *
2831 * Used to detemine address and attributes for packet data writes.
2832 */
2833union cvmx_npei_pkt_dpaddr {
2834        u64 u64;
2835        struct cvmx_npei_pkt_dpaddr_s {
2836                u64 reserved_32_63 : 32;
2837                u64 dptr : 32;
2838        } s;
2839        struct cvmx_npei_pkt_dpaddr_s cn52xx;
2840        struct cvmx_npei_pkt_dpaddr_s cn56xx;
2841};
2842
2843typedef union cvmx_npei_pkt_dpaddr cvmx_npei_pkt_dpaddr_t;
2844
2845/**
2846 * cvmx_npei_pkt_in_bp
2847 *
2848 * NPEI_PKT_IN_BP = NPEI Packet Input Backpressure
2849 *
2850 * Which input rings have backpressure applied.
2851 */
2852union cvmx_npei_pkt_in_bp {
2853        u64 u64;
2854        struct cvmx_npei_pkt_in_bp_s {
2855                u64 reserved_32_63 : 32;
2856                u64 bp : 32;
2857        } s;
2858        struct cvmx_npei_pkt_in_bp_s cn52xx;
2859        struct cvmx_npei_pkt_in_bp_s cn56xx;
2860};
2861
2862typedef union cvmx_npei_pkt_in_bp cvmx_npei_pkt_in_bp_t;
2863
2864/**
2865 * cvmx_npei_pkt_in_done#_cnts
2866 *
2867 * NPEI_PKT_IN_DONE[0..31]_CNTS = NPEI Instruction Done ring# Counts
2868 *
2869 * Counters for instructions completed on Input rings.
2870 */
2871union cvmx_npei_pkt_in_donex_cnts {
2872        u64 u64;
2873        struct cvmx_npei_pkt_in_donex_cnts_s {
2874                u64 reserved_32_63 : 32;
2875                u64 cnt : 32;
2876        } s;
2877        struct cvmx_npei_pkt_in_donex_cnts_s cn52xx;
2878        struct cvmx_npei_pkt_in_donex_cnts_s cn56xx;
2879};
2880
2881typedef union cvmx_npei_pkt_in_donex_cnts cvmx_npei_pkt_in_donex_cnts_t;
2882
2883/**
2884 * cvmx_npei_pkt_in_instr_counts
2885 *
2886 * NPEI_PKT_IN_INSTR_COUNTS = NPEI Packet Input Instrutction Counts
2887 *
2888 * Keeps track of the number of instructions read into the FIFO and Packets
2889 * sent to IPD.
2890 */
2891union cvmx_npei_pkt_in_instr_counts {
2892        u64 u64;
2893        struct cvmx_npei_pkt_in_instr_counts_s {
2894                u64 wr_cnt : 32;
2895                u64 rd_cnt : 32;
2896        } s;
2897        struct cvmx_npei_pkt_in_instr_counts_s cn52xx;
2898        struct cvmx_npei_pkt_in_instr_counts_s cn56xx;
2899};
2900
2901typedef union cvmx_npei_pkt_in_instr_counts cvmx_npei_pkt_in_instr_counts_t;
2902
2903/**
2904 * cvmx_npei_pkt_in_pcie_port
2905 *
2906 * NPEI_PKT_IN_PCIE_PORT = NPEI's Packet In To PCIe Port Assignment
2907 *
2908 * Assigns Packet Input rings to PCIe ports.
2909 */
2910union cvmx_npei_pkt_in_pcie_port {
2911        u64 u64;
2912        struct cvmx_npei_pkt_in_pcie_port_s {
2913                u64 pp : 64;
2914        } s;
2915        struct cvmx_npei_pkt_in_pcie_port_s cn52xx;
2916        struct cvmx_npei_pkt_in_pcie_port_s cn56xx;
2917};
2918
2919typedef union cvmx_npei_pkt_in_pcie_port cvmx_npei_pkt_in_pcie_port_t;
2920
2921/**
2922 * cvmx_npei_pkt_input_control
2923 *
2924 * NPEI_PKT_INPUT_CONTROL = NPEI's Packet Input Control
2925 *
2926 * Control for reads for gather list and instructions.
2927 */
2928union cvmx_npei_pkt_input_control {
2929        u64 u64;
2930        struct cvmx_npei_pkt_input_control_s {
2931                u64 reserved_23_63 : 41;
2932                u64 pkt_rr : 1;
2933                u64 pbp_dhi : 13;
2934                u64 d_nsr : 1;
2935                u64 d_esr : 2;
2936                u64 d_ror : 1;
2937                u64 use_csr : 1;
2938                u64 nsr : 1;
2939                u64 esr : 2;
2940                u64 ror : 1;
2941        } s;
2942        struct cvmx_npei_pkt_input_control_s cn52xx;
2943        struct cvmx_npei_pkt_input_control_s cn56xx;
2944};
2945
2946typedef union cvmx_npei_pkt_input_control cvmx_npei_pkt_input_control_t;
2947
2948/**
2949 * cvmx_npei_pkt_instr_enb
2950 *
2951 * NPEI_PKT_INSTR_ENB = NPEI's Packet Instruction Enable
2952 *
2953 * Enables the instruction fetch for a Packet-ring.
2954 */
2955union cvmx_npei_pkt_instr_enb {
2956        u64 u64;
2957        struct cvmx_npei_pkt_instr_enb_s {
2958                u64 reserved_32_63 : 32;
2959                u64 enb : 32;
2960        } s;
2961        struct cvmx_npei_pkt_instr_enb_s cn52xx;
2962        struct cvmx_npei_pkt_instr_enb_s cn56xx;
2963};
2964
2965typedef union cvmx_npei_pkt_instr_enb cvmx_npei_pkt_instr_enb_t;
2966
2967/**
2968 * cvmx_npei_pkt_instr_rd_size
2969 *
2970 * NPEI_PKT_INSTR_RD_SIZE = NPEI Instruction Read Size
2971 *
2972 * The number of instruction allowed to be read at one time.
2973 */
2974union cvmx_npei_pkt_instr_rd_size {
2975        u64 u64;
2976        struct cvmx_npei_pkt_instr_rd_size_s {
2977                u64 rdsize : 64;
2978        } s;
2979        struct cvmx_npei_pkt_instr_rd_size_s cn52xx;
2980        struct cvmx_npei_pkt_instr_rd_size_s cn56xx;
2981};
2982
2983typedef union cvmx_npei_pkt_instr_rd_size cvmx_npei_pkt_instr_rd_size_t;
2984
2985/**
2986 * cvmx_npei_pkt_instr_size
2987 *
2988 * NPEI_PKT_INSTR_SIZE = NPEI's Packet Instruction Size
2989 *
2990 * Determines if instructions are 64 or 32 byte in size for a Packet-ring.
2991 */
2992union cvmx_npei_pkt_instr_size {
2993        u64 u64;
2994        struct cvmx_npei_pkt_instr_size_s {
2995                u64 reserved_32_63 : 32;
2996                u64 is_64b : 32;
2997        } s;
2998        struct cvmx_npei_pkt_instr_size_s cn52xx;
2999        struct cvmx_npei_pkt_instr_size_s cn56xx;
3000};
3001
3002typedef union cvmx_npei_pkt_instr_size cvmx_npei_pkt_instr_size_t;
3003
3004/**
3005 * cvmx_npei_pkt_int_levels
3006 *
3007 * 0x90F0 reserved NPEI_PKT_PCIE_PORT2
3008 *
3009 *
3010 *                  NPEI_PKT_INT_LEVELS = NPEI's Packet Interrupt Levels
3011 *
3012 * Output packet interrupt levels.
3013 */
3014union cvmx_npei_pkt_int_levels {
3015        u64 u64;
3016        struct cvmx_npei_pkt_int_levels_s {
3017                u64 reserved_54_63 : 10;
3018                u64 time : 22;
3019                u64 cnt : 32;
3020        } s;
3021        struct cvmx_npei_pkt_int_levels_s cn52xx;
3022        struct cvmx_npei_pkt_int_levels_s cn56xx;
3023};
3024
3025typedef union cvmx_npei_pkt_int_levels cvmx_npei_pkt_int_levels_t;
3026
3027/**
3028 * cvmx_npei_pkt_iptr
3029 *
3030 * NPEI_PKT_IPTR = NPEI's Packet Info Poitner
3031 *
3032 * Controls using the Info-Pointer to store length and data.
3033 */
3034union cvmx_npei_pkt_iptr {
3035        u64 u64;
3036        struct cvmx_npei_pkt_iptr_s {
3037                u64 reserved_32_63 : 32;
3038                u64 iptr : 32;
3039        } s;
3040        struct cvmx_npei_pkt_iptr_s cn52xx;
3041        struct cvmx_npei_pkt_iptr_s cn56xx;
3042};
3043
3044typedef union cvmx_npei_pkt_iptr cvmx_npei_pkt_iptr_t;
3045
3046/**
3047 * cvmx_npei_pkt_out_bmode
3048 *
3049 * NPEI_PKT_OUT_BMODE = NPEI's Packet Out Byte Mode
3050 *
3051 * Control the updating of the NPEI_PKT#_CNT register.
3052 */
3053union cvmx_npei_pkt_out_bmode {
3054        u64 u64;
3055        struct cvmx_npei_pkt_out_bmode_s {
3056                u64 reserved_32_63 : 32;
3057                u64 bmode : 32;
3058        } s;
3059        struct cvmx_npei_pkt_out_bmode_s cn52xx;
3060        struct cvmx_npei_pkt_out_bmode_s cn56xx;
3061};
3062
3063typedef union cvmx_npei_pkt_out_bmode cvmx_npei_pkt_out_bmode_t;
3064
3065/**
3066 * cvmx_npei_pkt_out_enb
3067 *
3068 * NPEI_PKT_OUT_ENB = NPEI's Packet Output Enable
3069 *
3070 * Enables the output packet engines.
3071 */
3072union cvmx_npei_pkt_out_enb {
3073        u64 u64;
3074        struct cvmx_npei_pkt_out_enb_s {
3075                u64 reserved_32_63 : 32;
3076                u64 enb : 32;
3077        } s;
3078        struct cvmx_npei_pkt_out_enb_s cn52xx;
3079        struct cvmx_npei_pkt_out_enb_s cn56xx;
3080};
3081
3082typedef union cvmx_npei_pkt_out_enb cvmx_npei_pkt_out_enb_t;
3083
3084/**
3085 * cvmx_npei_pkt_output_wmark
3086 *
3087 * NPEI_PKT_OUTPUT_WMARK = NPEI's Packet Output Water Mark
3088 *
3089 * Value that when the NPEI_PKT#_SLIST_BAOFF_DBELL[DBELL] value is less then
3090 * that backpressure for the rings will be applied.
3091 */
3092union cvmx_npei_pkt_output_wmark {
3093        u64 u64;
3094        struct cvmx_npei_pkt_output_wmark_s {
3095                u64 reserved_32_63 : 32;
3096                u64 wmark : 32;
3097        } s;
3098        struct cvmx_npei_pkt_output_wmark_s cn52xx;
3099        struct cvmx_npei_pkt_output_wmark_s cn56xx;
3100};
3101
3102typedef union cvmx_npei_pkt_output_wmark cvmx_npei_pkt_output_wmark_t;
3103
3104/**
3105 * cvmx_npei_pkt_pcie_port
3106 *
3107 * NPEI_PKT_PCIE_PORT = NPEI's Packet To PCIe Port Assignment
3108 *
3109 * Assigns Packet Ports to PCIe ports.
3110 */
3111union cvmx_npei_pkt_pcie_port {
3112        u64 u64;
3113        struct cvmx_npei_pkt_pcie_port_s {
3114                u64 pp : 64;
3115        } s;
3116        struct cvmx_npei_pkt_pcie_port_s cn52xx;
3117        struct cvmx_npei_pkt_pcie_port_s cn56xx;
3118};
3119
3120typedef union cvmx_npei_pkt_pcie_port cvmx_npei_pkt_pcie_port_t;
3121
3122/**
3123 * cvmx_npei_pkt_port_in_rst
3124 *
3125 * NPEI_PKT_PORT_IN_RST = NPEI Packet Port In Reset
3126 *
3127 * Vector bits related to ring-port for ones that are reset.
3128 */
3129union cvmx_npei_pkt_port_in_rst {
3130        u64 u64;
3131        struct cvmx_npei_pkt_port_in_rst_s {
3132                u64 in_rst : 32;
3133                u64 out_rst : 32;
3134        } s;
3135        struct cvmx_npei_pkt_port_in_rst_s cn52xx;
3136        struct cvmx_npei_pkt_port_in_rst_s cn56xx;
3137};
3138
3139typedef union cvmx_npei_pkt_port_in_rst cvmx_npei_pkt_port_in_rst_t;
3140
3141/**
3142 * cvmx_npei_pkt_slist_es
3143 *
3144 * NPEI_PKT_SLIST_ES = NPEI's Packet Scatter List Endian Swap
3145 *
3146 * The Endian Swap for Scatter List Read.
3147 */
3148union cvmx_npei_pkt_slist_es {
3149        u64 u64;
3150        struct cvmx_npei_pkt_slist_es_s {
3151                u64 es : 64;
3152        } s;
3153        struct cvmx_npei_pkt_slist_es_s cn52xx;
3154        struct cvmx_npei_pkt_slist_es_s cn56xx;
3155};
3156
3157typedef union cvmx_npei_pkt_slist_es cvmx_npei_pkt_slist_es_t;
3158
3159/**
3160 * cvmx_npei_pkt_slist_id_size
3161 *
3162 * NPEI_PKT_SLIST_ID_SIZE = NPEI Packet Scatter List Info and Data Size
3163 *
3164 * The Size of the information and data fields pointed to by Scatter List
3165 * pointers.
3166 */
3167union cvmx_npei_pkt_slist_id_size {
3168        u64 u64;
3169        struct cvmx_npei_pkt_slist_id_size_s {
3170                u64 reserved_23_63 : 41;
3171                u64 isize : 7;
3172                u64 bsize : 16;
3173        } s;
3174        struct cvmx_npei_pkt_slist_id_size_s cn52xx;
3175        struct cvmx_npei_pkt_slist_id_size_s cn56xx;
3176};
3177
3178typedef union cvmx_npei_pkt_slist_id_size cvmx_npei_pkt_slist_id_size_t;
3179
3180/**
3181 * cvmx_npei_pkt_slist_ns
3182 *
3183 * NPEI_PKT_SLIST_NS = NPEI's Packet Scatter List No Snoop
3184 *
3185 * The NS field for the TLP when fetching Scatter List.
3186 */
3187union cvmx_npei_pkt_slist_ns {
3188        u64 u64;
3189        struct cvmx_npei_pkt_slist_ns_s {
3190                u64 reserved_32_63 : 32;
3191                u64 nsr : 32;
3192        } s;
3193        struct cvmx_npei_pkt_slist_ns_s cn52xx;
3194        struct cvmx_npei_pkt_slist_ns_s cn56xx;
3195};
3196
3197typedef union cvmx_npei_pkt_slist_ns cvmx_npei_pkt_slist_ns_t;
3198
3199/**
3200 * cvmx_npei_pkt_slist_ror
3201 *
3202 * NPEI_PKT_SLIST_ROR = NPEI's Packet Scatter List Relaxed Ordering
3203 *
3204 * The ROR field for the TLP when fetching Scatter List.
3205 */
3206union cvmx_npei_pkt_slist_ror {
3207        u64 u64;
3208        struct cvmx_npei_pkt_slist_ror_s {
3209                u64 reserved_32_63 : 32;
3210                u64 ror : 32;
3211        } s;
3212        struct cvmx_npei_pkt_slist_ror_s cn52xx;
3213        struct cvmx_npei_pkt_slist_ror_s cn56xx;
3214};
3215
3216typedef union cvmx_npei_pkt_slist_ror cvmx_npei_pkt_slist_ror_t;
3217
3218/**
3219 * cvmx_npei_pkt_time_int
3220 *
3221 * NPEI_PKT_TIME_INT = NPEI Packet Timer Interrupt
3222 *
3223 * The packets rings that are interrupting because of Packet Timers.
3224 */
3225union cvmx_npei_pkt_time_int {
3226        u64 u64;
3227        struct cvmx_npei_pkt_time_int_s {
3228                u64 reserved_32_63 : 32;
3229                u64 port : 32;
3230        } s;
3231        struct cvmx_npei_pkt_time_int_s cn52xx;
3232        struct cvmx_npei_pkt_time_int_s cn56xx;
3233};
3234
3235typedef union cvmx_npei_pkt_time_int cvmx_npei_pkt_time_int_t;
3236
3237/**
3238 * cvmx_npei_pkt_time_int_enb
3239 *
3240 * NPEI_PKT_TIME_INT_ENB = NPEI Packet Timer Interrupt Enable
3241 *
3242 * The packets rings that are interrupting because of Packet Timers.
3243 */
3244union cvmx_npei_pkt_time_int_enb {
3245        u64 u64;
3246        struct cvmx_npei_pkt_time_int_enb_s {
3247                u64 reserved_32_63 : 32;
3248                u64 port : 32;
3249        } s;
3250        struct cvmx_npei_pkt_time_int_enb_s cn52xx;
3251        struct cvmx_npei_pkt_time_int_enb_s cn56xx;
3252};
3253
3254typedef union cvmx_npei_pkt_time_int_enb cvmx_npei_pkt_time_int_enb_t;
3255
3256/**
3257 * cvmx_npei_rsl_int_blocks
3258 *
3259 * NPEI_RSL_INT_BLOCKS = NPEI RSL Interrupt Blocks Register
3260 *
3261 * Reading this register will return a vector with a bit set '1' for a
3262 * corresponding RSL block
3263 * that presently has an interrupt pending. The Field Description below
3264 * supplies the name of the
3265 * register that software should read to find out why that intterupt bit is set.
3266 */
3267union cvmx_npei_rsl_int_blocks {
3268        u64 u64;
3269        struct cvmx_npei_rsl_int_blocks_s {
3270                u64 reserved_31_63 : 33;
3271                u64 iob : 1;
3272                u64 lmc1 : 1;
3273                u64 agl : 1;
3274                u64 reserved_24_27 : 4;
3275                u64 asxpcs1 : 1;
3276                u64 asxpcs0 : 1;
3277                u64 reserved_21_21 : 1;
3278                u64 pip : 1;
3279                u64 spx1 : 1;
3280                u64 spx0 : 1;
3281                u64 lmc0 : 1;
3282                u64 l2c : 1;
3283                u64 usb1 : 1;
3284                u64 rad : 1;
3285                u64 usb : 1;
3286                u64 pow : 1;
3287                u64 tim : 1;
3288                u64 pko : 1;
3289                u64 ipd : 1;
3290                u64 reserved_8_8 : 1;
3291                u64 zip : 1;
3292                u64 dfa : 1;
3293                u64 fpa : 1;
3294                u64 key : 1;
3295                u64 npei : 1;
3296                u64 gmx1 : 1;
3297                u64 gmx0 : 1;
3298                u64 mio : 1;
3299        } s;
3300        struct cvmx_npei_rsl_int_blocks_s cn52xx;
3301        struct cvmx_npei_rsl_int_blocks_s cn52xxp1;
3302        struct cvmx_npei_rsl_int_blocks_s cn56xx;
3303        struct cvmx_npei_rsl_int_blocks_s cn56xxp1;
3304};
3305
3306typedef union cvmx_npei_rsl_int_blocks cvmx_npei_rsl_int_blocks_t;
3307
3308/**
3309 * cvmx_npei_scratch_1
3310 *
3311 * NPEI_SCRATCH_1 = NPEI's Scratch 1
3312 *
3313 * A general purpose 64 bit register for SW use.
3314 */
3315union cvmx_npei_scratch_1 {
3316        u64 u64;
3317        struct cvmx_npei_scratch_1_s {
3318                u64 data : 64;
3319        } s;
3320        struct cvmx_npei_scratch_1_s cn52xx;
3321        struct cvmx_npei_scratch_1_s cn52xxp1;
3322        struct cvmx_npei_scratch_1_s cn56xx;
3323        struct cvmx_npei_scratch_1_s cn56xxp1;
3324};
3325
3326typedef union cvmx_npei_scratch_1 cvmx_npei_scratch_1_t;
3327
3328/**
3329 * cvmx_npei_state1
3330 *
3331 * NPEI_STATE1 = NPEI State 1
3332 *
3333 * State machines in NPEI. For debug.
3334 */
3335union cvmx_npei_state1 {
3336        u64 u64;
3337        struct cvmx_npei_state1_s {
3338                u64 cpl1 : 12;
3339                u64 cpl0 : 12;
3340                u64 arb : 1;
3341                u64 csr : 39;
3342        } s;
3343        struct cvmx_npei_state1_s cn52xx;
3344        struct cvmx_npei_state1_s cn52xxp1;
3345        struct cvmx_npei_state1_s cn56xx;
3346        struct cvmx_npei_state1_s cn56xxp1;
3347};
3348
3349typedef union cvmx_npei_state1 cvmx_npei_state1_t;
3350
3351/**
3352 * cvmx_npei_state2
3353 *
3354 * NPEI_STATE2 = NPEI State 2
3355 *
3356 * State machines in NPEI. For debug.
3357 */
3358union cvmx_npei_state2 {
3359        u64 u64;
3360        struct cvmx_npei_state2_s {
3361                u64 reserved_48_63 : 16;
3362                u64 npei : 1;
3363                u64 rac : 1;
3364                u64 csm1 : 15;
3365                u64 csm0 : 15;
3366                u64 nnp0 : 8;
3367                u64 nnd : 8;
3368        } s;
3369        struct cvmx_npei_state2_s cn52xx;
3370        struct cvmx_npei_state2_s cn52xxp1;
3371        struct cvmx_npei_state2_s cn56xx;
3372        struct cvmx_npei_state2_s cn56xxp1;
3373};
3374
3375typedef union cvmx_npei_state2 cvmx_npei_state2_t;
3376
3377/**
3378 * cvmx_npei_state3
3379 *
3380 * NPEI_STATE3 = NPEI State 3
3381 *
3382 * State machines in NPEI. For debug.
3383 */
3384union cvmx_npei_state3 {
3385        u64 u64;
3386        struct cvmx_npei_state3_s {
3387                u64 reserved_56_63 : 8;
3388                u64 psm1 : 15;
3389                u64 psm0 : 15;
3390                u64 nsm1 : 13;
3391                u64 nsm0 : 13;
3392        } s;
3393        struct cvmx_npei_state3_s cn52xx;
3394        struct cvmx_npei_state3_s cn52xxp1;
3395        struct cvmx_npei_state3_s cn56xx;
3396        struct cvmx_npei_state3_s cn56xxp1;
3397};
3398
3399typedef union cvmx_npei_state3 cvmx_npei_state3_t;
3400
3401/**
3402 * cvmx_npei_win_rd_addr
3403 *
3404 * NPEI_WIN_RD_ADDR = NPEI Window Read Address Register
3405 *
3406 * The address to be read when the NPEI_WIN_RD_DATA register is read.
3407 */
3408union cvmx_npei_win_rd_addr {
3409        u64 u64;
3410        struct cvmx_npei_win_rd_addr_s {
3411                u64 reserved_51_63 : 13;
3412                u64 ld_cmd : 2;
3413                u64 iobit : 1;
3414                u64 rd_addr : 48;
3415        } s;
3416        struct cvmx_npei_win_rd_addr_s cn52xx;
3417        struct cvmx_npei_win_rd_addr_s cn52xxp1;
3418        struct cvmx_npei_win_rd_addr_s cn56xx;
3419        struct cvmx_npei_win_rd_addr_s cn56xxp1;
3420};
3421
3422typedef union cvmx_npei_win_rd_addr cvmx_npei_win_rd_addr_t;
3423
3424/**
3425 * cvmx_npei_win_rd_data
3426 *
3427 * NPEI_WIN_RD_DATA = NPEI Window Read Data Register
3428 *
3429 * Reading this register causes a window read operation to take place.
3430 * Address read is that contained in the NPEI_WIN_RD_ADDR
3431 * register.
3432 */
3433union cvmx_npei_win_rd_data {
3434        u64 u64;
3435        struct cvmx_npei_win_rd_data_s {
3436                u64 rd_data : 64;
3437        } s;
3438        struct cvmx_npei_win_rd_data_s cn52xx;
3439        struct cvmx_npei_win_rd_data_s cn52xxp1;
3440        struct cvmx_npei_win_rd_data_s cn56xx;
3441        struct cvmx_npei_win_rd_data_s cn56xxp1;
3442};
3443
3444typedef union cvmx_npei_win_rd_data cvmx_npei_win_rd_data_t;
3445
3446/**
3447 * cvmx_npei_win_wr_addr
3448 *
3449 * NPEI_WIN_WR_ADDR = NPEI Window Write Address Register
3450 *
3451 * Contains the address to be writen to when a write operation is started by
3452 * writing the
3453 * NPEI_WIN_WR_DATA register (see below).
3454 *
3455 * Notes:
3456 * Even though address bit [2] can be set, it should always be kept to '0'.
3457 *
3458 */
3459union cvmx_npei_win_wr_addr {
3460        u64 u64;
3461        struct cvmx_npei_win_wr_addr_s {
3462                u64 reserved_49_63 : 15;
3463                u64 iobit : 1;
3464                u64 wr_addr : 46;
3465                u64 reserved_0_1 : 2;
3466        } s;
3467        struct cvmx_npei_win_wr_addr_s cn52xx;
3468        struct cvmx_npei_win_wr_addr_s cn52xxp1;
3469        struct cvmx_npei_win_wr_addr_s cn56xx;
3470        struct cvmx_npei_win_wr_addr_s cn56xxp1;
3471};
3472
3473typedef union cvmx_npei_win_wr_addr cvmx_npei_win_wr_addr_t;
3474
3475/**
3476 * cvmx_npei_win_wr_data
3477 *
3478 * NPEI_WIN_WR_DATA = NPEI Window Write Data Register
3479 *
3480 * Contains the data to write to the address located in the NPEI_WIN_WR_ADDR
3481 * Register.
3482 * Writing the least-significant-byte of this register will cause a write
3483 * operation to take place.
3484 */
3485union cvmx_npei_win_wr_data {
3486        u64 u64;
3487        struct cvmx_npei_win_wr_data_s {
3488                u64 wr_data : 64;
3489        } s;
3490        struct cvmx_npei_win_wr_data_s cn52xx;
3491        struct cvmx_npei_win_wr_data_s cn52xxp1;
3492        struct cvmx_npei_win_wr_data_s cn56xx;
3493        struct cvmx_npei_win_wr_data_s cn56xxp1;
3494};
3495
3496typedef union cvmx_npei_win_wr_data cvmx_npei_win_wr_data_t;
3497
3498/**
3499 * cvmx_npei_win_wr_mask
3500 *
3501 * NPEI_WIN_WR_MASK = NPEI Window Write Mask Register
3502 *
3503 * Contains the mask for the data in the NPEI_WIN_WR_DATA Register.
3504 */
3505union cvmx_npei_win_wr_mask {
3506        u64 u64;
3507        struct cvmx_npei_win_wr_mask_s {
3508                u64 reserved_8_63 : 56;
3509                u64 wr_mask : 8;
3510        } s;
3511        struct cvmx_npei_win_wr_mask_s cn52xx;
3512        struct cvmx_npei_win_wr_mask_s cn52xxp1;
3513        struct cvmx_npei_win_wr_mask_s cn56xx;
3514        struct cvmx_npei_win_wr_mask_s cn56xxp1;
3515};
3516
3517typedef union cvmx_npei_win_wr_mask cvmx_npei_win_wr_mask_t;
3518
3519/**
3520 * cvmx_npei_window_ctl
3521 *
3522 * NPEI_WINDOW_CTL = NPEI's Window Control
3523 *
3524 * The name of this register is misleading. The timeout value is used for BAR0
3525 * access from PCIE0 and PCIE1.
3526 * Any access to the regigisters on the RML will timeout as 0xFFFF clock cycle.
3527 * At time of timeout the next
3528 * RML access will start, and interrupt will be set, and in the case of reads
3529 * no data will be returned.
3530 *
3531 * The value of this register should be set to a minimum of 0x200000 to ensure
3532 * that a timeout to an RML register
3533 * occurs on the RML 0xFFFF timer before the timeout for a BAR0 access from
3534 * the PCIE#.
3535 */
3536union cvmx_npei_window_ctl {
3537        u64 u64;
3538        struct cvmx_npei_window_ctl_s {
3539                u64 reserved_32_63 : 32;
3540                u64 time : 32;
3541        } s;
3542        struct cvmx_npei_window_ctl_s cn52xx;
3543        struct cvmx_npei_window_ctl_s cn52xxp1;
3544        struct cvmx_npei_window_ctl_s cn56xx;
3545        struct cvmx_npei_window_ctl_s cn56xxp1;
3546};
3547
3548typedef union cvmx_npei_window_ctl cvmx_npei_window_ctl_t;
3549
3550#endif
3551