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-2012 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 
117 union cvmx_pci_bar1_indexx {
118 	uint32_t u32;
119 	struct cvmx_pci_bar1_indexx_s {
120 #ifdef __BIG_ENDIAN_BITFIELD
121 		uint32_t reserved_18_31:14;
122 		uint32_t addr_idx:14;
123 		uint32_t ca:1;
124 		uint32_t end_swp:2;
125 		uint32_t addr_v:1;
126 #else
127 		uint32_t addr_v:1;
128 		uint32_t end_swp:2;
129 		uint32_t ca:1;
130 		uint32_t addr_idx:14;
131 		uint32_t reserved_18_31:14;
132 #endif
133 	} s;
134 	struct cvmx_pci_bar1_indexx_s cn30xx;
135 	struct cvmx_pci_bar1_indexx_s cn31xx;
136 	struct cvmx_pci_bar1_indexx_s cn38xx;
137 	struct cvmx_pci_bar1_indexx_s cn38xxp2;
138 	struct cvmx_pci_bar1_indexx_s cn50xx;
139 	struct cvmx_pci_bar1_indexx_s cn58xx;
140 	struct cvmx_pci_bar1_indexx_s cn58xxp1;
141 };
142 
143 union cvmx_pci_bist_reg {
144 	uint64_t u64;
145 	struct cvmx_pci_bist_reg_s {
146 #ifdef __BIG_ENDIAN_BITFIELD
147 		uint64_t reserved_10_63:54;
148 		uint64_t rsp_bs:1;
149 		uint64_t dma0_bs:1;
150 		uint64_t cmd0_bs:1;
151 		uint64_t cmd_bs:1;
152 		uint64_t csr2p_bs:1;
153 		uint64_t csrr_bs:1;
154 		uint64_t rsp2p_bs:1;
155 		uint64_t csr2n_bs:1;
156 		uint64_t dat2n_bs:1;
157 		uint64_t dbg2n_bs:1;
158 #else
159 		uint64_t dbg2n_bs:1;
160 		uint64_t dat2n_bs:1;
161 		uint64_t csr2n_bs:1;
162 		uint64_t rsp2p_bs:1;
163 		uint64_t csrr_bs:1;
164 		uint64_t csr2p_bs:1;
165 		uint64_t cmd_bs:1;
166 		uint64_t cmd0_bs:1;
167 		uint64_t dma0_bs:1;
168 		uint64_t rsp_bs:1;
169 		uint64_t reserved_10_63:54;
170 #endif
171 	} s;
172 	struct cvmx_pci_bist_reg_s cn50xx;
173 };
174 
175 union cvmx_pci_cfg00 {
176 	uint32_t u32;
177 	struct cvmx_pci_cfg00_s {
178 #ifdef __BIG_ENDIAN_BITFIELD
179 		uint32_t devid:16;
180 		uint32_t vendid:16;
181 #else
182 		uint32_t vendid:16;
183 		uint32_t devid:16;
184 #endif
185 	} s;
186 	struct cvmx_pci_cfg00_s cn30xx;
187 	struct cvmx_pci_cfg00_s cn31xx;
188 	struct cvmx_pci_cfg00_s cn38xx;
189 	struct cvmx_pci_cfg00_s cn38xxp2;
190 	struct cvmx_pci_cfg00_s cn50xx;
191 	struct cvmx_pci_cfg00_s cn58xx;
192 	struct cvmx_pci_cfg00_s cn58xxp1;
193 };
194 
195 union cvmx_pci_cfg01 {
196 	uint32_t u32;
197 	struct cvmx_pci_cfg01_s {
198 #ifdef __BIG_ENDIAN_BITFIELD
199 		uint32_t dpe:1;
200 		uint32_t sse:1;
201 		uint32_t rma:1;
202 		uint32_t rta:1;
203 		uint32_t sta:1;
204 		uint32_t devt:2;
205 		uint32_t mdpe:1;
206 		uint32_t fbb:1;
207 		uint32_t reserved_22_22:1;
208 		uint32_t m66:1;
209 		uint32_t cle:1;
210 		uint32_t i_stat:1;
211 		uint32_t reserved_11_18:8;
212 		uint32_t i_dis:1;
213 		uint32_t fbbe:1;
214 		uint32_t see:1;
215 		uint32_t ads:1;
216 		uint32_t pee:1;
217 		uint32_t vps:1;
218 		uint32_t mwice:1;
219 		uint32_t scse:1;
220 		uint32_t me:1;
221 		uint32_t msae:1;
222 		uint32_t isae:1;
223 #else
224 		uint32_t isae:1;
225 		uint32_t msae:1;
226 		uint32_t me:1;
227 		uint32_t scse:1;
228 		uint32_t mwice:1;
229 		uint32_t vps:1;
230 		uint32_t pee:1;
231 		uint32_t ads:1;
232 		uint32_t see:1;
233 		uint32_t fbbe:1;
234 		uint32_t i_dis:1;
235 		uint32_t reserved_11_18:8;
236 		uint32_t i_stat:1;
237 		uint32_t cle:1;
238 		uint32_t m66:1;
239 		uint32_t reserved_22_22:1;
240 		uint32_t fbb:1;
241 		uint32_t mdpe:1;
242 		uint32_t devt:2;
243 		uint32_t sta:1;
244 		uint32_t rta:1;
245 		uint32_t rma:1;
246 		uint32_t sse:1;
247 		uint32_t dpe:1;
248 #endif
249 	} s;
250 	struct cvmx_pci_cfg01_s cn30xx;
251 	struct cvmx_pci_cfg01_s cn31xx;
252 	struct cvmx_pci_cfg01_s cn38xx;
253 	struct cvmx_pci_cfg01_s cn38xxp2;
254 	struct cvmx_pci_cfg01_s cn50xx;
255 	struct cvmx_pci_cfg01_s cn58xx;
256 	struct cvmx_pci_cfg01_s cn58xxp1;
257 };
258 
259 union cvmx_pci_cfg02 {
260 	uint32_t u32;
261 	struct cvmx_pci_cfg02_s {
262 #ifdef __BIG_ENDIAN_BITFIELD
263 		uint32_t cc:24;
264 		uint32_t rid:8;
265 #else
266 		uint32_t rid:8;
267 		uint32_t cc:24;
268 #endif
269 	} s;
270 	struct cvmx_pci_cfg02_s cn30xx;
271 	struct cvmx_pci_cfg02_s cn31xx;
272 	struct cvmx_pci_cfg02_s cn38xx;
273 	struct cvmx_pci_cfg02_s cn38xxp2;
274 	struct cvmx_pci_cfg02_s cn50xx;
275 	struct cvmx_pci_cfg02_s cn58xx;
276 	struct cvmx_pci_cfg02_s cn58xxp1;
277 };
278 
279 union cvmx_pci_cfg03 {
280 	uint32_t u32;
281 	struct cvmx_pci_cfg03_s {
282 #ifdef __BIG_ENDIAN_BITFIELD
283 		uint32_t bcap:1;
284 		uint32_t brb:1;
285 		uint32_t reserved_28_29:2;
286 		uint32_t bcod:4;
287 		uint32_t ht:8;
288 		uint32_t lt:8;
289 		uint32_t cls:8;
290 #else
291 		uint32_t cls:8;
292 		uint32_t lt:8;
293 		uint32_t ht:8;
294 		uint32_t bcod:4;
295 		uint32_t reserved_28_29:2;
296 		uint32_t brb:1;
297 		uint32_t bcap:1;
298 #endif
299 	} s;
300 	struct cvmx_pci_cfg03_s cn30xx;
301 	struct cvmx_pci_cfg03_s cn31xx;
302 	struct cvmx_pci_cfg03_s cn38xx;
303 	struct cvmx_pci_cfg03_s cn38xxp2;
304 	struct cvmx_pci_cfg03_s cn50xx;
305 	struct cvmx_pci_cfg03_s cn58xx;
306 	struct cvmx_pci_cfg03_s cn58xxp1;
307 };
308 
309 union cvmx_pci_cfg04 {
310 	uint32_t u32;
311 	struct cvmx_pci_cfg04_s {
312 #ifdef __BIG_ENDIAN_BITFIELD
313 		uint32_t lbase:20;
314 		uint32_t lbasez:8;
315 		uint32_t pf:1;
316 		uint32_t typ:2;
317 		uint32_t mspc:1;
318 #else
319 		uint32_t mspc:1;
320 		uint32_t typ:2;
321 		uint32_t pf:1;
322 		uint32_t lbasez:8;
323 		uint32_t lbase:20;
324 #endif
325 	} s;
326 	struct cvmx_pci_cfg04_s cn30xx;
327 	struct cvmx_pci_cfg04_s cn31xx;
328 	struct cvmx_pci_cfg04_s cn38xx;
329 	struct cvmx_pci_cfg04_s cn38xxp2;
330 	struct cvmx_pci_cfg04_s cn50xx;
331 	struct cvmx_pci_cfg04_s cn58xx;
332 	struct cvmx_pci_cfg04_s cn58xxp1;
333 };
334 
335 union cvmx_pci_cfg05 {
336 	uint32_t u32;
337 	struct cvmx_pci_cfg05_s {
338 #ifdef __BIG_ENDIAN_BITFIELD
339 		uint32_t hbase:32;
340 #else
341 		uint32_t hbase:32;
342 #endif
343 	} s;
344 	struct cvmx_pci_cfg05_s cn30xx;
345 	struct cvmx_pci_cfg05_s cn31xx;
346 	struct cvmx_pci_cfg05_s cn38xx;
347 	struct cvmx_pci_cfg05_s cn38xxp2;
348 	struct cvmx_pci_cfg05_s cn50xx;
349 	struct cvmx_pci_cfg05_s cn58xx;
350 	struct cvmx_pci_cfg05_s cn58xxp1;
351 };
352 
353 union cvmx_pci_cfg06 {
354 	uint32_t u32;
355 	struct cvmx_pci_cfg06_s {
356 #ifdef __BIG_ENDIAN_BITFIELD
357 		uint32_t lbase:5;
358 		uint32_t lbasez:23;
359 		uint32_t pf:1;
360 		uint32_t typ:2;
361 		uint32_t mspc:1;
362 #else
363 		uint32_t mspc:1;
364 		uint32_t typ:2;
365 		uint32_t pf:1;
366 		uint32_t lbasez:23;
367 		uint32_t lbase:5;
368 #endif
369 	} s;
370 	struct cvmx_pci_cfg06_s cn30xx;
371 	struct cvmx_pci_cfg06_s cn31xx;
372 	struct cvmx_pci_cfg06_s cn38xx;
373 	struct cvmx_pci_cfg06_s cn38xxp2;
374 	struct cvmx_pci_cfg06_s cn50xx;
375 	struct cvmx_pci_cfg06_s cn58xx;
376 	struct cvmx_pci_cfg06_s cn58xxp1;
377 };
378 
379 union cvmx_pci_cfg07 {
380 	uint32_t u32;
381 	struct cvmx_pci_cfg07_s {
382 #ifdef __BIG_ENDIAN_BITFIELD
383 		uint32_t hbase:32;
384 #else
385 		uint32_t hbase:32;
386 #endif
387 	} s;
388 	struct cvmx_pci_cfg07_s cn30xx;
389 	struct cvmx_pci_cfg07_s cn31xx;
390 	struct cvmx_pci_cfg07_s cn38xx;
391 	struct cvmx_pci_cfg07_s cn38xxp2;
392 	struct cvmx_pci_cfg07_s cn50xx;
393 	struct cvmx_pci_cfg07_s cn58xx;
394 	struct cvmx_pci_cfg07_s cn58xxp1;
395 };
396 
397 union cvmx_pci_cfg08 {
398 	uint32_t u32;
399 	struct cvmx_pci_cfg08_s {
400 #ifdef __BIG_ENDIAN_BITFIELD
401 		uint32_t lbasez:28;
402 		uint32_t pf:1;
403 		uint32_t typ:2;
404 		uint32_t mspc:1;
405 #else
406 		uint32_t mspc:1;
407 		uint32_t typ:2;
408 		uint32_t pf:1;
409 		uint32_t lbasez:28;
410 #endif
411 	} s;
412 	struct cvmx_pci_cfg08_s cn30xx;
413 	struct cvmx_pci_cfg08_s cn31xx;
414 	struct cvmx_pci_cfg08_s cn38xx;
415 	struct cvmx_pci_cfg08_s cn38xxp2;
416 	struct cvmx_pci_cfg08_s cn50xx;
417 	struct cvmx_pci_cfg08_s cn58xx;
418 	struct cvmx_pci_cfg08_s cn58xxp1;
419 };
420 
421 union cvmx_pci_cfg09 {
422 	uint32_t u32;
423 	struct cvmx_pci_cfg09_s {
424 #ifdef __BIG_ENDIAN_BITFIELD
425 		uint32_t hbase:25;
426 		uint32_t hbasez:7;
427 #else
428 		uint32_t hbasez:7;
429 		uint32_t hbase:25;
430 #endif
431 	} s;
432 	struct cvmx_pci_cfg09_s cn30xx;
433 	struct cvmx_pci_cfg09_s cn31xx;
434 	struct cvmx_pci_cfg09_s cn38xx;
435 	struct cvmx_pci_cfg09_s cn38xxp2;
436 	struct cvmx_pci_cfg09_s cn50xx;
437 	struct cvmx_pci_cfg09_s cn58xx;
438 	struct cvmx_pci_cfg09_s cn58xxp1;
439 };
440 
441 union cvmx_pci_cfg10 {
442 	uint32_t u32;
443 	struct cvmx_pci_cfg10_s {
444 #ifdef __BIG_ENDIAN_BITFIELD
445 		uint32_t cisp:32;
446 #else
447 		uint32_t cisp:32;
448 #endif
449 	} s;
450 	struct cvmx_pci_cfg10_s cn30xx;
451 	struct cvmx_pci_cfg10_s cn31xx;
452 	struct cvmx_pci_cfg10_s cn38xx;
453 	struct cvmx_pci_cfg10_s cn38xxp2;
454 	struct cvmx_pci_cfg10_s cn50xx;
455 	struct cvmx_pci_cfg10_s cn58xx;
456 	struct cvmx_pci_cfg10_s cn58xxp1;
457 };
458 
459 union cvmx_pci_cfg11 {
460 	uint32_t u32;
461 	struct cvmx_pci_cfg11_s {
462 #ifdef __BIG_ENDIAN_BITFIELD
463 		uint32_t ssid:16;
464 		uint32_t ssvid:16;
465 #else
466 		uint32_t ssvid:16;
467 		uint32_t ssid:16;
468 #endif
469 	} s;
470 	struct cvmx_pci_cfg11_s cn30xx;
471 	struct cvmx_pci_cfg11_s cn31xx;
472 	struct cvmx_pci_cfg11_s cn38xx;
473 	struct cvmx_pci_cfg11_s cn38xxp2;
474 	struct cvmx_pci_cfg11_s cn50xx;
475 	struct cvmx_pci_cfg11_s cn58xx;
476 	struct cvmx_pci_cfg11_s cn58xxp1;
477 };
478 
479 union cvmx_pci_cfg12 {
480 	uint32_t u32;
481 	struct cvmx_pci_cfg12_s {
482 #ifdef __BIG_ENDIAN_BITFIELD
483 		uint32_t erbar:16;
484 		uint32_t erbarz:5;
485 		uint32_t reserved_1_10:10;
486 		uint32_t erbar_en:1;
487 #else
488 		uint32_t erbar_en:1;
489 		uint32_t reserved_1_10:10;
490 		uint32_t erbarz:5;
491 		uint32_t erbar:16;
492 #endif
493 	} s;
494 	struct cvmx_pci_cfg12_s cn30xx;
495 	struct cvmx_pci_cfg12_s cn31xx;
496 	struct cvmx_pci_cfg12_s cn38xx;
497 	struct cvmx_pci_cfg12_s cn38xxp2;
498 	struct cvmx_pci_cfg12_s cn50xx;
499 	struct cvmx_pci_cfg12_s cn58xx;
500 	struct cvmx_pci_cfg12_s cn58xxp1;
501 };
502 
503 union cvmx_pci_cfg13 {
504 	uint32_t u32;
505 	struct cvmx_pci_cfg13_s {
506 #ifdef __BIG_ENDIAN_BITFIELD
507 		uint32_t reserved_8_31:24;
508 		uint32_t cp:8;
509 #else
510 		uint32_t cp:8;
511 		uint32_t reserved_8_31:24;
512 #endif
513 	} s;
514 	struct cvmx_pci_cfg13_s cn30xx;
515 	struct cvmx_pci_cfg13_s cn31xx;
516 	struct cvmx_pci_cfg13_s cn38xx;
517 	struct cvmx_pci_cfg13_s cn38xxp2;
518 	struct cvmx_pci_cfg13_s cn50xx;
519 	struct cvmx_pci_cfg13_s cn58xx;
520 	struct cvmx_pci_cfg13_s cn58xxp1;
521 };
522 
523 union cvmx_pci_cfg15 {
524 	uint32_t u32;
525 	struct cvmx_pci_cfg15_s {
526 #ifdef __BIG_ENDIAN_BITFIELD
527 		uint32_t ml:8;
528 		uint32_t mg:8;
529 		uint32_t inta:8;
530 		uint32_t il:8;
531 #else
532 		uint32_t il:8;
533 		uint32_t inta:8;
534 		uint32_t mg:8;
535 		uint32_t ml:8;
536 #endif
537 	} s;
538 	struct cvmx_pci_cfg15_s cn30xx;
539 	struct cvmx_pci_cfg15_s cn31xx;
540 	struct cvmx_pci_cfg15_s cn38xx;
541 	struct cvmx_pci_cfg15_s cn38xxp2;
542 	struct cvmx_pci_cfg15_s cn50xx;
543 	struct cvmx_pci_cfg15_s cn58xx;
544 	struct cvmx_pci_cfg15_s cn58xxp1;
545 };
546 
547 union cvmx_pci_cfg16 {
548 	uint32_t u32;
549 	struct cvmx_pci_cfg16_s {
550 #ifdef __BIG_ENDIAN_BITFIELD
551 		uint32_t trdnpr:1;
552 		uint32_t trdard:1;
553 		uint32_t rdsati:1;
554 		uint32_t trdrs:1;
555 		uint32_t trtae:1;
556 		uint32_t twsei:1;
557 		uint32_t twsen:1;
558 		uint32_t twtae:1;
559 		uint32_t tmae:1;
560 		uint32_t tslte:3;
561 		uint32_t tilt:4;
562 		uint32_t pbe:12;
563 		uint32_t dppmr:1;
564 		uint32_t reserved_2_2:1;
565 		uint32_t tswc:1;
566 		uint32_t mltd:1;
567 #else
568 		uint32_t mltd:1;
569 		uint32_t tswc:1;
570 		uint32_t reserved_2_2:1;
571 		uint32_t dppmr:1;
572 		uint32_t pbe:12;
573 		uint32_t tilt:4;
574 		uint32_t tslte:3;
575 		uint32_t tmae:1;
576 		uint32_t twtae:1;
577 		uint32_t twsen:1;
578 		uint32_t twsei:1;
579 		uint32_t trtae:1;
580 		uint32_t trdrs:1;
581 		uint32_t rdsati:1;
582 		uint32_t trdard:1;
583 		uint32_t trdnpr:1;
584 #endif
585 	} s;
586 	struct cvmx_pci_cfg16_s cn30xx;
587 	struct cvmx_pci_cfg16_s cn31xx;
588 	struct cvmx_pci_cfg16_s cn38xx;
589 	struct cvmx_pci_cfg16_s cn38xxp2;
590 	struct cvmx_pci_cfg16_s cn50xx;
591 	struct cvmx_pci_cfg16_s cn58xx;
592 	struct cvmx_pci_cfg16_s cn58xxp1;
593 };
594 
595 union cvmx_pci_cfg17 {
596 	uint32_t u32;
597 	struct cvmx_pci_cfg17_s {
598 #ifdef __BIG_ENDIAN_BITFIELD
599 		uint32_t tscme:32;
600 #else
601 		uint32_t tscme:32;
602 #endif
603 	} s;
604 	struct cvmx_pci_cfg17_s cn30xx;
605 	struct cvmx_pci_cfg17_s cn31xx;
606 	struct cvmx_pci_cfg17_s cn38xx;
607 	struct cvmx_pci_cfg17_s cn38xxp2;
608 	struct cvmx_pci_cfg17_s cn50xx;
609 	struct cvmx_pci_cfg17_s cn58xx;
610 	struct cvmx_pci_cfg17_s cn58xxp1;
611 };
612 
613 union cvmx_pci_cfg18 {
614 	uint32_t u32;
615 	struct cvmx_pci_cfg18_s {
616 #ifdef __BIG_ENDIAN_BITFIELD
617 		uint32_t tdsrps:32;
618 #else
619 		uint32_t tdsrps:32;
620 #endif
621 	} s;
622 	struct cvmx_pci_cfg18_s cn30xx;
623 	struct cvmx_pci_cfg18_s cn31xx;
624 	struct cvmx_pci_cfg18_s cn38xx;
625 	struct cvmx_pci_cfg18_s cn38xxp2;
626 	struct cvmx_pci_cfg18_s cn50xx;
627 	struct cvmx_pci_cfg18_s cn58xx;
628 	struct cvmx_pci_cfg18_s cn58xxp1;
629 };
630 
631 union cvmx_pci_cfg19 {
632 	uint32_t u32;
633 	struct cvmx_pci_cfg19_s {
634 #ifdef __BIG_ENDIAN_BITFIELD
635 		uint32_t mrbcm:1;
636 		uint32_t mrbci:1;
637 		uint32_t mdwe:1;
638 		uint32_t mdre:1;
639 		uint32_t mdrimc:1;
640 		uint32_t mdrrmc:3;
641 		uint32_t tmes:8;
642 		uint32_t teci:1;
643 		uint32_t tmei:1;
644 		uint32_t tmse:1;
645 		uint32_t tmdpes:1;
646 		uint32_t tmapes:1;
647 		uint32_t reserved_9_10:2;
648 		uint32_t tibcd:1;
649 		uint32_t tibde:1;
650 		uint32_t reserved_6_6:1;
651 		uint32_t tidomc:1;
652 		uint32_t tdomc:5;
653 #else
654 		uint32_t tdomc:5;
655 		uint32_t tidomc:1;
656 		uint32_t reserved_6_6:1;
657 		uint32_t tibde:1;
658 		uint32_t tibcd:1;
659 		uint32_t reserved_9_10:2;
660 		uint32_t tmapes:1;
661 		uint32_t tmdpes:1;
662 		uint32_t tmse:1;
663 		uint32_t tmei:1;
664 		uint32_t teci:1;
665 		uint32_t tmes:8;
666 		uint32_t mdrrmc:3;
667 		uint32_t mdrimc:1;
668 		uint32_t mdre:1;
669 		uint32_t mdwe:1;
670 		uint32_t mrbci:1;
671 		uint32_t mrbcm:1;
672 #endif
673 	} s;
674 	struct cvmx_pci_cfg19_s cn30xx;
675 	struct cvmx_pci_cfg19_s cn31xx;
676 	struct cvmx_pci_cfg19_s cn38xx;
677 	struct cvmx_pci_cfg19_s cn38xxp2;
678 	struct cvmx_pci_cfg19_s cn50xx;
679 	struct cvmx_pci_cfg19_s cn58xx;
680 	struct cvmx_pci_cfg19_s cn58xxp1;
681 };
682 
683 union cvmx_pci_cfg20 {
684 	uint32_t u32;
685 	struct cvmx_pci_cfg20_s {
686 #ifdef __BIG_ENDIAN_BITFIELD
687 		uint32_t mdsp:32;
688 #else
689 		uint32_t mdsp:32;
690 #endif
691 	} s;
692 	struct cvmx_pci_cfg20_s cn30xx;
693 	struct cvmx_pci_cfg20_s cn31xx;
694 	struct cvmx_pci_cfg20_s cn38xx;
695 	struct cvmx_pci_cfg20_s cn38xxp2;
696 	struct cvmx_pci_cfg20_s cn50xx;
697 	struct cvmx_pci_cfg20_s cn58xx;
698 	struct cvmx_pci_cfg20_s cn58xxp1;
699 };
700 
701 union cvmx_pci_cfg21 {
702 	uint32_t u32;
703 	struct cvmx_pci_cfg21_s {
704 #ifdef __BIG_ENDIAN_BITFIELD
705 		uint32_t scmre:32;
706 #else
707 		uint32_t scmre:32;
708 #endif
709 	} s;
710 	struct cvmx_pci_cfg21_s cn30xx;
711 	struct cvmx_pci_cfg21_s cn31xx;
712 	struct cvmx_pci_cfg21_s cn38xx;
713 	struct cvmx_pci_cfg21_s cn38xxp2;
714 	struct cvmx_pci_cfg21_s cn50xx;
715 	struct cvmx_pci_cfg21_s cn58xx;
716 	struct cvmx_pci_cfg21_s cn58xxp1;
717 };
718 
719 union cvmx_pci_cfg22 {
720 	uint32_t u32;
721 	struct cvmx_pci_cfg22_s {
722 #ifdef __BIG_ENDIAN_BITFIELD
723 		uint32_t mac:7;
724 		uint32_t reserved_19_24:6;
725 		uint32_t flush:1;
726 		uint32_t mra:1;
727 		uint32_t mtta:1;
728 		uint32_t mrv:8;
729 		uint32_t mttv:8;
730 #else
731 		uint32_t mttv:8;
732 		uint32_t mrv:8;
733 		uint32_t mtta:1;
734 		uint32_t mra:1;
735 		uint32_t flush:1;
736 		uint32_t reserved_19_24:6;
737 		uint32_t mac:7;
738 #endif
739 	} s;
740 	struct cvmx_pci_cfg22_s cn30xx;
741 	struct cvmx_pci_cfg22_s cn31xx;
742 	struct cvmx_pci_cfg22_s cn38xx;
743 	struct cvmx_pci_cfg22_s cn38xxp2;
744 	struct cvmx_pci_cfg22_s cn50xx;
745 	struct cvmx_pci_cfg22_s cn58xx;
746 	struct cvmx_pci_cfg22_s cn58xxp1;
747 };
748 
749 union cvmx_pci_cfg56 {
750 	uint32_t u32;
751 	struct cvmx_pci_cfg56_s {
752 #ifdef __BIG_ENDIAN_BITFIELD
753 		uint32_t reserved_23_31:9;
754 		uint32_t most:3;
755 		uint32_t mmbc:2;
756 		uint32_t roe:1;
757 		uint32_t dpere:1;
758 		uint32_t ncp:8;
759 		uint32_t pxcid:8;
760 #else
761 		uint32_t pxcid:8;
762 		uint32_t ncp:8;
763 		uint32_t dpere:1;
764 		uint32_t roe:1;
765 		uint32_t mmbc:2;
766 		uint32_t most:3;
767 		uint32_t reserved_23_31:9;
768 #endif
769 	} s;
770 	struct cvmx_pci_cfg56_s cn30xx;
771 	struct cvmx_pci_cfg56_s cn31xx;
772 	struct cvmx_pci_cfg56_s cn38xx;
773 	struct cvmx_pci_cfg56_s cn38xxp2;
774 	struct cvmx_pci_cfg56_s cn50xx;
775 	struct cvmx_pci_cfg56_s cn58xx;
776 	struct cvmx_pci_cfg56_s cn58xxp1;
777 };
778 
779 union cvmx_pci_cfg57 {
780 	uint32_t u32;
781 	struct cvmx_pci_cfg57_s {
782 #ifdef __BIG_ENDIAN_BITFIELD
783 		uint32_t reserved_30_31:2;
784 		uint32_t scemr:1;
785 		uint32_t mcrsd:3;
786 		uint32_t mostd:3;
787 		uint32_t mmrbcd:2;
788 		uint32_t dc:1;
789 		uint32_t usc:1;
790 		uint32_t scd:1;
791 		uint32_t m133:1;
792 		uint32_t w64:1;
793 		uint32_t bn:8;
794 		uint32_t dn:5;
795 		uint32_t fn:3;
796 #else
797 		uint32_t fn:3;
798 		uint32_t dn:5;
799 		uint32_t bn:8;
800 		uint32_t w64:1;
801 		uint32_t m133:1;
802 		uint32_t scd:1;
803 		uint32_t usc:1;
804 		uint32_t dc:1;
805 		uint32_t mmrbcd:2;
806 		uint32_t mostd:3;
807 		uint32_t mcrsd:3;
808 		uint32_t scemr:1;
809 		uint32_t reserved_30_31:2;
810 #endif
811 	} s;
812 	struct cvmx_pci_cfg57_s cn30xx;
813 	struct cvmx_pci_cfg57_s cn31xx;
814 	struct cvmx_pci_cfg57_s cn38xx;
815 	struct cvmx_pci_cfg57_s cn38xxp2;
816 	struct cvmx_pci_cfg57_s cn50xx;
817 	struct cvmx_pci_cfg57_s cn58xx;
818 	struct cvmx_pci_cfg57_s cn58xxp1;
819 };
820 
821 union cvmx_pci_cfg58 {
822 	uint32_t u32;
823 	struct cvmx_pci_cfg58_s {
824 #ifdef __BIG_ENDIAN_BITFIELD
825 		uint32_t pmes:5;
826 		uint32_t d2s:1;
827 		uint32_t d1s:1;
828 		uint32_t auxc:3;
829 		uint32_t dsi:1;
830 		uint32_t reserved_20_20:1;
831 		uint32_t pmec:1;
832 		uint32_t pcimiv:3;
833 		uint32_t ncp:8;
834 		uint32_t pmcid:8;
835 #else
836 		uint32_t pmcid:8;
837 		uint32_t ncp:8;
838 		uint32_t pcimiv:3;
839 		uint32_t pmec:1;
840 		uint32_t reserved_20_20:1;
841 		uint32_t dsi:1;
842 		uint32_t auxc:3;
843 		uint32_t d1s:1;
844 		uint32_t d2s:1;
845 		uint32_t pmes:5;
846 #endif
847 	} s;
848 	struct cvmx_pci_cfg58_s cn30xx;
849 	struct cvmx_pci_cfg58_s cn31xx;
850 	struct cvmx_pci_cfg58_s cn38xx;
851 	struct cvmx_pci_cfg58_s cn38xxp2;
852 	struct cvmx_pci_cfg58_s cn50xx;
853 	struct cvmx_pci_cfg58_s cn58xx;
854 	struct cvmx_pci_cfg58_s cn58xxp1;
855 };
856 
857 union cvmx_pci_cfg59 {
858 	uint32_t u32;
859 	struct cvmx_pci_cfg59_s {
860 #ifdef __BIG_ENDIAN_BITFIELD
861 		uint32_t pmdia:8;
862 		uint32_t bpccen:1;
863 		uint32_t bd3h:1;
864 		uint32_t reserved_16_21:6;
865 		uint32_t pmess:1;
866 		uint32_t pmedsia:2;
867 		uint32_t pmds:4;
868 		uint32_t pmeens:1;
869 		uint32_t reserved_2_7:6;
870 		uint32_t ps:2;
871 #else
872 		uint32_t ps:2;
873 		uint32_t reserved_2_7:6;
874 		uint32_t pmeens:1;
875 		uint32_t pmds:4;
876 		uint32_t pmedsia:2;
877 		uint32_t pmess:1;
878 		uint32_t reserved_16_21:6;
879 		uint32_t bd3h:1;
880 		uint32_t bpccen:1;
881 		uint32_t pmdia:8;
882 #endif
883 	} s;
884 	struct cvmx_pci_cfg59_s cn30xx;
885 	struct cvmx_pci_cfg59_s cn31xx;
886 	struct cvmx_pci_cfg59_s cn38xx;
887 	struct cvmx_pci_cfg59_s cn38xxp2;
888 	struct cvmx_pci_cfg59_s cn50xx;
889 	struct cvmx_pci_cfg59_s cn58xx;
890 	struct cvmx_pci_cfg59_s cn58xxp1;
891 };
892 
893 union cvmx_pci_cfg60 {
894 	uint32_t u32;
895 	struct cvmx_pci_cfg60_s {
896 #ifdef __BIG_ENDIAN_BITFIELD
897 		uint32_t reserved_24_31:8;
898 		uint32_t m64:1;
899 		uint32_t mme:3;
900 		uint32_t mmc:3;
901 		uint32_t msien:1;
902 		uint32_t ncp:8;
903 		uint32_t msicid:8;
904 #else
905 		uint32_t msicid:8;
906 		uint32_t ncp:8;
907 		uint32_t msien:1;
908 		uint32_t mmc:3;
909 		uint32_t mme:3;
910 		uint32_t m64:1;
911 		uint32_t reserved_24_31:8;
912 #endif
913 	} s;
914 	struct cvmx_pci_cfg60_s cn30xx;
915 	struct cvmx_pci_cfg60_s cn31xx;
916 	struct cvmx_pci_cfg60_s cn38xx;
917 	struct cvmx_pci_cfg60_s cn38xxp2;
918 	struct cvmx_pci_cfg60_s cn50xx;
919 	struct cvmx_pci_cfg60_s cn58xx;
920 	struct cvmx_pci_cfg60_s cn58xxp1;
921 };
922 
923 union cvmx_pci_cfg61 {
924 	uint32_t u32;
925 	struct cvmx_pci_cfg61_s {
926 #ifdef __BIG_ENDIAN_BITFIELD
927 		uint32_t msi31t2:30;
928 		uint32_t reserved_0_1:2;
929 #else
930 		uint32_t reserved_0_1:2;
931 		uint32_t msi31t2:30;
932 #endif
933 	} s;
934 	struct cvmx_pci_cfg61_s cn30xx;
935 	struct cvmx_pci_cfg61_s cn31xx;
936 	struct cvmx_pci_cfg61_s cn38xx;
937 	struct cvmx_pci_cfg61_s cn38xxp2;
938 	struct cvmx_pci_cfg61_s cn50xx;
939 	struct cvmx_pci_cfg61_s cn58xx;
940 	struct cvmx_pci_cfg61_s cn58xxp1;
941 };
942 
943 union cvmx_pci_cfg62 {
944 	uint32_t u32;
945 	struct cvmx_pci_cfg62_s {
946 #ifdef __BIG_ENDIAN_BITFIELD
947 		uint32_t msi:32;
948 #else
949 		uint32_t msi:32;
950 #endif
951 	} s;
952 	struct cvmx_pci_cfg62_s cn30xx;
953 	struct cvmx_pci_cfg62_s cn31xx;
954 	struct cvmx_pci_cfg62_s cn38xx;
955 	struct cvmx_pci_cfg62_s cn38xxp2;
956 	struct cvmx_pci_cfg62_s cn50xx;
957 	struct cvmx_pci_cfg62_s cn58xx;
958 	struct cvmx_pci_cfg62_s cn58xxp1;
959 };
960 
961 union cvmx_pci_cfg63 {
962 	uint32_t u32;
963 	struct cvmx_pci_cfg63_s {
964 #ifdef __BIG_ENDIAN_BITFIELD
965 		uint32_t reserved_16_31:16;
966 		uint32_t msimd:16;
967 #else
968 		uint32_t msimd:16;
969 		uint32_t reserved_16_31:16;
970 #endif
971 	} s;
972 	struct cvmx_pci_cfg63_s cn30xx;
973 	struct cvmx_pci_cfg63_s cn31xx;
974 	struct cvmx_pci_cfg63_s cn38xx;
975 	struct cvmx_pci_cfg63_s cn38xxp2;
976 	struct cvmx_pci_cfg63_s cn50xx;
977 	struct cvmx_pci_cfg63_s cn58xx;
978 	struct cvmx_pci_cfg63_s cn58xxp1;
979 };
980 
981 union cvmx_pci_cnt_reg {
982 	uint64_t u64;
983 	struct cvmx_pci_cnt_reg_s {
984 #ifdef __BIG_ENDIAN_BITFIELD
985 		uint64_t reserved_38_63:26;
986 		uint64_t hm_pcix:1;
987 		uint64_t hm_speed:2;
988 		uint64_t ap_pcix:1;
989 		uint64_t ap_speed:2;
990 		uint64_t pcicnt:32;
991 #else
992 		uint64_t pcicnt:32;
993 		uint64_t ap_speed:2;
994 		uint64_t ap_pcix:1;
995 		uint64_t hm_speed:2;
996 		uint64_t hm_pcix:1;
997 		uint64_t reserved_38_63:26;
998 #endif
999 	} s;
1000 	struct cvmx_pci_cnt_reg_s cn50xx;
1001 	struct cvmx_pci_cnt_reg_s cn58xx;
1002 	struct cvmx_pci_cnt_reg_s cn58xxp1;
1003 };
1004 
1005 union cvmx_pci_ctl_status_2 {
1006 	uint32_t u32;
1007 	struct cvmx_pci_ctl_status_2_s {
1008 #ifdef __BIG_ENDIAN_BITFIELD
1009 		uint32_t reserved_29_31:3;
1010 		uint32_t bb1_hole:3;
1011 		uint32_t bb1_siz:1;
1012 		uint32_t bb_ca:1;
1013 		uint32_t bb_es:2;
1014 		uint32_t bb1:1;
1015 		uint32_t bb0:1;
1016 		uint32_t erst_n:1;
1017 		uint32_t bar2pres:1;
1018 		uint32_t scmtyp:1;
1019 		uint32_t scm:1;
1020 		uint32_t en_wfilt:1;
1021 		uint32_t reserved_14_14:1;
1022 		uint32_t ap_pcix:1;
1023 		uint32_t ap_64ad:1;
1024 		uint32_t b12_bist:1;
1025 		uint32_t pmo_amod:1;
1026 		uint32_t pmo_fpc:3;
1027 		uint32_t tsr_hwm:3;
1028 		uint32_t bar2_enb:1;
1029 		uint32_t bar2_esx:2;
1030 		uint32_t bar2_cax:1;
1031 #else
1032 		uint32_t bar2_cax:1;
1033 		uint32_t bar2_esx:2;
1034 		uint32_t bar2_enb:1;
1035 		uint32_t tsr_hwm:3;
1036 		uint32_t pmo_fpc:3;
1037 		uint32_t pmo_amod:1;
1038 		uint32_t b12_bist:1;
1039 		uint32_t ap_64ad:1;
1040 		uint32_t ap_pcix:1;
1041 		uint32_t reserved_14_14:1;
1042 		uint32_t en_wfilt:1;
1043 		uint32_t scm:1;
1044 		uint32_t scmtyp:1;
1045 		uint32_t bar2pres:1;
1046 		uint32_t erst_n:1;
1047 		uint32_t bb0:1;
1048 		uint32_t bb1:1;
1049 		uint32_t bb_es:2;
1050 		uint32_t bb_ca:1;
1051 		uint32_t bb1_siz:1;
1052 		uint32_t bb1_hole:3;
1053 		uint32_t reserved_29_31:3;
1054 #endif
1055 	} s;
1056 	struct cvmx_pci_ctl_status_2_s cn30xx;
1057 	struct cvmx_pci_ctl_status_2_cn31xx {
1058 #ifdef __BIG_ENDIAN_BITFIELD
1059 		uint32_t reserved_20_31:12;
1060 		uint32_t erst_n:1;
1061 		uint32_t bar2pres:1;
1062 		uint32_t scmtyp:1;
1063 		uint32_t scm:1;
1064 		uint32_t en_wfilt:1;
1065 		uint32_t reserved_14_14:1;
1066 		uint32_t ap_pcix:1;
1067 		uint32_t ap_64ad:1;
1068 		uint32_t b12_bist:1;
1069 		uint32_t pmo_amod:1;
1070 		uint32_t pmo_fpc:3;
1071 		uint32_t tsr_hwm:3;
1072 		uint32_t bar2_enb:1;
1073 		uint32_t bar2_esx:2;
1074 		uint32_t bar2_cax:1;
1075 #else
1076 		uint32_t bar2_cax:1;
1077 		uint32_t bar2_esx:2;
1078 		uint32_t bar2_enb:1;
1079 		uint32_t tsr_hwm:3;
1080 		uint32_t pmo_fpc:3;
1081 		uint32_t pmo_amod:1;
1082 		uint32_t b12_bist:1;
1083 		uint32_t ap_64ad:1;
1084 		uint32_t ap_pcix:1;
1085 		uint32_t reserved_14_14:1;
1086 		uint32_t en_wfilt:1;
1087 		uint32_t scm:1;
1088 		uint32_t scmtyp:1;
1089 		uint32_t bar2pres:1;
1090 		uint32_t erst_n:1;
1091 		uint32_t reserved_20_31:12;
1092 #endif
1093 	} cn31xx;
1094 	struct cvmx_pci_ctl_status_2_s cn38xx;
1095 	struct cvmx_pci_ctl_status_2_cn31xx cn38xxp2;
1096 	struct cvmx_pci_ctl_status_2_s cn50xx;
1097 	struct cvmx_pci_ctl_status_2_s cn58xx;
1098 	struct cvmx_pci_ctl_status_2_s cn58xxp1;
1099 };
1100 
1101 union cvmx_pci_dbellx {
1102 	uint32_t u32;
1103 	struct cvmx_pci_dbellx_s {
1104 #ifdef __BIG_ENDIAN_BITFIELD
1105 		uint32_t reserved_16_31:16;
1106 		uint32_t inc_val:16;
1107 #else
1108 		uint32_t inc_val:16;
1109 		uint32_t reserved_16_31:16;
1110 #endif
1111 	} s;
1112 	struct cvmx_pci_dbellx_s cn30xx;
1113 	struct cvmx_pci_dbellx_s cn31xx;
1114 	struct cvmx_pci_dbellx_s cn38xx;
1115 	struct cvmx_pci_dbellx_s cn38xxp2;
1116 	struct cvmx_pci_dbellx_s cn50xx;
1117 	struct cvmx_pci_dbellx_s cn58xx;
1118 	struct cvmx_pci_dbellx_s cn58xxp1;
1119 };
1120 
1121 union cvmx_pci_dma_cntx {
1122 	uint32_t u32;
1123 	struct cvmx_pci_dma_cntx_s {
1124 #ifdef __BIG_ENDIAN_BITFIELD
1125 		uint32_t dma_cnt:32;
1126 #else
1127 		uint32_t dma_cnt:32;
1128 #endif
1129 	} s;
1130 	struct cvmx_pci_dma_cntx_s cn30xx;
1131 	struct cvmx_pci_dma_cntx_s cn31xx;
1132 	struct cvmx_pci_dma_cntx_s cn38xx;
1133 	struct cvmx_pci_dma_cntx_s cn38xxp2;
1134 	struct cvmx_pci_dma_cntx_s cn50xx;
1135 	struct cvmx_pci_dma_cntx_s cn58xx;
1136 	struct cvmx_pci_dma_cntx_s cn58xxp1;
1137 };
1138 
1139 union cvmx_pci_dma_int_levx {
1140 	uint32_t u32;
1141 	struct cvmx_pci_dma_int_levx_s {
1142 #ifdef __BIG_ENDIAN_BITFIELD
1143 		uint32_t pkt_cnt:32;
1144 #else
1145 		uint32_t pkt_cnt:32;
1146 #endif
1147 	} s;
1148 	struct cvmx_pci_dma_int_levx_s cn30xx;
1149 	struct cvmx_pci_dma_int_levx_s cn31xx;
1150 	struct cvmx_pci_dma_int_levx_s cn38xx;
1151 	struct cvmx_pci_dma_int_levx_s cn38xxp2;
1152 	struct cvmx_pci_dma_int_levx_s cn50xx;
1153 	struct cvmx_pci_dma_int_levx_s cn58xx;
1154 	struct cvmx_pci_dma_int_levx_s cn58xxp1;
1155 };
1156 
1157 union cvmx_pci_dma_timex {
1158 	uint32_t u32;
1159 	struct cvmx_pci_dma_timex_s {
1160 #ifdef __BIG_ENDIAN_BITFIELD
1161 		uint32_t dma_time:32;
1162 #else
1163 		uint32_t dma_time:32;
1164 #endif
1165 	} s;
1166 	struct cvmx_pci_dma_timex_s cn30xx;
1167 	struct cvmx_pci_dma_timex_s cn31xx;
1168 	struct cvmx_pci_dma_timex_s cn38xx;
1169 	struct cvmx_pci_dma_timex_s cn38xxp2;
1170 	struct cvmx_pci_dma_timex_s cn50xx;
1171 	struct cvmx_pci_dma_timex_s cn58xx;
1172 	struct cvmx_pci_dma_timex_s cn58xxp1;
1173 };
1174 
1175 union cvmx_pci_instr_countx {
1176 	uint32_t u32;
1177 	struct cvmx_pci_instr_countx_s {
1178 #ifdef __BIG_ENDIAN_BITFIELD
1179 		uint32_t icnt:32;
1180 #else
1181 		uint32_t icnt:32;
1182 #endif
1183 	} s;
1184 	struct cvmx_pci_instr_countx_s cn30xx;
1185 	struct cvmx_pci_instr_countx_s cn31xx;
1186 	struct cvmx_pci_instr_countx_s cn38xx;
1187 	struct cvmx_pci_instr_countx_s cn38xxp2;
1188 	struct cvmx_pci_instr_countx_s cn50xx;
1189 	struct cvmx_pci_instr_countx_s cn58xx;
1190 	struct cvmx_pci_instr_countx_s cn58xxp1;
1191 };
1192 
1193 union cvmx_pci_int_enb {
1194 	uint64_t u64;
1195 	struct cvmx_pci_int_enb_s {
1196 #ifdef __BIG_ENDIAN_BITFIELD
1197 		uint64_t reserved_34_63:30;
1198 		uint64_t ill_rd:1;
1199 		uint64_t ill_wr:1;
1200 		uint64_t win_wr:1;
1201 		uint64_t dma1_fi:1;
1202 		uint64_t dma0_fi:1;
1203 		uint64_t idtime1:1;
1204 		uint64_t idtime0:1;
1205 		uint64_t idcnt1:1;
1206 		uint64_t idcnt0:1;
1207 		uint64_t iptime3:1;
1208 		uint64_t iptime2:1;
1209 		uint64_t iptime1:1;
1210 		uint64_t iptime0:1;
1211 		uint64_t ipcnt3:1;
1212 		uint64_t ipcnt2:1;
1213 		uint64_t ipcnt1:1;
1214 		uint64_t ipcnt0:1;
1215 		uint64_t irsl_int:1;
1216 		uint64_t ill_rrd:1;
1217 		uint64_t ill_rwr:1;
1218 		uint64_t idperr:1;
1219 		uint64_t iaperr:1;
1220 		uint64_t iserr:1;
1221 		uint64_t itsr_abt:1;
1222 		uint64_t imsc_msg:1;
1223 		uint64_t imsi_mabt:1;
1224 		uint64_t imsi_tabt:1;
1225 		uint64_t imsi_per:1;
1226 		uint64_t imr_tto:1;
1227 		uint64_t imr_abt:1;
1228 		uint64_t itr_abt:1;
1229 		uint64_t imr_wtto:1;
1230 		uint64_t imr_wabt:1;
1231 		uint64_t itr_wabt:1;
1232 #else
1233 		uint64_t itr_wabt:1;
1234 		uint64_t imr_wabt:1;
1235 		uint64_t imr_wtto:1;
1236 		uint64_t itr_abt:1;
1237 		uint64_t imr_abt:1;
1238 		uint64_t imr_tto:1;
1239 		uint64_t imsi_per:1;
1240 		uint64_t imsi_tabt:1;
1241 		uint64_t imsi_mabt:1;
1242 		uint64_t imsc_msg:1;
1243 		uint64_t itsr_abt:1;
1244 		uint64_t iserr:1;
1245 		uint64_t iaperr:1;
1246 		uint64_t idperr:1;
1247 		uint64_t ill_rwr:1;
1248 		uint64_t ill_rrd:1;
1249 		uint64_t irsl_int:1;
1250 		uint64_t ipcnt0:1;
1251 		uint64_t ipcnt1:1;
1252 		uint64_t ipcnt2:1;
1253 		uint64_t ipcnt3:1;
1254 		uint64_t iptime0:1;
1255 		uint64_t iptime1:1;
1256 		uint64_t iptime2:1;
1257 		uint64_t iptime3:1;
1258 		uint64_t idcnt0:1;
1259 		uint64_t idcnt1:1;
1260 		uint64_t idtime0:1;
1261 		uint64_t idtime1:1;
1262 		uint64_t dma0_fi:1;
1263 		uint64_t dma1_fi:1;
1264 		uint64_t win_wr:1;
1265 		uint64_t ill_wr:1;
1266 		uint64_t ill_rd:1;
1267 		uint64_t reserved_34_63:30;
1268 #endif
1269 	} s;
1270 	struct cvmx_pci_int_enb_cn30xx {
1271 #ifdef __BIG_ENDIAN_BITFIELD
1272 		uint64_t reserved_34_63:30;
1273 		uint64_t ill_rd:1;
1274 		uint64_t ill_wr:1;
1275 		uint64_t win_wr:1;
1276 		uint64_t dma1_fi:1;
1277 		uint64_t dma0_fi:1;
1278 		uint64_t idtime1:1;
1279 		uint64_t idtime0:1;
1280 		uint64_t idcnt1:1;
1281 		uint64_t idcnt0:1;
1282 		uint64_t reserved_22_24:3;
1283 		uint64_t iptime0:1;
1284 		uint64_t reserved_18_20:3;
1285 		uint64_t ipcnt0:1;
1286 		uint64_t irsl_int:1;
1287 		uint64_t ill_rrd:1;
1288 		uint64_t ill_rwr:1;
1289 		uint64_t idperr:1;
1290 		uint64_t iaperr:1;
1291 		uint64_t iserr:1;
1292 		uint64_t itsr_abt:1;
1293 		uint64_t imsc_msg:1;
1294 		uint64_t imsi_mabt:1;
1295 		uint64_t imsi_tabt:1;
1296 		uint64_t imsi_per:1;
1297 		uint64_t imr_tto:1;
1298 		uint64_t imr_abt:1;
1299 		uint64_t itr_abt:1;
1300 		uint64_t imr_wtto:1;
1301 		uint64_t imr_wabt:1;
1302 		uint64_t itr_wabt:1;
1303 #else
1304 		uint64_t itr_wabt:1;
1305 		uint64_t imr_wabt:1;
1306 		uint64_t imr_wtto:1;
1307 		uint64_t itr_abt:1;
1308 		uint64_t imr_abt:1;
1309 		uint64_t imr_tto:1;
1310 		uint64_t imsi_per:1;
1311 		uint64_t imsi_tabt:1;
1312 		uint64_t imsi_mabt:1;
1313 		uint64_t imsc_msg:1;
1314 		uint64_t itsr_abt:1;
1315 		uint64_t iserr:1;
1316 		uint64_t iaperr:1;
1317 		uint64_t idperr:1;
1318 		uint64_t ill_rwr:1;
1319 		uint64_t ill_rrd:1;
1320 		uint64_t irsl_int:1;
1321 		uint64_t ipcnt0:1;
1322 		uint64_t reserved_18_20:3;
1323 		uint64_t iptime0:1;
1324 		uint64_t reserved_22_24:3;
1325 		uint64_t idcnt0:1;
1326 		uint64_t idcnt1:1;
1327 		uint64_t idtime0:1;
1328 		uint64_t idtime1:1;
1329 		uint64_t dma0_fi:1;
1330 		uint64_t dma1_fi:1;
1331 		uint64_t win_wr:1;
1332 		uint64_t ill_wr:1;
1333 		uint64_t ill_rd:1;
1334 		uint64_t reserved_34_63:30;
1335 #endif
1336 	} cn30xx;
1337 	struct cvmx_pci_int_enb_cn31xx {
1338 #ifdef __BIG_ENDIAN_BITFIELD
1339 		uint64_t reserved_34_63:30;
1340 		uint64_t ill_rd:1;
1341 		uint64_t ill_wr:1;
1342 		uint64_t win_wr:1;
1343 		uint64_t dma1_fi:1;
1344 		uint64_t dma0_fi:1;
1345 		uint64_t idtime1:1;
1346 		uint64_t idtime0:1;
1347 		uint64_t idcnt1:1;
1348 		uint64_t idcnt0:1;
1349 		uint64_t reserved_23_24:2;
1350 		uint64_t iptime1:1;
1351 		uint64_t iptime0:1;
1352 		uint64_t reserved_19_20:2;
1353 		uint64_t ipcnt1:1;
1354 		uint64_t ipcnt0:1;
1355 		uint64_t irsl_int:1;
1356 		uint64_t ill_rrd:1;
1357 		uint64_t ill_rwr:1;
1358 		uint64_t idperr:1;
1359 		uint64_t iaperr:1;
1360 		uint64_t iserr:1;
1361 		uint64_t itsr_abt:1;
1362 		uint64_t imsc_msg:1;
1363 		uint64_t imsi_mabt:1;
1364 		uint64_t imsi_tabt:1;
1365 		uint64_t imsi_per:1;
1366 		uint64_t imr_tto:1;
1367 		uint64_t imr_abt:1;
1368 		uint64_t itr_abt:1;
1369 		uint64_t imr_wtto:1;
1370 		uint64_t imr_wabt:1;
1371 		uint64_t itr_wabt:1;
1372 #else
1373 		uint64_t itr_wabt:1;
1374 		uint64_t imr_wabt:1;
1375 		uint64_t imr_wtto:1;
1376 		uint64_t itr_abt:1;
1377 		uint64_t imr_abt:1;
1378 		uint64_t imr_tto:1;
1379 		uint64_t imsi_per:1;
1380 		uint64_t imsi_tabt:1;
1381 		uint64_t imsi_mabt:1;
1382 		uint64_t imsc_msg:1;
1383 		uint64_t itsr_abt:1;
1384 		uint64_t iserr:1;
1385 		uint64_t iaperr:1;
1386 		uint64_t idperr:1;
1387 		uint64_t ill_rwr:1;
1388 		uint64_t ill_rrd:1;
1389 		uint64_t irsl_int:1;
1390 		uint64_t ipcnt0:1;
1391 		uint64_t ipcnt1:1;
1392 		uint64_t reserved_19_20:2;
1393 		uint64_t iptime0:1;
1394 		uint64_t iptime1:1;
1395 		uint64_t reserved_23_24:2;
1396 		uint64_t idcnt0:1;
1397 		uint64_t idcnt1:1;
1398 		uint64_t idtime0:1;
1399 		uint64_t idtime1:1;
1400 		uint64_t dma0_fi:1;
1401 		uint64_t dma1_fi:1;
1402 		uint64_t win_wr:1;
1403 		uint64_t ill_wr:1;
1404 		uint64_t ill_rd:1;
1405 		uint64_t reserved_34_63:30;
1406 #endif
1407 	} cn31xx;
1408 	struct cvmx_pci_int_enb_s cn38xx;
1409 	struct cvmx_pci_int_enb_s cn38xxp2;
1410 	struct cvmx_pci_int_enb_cn31xx cn50xx;
1411 	struct cvmx_pci_int_enb_s cn58xx;
1412 	struct cvmx_pci_int_enb_s cn58xxp1;
1413 };
1414 
1415 union cvmx_pci_int_enb2 {
1416 	uint64_t u64;
1417 	struct cvmx_pci_int_enb2_s {
1418 #ifdef __BIG_ENDIAN_BITFIELD
1419 		uint64_t reserved_34_63:30;
1420 		uint64_t ill_rd:1;
1421 		uint64_t ill_wr:1;
1422 		uint64_t win_wr:1;
1423 		uint64_t dma1_fi:1;
1424 		uint64_t dma0_fi:1;
1425 		uint64_t rdtime1:1;
1426 		uint64_t rdtime0:1;
1427 		uint64_t rdcnt1:1;
1428 		uint64_t rdcnt0:1;
1429 		uint64_t rptime3:1;
1430 		uint64_t rptime2:1;
1431 		uint64_t rptime1:1;
1432 		uint64_t rptime0:1;
1433 		uint64_t rpcnt3:1;
1434 		uint64_t rpcnt2:1;
1435 		uint64_t rpcnt1:1;
1436 		uint64_t rpcnt0:1;
1437 		uint64_t rrsl_int:1;
1438 		uint64_t ill_rrd:1;
1439 		uint64_t ill_rwr:1;
1440 		uint64_t rdperr:1;
1441 		uint64_t raperr:1;
1442 		uint64_t rserr:1;
1443 		uint64_t rtsr_abt:1;
1444 		uint64_t rmsc_msg:1;
1445 		uint64_t rmsi_mabt:1;
1446 		uint64_t rmsi_tabt:1;
1447 		uint64_t rmsi_per:1;
1448 		uint64_t rmr_tto:1;
1449 		uint64_t rmr_abt:1;
1450 		uint64_t rtr_abt:1;
1451 		uint64_t rmr_wtto:1;
1452 		uint64_t rmr_wabt:1;
1453 		uint64_t rtr_wabt:1;
1454 #else
1455 		uint64_t rtr_wabt:1;
1456 		uint64_t rmr_wabt:1;
1457 		uint64_t rmr_wtto:1;
1458 		uint64_t rtr_abt:1;
1459 		uint64_t rmr_abt:1;
1460 		uint64_t rmr_tto:1;
1461 		uint64_t rmsi_per:1;
1462 		uint64_t rmsi_tabt:1;
1463 		uint64_t rmsi_mabt:1;
1464 		uint64_t rmsc_msg:1;
1465 		uint64_t rtsr_abt:1;
1466 		uint64_t rserr:1;
1467 		uint64_t raperr:1;
1468 		uint64_t rdperr:1;
1469 		uint64_t ill_rwr:1;
1470 		uint64_t ill_rrd:1;
1471 		uint64_t rrsl_int:1;
1472 		uint64_t rpcnt0:1;
1473 		uint64_t rpcnt1:1;
1474 		uint64_t rpcnt2:1;
1475 		uint64_t rpcnt3:1;
1476 		uint64_t rptime0:1;
1477 		uint64_t rptime1:1;
1478 		uint64_t rptime2:1;
1479 		uint64_t rptime3:1;
1480 		uint64_t rdcnt0:1;
1481 		uint64_t rdcnt1:1;
1482 		uint64_t rdtime0:1;
1483 		uint64_t rdtime1:1;
1484 		uint64_t dma0_fi:1;
1485 		uint64_t dma1_fi:1;
1486 		uint64_t win_wr:1;
1487 		uint64_t ill_wr:1;
1488 		uint64_t ill_rd:1;
1489 		uint64_t reserved_34_63:30;
1490 #endif
1491 	} s;
1492 	struct cvmx_pci_int_enb2_cn30xx {
1493 #ifdef __BIG_ENDIAN_BITFIELD
1494 		uint64_t reserved_34_63:30;
1495 		uint64_t ill_rd:1;
1496 		uint64_t ill_wr:1;
1497 		uint64_t win_wr:1;
1498 		uint64_t dma1_fi:1;
1499 		uint64_t dma0_fi:1;
1500 		uint64_t rdtime1:1;
1501 		uint64_t rdtime0:1;
1502 		uint64_t rdcnt1:1;
1503 		uint64_t rdcnt0:1;
1504 		uint64_t reserved_22_24:3;
1505 		uint64_t rptime0:1;
1506 		uint64_t reserved_18_20:3;
1507 		uint64_t rpcnt0:1;
1508 		uint64_t rrsl_int:1;
1509 		uint64_t ill_rrd:1;
1510 		uint64_t ill_rwr:1;
1511 		uint64_t rdperr:1;
1512 		uint64_t raperr:1;
1513 		uint64_t rserr:1;
1514 		uint64_t rtsr_abt:1;
1515 		uint64_t rmsc_msg:1;
1516 		uint64_t rmsi_mabt:1;
1517 		uint64_t rmsi_tabt:1;
1518 		uint64_t rmsi_per:1;
1519 		uint64_t rmr_tto:1;
1520 		uint64_t rmr_abt:1;
1521 		uint64_t rtr_abt:1;
1522 		uint64_t rmr_wtto:1;
1523 		uint64_t rmr_wabt:1;
1524 		uint64_t rtr_wabt:1;
1525 #else
1526 		uint64_t rtr_wabt:1;
1527 		uint64_t rmr_wabt:1;
1528 		uint64_t rmr_wtto:1;
1529 		uint64_t rtr_abt:1;
1530 		uint64_t rmr_abt:1;
1531 		uint64_t rmr_tto:1;
1532 		uint64_t rmsi_per:1;
1533 		uint64_t rmsi_tabt:1;
1534 		uint64_t rmsi_mabt:1;
1535 		uint64_t rmsc_msg:1;
1536 		uint64_t rtsr_abt:1;
1537 		uint64_t rserr:1;
1538 		uint64_t raperr:1;
1539 		uint64_t rdperr:1;
1540 		uint64_t ill_rwr:1;
1541 		uint64_t ill_rrd:1;
1542 		uint64_t rrsl_int:1;
1543 		uint64_t rpcnt0:1;
1544 		uint64_t reserved_18_20:3;
1545 		uint64_t rptime0:1;
1546 		uint64_t reserved_22_24:3;
1547 		uint64_t rdcnt0:1;
1548 		uint64_t rdcnt1:1;
1549 		uint64_t rdtime0:1;
1550 		uint64_t rdtime1:1;
1551 		uint64_t dma0_fi:1;
1552 		uint64_t dma1_fi:1;
1553 		uint64_t win_wr:1;
1554 		uint64_t ill_wr:1;
1555 		uint64_t ill_rd:1;
1556 		uint64_t reserved_34_63:30;
1557 #endif
1558 	} cn30xx;
1559 	struct cvmx_pci_int_enb2_cn31xx {
1560 #ifdef __BIG_ENDIAN_BITFIELD
1561 		uint64_t reserved_34_63:30;
1562 		uint64_t ill_rd:1;
1563 		uint64_t ill_wr:1;
1564 		uint64_t win_wr:1;
1565 		uint64_t dma1_fi:1;
1566 		uint64_t dma0_fi:1;
1567 		uint64_t rdtime1:1;
1568 		uint64_t rdtime0:1;
1569 		uint64_t rdcnt1:1;
1570 		uint64_t rdcnt0:1;
1571 		uint64_t reserved_23_24:2;
1572 		uint64_t rptime1:1;
1573 		uint64_t rptime0:1;
1574 		uint64_t reserved_19_20:2;
1575 		uint64_t rpcnt1:1;
1576 		uint64_t rpcnt0:1;
1577 		uint64_t rrsl_int:1;
1578 		uint64_t ill_rrd:1;
1579 		uint64_t ill_rwr:1;
1580 		uint64_t rdperr:1;
1581 		uint64_t raperr:1;
1582 		uint64_t rserr:1;
1583 		uint64_t rtsr_abt:1;
1584 		uint64_t rmsc_msg:1;
1585 		uint64_t rmsi_mabt:1;
1586 		uint64_t rmsi_tabt:1;
1587 		uint64_t rmsi_per:1;
1588 		uint64_t rmr_tto:1;
1589 		uint64_t rmr_abt:1;
1590 		uint64_t rtr_abt:1;
1591 		uint64_t rmr_wtto:1;
1592 		uint64_t rmr_wabt:1;
1593 		uint64_t rtr_wabt:1;
1594 #else
1595 		uint64_t rtr_wabt:1;
1596 		uint64_t rmr_wabt:1;
1597 		uint64_t rmr_wtto:1;
1598 		uint64_t rtr_abt:1;
1599 		uint64_t rmr_abt:1;
1600 		uint64_t rmr_tto:1;
1601 		uint64_t rmsi_per:1;
1602 		uint64_t rmsi_tabt:1;
1603 		uint64_t rmsi_mabt:1;
1604 		uint64_t rmsc_msg:1;
1605 		uint64_t rtsr_abt:1;
1606 		uint64_t rserr:1;
1607 		uint64_t raperr:1;
1608 		uint64_t rdperr:1;
1609 		uint64_t ill_rwr:1;
1610 		uint64_t ill_rrd:1;
1611 		uint64_t rrsl_int:1;
1612 		uint64_t rpcnt0:1;
1613 		uint64_t rpcnt1:1;
1614 		uint64_t reserved_19_20:2;
1615 		uint64_t rptime0:1;
1616 		uint64_t rptime1:1;
1617 		uint64_t reserved_23_24:2;
1618 		uint64_t rdcnt0:1;
1619 		uint64_t rdcnt1:1;
1620 		uint64_t rdtime0:1;
1621 		uint64_t rdtime1:1;
1622 		uint64_t dma0_fi:1;
1623 		uint64_t dma1_fi:1;
1624 		uint64_t win_wr:1;
1625 		uint64_t ill_wr:1;
1626 		uint64_t ill_rd:1;
1627 		uint64_t reserved_34_63:30;
1628 #endif
1629 	} cn31xx;
1630 	struct cvmx_pci_int_enb2_s cn38xx;
1631 	struct cvmx_pci_int_enb2_s cn38xxp2;
1632 	struct cvmx_pci_int_enb2_cn31xx cn50xx;
1633 	struct cvmx_pci_int_enb2_s cn58xx;
1634 	struct cvmx_pci_int_enb2_s cn58xxp1;
1635 };
1636 
1637 union cvmx_pci_int_sum {
1638 	uint64_t u64;
1639 	struct cvmx_pci_int_sum_s {
1640 #ifdef __BIG_ENDIAN_BITFIELD
1641 		uint64_t reserved_34_63:30;
1642 		uint64_t ill_rd:1;
1643 		uint64_t ill_wr:1;
1644 		uint64_t win_wr:1;
1645 		uint64_t dma1_fi:1;
1646 		uint64_t dma0_fi:1;
1647 		uint64_t dtime1:1;
1648 		uint64_t dtime0:1;
1649 		uint64_t dcnt1:1;
1650 		uint64_t dcnt0:1;
1651 		uint64_t ptime3:1;
1652 		uint64_t ptime2:1;
1653 		uint64_t ptime1:1;
1654 		uint64_t ptime0:1;
1655 		uint64_t pcnt3:1;
1656 		uint64_t pcnt2:1;
1657 		uint64_t pcnt1:1;
1658 		uint64_t pcnt0:1;
1659 		uint64_t rsl_int:1;
1660 		uint64_t ill_rrd:1;
1661 		uint64_t ill_rwr:1;
1662 		uint64_t dperr:1;
1663 		uint64_t aperr:1;
1664 		uint64_t serr:1;
1665 		uint64_t tsr_abt:1;
1666 		uint64_t msc_msg:1;
1667 		uint64_t msi_mabt:1;
1668 		uint64_t msi_tabt:1;
1669 		uint64_t msi_per:1;
1670 		uint64_t mr_tto:1;
1671 		uint64_t mr_abt:1;
1672 		uint64_t tr_abt:1;
1673 		uint64_t mr_wtto:1;
1674 		uint64_t mr_wabt:1;
1675 		uint64_t tr_wabt:1;
1676 #else
1677 		uint64_t tr_wabt:1;
1678 		uint64_t mr_wabt:1;
1679 		uint64_t mr_wtto:1;
1680 		uint64_t tr_abt:1;
1681 		uint64_t mr_abt:1;
1682 		uint64_t mr_tto:1;
1683 		uint64_t msi_per:1;
1684 		uint64_t msi_tabt:1;
1685 		uint64_t msi_mabt:1;
1686 		uint64_t msc_msg:1;
1687 		uint64_t tsr_abt:1;
1688 		uint64_t serr:1;
1689 		uint64_t aperr:1;
1690 		uint64_t dperr:1;
1691 		uint64_t ill_rwr:1;
1692 		uint64_t ill_rrd:1;
1693 		uint64_t rsl_int:1;
1694 		uint64_t pcnt0:1;
1695 		uint64_t pcnt1:1;
1696 		uint64_t pcnt2:1;
1697 		uint64_t pcnt3:1;
1698 		uint64_t ptime0:1;
1699 		uint64_t ptime1:1;
1700 		uint64_t ptime2:1;
1701 		uint64_t ptime3:1;
1702 		uint64_t dcnt0:1;
1703 		uint64_t dcnt1:1;
1704 		uint64_t dtime0:1;
1705 		uint64_t dtime1:1;
1706 		uint64_t dma0_fi:1;
1707 		uint64_t dma1_fi:1;
1708 		uint64_t win_wr:1;
1709 		uint64_t ill_wr:1;
1710 		uint64_t ill_rd:1;
1711 		uint64_t reserved_34_63:30;
1712 #endif
1713 	} s;
1714 	struct cvmx_pci_int_sum_cn30xx {
1715 #ifdef __BIG_ENDIAN_BITFIELD
1716 		uint64_t reserved_34_63:30;
1717 		uint64_t ill_rd:1;
1718 		uint64_t ill_wr:1;
1719 		uint64_t win_wr:1;
1720 		uint64_t dma1_fi:1;
1721 		uint64_t dma0_fi:1;
1722 		uint64_t dtime1:1;
1723 		uint64_t dtime0:1;
1724 		uint64_t dcnt1:1;
1725 		uint64_t dcnt0:1;
1726 		uint64_t reserved_22_24:3;
1727 		uint64_t ptime0:1;
1728 		uint64_t reserved_18_20:3;
1729 		uint64_t pcnt0:1;
1730 		uint64_t rsl_int:1;
1731 		uint64_t ill_rrd:1;
1732 		uint64_t ill_rwr:1;
1733 		uint64_t dperr:1;
1734 		uint64_t aperr:1;
1735 		uint64_t serr:1;
1736 		uint64_t tsr_abt:1;
1737 		uint64_t msc_msg:1;
1738 		uint64_t msi_mabt:1;
1739 		uint64_t msi_tabt:1;
1740 		uint64_t msi_per:1;
1741 		uint64_t mr_tto:1;
1742 		uint64_t mr_abt:1;
1743 		uint64_t tr_abt:1;
1744 		uint64_t mr_wtto:1;
1745 		uint64_t mr_wabt:1;
1746 		uint64_t tr_wabt:1;
1747 #else
1748 		uint64_t tr_wabt:1;
1749 		uint64_t mr_wabt:1;
1750 		uint64_t mr_wtto:1;
1751 		uint64_t tr_abt:1;
1752 		uint64_t mr_abt:1;
1753 		uint64_t mr_tto:1;
1754 		uint64_t msi_per:1;
1755 		uint64_t msi_tabt:1;
1756 		uint64_t msi_mabt:1;
1757 		uint64_t msc_msg:1;
1758 		uint64_t tsr_abt:1;
1759 		uint64_t serr:1;
1760 		uint64_t aperr:1;
1761 		uint64_t dperr:1;
1762 		uint64_t ill_rwr:1;
1763 		uint64_t ill_rrd:1;
1764 		uint64_t rsl_int:1;
1765 		uint64_t pcnt0:1;
1766 		uint64_t reserved_18_20:3;
1767 		uint64_t ptime0:1;
1768 		uint64_t reserved_22_24:3;
1769 		uint64_t dcnt0:1;
1770 		uint64_t dcnt1:1;
1771 		uint64_t dtime0:1;
1772 		uint64_t dtime1:1;
1773 		uint64_t dma0_fi:1;
1774 		uint64_t dma1_fi:1;
1775 		uint64_t win_wr:1;
1776 		uint64_t ill_wr:1;
1777 		uint64_t ill_rd:1;
1778 		uint64_t reserved_34_63:30;
1779 #endif
1780 	} cn30xx;
1781 	struct cvmx_pci_int_sum_cn31xx {
1782 #ifdef __BIG_ENDIAN_BITFIELD
1783 		uint64_t reserved_34_63:30;
1784 		uint64_t ill_rd:1;
1785 		uint64_t ill_wr:1;
1786 		uint64_t win_wr:1;
1787 		uint64_t dma1_fi:1;
1788 		uint64_t dma0_fi:1;
1789 		uint64_t dtime1:1;
1790 		uint64_t dtime0:1;
1791 		uint64_t dcnt1:1;
1792 		uint64_t dcnt0:1;
1793 		uint64_t reserved_23_24:2;
1794 		uint64_t ptime1:1;
1795 		uint64_t ptime0:1;
1796 		uint64_t reserved_19_20:2;
1797 		uint64_t pcnt1:1;
1798 		uint64_t pcnt0:1;
1799 		uint64_t rsl_int:1;
1800 		uint64_t ill_rrd:1;
1801 		uint64_t ill_rwr:1;
1802 		uint64_t dperr:1;
1803 		uint64_t aperr:1;
1804 		uint64_t serr:1;
1805 		uint64_t tsr_abt:1;
1806 		uint64_t msc_msg:1;
1807 		uint64_t msi_mabt:1;
1808 		uint64_t msi_tabt:1;
1809 		uint64_t msi_per:1;
1810 		uint64_t mr_tto:1;
1811 		uint64_t mr_abt:1;
1812 		uint64_t tr_abt:1;
1813 		uint64_t mr_wtto:1;
1814 		uint64_t mr_wabt:1;
1815 		uint64_t tr_wabt:1;
1816 #else
1817 		uint64_t tr_wabt:1;
1818 		uint64_t mr_wabt:1;
1819 		uint64_t mr_wtto:1;
1820 		uint64_t tr_abt:1;
1821 		uint64_t mr_abt:1;
1822 		uint64_t mr_tto:1;
1823 		uint64_t msi_per:1;
1824 		uint64_t msi_tabt:1;
1825 		uint64_t msi_mabt:1;
1826 		uint64_t msc_msg:1;
1827 		uint64_t tsr_abt:1;
1828 		uint64_t serr:1;
1829 		uint64_t aperr:1;
1830 		uint64_t dperr:1;
1831 		uint64_t ill_rwr:1;
1832 		uint64_t ill_rrd:1;
1833 		uint64_t rsl_int:1;
1834 		uint64_t pcnt0:1;
1835 		uint64_t pcnt1:1;
1836 		uint64_t reserved_19_20:2;
1837 		uint64_t ptime0:1;
1838 		uint64_t ptime1:1;
1839 		uint64_t reserved_23_24:2;
1840 		uint64_t dcnt0:1;
1841 		uint64_t dcnt1:1;
1842 		uint64_t dtime0:1;
1843 		uint64_t dtime1:1;
1844 		uint64_t dma0_fi:1;
1845 		uint64_t dma1_fi:1;
1846 		uint64_t win_wr:1;
1847 		uint64_t ill_wr:1;
1848 		uint64_t ill_rd:1;
1849 		uint64_t reserved_34_63:30;
1850 #endif
1851 	} cn31xx;
1852 	struct cvmx_pci_int_sum_s cn38xx;
1853 	struct cvmx_pci_int_sum_s cn38xxp2;
1854 	struct cvmx_pci_int_sum_cn31xx cn50xx;
1855 	struct cvmx_pci_int_sum_s cn58xx;
1856 	struct cvmx_pci_int_sum_s cn58xxp1;
1857 };
1858 
1859 union cvmx_pci_int_sum2 {
1860 	uint64_t u64;
1861 	struct cvmx_pci_int_sum2_s {
1862 #ifdef __BIG_ENDIAN_BITFIELD
1863 		uint64_t reserved_34_63:30;
1864 		uint64_t ill_rd:1;
1865 		uint64_t ill_wr:1;
1866 		uint64_t win_wr:1;
1867 		uint64_t dma1_fi:1;
1868 		uint64_t dma0_fi:1;
1869 		uint64_t dtime1:1;
1870 		uint64_t dtime0:1;
1871 		uint64_t dcnt1:1;
1872 		uint64_t dcnt0:1;
1873 		uint64_t ptime3:1;
1874 		uint64_t ptime2:1;
1875 		uint64_t ptime1:1;
1876 		uint64_t ptime0:1;
1877 		uint64_t pcnt3:1;
1878 		uint64_t pcnt2:1;
1879 		uint64_t pcnt1:1;
1880 		uint64_t pcnt0:1;
1881 		uint64_t rsl_int:1;
1882 		uint64_t ill_rrd:1;
1883 		uint64_t ill_rwr:1;
1884 		uint64_t dperr:1;
1885 		uint64_t aperr:1;
1886 		uint64_t serr:1;
1887 		uint64_t tsr_abt:1;
1888 		uint64_t msc_msg:1;
1889 		uint64_t msi_mabt:1;
1890 		uint64_t msi_tabt:1;
1891 		uint64_t msi_per:1;
1892 		uint64_t mr_tto:1;
1893 		uint64_t mr_abt:1;
1894 		uint64_t tr_abt:1;
1895 		uint64_t mr_wtto:1;
1896 		uint64_t mr_wabt:1;
1897 		uint64_t tr_wabt:1;
1898 #else
1899 		uint64_t tr_wabt:1;
1900 		uint64_t mr_wabt:1;
1901 		uint64_t mr_wtto:1;
1902 		uint64_t tr_abt:1;
1903 		uint64_t mr_abt:1;
1904 		uint64_t mr_tto:1;
1905 		uint64_t msi_per:1;
1906 		uint64_t msi_tabt:1;
1907 		uint64_t msi_mabt:1;
1908 		uint64_t msc_msg:1;
1909 		uint64_t tsr_abt:1;
1910 		uint64_t serr:1;
1911 		uint64_t aperr:1;
1912 		uint64_t dperr:1;
1913 		uint64_t ill_rwr:1;
1914 		uint64_t ill_rrd:1;
1915 		uint64_t rsl_int:1;
1916 		uint64_t pcnt0:1;
1917 		uint64_t pcnt1:1;
1918 		uint64_t pcnt2:1;
1919 		uint64_t pcnt3:1;
1920 		uint64_t ptime0:1;
1921 		uint64_t ptime1:1;
1922 		uint64_t ptime2:1;
1923 		uint64_t ptime3:1;
1924 		uint64_t dcnt0:1;
1925 		uint64_t dcnt1:1;
1926 		uint64_t dtime0:1;
1927 		uint64_t dtime1:1;
1928 		uint64_t dma0_fi:1;
1929 		uint64_t dma1_fi:1;
1930 		uint64_t win_wr:1;
1931 		uint64_t ill_wr:1;
1932 		uint64_t ill_rd:1;
1933 		uint64_t reserved_34_63:30;
1934 #endif
1935 	} s;
1936 	struct cvmx_pci_int_sum2_cn30xx {
1937 #ifdef __BIG_ENDIAN_BITFIELD
1938 		uint64_t reserved_34_63:30;
1939 		uint64_t ill_rd:1;
1940 		uint64_t ill_wr:1;
1941 		uint64_t win_wr:1;
1942 		uint64_t dma1_fi:1;
1943 		uint64_t dma0_fi:1;
1944 		uint64_t dtime1:1;
1945 		uint64_t dtime0:1;
1946 		uint64_t dcnt1:1;
1947 		uint64_t dcnt0:1;
1948 		uint64_t reserved_22_24:3;
1949 		uint64_t ptime0:1;
1950 		uint64_t reserved_18_20:3;
1951 		uint64_t pcnt0:1;
1952 		uint64_t rsl_int:1;
1953 		uint64_t ill_rrd:1;
1954 		uint64_t ill_rwr:1;
1955 		uint64_t dperr:1;
1956 		uint64_t aperr:1;
1957 		uint64_t serr:1;
1958 		uint64_t tsr_abt:1;
1959 		uint64_t msc_msg:1;
1960 		uint64_t msi_mabt:1;
1961 		uint64_t msi_tabt:1;
1962 		uint64_t msi_per:1;
1963 		uint64_t mr_tto:1;
1964 		uint64_t mr_abt:1;
1965 		uint64_t tr_abt:1;
1966 		uint64_t mr_wtto:1;
1967 		uint64_t mr_wabt:1;
1968 		uint64_t tr_wabt:1;
1969 #else
1970 		uint64_t tr_wabt:1;
1971 		uint64_t mr_wabt:1;
1972 		uint64_t mr_wtto:1;
1973 		uint64_t tr_abt:1;
1974 		uint64_t mr_abt:1;
1975 		uint64_t mr_tto:1;
1976 		uint64_t msi_per:1;
1977 		uint64_t msi_tabt:1;
1978 		uint64_t msi_mabt:1;
1979 		uint64_t msc_msg:1;
1980 		uint64_t tsr_abt:1;
1981 		uint64_t serr:1;
1982 		uint64_t aperr:1;
1983 		uint64_t dperr:1;
1984 		uint64_t ill_rwr:1;
1985 		uint64_t ill_rrd:1;
1986 		uint64_t rsl_int:1;
1987 		uint64_t pcnt0:1;
1988 		uint64_t reserved_18_20:3;
1989 		uint64_t ptime0:1;
1990 		uint64_t reserved_22_24:3;
1991 		uint64_t dcnt0:1;
1992 		uint64_t dcnt1:1;
1993 		uint64_t dtime0:1;
1994 		uint64_t dtime1:1;
1995 		uint64_t dma0_fi:1;
1996 		uint64_t dma1_fi:1;
1997 		uint64_t win_wr:1;
1998 		uint64_t ill_wr:1;
1999 		uint64_t ill_rd:1;
2000 		uint64_t reserved_34_63:30;
2001 #endif
2002 	} cn30xx;
2003 	struct cvmx_pci_int_sum2_cn31xx {
2004 #ifdef __BIG_ENDIAN_BITFIELD
2005 		uint64_t reserved_34_63:30;
2006 		uint64_t ill_rd:1;
2007 		uint64_t ill_wr:1;
2008 		uint64_t win_wr:1;
2009 		uint64_t dma1_fi:1;
2010 		uint64_t dma0_fi:1;
2011 		uint64_t dtime1:1;
2012 		uint64_t dtime0:1;
2013 		uint64_t dcnt1:1;
2014 		uint64_t dcnt0:1;
2015 		uint64_t reserved_23_24:2;
2016 		uint64_t ptime1:1;
2017 		uint64_t ptime0:1;
2018 		uint64_t reserved_19_20:2;
2019 		uint64_t pcnt1:1;
2020 		uint64_t pcnt0:1;
2021 		uint64_t rsl_int:1;
2022 		uint64_t ill_rrd:1;
2023 		uint64_t ill_rwr:1;
2024 		uint64_t dperr:1;
2025 		uint64_t aperr:1;
2026 		uint64_t serr:1;
2027 		uint64_t tsr_abt:1;
2028 		uint64_t msc_msg:1;
2029 		uint64_t msi_mabt:1;
2030 		uint64_t msi_tabt:1;
2031 		uint64_t msi_per:1;
2032 		uint64_t mr_tto:1;
2033 		uint64_t mr_abt:1;
2034 		uint64_t tr_abt:1;
2035 		uint64_t mr_wtto:1;
2036 		uint64_t mr_wabt:1;
2037 		uint64_t tr_wabt:1;
2038 #else
2039 		uint64_t tr_wabt:1;
2040 		uint64_t mr_wabt:1;
2041 		uint64_t mr_wtto:1;
2042 		uint64_t tr_abt:1;
2043 		uint64_t mr_abt:1;
2044 		uint64_t mr_tto:1;
2045 		uint64_t msi_per:1;
2046 		uint64_t msi_tabt:1;
2047 		uint64_t msi_mabt:1;
2048 		uint64_t msc_msg:1;
2049 		uint64_t tsr_abt:1;
2050 		uint64_t serr:1;
2051 		uint64_t aperr:1;
2052 		uint64_t dperr:1;
2053 		uint64_t ill_rwr:1;
2054 		uint64_t ill_rrd:1;
2055 		uint64_t rsl_int:1;
2056 		uint64_t pcnt0:1;
2057 		uint64_t pcnt1:1;
2058 		uint64_t reserved_19_20:2;
2059 		uint64_t ptime0:1;
2060 		uint64_t ptime1:1;
2061 		uint64_t reserved_23_24:2;
2062 		uint64_t dcnt0:1;
2063 		uint64_t dcnt1:1;
2064 		uint64_t dtime0:1;
2065 		uint64_t dtime1:1;
2066 		uint64_t dma0_fi:1;
2067 		uint64_t dma1_fi:1;
2068 		uint64_t win_wr:1;
2069 		uint64_t ill_wr:1;
2070 		uint64_t ill_rd:1;
2071 		uint64_t reserved_34_63:30;
2072 #endif
2073 	} cn31xx;
2074 	struct cvmx_pci_int_sum2_s cn38xx;
2075 	struct cvmx_pci_int_sum2_s cn38xxp2;
2076 	struct cvmx_pci_int_sum2_cn31xx cn50xx;
2077 	struct cvmx_pci_int_sum2_s cn58xx;
2078 	struct cvmx_pci_int_sum2_s cn58xxp1;
2079 };
2080 
2081 union cvmx_pci_msi_rcv {
2082 	uint32_t u32;
2083 	struct cvmx_pci_msi_rcv_s {
2084 #ifdef __BIG_ENDIAN_BITFIELD
2085 		uint32_t reserved_6_31:26;
2086 		uint32_t intr:6;
2087 #else
2088 		uint32_t intr:6;
2089 		uint32_t reserved_6_31:26;
2090 #endif
2091 	} s;
2092 	struct cvmx_pci_msi_rcv_s cn30xx;
2093 	struct cvmx_pci_msi_rcv_s cn31xx;
2094 	struct cvmx_pci_msi_rcv_s cn38xx;
2095 	struct cvmx_pci_msi_rcv_s cn38xxp2;
2096 	struct cvmx_pci_msi_rcv_s cn50xx;
2097 	struct cvmx_pci_msi_rcv_s cn58xx;
2098 	struct cvmx_pci_msi_rcv_s cn58xxp1;
2099 };
2100 
2101 union cvmx_pci_pkt_creditsx {
2102 	uint32_t u32;
2103 	struct cvmx_pci_pkt_creditsx_s {
2104 #ifdef __BIG_ENDIAN_BITFIELD
2105 		uint32_t pkt_cnt:16;
2106 		uint32_t ptr_cnt:16;
2107 #else
2108 		uint32_t ptr_cnt:16;
2109 		uint32_t pkt_cnt:16;
2110 #endif
2111 	} s;
2112 	struct cvmx_pci_pkt_creditsx_s cn30xx;
2113 	struct cvmx_pci_pkt_creditsx_s cn31xx;
2114 	struct cvmx_pci_pkt_creditsx_s cn38xx;
2115 	struct cvmx_pci_pkt_creditsx_s cn38xxp2;
2116 	struct cvmx_pci_pkt_creditsx_s cn50xx;
2117 	struct cvmx_pci_pkt_creditsx_s cn58xx;
2118 	struct cvmx_pci_pkt_creditsx_s cn58xxp1;
2119 };
2120 
2121 union cvmx_pci_pkts_sentx {
2122 	uint32_t u32;
2123 	struct cvmx_pci_pkts_sentx_s {
2124 #ifdef __BIG_ENDIAN_BITFIELD
2125 		uint32_t pkt_cnt:32;
2126 #else
2127 		uint32_t pkt_cnt:32;
2128 #endif
2129 	} s;
2130 	struct cvmx_pci_pkts_sentx_s cn30xx;
2131 	struct cvmx_pci_pkts_sentx_s cn31xx;
2132 	struct cvmx_pci_pkts_sentx_s cn38xx;
2133 	struct cvmx_pci_pkts_sentx_s cn38xxp2;
2134 	struct cvmx_pci_pkts_sentx_s cn50xx;
2135 	struct cvmx_pci_pkts_sentx_s cn58xx;
2136 	struct cvmx_pci_pkts_sentx_s cn58xxp1;
2137 };
2138 
2139 union cvmx_pci_pkts_sent_int_levx {
2140 	uint32_t u32;
2141 	struct cvmx_pci_pkts_sent_int_levx_s {
2142 #ifdef __BIG_ENDIAN_BITFIELD
2143 		uint32_t pkt_cnt:32;
2144 #else
2145 		uint32_t pkt_cnt:32;
2146 #endif
2147 	} s;
2148 	struct cvmx_pci_pkts_sent_int_levx_s cn30xx;
2149 	struct cvmx_pci_pkts_sent_int_levx_s cn31xx;
2150 	struct cvmx_pci_pkts_sent_int_levx_s cn38xx;
2151 	struct cvmx_pci_pkts_sent_int_levx_s cn38xxp2;
2152 	struct cvmx_pci_pkts_sent_int_levx_s cn50xx;
2153 	struct cvmx_pci_pkts_sent_int_levx_s cn58xx;
2154 	struct cvmx_pci_pkts_sent_int_levx_s cn58xxp1;
2155 };
2156 
2157 union cvmx_pci_pkts_sent_timex {
2158 	uint32_t u32;
2159 	struct cvmx_pci_pkts_sent_timex_s {
2160 #ifdef __BIG_ENDIAN_BITFIELD
2161 		uint32_t pkt_time:32;
2162 #else
2163 		uint32_t pkt_time:32;
2164 #endif
2165 	} s;
2166 	struct cvmx_pci_pkts_sent_timex_s cn30xx;
2167 	struct cvmx_pci_pkts_sent_timex_s cn31xx;
2168 	struct cvmx_pci_pkts_sent_timex_s cn38xx;
2169 	struct cvmx_pci_pkts_sent_timex_s cn38xxp2;
2170 	struct cvmx_pci_pkts_sent_timex_s cn50xx;
2171 	struct cvmx_pci_pkts_sent_timex_s cn58xx;
2172 	struct cvmx_pci_pkts_sent_timex_s cn58xxp1;
2173 };
2174 
2175 union cvmx_pci_read_cmd_6 {
2176 	uint32_t u32;
2177 	struct cvmx_pci_read_cmd_6_s {
2178 #ifdef __BIG_ENDIAN_BITFIELD
2179 		uint32_t reserved_9_31:23;
2180 		uint32_t min_data:6;
2181 		uint32_t prefetch:3;
2182 #else
2183 		uint32_t prefetch:3;
2184 		uint32_t min_data:6;
2185 		uint32_t reserved_9_31:23;
2186 #endif
2187 	} s;
2188 	struct cvmx_pci_read_cmd_6_s cn30xx;
2189 	struct cvmx_pci_read_cmd_6_s cn31xx;
2190 	struct cvmx_pci_read_cmd_6_s cn38xx;
2191 	struct cvmx_pci_read_cmd_6_s cn38xxp2;
2192 	struct cvmx_pci_read_cmd_6_s cn50xx;
2193 	struct cvmx_pci_read_cmd_6_s cn58xx;
2194 	struct cvmx_pci_read_cmd_6_s cn58xxp1;
2195 };
2196 
2197 union cvmx_pci_read_cmd_c {
2198 	uint32_t u32;
2199 	struct cvmx_pci_read_cmd_c_s {
2200 #ifdef __BIG_ENDIAN_BITFIELD
2201 		uint32_t reserved_9_31:23;
2202 		uint32_t min_data:6;
2203 		uint32_t prefetch:3;
2204 #else
2205 		uint32_t prefetch:3;
2206 		uint32_t min_data:6;
2207 		uint32_t reserved_9_31:23;
2208 #endif
2209 	} s;
2210 	struct cvmx_pci_read_cmd_c_s cn30xx;
2211 	struct cvmx_pci_read_cmd_c_s cn31xx;
2212 	struct cvmx_pci_read_cmd_c_s cn38xx;
2213 	struct cvmx_pci_read_cmd_c_s cn38xxp2;
2214 	struct cvmx_pci_read_cmd_c_s cn50xx;
2215 	struct cvmx_pci_read_cmd_c_s cn58xx;
2216 	struct cvmx_pci_read_cmd_c_s cn58xxp1;
2217 };
2218 
2219 union cvmx_pci_read_cmd_e {
2220 	uint32_t u32;
2221 	struct cvmx_pci_read_cmd_e_s {
2222 #ifdef __BIG_ENDIAN_BITFIELD
2223 		uint32_t reserved_9_31:23;
2224 		uint32_t min_data:6;
2225 		uint32_t prefetch:3;
2226 #else
2227 		uint32_t prefetch:3;
2228 		uint32_t min_data:6;
2229 		uint32_t reserved_9_31:23;
2230 #endif
2231 	} s;
2232 	struct cvmx_pci_read_cmd_e_s cn30xx;
2233 	struct cvmx_pci_read_cmd_e_s cn31xx;
2234 	struct cvmx_pci_read_cmd_e_s cn38xx;
2235 	struct cvmx_pci_read_cmd_e_s cn38xxp2;
2236 	struct cvmx_pci_read_cmd_e_s cn50xx;
2237 	struct cvmx_pci_read_cmd_e_s cn58xx;
2238 	struct cvmx_pci_read_cmd_e_s cn58xxp1;
2239 };
2240 
2241 union cvmx_pci_read_timeout {
2242 	uint64_t u64;
2243 	struct cvmx_pci_read_timeout_s {
2244 #ifdef __BIG_ENDIAN_BITFIELD
2245 		uint64_t reserved_32_63:32;
2246 		uint64_t enb:1;
2247 		uint64_t cnt:31;
2248 #else
2249 		uint64_t cnt:31;
2250 		uint64_t enb:1;
2251 		uint64_t reserved_32_63:32;
2252 #endif
2253 	} s;
2254 	struct cvmx_pci_read_timeout_s cn30xx;
2255 	struct cvmx_pci_read_timeout_s cn31xx;
2256 	struct cvmx_pci_read_timeout_s cn38xx;
2257 	struct cvmx_pci_read_timeout_s cn38xxp2;
2258 	struct cvmx_pci_read_timeout_s cn50xx;
2259 	struct cvmx_pci_read_timeout_s cn58xx;
2260 	struct cvmx_pci_read_timeout_s cn58xxp1;
2261 };
2262 
2263 union cvmx_pci_scm_reg {
2264 	uint64_t u64;
2265 	struct cvmx_pci_scm_reg_s {
2266 #ifdef __BIG_ENDIAN_BITFIELD
2267 		uint64_t reserved_32_63:32;
2268 		uint64_t scm:32;
2269 #else
2270 		uint64_t scm:32;
2271 		uint64_t reserved_32_63:32;
2272 #endif
2273 	} s;
2274 	struct cvmx_pci_scm_reg_s cn30xx;
2275 	struct cvmx_pci_scm_reg_s cn31xx;
2276 	struct cvmx_pci_scm_reg_s cn38xx;
2277 	struct cvmx_pci_scm_reg_s cn38xxp2;
2278 	struct cvmx_pci_scm_reg_s cn50xx;
2279 	struct cvmx_pci_scm_reg_s cn58xx;
2280 	struct cvmx_pci_scm_reg_s cn58xxp1;
2281 };
2282 
2283 union cvmx_pci_tsr_reg {
2284 	uint64_t u64;
2285 	struct cvmx_pci_tsr_reg_s {
2286 #ifdef __BIG_ENDIAN_BITFIELD
2287 		uint64_t reserved_36_63:28;
2288 		uint64_t tsr:36;
2289 #else
2290 		uint64_t tsr:36;
2291 		uint64_t reserved_36_63:28;
2292 #endif
2293 	} s;
2294 	struct cvmx_pci_tsr_reg_s cn30xx;
2295 	struct cvmx_pci_tsr_reg_s cn31xx;
2296 	struct cvmx_pci_tsr_reg_s cn38xx;
2297 	struct cvmx_pci_tsr_reg_s cn38xxp2;
2298 	struct cvmx_pci_tsr_reg_s cn50xx;
2299 	struct cvmx_pci_tsr_reg_s cn58xx;
2300 	struct cvmx_pci_tsr_reg_s cn58xxp1;
2301 };
2302 
2303 union cvmx_pci_win_rd_addr {
2304 	uint64_t u64;
2305 	struct cvmx_pci_win_rd_addr_s {
2306 #ifdef __BIG_ENDIAN_BITFIELD
2307 		uint64_t reserved_49_63:15;
2308 		uint64_t iobit:1;
2309 		uint64_t reserved_0_47:48;
2310 #else
2311 		uint64_t reserved_0_47:48;
2312 		uint64_t iobit:1;
2313 		uint64_t reserved_49_63:15;
2314 #endif
2315 	} s;
2316 	struct cvmx_pci_win_rd_addr_cn30xx {
2317 #ifdef __BIG_ENDIAN_BITFIELD
2318 		uint64_t reserved_49_63:15;
2319 		uint64_t iobit:1;
2320 		uint64_t rd_addr:46;
2321 		uint64_t reserved_0_1:2;
2322 #else
2323 		uint64_t reserved_0_1:2;
2324 		uint64_t rd_addr:46;
2325 		uint64_t iobit:1;
2326 		uint64_t reserved_49_63:15;
2327 #endif
2328 	} cn30xx;
2329 	struct cvmx_pci_win_rd_addr_cn30xx cn31xx;
2330 	struct cvmx_pci_win_rd_addr_cn38xx {
2331 #ifdef __BIG_ENDIAN_BITFIELD
2332 		uint64_t reserved_49_63:15;
2333 		uint64_t iobit:1;
2334 		uint64_t rd_addr:45;
2335 		uint64_t reserved_0_2:3;
2336 #else
2337 		uint64_t reserved_0_2:3;
2338 		uint64_t rd_addr:45;
2339 		uint64_t iobit:1;
2340 		uint64_t reserved_49_63:15;
2341 #endif
2342 	} cn38xx;
2343 	struct cvmx_pci_win_rd_addr_cn38xx cn38xxp2;
2344 	struct cvmx_pci_win_rd_addr_cn30xx cn50xx;
2345 	struct cvmx_pci_win_rd_addr_cn38xx cn58xx;
2346 	struct cvmx_pci_win_rd_addr_cn38xx cn58xxp1;
2347 };
2348 
2349 union cvmx_pci_win_rd_data {
2350 	uint64_t u64;
2351 	struct cvmx_pci_win_rd_data_s {
2352 #ifdef __BIG_ENDIAN_BITFIELD
2353 		uint64_t rd_data:64;
2354 #else
2355 		uint64_t rd_data:64;
2356 #endif
2357 	} s;
2358 	struct cvmx_pci_win_rd_data_s cn30xx;
2359 	struct cvmx_pci_win_rd_data_s cn31xx;
2360 	struct cvmx_pci_win_rd_data_s cn38xx;
2361 	struct cvmx_pci_win_rd_data_s cn38xxp2;
2362 	struct cvmx_pci_win_rd_data_s cn50xx;
2363 	struct cvmx_pci_win_rd_data_s cn58xx;
2364 	struct cvmx_pci_win_rd_data_s cn58xxp1;
2365 };
2366 
2367 union cvmx_pci_win_wr_addr {
2368 	uint64_t u64;
2369 	struct cvmx_pci_win_wr_addr_s {
2370 #ifdef __BIG_ENDIAN_BITFIELD
2371 		uint64_t reserved_49_63:15;
2372 		uint64_t iobit:1;
2373 		uint64_t wr_addr:45;
2374 		uint64_t reserved_0_2:3;
2375 #else
2376 		uint64_t reserved_0_2:3;
2377 		uint64_t wr_addr:45;
2378 		uint64_t iobit:1;
2379 		uint64_t reserved_49_63:15;
2380 #endif
2381 	} s;
2382 	struct cvmx_pci_win_wr_addr_s cn30xx;
2383 	struct cvmx_pci_win_wr_addr_s cn31xx;
2384 	struct cvmx_pci_win_wr_addr_s cn38xx;
2385 	struct cvmx_pci_win_wr_addr_s cn38xxp2;
2386 	struct cvmx_pci_win_wr_addr_s cn50xx;
2387 	struct cvmx_pci_win_wr_addr_s cn58xx;
2388 	struct cvmx_pci_win_wr_addr_s cn58xxp1;
2389 };
2390 
2391 union cvmx_pci_win_wr_data {
2392 	uint64_t u64;
2393 	struct cvmx_pci_win_wr_data_s {
2394 #ifdef __BIG_ENDIAN_BITFIELD
2395 		uint64_t wr_data:64;
2396 #else
2397 		uint64_t wr_data:64;
2398 #endif
2399 	} s;
2400 	struct cvmx_pci_win_wr_data_s cn30xx;
2401 	struct cvmx_pci_win_wr_data_s cn31xx;
2402 	struct cvmx_pci_win_wr_data_s cn38xx;
2403 	struct cvmx_pci_win_wr_data_s cn38xxp2;
2404 	struct cvmx_pci_win_wr_data_s cn50xx;
2405 	struct cvmx_pci_win_wr_data_s cn58xx;
2406 	struct cvmx_pci_win_wr_data_s cn58xxp1;
2407 };
2408 
2409 union cvmx_pci_win_wr_mask {
2410 	uint64_t u64;
2411 	struct cvmx_pci_win_wr_mask_s {
2412 #ifdef __BIG_ENDIAN_BITFIELD
2413 		uint64_t reserved_8_63:56;
2414 		uint64_t wr_mask:8;
2415 #else
2416 		uint64_t wr_mask:8;
2417 		uint64_t reserved_8_63:56;
2418 #endif
2419 	} s;
2420 	struct cvmx_pci_win_wr_mask_s cn30xx;
2421 	struct cvmx_pci_win_wr_mask_s cn31xx;
2422 	struct cvmx_pci_win_wr_mask_s cn38xx;
2423 	struct cvmx_pci_win_wr_mask_s cn38xxp2;
2424 	struct cvmx_pci_win_wr_mask_s cn50xx;
2425 	struct cvmx_pci_win_wr_mask_s cn58xx;
2426 	struct cvmx_pci_win_wr_mask_s cn58xxp1;
2427 };
2428 
2429 #endif
2430