Linux Audio

Check our new training course

Loading...
v3.1
   1/***********************license start***************
   2 * Author: Cavium Networks
   3 *
   4 * Contact: support@caviumnetworks.com
   5 * This file is part of the OCTEON SDK
   6 *
   7 * Copyright (c) 2003-2010 Cavium Networks
   8 *
   9 * This file is free software; you can redistribute it and/or modify
  10 * it under the terms of the GNU General Public License, Version 2, as
  11 * published by the Free Software Foundation.
  12 *
  13 * This file is distributed in the hope that it will be useful, but
  14 * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
  15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
  16 * NONINFRINGEMENT.  See the GNU General Public License for more
  17 * details.
  18 *
  19 * You should have received a copy of the GNU General Public License
  20 * along with this file; if not, write to the Free Software
  21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  22 * or visit http://www.gnu.org/licenses/.
  23 *
  24 * This file may also be available under a different license from Cavium.
  25 * Contact Cavium Networks for more information
  26 ***********************license end**************************************/
  27
  28#ifndef __CVMX_PCI_DEFS_H__
  29#define __CVMX_PCI_DEFS_H__
  30
  31#define CVMX_PCI_BAR1_INDEXX(offset) (0x0000000000000100ull + ((offset) & 31) * 4)
  32#define CVMX_PCI_BIST_REG (0x00000000000001C0ull)
  33#define CVMX_PCI_CFG00 (0x0000000000000000ull)
  34#define CVMX_PCI_CFG01 (0x0000000000000004ull)
  35#define CVMX_PCI_CFG02 (0x0000000000000008ull)
  36#define CVMX_PCI_CFG03 (0x000000000000000Cull)
  37#define CVMX_PCI_CFG04 (0x0000000000000010ull)
  38#define CVMX_PCI_CFG05 (0x0000000000000014ull)
  39#define CVMX_PCI_CFG06 (0x0000000000000018ull)
  40#define CVMX_PCI_CFG07 (0x000000000000001Cull)
  41#define CVMX_PCI_CFG08 (0x0000000000000020ull)
  42#define CVMX_PCI_CFG09 (0x0000000000000024ull)
  43#define CVMX_PCI_CFG10 (0x0000000000000028ull)
  44#define CVMX_PCI_CFG11 (0x000000000000002Cull)
  45#define CVMX_PCI_CFG12 (0x0000000000000030ull)
  46#define CVMX_PCI_CFG13 (0x0000000000000034ull)
  47#define CVMX_PCI_CFG15 (0x000000000000003Cull)
  48#define CVMX_PCI_CFG16 (0x0000000000000040ull)
  49#define CVMX_PCI_CFG17 (0x0000000000000044ull)
  50#define CVMX_PCI_CFG18 (0x0000000000000048ull)
  51#define CVMX_PCI_CFG19 (0x000000000000004Cull)
  52#define CVMX_PCI_CFG20 (0x0000000000000050ull)
  53#define CVMX_PCI_CFG21 (0x0000000000000054ull)
  54#define CVMX_PCI_CFG22 (0x0000000000000058ull)
  55#define CVMX_PCI_CFG56 (0x00000000000000E0ull)
  56#define CVMX_PCI_CFG57 (0x00000000000000E4ull)
  57#define CVMX_PCI_CFG58 (0x00000000000000E8ull)
  58#define CVMX_PCI_CFG59 (0x00000000000000ECull)
  59#define CVMX_PCI_CFG60 (0x00000000000000F0ull)
  60#define CVMX_PCI_CFG61 (0x00000000000000F4ull)
  61#define CVMX_PCI_CFG62 (0x00000000000000F8ull)
  62#define CVMX_PCI_CFG63 (0x00000000000000FCull)
  63#define CVMX_PCI_CNT_REG (0x00000000000001B8ull)
  64#define CVMX_PCI_CTL_STATUS_2 (0x000000000000018Cull)
  65#define CVMX_PCI_DBELL_X(offset) (0x0000000000000080ull + ((offset) & 3) * 8)
  66#define CVMX_PCI_DMA_CNT0 CVMX_PCI_DMA_CNTX(0)
  67#define CVMX_PCI_DMA_CNT1 CVMX_PCI_DMA_CNTX(1)
  68#define CVMX_PCI_DMA_CNTX(offset) (0x00000000000000A0ull + ((offset) & 1) * 8)
  69#define CVMX_PCI_DMA_INT_LEV0 CVMX_PCI_DMA_INT_LEVX(0)
  70#define CVMX_PCI_DMA_INT_LEV1 CVMX_PCI_DMA_INT_LEVX(1)
  71#define CVMX_PCI_DMA_INT_LEVX(offset) (0x00000000000000A4ull + ((offset) & 1) * 8)
  72#define CVMX_PCI_DMA_TIME0 CVMX_PCI_DMA_TIMEX(0)
  73#define CVMX_PCI_DMA_TIME1 CVMX_PCI_DMA_TIMEX(1)
  74#define CVMX_PCI_DMA_TIMEX(offset) (0x00000000000000B0ull + ((offset) & 1) * 4)
  75#define CVMX_PCI_INSTR_COUNT0 CVMX_PCI_INSTR_COUNTX(0)
  76#define CVMX_PCI_INSTR_COUNT1 CVMX_PCI_INSTR_COUNTX(1)
  77#define CVMX_PCI_INSTR_COUNT2 CVMX_PCI_INSTR_COUNTX(2)
  78#define CVMX_PCI_INSTR_COUNT3 CVMX_PCI_INSTR_COUNTX(3)
  79#define CVMX_PCI_INSTR_COUNTX(offset) (0x0000000000000084ull + ((offset) & 3) * 8)
  80#define CVMX_PCI_INT_ENB (0x0000000000000038ull)
  81#define CVMX_PCI_INT_ENB2 (0x00000000000001A0ull)
  82#define CVMX_PCI_INT_SUM (0x0000000000000030ull)
  83#define CVMX_PCI_INT_SUM2 (0x0000000000000198ull)
  84#define CVMX_PCI_MSI_RCV (0x00000000000000F0ull)
  85#define CVMX_PCI_PKTS_SENT0 CVMX_PCI_PKTS_SENTX(0)
  86#define CVMX_PCI_PKTS_SENT1 CVMX_PCI_PKTS_SENTX(1)
  87#define CVMX_PCI_PKTS_SENT2 CVMX_PCI_PKTS_SENTX(2)
  88#define CVMX_PCI_PKTS_SENT3 CVMX_PCI_PKTS_SENTX(3)
  89#define CVMX_PCI_PKTS_SENTX(offset) (0x0000000000000040ull + ((offset) & 3) * 16)
  90#define CVMX_PCI_PKTS_SENT_INT_LEV0 CVMX_PCI_PKTS_SENT_INT_LEVX(0)
  91#define CVMX_PCI_PKTS_SENT_INT_LEV1 CVMX_PCI_PKTS_SENT_INT_LEVX(1)
  92#define CVMX_PCI_PKTS_SENT_INT_LEV2 CVMX_PCI_PKTS_SENT_INT_LEVX(2)
  93#define CVMX_PCI_PKTS_SENT_INT_LEV3 CVMX_PCI_PKTS_SENT_INT_LEVX(3)
  94#define CVMX_PCI_PKTS_SENT_INT_LEVX(offset) (0x0000000000000048ull + ((offset) & 3) * 16)
  95#define CVMX_PCI_PKTS_SENT_TIME0 CVMX_PCI_PKTS_SENT_TIMEX(0)
  96#define CVMX_PCI_PKTS_SENT_TIME1 CVMX_PCI_PKTS_SENT_TIMEX(1)
  97#define CVMX_PCI_PKTS_SENT_TIME2 CVMX_PCI_PKTS_SENT_TIMEX(2)
  98#define CVMX_PCI_PKTS_SENT_TIME3 CVMX_PCI_PKTS_SENT_TIMEX(3)
  99#define CVMX_PCI_PKTS_SENT_TIMEX(offset) (0x000000000000004Cull + ((offset) & 3) * 16)
 100#define CVMX_PCI_PKT_CREDITS0 CVMX_PCI_PKT_CREDITSX(0)
 101#define CVMX_PCI_PKT_CREDITS1 CVMX_PCI_PKT_CREDITSX(1)
 102#define CVMX_PCI_PKT_CREDITS2 CVMX_PCI_PKT_CREDITSX(2)
 103#define CVMX_PCI_PKT_CREDITS3 CVMX_PCI_PKT_CREDITSX(3)
 104#define CVMX_PCI_PKT_CREDITSX(offset) (0x0000000000000044ull + ((offset) & 3) * 16)
 105#define CVMX_PCI_READ_CMD_6 (0x0000000000000180ull)
 106#define CVMX_PCI_READ_CMD_C (0x0000000000000184ull)
 107#define CVMX_PCI_READ_CMD_E (0x0000000000000188ull)
 108#define CVMX_PCI_READ_TIMEOUT (CVMX_ADD_IO_SEG(0x00011F00000000B0ull))
 109#define CVMX_PCI_SCM_REG (0x00000000000001A8ull)
 110#define CVMX_PCI_TSR_REG (0x00000000000001B0ull)
 111#define CVMX_PCI_WIN_RD_ADDR (0x0000000000000008ull)
 112#define CVMX_PCI_WIN_RD_DATA (0x0000000000000020ull)
 113#define CVMX_PCI_WIN_WR_ADDR (0x0000000000000000ull)
 114#define CVMX_PCI_WIN_WR_DATA (0x0000000000000010ull)
 115#define CVMX_PCI_WIN_WR_MASK (0x0000000000000018ull)
 116
 117union cvmx_pci_bar1_indexx {
 118	uint32_t u32;
 119	struct cvmx_pci_bar1_indexx_s {
 120		uint32_t reserved_18_31:14;
 121		uint32_t addr_idx:14;
 122		uint32_t ca:1;
 123		uint32_t end_swp:2;
 124		uint32_t addr_v:1;
 125	} s;
 126	struct cvmx_pci_bar1_indexx_s cn30xx;
 127	struct cvmx_pci_bar1_indexx_s cn31xx;
 128	struct cvmx_pci_bar1_indexx_s cn38xx;
 129	struct cvmx_pci_bar1_indexx_s cn38xxp2;
 130	struct cvmx_pci_bar1_indexx_s cn50xx;
 131	struct cvmx_pci_bar1_indexx_s cn58xx;
 132	struct cvmx_pci_bar1_indexx_s cn58xxp1;
 133};
 134
 135union cvmx_pci_bist_reg {
 136	uint64_t u64;
 137	struct cvmx_pci_bist_reg_s {
 138		uint64_t reserved_10_63:54;
 139		uint64_t rsp_bs:1;
 140		uint64_t dma0_bs:1;
 141		uint64_t cmd0_bs:1;
 142		uint64_t cmd_bs:1;
 143		uint64_t csr2p_bs:1;
 144		uint64_t csrr_bs:1;
 145		uint64_t rsp2p_bs:1;
 146		uint64_t csr2n_bs:1;
 147		uint64_t dat2n_bs:1;
 148		uint64_t dbg2n_bs:1;
 149	} s;
 150	struct cvmx_pci_bist_reg_s cn50xx;
 151};
 152
 153union cvmx_pci_cfg00 {
 154	uint32_t u32;
 155	struct cvmx_pci_cfg00_s {
 156		uint32_t devid:16;
 157		uint32_t vendid:16;
 158	} s;
 159	struct cvmx_pci_cfg00_s cn30xx;
 160	struct cvmx_pci_cfg00_s cn31xx;
 161	struct cvmx_pci_cfg00_s cn38xx;
 162	struct cvmx_pci_cfg00_s cn38xxp2;
 163	struct cvmx_pci_cfg00_s cn50xx;
 164	struct cvmx_pci_cfg00_s cn58xx;
 165	struct cvmx_pci_cfg00_s cn58xxp1;
 166};
 167
 168union cvmx_pci_cfg01 {
 169	uint32_t u32;
 170	struct cvmx_pci_cfg01_s {
 171		uint32_t dpe:1;
 172		uint32_t sse:1;
 173		uint32_t rma:1;
 174		uint32_t rta:1;
 175		uint32_t sta:1;
 176		uint32_t devt:2;
 177		uint32_t mdpe:1;
 178		uint32_t fbb:1;
 179		uint32_t reserved_22_22:1;
 180		uint32_t m66:1;
 181		uint32_t cle:1;
 182		uint32_t i_stat:1;
 183		uint32_t reserved_11_18:8;
 184		uint32_t i_dis:1;
 185		uint32_t fbbe:1;
 186		uint32_t see:1;
 187		uint32_t ads:1;
 188		uint32_t pee:1;
 189		uint32_t vps:1;
 190		uint32_t mwice:1;
 191		uint32_t scse:1;
 192		uint32_t me:1;
 193		uint32_t msae:1;
 194		uint32_t isae:1;
 195	} s;
 196	struct cvmx_pci_cfg01_s cn30xx;
 197	struct cvmx_pci_cfg01_s cn31xx;
 198	struct cvmx_pci_cfg01_s cn38xx;
 199	struct cvmx_pci_cfg01_s cn38xxp2;
 200	struct cvmx_pci_cfg01_s cn50xx;
 201	struct cvmx_pci_cfg01_s cn58xx;
 202	struct cvmx_pci_cfg01_s cn58xxp1;
 203};
 204
 205union cvmx_pci_cfg02 {
 206	uint32_t u32;
 207	struct cvmx_pci_cfg02_s {
 208		uint32_t cc:24;
 209		uint32_t rid:8;
 210	} s;
 211	struct cvmx_pci_cfg02_s cn30xx;
 212	struct cvmx_pci_cfg02_s cn31xx;
 213	struct cvmx_pci_cfg02_s cn38xx;
 214	struct cvmx_pci_cfg02_s cn38xxp2;
 215	struct cvmx_pci_cfg02_s cn50xx;
 216	struct cvmx_pci_cfg02_s cn58xx;
 217	struct cvmx_pci_cfg02_s cn58xxp1;
 218};
 219
 220union cvmx_pci_cfg03 {
 221	uint32_t u32;
 222	struct cvmx_pci_cfg03_s {
 223		uint32_t bcap:1;
 224		uint32_t brb:1;
 225		uint32_t reserved_28_29:2;
 226		uint32_t bcod:4;
 227		uint32_t ht:8;
 228		uint32_t lt:8;
 229		uint32_t cls:8;
 230	} s;
 231	struct cvmx_pci_cfg03_s cn30xx;
 232	struct cvmx_pci_cfg03_s cn31xx;
 233	struct cvmx_pci_cfg03_s cn38xx;
 234	struct cvmx_pci_cfg03_s cn38xxp2;
 235	struct cvmx_pci_cfg03_s cn50xx;
 236	struct cvmx_pci_cfg03_s cn58xx;
 237	struct cvmx_pci_cfg03_s cn58xxp1;
 238};
 239
 240union cvmx_pci_cfg04 {
 241	uint32_t u32;
 242	struct cvmx_pci_cfg04_s {
 243		uint32_t lbase:20;
 244		uint32_t lbasez:8;
 245		uint32_t pf:1;
 246		uint32_t typ:2;
 247		uint32_t mspc:1;
 248	} s;
 249	struct cvmx_pci_cfg04_s cn30xx;
 250	struct cvmx_pci_cfg04_s cn31xx;
 251	struct cvmx_pci_cfg04_s cn38xx;
 252	struct cvmx_pci_cfg04_s cn38xxp2;
 253	struct cvmx_pci_cfg04_s cn50xx;
 254	struct cvmx_pci_cfg04_s cn58xx;
 255	struct cvmx_pci_cfg04_s cn58xxp1;
 256};
 257
 258union cvmx_pci_cfg05 {
 259	uint32_t u32;
 260	struct cvmx_pci_cfg05_s {
 261		uint32_t hbase:32;
 262	} s;
 263	struct cvmx_pci_cfg05_s cn30xx;
 264	struct cvmx_pci_cfg05_s cn31xx;
 265	struct cvmx_pci_cfg05_s cn38xx;
 266	struct cvmx_pci_cfg05_s cn38xxp2;
 267	struct cvmx_pci_cfg05_s cn50xx;
 268	struct cvmx_pci_cfg05_s cn58xx;
 269	struct cvmx_pci_cfg05_s cn58xxp1;
 270};
 271
 272union cvmx_pci_cfg06 {
 273	uint32_t u32;
 274	struct cvmx_pci_cfg06_s {
 275		uint32_t lbase:5;
 276		uint32_t lbasez:23;
 277		uint32_t pf:1;
 278		uint32_t typ:2;
 279		uint32_t mspc:1;
 280	} s;
 281	struct cvmx_pci_cfg06_s cn30xx;
 282	struct cvmx_pci_cfg06_s cn31xx;
 283	struct cvmx_pci_cfg06_s cn38xx;
 284	struct cvmx_pci_cfg06_s cn38xxp2;
 285	struct cvmx_pci_cfg06_s cn50xx;
 286	struct cvmx_pci_cfg06_s cn58xx;
 287	struct cvmx_pci_cfg06_s cn58xxp1;
 288};
 289
 290union cvmx_pci_cfg07 {
 291	uint32_t u32;
 292	struct cvmx_pci_cfg07_s {
 293		uint32_t hbase:32;
 294	} s;
 295	struct cvmx_pci_cfg07_s cn30xx;
 296	struct cvmx_pci_cfg07_s cn31xx;
 297	struct cvmx_pci_cfg07_s cn38xx;
 298	struct cvmx_pci_cfg07_s cn38xxp2;
 299	struct cvmx_pci_cfg07_s cn50xx;
 300	struct cvmx_pci_cfg07_s cn58xx;
 301	struct cvmx_pci_cfg07_s cn58xxp1;
 302};
 303
 304union cvmx_pci_cfg08 {
 305	uint32_t u32;
 306	struct cvmx_pci_cfg08_s {
 307		uint32_t lbasez:28;
 308		uint32_t pf:1;
 309		uint32_t typ:2;
 310		uint32_t mspc:1;
 311	} s;
 312	struct cvmx_pci_cfg08_s cn30xx;
 313	struct cvmx_pci_cfg08_s cn31xx;
 314	struct cvmx_pci_cfg08_s cn38xx;
 315	struct cvmx_pci_cfg08_s cn38xxp2;
 316	struct cvmx_pci_cfg08_s cn50xx;
 317	struct cvmx_pci_cfg08_s cn58xx;
 318	struct cvmx_pci_cfg08_s cn58xxp1;
 319};
 320
 321union cvmx_pci_cfg09 {
 322	uint32_t u32;
 323	struct cvmx_pci_cfg09_s {
 324		uint32_t hbase:25;
 325		uint32_t hbasez:7;
 326	} s;
 327	struct cvmx_pci_cfg09_s cn30xx;
 328	struct cvmx_pci_cfg09_s cn31xx;
 329	struct cvmx_pci_cfg09_s cn38xx;
 330	struct cvmx_pci_cfg09_s cn38xxp2;
 331	struct cvmx_pci_cfg09_s cn50xx;
 332	struct cvmx_pci_cfg09_s cn58xx;
 333	struct cvmx_pci_cfg09_s cn58xxp1;
 334};
 335
 336union cvmx_pci_cfg10 {
 337	uint32_t u32;
 338	struct cvmx_pci_cfg10_s {
 339		uint32_t cisp:32;
 340	} s;
 341	struct cvmx_pci_cfg10_s cn30xx;
 342	struct cvmx_pci_cfg10_s cn31xx;
 343	struct cvmx_pci_cfg10_s cn38xx;
 344	struct cvmx_pci_cfg10_s cn38xxp2;
 345	struct cvmx_pci_cfg10_s cn50xx;
 346	struct cvmx_pci_cfg10_s cn58xx;
 347	struct cvmx_pci_cfg10_s cn58xxp1;
 348};
 349
 350union cvmx_pci_cfg11 {
 351	uint32_t u32;
 352	struct cvmx_pci_cfg11_s {
 353		uint32_t ssid:16;
 354		uint32_t ssvid:16;
 355	} s;
 356	struct cvmx_pci_cfg11_s cn30xx;
 357	struct cvmx_pci_cfg11_s cn31xx;
 358	struct cvmx_pci_cfg11_s cn38xx;
 359	struct cvmx_pci_cfg11_s cn38xxp2;
 360	struct cvmx_pci_cfg11_s cn50xx;
 361	struct cvmx_pci_cfg11_s cn58xx;
 362	struct cvmx_pci_cfg11_s cn58xxp1;
 363};
 364
 365union cvmx_pci_cfg12 {
 366	uint32_t u32;
 367	struct cvmx_pci_cfg12_s {
 368		uint32_t erbar:16;
 369		uint32_t erbarz:5;
 370		uint32_t reserved_1_10:10;
 371		uint32_t erbar_en:1;
 372	} s;
 373	struct cvmx_pci_cfg12_s cn30xx;
 374	struct cvmx_pci_cfg12_s cn31xx;
 375	struct cvmx_pci_cfg12_s cn38xx;
 376	struct cvmx_pci_cfg12_s cn38xxp2;
 377	struct cvmx_pci_cfg12_s cn50xx;
 378	struct cvmx_pci_cfg12_s cn58xx;
 379	struct cvmx_pci_cfg12_s cn58xxp1;
 380};
 381
 382union cvmx_pci_cfg13 {
 383	uint32_t u32;
 384	struct cvmx_pci_cfg13_s {
 385		uint32_t reserved_8_31:24;
 386		uint32_t cp:8;
 387	} s;
 388	struct cvmx_pci_cfg13_s cn30xx;
 389	struct cvmx_pci_cfg13_s cn31xx;
 390	struct cvmx_pci_cfg13_s cn38xx;
 391	struct cvmx_pci_cfg13_s cn38xxp2;
 392	struct cvmx_pci_cfg13_s cn50xx;
 393	struct cvmx_pci_cfg13_s cn58xx;
 394	struct cvmx_pci_cfg13_s cn58xxp1;
 395};
 396
 397union cvmx_pci_cfg15 {
 398	uint32_t u32;
 399	struct cvmx_pci_cfg15_s {
 400		uint32_t ml:8;
 401		uint32_t mg:8;
 402		uint32_t inta:8;
 403		uint32_t il:8;
 404	} s;
 405	struct cvmx_pci_cfg15_s cn30xx;
 406	struct cvmx_pci_cfg15_s cn31xx;
 407	struct cvmx_pci_cfg15_s cn38xx;
 408	struct cvmx_pci_cfg15_s cn38xxp2;
 409	struct cvmx_pci_cfg15_s cn50xx;
 410	struct cvmx_pci_cfg15_s cn58xx;
 411	struct cvmx_pci_cfg15_s cn58xxp1;
 412};
 413
 414union cvmx_pci_cfg16 {
 415	uint32_t u32;
 416	struct cvmx_pci_cfg16_s {
 417		uint32_t trdnpr:1;
 418		uint32_t trdard:1;
 419		uint32_t rdsati:1;
 420		uint32_t trdrs:1;
 421		uint32_t trtae:1;
 422		uint32_t twsei:1;
 423		uint32_t twsen:1;
 424		uint32_t twtae:1;
 425		uint32_t tmae:1;
 426		uint32_t tslte:3;
 427		uint32_t tilt:4;
 428		uint32_t pbe:12;
 429		uint32_t dppmr:1;
 430		uint32_t reserved_2_2:1;
 431		uint32_t tswc:1;
 432		uint32_t mltd:1;
 433	} s;
 434	struct cvmx_pci_cfg16_s cn30xx;
 435	struct cvmx_pci_cfg16_s cn31xx;
 436	struct cvmx_pci_cfg16_s cn38xx;
 437	struct cvmx_pci_cfg16_s cn38xxp2;
 438	struct cvmx_pci_cfg16_s cn50xx;
 439	struct cvmx_pci_cfg16_s cn58xx;
 440	struct cvmx_pci_cfg16_s cn58xxp1;
 441};
 442
 443union cvmx_pci_cfg17 {
 444	uint32_t u32;
 445	struct cvmx_pci_cfg17_s {
 446		uint32_t tscme:32;
 447	} s;
 448	struct cvmx_pci_cfg17_s cn30xx;
 449	struct cvmx_pci_cfg17_s cn31xx;
 450	struct cvmx_pci_cfg17_s cn38xx;
 451	struct cvmx_pci_cfg17_s cn38xxp2;
 452	struct cvmx_pci_cfg17_s cn50xx;
 453	struct cvmx_pci_cfg17_s cn58xx;
 454	struct cvmx_pci_cfg17_s cn58xxp1;
 455};
 456
 457union cvmx_pci_cfg18 {
 458	uint32_t u32;
 459	struct cvmx_pci_cfg18_s {
 460		uint32_t tdsrps:32;
 461	} s;
 462	struct cvmx_pci_cfg18_s cn30xx;
 463	struct cvmx_pci_cfg18_s cn31xx;
 464	struct cvmx_pci_cfg18_s cn38xx;
 465	struct cvmx_pci_cfg18_s cn38xxp2;
 466	struct cvmx_pci_cfg18_s cn50xx;
 467	struct cvmx_pci_cfg18_s cn58xx;
 468	struct cvmx_pci_cfg18_s cn58xxp1;
 469};
 470
 471union cvmx_pci_cfg19 {
 472	uint32_t u32;
 473	struct cvmx_pci_cfg19_s {
 474		uint32_t mrbcm:1;
 475		uint32_t mrbci:1;
 476		uint32_t mdwe:1;
 477		uint32_t mdre:1;
 478		uint32_t mdrimc:1;
 479		uint32_t mdrrmc:3;
 480		uint32_t tmes:8;
 481		uint32_t teci:1;
 482		uint32_t tmei:1;
 483		uint32_t tmse:1;
 484		uint32_t tmdpes:1;
 485		uint32_t tmapes:1;
 486		uint32_t reserved_9_10:2;
 487		uint32_t tibcd:1;
 488		uint32_t tibde:1;
 489		uint32_t reserved_6_6:1;
 490		uint32_t tidomc:1;
 491		uint32_t tdomc:5;
 492	} s;
 493	struct cvmx_pci_cfg19_s cn30xx;
 494	struct cvmx_pci_cfg19_s cn31xx;
 495	struct cvmx_pci_cfg19_s cn38xx;
 496	struct cvmx_pci_cfg19_s cn38xxp2;
 497	struct cvmx_pci_cfg19_s cn50xx;
 498	struct cvmx_pci_cfg19_s cn58xx;
 499	struct cvmx_pci_cfg19_s cn58xxp1;
 500};
 501
 502union cvmx_pci_cfg20 {
 503	uint32_t u32;
 504	struct cvmx_pci_cfg20_s {
 505		uint32_t mdsp:32;
 506	} s;
 507	struct cvmx_pci_cfg20_s cn30xx;
 508	struct cvmx_pci_cfg20_s cn31xx;
 509	struct cvmx_pci_cfg20_s cn38xx;
 510	struct cvmx_pci_cfg20_s cn38xxp2;
 511	struct cvmx_pci_cfg20_s cn50xx;
 512	struct cvmx_pci_cfg20_s cn58xx;
 513	struct cvmx_pci_cfg20_s cn58xxp1;
 514};
 515
 516union cvmx_pci_cfg21 {
 517	uint32_t u32;
 518	struct cvmx_pci_cfg21_s {
 519		uint32_t scmre:32;
 520	} s;
 521	struct cvmx_pci_cfg21_s cn30xx;
 522	struct cvmx_pci_cfg21_s cn31xx;
 523	struct cvmx_pci_cfg21_s cn38xx;
 524	struct cvmx_pci_cfg21_s cn38xxp2;
 525	struct cvmx_pci_cfg21_s cn50xx;
 526	struct cvmx_pci_cfg21_s cn58xx;
 527	struct cvmx_pci_cfg21_s cn58xxp1;
 528};
 529
 530union cvmx_pci_cfg22 {
 531	uint32_t u32;
 532	struct cvmx_pci_cfg22_s {
 533		uint32_t mac:7;
 534		uint32_t reserved_19_24:6;
 535		uint32_t flush:1;
 536		uint32_t mra:1;
 537		uint32_t mtta:1;
 538		uint32_t mrv:8;
 539		uint32_t mttv:8;
 540	} s;
 541	struct cvmx_pci_cfg22_s cn30xx;
 542	struct cvmx_pci_cfg22_s cn31xx;
 543	struct cvmx_pci_cfg22_s cn38xx;
 544	struct cvmx_pci_cfg22_s cn38xxp2;
 545	struct cvmx_pci_cfg22_s cn50xx;
 546	struct cvmx_pci_cfg22_s cn58xx;
 547	struct cvmx_pci_cfg22_s cn58xxp1;
 548};
 549
 550union cvmx_pci_cfg56 {
 551	uint32_t u32;
 552	struct cvmx_pci_cfg56_s {
 553		uint32_t reserved_23_31:9;
 554		uint32_t most:3;
 555		uint32_t mmbc:2;
 556		uint32_t roe:1;
 557		uint32_t dpere:1;
 558		uint32_t ncp:8;
 559		uint32_t pxcid:8;
 560	} s;
 561	struct cvmx_pci_cfg56_s cn30xx;
 562	struct cvmx_pci_cfg56_s cn31xx;
 563	struct cvmx_pci_cfg56_s cn38xx;
 564	struct cvmx_pci_cfg56_s cn38xxp2;
 565	struct cvmx_pci_cfg56_s cn50xx;
 566	struct cvmx_pci_cfg56_s cn58xx;
 567	struct cvmx_pci_cfg56_s cn58xxp1;
 568};
 569
 570union cvmx_pci_cfg57 {
 571	uint32_t u32;
 572	struct cvmx_pci_cfg57_s {
 573		uint32_t reserved_30_31:2;
 574		uint32_t scemr:1;
 575		uint32_t mcrsd:3;
 576		uint32_t mostd:3;
 577		uint32_t mmrbcd:2;
 578		uint32_t dc:1;
 579		uint32_t usc:1;
 580		uint32_t scd:1;
 581		uint32_t m133:1;
 582		uint32_t w64:1;
 583		uint32_t bn:8;
 584		uint32_t dn:5;
 585		uint32_t fn:3;
 586	} s;
 587	struct cvmx_pci_cfg57_s cn30xx;
 588	struct cvmx_pci_cfg57_s cn31xx;
 589	struct cvmx_pci_cfg57_s cn38xx;
 590	struct cvmx_pci_cfg57_s cn38xxp2;
 591	struct cvmx_pci_cfg57_s cn50xx;
 592	struct cvmx_pci_cfg57_s cn58xx;
 593	struct cvmx_pci_cfg57_s cn58xxp1;
 594};
 595
 596union cvmx_pci_cfg58 {
 597	uint32_t u32;
 598	struct cvmx_pci_cfg58_s {
 599		uint32_t pmes:5;
 600		uint32_t d2s:1;
 601		uint32_t d1s:1;
 602		uint32_t auxc:3;
 603		uint32_t dsi:1;
 604		uint32_t reserved_20_20:1;
 605		uint32_t pmec:1;
 606		uint32_t pcimiv:3;
 607		uint32_t ncp:8;
 608		uint32_t pmcid:8;
 609	} s;
 610	struct cvmx_pci_cfg58_s cn30xx;
 611	struct cvmx_pci_cfg58_s cn31xx;
 612	struct cvmx_pci_cfg58_s cn38xx;
 613	struct cvmx_pci_cfg58_s cn38xxp2;
 614	struct cvmx_pci_cfg58_s cn50xx;
 615	struct cvmx_pci_cfg58_s cn58xx;
 616	struct cvmx_pci_cfg58_s cn58xxp1;
 617};
 618
 619union cvmx_pci_cfg59 {
 620	uint32_t u32;
 621	struct cvmx_pci_cfg59_s {
 622		uint32_t pmdia:8;
 623		uint32_t bpccen:1;
 624		uint32_t bd3h:1;
 625		uint32_t reserved_16_21:6;
 626		uint32_t pmess:1;
 627		uint32_t pmedsia:2;
 628		uint32_t pmds:4;
 629		uint32_t pmeens:1;
 630		uint32_t reserved_2_7:6;
 631		uint32_t ps:2;
 632	} s;
 633	struct cvmx_pci_cfg59_s cn30xx;
 634	struct cvmx_pci_cfg59_s cn31xx;
 635	struct cvmx_pci_cfg59_s cn38xx;
 636	struct cvmx_pci_cfg59_s cn38xxp2;
 637	struct cvmx_pci_cfg59_s cn50xx;
 638	struct cvmx_pci_cfg59_s cn58xx;
 639	struct cvmx_pci_cfg59_s cn58xxp1;
 640};
 641
 642union cvmx_pci_cfg60 {
 643	uint32_t u32;
 644	struct cvmx_pci_cfg60_s {
 645		uint32_t reserved_24_31:8;
 646		uint32_t m64:1;
 647		uint32_t mme:3;
 648		uint32_t mmc:3;
 649		uint32_t msien:1;
 650		uint32_t ncp:8;
 651		uint32_t msicid:8;
 652	} s;
 653	struct cvmx_pci_cfg60_s cn30xx;
 654	struct cvmx_pci_cfg60_s cn31xx;
 655	struct cvmx_pci_cfg60_s cn38xx;
 656	struct cvmx_pci_cfg60_s cn38xxp2;
 657	struct cvmx_pci_cfg60_s cn50xx;
 658	struct cvmx_pci_cfg60_s cn58xx;
 659	struct cvmx_pci_cfg60_s cn58xxp1;
 660};
 661
 662union cvmx_pci_cfg61 {
 663	uint32_t u32;
 664	struct cvmx_pci_cfg61_s {
 665		uint32_t msi31t2:30;
 666		uint32_t reserved_0_1:2;
 667	} s;
 668	struct cvmx_pci_cfg61_s cn30xx;
 669	struct cvmx_pci_cfg61_s cn31xx;
 670	struct cvmx_pci_cfg61_s cn38xx;
 671	struct cvmx_pci_cfg61_s cn38xxp2;
 672	struct cvmx_pci_cfg61_s cn50xx;
 673	struct cvmx_pci_cfg61_s cn58xx;
 674	struct cvmx_pci_cfg61_s cn58xxp1;
 675};
 676
 677union cvmx_pci_cfg62 {
 678	uint32_t u32;
 679	struct cvmx_pci_cfg62_s {
 680		uint32_t msi:32;
 681	} s;
 682	struct cvmx_pci_cfg62_s cn30xx;
 683	struct cvmx_pci_cfg62_s cn31xx;
 684	struct cvmx_pci_cfg62_s cn38xx;
 685	struct cvmx_pci_cfg62_s cn38xxp2;
 686	struct cvmx_pci_cfg62_s cn50xx;
 687	struct cvmx_pci_cfg62_s cn58xx;
 688	struct cvmx_pci_cfg62_s cn58xxp1;
 689};
 690
 691union cvmx_pci_cfg63 {
 692	uint32_t u32;
 693	struct cvmx_pci_cfg63_s {
 694		uint32_t reserved_16_31:16;
 695		uint32_t msimd:16;
 696	} s;
 697	struct cvmx_pci_cfg63_s cn30xx;
 698	struct cvmx_pci_cfg63_s cn31xx;
 699	struct cvmx_pci_cfg63_s cn38xx;
 700	struct cvmx_pci_cfg63_s cn38xxp2;
 701	struct cvmx_pci_cfg63_s cn50xx;
 702	struct cvmx_pci_cfg63_s cn58xx;
 703	struct cvmx_pci_cfg63_s cn58xxp1;
 704};
 705
 706union cvmx_pci_cnt_reg {
 707	uint64_t u64;
 708	struct cvmx_pci_cnt_reg_s {
 709		uint64_t reserved_38_63:26;
 710		uint64_t hm_pcix:1;
 711		uint64_t hm_speed:2;
 712		uint64_t ap_pcix:1;
 713		uint64_t ap_speed:2;
 714		uint64_t pcicnt:32;
 715	} s;
 716	struct cvmx_pci_cnt_reg_s cn50xx;
 717	struct cvmx_pci_cnt_reg_s cn58xx;
 718	struct cvmx_pci_cnt_reg_s cn58xxp1;
 719};
 720
 721union cvmx_pci_ctl_status_2 {
 722	uint32_t u32;
 723	struct cvmx_pci_ctl_status_2_s {
 724		uint32_t reserved_29_31:3;
 725		uint32_t bb1_hole:3;
 726		uint32_t bb1_siz:1;
 727		uint32_t bb_ca:1;
 728		uint32_t bb_es:2;
 729		uint32_t bb1:1;
 730		uint32_t bb0:1;
 731		uint32_t erst_n:1;
 732		uint32_t bar2pres:1;
 733		uint32_t scmtyp:1;
 734		uint32_t scm:1;
 735		uint32_t en_wfilt:1;
 736		uint32_t reserved_14_14:1;
 737		uint32_t ap_pcix:1;
 738		uint32_t ap_64ad:1;
 739		uint32_t b12_bist:1;
 740		uint32_t pmo_amod:1;
 741		uint32_t pmo_fpc:3;
 742		uint32_t tsr_hwm:3;
 743		uint32_t bar2_enb:1;
 744		uint32_t bar2_esx:2;
 745		uint32_t bar2_cax:1;
 746	} s;
 747	struct cvmx_pci_ctl_status_2_s cn30xx;
 748	struct cvmx_pci_ctl_status_2_cn31xx {
 749		uint32_t reserved_20_31:12;
 750		uint32_t erst_n:1;
 751		uint32_t bar2pres:1;
 752		uint32_t scmtyp:1;
 753		uint32_t scm:1;
 754		uint32_t en_wfilt:1;
 755		uint32_t reserved_14_14:1;
 756		uint32_t ap_pcix:1;
 757		uint32_t ap_64ad:1;
 758		uint32_t b12_bist:1;
 759		uint32_t pmo_amod:1;
 760		uint32_t pmo_fpc:3;
 761		uint32_t tsr_hwm:3;
 762		uint32_t bar2_enb:1;
 763		uint32_t bar2_esx:2;
 764		uint32_t bar2_cax:1;
 765	} cn31xx;
 766	struct cvmx_pci_ctl_status_2_s cn38xx;
 767	struct cvmx_pci_ctl_status_2_cn31xx cn38xxp2;
 768	struct cvmx_pci_ctl_status_2_s cn50xx;
 769	struct cvmx_pci_ctl_status_2_s cn58xx;
 770	struct cvmx_pci_ctl_status_2_s cn58xxp1;
 771};
 772
 773union cvmx_pci_dbellx {
 774	uint32_t u32;
 775	struct cvmx_pci_dbellx_s {
 776		uint32_t reserved_16_31:16;
 777		uint32_t inc_val:16;
 778	} s;
 779	struct cvmx_pci_dbellx_s cn30xx;
 780	struct cvmx_pci_dbellx_s cn31xx;
 781	struct cvmx_pci_dbellx_s cn38xx;
 782	struct cvmx_pci_dbellx_s cn38xxp2;
 783	struct cvmx_pci_dbellx_s cn50xx;
 784	struct cvmx_pci_dbellx_s cn58xx;
 785	struct cvmx_pci_dbellx_s cn58xxp1;
 786};
 787
 788union cvmx_pci_dma_cntx {
 789	uint32_t u32;
 790	struct cvmx_pci_dma_cntx_s {
 791		uint32_t dma_cnt:32;
 792	} s;
 793	struct cvmx_pci_dma_cntx_s cn30xx;
 794	struct cvmx_pci_dma_cntx_s cn31xx;
 795	struct cvmx_pci_dma_cntx_s cn38xx;
 796	struct cvmx_pci_dma_cntx_s cn38xxp2;
 797	struct cvmx_pci_dma_cntx_s cn50xx;
 798	struct cvmx_pci_dma_cntx_s cn58xx;
 799	struct cvmx_pci_dma_cntx_s cn58xxp1;
 800};
 801
 802union cvmx_pci_dma_int_levx {
 803	uint32_t u32;
 804	struct cvmx_pci_dma_int_levx_s {
 805		uint32_t pkt_cnt:32;
 806	} s;
 807	struct cvmx_pci_dma_int_levx_s cn30xx;
 808	struct cvmx_pci_dma_int_levx_s cn31xx;
 809	struct cvmx_pci_dma_int_levx_s cn38xx;
 810	struct cvmx_pci_dma_int_levx_s cn38xxp2;
 811	struct cvmx_pci_dma_int_levx_s cn50xx;
 812	struct cvmx_pci_dma_int_levx_s cn58xx;
 813	struct cvmx_pci_dma_int_levx_s cn58xxp1;
 814};
 815
 816union cvmx_pci_dma_timex {
 817	uint32_t u32;
 818	struct cvmx_pci_dma_timex_s {
 819		uint32_t dma_time:32;
 820	} s;
 821	struct cvmx_pci_dma_timex_s cn30xx;
 822	struct cvmx_pci_dma_timex_s cn31xx;
 823	struct cvmx_pci_dma_timex_s cn38xx;
 824	struct cvmx_pci_dma_timex_s cn38xxp2;
 825	struct cvmx_pci_dma_timex_s cn50xx;
 826	struct cvmx_pci_dma_timex_s cn58xx;
 827	struct cvmx_pci_dma_timex_s cn58xxp1;
 828};
 829
 830union cvmx_pci_instr_countx {
 831	uint32_t u32;
 832	struct cvmx_pci_instr_countx_s {
 833		uint32_t icnt:32;
 834	} s;
 835	struct cvmx_pci_instr_countx_s cn30xx;
 836	struct cvmx_pci_instr_countx_s cn31xx;
 837	struct cvmx_pci_instr_countx_s cn38xx;
 838	struct cvmx_pci_instr_countx_s cn38xxp2;
 839	struct cvmx_pci_instr_countx_s cn50xx;
 840	struct cvmx_pci_instr_countx_s cn58xx;
 841	struct cvmx_pci_instr_countx_s cn58xxp1;
 842};
 843
 844union cvmx_pci_int_enb {
 845	uint64_t u64;
 846	struct cvmx_pci_int_enb_s {
 847		uint64_t reserved_34_63:30;
 848		uint64_t ill_rd:1;
 849		uint64_t ill_wr:1;
 850		uint64_t win_wr:1;
 851		uint64_t dma1_fi:1;
 852		uint64_t dma0_fi:1;
 853		uint64_t idtime1:1;
 854		uint64_t idtime0:1;
 855		uint64_t idcnt1:1;
 856		uint64_t idcnt0:1;
 857		uint64_t iptime3:1;
 858		uint64_t iptime2:1;
 859		uint64_t iptime1:1;
 860		uint64_t iptime0:1;
 861		uint64_t ipcnt3:1;
 862		uint64_t ipcnt2:1;
 863		uint64_t ipcnt1:1;
 864		uint64_t ipcnt0:1;
 865		uint64_t irsl_int:1;
 866		uint64_t ill_rrd:1;
 867		uint64_t ill_rwr:1;
 868		uint64_t idperr:1;
 869		uint64_t iaperr:1;
 870		uint64_t iserr:1;
 871		uint64_t itsr_abt:1;
 872		uint64_t imsc_msg:1;
 873		uint64_t imsi_mabt:1;
 874		uint64_t imsi_tabt:1;
 875		uint64_t imsi_per:1;
 876		uint64_t imr_tto:1;
 877		uint64_t imr_abt:1;
 878		uint64_t itr_abt:1;
 879		uint64_t imr_wtto:1;
 880		uint64_t imr_wabt:1;
 881		uint64_t itr_wabt:1;
 882	} s;
 883	struct cvmx_pci_int_enb_cn30xx {
 884		uint64_t reserved_34_63:30;
 885		uint64_t ill_rd:1;
 886		uint64_t ill_wr:1;
 887		uint64_t win_wr:1;
 888		uint64_t dma1_fi:1;
 889		uint64_t dma0_fi:1;
 890		uint64_t idtime1:1;
 891		uint64_t idtime0:1;
 892		uint64_t idcnt1:1;
 893		uint64_t idcnt0:1;
 894		uint64_t reserved_22_24:3;
 895		uint64_t iptime0:1;
 896		uint64_t reserved_18_20:3;
 897		uint64_t ipcnt0:1;
 898		uint64_t irsl_int:1;
 899		uint64_t ill_rrd:1;
 900		uint64_t ill_rwr:1;
 901		uint64_t idperr:1;
 902		uint64_t iaperr:1;
 903		uint64_t iserr:1;
 904		uint64_t itsr_abt:1;
 905		uint64_t imsc_msg:1;
 906		uint64_t imsi_mabt:1;
 907		uint64_t imsi_tabt:1;
 908		uint64_t imsi_per:1;
 909		uint64_t imr_tto:1;
 910		uint64_t imr_abt:1;
 911		uint64_t itr_abt:1;
 912		uint64_t imr_wtto:1;
 913		uint64_t imr_wabt:1;
 914		uint64_t itr_wabt:1;
 915	} cn30xx;
 916	struct cvmx_pci_int_enb_cn31xx {
 917		uint64_t reserved_34_63:30;
 918		uint64_t ill_rd:1;
 919		uint64_t ill_wr:1;
 920		uint64_t win_wr:1;
 921		uint64_t dma1_fi:1;
 922		uint64_t dma0_fi:1;
 923		uint64_t idtime1:1;
 924		uint64_t idtime0:1;
 925		uint64_t idcnt1:1;
 926		uint64_t idcnt0:1;
 927		uint64_t reserved_23_24:2;
 928		uint64_t iptime1:1;
 929		uint64_t iptime0:1;
 930		uint64_t reserved_19_20:2;
 931		uint64_t ipcnt1:1;
 932		uint64_t ipcnt0:1;
 933		uint64_t irsl_int:1;
 934		uint64_t ill_rrd:1;
 935		uint64_t ill_rwr:1;
 936		uint64_t idperr:1;
 937		uint64_t iaperr:1;
 938		uint64_t iserr:1;
 939		uint64_t itsr_abt:1;
 940		uint64_t imsc_msg:1;
 941		uint64_t imsi_mabt:1;
 942		uint64_t imsi_tabt:1;
 943		uint64_t imsi_per:1;
 944		uint64_t imr_tto:1;
 945		uint64_t imr_abt:1;
 946		uint64_t itr_abt:1;
 947		uint64_t imr_wtto:1;
 948		uint64_t imr_wabt:1;
 949		uint64_t itr_wabt:1;
 950	} cn31xx;
 951	struct cvmx_pci_int_enb_s cn38xx;
 952	struct cvmx_pci_int_enb_s cn38xxp2;
 953	struct cvmx_pci_int_enb_cn31xx cn50xx;
 954	struct cvmx_pci_int_enb_s cn58xx;
 955	struct cvmx_pci_int_enb_s cn58xxp1;
 956};
 957
 958union cvmx_pci_int_enb2 {
 959	uint64_t u64;
 960	struct cvmx_pci_int_enb2_s {
 961		uint64_t reserved_34_63:30;
 962		uint64_t ill_rd:1;
 963		uint64_t ill_wr:1;
 964		uint64_t win_wr:1;
 965		uint64_t dma1_fi:1;
 966		uint64_t dma0_fi:1;
 967		uint64_t rdtime1:1;
 968		uint64_t rdtime0:1;
 969		uint64_t rdcnt1:1;
 970		uint64_t rdcnt0:1;
 971		uint64_t rptime3:1;
 972		uint64_t rptime2:1;
 973		uint64_t rptime1:1;
 974		uint64_t rptime0:1;
 975		uint64_t rpcnt3:1;
 976		uint64_t rpcnt2:1;
 977		uint64_t rpcnt1:1;
 978		uint64_t rpcnt0:1;
 979		uint64_t rrsl_int:1;
 980		uint64_t ill_rrd:1;
 981		uint64_t ill_rwr:1;
 982		uint64_t rdperr:1;
 983		uint64_t raperr:1;
 984		uint64_t rserr:1;
 985		uint64_t rtsr_abt:1;
 986		uint64_t rmsc_msg:1;
 987		uint64_t rmsi_mabt:1;
 988		uint64_t rmsi_tabt:1;
 989		uint64_t rmsi_per:1;
 990		uint64_t rmr_tto:1;
 991		uint64_t rmr_abt:1;
 992		uint64_t rtr_abt:1;
 993		uint64_t rmr_wtto:1;
 994		uint64_t rmr_wabt:1;
 995		uint64_t rtr_wabt:1;
 996	} s;
 997	struct cvmx_pci_int_enb2_cn30xx {
 998		uint64_t reserved_34_63:30;
 999		uint64_t ill_rd:1;
1000		uint64_t ill_wr:1;
1001		uint64_t win_wr:1;
1002		uint64_t dma1_fi:1;
1003		uint64_t dma0_fi:1;
1004		uint64_t rdtime1:1;
1005		uint64_t rdtime0:1;
1006		uint64_t rdcnt1:1;
1007		uint64_t rdcnt0:1;
1008		uint64_t reserved_22_24:3;
1009		uint64_t rptime0:1;
1010		uint64_t reserved_18_20:3;
1011		uint64_t rpcnt0:1;
1012		uint64_t rrsl_int:1;
1013		uint64_t ill_rrd:1;
1014		uint64_t ill_rwr:1;
1015		uint64_t rdperr:1;
1016		uint64_t raperr:1;
1017		uint64_t rserr:1;
1018		uint64_t rtsr_abt:1;
1019		uint64_t rmsc_msg:1;
1020		uint64_t rmsi_mabt:1;
1021		uint64_t rmsi_tabt:1;
1022		uint64_t rmsi_per:1;
1023		uint64_t rmr_tto:1;
1024		uint64_t rmr_abt:1;
1025		uint64_t rtr_abt:1;
1026		uint64_t rmr_wtto:1;
1027		uint64_t rmr_wabt:1;
1028		uint64_t rtr_wabt:1;
1029	} cn30xx;
1030	struct cvmx_pci_int_enb2_cn31xx {
1031		uint64_t reserved_34_63:30;
1032		uint64_t ill_rd:1;
1033		uint64_t ill_wr:1;
1034		uint64_t win_wr:1;
1035		uint64_t dma1_fi:1;
1036		uint64_t dma0_fi:1;
1037		uint64_t rdtime1:1;
1038		uint64_t rdtime0:1;
1039		uint64_t rdcnt1:1;
1040		uint64_t rdcnt0:1;
1041		uint64_t reserved_23_24:2;
1042		uint64_t rptime1:1;
1043		uint64_t rptime0:1;
1044		uint64_t reserved_19_20:2;
1045		uint64_t rpcnt1:1;
1046		uint64_t rpcnt0:1;
1047		uint64_t rrsl_int:1;
1048		uint64_t ill_rrd:1;
1049		uint64_t ill_rwr:1;
1050		uint64_t rdperr:1;
1051		uint64_t raperr:1;
1052		uint64_t rserr:1;
1053		uint64_t rtsr_abt:1;
1054		uint64_t rmsc_msg:1;
1055		uint64_t rmsi_mabt:1;
1056		uint64_t rmsi_tabt:1;
1057		uint64_t rmsi_per:1;
1058		uint64_t rmr_tto:1;
1059		uint64_t rmr_abt:1;
1060		uint64_t rtr_abt:1;
1061		uint64_t rmr_wtto:1;
1062		uint64_t rmr_wabt:1;
1063		uint64_t rtr_wabt:1;
1064	} cn31xx;
1065	struct cvmx_pci_int_enb2_s cn38xx;
1066	struct cvmx_pci_int_enb2_s cn38xxp2;
1067	struct cvmx_pci_int_enb2_cn31xx cn50xx;
1068	struct cvmx_pci_int_enb2_s cn58xx;
1069	struct cvmx_pci_int_enb2_s cn58xxp1;
1070};
1071
1072union cvmx_pci_int_sum {
1073	uint64_t u64;
1074	struct cvmx_pci_int_sum_s {
1075		uint64_t reserved_34_63:30;
1076		uint64_t ill_rd:1;
1077		uint64_t ill_wr:1;
1078		uint64_t win_wr:1;
1079		uint64_t dma1_fi:1;
1080		uint64_t dma0_fi:1;
1081		uint64_t dtime1:1;
1082		uint64_t dtime0:1;
1083		uint64_t dcnt1:1;
1084		uint64_t dcnt0:1;
1085		uint64_t ptime3:1;
1086		uint64_t ptime2:1;
1087		uint64_t ptime1:1;
1088		uint64_t ptime0:1;
1089		uint64_t pcnt3:1;
1090		uint64_t pcnt2:1;
1091		uint64_t pcnt1:1;
1092		uint64_t pcnt0:1;
1093		uint64_t rsl_int:1;
1094		uint64_t ill_rrd:1;
1095		uint64_t ill_rwr:1;
1096		uint64_t dperr:1;
1097		uint64_t aperr:1;
1098		uint64_t serr:1;
1099		uint64_t tsr_abt:1;
1100		uint64_t msc_msg:1;
1101		uint64_t msi_mabt:1;
1102		uint64_t msi_tabt:1;
1103		uint64_t msi_per:1;
1104		uint64_t mr_tto:1;
1105		uint64_t mr_abt:1;
1106		uint64_t tr_abt:1;
1107		uint64_t mr_wtto:1;
1108		uint64_t mr_wabt:1;
1109		uint64_t tr_wabt:1;
1110	} s;
1111	struct cvmx_pci_int_sum_cn30xx {
1112		uint64_t reserved_34_63:30;
1113		uint64_t ill_rd:1;
1114		uint64_t ill_wr:1;
1115		uint64_t win_wr:1;
1116		uint64_t dma1_fi:1;
1117		uint64_t dma0_fi:1;
1118		uint64_t dtime1:1;
1119		uint64_t dtime0:1;
1120		uint64_t dcnt1:1;
1121		uint64_t dcnt0:1;
1122		uint64_t reserved_22_24:3;
1123		uint64_t ptime0:1;
1124		uint64_t reserved_18_20:3;
1125		uint64_t pcnt0:1;
1126		uint64_t rsl_int:1;
1127		uint64_t ill_rrd:1;
1128		uint64_t ill_rwr:1;
1129		uint64_t dperr:1;
1130		uint64_t aperr:1;
1131		uint64_t serr:1;
1132		uint64_t tsr_abt:1;
1133		uint64_t msc_msg:1;
1134		uint64_t msi_mabt:1;
1135		uint64_t msi_tabt:1;
1136		uint64_t msi_per:1;
1137		uint64_t mr_tto:1;
1138		uint64_t mr_abt:1;
1139		uint64_t tr_abt:1;
1140		uint64_t mr_wtto:1;
1141		uint64_t mr_wabt:1;
1142		uint64_t tr_wabt:1;
1143	} cn30xx;
1144	struct cvmx_pci_int_sum_cn31xx {
1145		uint64_t reserved_34_63:30;
1146		uint64_t ill_rd:1;
1147		uint64_t ill_wr:1;
1148		uint64_t win_wr:1;
1149		uint64_t dma1_fi:1;
1150		uint64_t dma0_fi:1;
1151		uint64_t dtime1:1;
1152		uint64_t dtime0:1;
1153		uint64_t dcnt1:1;
1154		uint64_t dcnt0:1;
1155		uint64_t reserved_23_24:2;
1156		uint64_t ptime1:1;
1157		uint64_t ptime0:1;
1158		uint64_t reserved_19_20:2;
1159		uint64_t pcnt1:1;
1160		uint64_t pcnt0:1;
1161		uint64_t rsl_int:1;
1162		uint64_t ill_rrd:1;
1163		uint64_t ill_rwr:1;
1164		uint64_t dperr:1;
1165		uint64_t aperr:1;
1166		uint64_t serr:1;
1167		uint64_t tsr_abt:1;
1168		uint64_t msc_msg:1;
1169		uint64_t msi_mabt:1;
1170		uint64_t msi_tabt:1;
1171		uint64_t msi_per:1;
1172		uint64_t mr_tto:1;
1173		uint64_t mr_abt:1;
1174		uint64_t tr_abt:1;
1175		uint64_t mr_wtto:1;
1176		uint64_t mr_wabt:1;
1177		uint64_t tr_wabt:1;
1178	} cn31xx;
1179	struct cvmx_pci_int_sum_s cn38xx;
1180	struct cvmx_pci_int_sum_s cn38xxp2;
1181	struct cvmx_pci_int_sum_cn31xx cn50xx;
1182	struct cvmx_pci_int_sum_s cn58xx;
1183	struct cvmx_pci_int_sum_s cn58xxp1;
1184};
1185
1186union cvmx_pci_int_sum2 {
1187	uint64_t u64;
1188	struct cvmx_pci_int_sum2_s {
1189		uint64_t reserved_34_63:30;
1190		uint64_t ill_rd:1;
1191		uint64_t ill_wr:1;
1192		uint64_t win_wr:1;
1193		uint64_t dma1_fi:1;
1194		uint64_t dma0_fi:1;
1195		uint64_t dtime1:1;
1196		uint64_t dtime0:1;
1197		uint64_t dcnt1:1;
1198		uint64_t dcnt0:1;
1199		uint64_t ptime3:1;
1200		uint64_t ptime2:1;
1201		uint64_t ptime1:1;
1202		uint64_t ptime0:1;
1203		uint64_t pcnt3:1;
1204		uint64_t pcnt2:1;
1205		uint64_t pcnt1:1;
1206		uint64_t pcnt0:1;
1207		uint64_t rsl_int:1;
1208		uint64_t ill_rrd:1;
1209		uint64_t ill_rwr:1;
1210		uint64_t dperr:1;
1211		uint64_t aperr:1;
1212		uint64_t serr:1;
1213		uint64_t tsr_abt:1;
1214		uint64_t msc_msg:1;
1215		uint64_t msi_mabt:1;
1216		uint64_t msi_tabt:1;
1217		uint64_t msi_per:1;
1218		uint64_t mr_tto:1;
1219		uint64_t mr_abt:1;
1220		uint64_t tr_abt:1;
1221		uint64_t mr_wtto:1;
1222		uint64_t mr_wabt:1;
1223		uint64_t tr_wabt:1;
1224	} s;
1225	struct cvmx_pci_int_sum2_cn30xx {
1226		uint64_t reserved_34_63:30;
1227		uint64_t ill_rd:1;
1228		uint64_t ill_wr:1;
1229		uint64_t win_wr:1;
1230		uint64_t dma1_fi:1;
1231		uint64_t dma0_fi:1;
1232		uint64_t dtime1:1;
1233		uint64_t dtime0:1;
1234		uint64_t dcnt1:1;
1235		uint64_t dcnt0:1;
1236		uint64_t reserved_22_24:3;
1237		uint64_t ptime0:1;
1238		uint64_t reserved_18_20:3;
1239		uint64_t pcnt0:1;
1240		uint64_t rsl_int:1;
1241		uint64_t ill_rrd:1;
1242		uint64_t ill_rwr:1;
1243		uint64_t dperr:1;
1244		uint64_t aperr:1;
1245		uint64_t serr:1;
1246		uint64_t tsr_abt:1;
1247		uint64_t msc_msg:1;
1248		uint64_t msi_mabt:1;
1249		uint64_t msi_tabt:1;
1250		uint64_t msi_per:1;
1251		uint64_t mr_tto:1;
1252		uint64_t mr_abt:1;
1253		uint64_t tr_abt:1;
1254		uint64_t mr_wtto:1;
1255		uint64_t mr_wabt:1;
1256		uint64_t tr_wabt:1;
1257	} cn30xx;
1258	struct cvmx_pci_int_sum2_cn31xx {
1259		uint64_t reserved_34_63:30;
1260		uint64_t ill_rd:1;
1261		uint64_t ill_wr:1;
1262		uint64_t win_wr:1;
1263		uint64_t dma1_fi:1;
1264		uint64_t dma0_fi:1;
1265		uint64_t dtime1:1;
1266		uint64_t dtime0:1;
1267		uint64_t dcnt1:1;
1268		uint64_t dcnt0:1;
1269		uint64_t reserved_23_24:2;
1270		uint64_t ptime1:1;
1271		uint64_t ptime0:1;
1272		uint64_t reserved_19_20:2;
1273		uint64_t pcnt1:1;
1274		uint64_t pcnt0:1;
1275		uint64_t rsl_int:1;
1276		uint64_t ill_rrd:1;
1277		uint64_t ill_rwr:1;
1278		uint64_t dperr:1;
1279		uint64_t aperr:1;
1280		uint64_t serr:1;
1281		uint64_t tsr_abt:1;
1282		uint64_t msc_msg:1;
1283		uint64_t msi_mabt:1;
1284		uint64_t msi_tabt:1;
1285		uint64_t msi_per:1;
1286		uint64_t mr_tto:1;
1287		uint64_t mr_abt:1;
1288		uint64_t tr_abt:1;
1289		uint64_t mr_wtto:1;
1290		uint64_t mr_wabt:1;
1291		uint64_t tr_wabt:1;
1292	} cn31xx;
1293	struct cvmx_pci_int_sum2_s cn38xx;
1294	struct cvmx_pci_int_sum2_s cn38xxp2;
1295	struct cvmx_pci_int_sum2_cn31xx cn50xx;
1296	struct cvmx_pci_int_sum2_s cn58xx;
1297	struct cvmx_pci_int_sum2_s cn58xxp1;
1298};
1299
1300union cvmx_pci_msi_rcv {
1301	uint32_t u32;
1302	struct cvmx_pci_msi_rcv_s {
1303		uint32_t reserved_6_31:26;
1304		uint32_t intr:6;
1305	} s;
1306	struct cvmx_pci_msi_rcv_s cn30xx;
1307	struct cvmx_pci_msi_rcv_s cn31xx;
1308	struct cvmx_pci_msi_rcv_s cn38xx;
1309	struct cvmx_pci_msi_rcv_s cn38xxp2;
1310	struct cvmx_pci_msi_rcv_s cn50xx;
1311	struct cvmx_pci_msi_rcv_s cn58xx;
1312	struct cvmx_pci_msi_rcv_s cn58xxp1;
1313};
1314
1315union cvmx_pci_pkt_creditsx {
1316	uint32_t u32;
1317	struct cvmx_pci_pkt_creditsx_s {
1318		uint32_t pkt_cnt:16;
1319		uint32_t ptr_cnt:16;
1320	} s;
1321	struct cvmx_pci_pkt_creditsx_s cn30xx;
1322	struct cvmx_pci_pkt_creditsx_s cn31xx;
1323	struct cvmx_pci_pkt_creditsx_s cn38xx;
1324	struct cvmx_pci_pkt_creditsx_s cn38xxp2;
1325	struct cvmx_pci_pkt_creditsx_s cn50xx;
1326	struct cvmx_pci_pkt_creditsx_s cn58xx;
1327	struct cvmx_pci_pkt_creditsx_s cn58xxp1;
1328};
1329
1330union cvmx_pci_pkts_sentx {
1331	uint32_t u32;
1332	struct cvmx_pci_pkts_sentx_s {
1333		uint32_t pkt_cnt:32;
1334	} s;
1335	struct cvmx_pci_pkts_sentx_s cn30xx;
1336	struct cvmx_pci_pkts_sentx_s cn31xx;
1337	struct cvmx_pci_pkts_sentx_s cn38xx;
1338	struct cvmx_pci_pkts_sentx_s cn38xxp2;
1339	struct cvmx_pci_pkts_sentx_s cn50xx;
1340	struct cvmx_pci_pkts_sentx_s cn58xx;
1341	struct cvmx_pci_pkts_sentx_s cn58xxp1;
1342};
1343
1344union cvmx_pci_pkts_sent_int_levx {
1345	uint32_t u32;
1346	struct cvmx_pci_pkts_sent_int_levx_s {
1347		uint32_t pkt_cnt:32;
1348	} s;
1349	struct cvmx_pci_pkts_sent_int_levx_s cn30xx;
1350	struct cvmx_pci_pkts_sent_int_levx_s cn31xx;
1351	struct cvmx_pci_pkts_sent_int_levx_s cn38xx;
1352	struct cvmx_pci_pkts_sent_int_levx_s cn38xxp2;
1353	struct cvmx_pci_pkts_sent_int_levx_s cn50xx;
1354	struct cvmx_pci_pkts_sent_int_levx_s cn58xx;
1355	struct cvmx_pci_pkts_sent_int_levx_s cn58xxp1;
1356};
1357
1358union cvmx_pci_pkts_sent_timex {
1359	uint32_t u32;
1360	struct cvmx_pci_pkts_sent_timex_s {
1361		uint32_t pkt_time:32;
1362	} s;
1363	struct cvmx_pci_pkts_sent_timex_s cn30xx;
1364	struct cvmx_pci_pkts_sent_timex_s cn31xx;
1365	struct cvmx_pci_pkts_sent_timex_s cn38xx;
1366	struct cvmx_pci_pkts_sent_timex_s cn38xxp2;
1367	struct cvmx_pci_pkts_sent_timex_s cn50xx;
1368	struct cvmx_pci_pkts_sent_timex_s cn58xx;
1369	struct cvmx_pci_pkts_sent_timex_s cn58xxp1;
1370};
1371
1372union cvmx_pci_read_cmd_6 {
1373	uint32_t u32;
1374	struct cvmx_pci_read_cmd_6_s {
1375		uint32_t reserved_9_31:23;
1376		uint32_t min_data:6;
1377		uint32_t prefetch:3;
1378	} s;
1379	struct cvmx_pci_read_cmd_6_s cn30xx;
1380	struct cvmx_pci_read_cmd_6_s cn31xx;
1381	struct cvmx_pci_read_cmd_6_s cn38xx;
1382	struct cvmx_pci_read_cmd_6_s cn38xxp2;
1383	struct cvmx_pci_read_cmd_6_s cn50xx;
1384	struct cvmx_pci_read_cmd_6_s cn58xx;
1385	struct cvmx_pci_read_cmd_6_s cn58xxp1;
1386};
1387
1388union cvmx_pci_read_cmd_c {
1389	uint32_t u32;
1390	struct cvmx_pci_read_cmd_c_s {
1391		uint32_t reserved_9_31:23;
1392		uint32_t min_data:6;
1393		uint32_t prefetch:3;
1394	} s;
1395	struct cvmx_pci_read_cmd_c_s cn30xx;
1396	struct cvmx_pci_read_cmd_c_s cn31xx;
1397	struct cvmx_pci_read_cmd_c_s cn38xx;
1398	struct cvmx_pci_read_cmd_c_s cn38xxp2;
1399	struct cvmx_pci_read_cmd_c_s cn50xx;
1400	struct cvmx_pci_read_cmd_c_s cn58xx;
1401	struct cvmx_pci_read_cmd_c_s cn58xxp1;
1402};
1403
1404union cvmx_pci_read_cmd_e {
1405	uint32_t u32;
1406	struct cvmx_pci_read_cmd_e_s {
1407		uint32_t reserved_9_31:23;
1408		uint32_t min_data:6;
1409		uint32_t prefetch:3;
1410	} s;
1411	struct cvmx_pci_read_cmd_e_s cn30xx;
1412	struct cvmx_pci_read_cmd_e_s cn31xx;
1413	struct cvmx_pci_read_cmd_e_s cn38xx;
1414	struct cvmx_pci_read_cmd_e_s cn38xxp2;
1415	struct cvmx_pci_read_cmd_e_s cn50xx;
1416	struct cvmx_pci_read_cmd_e_s cn58xx;
1417	struct cvmx_pci_read_cmd_e_s cn58xxp1;
1418};
1419
1420union cvmx_pci_read_timeout {
1421	uint64_t u64;
1422	struct cvmx_pci_read_timeout_s {
1423		uint64_t reserved_32_63:32;
1424		uint64_t enb:1;
1425		uint64_t cnt:31;
1426	} s;
1427	struct cvmx_pci_read_timeout_s cn30xx;
1428	struct cvmx_pci_read_timeout_s cn31xx;
1429	struct cvmx_pci_read_timeout_s cn38xx;
1430	struct cvmx_pci_read_timeout_s cn38xxp2;
1431	struct cvmx_pci_read_timeout_s cn50xx;
1432	struct cvmx_pci_read_timeout_s cn58xx;
1433	struct cvmx_pci_read_timeout_s cn58xxp1;
1434};
1435
1436union cvmx_pci_scm_reg {
1437	uint64_t u64;
1438	struct cvmx_pci_scm_reg_s {
1439		uint64_t reserved_32_63:32;
1440		uint64_t scm:32;
1441	} s;
1442	struct cvmx_pci_scm_reg_s cn30xx;
1443	struct cvmx_pci_scm_reg_s cn31xx;
1444	struct cvmx_pci_scm_reg_s cn38xx;
1445	struct cvmx_pci_scm_reg_s cn38xxp2;
1446	struct cvmx_pci_scm_reg_s cn50xx;
1447	struct cvmx_pci_scm_reg_s cn58xx;
1448	struct cvmx_pci_scm_reg_s cn58xxp1;
1449};
1450
1451union cvmx_pci_tsr_reg {
1452	uint64_t u64;
1453	struct cvmx_pci_tsr_reg_s {
1454		uint64_t reserved_36_63:28;
1455		uint64_t tsr:36;
1456	} s;
1457	struct cvmx_pci_tsr_reg_s cn30xx;
1458	struct cvmx_pci_tsr_reg_s cn31xx;
1459	struct cvmx_pci_tsr_reg_s cn38xx;
1460	struct cvmx_pci_tsr_reg_s cn38xxp2;
1461	struct cvmx_pci_tsr_reg_s cn50xx;
1462	struct cvmx_pci_tsr_reg_s cn58xx;
1463	struct cvmx_pci_tsr_reg_s cn58xxp1;
1464};
1465
1466union cvmx_pci_win_rd_addr {
1467	uint64_t u64;
1468	struct cvmx_pci_win_rd_addr_s {
1469		uint64_t reserved_49_63:15;
1470		uint64_t iobit:1;
1471		uint64_t reserved_0_47:48;
1472	} s;
1473	struct cvmx_pci_win_rd_addr_cn30xx {
1474		uint64_t reserved_49_63:15;
1475		uint64_t iobit:1;
1476		uint64_t rd_addr:46;
1477		uint64_t reserved_0_1:2;
1478	} cn30xx;
1479	struct cvmx_pci_win_rd_addr_cn30xx cn31xx;
1480	struct cvmx_pci_win_rd_addr_cn38xx {
1481		uint64_t reserved_49_63:15;
1482		uint64_t iobit:1;
1483		uint64_t rd_addr:45;
1484		uint64_t reserved_0_2:3;
1485	} cn38xx;
1486	struct cvmx_pci_win_rd_addr_cn38xx cn38xxp2;
1487	struct cvmx_pci_win_rd_addr_cn30xx cn50xx;
1488	struct cvmx_pci_win_rd_addr_cn38xx cn58xx;
1489	struct cvmx_pci_win_rd_addr_cn38xx cn58xxp1;
1490};
1491
1492union cvmx_pci_win_rd_data {
1493	uint64_t u64;
1494	struct cvmx_pci_win_rd_data_s {
1495		uint64_t rd_data:64;
1496	} s;
1497	struct cvmx_pci_win_rd_data_s cn30xx;
1498	struct cvmx_pci_win_rd_data_s cn31xx;
1499	struct cvmx_pci_win_rd_data_s cn38xx;
1500	struct cvmx_pci_win_rd_data_s cn38xxp2;
1501	struct cvmx_pci_win_rd_data_s cn50xx;
1502	struct cvmx_pci_win_rd_data_s cn58xx;
1503	struct cvmx_pci_win_rd_data_s cn58xxp1;
1504};
1505
1506union cvmx_pci_win_wr_addr {
1507	uint64_t u64;
1508	struct cvmx_pci_win_wr_addr_s {
1509		uint64_t reserved_49_63:15;
1510		uint64_t iobit:1;
1511		uint64_t wr_addr:45;
1512		uint64_t reserved_0_2:3;
1513	} s;
1514	struct cvmx_pci_win_wr_addr_s cn30xx;
1515	struct cvmx_pci_win_wr_addr_s cn31xx;
1516	struct cvmx_pci_win_wr_addr_s cn38xx;
1517	struct cvmx_pci_win_wr_addr_s cn38xxp2;
1518	struct cvmx_pci_win_wr_addr_s cn50xx;
1519	struct cvmx_pci_win_wr_addr_s cn58xx;
1520	struct cvmx_pci_win_wr_addr_s cn58xxp1;
1521};
1522
1523union cvmx_pci_win_wr_data {
1524	uint64_t u64;
1525	struct cvmx_pci_win_wr_data_s {
1526		uint64_t wr_data:64;
1527	} s;
1528	struct cvmx_pci_win_wr_data_s cn30xx;
1529	struct cvmx_pci_win_wr_data_s cn31xx;
1530	struct cvmx_pci_win_wr_data_s cn38xx;
1531	struct cvmx_pci_win_wr_data_s cn38xxp2;
1532	struct cvmx_pci_win_wr_data_s cn50xx;
1533	struct cvmx_pci_win_wr_data_s cn58xx;
1534	struct cvmx_pci_win_wr_data_s cn58xxp1;
1535};
1536
1537union cvmx_pci_win_wr_mask {
1538	uint64_t u64;
1539	struct cvmx_pci_win_wr_mask_s {
1540		uint64_t reserved_8_63:56;
1541		uint64_t wr_mask:8;
1542	} s;
1543	struct cvmx_pci_win_wr_mask_s cn30xx;
1544	struct cvmx_pci_win_wr_mask_s cn31xx;
1545	struct cvmx_pci_win_wr_mask_s cn38xx;
1546	struct cvmx_pci_win_wr_mask_s cn38xxp2;
1547	struct cvmx_pci_win_wr_mask_s cn50xx;
1548	struct cvmx_pci_win_wr_mask_s cn58xx;
1549	struct cvmx_pci_win_wr_mask_s cn58xxp1;
1550};
1551
1552#endif
v3.5.6
   1/***********************license start***************
   2 * Author: Cavium Networks
   3 *
   4 * Contact: support@caviumnetworks.com
   5 * This file is part of the OCTEON SDK
   6 *
   7 * Copyright (c) 2003-2010 Cavium Networks
   8 *
   9 * This file is free software; you can redistribute it and/or modify
  10 * it under the terms of the GNU General Public License, Version 2, as
  11 * published by the Free Software Foundation.
  12 *
  13 * This file is distributed in the hope that it will be useful, but
  14 * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
  15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
  16 * NONINFRINGEMENT.  See the GNU General Public License for more
  17 * details.
  18 *
  19 * You should have received a copy of the GNU General Public License
  20 * along with this file; if not, write to the Free Software
  21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
  22 * or visit http://www.gnu.org/licenses/.
  23 *
  24 * This file may also be available under a different license from Cavium.
  25 * Contact Cavium Networks for more information
  26 ***********************license end**************************************/
  27
  28#ifndef __CVMX_PCI_DEFS_H__
  29#define __CVMX_PCI_DEFS_H__
  30
  31#define CVMX_PCI_BAR1_INDEXX(offset) (0x0000000000000100ull + ((offset) & 31) * 4)
  32#define CVMX_PCI_BIST_REG (0x00000000000001C0ull)
  33#define CVMX_PCI_CFG00 (0x0000000000000000ull)
  34#define CVMX_PCI_CFG01 (0x0000000000000004ull)
  35#define CVMX_PCI_CFG02 (0x0000000000000008ull)
  36#define CVMX_PCI_CFG03 (0x000000000000000Cull)
  37#define CVMX_PCI_CFG04 (0x0000000000000010ull)
  38#define CVMX_PCI_CFG05 (0x0000000000000014ull)
  39#define CVMX_PCI_CFG06 (0x0000000000000018ull)
  40#define CVMX_PCI_CFG07 (0x000000000000001Cull)
  41#define CVMX_PCI_CFG08 (0x0000000000000020ull)
  42#define CVMX_PCI_CFG09 (0x0000000000000024ull)
  43#define CVMX_PCI_CFG10 (0x0000000000000028ull)
  44#define CVMX_PCI_CFG11 (0x000000000000002Cull)
  45#define CVMX_PCI_CFG12 (0x0000000000000030ull)
  46#define CVMX_PCI_CFG13 (0x0000000000000034ull)
  47#define CVMX_PCI_CFG15 (0x000000000000003Cull)
  48#define CVMX_PCI_CFG16 (0x0000000000000040ull)
  49#define CVMX_PCI_CFG17 (0x0000000000000044ull)
  50#define CVMX_PCI_CFG18 (0x0000000000000048ull)
  51#define CVMX_PCI_CFG19 (0x000000000000004Cull)
  52#define CVMX_PCI_CFG20 (0x0000000000000050ull)
  53#define CVMX_PCI_CFG21 (0x0000000000000054ull)
  54#define CVMX_PCI_CFG22 (0x0000000000000058ull)
  55#define CVMX_PCI_CFG56 (0x00000000000000E0ull)
  56#define CVMX_PCI_CFG57 (0x00000000000000E4ull)
  57#define CVMX_PCI_CFG58 (0x00000000000000E8ull)
  58#define CVMX_PCI_CFG59 (0x00000000000000ECull)
  59#define CVMX_PCI_CFG60 (0x00000000000000F0ull)
  60#define CVMX_PCI_CFG61 (0x00000000000000F4ull)
  61#define CVMX_PCI_CFG62 (0x00000000000000F8ull)
  62#define CVMX_PCI_CFG63 (0x00000000000000FCull)
  63#define CVMX_PCI_CNT_REG (0x00000000000001B8ull)
  64#define CVMX_PCI_CTL_STATUS_2 (0x000000000000018Cull)
  65#define CVMX_PCI_DBELL_X(offset) (0x0000000000000080ull + ((offset) & 3) * 8)
  66#define CVMX_PCI_DMA_CNT0 CVMX_PCI_DMA_CNTX(0)
  67#define CVMX_PCI_DMA_CNT1 CVMX_PCI_DMA_CNTX(1)
  68#define CVMX_PCI_DMA_CNTX(offset) (0x00000000000000A0ull + ((offset) & 1) * 8)
  69#define CVMX_PCI_DMA_INT_LEV0 CVMX_PCI_DMA_INT_LEVX(0)
  70#define CVMX_PCI_DMA_INT_LEV1 CVMX_PCI_DMA_INT_LEVX(1)
  71#define CVMX_PCI_DMA_INT_LEVX(offset) (0x00000000000000A4ull + ((offset) & 1) * 8)
  72#define CVMX_PCI_DMA_TIME0 CVMX_PCI_DMA_TIMEX(0)
  73#define CVMX_PCI_DMA_TIME1 CVMX_PCI_DMA_TIMEX(1)
  74#define CVMX_PCI_DMA_TIMEX(offset) (0x00000000000000B0ull + ((offset) & 1) * 4)
  75#define CVMX_PCI_INSTR_COUNT0 CVMX_PCI_INSTR_COUNTX(0)
  76#define CVMX_PCI_INSTR_COUNT1 CVMX_PCI_INSTR_COUNTX(1)
  77#define CVMX_PCI_INSTR_COUNT2 CVMX_PCI_INSTR_COUNTX(2)
  78#define CVMX_PCI_INSTR_COUNT3 CVMX_PCI_INSTR_COUNTX(3)
  79#define CVMX_PCI_INSTR_COUNTX(offset) (0x0000000000000084ull + ((offset) & 3) * 8)
  80#define CVMX_PCI_INT_ENB (0x0000000000000038ull)
  81#define CVMX_PCI_INT_ENB2 (0x00000000000001A0ull)
  82#define CVMX_PCI_INT_SUM (0x0000000000000030ull)
  83#define CVMX_PCI_INT_SUM2 (0x0000000000000198ull)
  84#define CVMX_PCI_MSI_RCV (0x00000000000000F0ull)
  85#define CVMX_PCI_PKTS_SENT0 CVMX_PCI_PKTS_SENTX(0)
  86#define CVMX_PCI_PKTS_SENT1 CVMX_PCI_PKTS_SENTX(1)
  87#define CVMX_PCI_PKTS_SENT2 CVMX_PCI_PKTS_SENTX(2)
  88#define CVMX_PCI_PKTS_SENT3 CVMX_PCI_PKTS_SENTX(3)
  89#define CVMX_PCI_PKTS_SENTX(offset) (0x0000000000000040ull + ((offset) & 3) * 16)
  90#define CVMX_PCI_PKTS_SENT_INT_LEV0 CVMX_PCI_PKTS_SENT_INT_LEVX(0)
  91#define CVMX_PCI_PKTS_SENT_INT_LEV1 CVMX_PCI_PKTS_SENT_INT_LEVX(1)
  92#define CVMX_PCI_PKTS_SENT_INT_LEV2 CVMX_PCI_PKTS_SENT_INT_LEVX(2)
  93#define CVMX_PCI_PKTS_SENT_INT_LEV3 CVMX_PCI_PKTS_SENT_INT_LEVX(3)
  94#define CVMX_PCI_PKTS_SENT_INT_LEVX(offset) (0x0000000000000048ull + ((offset) & 3) * 16)
  95#define CVMX_PCI_PKTS_SENT_TIME0 CVMX_PCI_PKTS_SENT_TIMEX(0)
  96#define CVMX_PCI_PKTS_SENT_TIME1 CVMX_PCI_PKTS_SENT_TIMEX(1)
  97#define CVMX_PCI_PKTS_SENT_TIME2 CVMX_PCI_PKTS_SENT_TIMEX(2)
  98#define CVMX_PCI_PKTS_SENT_TIME3 CVMX_PCI_PKTS_SENT_TIMEX(3)
  99#define CVMX_PCI_PKTS_SENT_TIMEX(offset) (0x000000000000004Cull + ((offset) & 3) * 16)
 100#define CVMX_PCI_PKT_CREDITS0 CVMX_PCI_PKT_CREDITSX(0)
 101#define CVMX_PCI_PKT_CREDITS1 CVMX_PCI_PKT_CREDITSX(1)
 102#define CVMX_PCI_PKT_CREDITS2 CVMX_PCI_PKT_CREDITSX(2)
 103#define CVMX_PCI_PKT_CREDITS3 CVMX_PCI_PKT_CREDITSX(3)
 104#define CVMX_PCI_PKT_CREDITSX(offset) (0x0000000000000044ull + ((offset) & 3) * 16)
 105#define CVMX_PCI_READ_CMD_6 (0x0000000000000180ull)
 106#define CVMX_PCI_READ_CMD_C (0x0000000000000184ull)
 107#define CVMX_PCI_READ_CMD_E (0x0000000000000188ull)
 108#define CVMX_PCI_READ_TIMEOUT (CVMX_ADD_IO_SEG(0x00011F00000000B0ull))
 109#define CVMX_PCI_SCM_REG (0x00000000000001A8ull)
 110#define CVMX_PCI_TSR_REG (0x00000000000001B0ull)
 111#define CVMX_PCI_WIN_RD_ADDR (0x0000000000000008ull)
 112#define CVMX_PCI_WIN_RD_DATA (0x0000000000000020ull)
 113#define CVMX_PCI_WIN_WR_ADDR (0x0000000000000000ull)
 114#define CVMX_PCI_WIN_WR_DATA (0x0000000000000010ull)
 115#define CVMX_PCI_WIN_WR_MASK (0x0000000000000018ull)
 116
 117union cvmx_pci_bar1_indexx {
 118	uint32_t u32;
 119	struct cvmx_pci_bar1_indexx_s {
 120		uint32_t reserved_18_31:14;
 121		uint32_t addr_idx:14;
 122		uint32_t ca:1;
 123		uint32_t end_swp:2;
 124		uint32_t addr_v:1;
 125	} s;
 126	struct cvmx_pci_bar1_indexx_s cn30xx;
 127	struct cvmx_pci_bar1_indexx_s cn31xx;
 128	struct cvmx_pci_bar1_indexx_s cn38xx;
 129	struct cvmx_pci_bar1_indexx_s cn38xxp2;
 130	struct cvmx_pci_bar1_indexx_s cn50xx;
 131	struct cvmx_pci_bar1_indexx_s cn58xx;
 132	struct cvmx_pci_bar1_indexx_s cn58xxp1;
 133};
 134
 135union cvmx_pci_bist_reg {
 136	uint64_t u64;
 137	struct cvmx_pci_bist_reg_s {
 138		uint64_t reserved_10_63:54;
 139		uint64_t rsp_bs:1;
 140		uint64_t dma0_bs:1;
 141		uint64_t cmd0_bs:1;
 142		uint64_t cmd_bs:1;
 143		uint64_t csr2p_bs:1;
 144		uint64_t csrr_bs:1;
 145		uint64_t rsp2p_bs:1;
 146		uint64_t csr2n_bs:1;
 147		uint64_t dat2n_bs:1;
 148		uint64_t dbg2n_bs:1;
 149	} s;
 150	struct cvmx_pci_bist_reg_s cn50xx;
 151};
 152
 153union cvmx_pci_cfg00 {
 154	uint32_t u32;
 155	struct cvmx_pci_cfg00_s {
 156		uint32_t devid:16;
 157		uint32_t vendid:16;
 158	} s;
 159	struct cvmx_pci_cfg00_s cn30xx;
 160	struct cvmx_pci_cfg00_s cn31xx;
 161	struct cvmx_pci_cfg00_s cn38xx;
 162	struct cvmx_pci_cfg00_s cn38xxp2;
 163	struct cvmx_pci_cfg00_s cn50xx;
 164	struct cvmx_pci_cfg00_s cn58xx;
 165	struct cvmx_pci_cfg00_s cn58xxp1;
 166};
 167
 168union cvmx_pci_cfg01 {
 169	uint32_t u32;
 170	struct cvmx_pci_cfg01_s {
 171		uint32_t dpe:1;
 172		uint32_t sse:1;
 173		uint32_t rma:1;
 174		uint32_t rta:1;
 175		uint32_t sta:1;
 176		uint32_t devt:2;
 177		uint32_t mdpe:1;
 178		uint32_t fbb:1;
 179		uint32_t reserved_22_22:1;
 180		uint32_t m66:1;
 181		uint32_t cle:1;
 182		uint32_t i_stat:1;
 183		uint32_t reserved_11_18:8;
 184		uint32_t i_dis:1;
 185		uint32_t fbbe:1;
 186		uint32_t see:1;
 187		uint32_t ads:1;
 188		uint32_t pee:1;
 189		uint32_t vps:1;
 190		uint32_t mwice:1;
 191		uint32_t scse:1;
 192		uint32_t me:1;
 193		uint32_t msae:1;
 194		uint32_t isae:1;
 195	} s;
 196	struct cvmx_pci_cfg01_s cn30xx;
 197	struct cvmx_pci_cfg01_s cn31xx;
 198	struct cvmx_pci_cfg01_s cn38xx;
 199	struct cvmx_pci_cfg01_s cn38xxp2;
 200	struct cvmx_pci_cfg01_s cn50xx;
 201	struct cvmx_pci_cfg01_s cn58xx;
 202	struct cvmx_pci_cfg01_s cn58xxp1;
 203};
 204
 205union cvmx_pci_cfg02 {
 206	uint32_t u32;
 207	struct cvmx_pci_cfg02_s {
 208		uint32_t cc:24;
 209		uint32_t rid:8;
 210	} s;
 211	struct cvmx_pci_cfg02_s cn30xx;
 212	struct cvmx_pci_cfg02_s cn31xx;
 213	struct cvmx_pci_cfg02_s cn38xx;
 214	struct cvmx_pci_cfg02_s cn38xxp2;
 215	struct cvmx_pci_cfg02_s cn50xx;
 216	struct cvmx_pci_cfg02_s cn58xx;
 217	struct cvmx_pci_cfg02_s cn58xxp1;
 218};
 219
 220union cvmx_pci_cfg03 {
 221	uint32_t u32;
 222	struct cvmx_pci_cfg03_s {
 223		uint32_t bcap:1;
 224		uint32_t brb:1;
 225		uint32_t reserved_28_29:2;
 226		uint32_t bcod:4;
 227		uint32_t ht:8;
 228		uint32_t lt:8;
 229		uint32_t cls:8;
 230	} s;
 231	struct cvmx_pci_cfg03_s cn30xx;
 232	struct cvmx_pci_cfg03_s cn31xx;
 233	struct cvmx_pci_cfg03_s cn38xx;
 234	struct cvmx_pci_cfg03_s cn38xxp2;
 235	struct cvmx_pci_cfg03_s cn50xx;
 236	struct cvmx_pci_cfg03_s cn58xx;
 237	struct cvmx_pci_cfg03_s cn58xxp1;
 238};
 239
 240union cvmx_pci_cfg04 {
 241	uint32_t u32;
 242	struct cvmx_pci_cfg04_s {
 243		uint32_t lbase:20;
 244		uint32_t lbasez:8;
 245		uint32_t pf:1;
 246		uint32_t typ:2;
 247		uint32_t mspc:1;
 248	} s;
 249	struct cvmx_pci_cfg04_s cn30xx;
 250	struct cvmx_pci_cfg04_s cn31xx;
 251	struct cvmx_pci_cfg04_s cn38xx;
 252	struct cvmx_pci_cfg04_s cn38xxp2;
 253	struct cvmx_pci_cfg04_s cn50xx;
 254	struct cvmx_pci_cfg04_s cn58xx;
 255	struct cvmx_pci_cfg04_s cn58xxp1;
 256};
 257
 258union cvmx_pci_cfg05 {
 259	uint32_t u32;
 260	struct cvmx_pci_cfg05_s {
 261		uint32_t hbase:32;
 262	} s;
 263	struct cvmx_pci_cfg05_s cn30xx;
 264	struct cvmx_pci_cfg05_s cn31xx;
 265	struct cvmx_pci_cfg05_s cn38xx;
 266	struct cvmx_pci_cfg05_s cn38xxp2;
 267	struct cvmx_pci_cfg05_s cn50xx;
 268	struct cvmx_pci_cfg05_s cn58xx;
 269	struct cvmx_pci_cfg05_s cn58xxp1;
 270};
 271
 272union cvmx_pci_cfg06 {
 273	uint32_t u32;
 274	struct cvmx_pci_cfg06_s {
 275		uint32_t lbase:5;
 276		uint32_t lbasez:23;
 277		uint32_t pf:1;
 278		uint32_t typ:2;
 279		uint32_t mspc:1;
 280	} s;
 281	struct cvmx_pci_cfg06_s cn30xx;
 282	struct cvmx_pci_cfg06_s cn31xx;
 283	struct cvmx_pci_cfg06_s cn38xx;
 284	struct cvmx_pci_cfg06_s cn38xxp2;
 285	struct cvmx_pci_cfg06_s cn50xx;
 286	struct cvmx_pci_cfg06_s cn58xx;
 287	struct cvmx_pci_cfg06_s cn58xxp1;
 288};
 289
 290union cvmx_pci_cfg07 {
 291	uint32_t u32;
 292	struct cvmx_pci_cfg07_s {
 293		uint32_t hbase:32;
 294	} s;
 295	struct cvmx_pci_cfg07_s cn30xx;
 296	struct cvmx_pci_cfg07_s cn31xx;
 297	struct cvmx_pci_cfg07_s cn38xx;
 298	struct cvmx_pci_cfg07_s cn38xxp2;
 299	struct cvmx_pci_cfg07_s cn50xx;
 300	struct cvmx_pci_cfg07_s cn58xx;
 301	struct cvmx_pci_cfg07_s cn58xxp1;
 302};
 303
 304union cvmx_pci_cfg08 {
 305	uint32_t u32;
 306	struct cvmx_pci_cfg08_s {
 307		uint32_t lbasez:28;
 308		uint32_t pf:1;
 309		uint32_t typ:2;
 310		uint32_t mspc:1;
 311	} s;
 312	struct cvmx_pci_cfg08_s cn30xx;
 313	struct cvmx_pci_cfg08_s cn31xx;
 314	struct cvmx_pci_cfg08_s cn38xx;
 315	struct cvmx_pci_cfg08_s cn38xxp2;
 316	struct cvmx_pci_cfg08_s cn50xx;
 317	struct cvmx_pci_cfg08_s cn58xx;
 318	struct cvmx_pci_cfg08_s cn58xxp1;
 319};
 320
 321union cvmx_pci_cfg09 {
 322	uint32_t u32;
 323	struct cvmx_pci_cfg09_s {
 324		uint32_t hbase:25;
 325		uint32_t hbasez:7;
 326	} s;
 327	struct cvmx_pci_cfg09_s cn30xx;
 328	struct cvmx_pci_cfg09_s cn31xx;
 329	struct cvmx_pci_cfg09_s cn38xx;
 330	struct cvmx_pci_cfg09_s cn38xxp2;
 331	struct cvmx_pci_cfg09_s cn50xx;
 332	struct cvmx_pci_cfg09_s cn58xx;
 333	struct cvmx_pci_cfg09_s cn58xxp1;
 334};
 335
 336union cvmx_pci_cfg10 {
 337	uint32_t u32;
 338	struct cvmx_pci_cfg10_s {
 339		uint32_t cisp:32;
 340	} s;
 341	struct cvmx_pci_cfg10_s cn30xx;
 342	struct cvmx_pci_cfg10_s cn31xx;
 343	struct cvmx_pci_cfg10_s cn38xx;
 344	struct cvmx_pci_cfg10_s cn38xxp2;
 345	struct cvmx_pci_cfg10_s cn50xx;
 346	struct cvmx_pci_cfg10_s cn58xx;
 347	struct cvmx_pci_cfg10_s cn58xxp1;
 348};
 349
 350union cvmx_pci_cfg11 {
 351	uint32_t u32;
 352	struct cvmx_pci_cfg11_s {
 353		uint32_t ssid:16;
 354		uint32_t ssvid:16;
 355	} s;
 356	struct cvmx_pci_cfg11_s cn30xx;
 357	struct cvmx_pci_cfg11_s cn31xx;
 358	struct cvmx_pci_cfg11_s cn38xx;
 359	struct cvmx_pci_cfg11_s cn38xxp2;
 360	struct cvmx_pci_cfg11_s cn50xx;
 361	struct cvmx_pci_cfg11_s cn58xx;
 362	struct cvmx_pci_cfg11_s cn58xxp1;
 363};
 364
 365union cvmx_pci_cfg12 {
 366	uint32_t u32;
 367	struct cvmx_pci_cfg12_s {
 368		uint32_t erbar:16;
 369		uint32_t erbarz:5;
 370		uint32_t reserved_1_10:10;
 371		uint32_t erbar_en:1;
 372	} s;
 373	struct cvmx_pci_cfg12_s cn30xx;
 374	struct cvmx_pci_cfg12_s cn31xx;
 375	struct cvmx_pci_cfg12_s cn38xx;
 376	struct cvmx_pci_cfg12_s cn38xxp2;
 377	struct cvmx_pci_cfg12_s cn50xx;
 378	struct cvmx_pci_cfg12_s cn58xx;
 379	struct cvmx_pci_cfg12_s cn58xxp1;
 380};
 381
 382union cvmx_pci_cfg13 {
 383	uint32_t u32;
 384	struct cvmx_pci_cfg13_s {
 385		uint32_t reserved_8_31:24;
 386		uint32_t cp:8;
 387	} s;
 388	struct cvmx_pci_cfg13_s cn30xx;
 389	struct cvmx_pci_cfg13_s cn31xx;
 390	struct cvmx_pci_cfg13_s cn38xx;
 391	struct cvmx_pci_cfg13_s cn38xxp2;
 392	struct cvmx_pci_cfg13_s cn50xx;
 393	struct cvmx_pci_cfg13_s cn58xx;
 394	struct cvmx_pci_cfg13_s cn58xxp1;
 395};
 396
 397union cvmx_pci_cfg15 {
 398	uint32_t u32;
 399	struct cvmx_pci_cfg15_s {
 400		uint32_t ml:8;
 401		uint32_t mg:8;
 402		uint32_t inta:8;
 403		uint32_t il:8;
 404	} s;
 405	struct cvmx_pci_cfg15_s cn30xx;
 406	struct cvmx_pci_cfg15_s cn31xx;
 407	struct cvmx_pci_cfg15_s cn38xx;
 408	struct cvmx_pci_cfg15_s cn38xxp2;
 409	struct cvmx_pci_cfg15_s cn50xx;
 410	struct cvmx_pci_cfg15_s cn58xx;
 411	struct cvmx_pci_cfg15_s cn58xxp1;
 412};
 413
 414union cvmx_pci_cfg16 {
 415	uint32_t u32;
 416	struct cvmx_pci_cfg16_s {
 417		uint32_t trdnpr:1;
 418		uint32_t trdard:1;
 419		uint32_t rdsati:1;
 420		uint32_t trdrs:1;
 421		uint32_t trtae:1;
 422		uint32_t twsei:1;
 423		uint32_t twsen:1;
 424		uint32_t twtae:1;
 425		uint32_t tmae:1;
 426		uint32_t tslte:3;
 427		uint32_t tilt:4;
 428		uint32_t pbe:12;
 429		uint32_t dppmr:1;
 430		uint32_t reserved_2_2:1;
 431		uint32_t tswc:1;
 432		uint32_t mltd:1;
 433	} s;
 434	struct cvmx_pci_cfg16_s cn30xx;
 435	struct cvmx_pci_cfg16_s cn31xx;
 436	struct cvmx_pci_cfg16_s cn38xx;
 437	struct cvmx_pci_cfg16_s cn38xxp2;
 438	struct cvmx_pci_cfg16_s cn50xx;
 439	struct cvmx_pci_cfg16_s cn58xx;
 440	struct cvmx_pci_cfg16_s cn58xxp1;
 441};
 442
 443union cvmx_pci_cfg17 {
 444	uint32_t u32;
 445	struct cvmx_pci_cfg17_s {
 446		uint32_t tscme:32;
 447	} s;
 448	struct cvmx_pci_cfg17_s cn30xx;
 449	struct cvmx_pci_cfg17_s cn31xx;
 450	struct cvmx_pci_cfg17_s cn38xx;
 451	struct cvmx_pci_cfg17_s cn38xxp2;
 452	struct cvmx_pci_cfg17_s cn50xx;
 453	struct cvmx_pci_cfg17_s cn58xx;
 454	struct cvmx_pci_cfg17_s cn58xxp1;
 455};
 456
 457union cvmx_pci_cfg18 {
 458	uint32_t u32;
 459	struct cvmx_pci_cfg18_s {
 460		uint32_t tdsrps:32;
 461	} s;
 462	struct cvmx_pci_cfg18_s cn30xx;
 463	struct cvmx_pci_cfg18_s cn31xx;
 464	struct cvmx_pci_cfg18_s cn38xx;
 465	struct cvmx_pci_cfg18_s cn38xxp2;
 466	struct cvmx_pci_cfg18_s cn50xx;
 467	struct cvmx_pci_cfg18_s cn58xx;
 468	struct cvmx_pci_cfg18_s cn58xxp1;
 469};
 470
 471union cvmx_pci_cfg19 {
 472	uint32_t u32;
 473	struct cvmx_pci_cfg19_s {
 474		uint32_t mrbcm:1;
 475		uint32_t mrbci:1;
 476		uint32_t mdwe:1;
 477		uint32_t mdre:1;
 478		uint32_t mdrimc:1;
 479		uint32_t mdrrmc:3;
 480		uint32_t tmes:8;
 481		uint32_t teci:1;
 482		uint32_t tmei:1;
 483		uint32_t tmse:1;
 484		uint32_t tmdpes:1;
 485		uint32_t tmapes:1;
 486		uint32_t reserved_9_10:2;
 487		uint32_t tibcd:1;
 488		uint32_t tibde:1;
 489		uint32_t reserved_6_6:1;
 490		uint32_t tidomc:1;
 491		uint32_t tdomc:5;
 492	} s;
 493	struct cvmx_pci_cfg19_s cn30xx;
 494	struct cvmx_pci_cfg19_s cn31xx;
 495	struct cvmx_pci_cfg19_s cn38xx;
 496	struct cvmx_pci_cfg19_s cn38xxp2;
 497	struct cvmx_pci_cfg19_s cn50xx;
 498	struct cvmx_pci_cfg19_s cn58xx;
 499	struct cvmx_pci_cfg19_s cn58xxp1;
 500};
 501
 502union cvmx_pci_cfg20 {
 503	uint32_t u32;
 504	struct cvmx_pci_cfg20_s {
 505		uint32_t mdsp:32;
 506	} s;
 507	struct cvmx_pci_cfg20_s cn30xx;
 508	struct cvmx_pci_cfg20_s cn31xx;
 509	struct cvmx_pci_cfg20_s cn38xx;
 510	struct cvmx_pci_cfg20_s cn38xxp2;
 511	struct cvmx_pci_cfg20_s cn50xx;
 512	struct cvmx_pci_cfg20_s cn58xx;
 513	struct cvmx_pci_cfg20_s cn58xxp1;
 514};
 515
 516union cvmx_pci_cfg21 {
 517	uint32_t u32;
 518	struct cvmx_pci_cfg21_s {
 519		uint32_t scmre:32;
 520	} s;
 521	struct cvmx_pci_cfg21_s cn30xx;
 522	struct cvmx_pci_cfg21_s cn31xx;
 523	struct cvmx_pci_cfg21_s cn38xx;
 524	struct cvmx_pci_cfg21_s cn38xxp2;
 525	struct cvmx_pci_cfg21_s cn50xx;
 526	struct cvmx_pci_cfg21_s cn58xx;
 527	struct cvmx_pci_cfg21_s cn58xxp1;
 528};
 529
 530union cvmx_pci_cfg22 {
 531	uint32_t u32;
 532	struct cvmx_pci_cfg22_s {
 533		uint32_t mac:7;
 534		uint32_t reserved_19_24:6;
 535		uint32_t flush:1;
 536		uint32_t mra:1;
 537		uint32_t mtta:1;
 538		uint32_t mrv:8;
 539		uint32_t mttv:8;
 540	} s;
 541	struct cvmx_pci_cfg22_s cn30xx;
 542	struct cvmx_pci_cfg22_s cn31xx;
 543	struct cvmx_pci_cfg22_s cn38xx;
 544	struct cvmx_pci_cfg22_s cn38xxp2;
 545	struct cvmx_pci_cfg22_s cn50xx;
 546	struct cvmx_pci_cfg22_s cn58xx;
 547	struct cvmx_pci_cfg22_s cn58xxp1;
 548};
 549
 550union cvmx_pci_cfg56 {
 551	uint32_t u32;
 552	struct cvmx_pci_cfg56_s {
 553		uint32_t reserved_23_31:9;
 554		uint32_t most:3;
 555		uint32_t mmbc:2;
 556		uint32_t roe:1;
 557		uint32_t dpere:1;
 558		uint32_t ncp:8;
 559		uint32_t pxcid:8;
 560	} s;
 561	struct cvmx_pci_cfg56_s cn30xx;
 562	struct cvmx_pci_cfg56_s cn31xx;
 563	struct cvmx_pci_cfg56_s cn38xx;
 564	struct cvmx_pci_cfg56_s cn38xxp2;
 565	struct cvmx_pci_cfg56_s cn50xx;
 566	struct cvmx_pci_cfg56_s cn58xx;
 567	struct cvmx_pci_cfg56_s cn58xxp1;
 568};
 569
 570union cvmx_pci_cfg57 {
 571	uint32_t u32;
 572	struct cvmx_pci_cfg57_s {
 573		uint32_t reserved_30_31:2;
 574		uint32_t scemr:1;
 575		uint32_t mcrsd:3;
 576		uint32_t mostd:3;
 577		uint32_t mmrbcd:2;
 578		uint32_t dc:1;
 579		uint32_t usc:1;
 580		uint32_t scd:1;
 581		uint32_t m133:1;
 582		uint32_t w64:1;
 583		uint32_t bn:8;
 584		uint32_t dn:5;
 585		uint32_t fn:3;
 586	} s;
 587	struct cvmx_pci_cfg57_s cn30xx;
 588	struct cvmx_pci_cfg57_s cn31xx;
 589	struct cvmx_pci_cfg57_s cn38xx;
 590	struct cvmx_pci_cfg57_s cn38xxp2;
 591	struct cvmx_pci_cfg57_s cn50xx;
 592	struct cvmx_pci_cfg57_s cn58xx;
 593	struct cvmx_pci_cfg57_s cn58xxp1;
 594};
 595
 596union cvmx_pci_cfg58 {
 597	uint32_t u32;
 598	struct cvmx_pci_cfg58_s {
 599		uint32_t pmes:5;
 600		uint32_t d2s:1;
 601		uint32_t d1s:1;
 602		uint32_t auxc:3;
 603		uint32_t dsi:1;
 604		uint32_t reserved_20_20:1;
 605		uint32_t pmec:1;
 606		uint32_t pcimiv:3;
 607		uint32_t ncp:8;
 608		uint32_t pmcid:8;
 609	} s;
 610	struct cvmx_pci_cfg58_s cn30xx;
 611	struct cvmx_pci_cfg58_s cn31xx;
 612	struct cvmx_pci_cfg58_s cn38xx;
 613	struct cvmx_pci_cfg58_s cn38xxp2;
 614	struct cvmx_pci_cfg58_s cn50xx;
 615	struct cvmx_pci_cfg58_s cn58xx;
 616	struct cvmx_pci_cfg58_s cn58xxp1;
 617};
 618
 619union cvmx_pci_cfg59 {
 620	uint32_t u32;
 621	struct cvmx_pci_cfg59_s {
 622		uint32_t pmdia:8;
 623		uint32_t bpccen:1;
 624		uint32_t bd3h:1;
 625		uint32_t reserved_16_21:6;
 626		uint32_t pmess:1;
 627		uint32_t pmedsia:2;
 628		uint32_t pmds:4;
 629		uint32_t pmeens:1;
 630		uint32_t reserved_2_7:6;
 631		uint32_t ps:2;
 632	} s;
 633	struct cvmx_pci_cfg59_s cn30xx;
 634	struct cvmx_pci_cfg59_s cn31xx;
 635	struct cvmx_pci_cfg59_s cn38xx;
 636	struct cvmx_pci_cfg59_s cn38xxp2;
 637	struct cvmx_pci_cfg59_s cn50xx;
 638	struct cvmx_pci_cfg59_s cn58xx;
 639	struct cvmx_pci_cfg59_s cn58xxp1;
 640};
 641
 642union cvmx_pci_cfg60 {
 643	uint32_t u32;
 644	struct cvmx_pci_cfg60_s {
 645		uint32_t reserved_24_31:8;
 646		uint32_t m64:1;
 647		uint32_t mme:3;
 648		uint32_t mmc:3;
 649		uint32_t msien:1;
 650		uint32_t ncp:8;
 651		uint32_t msicid:8;
 652	} s;
 653	struct cvmx_pci_cfg60_s cn30xx;
 654	struct cvmx_pci_cfg60_s cn31xx;
 655	struct cvmx_pci_cfg60_s cn38xx;
 656	struct cvmx_pci_cfg60_s cn38xxp2;
 657	struct cvmx_pci_cfg60_s cn50xx;
 658	struct cvmx_pci_cfg60_s cn58xx;
 659	struct cvmx_pci_cfg60_s cn58xxp1;
 660};
 661
 662union cvmx_pci_cfg61 {
 663	uint32_t u32;
 664	struct cvmx_pci_cfg61_s {
 665		uint32_t msi31t2:30;
 666		uint32_t reserved_0_1:2;
 667	} s;
 668	struct cvmx_pci_cfg61_s cn30xx;
 669	struct cvmx_pci_cfg61_s cn31xx;
 670	struct cvmx_pci_cfg61_s cn38xx;
 671	struct cvmx_pci_cfg61_s cn38xxp2;
 672	struct cvmx_pci_cfg61_s cn50xx;
 673	struct cvmx_pci_cfg61_s cn58xx;
 674	struct cvmx_pci_cfg61_s cn58xxp1;
 675};
 676
 677union cvmx_pci_cfg62 {
 678	uint32_t u32;
 679	struct cvmx_pci_cfg62_s {
 680		uint32_t msi:32;
 681	} s;
 682	struct cvmx_pci_cfg62_s cn30xx;
 683	struct cvmx_pci_cfg62_s cn31xx;
 684	struct cvmx_pci_cfg62_s cn38xx;
 685	struct cvmx_pci_cfg62_s cn38xxp2;
 686	struct cvmx_pci_cfg62_s cn50xx;
 687	struct cvmx_pci_cfg62_s cn58xx;
 688	struct cvmx_pci_cfg62_s cn58xxp1;
 689};
 690
 691union cvmx_pci_cfg63 {
 692	uint32_t u32;
 693	struct cvmx_pci_cfg63_s {
 694		uint32_t reserved_16_31:16;
 695		uint32_t msimd:16;
 696	} s;
 697	struct cvmx_pci_cfg63_s cn30xx;
 698	struct cvmx_pci_cfg63_s cn31xx;
 699	struct cvmx_pci_cfg63_s cn38xx;
 700	struct cvmx_pci_cfg63_s cn38xxp2;
 701	struct cvmx_pci_cfg63_s cn50xx;
 702	struct cvmx_pci_cfg63_s cn58xx;
 703	struct cvmx_pci_cfg63_s cn58xxp1;
 704};
 705
 706union cvmx_pci_cnt_reg {
 707	uint64_t u64;
 708	struct cvmx_pci_cnt_reg_s {
 709		uint64_t reserved_38_63:26;
 710		uint64_t hm_pcix:1;
 711		uint64_t hm_speed:2;
 712		uint64_t ap_pcix:1;
 713		uint64_t ap_speed:2;
 714		uint64_t pcicnt:32;
 715	} s;
 716	struct cvmx_pci_cnt_reg_s cn50xx;
 717	struct cvmx_pci_cnt_reg_s cn58xx;
 718	struct cvmx_pci_cnt_reg_s cn58xxp1;
 719};
 720
 721union cvmx_pci_ctl_status_2 {
 722	uint32_t u32;
 723	struct cvmx_pci_ctl_status_2_s {
 724		uint32_t reserved_29_31:3;
 725		uint32_t bb1_hole:3;
 726		uint32_t bb1_siz:1;
 727		uint32_t bb_ca:1;
 728		uint32_t bb_es:2;
 729		uint32_t bb1:1;
 730		uint32_t bb0:1;
 731		uint32_t erst_n:1;
 732		uint32_t bar2pres:1;
 733		uint32_t scmtyp:1;
 734		uint32_t scm:1;
 735		uint32_t en_wfilt:1;
 736		uint32_t reserved_14_14:1;
 737		uint32_t ap_pcix:1;
 738		uint32_t ap_64ad:1;
 739		uint32_t b12_bist:1;
 740		uint32_t pmo_amod:1;
 741		uint32_t pmo_fpc:3;
 742		uint32_t tsr_hwm:3;
 743		uint32_t bar2_enb:1;
 744		uint32_t bar2_esx:2;
 745		uint32_t bar2_cax:1;
 746	} s;
 747	struct cvmx_pci_ctl_status_2_s cn30xx;
 748	struct cvmx_pci_ctl_status_2_cn31xx {
 749		uint32_t reserved_20_31:12;
 750		uint32_t erst_n:1;
 751		uint32_t bar2pres:1;
 752		uint32_t scmtyp:1;
 753		uint32_t scm:1;
 754		uint32_t en_wfilt:1;
 755		uint32_t reserved_14_14:1;
 756		uint32_t ap_pcix:1;
 757		uint32_t ap_64ad:1;
 758		uint32_t b12_bist:1;
 759		uint32_t pmo_amod:1;
 760		uint32_t pmo_fpc:3;
 761		uint32_t tsr_hwm:3;
 762		uint32_t bar2_enb:1;
 763		uint32_t bar2_esx:2;
 764		uint32_t bar2_cax:1;
 765	} cn31xx;
 766	struct cvmx_pci_ctl_status_2_s cn38xx;
 767	struct cvmx_pci_ctl_status_2_cn31xx cn38xxp2;
 768	struct cvmx_pci_ctl_status_2_s cn50xx;
 769	struct cvmx_pci_ctl_status_2_s cn58xx;
 770	struct cvmx_pci_ctl_status_2_s cn58xxp1;
 771};
 772
 773union cvmx_pci_dbellx {
 774	uint32_t u32;
 775	struct cvmx_pci_dbellx_s {
 776		uint32_t reserved_16_31:16;
 777		uint32_t inc_val:16;
 778	} s;
 779	struct cvmx_pci_dbellx_s cn30xx;
 780	struct cvmx_pci_dbellx_s cn31xx;
 781	struct cvmx_pci_dbellx_s cn38xx;
 782	struct cvmx_pci_dbellx_s cn38xxp2;
 783	struct cvmx_pci_dbellx_s cn50xx;
 784	struct cvmx_pci_dbellx_s cn58xx;
 785	struct cvmx_pci_dbellx_s cn58xxp1;
 786};
 787
 788union cvmx_pci_dma_cntx {
 789	uint32_t u32;
 790	struct cvmx_pci_dma_cntx_s {
 791		uint32_t dma_cnt:32;
 792	} s;
 793	struct cvmx_pci_dma_cntx_s cn30xx;
 794	struct cvmx_pci_dma_cntx_s cn31xx;
 795	struct cvmx_pci_dma_cntx_s cn38xx;
 796	struct cvmx_pci_dma_cntx_s cn38xxp2;
 797	struct cvmx_pci_dma_cntx_s cn50xx;
 798	struct cvmx_pci_dma_cntx_s cn58xx;
 799	struct cvmx_pci_dma_cntx_s cn58xxp1;
 800};
 801
 802union cvmx_pci_dma_int_levx {
 803	uint32_t u32;
 804	struct cvmx_pci_dma_int_levx_s {
 805		uint32_t pkt_cnt:32;
 806	} s;
 807	struct cvmx_pci_dma_int_levx_s cn30xx;
 808	struct cvmx_pci_dma_int_levx_s cn31xx;
 809	struct cvmx_pci_dma_int_levx_s cn38xx;
 810	struct cvmx_pci_dma_int_levx_s cn38xxp2;
 811	struct cvmx_pci_dma_int_levx_s cn50xx;
 812	struct cvmx_pci_dma_int_levx_s cn58xx;
 813	struct cvmx_pci_dma_int_levx_s cn58xxp1;
 814};
 815
 816union cvmx_pci_dma_timex {
 817	uint32_t u32;
 818	struct cvmx_pci_dma_timex_s {
 819		uint32_t dma_time:32;
 820	} s;
 821	struct cvmx_pci_dma_timex_s cn30xx;
 822	struct cvmx_pci_dma_timex_s cn31xx;
 823	struct cvmx_pci_dma_timex_s cn38xx;
 824	struct cvmx_pci_dma_timex_s cn38xxp2;
 825	struct cvmx_pci_dma_timex_s cn50xx;
 826	struct cvmx_pci_dma_timex_s cn58xx;
 827	struct cvmx_pci_dma_timex_s cn58xxp1;
 828};
 829
 830union cvmx_pci_instr_countx {
 831	uint32_t u32;
 832	struct cvmx_pci_instr_countx_s {
 833		uint32_t icnt:32;
 834	} s;
 835	struct cvmx_pci_instr_countx_s cn30xx;
 836	struct cvmx_pci_instr_countx_s cn31xx;
 837	struct cvmx_pci_instr_countx_s cn38xx;
 838	struct cvmx_pci_instr_countx_s cn38xxp2;
 839	struct cvmx_pci_instr_countx_s cn50xx;
 840	struct cvmx_pci_instr_countx_s cn58xx;
 841	struct cvmx_pci_instr_countx_s cn58xxp1;
 842};
 843
 844union cvmx_pci_int_enb {
 845	uint64_t u64;
 846	struct cvmx_pci_int_enb_s {
 847		uint64_t reserved_34_63:30;
 848		uint64_t ill_rd:1;
 849		uint64_t ill_wr:1;
 850		uint64_t win_wr:1;
 851		uint64_t dma1_fi:1;
 852		uint64_t dma0_fi:1;
 853		uint64_t idtime1:1;
 854		uint64_t idtime0:1;
 855		uint64_t idcnt1:1;
 856		uint64_t idcnt0:1;
 857		uint64_t iptime3:1;
 858		uint64_t iptime2:1;
 859		uint64_t iptime1:1;
 860		uint64_t iptime0:1;
 861		uint64_t ipcnt3:1;
 862		uint64_t ipcnt2:1;
 863		uint64_t ipcnt1:1;
 864		uint64_t ipcnt0:1;
 865		uint64_t irsl_int:1;
 866		uint64_t ill_rrd:1;
 867		uint64_t ill_rwr:1;
 868		uint64_t idperr:1;
 869		uint64_t iaperr:1;
 870		uint64_t iserr:1;
 871		uint64_t itsr_abt:1;
 872		uint64_t imsc_msg:1;
 873		uint64_t imsi_mabt:1;
 874		uint64_t imsi_tabt:1;
 875		uint64_t imsi_per:1;
 876		uint64_t imr_tto:1;
 877		uint64_t imr_abt:1;
 878		uint64_t itr_abt:1;
 879		uint64_t imr_wtto:1;
 880		uint64_t imr_wabt:1;
 881		uint64_t itr_wabt:1;
 882	} s;
 883	struct cvmx_pci_int_enb_cn30xx {
 884		uint64_t reserved_34_63:30;
 885		uint64_t ill_rd:1;
 886		uint64_t ill_wr:1;
 887		uint64_t win_wr:1;
 888		uint64_t dma1_fi:1;
 889		uint64_t dma0_fi:1;
 890		uint64_t idtime1:1;
 891		uint64_t idtime0:1;
 892		uint64_t idcnt1:1;
 893		uint64_t idcnt0:1;
 894		uint64_t reserved_22_24:3;
 895		uint64_t iptime0:1;
 896		uint64_t reserved_18_20:3;
 897		uint64_t ipcnt0:1;
 898		uint64_t irsl_int:1;
 899		uint64_t ill_rrd:1;
 900		uint64_t ill_rwr:1;
 901		uint64_t idperr:1;
 902		uint64_t iaperr:1;
 903		uint64_t iserr:1;
 904		uint64_t itsr_abt:1;
 905		uint64_t imsc_msg:1;
 906		uint64_t imsi_mabt:1;
 907		uint64_t imsi_tabt:1;
 908		uint64_t imsi_per:1;
 909		uint64_t imr_tto:1;
 910		uint64_t imr_abt:1;
 911		uint64_t itr_abt:1;
 912		uint64_t imr_wtto:1;
 913		uint64_t imr_wabt:1;
 914		uint64_t itr_wabt:1;
 915	} cn30xx;
 916	struct cvmx_pci_int_enb_cn31xx {
 917		uint64_t reserved_34_63:30;
 918		uint64_t ill_rd:1;
 919		uint64_t ill_wr:1;
 920		uint64_t win_wr:1;
 921		uint64_t dma1_fi:1;
 922		uint64_t dma0_fi:1;
 923		uint64_t idtime1:1;
 924		uint64_t idtime0:1;
 925		uint64_t idcnt1:1;
 926		uint64_t idcnt0:1;
 927		uint64_t reserved_23_24:2;
 928		uint64_t iptime1:1;
 929		uint64_t iptime0:1;
 930		uint64_t reserved_19_20:2;
 931		uint64_t ipcnt1:1;
 932		uint64_t ipcnt0:1;
 933		uint64_t irsl_int:1;
 934		uint64_t ill_rrd:1;
 935		uint64_t ill_rwr:1;
 936		uint64_t idperr:1;
 937		uint64_t iaperr:1;
 938		uint64_t iserr:1;
 939		uint64_t itsr_abt:1;
 940		uint64_t imsc_msg:1;
 941		uint64_t imsi_mabt:1;
 942		uint64_t imsi_tabt:1;
 943		uint64_t imsi_per:1;
 944		uint64_t imr_tto:1;
 945		uint64_t imr_abt:1;
 946		uint64_t itr_abt:1;
 947		uint64_t imr_wtto:1;
 948		uint64_t imr_wabt:1;
 949		uint64_t itr_wabt:1;
 950	} cn31xx;
 951	struct cvmx_pci_int_enb_s cn38xx;
 952	struct cvmx_pci_int_enb_s cn38xxp2;
 953	struct cvmx_pci_int_enb_cn31xx cn50xx;
 954	struct cvmx_pci_int_enb_s cn58xx;
 955	struct cvmx_pci_int_enb_s cn58xxp1;
 956};
 957
 958union cvmx_pci_int_enb2 {
 959	uint64_t u64;
 960	struct cvmx_pci_int_enb2_s {
 961		uint64_t reserved_34_63:30;
 962		uint64_t ill_rd:1;
 963		uint64_t ill_wr:1;
 964		uint64_t win_wr:1;
 965		uint64_t dma1_fi:1;
 966		uint64_t dma0_fi:1;
 967		uint64_t rdtime1:1;
 968		uint64_t rdtime0:1;
 969		uint64_t rdcnt1:1;
 970		uint64_t rdcnt0:1;
 971		uint64_t rptime3:1;
 972		uint64_t rptime2:1;
 973		uint64_t rptime1:1;
 974		uint64_t rptime0:1;
 975		uint64_t rpcnt3:1;
 976		uint64_t rpcnt2:1;
 977		uint64_t rpcnt1:1;
 978		uint64_t rpcnt0:1;
 979		uint64_t rrsl_int:1;
 980		uint64_t ill_rrd:1;
 981		uint64_t ill_rwr:1;
 982		uint64_t rdperr:1;
 983		uint64_t raperr:1;
 984		uint64_t rserr:1;
 985		uint64_t rtsr_abt:1;
 986		uint64_t rmsc_msg:1;
 987		uint64_t rmsi_mabt:1;
 988		uint64_t rmsi_tabt:1;
 989		uint64_t rmsi_per:1;
 990		uint64_t rmr_tto:1;
 991		uint64_t rmr_abt:1;
 992		uint64_t rtr_abt:1;
 993		uint64_t rmr_wtto:1;
 994		uint64_t rmr_wabt:1;
 995		uint64_t rtr_wabt:1;
 996	} s;
 997	struct cvmx_pci_int_enb2_cn30xx {
 998		uint64_t reserved_34_63:30;
 999		uint64_t ill_rd:1;
1000		uint64_t ill_wr:1;
1001		uint64_t win_wr:1;
1002		uint64_t dma1_fi:1;
1003		uint64_t dma0_fi:1;
1004		uint64_t rdtime1:1;
1005		uint64_t rdtime0:1;
1006		uint64_t rdcnt1:1;
1007		uint64_t rdcnt0:1;
1008		uint64_t reserved_22_24:3;
1009		uint64_t rptime0:1;
1010		uint64_t reserved_18_20:3;
1011		uint64_t rpcnt0:1;
1012		uint64_t rrsl_int:1;
1013		uint64_t ill_rrd:1;
1014		uint64_t ill_rwr:1;
1015		uint64_t rdperr:1;
1016		uint64_t raperr:1;
1017		uint64_t rserr:1;
1018		uint64_t rtsr_abt:1;
1019		uint64_t rmsc_msg:1;
1020		uint64_t rmsi_mabt:1;
1021		uint64_t rmsi_tabt:1;
1022		uint64_t rmsi_per:1;
1023		uint64_t rmr_tto:1;
1024		uint64_t rmr_abt:1;
1025		uint64_t rtr_abt:1;
1026		uint64_t rmr_wtto:1;
1027		uint64_t rmr_wabt:1;
1028		uint64_t rtr_wabt:1;
1029	} cn30xx;
1030	struct cvmx_pci_int_enb2_cn31xx {
1031		uint64_t reserved_34_63:30;
1032		uint64_t ill_rd:1;
1033		uint64_t ill_wr:1;
1034		uint64_t win_wr:1;
1035		uint64_t dma1_fi:1;
1036		uint64_t dma0_fi:1;
1037		uint64_t rdtime1:1;
1038		uint64_t rdtime0:1;
1039		uint64_t rdcnt1:1;
1040		uint64_t rdcnt0:1;
1041		uint64_t reserved_23_24:2;
1042		uint64_t rptime1:1;
1043		uint64_t rptime0:1;
1044		uint64_t reserved_19_20:2;
1045		uint64_t rpcnt1:1;
1046		uint64_t rpcnt0:1;
1047		uint64_t rrsl_int:1;
1048		uint64_t ill_rrd:1;
1049		uint64_t ill_rwr:1;
1050		uint64_t rdperr:1;
1051		uint64_t raperr:1;
1052		uint64_t rserr:1;
1053		uint64_t rtsr_abt:1;
1054		uint64_t rmsc_msg:1;
1055		uint64_t rmsi_mabt:1;
1056		uint64_t rmsi_tabt:1;
1057		uint64_t rmsi_per:1;
1058		uint64_t rmr_tto:1;
1059		uint64_t rmr_abt:1;
1060		uint64_t rtr_abt:1;
1061		uint64_t rmr_wtto:1;
1062		uint64_t rmr_wabt:1;
1063		uint64_t rtr_wabt:1;
1064	} cn31xx;
1065	struct cvmx_pci_int_enb2_s cn38xx;
1066	struct cvmx_pci_int_enb2_s cn38xxp2;
1067	struct cvmx_pci_int_enb2_cn31xx cn50xx;
1068	struct cvmx_pci_int_enb2_s cn58xx;
1069	struct cvmx_pci_int_enb2_s cn58xxp1;
1070};
1071
1072union cvmx_pci_int_sum {
1073	uint64_t u64;
1074	struct cvmx_pci_int_sum_s {
1075		uint64_t reserved_34_63:30;
1076		uint64_t ill_rd:1;
1077		uint64_t ill_wr:1;
1078		uint64_t win_wr:1;
1079		uint64_t dma1_fi:1;
1080		uint64_t dma0_fi:1;
1081		uint64_t dtime1:1;
1082		uint64_t dtime0:1;
1083		uint64_t dcnt1:1;
1084		uint64_t dcnt0:1;
1085		uint64_t ptime3:1;
1086		uint64_t ptime2:1;
1087		uint64_t ptime1:1;
1088		uint64_t ptime0:1;
1089		uint64_t pcnt3:1;
1090		uint64_t pcnt2:1;
1091		uint64_t pcnt1:1;
1092		uint64_t pcnt0:1;
1093		uint64_t rsl_int:1;
1094		uint64_t ill_rrd:1;
1095		uint64_t ill_rwr:1;
1096		uint64_t dperr:1;
1097		uint64_t aperr:1;
1098		uint64_t serr:1;
1099		uint64_t tsr_abt:1;
1100		uint64_t msc_msg:1;
1101		uint64_t msi_mabt:1;
1102		uint64_t msi_tabt:1;
1103		uint64_t msi_per:1;
1104		uint64_t mr_tto:1;
1105		uint64_t mr_abt:1;
1106		uint64_t tr_abt:1;
1107		uint64_t mr_wtto:1;
1108		uint64_t mr_wabt:1;
1109		uint64_t tr_wabt:1;
1110	} s;
1111	struct cvmx_pci_int_sum_cn30xx {
1112		uint64_t reserved_34_63:30;
1113		uint64_t ill_rd:1;
1114		uint64_t ill_wr:1;
1115		uint64_t win_wr:1;
1116		uint64_t dma1_fi:1;
1117		uint64_t dma0_fi:1;
1118		uint64_t dtime1:1;
1119		uint64_t dtime0:1;
1120		uint64_t dcnt1:1;
1121		uint64_t dcnt0:1;
1122		uint64_t reserved_22_24:3;
1123		uint64_t ptime0:1;
1124		uint64_t reserved_18_20:3;
1125		uint64_t pcnt0:1;
1126		uint64_t rsl_int:1;
1127		uint64_t ill_rrd:1;
1128		uint64_t ill_rwr:1;
1129		uint64_t dperr:1;
1130		uint64_t aperr:1;
1131		uint64_t serr:1;
1132		uint64_t tsr_abt:1;
1133		uint64_t msc_msg:1;
1134		uint64_t msi_mabt:1;
1135		uint64_t msi_tabt:1;
1136		uint64_t msi_per:1;
1137		uint64_t mr_tto:1;
1138		uint64_t mr_abt:1;
1139		uint64_t tr_abt:1;
1140		uint64_t mr_wtto:1;
1141		uint64_t mr_wabt:1;
1142		uint64_t tr_wabt:1;
1143	} cn30xx;
1144	struct cvmx_pci_int_sum_cn31xx {
1145		uint64_t reserved_34_63:30;
1146		uint64_t ill_rd:1;
1147		uint64_t ill_wr:1;
1148		uint64_t win_wr:1;
1149		uint64_t dma1_fi:1;
1150		uint64_t dma0_fi:1;
1151		uint64_t dtime1:1;
1152		uint64_t dtime0:1;
1153		uint64_t dcnt1:1;
1154		uint64_t dcnt0:1;
1155		uint64_t reserved_23_24:2;
1156		uint64_t ptime1:1;
1157		uint64_t ptime0:1;
1158		uint64_t reserved_19_20:2;
1159		uint64_t pcnt1:1;
1160		uint64_t pcnt0:1;
1161		uint64_t rsl_int:1;
1162		uint64_t ill_rrd:1;
1163		uint64_t ill_rwr:1;
1164		uint64_t dperr:1;
1165		uint64_t aperr:1;
1166		uint64_t serr:1;
1167		uint64_t tsr_abt:1;
1168		uint64_t msc_msg:1;
1169		uint64_t msi_mabt:1;
1170		uint64_t msi_tabt:1;
1171		uint64_t msi_per:1;
1172		uint64_t mr_tto:1;
1173		uint64_t mr_abt:1;
1174		uint64_t tr_abt:1;
1175		uint64_t mr_wtto:1;
1176		uint64_t mr_wabt:1;
1177		uint64_t tr_wabt:1;
1178	} cn31xx;
1179	struct cvmx_pci_int_sum_s cn38xx;
1180	struct cvmx_pci_int_sum_s cn38xxp2;
1181	struct cvmx_pci_int_sum_cn31xx cn50xx;
1182	struct cvmx_pci_int_sum_s cn58xx;
1183	struct cvmx_pci_int_sum_s cn58xxp1;
1184};
1185
1186union cvmx_pci_int_sum2 {
1187	uint64_t u64;
1188	struct cvmx_pci_int_sum2_s {
1189		uint64_t reserved_34_63:30;
1190		uint64_t ill_rd:1;
1191		uint64_t ill_wr:1;
1192		uint64_t win_wr:1;
1193		uint64_t dma1_fi:1;
1194		uint64_t dma0_fi:1;
1195		uint64_t dtime1:1;
1196		uint64_t dtime0:1;
1197		uint64_t dcnt1:1;
1198		uint64_t dcnt0:1;
1199		uint64_t ptime3:1;
1200		uint64_t ptime2:1;
1201		uint64_t ptime1:1;
1202		uint64_t ptime0:1;
1203		uint64_t pcnt3:1;
1204		uint64_t pcnt2:1;
1205		uint64_t pcnt1:1;
1206		uint64_t pcnt0:1;
1207		uint64_t rsl_int:1;
1208		uint64_t ill_rrd:1;
1209		uint64_t ill_rwr:1;
1210		uint64_t dperr:1;
1211		uint64_t aperr:1;
1212		uint64_t serr:1;
1213		uint64_t tsr_abt:1;
1214		uint64_t msc_msg:1;
1215		uint64_t msi_mabt:1;
1216		uint64_t msi_tabt:1;
1217		uint64_t msi_per:1;
1218		uint64_t mr_tto:1;
1219		uint64_t mr_abt:1;
1220		uint64_t tr_abt:1;
1221		uint64_t mr_wtto:1;
1222		uint64_t mr_wabt:1;
1223		uint64_t tr_wabt:1;
1224	} s;
1225	struct cvmx_pci_int_sum2_cn30xx {
1226		uint64_t reserved_34_63:30;
1227		uint64_t ill_rd:1;
1228		uint64_t ill_wr:1;
1229		uint64_t win_wr:1;
1230		uint64_t dma1_fi:1;
1231		uint64_t dma0_fi:1;
1232		uint64_t dtime1:1;
1233		uint64_t dtime0:1;
1234		uint64_t dcnt1:1;
1235		uint64_t dcnt0:1;
1236		uint64_t reserved_22_24:3;
1237		uint64_t ptime0:1;
1238		uint64_t reserved_18_20:3;
1239		uint64_t pcnt0:1;
1240		uint64_t rsl_int:1;
1241		uint64_t ill_rrd:1;
1242		uint64_t ill_rwr:1;
1243		uint64_t dperr:1;
1244		uint64_t aperr:1;
1245		uint64_t serr:1;
1246		uint64_t tsr_abt:1;
1247		uint64_t msc_msg:1;
1248		uint64_t msi_mabt:1;
1249		uint64_t msi_tabt:1;
1250		uint64_t msi_per:1;
1251		uint64_t mr_tto:1;
1252		uint64_t mr_abt:1;
1253		uint64_t tr_abt:1;
1254		uint64_t mr_wtto:1;
1255		uint64_t mr_wabt:1;
1256		uint64_t tr_wabt:1;
1257	} cn30xx;
1258	struct cvmx_pci_int_sum2_cn31xx {
1259		uint64_t reserved_34_63:30;
1260		uint64_t ill_rd:1;
1261		uint64_t ill_wr:1;
1262		uint64_t win_wr:1;
1263		uint64_t dma1_fi:1;
1264		uint64_t dma0_fi:1;
1265		uint64_t dtime1:1;
1266		uint64_t dtime0:1;
1267		uint64_t dcnt1:1;
1268		uint64_t dcnt0:1;
1269		uint64_t reserved_23_24:2;
1270		uint64_t ptime1:1;
1271		uint64_t ptime0:1;
1272		uint64_t reserved_19_20:2;
1273		uint64_t pcnt1:1;
1274		uint64_t pcnt0:1;
1275		uint64_t rsl_int:1;
1276		uint64_t ill_rrd:1;
1277		uint64_t ill_rwr:1;
1278		uint64_t dperr:1;
1279		uint64_t aperr:1;
1280		uint64_t serr:1;
1281		uint64_t tsr_abt:1;
1282		uint64_t msc_msg:1;
1283		uint64_t msi_mabt:1;
1284		uint64_t msi_tabt:1;
1285		uint64_t msi_per:1;
1286		uint64_t mr_tto:1;
1287		uint64_t mr_abt:1;
1288		uint64_t tr_abt:1;
1289		uint64_t mr_wtto:1;
1290		uint64_t mr_wabt:1;
1291		uint64_t tr_wabt:1;
1292	} cn31xx;
1293	struct cvmx_pci_int_sum2_s cn38xx;
1294	struct cvmx_pci_int_sum2_s cn38xxp2;
1295	struct cvmx_pci_int_sum2_cn31xx cn50xx;
1296	struct cvmx_pci_int_sum2_s cn58xx;
1297	struct cvmx_pci_int_sum2_s cn58xxp1;
1298};
1299
1300union cvmx_pci_msi_rcv {
1301	uint32_t u32;
1302	struct cvmx_pci_msi_rcv_s {
1303		uint32_t reserved_6_31:26;
1304		uint32_t intr:6;
1305	} s;
1306	struct cvmx_pci_msi_rcv_s cn30xx;
1307	struct cvmx_pci_msi_rcv_s cn31xx;
1308	struct cvmx_pci_msi_rcv_s cn38xx;
1309	struct cvmx_pci_msi_rcv_s cn38xxp2;
1310	struct cvmx_pci_msi_rcv_s cn50xx;
1311	struct cvmx_pci_msi_rcv_s cn58xx;
1312	struct cvmx_pci_msi_rcv_s cn58xxp1;
1313};
1314
1315union cvmx_pci_pkt_creditsx {
1316	uint32_t u32;
1317	struct cvmx_pci_pkt_creditsx_s {
1318		uint32_t pkt_cnt:16;
1319		uint32_t ptr_cnt:16;
1320	} s;
1321	struct cvmx_pci_pkt_creditsx_s cn30xx;
1322	struct cvmx_pci_pkt_creditsx_s cn31xx;
1323	struct cvmx_pci_pkt_creditsx_s cn38xx;
1324	struct cvmx_pci_pkt_creditsx_s cn38xxp2;
1325	struct cvmx_pci_pkt_creditsx_s cn50xx;
1326	struct cvmx_pci_pkt_creditsx_s cn58xx;
1327	struct cvmx_pci_pkt_creditsx_s cn58xxp1;
1328};
1329
1330union cvmx_pci_pkts_sentx {
1331	uint32_t u32;
1332	struct cvmx_pci_pkts_sentx_s {
1333		uint32_t pkt_cnt:32;
1334	} s;
1335	struct cvmx_pci_pkts_sentx_s cn30xx;
1336	struct cvmx_pci_pkts_sentx_s cn31xx;
1337	struct cvmx_pci_pkts_sentx_s cn38xx;
1338	struct cvmx_pci_pkts_sentx_s cn38xxp2;
1339	struct cvmx_pci_pkts_sentx_s cn50xx;
1340	struct cvmx_pci_pkts_sentx_s cn58xx;
1341	struct cvmx_pci_pkts_sentx_s cn58xxp1;
1342};
1343
1344union cvmx_pci_pkts_sent_int_levx {
1345	uint32_t u32;
1346	struct cvmx_pci_pkts_sent_int_levx_s {
1347		uint32_t pkt_cnt:32;
1348	} s;
1349	struct cvmx_pci_pkts_sent_int_levx_s cn30xx;
1350	struct cvmx_pci_pkts_sent_int_levx_s cn31xx;
1351	struct cvmx_pci_pkts_sent_int_levx_s cn38xx;
1352	struct cvmx_pci_pkts_sent_int_levx_s cn38xxp2;
1353	struct cvmx_pci_pkts_sent_int_levx_s cn50xx;
1354	struct cvmx_pci_pkts_sent_int_levx_s cn58xx;
1355	struct cvmx_pci_pkts_sent_int_levx_s cn58xxp1;
1356};
1357
1358union cvmx_pci_pkts_sent_timex {
1359	uint32_t u32;
1360	struct cvmx_pci_pkts_sent_timex_s {
1361		uint32_t pkt_time:32;
1362	} s;
1363	struct cvmx_pci_pkts_sent_timex_s cn30xx;
1364	struct cvmx_pci_pkts_sent_timex_s cn31xx;
1365	struct cvmx_pci_pkts_sent_timex_s cn38xx;
1366	struct cvmx_pci_pkts_sent_timex_s cn38xxp2;
1367	struct cvmx_pci_pkts_sent_timex_s cn50xx;
1368	struct cvmx_pci_pkts_sent_timex_s cn58xx;
1369	struct cvmx_pci_pkts_sent_timex_s cn58xxp1;
1370};
1371
1372union cvmx_pci_read_cmd_6 {
1373	uint32_t u32;
1374	struct cvmx_pci_read_cmd_6_s {
1375		uint32_t reserved_9_31:23;
1376		uint32_t min_data:6;
1377		uint32_t prefetch:3;
1378	} s;
1379	struct cvmx_pci_read_cmd_6_s cn30xx;
1380	struct cvmx_pci_read_cmd_6_s cn31xx;
1381	struct cvmx_pci_read_cmd_6_s cn38xx;
1382	struct cvmx_pci_read_cmd_6_s cn38xxp2;
1383	struct cvmx_pci_read_cmd_6_s cn50xx;
1384	struct cvmx_pci_read_cmd_6_s cn58xx;
1385	struct cvmx_pci_read_cmd_6_s cn58xxp1;
1386};
1387
1388union cvmx_pci_read_cmd_c {
1389	uint32_t u32;
1390	struct cvmx_pci_read_cmd_c_s {
1391		uint32_t reserved_9_31:23;
1392		uint32_t min_data:6;
1393		uint32_t prefetch:3;
1394	} s;
1395	struct cvmx_pci_read_cmd_c_s cn30xx;
1396	struct cvmx_pci_read_cmd_c_s cn31xx;
1397	struct cvmx_pci_read_cmd_c_s cn38xx;
1398	struct cvmx_pci_read_cmd_c_s cn38xxp2;
1399	struct cvmx_pci_read_cmd_c_s cn50xx;
1400	struct cvmx_pci_read_cmd_c_s cn58xx;
1401	struct cvmx_pci_read_cmd_c_s cn58xxp1;
1402};
1403
1404union cvmx_pci_read_cmd_e {
1405	uint32_t u32;
1406	struct cvmx_pci_read_cmd_e_s {
1407		uint32_t reserved_9_31:23;
1408		uint32_t min_data:6;
1409		uint32_t prefetch:3;
1410	} s;
1411	struct cvmx_pci_read_cmd_e_s cn30xx;
1412	struct cvmx_pci_read_cmd_e_s cn31xx;
1413	struct cvmx_pci_read_cmd_e_s cn38xx;
1414	struct cvmx_pci_read_cmd_e_s cn38xxp2;
1415	struct cvmx_pci_read_cmd_e_s cn50xx;
1416	struct cvmx_pci_read_cmd_e_s cn58xx;
1417	struct cvmx_pci_read_cmd_e_s cn58xxp1;
1418};
1419
1420union cvmx_pci_read_timeout {
1421	uint64_t u64;
1422	struct cvmx_pci_read_timeout_s {
1423		uint64_t reserved_32_63:32;
1424		uint64_t enb:1;
1425		uint64_t cnt:31;
1426	} s;
1427	struct cvmx_pci_read_timeout_s cn30xx;
1428	struct cvmx_pci_read_timeout_s cn31xx;
1429	struct cvmx_pci_read_timeout_s cn38xx;
1430	struct cvmx_pci_read_timeout_s cn38xxp2;
1431	struct cvmx_pci_read_timeout_s cn50xx;
1432	struct cvmx_pci_read_timeout_s cn58xx;
1433	struct cvmx_pci_read_timeout_s cn58xxp1;
1434};
1435
1436union cvmx_pci_scm_reg {
1437	uint64_t u64;
1438	struct cvmx_pci_scm_reg_s {
1439		uint64_t reserved_32_63:32;
1440		uint64_t scm:32;
1441	} s;
1442	struct cvmx_pci_scm_reg_s cn30xx;
1443	struct cvmx_pci_scm_reg_s cn31xx;
1444	struct cvmx_pci_scm_reg_s cn38xx;
1445	struct cvmx_pci_scm_reg_s cn38xxp2;
1446	struct cvmx_pci_scm_reg_s cn50xx;
1447	struct cvmx_pci_scm_reg_s cn58xx;
1448	struct cvmx_pci_scm_reg_s cn58xxp1;
1449};
1450
1451union cvmx_pci_tsr_reg {
1452	uint64_t u64;
1453	struct cvmx_pci_tsr_reg_s {
1454		uint64_t reserved_36_63:28;
1455		uint64_t tsr:36;
1456	} s;
1457	struct cvmx_pci_tsr_reg_s cn30xx;
1458	struct cvmx_pci_tsr_reg_s cn31xx;
1459	struct cvmx_pci_tsr_reg_s cn38xx;
1460	struct cvmx_pci_tsr_reg_s cn38xxp2;
1461	struct cvmx_pci_tsr_reg_s cn50xx;
1462	struct cvmx_pci_tsr_reg_s cn58xx;
1463	struct cvmx_pci_tsr_reg_s cn58xxp1;
1464};
1465
1466union cvmx_pci_win_rd_addr {
1467	uint64_t u64;
1468	struct cvmx_pci_win_rd_addr_s {
1469		uint64_t reserved_49_63:15;
1470		uint64_t iobit:1;
1471		uint64_t reserved_0_47:48;
1472	} s;
1473	struct cvmx_pci_win_rd_addr_cn30xx {
1474		uint64_t reserved_49_63:15;
1475		uint64_t iobit:1;
1476		uint64_t rd_addr:46;
1477		uint64_t reserved_0_1:2;
1478	} cn30xx;
1479	struct cvmx_pci_win_rd_addr_cn30xx cn31xx;
1480	struct cvmx_pci_win_rd_addr_cn38xx {
1481		uint64_t reserved_49_63:15;
1482		uint64_t iobit:1;
1483		uint64_t rd_addr:45;
1484		uint64_t reserved_0_2:3;
1485	} cn38xx;
1486	struct cvmx_pci_win_rd_addr_cn38xx cn38xxp2;
1487	struct cvmx_pci_win_rd_addr_cn30xx cn50xx;
1488	struct cvmx_pci_win_rd_addr_cn38xx cn58xx;
1489	struct cvmx_pci_win_rd_addr_cn38xx cn58xxp1;
1490};
1491
1492union cvmx_pci_win_rd_data {
1493	uint64_t u64;
1494	struct cvmx_pci_win_rd_data_s {
1495		uint64_t rd_data:64;
1496	} s;
1497	struct cvmx_pci_win_rd_data_s cn30xx;
1498	struct cvmx_pci_win_rd_data_s cn31xx;
1499	struct cvmx_pci_win_rd_data_s cn38xx;
1500	struct cvmx_pci_win_rd_data_s cn38xxp2;
1501	struct cvmx_pci_win_rd_data_s cn50xx;
1502	struct cvmx_pci_win_rd_data_s cn58xx;
1503	struct cvmx_pci_win_rd_data_s cn58xxp1;
1504};
1505
1506union cvmx_pci_win_wr_addr {
1507	uint64_t u64;
1508	struct cvmx_pci_win_wr_addr_s {
1509		uint64_t reserved_49_63:15;
1510		uint64_t iobit:1;
1511		uint64_t wr_addr:45;
1512		uint64_t reserved_0_2:3;
1513	} s;
1514	struct cvmx_pci_win_wr_addr_s cn30xx;
1515	struct cvmx_pci_win_wr_addr_s cn31xx;
1516	struct cvmx_pci_win_wr_addr_s cn38xx;
1517	struct cvmx_pci_win_wr_addr_s cn38xxp2;
1518	struct cvmx_pci_win_wr_addr_s cn50xx;
1519	struct cvmx_pci_win_wr_addr_s cn58xx;
1520	struct cvmx_pci_win_wr_addr_s cn58xxp1;
1521};
1522
1523union cvmx_pci_win_wr_data {
1524	uint64_t u64;
1525	struct cvmx_pci_win_wr_data_s {
1526		uint64_t wr_data:64;
1527	} s;
1528	struct cvmx_pci_win_wr_data_s cn30xx;
1529	struct cvmx_pci_win_wr_data_s cn31xx;
1530	struct cvmx_pci_win_wr_data_s cn38xx;
1531	struct cvmx_pci_win_wr_data_s cn38xxp2;
1532	struct cvmx_pci_win_wr_data_s cn50xx;
1533	struct cvmx_pci_win_wr_data_s cn58xx;
1534	struct cvmx_pci_win_wr_data_s cn58xxp1;
1535};
1536
1537union cvmx_pci_win_wr_mask {
1538	uint64_t u64;
1539	struct cvmx_pci_win_wr_mask_s {
1540		uint64_t reserved_8_63:56;
1541		uint64_t wr_mask:8;
1542	} s;
1543	struct cvmx_pci_win_wr_mask_s cn30xx;
1544	struct cvmx_pci_win_wr_mask_s cn31xx;
1545	struct cvmx_pci_win_wr_mask_s cn38xx;
1546	struct cvmx_pci_win_wr_mask_s cn38xxp2;
1547	struct cvmx_pci_win_wr_mask_s cn50xx;
1548	struct cvmx_pci_win_wr_mask_s cn58xx;
1549	struct cvmx_pci_win_wr_mask_s cn58xxp1;
1550};
1551
1552#endif