]> CyberLeo.Net >> Repos - FreeBSD/releng/10.0.git/blob - sys/contrib/octeon-sdk/cvmx-pciercx-defs.h
- Copy stable/10 (r259064) to releng/10.0 as part of the
[FreeBSD/releng/10.0.git] / sys / contrib / octeon-sdk / cvmx-pciercx-defs.h
1 /***********************license start***************
2  * Copyright (c) 2003-2012  Cavium Inc. (support@cavium.com). All rights
3  * reserved.
4  *
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are
8  * met:
9  *
10  *   * Redistributions of source code must retain the above copyright
11  *     notice, this list of conditions and the following disclaimer.
12  *
13  *   * Redistributions in binary form must reproduce the above
14  *     copyright notice, this list of conditions and the following
15  *     disclaimer in the documentation and/or other materials provided
16  *     with the distribution.
17
18  *   * Neither the name of Cavium Inc. nor the names of
19  *     its contributors may be used to endorse or promote products
20  *     derived from this software without specific prior written
21  *     permission.
22
23  * This Software, including technical data, may be subject to U.S. export  control
24  * laws, including the U.S. Export Administration Act and its  associated
25  * regulations, and may be subject to export or import  regulations in other
26  * countries.
27
28  * TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
29  * AND WITH ALL FAULTS AND CAVIUM INC. MAKES NO PROMISES, REPRESENTATIONS OR
30  * WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT TO
31  * THE SOFTWARE, INCLUDING ITS CONDITION, ITS CONFORMITY TO ANY REPRESENTATION OR
32  * DESCRIPTION, OR THE EXISTENCE OF ANY LATENT OR PATENT DEFECTS, AND CAVIUM
33  * SPECIFICALLY DISCLAIMS ALL IMPLIED (IF ANY) WARRANTIES OF TITLE,
34  * MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF
35  * VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR
36  * CORRESPONDENCE TO DESCRIPTION. THE ENTIRE  RISK ARISING OUT OF USE OR
37  * PERFORMANCE OF THE SOFTWARE LIES WITH YOU.
38  ***********************license end**************************************/
39
40
41 /**
42  * cvmx-pciercx-defs.h
43  *
44  * Configuration and status register (CSR) type definitions for
45  * Octeon pciercx.
46  *
47  * This file is auto generated. Do not edit.
48  *
49  * <hr>$Revision$<hr>
50  *
51  */
52 #ifndef __CVMX_PCIERCX_DEFS_H__
53 #define __CVMX_PCIERCX_DEFS_H__
54
55 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
56 static inline uint64_t CVMX_PCIERCX_CFG000(unsigned long block_id)
57 {
58         if (!(
59               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
60               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
61               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
62               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
63               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
64               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
65               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
66                 cvmx_warn("CVMX_PCIERCX_CFG000(%lu) is invalid on this chip\n", block_id);
67         return 0x0000000000000000ull;
68 }
69 #else
70 #define CVMX_PCIERCX_CFG000(block_id) (0x0000000000000000ull)
71 #endif
72 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
73 static inline uint64_t CVMX_PCIERCX_CFG001(unsigned long block_id)
74 {
75         if (!(
76               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
77               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
78               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
79               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
80               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
81               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
82               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
83                 cvmx_warn("CVMX_PCIERCX_CFG001(%lu) is invalid on this chip\n", block_id);
84         return 0x0000000000000004ull;
85 }
86 #else
87 #define CVMX_PCIERCX_CFG001(block_id) (0x0000000000000004ull)
88 #endif
89 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
90 static inline uint64_t CVMX_PCIERCX_CFG002(unsigned long block_id)
91 {
92         if (!(
93               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
94               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
95               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
96               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
97               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
98               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
99               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
100                 cvmx_warn("CVMX_PCIERCX_CFG002(%lu) is invalid on this chip\n", block_id);
101         return 0x0000000000000008ull;
102 }
103 #else
104 #define CVMX_PCIERCX_CFG002(block_id) (0x0000000000000008ull)
105 #endif
106 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
107 static inline uint64_t CVMX_PCIERCX_CFG003(unsigned long block_id)
108 {
109         if (!(
110               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
111               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
112               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
113               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
114               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
115               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
116               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
117                 cvmx_warn("CVMX_PCIERCX_CFG003(%lu) is invalid on this chip\n", block_id);
118         return 0x000000000000000Cull;
119 }
120 #else
121 #define CVMX_PCIERCX_CFG003(block_id) (0x000000000000000Cull)
122 #endif
123 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
124 static inline uint64_t CVMX_PCIERCX_CFG004(unsigned long block_id)
125 {
126         if (!(
127               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
128               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
129               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
130               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
131               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
132               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
133               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
134                 cvmx_warn("CVMX_PCIERCX_CFG004(%lu) is invalid on this chip\n", block_id);
135         return 0x0000000000000010ull;
136 }
137 #else
138 #define CVMX_PCIERCX_CFG004(block_id) (0x0000000000000010ull)
139 #endif
140 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
141 static inline uint64_t CVMX_PCIERCX_CFG005(unsigned long block_id)
142 {
143         if (!(
144               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
145               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
146               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
147               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
148               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
149               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
150               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
151                 cvmx_warn("CVMX_PCIERCX_CFG005(%lu) is invalid on this chip\n", block_id);
152         return 0x0000000000000014ull;
153 }
154 #else
155 #define CVMX_PCIERCX_CFG005(block_id) (0x0000000000000014ull)
156 #endif
157 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
158 static inline uint64_t CVMX_PCIERCX_CFG006(unsigned long block_id)
159 {
160         if (!(
161               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
162               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
163               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
164               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
165               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
166               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
167               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
168                 cvmx_warn("CVMX_PCIERCX_CFG006(%lu) is invalid on this chip\n", block_id);
169         return 0x0000000000000018ull;
170 }
171 #else
172 #define CVMX_PCIERCX_CFG006(block_id) (0x0000000000000018ull)
173 #endif
174 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
175 static inline uint64_t CVMX_PCIERCX_CFG007(unsigned long block_id)
176 {
177         if (!(
178               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
179               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
180               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
181               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
182               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
183               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
184               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
185                 cvmx_warn("CVMX_PCIERCX_CFG007(%lu) is invalid on this chip\n", block_id);
186         return 0x000000000000001Cull;
187 }
188 #else
189 #define CVMX_PCIERCX_CFG007(block_id) (0x000000000000001Cull)
190 #endif
191 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
192 static inline uint64_t CVMX_PCIERCX_CFG008(unsigned long block_id)
193 {
194         if (!(
195               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
196               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
197               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
198               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
199               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
200               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
201               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
202                 cvmx_warn("CVMX_PCIERCX_CFG008(%lu) is invalid on this chip\n", block_id);
203         return 0x0000000000000020ull;
204 }
205 #else
206 #define CVMX_PCIERCX_CFG008(block_id) (0x0000000000000020ull)
207 #endif
208 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
209 static inline uint64_t CVMX_PCIERCX_CFG009(unsigned long block_id)
210 {
211         if (!(
212               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
213               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
214               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
215               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
216               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
217               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
218               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
219                 cvmx_warn("CVMX_PCIERCX_CFG009(%lu) is invalid on this chip\n", block_id);
220         return 0x0000000000000024ull;
221 }
222 #else
223 #define CVMX_PCIERCX_CFG009(block_id) (0x0000000000000024ull)
224 #endif
225 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
226 static inline uint64_t CVMX_PCIERCX_CFG010(unsigned long block_id)
227 {
228         if (!(
229               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
230               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
231               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
232               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
233               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
234               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
235               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
236                 cvmx_warn("CVMX_PCIERCX_CFG010(%lu) is invalid on this chip\n", block_id);
237         return 0x0000000000000028ull;
238 }
239 #else
240 #define CVMX_PCIERCX_CFG010(block_id) (0x0000000000000028ull)
241 #endif
242 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
243 static inline uint64_t CVMX_PCIERCX_CFG011(unsigned long block_id)
244 {
245         if (!(
246               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
247               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
248               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
249               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
250               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
251               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
252               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
253                 cvmx_warn("CVMX_PCIERCX_CFG011(%lu) is invalid on this chip\n", block_id);
254         return 0x000000000000002Cull;
255 }
256 #else
257 #define CVMX_PCIERCX_CFG011(block_id) (0x000000000000002Cull)
258 #endif
259 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
260 static inline uint64_t CVMX_PCIERCX_CFG012(unsigned long block_id)
261 {
262         if (!(
263               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
264               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
265               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
266               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
267               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
268               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
269               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
270                 cvmx_warn("CVMX_PCIERCX_CFG012(%lu) is invalid on this chip\n", block_id);
271         return 0x0000000000000030ull;
272 }
273 #else
274 #define CVMX_PCIERCX_CFG012(block_id) (0x0000000000000030ull)
275 #endif
276 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
277 static inline uint64_t CVMX_PCIERCX_CFG013(unsigned long block_id)
278 {
279         if (!(
280               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
281               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
282               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
283               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
284               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
285               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
286               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
287                 cvmx_warn("CVMX_PCIERCX_CFG013(%lu) is invalid on this chip\n", block_id);
288         return 0x0000000000000034ull;
289 }
290 #else
291 #define CVMX_PCIERCX_CFG013(block_id) (0x0000000000000034ull)
292 #endif
293 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
294 static inline uint64_t CVMX_PCIERCX_CFG014(unsigned long block_id)
295 {
296         if (!(
297               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
298               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
299               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
300               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
301               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
302               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
303               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
304                 cvmx_warn("CVMX_PCIERCX_CFG014(%lu) is invalid on this chip\n", block_id);
305         return 0x0000000000000038ull;
306 }
307 #else
308 #define CVMX_PCIERCX_CFG014(block_id) (0x0000000000000038ull)
309 #endif
310 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
311 static inline uint64_t CVMX_PCIERCX_CFG015(unsigned long block_id)
312 {
313         if (!(
314               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
315               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
316               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
317               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
318               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
319               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
320               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
321                 cvmx_warn("CVMX_PCIERCX_CFG015(%lu) is invalid on this chip\n", block_id);
322         return 0x000000000000003Cull;
323 }
324 #else
325 #define CVMX_PCIERCX_CFG015(block_id) (0x000000000000003Cull)
326 #endif
327 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
328 static inline uint64_t CVMX_PCIERCX_CFG016(unsigned long block_id)
329 {
330         if (!(
331               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
332               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
333               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
334               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
335               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
336               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
337               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
338                 cvmx_warn("CVMX_PCIERCX_CFG016(%lu) is invalid on this chip\n", block_id);
339         return 0x0000000000000040ull;
340 }
341 #else
342 #define CVMX_PCIERCX_CFG016(block_id) (0x0000000000000040ull)
343 #endif
344 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
345 static inline uint64_t CVMX_PCIERCX_CFG017(unsigned long block_id)
346 {
347         if (!(
348               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
349               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
350               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
351               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
352               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
353               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
354               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
355                 cvmx_warn("CVMX_PCIERCX_CFG017(%lu) is invalid on this chip\n", block_id);
356         return 0x0000000000000044ull;
357 }
358 #else
359 #define CVMX_PCIERCX_CFG017(block_id) (0x0000000000000044ull)
360 #endif
361 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
362 static inline uint64_t CVMX_PCIERCX_CFG020(unsigned long block_id)
363 {
364         if (!(
365               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
366               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
367               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
368               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
369               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
370               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
371               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
372                 cvmx_warn("CVMX_PCIERCX_CFG020(%lu) is invalid on this chip\n", block_id);
373         return 0x0000000000000050ull;
374 }
375 #else
376 #define CVMX_PCIERCX_CFG020(block_id) (0x0000000000000050ull)
377 #endif
378 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
379 static inline uint64_t CVMX_PCIERCX_CFG021(unsigned long block_id)
380 {
381         if (!(
382               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
383               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
384               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
385               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
386               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
387               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
388               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
389                 cvmx_warn("CVMX_PCIERCX_CFG021(%lu) is invalid on this chip\n", block_id);
390         return 0x0000000000000054ull;
391 }
392 #else
393 #define CVMX_PCIERCX_CFG021(block_id) (0x0000000000000054ull)
394 #endif
395 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
396 static inline uint64_t CVMX_PCIERCX_CFG022(unsigned long block_id)
397 {
398         if (!(
399               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
400               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
401               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
402               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
403               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
404               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
405               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
406                 cvmx_warn("CVMX_PCIERCX_CFG022(%lu) is invalid on this chip\n", block_id);
407         return 0x0000000000000058ull;
408 }
409 #else
410 #define CVMX_PCIERCX_CFG022(block_id) (0x0000000000000058ull)
411 #endif
412 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
413 static inline uint64_t CVMX_PCIERCX_CFG023(unsigned long block_id)
414 {
415         if (!(
416               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
417               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
418               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
419               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
420               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
421               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
422               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
423                 cvmx_warn("CVMX_PCIERCX_CFG023(%lu) is invalid on this chip\n", block_id);
424         return 0x000000000000005Cull;
425 }
426 #else
427 #define CVMX_PCIERCX_CFG023(block_id) (0x000000000000005Cull)
428 #endif
429 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
430 static inline uint64_t CVMX_PCIERCX_CFG028(unsigned long block_id)
431 {
432         if (!(
433               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
434               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
435               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
436               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
437               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
438               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
439               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
440                 cvmx_warn("CVMX_PCIERCX_CFG028(%lu) is invalid on this chip\n", block_id);
441         return 0x0000000000000070ull;
442 }
443 #else
444 #define CVMX_PCIERCX_CFG028(block_id) (0x0000000000000070ull)
445 #endif
446 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
447 static inline uint64_t CVMX_PCIERCX_CFG029(unsigned long block_id)
448 {
449         if (!(
450               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
451               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
452               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
453               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
454               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
455               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
456               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
457                 cvmx_warn("CVMX_PCIERCX_CFG029(%lu) is invalid on this chip\n", block_id);
458         return 0x0000000000000074ull;
459 }
460 #else
461 #define CVMX_PCIERCX_CFG029(block_id) (0x0000000000000074ull)
462 #endif
463 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
464 static inline uint64_t CVMX_PCIERCX_CFG030(unsigned long block_id)
465 {
466         if (!(
467               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
468               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
469               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
470               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
471               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
472               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
473               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
474                 cvmx_warn("CVMX_PCIERCX_CFG030(%lu) is invalid on this chip\n", block_id);
475         return 0x0000000000000078ull;
476 }
477 #else
478 #define CVMX_PCIERCX_CFG030(block_id) (0x0000000000000078ull)
479 #endif
480 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
481 static inline uint64_t CVMX_PCIERCX_CFG031(unsigned long block_id)
482 {
483         if (!(
484               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
485               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
486               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
487               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
488               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
489               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
490               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
491                 cvmx_warn("CVMX_PCIERCX_CFG031(%lu) is invalid on this chip\n", block_id);
492         return 0x000000000000007Cull;
493 }
494 #else
495 #define CVMX_PCIERCX_CFG031(block_id) (0x000000000000007Cull)
496 #endif
497 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
498 static inline uint64_t CVMX_PCIERCX_CFG032(unsigned long block_id)
499 {
500         if (!(
501               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
502               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
503               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
504               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
505               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
506               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
507               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
508                 cvmx_warn("CVMX_PCIERCX_CFG032(%lu) is invalid on this chip\n", block_id);
509         return 0x0000000000000080ull;
510 }
511 #else
512 #define CVMX_PCIERCX_CFG032(block_id) (0x0000000000000080ull)
513 #endif
514 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
515 static inline uint64_t CVMX_PCIERCX_CFG033(unsigned long block_id)
516 {
517         if (!(
518               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
519               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
520               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
521               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
522               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
523               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
524               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
525                 cvmx_warn("CVMX_PCIERCX_CFG033(%lu) is invalid on this chip\n", block_id);
526         return 0x0000000000000084ull;
527 }
528 #else
529 #define CVMX_PCIERCX_CFG033(block_id) (0x0000000000000084ull)
530 #endif
531 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
532 static inline uint64_t CVMX_PCIERCX_CFG034(unsigned long block_id)
533 {
534         if (!(
535               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
536               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
537               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
538               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
539               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
540               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
541               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
542                 cvmx_warn("CVMX_PCIERCX_CFG034(%lu) is invalid on this chip\n", block_id);
543         return 0x0000000000000088ull;
544 }
545 #else
546 #define CVMX_PCIERCX_CFG034(block_id) (0x0000000000000088ull)
547 #endif
548 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
549 static inline uint64_t CVMX_PCIERCX_CFG035(unsigned long block_id)
550 {
551         if (!(
552               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
553               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
554               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
555               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
556               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
557               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
558               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
559                 cvmx_warn("CVMX_PCIERCX_CFG035(%lu) is invalid on this chip\n", block_id);
560         return 0x000000000000008Cull;
561 }
562 #else
563 #define CVMX_PCIERCX_CFG035(block_id) (0x000000000000008Cull)
564 #endif
565 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
566 static inline uint64_t CVMX_PCIERCX_CFG036(unsigned long block_id)
567 {
568         if (!(
569               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
570               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
571               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
572               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
573               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
574               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
575               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
576                 cvmx_warn("CVMX_PCIERCX_CFG036(%lu) is invalid on this chip\n", block_id);
577         return 0x0000000000000090ull;
578 }
579 #else
580 #define CVMX_PCIERCX_CFG036(block_id) (0x0000000000000090ull)
581 #endif
582 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
583 static inline uint64_t CVMX_PCIERCX_CFG037(unsigned long block_id)
584 {
585         if (!(
586               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
587               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
588               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
589               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
590               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
591               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
592               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
593                 cvmx_warn("CVMX_PCIERCX_CFG037(%lu) is invalid on this chip\n", block_id);
594         return 0x0000000000000094ull;
595 }
596 #else
597 #define CVMX_PCIERCX_CFG037(block_id) (0x0000000000000094ull)
598 #endif
599 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
600 static inline uint64_t CVMX_PCIERCX_CFG038(unsigned long block_id)
601 {
602         if (!(
603               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
604               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
605               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
606               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
607               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
608               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
609               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
610                 cvmx_warn("CVMX_PCIERCX_CFG038(%lu) is invalid on this chip\n", block_id);
611         return 0x0000000000000098ull;
612 }
613 #else
614 #define CVMX_PCIERCX_CFG038(block_id) (0x0000000000000098ull)
615 #endif
616 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
617 static inline uint64_t CVMX_PCIERCX_CFG039(unsigned long block_id)
618 {
619         if (!(
620               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
621               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
622               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
623               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
624               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
625               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
626               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
627                 cvmx_warn("CVMX_PCIERCX_CFG039(%lu) is invalid on this chip\n", block_id);
628         return 0x000000000000009Cull;
629 }
630 #else
631 #define CVMX_PCIERCX_CFG039(block_id) (0x000000000000009Cull)
632 #endif
633 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
634 static inline uint64_t CVMX_PCIERCX_CFG040(unsigned long block_id)
635 {
636         if (!(
637               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
638               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
639               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
640               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
641               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
642               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
643               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
644                 cvmx_warn("CVMX_PCIERCX_CFG040(%lu) is invalid on this chip\n", block_id);
645         return 0x00000000000000A0ull;
646 }
647 #else
648 #define CVMX_PCIERCX_CFG040(block_id) (0x00000000000000A0ull)
649 #endif
650 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
651 static inline uint64_t CVMX_PCIERCX_CFG041(unsigned long block_id)
652 {
653         if (!(
654               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
655               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
656               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
657               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
658               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
659               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
660               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
661                 cvmx_warn("CVMX_PCIERCX_CFG041(%lu) is invalid on this chip\n", block_id);
662         return 0x00000000000000A4ull;
663 }
664 #else
665 #define CVMX_PCIERCX_CFG041(block_id) (0x00000000000000A4ull)
666 #endif
667 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
668 static inline uint64_t CVMX_PCIERCX_CFG042(unsigned long block_id)
669 {
670         if (!(
671               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
672               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
673               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
674               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
675               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
676               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
677               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
678                 cvmx_warn("CVMX_PCIERCX_CFG042(%lu) is invalid on this chip\n", block_id);
679         return 0x00000000000000A8ull;
680 }
681 #else
682 #define CVMX_PCIERCX_CFG042(block_id) (0x00000000000000A8ull)
683 #endif
684 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
685 static inline uint64_t CVMX_PCIERCX_CFG064(unsigned long block_id)
686 {
687         if (!(
688               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
689               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
690               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
691               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
692               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
693               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
694               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
695                 cvmx_warn("CVMX_PCIERCX_CFG064(%lu) is invalid on this chip\n", block_id);
696         return 0x0000000000000100ull;
697 }
698 #else
699 #define CVMX_PCIERCX_CFG064(block_id) (0x0000000000000100ull)
700 #endif
701 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
702 static inline uint64_t CVMX_PCIERCX_CFG065(unsigned long block_id)
703 {
704         if (!(
705               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
706               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
707               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
708               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
709               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
710               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
711               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
712                 cvmx_warn("CVMX_PCIERCX_CFG065(%lu) is invalid on this chip\n", block_id);
713         return 0x0000000000000104ull;
714 }
715 #else
716 #define CVMX_PCIERCX_CFG065(block_id) (0x0000000000000104ull)
717 #endif
718 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
719 static inline uint64_t CVMX_PCIERCX_CFG066(unsigned long block_id)
720 {
721         if (!(
722               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
723               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
724               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
725               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
726               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
727               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
728               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
729                 cvmx_warn("CVMX_PCIERCX_CFG066(%lu) is invalid on this chip\n", block_id);
730         return 0x0000000000000108ull;
731 }
732 #else
733 #define CVMX_PCIERCX_CFG066(block_id) (0x0000000000000108ull)
734 #endif
735 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
736 static inline uint64_t CVMX_PCIERCX_CFG067(unsigned long block_id)
737 {
738         if (!(
739               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
740               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
741               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
742               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
743               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
744               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
745               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
746                 cvmx_warn("CVMX_PCIERCX_CFG067(%lu) is invalid on this chip\n", block_id);
747         return 0x000000000000010Cull;
748 }
749 #else
750 #define CVMX_PCIERCX_CFG067(block_id) (0x000000000000010Cull)
751 #endif
752 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
753 static inline uint64_t CVMX_PCIERCX_CFG068(unsigned long block_id)
754 {
755         if (!(
756               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
757               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
758               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
759               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
760               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
761               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
762               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
763                 cvmx_warn("CVMX_PCIERCX_CFG068(%lu) is invalid on this chip\n", block_id);
764         return 0x0000000000000110ull;
765 }
766 #else
767 #define CVMX_PCIERCX_CFG068(block_id) (0x0000000000000110ull)
768 #endif
769 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
770 static inline uint64_t CVMX_PCIERCX_CFG069(unsigned long block_id)
771 {
772         if (!(
773               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
774               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
775               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
776               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
777               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
778               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
779               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
780                 cvmx_warn("CVMX_PCIERCX_CFG069(%lu) is invalid on this chip\n", block_id);
781         return 0x0000000000000114ull;
782 }
783 #else
784 #define CVMX_PCIERCX_CFG069(block_id) (0x0000000000000114ull)
785 #endif
786 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
787 static inline uint64_t CVMX_PCIERCX_CFG070(unsigned long block_id)
788 {
789         if (!(
790               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
791               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
792               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
793               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
794               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
795               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
796               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
797                 cvmx_warn("CVMX_PCIERCX_CFG070(%lu) is invalid on this chip\n", block_id);
798         return 0x0000000000000118ull;
799 }
800 #else
801 #define CVMX_PCIERCX_CFG070(block_id) (0x0000000000000118ull)
802 #endif
803 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
804 static inline uint64_t CVMX_PCIERCX_CFG071(unsigned long block_id)
805 {
806         if (!(
807               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
808               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
809               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
810               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
811               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
812               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
813               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
814                 cvmx_warn("CVMX_PCIERCX_CFG071(%lu) is invalid on this chip\n", block_id);
815         return 0x000000000000011Cull;
816 }
817 #else
818 #define CVMX_PCIERCX_CFG071(block_id) (0x000000000000011Cull)
819 #endif
820 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
821 static inline uint64_t CVMX_PCIERCX_CFG072(unsigned long block_id)
822 {
823         if (!(
824               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
825               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
826               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
827               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
828               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
829               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
830               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
831                 cvmx_warn("CVMX_PCIERCX_CFG072(%lu) is invalid on this chip\n", block_id);
832         return 0x0000000000000120ull;
833 }
834 #else
835 #define CVMX_PCIERCX_CFG072(block_id) (0x0000000000000120ull)
836 #endif
837 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
838 static inline uint64_t CVMX_PCIERCX_CFG073(unsigned long block_id)
839 {
840         if (!(
841               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
842               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
843               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
844               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
845               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
846               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
847               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
848                 cvmx_warn("CVMX_PCIERCX_CFG073(%lu) is invalid on this chip\n", block_id);
849         return 0x0000000000000124ull;
850 }
851 #else
852 #define CVMX_PCIERCX_CFG073(block_id) (0x0000000000000124ull)
853 #endif
854 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
855 static inline uint64_t CVMX_PCIERCX_CFG074(unsigned long block_id)
856 {
857         if (!(
858               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
859               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
860               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
861               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
862               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
863               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
864               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
865                 cvmx_warn("CVMX_PCIERCX_CFG074(%lu) is invalid on this chip\n", block_id);
866         return 0x0000000000000128ull;
867 }
868 #else
869 #define CVMX_PCIERCX_CFG074(block_id) (0x0000000000000128ull)
870 #endif
871 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
872 static inline uint64_t CVMX_PCIERCX_CFG075(unsigned long block_id)
873 {
874         if (!(
875               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
876               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
877               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
878               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
879               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
880               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
881               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
882                 cvmx_warn("CVMX_PCIERCX_CFG075(%lu) is invalid on this chip\n", block_id);
883         return 0x000000000000012Cull;
884 }
885 #else
886 #define CVMX_PCIERCX_CFG075(block_id) (0x000000000000012Cull)
887 #endif
888 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
889 static inline uint64_t CVMX_PCIERCX_CFG076(unsigned long block_id)
890 {
891         if (!(
892               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
893               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
894               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
895               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
896               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
897               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
898               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
899                 cvmx_warn("CVMX_PCIERCX_CFG076(%lu) is invalid on this chip\n", block_id);
900         return 0x0000000000000130ull;
901 }
902 #else
903 #define CVMX_PCIERCX_CFG076(block_id) (0x0000000000000130ull)
904 #endif
905 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
906 static inline uint64_t CVMX_PCIERCX_CFG077(unsigned long block_id)
907 {
908         if (!(
909               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
910               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
911               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
912               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
913               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
914               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
915               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
916                 cvmx_warn("CVMX_PCIERCX_CFG077(%lu) is invalid on this chip\n", block_id);
917         return 0x0000000000000134ull;
918 }
919 #else
920 #define CVMX_PCIERCX_CFG077(block_id) (0x0000000000000134ull)
921 #endif
922 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
923 static inline uint64_t CVMX_PCIERCX_CFG448(unsigned long block_id)
924 {
925         if (!(
926               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
927               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
928               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
929               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
930               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
931               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
932               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
933                 cvmx_warn("CVMX_PCIERCX_CFG448(%lu) is invalid on this chip\n", block_id);
934         return 0x0000000000000700ull;
935 }
936 #else
937 #define CVMX_PCIERCX_CFG448(block_id) (0x0000000000000700ull)
938 #endif
939 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
940 static inline uint64_t CVMX_PCIERCX_CFG449(unsigned long block_id)
941 {
942         if (!(
943               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
944               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
945               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
946               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
947               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
948               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
949               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
950                 cvmx_warn("CVMX_PCIERCX_CFG449(%lu) is invalid on this chip\n", block_id);
951         return 0x0000000000000704ull;
952 }
953 #else
954 #define CVMX_PCIERCX_CFG449(block_id) (0x0000000000000704ull)
955 #endif
956 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
957 static inline uint64_t CVMX_PCIERCX_CFG450(unsigned long block_id)
958 {
959         if (!(
960               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
961               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
962               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
963               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
964               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
965               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
966               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
967                 cvmx_warn("CVMX_PCIERCX_CFG450(%lu) is invalid on this chip\n", block_id);
968         return 0x0000000000000708ull;
969 }
970 #else
971 #define CVMX_PCIERCX_CFG450(block_id) (0x0000000000000708ull)
972 #endif
973 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
974 static inline uint64_t CVMX_PCIERCX_CFG451(unsigned long block_id)
975 {
976         if (!(
977               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
978               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
979               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
980               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
981               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
982               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
983               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
984                 cvmx_warn("CVMX_PCIERCX_CFG451(%lu) is invalid on this chip\n", block_id);
985         return 0x000000000000070Cull;
986 }
987 #else
988 #define CVMX_PCIERCX_CFG451(block_id) (0x000000000000070Cull)
989 #endif
990 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
991 static inline uint64_t CVMX_PCIERCX_CFG452(unsigned long block_id)
992 {
993         if (!(
994               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
995               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
996               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
997               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
998               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
999               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
1000               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
1001                 cvmx_warn("CVMX_PCIERCX_CFG452(%lu) is invalid on this chip\n", block_id);
1002         return 0x0000000000000710ull;
1003 }
1004 #else
1005 #define CVMX_PCIERCX_CFG452(block_id) (0x0000000000000710ull)
1006 #endif
1007 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1008 static inline uint64_t CVMX_PCIERCX_CFG453(unsigned long block_id)
1009 {
1010         if (!(
1011               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
1012               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
1013               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
1014               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
1015               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
1016               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
1017               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
1018                 cvmx_warn("CVMX_PCIERCX_CFG453(%lu) is invalid on this chip\n", block_id);
1019         return 0x0000000000000714ull;
1020 }
1021 #else
1022 #define CVMX_PCIERCX_CFG453(block_id) (0x0000000000000714ull)
1023 #endif
1024 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1025 static inline uint64_t CVMX_PCIERCX_CFG454(unsigned long block_id)
1026 {
1027         if (!(
1028               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
1029               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
1030               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
1031               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
1032               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
1033               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
1034               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
1035                 cvmx_warn("CVMX_PCIERCX_CFG454(%lu) is invalid on this chip\n", block_id);
1036         return 0x0000000000000718ull;
1037 }
1038 #else
1039 #define CVMX_PCIERCX_CFG454(block_id) (0x0000000000000718ull)
1040 #endif
1041 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1042 static inline uint64_t CVMX_PCIERCX_CFG455(unsigned long block_id)
1043 {
1044         if (!(
1045               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
1046               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
1047               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
1048               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
1049               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
1050               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
1051               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
1052                 cvmx_warn("CVMX_PCIERCX_CFG455(%lu) is invalid on this chip\n", block_id);
1053         return 0x000000000000071Cull;
1054 }
1055 #else
1056 #define CVMX_PCIERCX_CFG455(block_id) (0x000000000000071Cull)
1057 #endif
1058 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1059 static inline uint64_t CVMX_PCIERCX_CFG456(unsigned long block_id)
1060 {
1061         if (!(
1062               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
1063               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
1064               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
1065               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
1066               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
1067               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
1068               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
1069                 cvmx_warn("CVMX_PCIERCX_CFG456(%lu) is invalid on this chip\n", block_id);
1070         return 0x0000000000000720ull;
1071 }
1072 #else
1073 #define CVMX_PCIERCX_CFG456(block_id) (0x0000000000000720ull)
1074 #endif
1075 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1076 static inline uint64_t CVMX_PCIERCX_CFG458(unsigned long block_id)
1077 {
1078         if (!(
1079               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
1080               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
1081               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
1082               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
1083               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
1084               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
1085               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
1086                 cvmx_warn("CVMX_PCIERCX_CFG458(%lu) is invalid on this chip\n", block_id);
1087         return 0x0000000000000728ull;
1088 }
1089 #else
1090 #define CVMX_PCIERCX_CFG458(block_id) (0x0000000000000728ull)
1091 #endif
1092 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1093 static inline uint64_t CVMX_PCIERCX_CFG459(unsigned long block_id)
1094 {
1095         if (!(
1096               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
1097               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
1098               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
1099               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
1100               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
1101               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
1102               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
1103                 cvmx_warn("CVMX_PCIERCX_CFG459(%lu) is invalid on this chip\n", block_id);
1104         return 0x000000000000072Cull;
1105 }
1106 #else
1107 #define CVMX_PCIERCX_CFG459(block_id) (0x000000000000072Cull)
1108 #endif
1109 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1110 static inline uint64_t CVMX_PCIERCX_CFG460(unsigned long block_id)
1111 {
1112         if (!(
1113               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
1114               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
1115               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
1116               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
1117               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
1118               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
1119               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
1120                 cvmx_warn("CVMX_PCIERCX_CFG460(%lu) is invalid on this chip\n", block_id);
1121         return 0x0000000000000730ull;
1122 }
1123 #else
1124 #define CVMX_PCIERCX_CFG460(block_id) (0x0000000000000730ull)
1125 #endif
1126 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1127 static inline uint64_t CVMX_PCIERCX_CFG461(unsigned long block_id)
1128 {
1129         if (!(
1130               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
1131               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
1132               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
1133               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
1134               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
1135               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
1136               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
1137                 cvmx_warn("CVMX_PCIERCX_CFG461(%lu) is invalid on this chip\n", block_id);
1138         return 0x0000000000000734ull;
1139 }
1140 #else
1141 #define CVMX_PCIERCX_CFG461(block_id) (0x0000000000000734ull)
1142 #endif
1143 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1144 static inline uint64_t CVMX_PCIERCX_CFG462(unsigned long block_id)
1145 {
1146         if (!(
1147               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
1148               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
1149               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
1150               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
1151               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
1152               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
1153               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
1154                 cvmx_warn("CVMX_PCIERCX_CFG462(%lu) is invalid on this chip\n", block_id);
1155         return 0x0000000000000738ull;
1156 }
1157 #else
1158 #define CVMX_PCIERCX_CFG462(block_id) (0x0000000000000738ull)
1159 #endif
1160 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1161 static inline uint64_t CVMX_PCIERCX_CFG463(unsigned long block_id)
1162 {
1163         if (!(
1164               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
1165               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
1166               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
1167               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
1168               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
1169               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
1170               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
1171                 cvmx_warn("CVMX_PCIERCX_CFG463(%lu) is invalid on this chip\n", block_id);
1172         return 0x000000000000073Cull;
1173 }
1174 #else
1175 #define CVMX_PCIERCX_CFG463(block_id) (0x000000000000073Cull)
1176 #endif
1177 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1178 static inline uint64_t CVMX_PCIERCX_CFG464(unsigned long block_id)
1179 {
1180         if (!(
1181               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
1182               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
1183               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
1184               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
1185               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
1186               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
1187               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
1188                 cvmx_warn("CVMX_PCIERCX_CFG464(%lu) is invalid on this chip\n", block_id);
1189         return 0x0000000000000740ull;
1190 }
1191 #else
1192 #define CVMX_PCIERCX_CFG464(block_id) (0x0000000000000740ull)
1193 #endif
1194 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1195 static inline uint64_t CVMX_PCIERCX_CFG465(unsigned long block_id)
1196 {
1197         if (!(
1198               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
1199               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
1200               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
1201               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
1202               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
1203               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
1204               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
1205                 cvmx_warn("CVMX_PCIERCX_CFG465(%lu) is invalid on this chip\n", block_id);
1206         return 0x0000000000000744ull;
1207 }
1208 #else
1209 #define CVMX_PCIERCX_CFG465(block_id) (0x0000000000000744ull)
1210 #endif
1211 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1212 static inline uint64_t CVMX_PCIERCX_CFG466(unsigned long block_id)
1213 {
1214         if (!(
1215               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
1216               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
1217               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
1218               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
1219               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
1220               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
1221               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
1222                 cvmx_warn("CVMX_PCIERCX_CFG466(%lu) is invalid on this chip\n", block_id);
1223         return 0x0000000000000748ull;
1224 }
1225 #else
1226 #define CVMX_PCIERCX_CFG466(block_id) (0x0000000000000748ull)
1227 #endif
1228 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1229 static inline uint64_t CVMX_PCIERCX_CFG467(unsigned long block_id)
1230 {
1231         if (!(
1232               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
1233               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
1234               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
1235               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
1236               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
1237               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
1238               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
1239                 cvmx_warn("CVMX_PCIERCX_CFG467(%lu) is invalid on this chip\n", block_id);
1240         return 0x000000000000074Cull;
1241 }
1242 #else
1243 #define CVMX_PCIERCX_CFG467(block_id) (0x000000000000074Cull)
1244 #endif
1245 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1246 static inline uint64_t CVMX_PCIERCX_CFG468(unsigned long block_id)
1247 {
1248         if (!(
1249               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
1250               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
1251               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
1252               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
1253               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
1254               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
1255               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
1256                 cvmx_warn("CVMX_PCIERCX_CFG468(%lu) is invalid on this chip\n", block_id);
1257         return 0x0000000000000750ull;
1258 }
1259 #else
1260 #define CVMX_PCIERCX_CFG468(block_id) (0x0000000000000750ull)
1261 #endif
1262 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1263 static inline uint64_t CVMX_PCIERCX_CFG490(unsigned long block_id)
1264 {
1265         if (!(
1266               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
1267               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
1268               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
1269               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
1270               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
1271               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
1272               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
1273                 cvmx_warn("CVMX_PCIERCX_CFG490(%lu) is invalid on this chip\n", block_id);
1274         return 0x00000000000007A8ull;
1275 }
1276 #else
1277 #define CVMX_PCIERCX_CFG490(block_id) (0x00000000000007A8ull)
1278 #endif
1279 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1280 static inline uint64_t CVMX_PCIERCX_CFG491(unsigned long block_id)
1281 {
1282         if (!(
1283               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
1284               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
1285               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
1286               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
1287               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
1288               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
1289               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
1290                 cvmx_warn("CVMX_PCIERCX_CFG491(%lu) is invalid on this chip\n", block_id);
1291         return 0x00000000000007ACull;
1292 }
1293 #else
1294 #define CVMX_PCIERCX_CFG491(block_id) (0x00000000000007ACull)
1295 #endif
1296 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1297 static inline uint64_t CVMX_PCIERCX_CFG492(unsigned long block_id)
1298 {
1299         if (!(
1300               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
1301               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
1302               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
1303               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
1304               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
1305               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
1306               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
1307                 cvmx_warn("CVMX_PCIERCX_CFG492(%lu) is invalid on this chip\n", block_id);
1308         return 0x00000000000007B0ull;
1309 }
1310 #else
1311 #define CVMX_PCIERCX_CFG492(block_id) (0x00000000000007B0ull)
1312 #endif
1313 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1314 static inline uint64_t CVMX_PCIERCX_CFG515(unsigned long block_id)
1315 {
1316         if (!(
1317               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
1318               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
1319               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
1320               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
1321               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
1322                 cvmx_warn("CVMX_PCIERCX_CFG515(%lu) is invalid on this chip\n", block_id);
1323         return 0x000000000000080Cull;
1324 }
1325 #else
1326 #define CVMX_PCIERCX_CFG515(block_id) (0x000000000000080Cull)
1327 #endif
1328 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1329 static inline uint64_t CVMX_PCIERCX_CFG516(unsigned long block_id)
1330 {
1331         if (!(
1332               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
1333               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
1334               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
1335               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
1336               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
1337               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
1338               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
1339                 cvmx_warn("CVMX_PCIERCX_CFG516(%lu) is invalid on this chip\n", block_id);
1340         return 0x0000000000000810ull;
1341 }
1342 #else
1343 #define CVMX_PCIERCX_CFG516(block_id) (0x0000000000000810ull)
1344 #endif
1345 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1346 static inline uint64_t CVMX_PCIERCX_CFG517(unsigned long block_id)
1347 {
1348         if (!(
1349               (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id <= 1))) ||
1350               (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id <= 1))) ||
1351               (OCTEON_IS_MODEL(OCTEON_CN61XX) && ((block_id <= 1))) ||
1352               (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1))) ||
1353               (OCTEON_IS_MODEL(OCTEON_CN66XX) && ((block_id <= 1))) ||
1354               (OCTEON_IS_MODEL(OCTEON_CN68XX) && ((block_id <= 1))) ||
1355               (OCTEON_IS_MODEL(OCTEON_CNF71XX) && ((block_id <= 1)))))
1356                 cvmx_warn("CVMX_PCIERCX_CFG517(%lu) is invalid on this chip\n", block_id);
1357         return 0x0000000000000814ull;
1358 }
1359 #else
1360 #define CVMX_PCIERCX_CFG517(block_id) (0x0000000000000814ull)
1361 #endif
1362
1363 /**
1364  * cvmx_pcierc#_cfg000
1365  *
1366  * PCIE_CFG000 = First 32-bits of PCIE type 1 config space (Device ID and Vendor ID Register)
1367  *
1368  */
1369 union cvmx_pciercx_cfg000 {
1370         uint32_t u32;
1371         struct cvmx_pciercx_cfg000_s {
1372 #ifdef __BIG_ENDIAN_BITFIELD
1373         uint32_t devid                        : 16; /**< Device ID, writable through PEM(0..1)_CFG_WR
1374                                                          However, the application must not change this field. */
1375         uint32_t vendid                       : 16; /**< Vendor ID, writable through PEM(0..1)_CFG_WR
1376                                                          However, the application must not change this field. */
1377 #else
1378         uint32_t vendid                       : 16;
1379         uint32_t devid                        : 16;
1380 #endif
1381         } s;
1382         struct cvmx_pciercx_cfg000_s          cn52xx;
1383         struct cvmx_pciercx_cfg000_s          cn52xxp1;
1384         struct cvmx_pciercx_cfg000_s          cn56xx;
1385         struct cvmx_pciercx_cfg000_s          cn56xxp1;
1386         struct cvmx_pciercx_cfg000_s          cn61xx;
1387         struct cvmx_pciercx_cfg000_s          cn63xx;
1388         struct cvmx_pciercx_cfg000_s          cn63xxp1;
1389         struct cvmx_pciercx_cfg000_s          cn66xx;
1390         struct cvmx_pciercx_cfg000_s          cn68xx;
1391         struct cvmx_pciercx_cfg000_s          cn68xxp1;
1392         struct cvmx_pciercx_cfg000_s          cnf71xx;
1393 };
1394 typedef union cvmx_pciercx_cfg000 cvmx_pciercx_cfg000_t;
1395
1396 /**
1397  * cvmx_pcierc#_cfg001
1398  *
1399  * PCIE_CFG001 = Second 32-bits of PCIE type 1 config space (Command/Status Register)
1400  *
1401  */
1402 union cvmx_pciercx_cfg001 {
1403         uint32_t u32;
1404         struct cvmx_pciercx_cfg001_s {
1405 #ifdef __BIG_ENDIAN_BITFIELD
1406         uint32_t dpe                          : 1;  /**< Detected Parity Error */
1407         uint32_t sse                          : 1;  /**< Signaled System Error */
1408         uint32_t rma                          : 1;  /**< Received Master Abort */
1409         uint32_t rta                          : 1;  /**< Received Target Abort */
1410         uint32_t sta                          : 1;  /**< Signaled Target Abort */
1411         uint32_t devt                         : 2;  /**< DEVSEL Timing
1412                                                          Not applicable for PCI Express. Hardwired to 0. */
1413         uint32_t mdpe                         : 1;  /**< Master Data Parity Error */
1414         uint32_t fbb                          : 1;  /**< Fast Back-to-Back Capable
1415                                                          Not applicable for PCI Express. Hardwired to 0. */
1416         uint32_t reserved_22_22               : 1;
1417         uint32_t m66                          : 1;  /**< 66 MHz Capable
1418                                                          Not applicable for PCI Express. Hardwired to 0. */
1419         uint32_t cl                           : 1;  /**< Capabilities List
1420                                                          Indicates presence of an extended capability item.
1421                                                          Hardwired to 1. */
1422         uint32_t i_stat                       : 1;  /**< INTx Status */
1423         uint32_t reserved_11_18               : 8;
1424         uint32_t i_dis                        : 1;  /**< INTx Assertion Disable */
1425         uint32_t fbbe                         : 1;  /**< Fast Back-to-Back Enable
1426                                                          Not applicable for PCI Express. Must be hardwired to 0. */
1427         uint32_t see                          : 1;  /**< SERR# Enable */
1428         uint32_t ids_wcc                      : 1;  /**< IDSEL Stepping/Wait Cycle Control
1429                                                          Not applicable for PCI Express. Must be hardwired to 0 */
1430         uint32_t per                          : 1;  /**< Parity Error Response */
1431         uint32_t vps                          : 1;  /**< VGA Palette Snoop
1432                                                          Not applicable for PCI Express. Must be hardwired to 0. */
1433         uint32_t mwice                        : 1;  /**< Memory Write and Invalidate
1434                                                          Not applicable for PCI Express. Must be hardwired to 0. */
1435         uint32_t scse                         : 1;  /**< Special Cycle Enable
1436                                                          Not applicable for PCI Express. Must be hardwired to 0. */
1437         uint32_t me                           : 1;  /**< Bus Master Enable */
1438         uint32_t msae                         : 1;  /**< Memory Space Enable */
1439         uint32_t isae                         : 1;  /**< I/O Space Enable */
1440 #else
1441         uint32_t isae                         : 1;
1442         uint32_t msae                         : 1;
1443         uint32_t me                           : 1;
1444         uint32_t scse                         : 1;
1445         uint32_t mwice                        : 1;
1446         uint32_t vps                          : 1;
1447         uint32_t per                          : 1;
1448         uint32_t ids_wcc                      : 1;
1449         uint32_t see                          : 1;
1450         uint32_t fbbe                         : 1;
1451         uint32_t i_dis                        : 1;
1452         uint32_t reserved_11_18               : 8;
1453         uint32_t i_stat                       : 1;
1454         uint32_t cl                           : 1;
1455         uint32_t m66                          : 1;
1456         uint32_t reserved_22_22               : 1;
1457         uint32_t fbb                          : 1;
1458         uint32_t mdpe                         : 1;
1459         uint32_t devt                         : 2;
1460         uint32_t sta                          : 1;
1461         uint32_t rta                          : 1;
1462         uint32_t rma                          : 1;
1463         uint32_t sse                          : 1;
1464         uint32_t dpe                          : 1;
1465 #endif
1466         } s;
1467         struct cvmx_pciercx_cfg001_s          cn52xx;
1468         struct cvmx_pciercx_cfg001_s          cn52xxp1;
1469         struct cvmx_pciercx_cfg001_s          cn56xx;
1470         struct cvmx_pciercx_cfg001_s          cn56xxp1;
1471         struct cvmx_pciercx_cfg001_s          cn61xx;
1472         struct cvmx_pciercx_cfg001_s          cn63xx;
1473         struct cvmx_pciercx_cfg001_s          cn63xxp1;
1474         struct cvmx_pciercx_cfg001_s          cn66xx;
1475         struct cvmx_pciercx_cfg001_s          cn68xx;
1476         struct cvmx_pciercx_cfg001_s          cn68xxp1;
1477         struct cvmx_pciercx_cfg001_s          cnf71xx;
1478 };
1479 typedef union cvmx_pciercx_cfg001 cvmx_pciercx_cfg001_t;
1480
1481 /**
1482  * cvmx_pcierc#_cfg002
1483  *
1484  * PCIE_CFG002 = Third 32-bits of PCIE type 1 config space (Revision ID/Class Code Register)
1485  *
1486  */
1487 union cvmx_pciercx_cfg002 {
1488         uint32_t u32;
1489         struct cvmx_pciercx_cfg002_s {
1490 #ifdef __BIG_ENDIAN_BITFIELD
1491         uint32_t bcc                          : 8;  /**< Base Class Code, writable through PEM(0..1)_CFG_WR
1492                                                          However, the application must not change this field. */
1493         uint32_t sc                           : 8;  /**< Subclass Code, writable through PEM(0..1)_CFG_WR
1494                                                          However, the application must not change this field. */
1495         uint32_t pi                           : 8;  /**< Programming Interface, writable through PEM(0..1)_CFG_WR
1496                                                          However, the application must not change this field. */
1497         uint32_t rid                          : 8;  /**< Revision ID, writable through PEM(0..1)_CFG_WR
1498                                                          However, the application must not change this field. */
1499 #else
1500         uint32_t rid                          : 8;
1501         uint32_t pi                           : 8;
1502         uint32_t sc                           : 8;
1503         uint32_t bcc                          : 8;
1504 #endif
1505         } s;
1506         struct cvmx_pciercx_cfg002_s          cn52xx;
1507         struct cvmx_pciercx_cfg002_s          cn52xxp1;
1508         struct cvmx_pciercx_cfg002_s          cn56xx;
1509         struct cvmx_pciercx_cfg002_s          cn56xxp1;
1510         struct cvmx_pciercx_cfg002_s          cn61xx;
1511         struct cvmx_pciercx_cfg002_s          cn63xx;
1512         struct cvmx_pciercx_cfg002_s          cn63xxp1;
1513         struct cvmx_pciercx_cfg002_s          cn66xx;
1514         struct cvmx_pciercx_cfg002_s          cn68xx;
1515         struct cvmx_pciercx_cfg002_s          cn68xxp1;
1516         struct cvmx_pciercx_cfg002_s          cnf71xx;
1517 };
1518 typedef union cvmx_pciercx_cfg002 cvmx_pciercx_cfg002_t;
1519
1520 /**
1521  * cvmx_pcierc#_cfg003
1522  *
1523  * PCIE_CFG003 = Fourth 32-bits of PCIE type 1 config space (Cache Line Size/Master Latency Timer/Header Type Register/BIST Register)
1524  *
1525  */
1526 union cvmx_pciercx_cfg003 {
1527         uint32_t u32;
1528         struct cvmx_pciercx_cfg003_s {
1529 #ifdef __BIG_ENDIAN_BITFIELD
1530         uint32_t bist                         : 8;  /**< The BIST register functions are not supported.
1531                                                          All 8 bits of the BIST register are hardwired to 0. */
1532         uint32_t mfd                          : 1;  /**< Multi Function Device
1533                                                          The Multi Function Device bit is writable through PEM(0..1)_CFG_WR.
1534                                                          However, this is a single function device. Therefore, the
1535                                                          application must not write a 1 to this bit. */
1536         uint32_t chf                          : 7;  /**< Configuration Header Format
1537                                                          Hardwired to 1. */
1538         uint32_t lt                           : 8;  /**< Master Latency Timer
1539                                                          Not applicable for PCI Express, hardwired to 0. */
1540         uint32_t cls                          : 8;  /**< Cache Line Size
1541                                                          The Cache Line Size register is RW for legacy compatibility
1542                                                          purposes and is not applicable to PCI Express device
1543                                                          functionality. */
1544 #else
1545         uint32_t cls                          : 8;
1546         uint32_t lt                           : 8;
1547         uint32_t chf                          : 7;
1548         uint32_t mfd                          : 1;
1549         uint32_t bist                         : 8;
1550 #endif
1551         } s;
1552         struct cvmx_pciercx_cfg003_s          cn52xx;
1553         struct cvmx_pciercx_cfg003_s          cn52xxp1;
1554         struct cvmx_pciercx_cfg003_s          cn56xx;
1555         struct cvmx_pciercx_cfg003_s          cn56xxp1;
1556         struct cvmx_pciercx_cfg003_s          cn61xx;
1557         struct cvmx_pciercx_cfg003_s          cn63xx;
1558         struct cvmx_pciercx_cfg003_s          cn63xxp1;
1559         struct cvmx_pciercx_cfg003_s          cn66xx;
1560         struct cvmx_pciercx_cfg003_s          cn68xx;
1561         struct cvmx_pciercx_cfg003_s          cn68xxp1;
1562         struct cvmx_pciercx_cfg003_s          cnf71xx;
1563 };
1564 typedef union cvmx_pciercx_cfg003 cvmx_pciercx_cfg003_t;
1565
1566 /**
1567  * cvmx_pcierc#_cfg004
1568  *
1569  * PCIE_CFG004 = Fifth 32-bits of PCIE type 1 config space (Base Address Register 0 - Low)
1570  *
1571  */
1572 union cvmx_pciercx_cfg004 {
1573         uint32_t u32;
1574         struct cvmx_pciercx_cfg004_s {
1575 #ifdef __BIG_ENDIAN_BITFIELD
1576         uint32_t reserved_0_31                : 32;
1577 #else
1578         uint32_t reserved_0_31                : 32;
1579 #endif
1580         } s;
1581         struct cvmx_pciercx_cfg004_s          cn52xx;
1582         struct cvmx_pciercx_cfg004_s          cn52xxp1;
1583         struct cvmx_pciercx_cfg004_s          cn56xx;
1584         struct cvmx_pciercx_cfg004_s          cn56xxp1;
1585         struct cvmx_pciercx_cfg004_s          cn61xx;
1586         struct cvmx_pciercx_cfg004_s          cn63xx;
1587         struct cvmx_pciercx_cfg004_s          cn63xxp1;
1588         struct cvmx_pciercx_cfg004_s          cn66xx;
1589         struct cvmx_pciercx_cfg004_s          cn68xx;
1590         struct cvmx_pciercx_cfg004_s          cn68xxp1;
1591         struct cvmx_pciercx_cfg004_s          cnf71xx;
1592 };
1593 typedef union cvmx_pciercx_cfg004 cvmx_pciercx_cfg004_t;
1594
1595 /**
1596  * cvmx_pcierc#_cfg005
1597  *
1598  * PCIE_CFG005 = Sixth 32-bits of PCIE type 1 config space (Base Address Register 0 - High)
1599  *
1600  */
1601 union cvmx_pciercx_cfg005 {
1602         uint32_t u32;
1603         struct cvmx_pciercx_cfg005_s {
1604 #ifdef __BIG_ENDIAN_BITFIELD
1605         uint32_t reserved_0_31                : 32;
1606 #else
1607         uint32_t reserved_0_31                : 32;
1608 #endif
1609         } s;
1610         struct cvmx_pciercx_cfg005_s          cn52xx;
1611         struct cvmx_pciercx_cfg005_s          cn52xxp1;
1612         struct cvmx_pciercx_cfg005_s          cn56xx;
1613         struct cvmx_pciercx_cfg005_s          cn56xxp1;
1614         struct cvmx_pciercx_cfg005_s          cn61xx;
1615         struct cvmx_pciercx_cfg005_s          cn63xx;
1616         struct cvmx_pciercx_cfg005_s          cn63xxp1;
1617         struct cvmx_pciercx_cfg005_s          cn66xx;
1618         struct cvmx_pciercx_cfg005_s          cn68xx;
1619         struct cvmx_pciercx_cfg005_s          cn68xxp1;
1620         struct cvmx_pciercx_cfg005_s          cnf71xx;
1621 };
1622 typedef union cvmx_pciercx_cfg005 cvmx_pciercx_cfg005_t;
1623
1624 /**
1625  * cvmx_pcierc#_cfg006
1626  *
1627  * PCIE_CFG006 = Seventh 32-bits of PCIE type 1 config space (Bus Number Registers)
1628  *
1629  */
1630 union cvmx_pciercx_cfg006 {
1631         uint32_t u32;
1632         struct cvmx_pciercx_cfg006_s {
1633 #ifdef __BIG_ENDIAN_BITFIELD
1634         uint32_t slt                          : 8;  /**< Secondary Latency Timer
1635                                                          Not applicable to PCI Express, hardwired to 0x00. */
1636         uint32_t subbnum                      : 8;  /**< Subordinate Bus Number */
1637         uint32_t sbnum                        : 8;  /**< Secondary Bus Number */
1638         uint32_t pbnum                        : 8;  /**< Primary Bus Number */
1639 #else
1640         uint32_t pbnum                        : 8;
1641         uint32_t sbnum                        : 8;
1642         uint32_t subbnum                      : 8;
1643         uint32_t slt                          : 8;
1644 #endif
1645         } s;
1646         struct cvmx_pciercx_cfg006_s          cn52xx;
1647         struct cvmx_pciercx_cfg006_s          cn52xxp1;
1648         struct cvmx_pciercx_cfg006_s          cn56xx;
1649         struct cvmx_pciercx_cfg006_s          cn56xxp1;
1650         struct cvmx_pciercx_cfg006_s          cn61xx;
1651         struct cvmx_pciercx_cfg006_s          cn63xx;
1652         struct cvmx_pciercx_cfg006_s          cn63xxp1;
1653         struct cvmx_pciercx_cfg006_s          cn66xx;
1654         struct cvmx_pciercx_cfg006_s          cn68xx;
1655         struct cvmx_pciercx_cfg006_s          cn68xxp1;
1656         struct cvmx_pciercx_cfg006_s          cnf71xx;
1657 };
1658 typedef union cvmx_pciercx_cfg006 cvmx_pciercx_cfg006_t;
1659
1660 /**
1661  * cvmx_pcierc#_cfg007
1662  *
1663  * PCIE_CFG007 = Eighth 32-bits of PCIE type 1 config space (IO Base and IO Limit/Secondary Status Register)
1664  *
1665  */
1666 union cvmx_pciercx_cfg007 {
1667         uint32_t u32;
1668         struct cvmx_pciercx_cfg007_s {
1669 #ifdef __BIG_ENDIAN_BITFIELD
1670         uint32_t dpe                          : 1;  /**< Detected Parity Error */
1671         uint32_t sse                          : 1;  /**< Signaled System Error */
1672         uint32_t rma                          : 1;  /**< Received Master Abort */
1673         uint32_t rta                          : 1;  /**< Received Target Abort */
1674         uint32_t sta                          : 1;  /**< Signaled Target Abort */
1675         uint32_t devt                         : 2;  /**< DEVSEL Timing
1676                                                          Not applicable for PCI Express. Hardwired to 0. */
1677         uint32_t mdpe                         : 1;  /**< Master Data Parity Error */
1678         uint32_t fbb                          : 1;  /**< Fast Back-to-Back Capable
1679                                                          Not applicable for PCI Express. Hardwired to 0. */
1680         uint32_t reserved_22_22               : 1;
1681         uint32_t m66                          : 1;  /**< 66 MHz Capable
1682                                                          Not applicable for PCI Express. Hardwired to 0. */
1683         uint32_t reserved_16_20               : 5;
1684         uint32_t lio_limi                     : 4;  /**< I/O Space Limit */
1685         uint32_t reserved_9_11                : 3;
1686         uint32_t io32b                        : 1;  /**< 32-Bit I/O Space */
1687         uint32_t lio_base                     : 4;  /**< I/O Space Base */
1688         uint32_t reserved_1_3                 : 3;
1689         uint32_t io32a                        : 1;  /**< 32-Bit I/O Space
1690                                                          o 0 = 16-bit I/O addressing
1691                                                          o 1 = 32-bit I/O addressing
1692                                                          This bit is writable through PEM(0..1)_CFG_WR.
1693                                                          When the application
1694                                                          writes to this bit through PEM(0..1)_CFG_WR,
1695                                                          the same value is written
1696                                                          to bit 8 of this register. */
1697 #else
1698         uint32_t io32a                        : 1;
1699         uint32_t reserved_1_3                 : 3;
1700         uint32_t lio_base                     : 4;
1701         uint32_t io32b                        : 1;
1702         uint32_t reserved_9_11                : 3;
1703         uint32_t lio_limi                     : 4;
1704         uint32_t reserved_16_20               : 5;
1705         uint32_t m66                          : 1;
1706         uint32_t reserved_22_22               : 1;
1707         uint32_t fbb                          : 1;
1708         uint32_t mdpe                         : 1;
1709         uint32_t devt                         : 2;
1710         uint32_t sta                          : 1;
1711         uint32_t rta                          : 1;
1712         uint32_t rma                          : 1;
1713         uint32_t sse                          : 1;
1714         uint32_t dpe                          : 1;
1715 #endif
1716         } s;
1717         struct cvmx_pciercx_cfg007_s          cn52xx;
1718         struct cvmx_pciercx_cfg007_s          cn52xxp1;
1719         struct cvmx_pciercx_cfg007_s          cn56xx;
1720         struct cvmx_pciercx_cfg007_s          cn56xxp1;
1721         struct cvmx_pciercx_cfg007_s          cn61xx;
1722         struct cvmx_pciercx_cfg007_s          cn63xx;
1723         struct cvmx_pciercx_cfg007_s          cn63xxp1;
1724         struct cvmx_pciercx_cfg007_s          cn66xx;
1725         struct cvmx_pciercx_cfg007_s          cn68xx;
1726         struct cvmx_pciercx_cfg007_s          cn68xxp1;
1727         struct cvmx_pciercx_cfg007_s          cnf71xx;
1728 };
1729 typedef union cvmx_pciercx_cfg007 cvmx_pciercx_cfg007_t;
1730
1731 /**
1732  * cvmx_pcierc#_cfg008
1733  *
1734  * PCIE_CFG008 = Ninth 32-bits of PCIE type 1 config space (Memory Base and Memory Limit Register)
1735  *
1736  */
1737 union cvmx_pciercx_cfg008 {
1738         uint32_t u32;
1739         struct cvmx_pciercx_cfg008_s {
1740 #ifdef __BIG_ENDIAN_BITFIELD
1741         uint32_t ml_addr                      : 12; /**< Memory Limit Address */
1742         uint32_t reserved_16_19               : 4;
1743         uint32_t mb_addr                      : 12; /**< Memory Base Address */
1744         uint32_t reserved_0_3                 : 4;
1745 #else
1746         uint32_t reserved_0_3                 : 4;
1747         uint32_t mb_addr                      : 12;
1748         uint32_t reserved_16_19               : 4;
1749         uint32_t ml_addr                      : 12;
1750 #endif
1751         } s;
1752         struct cvmx_pciercx_cfg008_s          cn52xx;
1753         struct cvmx_pciercx_cfg008_s          cn52xxp1;
1754         struct cvmx_pciercx_cfg008_s          cn56xx;
1755         struct cvmx_pciercx_cfg008_s          cn56xxp1;
1756         struct cvmx_pciercx_cfg008_s          cn61xx;
1757         struct cvmx_pciercx_cfg008_s          cn63xx;
1758         struct cvmx_pciercx_cfg008_s          cn63xxp1;
1759         struct cvmx_pciercx_cfg008_s          cn66xx;
1760         struct cvmx_pciercx_cfg008_s          cn68xx;
1761         struct cvmx_pciercx_cfg008_s          cn68xxp1;
1762         struct cvmx_pciercx_cfg008_s          cnf71xx;
1763 };
1764 typedef union cvmx_pciercx_cfg008 cvmx_pciercx_cfg008_t;
1765
1766 /**
1767  * cvmx_pcierc#_cfg009
1768  *
1769  * PCIE_CFG009 = Tenth 32-bits of PCIE type 1 config space (Prefetchable Memory Base and Limit Register)
1770  *
1771  */
1772 union cvmx_pciercx_cfg009 {
1773         uint32_t u32;
1774         struct cvmx_pciercx_cfg009_s {
1775 #ifdef __BIG_ENDIAN_BITFIELD
1776         uint32_t lmem_limit                   : 12; /**< Upper 12 bits of 32-bit Prefetchable Memory End Address */
1777         uint32_t reserved_17_19               : 3;
1778         uint32_t mem64b                       : 1;  /**< 64-Bit Memory Addressing
1779                                                          o 0 = 32-bit memory addressing
1780                                                          o 1 = 64-bit memory addressing */
1781         uint32_t lmem_base                    : 12; /**< Upper 12 bits of 32-bit Prefetchable Memory Start Address */
1782         uint32_t reserved_1_3                 : 3;
1783         uint32_t mem64a                       : 1;  /**< 64-Bit Memory Addressing
1784                                                          o 0 = 32-bit memory addressing
1785                                                          o 1 = 64-bit memory addressing
1786                                                          This bit is writable through PEM(0..1)_CFG_WR.
1787                                                          When the application
1788                                                          writes to this bit through PEM(0..1)_CFG_WR,
1789                                                          the same value is written
1790                                                          to bit 16 of this register. */
1791 #else
1792         uint32_t mem64a                       : 1;
1793         uint32_t reserved_1_3                 : 3;
1794         uint32_t lmem_base                    : 12;
1795         uint32_t mem64b                       : 1;
1796         uint32_t reserved_17_19               : 3;
1797         uint32_t lmem_limit                   : 12;
1798 #endif
1799         } s;
1800         struct cvmx_pciercx_cfg009_s          cn52xx;
1801         struct cvmx_pciercx_cfg009_s          cn52xxp1;
1802         struct cvmx_pciercx_cfg009_s          cn56xx;
1803         struct cvmx_pciercx_cfg009_s          cn56xxp1;
1804         struct cvmx_pciercx_cfg009_s          cn61xx;
1805         struct cvmx_pciercx_cfg009_s          cn63xx;
1806         struct cvmx_pciercx_cfg009_s          cn63xxp1;
1807         struct cvmx_pciercx_cfg009_s          cn66xx;
1808         struct cvmx_pciercx_cfg009_s          cn68xx;
1809         struct cvmx_pciercx_cfg009_s          cn68xxp1;
1810         struct cvmx_pciercx_cfg009_s          cnf71xx;
1811 };
1812 typedef union cvmx_pciercx_cfg009 cvmx_pciercx_cfg009_t;
1813
1814 /**
1815  * cvmx_pcierc#_cfg010
1816  *
1817  * PCIE_CFG010 = Eleventh 32-bits of PCIE type 1 config space (Prefetchable Base Upper 32 Bits Register)
1818  *
1819  */
1820 union cvmx_pciercx_cfg010 {
1821         uint32_t u32;
1822         struct cvmx_pciercx_cfg010_s {
1823 #ifdef __BIG_ENDIAN_BITFIELD
1824         uint32_t umem_base                    : 32; /**< Upper 32 Bits of Base Address of Prefetchable Memory Space
1825                                                          Used only when 64-bit prefetchable memory addressing is
1826                                                          enabled. */
1827 #else
1828         uint32_t umem_base                    : 32;
1829 #endif
1830         } s;
1831         struct cvmx_pciercx_cfg010_s          cn52xx;
1832         struct cvmx_pciercx_cfg010_s          cn52xxp1;
1833         struct cvmx_pciercx_cfg010_s          cn56xx;
1834         struct cvmx_pciercx_cfg010_s          cn56xxp1;
1835         struct cvmx_pciercx_cfg010_s          cn61xx;
1836         struct cvmx_pciercx_cfg010_s          cn63xx;
1837         struct cvmx_pciercx_cfg010_s          cn63xxp1;
1838         struct cvmx_pciercx_cfg010_s          cn66xx;
1839         struct cvmx_pciercx_cfg010_s          cn68xx;
1840         struct cvmx_pciercx_cfg010_s          cn68xxp1;
1841         struct cvmx_pciercx_cfg010_s          cnf71xx;
1842 };
1843 typedef union cvmx_pciercx_cfg010 cvmx_pciercx_cfg010_t;
1844
1845 /**
1846  * cvmx_pcierc#_cfg011
1847  *
1848  * PCIE_CFG011 = Twelfth 32-bits of PCIE type 1 config space (Prefetchable Limit Upper 32 Bits Register)
1849  *
1850  */
1851 union cvmx_pciercx_cfg011 {
1852         uint32_t u32;
1853         struct cvmx_pciercx_cfg011_s {
1854 #ifdef __BIG_ENDIAN_BITFIELD
1855         uint32_t umem_limit                   : 32; /**< Upper 32 Bits of Limit Address of Prefetchable Memory Space
1856                                                          Used only when 64-bit prefetchable memory addressing is
1857                                                          enabled. */
1858 #else
1859         uint32_t umem_limit                   : 32;
1860 #endif
1861         } s;
1862         struct cvmx_pciercx_cfg011_s          cn52xx;
1863         struct cvmx_pciercx_cfg011_s          cn52xxp1;
1864         struct cvmx_pciercx_cfg011_s          cn56xx;
1865         struct cvmx_pciercx_cfg011_s          cn56xxp1;
1866         struct cvmx_pciercx_cfg011_s          cn61xx;
1867         struct cvmx_pciercx_cfg011_s          cn63xx;
1868         struct cvmx_pciercx_cfg011_s          cn63xxp1;
1869         struct cvmx_pciercx_cfg011_s          cn66xx;
1870         struct cvmx_pciercx_cfg011_s          cn68xx;
1871         struct cvmx_pciercx_cfg011_s          cn68xxp1;
1872         struct cvmx_pciercx_cfg011_s          cnf71xx;
1873 };
1874 typedef union cvmx_pciercx_cfg011 cvmx_pciercx_cfg011_t;
1875
1876 /**
1877  * cvmx_pcierc#_cfg012
1878  *
1879  * PCIE_CFG012 = Thirteenth 32-bits of PCIE type 1 config space (IO Base and Limit Upper 16 Bits Register)
1880  *
1881  */
1882 union cvmx_pciercx_cfg012 {
1883         uint32_t u32;
1884         struct cvmx_pciercx_cfg012_s {
1885 #ifdef __BIG_ENDIAN_BITFIELD
1886         uint32_t uio_limit                    : 16; /**< Upper 16 Bits of I/O Limit (if 32-bit I/O decoding is supported
1887                                                          for devices on the secondary side) */
1888         uint32_t uio_base                     : 16; /**< Upper 16 Bits of I/O Base (if 32-bit I/O decoding is supported
1889                                                          for devices on the secondary side) */
1890 #else
1891         uint32_t uio_base                     : 16;
1892         uint32_t uio_limit                    : 16;
1893 #endif
1894         } s;
1895         struct cvmx_pciercx_cfg012_s          cn52xx;
1896         struct cvmx_pciercx_cfg012_s          cn52xxp1;
1897         struct cvmx_pciercx_cfg012_s          cn56xx;
1898         struct cvmx_pciercx_cfg012_s          cn56xxp1;
1899         struct cvmx_pciercx_cfg012_s          cn61xx;
1900         struct cvmx_pciercx_cfg012_s          cn63xx;
1901         struct cvmx_pciercx_cfg012_s          cn63xxp1;
1902         struct cvmx_pciercx_cfg012_s          cn66xx;
1903         struct cvmx_pciercx_cfg012_s          cn68xx;
1904         struct cvmx_pciercx_cfg012_s          cn68xxp1;
1905         struct cvmx_pciercx_cfg012_s          cnf71xx;
1906 };
1907 typedef union cvmx_pciercx_cfg012 cvmx_pciercx_cfg012_t;
1908
1909 /**
1910  * cvmx_pcierc#_cfg013
1911  *
1912  * PCIE_CFG013 = Fourteenth 32-bits of PCIE type 1 config space (Capability Pointer Register)
1913  *
1914  */
1915 union cvmx_pciercx_cfg013 {
1916         uint32_t u32;
1917         struct cvmx_pciercx_cfg013_s {
1918 #ifdef __BIG_ENDIAN_BITFIELD
1919         uint32_t reserved_8_31                : 24;
1920         uint32_t cp                           : 8;  /**< First Capability Pointer.
1921                                                          Points to Power Management Capability structure by
1922                                                          default, writable through PEM(0..1)_CFG_WR
1923                                                          However, the application must not change this field. */
1924 #else
1925         uint32_t cp                           : 8;
1926         uint32_t reserved_8_31                : 24;
1927 #endif
1928         } s;
1929         struct cvmx_pciercx_cfg013_s          cn52xx;
1930         struct cvmx_pciercx_cfg013_s          cn52xxp1;
1931         struct cvmx_pciercx_cfg013_s          cn56xx;
1932         struct cvmx_pciercx_cfg013_s          cn56xxp1;
1933         struct cvmx_pciercx_cfg013_s          cn61xx;
1934         struct cvmx_pciercx_cfg013_s          cn63xx;
1935         struct cvmx_pciercx_cfg013_s          cn63xxp1;
1936         struct cvmx_pciercx_cfg013_s          cn66xx;
1937         struct cvmx_pciercx_cfg013_s          cn68xx;
1938         struct cvmx_pciercx_cfg013_s          cn68xxp1;
1939         struct cvmx_pciercx_cfg013_s          cnf71xx;
1940 };
1941 typedef union cvmx_pciercx_cfg013 cvmx_pciercx_cfg013_t;
1942
1943 /**
1944  * cvmx_pcierc#_cfg014
1945  *
1946  * PCIE_CFG014 = Fifteenth 32-bits of PCIE type 1 config space (Expansion ROM Base Address Register)
1947  *
1948  */
1949 union cvmx_pciercx_cfg014 {
1950         uint32_t u32;
1951         struct cvmx_pciercx_cfg014_s {
1952 #ifdef __BIG_ENDIAN_BITFIELD
1953         uint32_t reserved_0_31                : 32;
1954 #else
1955         uint32_t reserved_0_31                : 32;
1956 #endif
1957         } s;
1958         struct cvmx_pciercx_cfg014_s          cn52xx;
1959         struct cvmx_pciercx_cfg014_s          cn52xxp1;
1960         struct cvmx_pciercx_cfg014_s          cn56xx;
1961         struct cvmx_pciercx_cfg014_s          cn56xxp1;
1962         struct cvmx_pciercx_cfg014_s          cn61xx;
1963         struct cvmx_pciercx_cfg014_s          cn63xx;
1964         struct cvmx_pciercx_cfg014_s          cn63xxp1;
1965         struct cvmx_pciercx_cfg014_s          cn66xx;
1966         struct cvmx_pciercx_cfg014_s          cn68xx;
1967         struct cvmx_pciercx_cfg014_s          cn68xxp1;
1968         struct cvmx_pciercx_cfg014_s          cnf71xx;
1969 };
1970 typedef union cvmx_pciercx_cfg014 cvmx_pciercx_cfg014_t;
1971
1972 /**
1973  * cvmx_pcierc#_cfg015
1974  *
1975  * PCIE_CFG015 = Sixteenth 32-bits of PCIE type 1 config space (Interrupt Line Register/Interrupt Pin/Bridge Control Register)
1976  *
1977  */
1978 union cvmx_pciercx_cfg015 {
1979         uint32_t u32;
1980         struct cvmx_pciercx_cfg015_s {
1981 #ifdef __BIG_ENDIAN_BITFIELD
1982         uint32_t reserved_28_31               : 4;
1983         uint32_t dtsees                       : 1;  /**< Discard Timer SERR Enable Status
1984                                                          Not applicable to PCI Express, hardwired to 0. */
1985         uint32_t dts                          : 1;  /**< Discard Timer Status
1986                                                          Not applicable to PCI Express, hardwired to 0. */
1987         uint32_t sdt                          : 1;  /**< Secondary Discard Timer
1988                                                          Not applicable to PCI Express, hardwired to 0. */
1989         uint32_t pdt                          : 1;  /**< Primary Discard Timer
1990                                                          Not applicable to PCI Express, hardwired to 0. */
1991         uint32_t fbbe                         : 1;  /**< Fast Back-to-Back Transactions Enable
1992                                                          Not applicable to PCI Express, hardwired to 0. */
1993         uint32_t sbrst                        : 1;  /**< Secondary Bus Reset
1994                                                          Hot reset. Causes TS1s with the hot reset bit to be sent to
1995                                                          the link partner. When set, SW should wait 2ms before
1996                                                          clearing. The link partner normally responds by sending TS1s
1997                                                          with the hot reset bit set, which will cause a link
1998                                                          down event - refer to "PCIe Link-Down Reset in RC Mode"
1999                                                          section. */
2000         uint32_t mam                          : 1;  /**< Master Abort Mode
2001                                                          Not applicable to PCI Express, hardwired to 0. */
2002         uint32_t vga16d                       : 1;  /**< VGA 16-Bit Decode */
2003         uint32_t vgae                         : 1;  /**< VGA Enable */
2004         uint32_t isae                         : 1;  /**< ISA Enable */
2005         uint32_t see                          : 1;  /**< SERR Enable */
2006         uint32_t pere                         : 1;  /**< Parity Error Response Enable */
2007         uint32_t inta                         : 8;  /**< Interrupt Pin
2008                                                          Identifies the legacy interrupt Message that the device
2009                                                          (or device function) uses.
2010                                                          The Interrupt Pin register is writable through PEM(0..1)_CFG_WR.
2011                                                          In a single-function configuration, only INTA is used.
2012                                                          Therefore, the application must not change this field. */
2013         uint32_t il                           : 8;  /**< Interrupt Line */
2014 #else
2015         uint32_t il                           : 8;
2016         uint32_t inta                         : 8;
2017         uint32_t pere                         : 1;
2018         uint32_t see                          : 1;
2019         uint32_t isae                         : 1;
2020         uint32_t vgae                         : 1;
2021         uint32_t vga16d                       : 1;
2022         uint32_t mam                          : 1;
2023         uint32_t sbrst                        : 1;
2024         uint32_t fbbe                         : 1;
2025         uint32_t pdt                          : 1;
2026         uint32_t sdt                          : 1;
2027         uint32_t dts                          : 1;
2028         uint32_t dtsees                       : 1;
2029         uint32_t reserved_28_31               : 4;
2030 #endif
2031         } s;
2032         struct cvmx_pciercx_cfg015_s          cn52xx;
2033         struct cvmx_pciercx_cfg015_s          cn52xxp1;
2034         struct cvmx_pciercx_cfg015_s          cn56xx;
2035         struct cvmx_pciercx_cfg015_s          cn56xxp1;
2036         struct cvmx_pciercx_cfg015_s          cn61xx;
2037         struct cvmx_pciercx_cfg015_s          cn63xx;
2038         struct cvmx_pciercx_cfg015_s          cn63xxp1;
2039         struct cvmx_pciercx_cfg015_s          cn66xx;
2040         struct cvmx_pciercx_cfg015_s          cn68xx;
2041         struct cvmx_pciercx_cfg015_s          cn68xxp1;
2042         struct cvmx_pciercx_cfg015_s          cnf71xx;
2043 };
2044 typedef union cvmx_pciercx_cfg015 cvmx_pciercx_cfg015_t;
2045
2046 /**
2047  * cvmx_pcierc#_cfg016
2048  *
2049  * PCIE_CFG016 = Seventeenth 32-bits of PCIE type 1 config space
2050  * (Power Management Capability ID/
2051  * Power Management Next Item Pointer/
2052  * Power Management Capabilities Register)
2053  */
2054 union cvmx_pciercx_cfg016 {
2055         uint32_t u32;
2056         struct cvmx_pciercx_cfg016_s {
2057 #ifdef __BIG_ENDIAN_BITFIELD
2058         uint32_t pmes                         : 5;  /**< PME_Support
2059                                                          A value of 0 for any bit indicates that the
2060                                                          device (or function) is not capable of generating PME Messages
2061                                                          while in that power state:
2062                                                          o Bit 11: If set, PME Messages can be generated from D0
2063                                                          o Bit 12: If set, PME Messages can be generated from D1
2064                                                          o Bit 13: If set, PME Messages can be generated from D2
2065                                                          o Bit 14: If set, PME Messages can be generated from D3hot
2066                                                          o Bit 15: If set, PME Messages can be generated from D3cold
2067                                                          The PME_Support field is writable through PEM(0..1)_CFG_WR.
2068                                                          However, the application must not change this field. */
2069         uint32_t d2s                          : 1;  /**< D2 Support, writable through PEM(0..1)_CFG_WR
2070                                                          However, the application must not change this field. */
2071         uint32_t d1s                          : 1;  /**< D1 Support, writable through PEM(0..1)_CFG_WR
2072                                                          However, the application must not change this field. */
2073         uint32_t auxc                         : 3;  /**< AUX Current, writable through PEM(0..1)_CFG_WR
2074                                                          However, the application must not change this field. */
2075         uint32_t dsi                          : 1;  /**< Device Specific Initialization (DSI), writable through PEM(0..1)_CFG_WR
2076                                                          However, the application must not change this field. */
2077         uint32_t reserved_20_20               : 1;
2078         uint32_t pme_clock                    : 1;  /**< PME Clock, hardwired to 0 */
2079         uint32_t pmsv                         : 3;  /**< Power Management Specification Version, writable through PEM(0..1)_CFG_WR
2080                                                          However, the application must not change this field. */
2081         uint32_t ncp                          : 8;  /**< Next Capability Pointer
2082                                                          Points to the MSI capabilities by default, writable
2083                                                          through PEM(0..1)_CFG_WR. */
2084         uint32_t pmcid                        : 8;  /**< Power Management Capability ID */
2085 #else
2086         uint32_t pmcid                        : 8;
2087         uint32_t ncp                          : 8;
2088         uint32_t pmsv                         : 3;
2089         uint32_t pme_clock                    : 1;
2090         uint32_t reserved_20_20               : 1;
2091         uint32_t dsi                          : 1;
2092         uint32_t auxc                         : 3;
2093         uint32_t d1s                          : 1;
2094         uint32_t d2s                          : 1;
2095         uint32_t pmes                         : 5;
2096 #endif
2097         } s;
2098         struct cvmx_pciercx_cfg016_s          cn52xx;
2099         struct cvmx_pciercx_cfg016_s          cn52xxp1;
2100         struct cvmx_pciercx_cfg016_s          cn56xx;
2101         struct cvmx_pciercx_cfg016_s          cn56xxp1;
2102         struct cvmx_pciercx_cfg016_s          cn61xx;
2103         struct cvmx_pciercx_cfg016_s          cn63xx;
2104         struct cvmx_pciercx_cfg016_s          cn63xxp1;
2105         struct cvmx_pciercx_cfg016_s          cn66xx;
2106         struct cvmx_pciercx_cfg016_s          cn68xx;
2107         struct cvmx_pciercx_cfg016_s          cn68xxp1;
2108         struct cvmx_pciercx_cfg016_s          cnf71xx;
2109 };
2110 typedef union cvmx_pciercx_cfg016 cvmx_pciercx_cfg016_t;
2111
2112 /**
2113  * cvmx_pcierc#_cfg017
2114  *
2115  * PCIE_CFG017 = Eighteenth 32-bits of PCIE type 1 config space (Power Management Control and Status Register)
2116  *
2117  */
2118 union cvmx_pciercx_cfg017 {
2119         uint32_t u32;
2120         struct cvmx_pciercx_cfg017_s {
2121 #ifdef __BIG_ENDIAN_BITFIELD
2122         uint32_t pmdia                        : 8;  /**< Data register for additional information (not supported) */
2123         uint32_t bpccee                       : 1;  /**< Bus Power/Clock Control Enable, hardwired to 0 */
2124         uint32_t bd3h                         : 1;  /**< B2/B3 Support, hardwired to 0 */
2125         uint32_t reserved_16_21               : 6;
2126         uint32_t pmess                        : 1;  /**< PME Status
2127                                                          Indicates if a previously enabled PME event occurred or not. */
2128         uint32_t pmedsia                      : 2;  /**< Data Scale (not supported) */
2129         uint32_t pmds                         : 4;  /**< Data Select (not supported) */
2130         uint32_t pmeens                       : 1;  /**< PME Enable
2131                                                          A value of 1 indicates that the device is enabled to
2132                                                          generate PME. */
2133         uint32_t reserved_4_7                 : 4;
2134         uint32_t nsr                          : 1;  /**< No Soft Reset, writable through PEM(0..1)_CFG_WR
2135                                                          However, the application must not change this field. */
2136         uint32_t reserved_2_2                 : 1;
2137         uint32_t ps                           : 2;  /**< Power State
2138                                                          Controls the device power state:
2139                                                            o 00b: D0
2140                                                            o 01b: D1
2141                                                            o 10b: D2
2142                                                            o 11b: D3
2143                                                          The written value is ignored if the specific state is
2144                                                          not supported. */
2145 #else
2146         uint32_t ps                           : 2;
2147         uint32_t reserved_2_2                 : 1;
2148         uint32_t nsr                          : 1;
2149         uint32_t reserved_4_7                 : 4;
2150         uint32_t pmeens                       : 1;
2151         uint32_t pmds                         : 4;
2152         uint32_t pmedsia                      : 2;
2153         uint32_t pmess                        : 1;
2154         uint32_t reserved_16_21               : 6;
2155         uint32_t bd3h                         : 1;
2156         uint32_t bpccee                       : 1;
2157         uint32_t pmdia                        : 8;
2158 #endif
2159         } s;
2160         struct cvmx_pciercx_cfg017_s          cn52xx;
2161         struct cvmx_pciercx_cfg017_s          cn52xxp1;
2162         struct cvmx_pciercx_cfg017_s          cn56xx;
2163         struct cvmx_pciercx_cfg017_s          cn56xxp1;
2164         struct cvmx_pciercx_cfg017_s          cn61xx;
2165         struct cvmx_pciercx_cfg017_s          cn63xx;
2166         struct cvmx_pciercx_cfg017_s          cn63xxp1;
2167         struct cvmx_pciercx_cfg017_s          cn66xx;
2168         struct cvmx_pciercx_cfg017_s          cn68xx;
2169         struct cvmx_pciercx_cfg017_s          cn68xxp1;
2170         struct cvmx_pciercx_cfg017_s          cnf71xx;
2171 };
2172 typedef union cvmx_pciercx_cfg017 cvmx_pciercx_cfg017_t;
2173
2174 /**
2175  * cvmx_pcierc#_cfg020
2176  *
2177  * PCIE_CFG020 = Twenty-first 32-bits of PCIE type 1 config space
2178  * (MSI Capability ID/
2179  *  MSI Next Item Pointer/
2180  *  MSI Control Register)
2181  */
2182 union cvmx_pciercx_cfg020 {
2183         uint32_t u32;
2184         struct cvmx_pciercx_cfg020_s {
2185 #ifdef __BIG_ENDIAN_BITFIELD
2186         uint32_t reserved_25_31               : 7;
2187         uint32_t pvm                          : 1;  /**< Per-vector masking capable */
2188         uint32_t m64                          : 1;  /**< 64-bit Address Capable, writable through PEM(0..1)_CFG_WR
2189                                                          However, the application must not change this field. */
2190         uint32_t mme                          : 3;  /**< Multiple Message Enabled
2191                                                          Indicates that multiple Message mode is enabled by system
2192                                                          software. The number of Messages enabled must be less than
2193                                                          or equal to the Multiple Message Capable value. */
2194         uint32_t mmc                          : 3;  /**< Multiple Message Capable, writable through PEM(0..1)_CFG_WR
2195                                                          However, the application must not change this field. */
2196         uint32_t msien                        : 1;  /**< MSI Enabled
2197                                                          When set, INTx must be disabled.
2198                                                          This bit must never be set, as internal-MSI is not supported in
2199                                                          RC mode. (Note that this has no effect on external MSI, which
2200                                                          will be commonly used in RC mode.) */
2201         uint32_t ncp                          : 8;  /**< Next Capability Pointer
2202                                                          Points to PCI Express Capabilities by default,
2203                                                          writable through PEM(0..1)_CFG_WR.
2204                                                          However, the application must not change this field. */
2205         uint32_t msicid                       : 8;  /**< MSI Capability ID */
2206 #else
2207         uint32_t msicid                       : 8;
2208         uint32_t ncp                          : 8;
2209         uint32_t msien                        : 1;
2210         uint32_t mmc                          : 3;
2211         uint32_t mme                          : 3;
2212         uint32_t m64                          : 1;
2213         uint32_t pvm                          : 1;
2214         uint32_t reserved_25_31               : 7;
2215 #endif
2216         } s;
2217         struct cvmx_pciercx_cfg020_cn52xx {
2218 #ifdef __BIG_ENDIAN_BITFIELD
2219         uint32_t reserved_24_31               : 8;
2220         uint32_t m64                          : 1;  /**< 64-bit Address Capable, writable through PESC(0..1)_CFG_WR
2221                                                          However, the application must not change this field. */
2222         uint32_t mme                          : 3;  /**< Multiple Message Enabled
2223                                                          Indicates that multiple Message mode is enabled by system
2224                                                          software. The number of Messages enabled must be less than
2225                                                          or equal to the Multiple Message Capable value. */
2226         uint32_t mmc                          : 3;  /**< Multiple Message Capable, writable through PESC(0..1)_CFG_WR
2227                                                          However, the application must not change this field. */
2228         uint32_t msien                        : 1;  /**< MSI Enabled
2229                                                          When set, INTx must be disabled.
2230                                                          This bit must never be set, as internal-MSI is not supported in
2231                                                          RC mode. (Note that this has no effect on external MSI, which
2232                                                          will be commonly used in RC mode.) */
2233         uint32_t ncp                          : 8;  /**< Next Capability Pointer
2234                                                          Points to PCI Express Capabilities by default,
2235                                                          writable through PESC(0..1)_CFG_WR.
2236                                                          However, the application must not change this field. */
2237         uint32_t msicid                       : 8;  /**< MSI Capability ID */
2238 #else
2239         uint32_t msicid                       : 8;
2240         uint32_t ncp                          : 8;
2241         uint32_t msien                        : 1;
2242         uint32_t mmc                          : 3;
2243         uint32_t mme                          : 3;
2244         uint32_t m64                          : 1;
2245         uint32_t reserved_24_31               : 8;
2246 #endif
2247         } cn52xx;
2248         struct cvmx_pciercx_cfg020_cn52xx     cn52xxp1;
2249         struct cvmx_pciercx_cfg020_cn52xx     cn56xx;
2250         struct cvmx_pciercx_cfg020_cn52xx     cn56xxp1;
2251         struct cvmx_pciercx_cfg020_s          cn61xx;
2252         struct cvmx_pciercx_cfg020_cn52xx     cn63xx;
2253         struct cvmx_pciercx_cfg020_cn52xx     cn63xxp1;
2254         struct cvmx_pciercx_cfg020_cn52xx     cn66xx;
2255         struct cvmx_pciercx_cfg020_cn52xx     cn68xx;
2256         struct cvmx_pciercx_cfg020_cn52xx     cn68xxp1;
2257         struct cvmx_pciercx_cfg020_s          cnf71xx;
2258 };
2259 typedef union cvmx_pciercx_cfg020 cvmx_pciercx_cfg020_t;
2260
2261 /**
2262  * cvmx_pcierc#_cfg021
2263  *
2264  * PCIE_CFG021 = Twenty-second 32-bits of PCIE type 1 config space (MSI Lower 32 Bits Address Register)
2265  *
2266  */
2267 union cvmx_pciercx_cfg021 {
2268         uint32_t u32;
2269         struct cvmx_pciercx_cfg021_s {
2270 #ifdef __BIG_ENDIAN_BITFIELD
2271         uint32_t lmsi                         : 30; /**< Lower 32-bit Address */
2272         uint32_t reserved_0_1                 : 2;
2273 #else
2274         uint32_t reserved_0_1                 : 2;
2275         uint32_t lmsi                         : 30;
2276 #endif
2277         } s;
2278         struct cvmx_pciercx_cfg021_s          cn52xx;
2279         struct cvmx_pciercx_cfg021_s          cn52xxp1;
2280         struct cvmx_pciercx_cfg021_s          cn56xx;
2281         struct cvmx_pciercx_cfg021_s          cn56xxp1;
2282         struct cvmx_pciercx_cfg021_s          cn61xx;
2283         struct cvmx_pciercx_cfg021_s          cn63xx;
2284         struct cvmx_pciercx_cfg021_s          cn63xxp1;
2285         struct cvmx_pciercx_cfg021_s          cn66xx;
2286         struct cvmx_pciercx_cfg021_s          cn68xx;
2287         struct cvmx_pciercx_cfg021_s          cn68xxp1;
2288         struct cvmx_pciercx_cfg021_s          cnf71xx;
2289 };
2290 typedef union cvmx_pciercx_cfg021 cvmx_pciercx_cfg021_t;
2291
2292 /**
2293  * cvmx_pcierc#_cfg022
2294  *
2295  * PCIE_CFG022 = Twenty-third 32-bits of PCIE type 1 config space (MSI Upper 32 bits Address Register)
2296  *
2297  */
2298 union cvmx_pciercx_cfg022 {
2299         uint32_t u32;
2300         struct cvmx_pciercx_cfg022_s {
2301 #ifdef __BIG_ENDIAN_BITFIELD
2302         uint32_t umsi                         : 32; /**< Upper 32-bit Address */
2303 #else
2304         uint32_t umsi                         : 32;
2305 #endif
2306         } s;
2307         struct cvmx_pciercx_cfg022_s          cn52xx;
2308         struct cvmx_pciercx_cfg022_s          cn52xxp1;
2309         struct cvmx_pciercx_cfg022_s          cn56xx;
2310         struct cvmx_pciercx_cfg022_s          cn56xxp1;
2311         struct cvmx_pciercx_cfg022_s          cn61xx;
2312         struct cvmx_pciercx_cfg022_s          cn63xx;
2313         struct cvmx_pciercx_cfg022_s          cn63xxp1;
2314         struct cvmx_pciercx_cfg022_s          cn66xx;
2315         struct cvmx_pciercx_cfg022_s          cn68xx;
2316         struct cvmx_pciercx_cfg022_s          cn68xxp1;
2317         struct cvmx_pciercx_cfg022_s          cnf71xx;
2318 };
2319 typedef union cvmx_pciercx_cfg022 cvmx_pciercx_cfg022_t;
2320
2321 /**
2322  * cvmx_pcierc#_cfg023
2323  *
2324  * PCIE_CFG023 = Twenty-fourth 32-bits of PCIE type 1 config space (MSI Data Register)
2325  *
2326  */
2327 union cvmx_pciercx_cfg023 {
2328         uint32_t u32;
2329         struct cvmx_pciercx_cfg023_s {
2330 #ifdef __BIG_ENDIAN_BITFIELD
2331         uint32_t reserved_16_31               : 16;
2332         uint32_t msimd                        : 16; /**< MSI Data
2333                                                          Pattern assigned by system software, bits [4:0] are Or-ed with
2334                                                          MSI_VECTOR to generate 32 MSI Messages per function. */
2335 #else
2336         uint32_t msimd                        : 16;
2337         uint32_t reserved_16_31               : 16;
2338 #endif
2339         } s;
2340         struct cvmx_pciercx_cfg023_s          cn52xx;
2341         struct cvmx_pciercx_cfg023_s          cn52xxp1;
2342         struct cvmx_pciercx_cfg023_s          cn56xx;
2343         struct cvmx_pciercx_cfg023_s          cn56xxp1;
2344         struct cvmx_pciercx_cfg023_s          cn61xx;
2345         struct cvmx_pciercx_cfg023_s          cn63xx;
2346         struct cvmx_pciercx_cfg023_s          cn63xxp1;
2347         struct cvmx_pciercx_cfg023_s          cn66xx;
2348         struct cvmx_pciercx_cfg023_s          cn68xx;
2349         struct cvmx_pciercx_cfg023_s          cn68xxp1;
2350         struct cvmx_pciercx_cfg023_s          cnf71xx;
2351 };
2352 typedef union cvmx_pciercx_cfg023 cvmx_pciercx_cfg023_t;
2353
2354 /**
2355  * cvmx_pcierc#_cfg028
2356  *
2357  * PCIE_CFG028 = Twenty-ninth 32-bits of PCIE type 1 config space
2358  * (PCI Express Capabilities List Register/
2359  *  PCI Express Capabilities Register)
2360  */
2361 union cvmx_pciercx_cfg028 {
2362         uint32_t u32;
2363         struct cvmx_pciercx_cfg028_s {
2364 #ifdef __BIG_ENDIAN_BITFIELD
2365         uint32_t reserved_30_31               : 2;
2366         uint32_t imn                          : 5;  /**< Interrupt Message Number
2367                                                          Updated by hardware, writable through PEM(0..1)_CFG_WR.
2368                                                           However, the application must not change this field. */
2369         uint32_t si                           : 1;  /**< Slot Implemented
2370                                                          This bit is writable through PEM(0..1)_CFG_WR.
2371                                                          However, it must 0 for an
2372                                                          Endpoint device. Therefore, the application must not write a
2373                                                          1 to this bit. */
2374         uint32_t dpt                          : 4;  /**< Device Port Type */
2375         uint32_t pciecv                       : 4;  /**< PCI Express Capability Version */
2376         uint32_t ncp                          : 8;  /**< Next Capability Pointer
2377                                                          writable through PEM(0..1)_CFG_WR.
2378                                                          However, the application must not change this field. */
2379         uint32_t pcieid                       : 8;  /**< PCIE Capability ID */
2380 #else
2381         uint32_t pcieid                       : 8;
2382         uint32_t ncp                          : 8;
2383         uint32_t pciecv                       : 4;
2384         uint32_t dpt                          : 4;
2385         uint32_t si                           : 1;
2386         uint32_t imn                          : 5;
2387         uint32_t reserved_30_31               : 2;
2388 #endif
2389         } s;
2390         struct cvmx_pciercx_cfg028_s          cn52xx;
2391         struct cvmx_pciercx_cfg028_s          cn52xxp1;
2392         struct cvmx_pciercx_cfg028_s          cn56xx;
2393         struct cvmx_pciercx_cfg028_s          cn56xxp1;
2394         struct cvmx_pciercx_cfg028_s          cn61xx;
2395         struct cvmx_pciercx_cfg028_s          cn63xx;
2396         struct cvmx_pciercx_cfg028_s          cn63xxp1;
2397         struct cvmx_pciercx_cfg028_s          cn66xx;
2398         struct cvmx_pciercx_cfg028_s          cn68xx;
2399         struct cvmx_pciercx_cfg028_s          cn68xxp1;
2400         struct cvmx_pciercx_cfg028_s          cnf71xx;
2401 };
2402 typedef union cvmx_pciercx_cfg028 cvmx_pciercx_cfg028_t;
2403
2404 /**
2405  * cvmx_pcierc#_cfg029
2406  *
2407  * PCIE_CFG029 = Thirtieth 32-bits of PCIE type 1 config space (Device Capabilities Register)
2408  *
2409  */
2410 union cvmx_pciercx_cfg029 {
2411         uint32_t u32;
2412         struct cvmx_pciercx_cfg029_s {
2413 #ifdef __BIG_ENDIAN_BITFIELD
2414         uint32_t reserved_28_31               : 4;
2415         uint32_t cspls                        : 2;  /**< Captured Slot Power Limit Scale
2416                                                          Not applicable for RC port, upstream port only. */
2417         uint32_t csplv                        : 8;  /**< Captured Slot Power Limit Value
2418                                                          Not applicable for RC port, upstream port only. */
2419         uint32_t reserved_16_17               : 2;
2420         uint32_t rber                         : 1;  /**< Role-Based Error Reporting, writable through PEM(0..1)_CFG_WR
2421                                                          However, the application must not change this field. */
2422         uint32_t reserved_12_14               : 3;
2423         uint32_t el1al                        : 3;  /**< Endpoint L1 Acceptable Latency, writable through PEM(0..1)_CFG_WR
2424                                                          Must be 0x0 for non-endpoint devices. */
2425         uint32_t el0al                        : 3;  /**< Endpoint L0s Acceptable Latency, writable through PEM(0..1)_CFG_WR
2426                                                          Must be 0x0 for non-endpoint devices. */
2427         uint32_t etfs                         : 1;  /**< Extended Tag Field Supported
2428                                                          This bit is writable through PEM(0..1)_CFG_WR.
2429                                                          However, the application
2430                                                          must not write a 1 to this bit. */
2431         uint32_t pfs                          : 2;  /**< Phantom Function Supported
2432                                                          This field is writable through PEM(0..1)_CFG_WR.
2433                                                          However, Phantom
2434                                                          Function is not supported. Therefore, the application must not
2435                                                          write any value other than 0x0 to this field. */
2436         uint32_t mpss                         : 3;  /**< Max_Payload_Size Supported, writable through PEM(0..1)_CFG_WR
2437                                                          However, the application must not change this field. */
2438 #else
2439         uint32_t mpss                         : 3;
2440         uint32_t pfs                          : 2;
2441         uint32_t etfs                         : 1;
2442         uint32_t el0al                        : 3;
2443         uint32_t el1al                        : 3;
2444         uint32_t reserved_12_14               : 3;
2445         uint32_t rber                         : 1;
2446         uint32_t reserved_16_17               : 2;
2447         uint32_t csplv                        : 8;
2448         uint32_t cspls                        : 2;
2449         uint32_t reserved_28_31               : 4;
2450 #endif
2451         } s;
2452         struct cvmx_pciercx_cfg029_s          cn52xx;
2453         struct cvmx_pciercx_cfg029_s          cn52xxp1;
2454         struct cvmx_pciercx_cfg029_s          cn56xx;
2455         struct cvmx_pciercx_cfg029_s          cn56xxp1;
2456         struct cvmx_pciercx_cfg029_s          cn61xx;
2457         struct cvmx_pciercx_cfg029_s          cn63xx;
2458         struct cvmx_pciercx_cfg029_s          cn63xxp1;
2459         struct cvmx_pciercx_cfg029_s          cn66xx;
2460         struct cvmx_pciercx_cfg029_s          cn68xx;
2461         struct cvmx_pciercx_cfg029_s          cn68xxp1;
2462         struct cvmx_pciercx_cfg029_s          cnf71xx;
2463 };
2464 typedef union cvmx_pciercx_cfg029 cvmx_pciercx_cfg029_t;
2465
2466 /**
2467  * cvmx_pcierc#_cfg030
2468  *
2469  * PCIE_CFG030 = Thirty-first 32-bits of PCIE type 1 config space
2470  * (Device Control Register/Device Status Register)
2471  */
2472 union cvmx_pciercx_cfg030 {
2473         uint32_t u32;
2474         struct cvmx_pciercx_cfg030_s {
2475 #ifdef __BIG_ENDIAN_BITFIELD
2476         uint32_t reserved_22_31               : 10;
2477         uint32_t tp                           : 1;  /**< Transaction Pending
2478                                                          Hard-wired to 0. */
2479         uint32_t ap_d                         : 1;  /**< Aux Power Detected
2480                                                          Set to 1 if Aux power detected. */
2481         uint32_t ur_d                         : 1;  /**< Unsupported Request Detected
2482                                                          Errors are logged in this register regardless of whether
2483                                                           error reporting is enabled in the Device Control register.
2484                                                          UR_D occurs when we receive something we don't support.
2485                                                          Unsupported requests are Nonfatal errors, so UR_D should
2486                                                          cause NFE_D.  Receiving a  vendor defined message should
2487                                                          cause an unsupported request. */
2488         uint32_t fe_d                         : 1;  /**< Fatal Error Detected
2489                                                          Errors are logged in this register regardless of whether
2490                                                           error reporting is enabled in the Device Control register.
2491                                                          FE_D is set if receive any of the errors in PCIE_CFG066 that
2492                                                          has a severity set to Fatal.  Malformed TLP's generally fit
2493                                                          into this category. */
2494         uint32_t nfe_d                        : 1;  /**< Non-Fatal Error detected
2495                                                          Errors are logged in this register regardless of whether
2496                                                           error reporting is enabled in the Device Control register.
2497                                                          NFE_D is set if we receive any of the errors in PCIE_CFG066
2498                                                          that has a severity set to Nonfatal and does NOT meet Advisory
2499                                                          Nonfatal criteria , which
2500                                                          most poisoned TLP's should be. */
2501         uint32_t ce_d                         : 1;  /**< Correctable Error Detected
2502                                                           Errors are logged in this register regardless of whether
2503                                                           error reporting is enabled in the Device Control register.
2504                                                          CE_D is set if we receive any of the errors in PCIE_CFG068
2505                                                          for example a Replay Timer Timeout.  Also, it can be set if
2506                                                          we get any of the errors in PCIE_CFG066 that has a severity
2507                                                          set to Nonfatal and meets the Advisory Nonfatal criteria,
2508                                                          which most ECRC errors should be. */
2509         uint32_t reserved_15_15               : 1;
2510         uint32_t mrrs                         : 3;  /**< Max Read Request Size
2511                                                           0 = 128B
2512                                                           1 = 256B
2513                                                           2 = 512B
2514                                                           3 = 1024B
2515                                                           4 = 2048B
2516                                                           5 = 4096B
2517                                                          Note: SLI_S2M_PORT#_CTL[MRRS] and DPI_SLI_PRT#_CFG[MRRS] and
2518                                                                also must be set properly.
2519                                                                SLI_S2M_PORT#_CTL[MRRS] and DPI_SLI_PRT#_CFG[MRRS] must
2520                                                                not exceed the desired max read request size. */
2521         uint32_t ns_en                        : 1;  /**< Enable No Snoop */
2522         uint32_t ap_en                        : 1;  /**< AUX Power PM Enable */
2523         uint32_t pf_en                        : 1;  /**< Phantom Function Enable
2524                                                          This bit should never be set - OCTEON requests never use
2525                                                          phantom functions. */
2526         uint32_t etf_en                       : 1;  /**< Extended Tag Field Enable
2527                                                          This bit should never be set - OCTEON requests never use
2528                                                          extended tags. */
2529         uint32_t mps                          : 3;  /**< Max Payload Size
2530                                                           Legal values:
2531                                                            0  = 128B
2532                                                            1  = 256B
2533                                                           Larger sizes not supported.
2534                                                          Note: Both PCI Express Ports must be set to the same value
2535                                                                for Peer-to-Peer to function properly.
2536                                                          Note: DPI_SLI_PRT#_CFG[MPS] must also be set to the same
2537                                                                value for proper functionality. */
2538         uint32_t ro_en                        : 1;  /**< Enable Relaxed Ordering
2539                                                          This bit is not used. */
2540         uint32_t ur_en                        : 1;  /**< Unsupported Request Reporting Enable */
2541         uint32_t fe_en                        : 1;  /**< Fatal Error Reporting Enable */
2542         uint32_t nfe_en                       : 1;  /**< Non-Fatal Error Reporting Enable */
2543         uint32_t ce_en                        : 1;  /**< Correctable Error Reporting Enable */
2544 #else
2545         uint32_t ce_en                        : 1;
2546         uint32_t nfe_en                       : 1;
2547         uint32_t fe_en                        : 1;
2548         uint32_t ur_en                        : 1;
2549         uint32_t ro_en                        : 1;
2550         uint32_t mps                          : 3;
2551         uint32_t etf_en                       : 1;
2552         uint32_t pf_en                        : 1;
2553         uint32_t ap_en                        : 1;
2554         uint32_t ns_en                        : 1;
2555         uint32_t mrrs                         : 3;
2556         uint32_t reserved_15_15               : 1;
2557         uint32_t ce_d                         : 1;
2558         uint32_t nfe_d                        : 1;
2559         uint32_t fe_d                         : 1;
2560         uint32_t ur_d                         : 1;
2561         uint32_t ap_d                         : 1;
2562         uint32_t tp                           : 1;
2563         uint32_t reserved_22_31               : 10;
2564 #endif
2565         } s;
2566         struct cvmx_pciercx_cfg030_s          cn52xx;
2567         struct cvmx_pciercx_cfg030_s          cn52xxp1;
2568         struct cvmx_pciercx_cfg030_s          cn56xx;
2569         struct cvmx_pciercx_cfg030_s          cn56xxp1;
2570         struct cvmx_pciercx_cfg030_s          cn61xx;
2571         struct cvmx_pciercx_cfg030_s          cn63xx;
2572         struct cvmx_pciercx_cfg030_s          cn63xxp1;
2573         struct cvmx_pciercx_cfg030_s          cn66xx;
2574         struct cvmx_pciercx_cfg030_s          cn68xx;
2575         struct cvmx_pciercx_cfg030_s          cn68xxp1;
2576         struct cvmx_pciercx_cfg030_s          cnf71xx;
2577 };
2578 typedef union cvmx_pciercx_cfg030 cvmx_pciercx_cfg030_t;
2579
2580 /**
2581  * cvmx_pcierc#_cfg031
2582  *
2583  * PCIE_CFG031 = Thirty-second 32-bits of PCIE type 1 config space
2584  * (Link Capabilities Register)
2585  */
2586 union cvmx_pciercx_cfg031 {
2587         uint32_t u32;
2588         struct cvmx_pciercx_cfg031_s {
2589 #ifdef __BIG_ENDIAN_BITFIELD
2590         uint32_t pnum                         : 8;  /**< Port Number
2591                                                          writable through PEM(0..1)_CFG_WR, however the application
2592                                                          must not change this field. */
2593         uint32_t reserved_23_23               : 1;
2594         uint32_t aspm                         : 1;  /**< ASPM Optionality Compliance */
2595         uint32_t lbnc                         : 1;  /**< Link Bandwidth Notification Capability
2596                                                          Set to 1 for Root Complex devices. writable through PEM(0..1)_CFG_WR.
2597                                                          However, the application must not change this field. */
2598         uint32_t dllarc                       : 1;  /**< Data Link Layer Active Reporting Capable
2599                                                          Set to 1 for Root Complex devices and 0 for Endpoint devices. */
2600         uint32_t sderc                        : 1;  /**< Surprise Down Error Reporting Capable
2601                                                          Not supported, hardwired to 0x0. */
2602         uint32_t cpm                          : 1;  /**< Clock Power Management
2603                                                          The default value is the value you specify during hardware
2604                                                          configuration, writable through PEM(0..1)_CFG_WR.
2605                                                          However, the application must not change this field. */
2606         uint32_t l1el                         : 3;  /**< L1 Exit Latency
2607                                                          The default value is the value you specify during hardware
2608                                                          configuration, writable through PEM(0..1)_CFG_WR.
2609                                                          However, the application must not change this field. */
2610         uint32_t l0el                         : 3;  /**< L0s Exit Latency
2611                                                          The default value is the value you specify during hardware
2612                                                          configuration, writable through PEM(0..1)_CFG_WR.
2613                                                          However, the application must not change this field. */
2614         uint32_t aslpms                       : 2;  /**< Active State Link PM Support
2615                                                          The default value is the value you specify during hardware
2616                                                          configuration, writable through PEM(0..1)_CFG_WR.
2617                                                          However, the application must not change this field. */
2618         uint32_t mlw                          : 6;  /**< Maximum Link Width
2619                                                          The default value is the value you specify during hardware
2620                                                          configuration (x1 or x2) writable through PEM(0..1)_CFG_WR. */
2621         uint32_t mls                          : 4;  /**< Maximum Link Speed
2622                                                          The reset value of this field is controlled by a value sent from
2623                                                          the lsb of the MIO_QLM#_SPD register.
2624                                                          qlm#_spd[0]   RST_VALUE   NOTE
2625                                                          1             0001b       2.5 GHz supported
2626                                                          0             0010b       5.0 GHz and 2.5 GHz supported
2627                                                          This field is writable through PEM(0..1)_CFG_WR.
2628                                                          However, the application must not change this field. */
2629 #else
2630         uint32_t mls                          : 4;
2631         uint32_t mlw                          : 6;
2632         uint32_t aslpms                       : 2;
2633         uint32_t l0el                         : 3;
2634         uint32_t l1el                         : 3;
2635         uint32_t cpm                          : 1;
2636         uint32_t sderc                        : 1;
2637         uint32_t dllarc                       : 1;
2638         uint32_t lbnc                         : 1;
2639         uint32_t aspm                         : 1;
2640         uint32_t reserved_23_23               : 1;
2641         uint32_t pnum                         : 8;
2642 #endif
2643         } s;
2644         struct cvmx_pciercx_cfg031_cn52xx {
2645 #ifdef __BIG_ENDIAN_BITFIELD
2646         uint32_t pnum                         : 8;  /**< Port Number, writable through PESC(0..1)_CFG_WR
2647                                                          However, the application must not change this field. */
2648         uint32_t reserved_22_23               : 2;
2649         uint32_t lbnc                         : 1;  /**< Link Bandwith Notification Capability */
2650         uint32_t dllarc                       : 1;  /**< Data Link Layer Active Reporting Capable
2651                                                          Set to 1 for Root Complex devices and 0 for Endpoint devices. */
2652         uint32_t sderc                        : 1;  /**< Surprise Down Error Reporting Capable
2653                                                          Not supported, hardwired to 0x0. */
2654         uint32_t cpm                          : 1;  /**< Clock Power Management
2655                                                          The default value is the value you specify during hardware
2656                                                          configuration, writable through PESC(0..1)_CFG_WR.
2657                                                          However, the application must not change this field. */
2658         uint32_t l1el                         : 3;  /**< L1 Exit Latency
2659                                                          The default value is the value you specify during hardware
2660                                                          configuration, writable through PESC(0..1)_CFG_WR.
2661                                                          However, the application must not change this field. */
2662         uint32_t l0el                         : 3;  /**< L0s Exit Latency
2663                                                          The default value is the value you specify during hardware
2664                                                          configuration, writable through PESC(0..1)_CFG_WR.
2665                                                          However, the application must not change this field. */
2666         uint32_t aslpms                       : 2;  /**< Active State Link PM Support
2667                                                          The default value is the value you specify during hardware
2668                                                          configuration, writable through PESC(0..1)_CFG_WR.
2669                                                          However, the application must not change this field. */
2670         uint32_t mlw                          : 6;  /**< Maximum Link Width
2671                                                          The default value is the value you specify during hardware
2672                                                          configuration (x1, x4, x8, or x16), writable through PESC(0..1)_CFG_WR.
2673                                                          The SW needs to set this to 0x4 or 0x2 depending on the max
2674                                                          number of lanes (QLM_CFG == 1 set to 0x4 else 0x2). */
2675         uint32_t mls                          : 4;  /**< Maximum Link Speed
2676                                                          Default value is 0x1 for 2.5 Gbps Link.
2677                                                          This field is writable through PESC(0..1)_CFG_WR.
2678                                                          However, 0x1 is the
2679                                                          only supported value. Therefore, the application must not write
2680                                                          any value other than 0x1 to this field. */
2681 #else
2682         uint32_t mls                          : 4;
2683         uint32_t mlw                          : 6;
2684         uint32_t aslpms                       : 2;
2685         uint32_t l0el                         : 3;
2686         uint32_t l1el                         : 3;
2687         uint32_t cpm                          : 1;
2688         uint32_t sderc                        : 1;
2689         uint32_t dllarc                       : 1;
2690         uint32_t lbnc                         : 1;
2691         uint32_t reserved_22_23               : 2;
2692         uint32_t pnum                         : 8;
2693 #endif
2694         } cn52xx;
2695         struct cvmx_pciercx_cfg031_cn52xx     cn52xxp1;
2696         struct cvmx_pciercx_cfg031_cn52xx     cn56xx;
2697         struct cvmx_pciercx_cfg031_cn52xx     cn56xxp1;
2698         struct cvmx_pciercx_cfg031_s          cn61xx;
2699         struct cvmx_pciercx_cfg031_cn52xx     cn63xx;
2700         struct cvmx_pciercx_cfg031_cn52xx     cn63xxp1;
2701         struct cvmx_pciercx_cfg031_s          cn66xx;
2702         struct cvmx_pciercx_cfg031_s          cn68xx;
2703         struct cvmx_pciercx_cfg031_cn52xx     cn68xxp1;
2704         struct cvmx_pciercx_cfg031_s          cnf71xx;
2705 };
2706 typedef union cvmx_pciercx_cfg031 cvmx_pciercx_cfg031_t;
2707
2708 /**
2709  * cvmx_pcierc#_cfg032
2710  *
2711  * PCIE_CFG032 = Thirty-third 32-bits of PCIE type 1 config space
2712  * (Link Control Register/Link Status Register)
2713  */
2714 union cvmx_pciercx_cfg032 {
2715         uint32_t u32;
2716         struct cvmx_pciercx_cfg032_s {
2717 #ifdef __BIG_ENDIAN_BITFIELD
2718         uint32_t lab                          : 1;  /**< Link Autonomous Bandwidth Status
2719                                                          this bit is set to indicate that hardware has autonomously
2720                                                          changed Link speed or width, without the Port transitioning
2721                                                          through DL_Down status, for reasons other than to attempt
2722                                                          to correct unreliable Link operation. */
2723         uint32_t lbm                          : 1;  /**< Link Bandwidth Management Status
2724                                                          This bit is set to indicate either of the following has
2725                                                          occurred without the Port transitioning through DL_DOWN status
2726                                                          o A link retraining has completed following a write of 1b to
2727                                                            the Retrain Link bit
2728                                                          o Hardware has changed the Link speed or width to attempt to
2729                                                            correct unreliable Link operation, either through a LTSSM
2730                                                            timeout of higher level process.  This bit must be set if
2731                                                            the Physical Layer reports a speed or width change was
2732                                                            inititiated by the Downstream component tha was not
2733                                                            indicated as an autonomous change */
2734         uint32_t dlla                         : 1;  /**< Data Link Layer Active */
2735         uint32_t scc                          : 1;  /**< Slot Clock Configuration
2736                                                          Indicates that the component uses the same physical reference
2737                                                          clock that the platform provides on the connector. The default
2738                                                          value is the value you select during hardware configuration,
2739                                                          writable through PEM(0..1)_CFG_WR.
2740                                                          However, the application must not change this field. */
2741         uint32_t lt                           : 1;  /**< Link Training */
2742         uint32_t reserved_26_26               : 1;
2743         uint32_t nlw                          : 6;  /**< Negotiated Link Width
2744                                                          Set automatically by hardware after Link initialization.
2745                                                          Value is undefined when link is not up. */
2746         uint32_t ls                           : 4;  /**< Link Speed
2747                                                          0001 == The negotiated Link speed: 2.5 Gbps
2748                                                          0010 == The negotiated Link speed: 5.0 Gbps
2749                                                          0100 == The negotiated Link speed: 8.0 Gbps (Not Supported) */
2750         uint32_t reserved_12_15               : 4;
2751         uint32_t lab_int_enb                  : 1;  /**< Link Autonomous Bandwidth Interrupt Enable
2752                                                          When set, enables the generation of an interrupt to indicate
2753                                                          that the Link Autonomous Bandwidth Status bit has been set. */
2754         uint32_t lbm_int_enb                  : 1;  /**< Link Bandwidth Management Interrupt Enable
2755                                                          When set, enables the generation of an interrupt to indicate
2756                                                          that the Link Bandwidth Management Status bit has been set. */
2757         uint32_t hawd                         : 1;  /**< Hardware Autonomous Width Disable
2758                                                          (Not Supported) */
2759         uint32_t ecpm                         : 1;  /**< Enable Clock Power Management
2760                                                          Hardwired to 0 if Clock Power Management is disabled in
2761                                                          the Link Capabilities register. */
2762         uint32_t es                           : 1;  /**< Extended Synch */
2763         uint32_t ccc                          : 1;  /**< Common Clock Configuration */
2764         uint32_t rl                           : 1;  /**< Retrain Link */
2765         uint32_t ld                           : 1;  /**< Link Disable */
2766         uint32_t rcb                          : 1;  /**< Read Completion Boundary (RCB), writable through PEM(0..1)_CFG_WR
2767                                                          However, the application must not change this field
2768                                                          because an RCB of 64 bytes is not supported. */
2769         uint32_t reserved_2_2                 : 1;
2770         uint32_t aslpc                        : 2;  /**< Active State Link PM Control */
2771 #else
2772         uint32_t aslpc                        : 2;
2773         uint32_t reserved_2_2                 : 1;
2774         uint32_t rcb                          : 1;
2775         uint32_t ld                           : 1;
2776         uint32_t rl                           : 1;
2777         uint32_t ccc                          : 1;
2778         uint32_t es                           : 1;
2779         uint32_t ecpm                         : 1;
2780         uint32_t hawd                         : 1;
2781         uint32_t lbm_int_enb                  : 1;
2782         uint32_t lab_int_enb                  : 1;
2783         uint32_t reserved_12_15               : 4;
2784         uint32_t ls                           : 4;
2785         uint32_t nlw                          : 6;
2786         uint32_t reserved_26_26               : 1;
2787         uint32_t lt                           : 1;
2788         uint32_t scc                          : 1;
2789         uint32_t dlla                         : 1;
2790         uint32_t lbm                          : 1;
2791         uint32_t lab                          : 1;
2792 #endif
2793         } s;
2794         struct cvmx_pciercx_cfg032_s          cn52xx;
2795         struct cvmx_pciercx_cfg032_s          cn52xxp1;
2796         struct cvmx_pciercx_cfg032_s          cn56xx;
2797         struct cvmx_pciercx_cfg032_s          cn56xxp1;
2798         struct cvmx_pciercx_cfg032_s          cn61xx;
2799         struct cvmx_pciercx_cfg032_s          cn63xx;
2800         struct cvmx_pciercx_cfg032_s          cn63xxp1;
2801         struct cvmx_pciercx_cfg032_s          cn66xx;
2802         struct cvmx_pciercx_cfg032_s          cn68xx;
2803         struct cvmx_pciercx_cfg032_s          cn68xxp1;
2804         struct cvmx_pciercx_cfg032_s          cnf71xx;
2805 };
2806 typedef union cvmx_pciercx_cfg032 cvmx_pciercx_cfg032_t;
2807
2808 /**
2809  * cvmx_pcierc#_cfg033
2810  *
2811  * PCIE_CFG033 = Thirty-fourth 32-bits of PCIE type 1 config space
2812  * (Slot Capabilities Register)
2813  */
2814 union cvmx_pciercx_cfg033 {
2815         uint32_t u32;
2816         struct cvmx_pciercx_cfg033_s {
2817 #ifdef __BIG_ENDIAN_BITFIELD
2818         uint32_t ps_num                       : 13; /**< Physical Slot Number, writable through PEM(0..1)_CFG_WR
2819                                                          However, the application must not change this field. */
2820         uint32_t nccs                         : 1;  /**< No Command Complete Support, writable through PEM(0..1)_CFG_WR
2821                                                          However, the application must not change this field. */
2822         uint32_t emip                         : 1;  /**< Electromechanical Interlock Present, writable through PEM(0..1)_CFG_WR
2823                                                          However, the application must not change this field. */
2824         uint32_t sp_ls                        : 2;  /**< Slot Power Limit Scale, writable through PEM(0..1)_CFG_WR. */
2825         uint32_t sp_lv                        : 8;  /**< Slot Power Limit Value, writable through PEM(0..1)_CFG_WR. */
2826         uint32_t hp_c                         : 1;  /**< Hot-Plug Capable, writable through PEM(0..1)_CFG_WR
2827                                                          However, the application must not change this field. */
2828         uint32_t hp_s                         : 1;  /**< Hot-Plug Surprise, writable through PEM(0..1)_CFG_WR
2829                                                          However, the application must not change this field. */
2830         uint32_t pip                          : 1;  /**< Power Indicator Present, writable through PEM(0..1)_CFG_WR
2831                                                          However, the application must not change this field. */
2832         uint32_t aip                          : 1;  /**< Attention Indicator Present, writable through PEM(0..1)_CFG_WR
2833                                                          However, the application must not change this field. */
2834         uint32_t mrlsp                        : 1;  /**< MRL Sensor Present, writable through PEM(0..1)_CFG_WR
2835                                                          However, the application must not change this field. */
2836         uint32_t pcp                          : 1;  /**< Power Controller Present, writable through PEM(0..1)_CFG_WR
2837                                                          However, the application must not change this field. */
2838         uint32_t abp                          : 1;  /**< Attention Button Present, writable through PEM(0..1)_CFG_WR
2839                                                          However, the application must not change this field. */
2840 #else
2841         uint32_t abp                          : 1;
2842         uint32_t pcp                          : 1;
2843         uint32_t mrlsp                        : 1;
2844         uint32_t aip                          : 1;
2845         uint32_t pip                          : 1;
2846         uint32_t hp_s                         : 1;
2847         uint32_t hp_c                         : 1;
2848         uint32_t sp_lv                        : 8;
2849         uint32_t sp_ls                        : 2;
2850         uint32_t emip                         : 1;
2851         uint32_t nccs                         : 1;
2852         uint32_t ps_num                       : 13;
2853 #endif
2854         } s;
2855         struct cvmx_pciercx_cfg033_s          cn52xx;
2856         struct cvmx_pciercx_cfg033_s          cn52xxp1;
2857         struct cvmx_pciercx_cfg033_s          cn56xx;
2858         struct cvmx_pciercx_cfg033_s          cn56xxp1;
2859         struct cvmx_pciercx_cfg033_s          cn61xx;
2860         struct cvmx_pciercx_cfg033_s          cn63xx;
2861         struct cvmx_pciercx_cfg033_s          cn63xxp1;
2862         struct cvmx_pciercx_cfg033_s          cn66xx;
2863         struct cvmx_pciercx_cfg033_s          cn68xx;
2864         struct cvmx_pciercx_cfg033_s          cn68xxp1;
2865         struct cvmx_pciercx_cfg033_s          cnf71xx;
2866 };
2867 typedef union cvmx_pciercx_cfg033 cvmx_pciercx_cfg033_t;
2868
2869 /**
2870  * cvmx_pcierc#_cfg034
2871  *
2872  * PCIE_CFG034 = Thirty-fifth 32-bits of PCIE type 1 config space
2873  * (Slot Control Register/Slot Status Register)
2874  */
2875 union cvmx_pciercx_cfg034 {
2876         uint32_t u32;
2877         struct cvmx_pciercx_cfg034_s {
2878 #ifdef __BIG_ENDIAN_BITFIELD
2879         uint32_t reserved_25_31               : 7;
2880         uint32_t dlls_c                       : 1;  /**< Data Link Layer State Changed */
2881         uint32_t emis                         : 1;  /**< Electromechanical Interlock Status */
2882         uint32_t pds                          : 1;  /**< Presence Detect State */
2883         uint32_t mrlss                        : 1;  /**< MRL Sensor State */
2884         uint32_t ccint_d                      : 1;  /**< Command Completed */
2885         uint32_t pd_c                         : 1;  /**< Presence Detect Changed */
2886         uint32_t mrls_c                       : 1;  /**< MRL Sensor Changed */
2887         uint32_t pf_d                         : 1;  /**< Power Fault Detected */
2888         uint32_t abp_d                        : 1;  /**< Attention Button Pressed */
2889         uint32_t reserved_13_15               : 3;
2890         uint32_t dlls_en                      : 1;  /**< Data Link Layer State Changed Enable */
2891         uint32_t emic                         : 1;  /**< Electromechanical Interlock Control */
2892         uint32_t pcc                          : 1;  /**< Power Controller Control */
2893         uint32_t pic                          : 2;  /**< Power Indicator Control */
2894         uint32_t aic                          : 2;  /**< Attention Indicator Control */
2895         uint32_t hpint_en                     : 1;  /**< Hot-Plug Interrupt Enable */
2896         uint32_t ccint_en                     : 1;  /**< Command Completed Interrupt Enable */
2897         uint32_t pd_en                        : 1;  /**< Presence Detect Changed Enable */
2898         uint32_t mrls_en                      : 1;  /**< MRL Sensor Changed Enable */
2899         uint32_t pf_en                        : 1;  /**< Power Fault Detected Enable */
2900         uint32_t abp_en                       : 1;  /**< Attention Button Pressed Enable */
2901 #else
2902         uint32_t abp_en                       : 1;
2903         uint32_t pf_en                        : 1;
2904         uint32_t mrls_en                      : 1;
2905         uint32_t pd_en                        : 1;
2906         uint32_t ccint_en                     : 1;
2907         uint32_t hpint_en                     : 1;
2908         uint32_t aic                          : 2;
2909         uint32_t pic                          : 2;
2910         uint32_t pcc                          : 1;
2911         uint32_t emic                         : 1;
2912         uint32_t dlls_en                      : 1;
2913         uint32_t reserved_13_15               : 3;
2914         uint32_t abp_d                        : 1;
2915         uint32_t pf_d                         : 1;
2916         uint32_t mrls_c                       : 1;
2917         uint32_t pd_c                         : 1;
2918         uint32_t ccint_d                      : 1;
2919         uint32_t mrlss                        : 1;
2920         uint32_t pds                          : 1;
2921         uint32_t emis                         : 1;
2922         uint32_t dlls_c                       : 1;
2923         uint32_t reserved_25_31               : 7;
2924 #endif
2925         } s;
2926         struct cvmx_pciercx_cfg034_s          cn52xx;
2927         struct cvmx_pciercx_cfg034_s          cn52xxp1;
2928         struct cvmx_pciercx_cfg034_s          cn56xx;
2929         struct cvmx_pciercx_cfg034_s          cn56xxp1;
2930         struct cvmx_pciercx_cfg034_s          cn61xx;
2931         struct cvmx_pciercx_cfg034_s          cn63xx;
2932         struct cvmx_pciercx_cfg034_s          cn63xxp1;
2933         struct cvmx_pciercx_cfg034_s          cn66xx;
2934         struct cvmx_pciercx_cfg034_s          cn68xx;
2935         struct cvmx_pciercx_cfg034_s          cn68xxp1;
2936         struct cvmx_pciercx_cfg034_s          cnf71xx;
2937 };
2938 typedef union cvmx_pciercx_cfg034 cvmx_pciercx_cfg034_t;
2939
2940 /**
2941  * cvmx_pcierc#_cfg035
2942  *
2943  * PCIE_CFG035 = Thirty-sixth 32-bits of PCIE type 1 config space
2944  * (Root Control Register/Root Capabilities Register)
2945  */
2946 union cvmx_pciercx_cfg035 {
2947         uint32_t u32;
2948         struct cvmx_pciercx_cfg035_s {
2949 #ifdef __BIG_ENDIAN_BITFIELD
2950         uint32_t reserved_17_31               : 15;
2951         uint32_t crssv                        : 1;  /**< CRS Software Visibility
2952                                                          Not supported, hardwired to 0x0. */
2953         uint32_t reserved_5_15                : 11;
2954         uint32_t crssve                       : 1;  /**< CRS Software Visibility Enable
2955                                                          Not supported, hardwired to 0x0. */
2956         uint32_t pmeie                        : 1;  /**< PME Interrupt Enable */
2957         uint32_t sefee                        : 1;  /**< System Error on Fatal Error Enable */
2958         uint32_t senfee                       : 1;  /**< System Error on Non-fatal Error Enable */
2959         uint32_t secee                        : 1;  /**< System Error on Correctable Error Enable */
2960 #else
2961         uint32_t secee                        : 1;
2962         uint32_t senfee                       : 1;
2963         uint32_t sefee                        : 1;
2964         uint32_t pmeie                        : 1;
2965         uint32_t crssve                       : 1;
2966         uint32_t reserved_5_15                : 11;
2967         uint32_t crssv                        : 1;
2968         uint32_t reserved_17_31               : 15;
2969 #endif
2970         } s;
2971         struct cvmx_pciercx_cfg035_s          cn52xx;
2972         struct cvmx_pciercx_cfg035_s          cn52xxp1;
2973         struct cvmx_pciercx_cfg035_s          cn56xx;
2974         struct cvmx_pciercx_cfg035_s          cn56xxp1;
2975         struct cvmx_pciercx_cfg035_s          cn61xx;
2976         struct cvmx_pciercx_cfg035_s          cn63xx;
2977         struct cvmx_pciercx_cfg035_s          cn63xxp1;
2978         struct cvmx_pciercx_cfg035_s          cn66xx;
2979         struct cvmx_pciercx_cfg035_s          cn68xx;
2980         struct cvmx_pciercx_cfg035_s          cn68xxp1;
2981         struct cvmx_pciercx_cfg035_s          cnf71xx;
2982 };
2983 typedef union cvmx_pciercx_cfg035 cvmx_pciercx_cfg035_t;
2984
2985 /**
2986  * cvmx_pcierc#_cfg036
2987  *
2988  * PCIE_CFG036 = Thirty-seventh 32-bits of PCIE type 1 config space
2989  * (Root Status Register)
2990  */
2991 union cvmx_pciercx_cfg036 {
2992         uint32_t u32;
2993         struct cvmx_pciercx_cfg036_s {
2994 #ifdef __BIG_ENDIAN_BITFIELD
2995         uint32_t reserved_18_31               : 14;
2996         uint32_t pme_pend                     : 1;  /**< PME Pending */
2997         uint32_t pme_stat                     : 1;  /**< PME Status */
2998         uint32_t pme_rid                      : 16; /**< PME Requester ID */
2999 #else
3000         uint32_t pme_rid                      : 16;
3001         uint32_t pme_stat                     : 1;
3002         uint32_t pme_pend                     : 1;
3003         uint32_t reserved_18_31               : 14;
3004 #endif
3005         } s;
3006         struct cvmx_pciercx_cfg036_s          cn52xx;
3007         struct cvmx_pciercx_cfg036_s          cn52xxp1;
3008         struct cvmx_pciercx_cfg036_s          cn56xx;
3009         struct cvmx_pciercx_cfg036_s          cn56xxp1;
3010         struct cvmx_pciercx_cfg036_s          cn61xx;
3011         struct cvmx_pciercx_cfg036_s          cn63xx;
3012         struct cvmx_pciercx_cfg036_s          cn63xxp1;
3013         struct cvmx_pciercx_cfg036_s          cn66xx;
3014         struct cvmx_pciercx_cfg036_s          cn68xx;
3015         struct cvmx_pciercx_cfg036_s          cn68xxp1;
3016         struct cvmx_pciercx_cfg036_s          cnf71xx;
3017 };
3018 typedef union cvmx_pciercx_cfg036 cvmx_pciercx_cfg036_t;
3019
3020 /**
3021  * cvmx_pcierc#_cfg037
3022  *
3023  * PCIE_CFG037 = Thirty-eighth 32-bits of PCIE type 1 config space
3024  * (Device Capabilities 2 Register)
3025  */
3026 union cvmx_pciercx_cfg037 {
3027         uint32_t u32;
3028         struct cvmx_pciercx_cfg037_s {
3029 #ifdef __BIG_ENDIAN_BITFIELD
3030         uint32_t reserved_20_31               : 12;
3031         uint32_t obffs                        : 2;  /**< Optimized Buffer Flush Fill (OBFF) Supported
3032                                                          (Not Supported) */
3033         uint32_t reserved_12_17               : 6;
3034         uint32_t ltrs                         : 1;  /**< Latency Tolerance Reporting (LTR) Mechanism Supported
3035                                                          (Not Supported) */
3036         uint32_t noroprpr                     : 1;  /**< No RO-enabled PR-PR Passing
3037                                                          When set, the routing element never carries out the passing
3038                                                          permitted in the Relaxed Ordering Model. */
3039         uint32_t atom128s                     : 1;  /**< 128-bit AtomicOp Supported
3040                                                          (Not Supported) */
3041         uint32_t atom64s                      : 1;  /**< 64-bit AtomicOp Supported
3042                                                          (Not Supported) */
3043         uint32_t atom32s                      : 1;  /**< 32-bit AtomicOp Supported
3044                                                          (Not Supported) */
3045         uint32_t atom_ops                     : 1;  /**< AtomicOp Routing Supported
3046                                                          (Not Supported) */
3047         uint32_t reserved_5_5                 : 1;
3048         uint32_t ctds                         : 1;  /**< Completion Timeout Disable Supported */
3049         uint32_t ctrs                         : 4;  /**< Completion Timeout Ranges Supported */
3050 #else
3051         uint32_t ctrs                         : 4;
3052         uint32_t ctds                         : 1;
3053         uint32_t reserved_5_5                 : 1;
3054         uint32_t atom_ops                     : 1;
3055         uint32_t atom32s                      : 1;
3056         uint32_t atom64s                      : 1;
3057         uint32_t atom128s                     : 1;
3058         uint32_t noroprpr                     : 1;
3059         uint32_t ltrs                         : 1;
3060         uint32_t reserved_12_17               : 6;
3061         uint32_t obffs                        : 2;
3062         uint32_t reserved_20_31               : 12;
3063 #endif
3064         } s;
3065         struct cvmx_pciercx_cfg037_cn52xx {
3066 #ifdef __BIG_ENDIAN_BITFIELD
3067         uint32_t reserved_5_31                : 27;
3068         uint32_t ctds                         : 1;  /**< Completion Timeout Disable Supported */
3069         uint32_t ctrs                         : 4;  /**< Completion Timeout Ranges Supported
3070                                                          Value of 0 indicates that Completion Timeout Programming
3071                                                          is not supported
3072                                                          Completion timeout is 16.7ms. */
3073 #else
3074         uint32_t ctrs                         : 4;
3075         uint32_t ctds                         : 1;
3076         uint32_t reserved_5_31                : 27;
3077 #endif
3078         } cn52xx;
3079         struct cvmx_pciercx_cfg037_cn52xx     cn52xxp1;
3080         struct cvmx_pciercx_cfg037_cn52xx     cn56xx;
3081         struct cvmx_pciercx_cfg037_cn52xx     cn56xxp1;
3082         struct cvmx_pciercx_cfg037_cn61xx {
3083 #ifdef __BIG_ENDIAN_BITFIELD
3084         uint32_t reserved_14_31               : 18;
3085         uint32_t tph                          : 2;  /**< TPH Completer Supported
3086                                                          (Not Supported) */
3087         uint32_t reserved_11_11               : 1;
3088         uint32_t noroprpr                     : 1;  /**< No RO-enabled PR-PR Passing
3089                                                          When set, the routing element never carries out the passing
3090                                                          permitted in the Relaxed Ordering Model. */
3091         uint32_t atom128s                     : 1;  /**< 128-bit AtomicOp Supported
3092                                                          (Not Supported) */
3093         uint32_t atom64s                      : 1;  /**< 64-bit AtomicOp Supported
3094                                                          (Not Supported) */
3095         uint32_t atom32s                      : 1;  /**< 32-bit AtomicOp Supported
3096                                                          (Not Supported) */
3097         uint32_t atom_ops                     : 1;  /**< AtomicOp Routing Supported
3098                                                          (Not Supported) */
3099         uint32_t ari_fw                       : 1;  /**< ARI Forwarding Supported
3100                                                          (Not Supported) */
3101         uint32_t ctds                         : 1;  /**< Completion Timeout Disable Supported */
3102         uint32_t ctrs                         : 4;  /**< Completion Timeout Ranges Supported */
3103 #else
3104         uint32_t ctrs                         : 4;
3105         uint32_t ctds                         : 1;
3106         uint32_t ari_fw                       : 1;
3107         uint32_t atom_ops                     : 1;
3108         uint32_t atom32s                      : 1;
3109         uint32_t atom64s                      : 1;
3110         uint32_t atom128s                     : 1;
3111         uint32_t noroprpr                     : 1;
3112         uint32_t reserved_11_11               : 1;
3113         uint32_t tph                          : 2;
3114         uint32_t reserved_14_31               : 18;
3115 #endif
3116         } cn61xx;
3117         struct cvmx_pciercx_cfg037_cn52xx     cn63xx;
3118         struct cvmx_pciercx_cfg037_cn52xx     cn63xxp1;
3119         struct cvmx_pciercx_cfg037_cn66xx {
3120 #ifdef __BIG_ENDIAN_BITFIELD
3121         uint32_t reserved_14_31               : 18;
3122         uint32_t tph                          : 2;  /**< TPH Completer Supported
3123                                                          (Not Supported) */
3124         uint32_t reserved_11_11               : 1;
3125         uint32_t noroprpr                     : 1;  /**< No RO-enabled PR-PR Passing
3126                                                          When set, the routing element never carries out the passing
3127                                                          permitted in the Relaxed Ordering Model. */
3128         uint32_t atom128s                     : 1;  /**< 128-bit AtomicOp Supported
3129                                                          (Not Supported) */
3130         uint32_t atom64s                      : 1;  /**< 64-bit AtomicOp Supported
3131                                                          (Not Supported) */
3132         uint32_t atom32s                      : 1;  /**< 32-bit AtomicOp Supported
3133                                                          (Not Supported) */
3134         uint32_t atom_ops                     : 1;  /**< AtomicOp Routing Supported
3135                                                          (Not Supported) */
3136         uint32_t ari                          : 1;  /**< Alternate Routing ID Forwarding Supported
3137                                                          (Not Supported) */
3138         uint32_t ctds                         : 1;  /**< Completion Timeout Disable Supported */
3139         uint32_t ctrs                         : 4;  /**< Completion Timeout Ranges Supported */
3140 #else
3141         uint32_t ctrs                         : 4;
3142         uint32_t ctds                         : 1;
3143         uint32_t ari                          : 1;
3144         uint32_t atom_ops                     : 1;
3145         uint32_t atom32s                      : 1;
3146         uint32_t atom64s                      : 1;
3147         uint32_t atom128s                     : 1;
3148         uint32_t noroprpr                     : 1;
3149         uint32_t reserved_11_11               : 1;
3150         uint32_t tph                          : 2;
3151         uint32_t reserved_14_31               : 18;
3152 #endif
3153         } cn66xx;
3154         struct cvmx_pciercx_cfg037_cn66xx     cn68xx;
3155         struct cvmx_pciercx_cfg037_cn66xx     cn68xxp1;
3156         struct cvmx_pciercx_cfg037_cnf71xx {
3157 #ifdef __BIG_ENDIAN_BITFIELD
3158         uint32_t reserved_20_31               : 12;
3159         uint32_t obffs                        : 2;  /**< Optimized Buffer Flush Fill (OBFF) Supported
3160                                                          (Not Supported) */
3161         uint32_t reserved_14_17               : 4;
3162         uint32_t tphs                         : 2;  /**< TPH Completer Supported
3163                                                          (Not Supported) */
3164         uint32_t ltrs                         : 1;  /**< Latency Tolerance Reporting (LTR) Mechanism Supported
3165                                                          (Not Supported) */
3166         uint32_t noroprpr                     : 1;  /**< No RO-enabled PR-PR Passing
3167                                                          When set, the routing element never carries out the passing
3168                                                          permitted in the Relaxed Ordering Model. */
3169         uint32_t atom128s                     : 1;  /**< 128-bit AtomicOp Supported
3170                                                          (Not Supported) */
3171         uint32_t atom64s                      : 1;  /**< 64-bit AtomicOp Supported
3172                                                          (Not Supported) */
3173         uint32_t atom32s                      : 1;  /**< 32-bit AtomicOp Supported
3174                                                          (Not Supported) */
3175         uint32_t atom_ops                     : 1;  /**< AtomicOp Routing Supported
3176                                                          (Not Supported) */
3177         uint32_t ari_fw                       : 1;  /**< ARI Forwarding Supported
3178                                                          (Not Supported) */
3179         uint32_t ctds                         : 1;  /**< Completion Timeout Disable Supported */
3180         uint32_t ctrs                         : 4;  /**< Completion Timeout Ranges Supported */
3181 #else
3182         uint32_t ctrs                         : 4;
3183         uint32_t ctds                         : 1;
3184         uint32_t ari_fw                       : 1;
3185         uint32_t atom_ops                     : 1;
3186         uint32_t atom32s                      : 1;
3187         uint32_t atom64s                      : 1;
3188         uint32_t atom128s                     : 1;
3189         uint32_t noroprpr                     : 1;
3190         uint32_t ltrs                         : 1;
3191         uint32_t tphs                         : 2;
3192         uint32_t reserved_14_17               : 4;
3193         uint32_t obffs                        : 2;
3194         uint32_t reserved_20_31               : 12;
3195 #endif
3196         } cnf71xx;
3197 };
3198 typedef union cvmx_pciercx_cfg037 cvmx_pciercx_cfg037_t;
3199
3200 /**
3201  * cvmx_pcierc#_cfg038
3202  *
3203  * PCIE_CFG038 = Thirty-ninth 32-bits of PCIE type 1 config space
3204  * (Device Control 2 Register)
3205  */
3206 union cvmx_pciercx_cfg038 {
3207         uint32_t u32;
3208         struct cvmx_pciercx_cfg038_s {
3209 #ifdef __BIG_ENDIAN_BITFIELD
3210         uint32_t reserved_15_31               : 17;
3211         uint32_t obffe                        : 2;  /**< Optimized Buffer Flush Fill (OBFF) Enable
3212                                                          (Not Supported) */
3213         uint32_t reserved_11_12               : 2;
3214         uint32_t ltre                         : 1;  /**< Latency Tolerance Reporting (LTR) Mechanism Enable
3215                                                          (Not Supported) */
3216         uint32_t id0_cp                       : 1;  /**< ID Based Ordering Completion Enable
3217                                                          (Not Supported) */
3218         uint32_t id0_rq                       : 1;  /**< ID Based Ordering Request Enable
3219                                                          (Not Supported) */
3220         uint32_t atom_op_eb                   : 1;  /**< AtomicOp Egress Blocking
3221                                                          (Not Supported)m */
3222         uint32_t atom_op                      : 1;  /**< AtomicOp Requester Enable
3223                                                          (Not Supported) */
3224         uint32_t ari                          : 1;  /**< Alternate Routing ID Forwarding Supported
3225                                                          (Not Supported) */
3226         uint32_t ctd                          : 1;  /**< Completion Timeout Disable */
3227         uint32_t ctv                          : 4;  /**< Completion Timeout Value
3228                                                          o 0000b Default range: 16 ms to 55 ms
3229                                                          o 0001b 50 us to 100 us
3230                                                          o 0010b 1 ms to 10 ms
3231                                                          o 0101b 16 ms to 55 ms
3232                                                          o 0110b 65 ms to 210 ms
3233                                                          o 1001b 260 ms to 900 ms
3234                                                          o 1010b 1 s to 3.5 s
3235                                                          o 1101b 4 s to 13 s
3236                                                          o 1110b 17 s to 64 s
3237                                                          Values not defined are reserved */
3238 #else
3239         uint32_t ctv                          : 4;
3240         uint32_t ctd                          : 1;
3241         uint32_t ari                          : 1;
3242         uint32_t atom_op                      : 1;
3243         uint32_t atom_op_eb                   : 1;
3244         uint32_t id0_rq                       : 1;
3245         uint32_t id0_cp                       : 1;
3246         uint32_t ltre                         : 1;
3247         uint32_t reserved_11_12               : 2;
3248         uint32_t obffe                        : 2;
3249         uint32_t reserved_15_31               : 17;
3250 #endif
3251         } s;
3252         struct cvmx_pciercx_cfg038_cn52xx {
3253 #ifdef __BIG_ENDIAN_BITFIELD
3254         uint32_t reserved_5_31                : 27;
3255         uint32_t ctd                          : 1;  /**< Completion Timeout Disable */
3256         uint32_t ctv                          : 4;  /**< Completion Timeout Value
3257                                                          Completion Timeout Programming is not supported
3258                                                          Completion timeout is 16.7ms. */
3259 #else
3260         uint32_t ctv                          : 4;
3261         uint32_t ctd                          : 1;
3262         uint32_t reserved_5_31                : 27;
3263 #endif
3264         } cn52xx;
3265         struct cvmx_pciercx_cfg038_cn52xx     cn52xxp1;
3266         struct cvmx_pciercx_cfg038_cn52xx     cn56xx;
3267         struct cvmx_pciercx_cfg038_cn52xx     cn56xxp1;
3268         struct cvmx_pciercx_cfg038_cn61xx {
3269 #ifdef __BIG_ENDIAN_BITFIELD
3270         uint32_t reserved_10_31               : 22;
3271         uint32_t id0_cp                       : 1;  /**< ID Based Ordering Completion Enable
3272                                                          (Not Supported) */
3273         uint32_t id0_rq                       : 1;  /**< ID Based Ordering Request Enable
3274                                                          (Not Supported) */
3275         uint32_t atom_op_eb                   : 1;  /**< AtomicOp Egress Blocking
3276                                                          (Not Supported)m */
3277         uint32_t atom_op                      : 1;  /**< AtomicOp Requester Enable
3278                                                          (Not Supported) */
3279         uint32_t ari                          : 1;  /**< Alternate Routing ID Forwarding Supported
3280                                                          (Not Supported) */
3281         uint32_t ctd                          : 1;  /**< Completion Timeout Disable */
3282         uint32_t ctv                          : 4;  /**< Completion Timeout Value
3283                                                          o 0000b Default range: 16 ms to 55 ms
3284                                                          o 0001b 50 us to 100 us
3285                                                          o 0010b 1 ms to 10 ms
3286                                                          o 0101b 16 ms to 55 ms
3287                                                          o 0110b 65 ms to 210 ms
3288                                                          o 1001b 260 ms to 900 ms
3289                                                          o 1010b 1 s to 3.5 s
3290                                                          o 1101b 4 s to 13 s
3291                                                          o 1110b 17 s to 64 s
3292                                                          Values not defined are reserved */
3293 #else
3294         uint32_t ctv                          : 4;
3295         uint32_t ctd                          : 1;
3296         uint32_t ari                          : 1;
3297         uint32_t atom_op                      : 1;
3298         uint32_t atom_op_eb                   : 1;
3299         uint32_t id0_rq                       : 1;
3300         uint32_t id0_cp                       : 1;
3301         uint32_t reserved_10_31               : 22;
3302 #endif
3303         } cn61xx;
3304         struct cvmx_pciercx_cfg038_cn52xx     cn63xx;
3305         struct cvmx_pciercx_cfg038_cn52xx     cn63xxp1;
3306         struct cvmx_pciercx_cfg038_cn61xx     cn66xx;
3307         struct cvmx_pciercx_cfg038_cn61xx     cn68xx;
3308         struct cvmx_pciercx_cfg038_cn61xx     cn68xxp1;
3309         struct cvmx_pciercx_cfg038_s          cnf71xx;
3310 };
3311 typedef union cvmx_pciercx_cfg038 cvmx_pciercx_cfg038_t;
3312
3313 /**
3314  * cvmx_pcierc#_cfg039
3315  *
3316  * PCIE_CFG039 = Fourtieth 32-bits of PCIE type 1 config space
3317  * (Link Capabilities 2 Register)
3318  */
3319 union cvmx_pciercx_cfg039 {
3320         uint32_t u32;
3321         struct cvmx_pciercx_cfg039_s {
3322 #ifdef __BIG_ENDIAN_BITFIELD
3323         uint32_t reserved_9_31                : 23;
3324         uint32_t cls                          : 1;  /**< Crosslink Supported */
3325         uint32_t slsv                         : 7;  /**< Supported Link Speeds Vector
3326                                                          Indicates the supported Link speeds of the associated Port.
3327                                                          For each bit, a value of 1b indicates that the cooresponding
3328                                                          Link speed is supported; otherwise, the Link speed is not
3329                                                          supported.
3330                                                          Bit definitions are:
3331                                                          Bit 1 2.5 GT/s
3332                                                          Bit 2 5.0 GT/s
3333                                                          Bit 3 8.0 GT/s (Not Supported)
3334                                                          Bits 7:4 reserved
3335                                                          The reset value of this field is controlled by a value sent from
3336                                                          the lsb of the MIO_QLM#_SPD register
3337                                                          qlm#_spd[0]   RST_VALUE   NOTE
3338                                                          1             0001b       2.5 GHz supported
3339                                                          0             0011b       5.0 GHz and 2.5 GHz supported */
3340         uint32_t reserved_0_0                 : 1;
3341 #else
3342         uint32_t reserved_0_0                 : 1;
3343         uint32_t slsv                         : 7;
3344         uint32_t cls                          : 1;
3345         uint32_t reserved_9_31                : 23;
3346 #endif
3347         } s;
3348         struct cvmx_pciercx_cfg039_cn52xx {
3349 #ifdef __BIG_ENDIAN_BITFIELD
3350         uint32_t reserved_0_31                : 32;
3351 #else
3352         uint32_t reserved_0_31                : 32;
3353 #endif
3354         } cn52xx;
3355         struct cvmx_pciercx_cfg039_cn52xx     cn52xxp1;
3356         struct cvmx_pciercx_cfg039_cn52xx     cn56xx;
3357         struct cvmx_pciercx_cfg039_cn52xx     cn56xxp1;
3358         struct cvmx_pciercx_cfg039_s          cn61xx;
3359         struct cvmx_pciercx_cfg039_s          cn63xx;
3360         struct cvmx_pciercx_cfg039_cn52xx     cn63xxp1;
3361         struct cvmx_pciercx_cfg039_s          cn66xx;
3362         struct cvmx_pciercx_cfg039_s          cn68xx;
3363         struct cvmx_pciercx_cfg039_s          cn68xxp1;
3364         struct cvmx_pciercx_cfg039_s          cnf71xx;
3365 };
3366 typedef union cvmx_pciercx_cfg039 cvmx_pciercx_cfg039_t;
3367
3368 /**
3369  * cvmx_pcierc#_cfg040
3370  *
3371  * PCIE_CFG040 = Fourty-first 32-bits of PCIE type 1 config space
3372  * (Link Control 2 Register/Link Status 2 Register)
3373  */
3374 union cvmx_pciercx_cfg040 {
3375         uint32_t u32;
3376         struct cvmx_pciercx_cfg040_s {
3377 #ifdef __BIG_ENDIAN_BITFIELD
3378         uint32_t reserved_17_31               : 15;
3379         uint32_t cdl                          : 1;  /**< Current De-emphasis Level
3380                                                          When the Link is operating at 5 GT/s speed, this bit
3381                                                          reflects the level of de-emphasis. Encodings:
3382                                                           1b: -3.5 dB
3383                                                           0b: -6 dB
3384                                                          Note: The value in this bit is undefined when the Link is
3385                                                          operating at 2.5 GT/s speed */
3386         uint32_t reserved_13_15               : 3;
3387         uint32_t cde                          : 1;  /**< Compliance De-emphasis
3388                                                          This bit sets the de-emphasis level in Polling. Compliance
3389                                                          state if the entry occurred due to the Tx Compliance
3390                                                          Receive bit being 1b. Encodings:
3391                                                           1b: -3.5 dB
3392                                                           0b: -6 dB
3393                                                          Note: When the Link is operating at 2.5 GT/s, the setting
3394                                                          of this bit has no effect. */
3395         uint32_t csos                         : 1;  /**< Compliance SOS
3396                                                          When set to 1b, the LTSSM is required to send SKP
3397                                                          Ordered Sets periodically in between the (modified)
3398                                                          compliance patterns.
3399                                                          Note: When the Link is operating at 2.5 GT/s, the setting
3400                                                          of this bit has no effect. */
3401         uint32_t emc                          : 1;  /**< Enter Modified Compliance
3402                                                          When this bit is set to 1b, the device transmits a modified
3403                                                          compliance pattern if the LTSSM enters Polling.
3404                                                          Compliance state. */
3405         uint32_t tm                           : 3;  /**< Transmit Margin
3406                                                          This field controls the value of the non-de-emphasized
3407                                                          voltage level at the Transmitter signals:
3408                                                           - 000: 800-1200 mV for full swing 400-600 mV for half-swing
3409                                                           - 001-010: values must be monotonic with a non-zero slope
3410                                                           - 011: 200-400 mV for full-swing and 100-200 mV for halfswing
3411                                                           - 100-111: reserved
3412                                                          This field is reset to 000b on entry to the LTSSM Polling.
3413                                                          Compliance substate.
3414                                                          When operating in 5.0 GT/s mode with full swing, the
3415                                                          de-emphasis ratio must be maintained within +/- 1 dB
3416                                                          from the specification-defined operational value
3417                                                          either -3.5 or -6 dB). */
3418         uint32_t sde                          : 1;  /**< Selectable De-emphasis
3419                                                          When the Link is operating at 5.0 GT/s speed, selects the
3420                                                          level of de-emphasis:
3421                                                          - 1: -3.5 dB
3422                                                          - 0: -6 dB
3423                                                          When the Link is operating at 2.5 GT/s speed, the setting
3424                                                          of this bit has no effect. */
3425         uint32_t hasd                         : 1;  /**< Hardware Autonomous Speed Disable
3426                                                          When asserted, the
3427                                                          application must disable hardware from changing the Link
3428                                                          speed for device-specific reasons other than attempting to
3429                                                          correct unreliable Link operation by reducing Link speed.
3430                                                          Initial transition to the highest supported common link
3431                                                          speed is not blocked by this signal. */
3432         uint32_t ec                           : 1;  /**< Enter Compliance
3433                                                          Software is permitted to force a link to enter Compliance
3434                                                          mode at the speed indicated in the Target Link Speed
3435                                                          field by setting this bit to 1b in both components on a link
3436                                                          and then initiating a hot reset on the link. */
3437         uint32_t tls                          : 4;  /**< Target Link Speed
3438                                                          For Downstream ports, this field sets an upper limit on link
3439                                                          operational speed by restricting the values advertised by
3440                                                          the upstream component in its training sequences:
3441                                                            - 0001: 2.5Gb/s Target Link Speed
3442                                                            - 0010: 5Gb/s Target Link Speed
3443                                                            - 0100: 8Gb/s Target Link Speed (Not Supported)
3444                                                          All other encodings are reserved.
3445                                                          If a value is written to this field that does not correspond to
3446                                                          a speed included in the Supported Link Speeds field, the
3447                                                          result is undefined.
3448                                                          For both Upstream and Downstream ports, this field is
3449                                                          used to set the target compliance mode speed when
3450                                                          software is using the Enter Compliance bit to force a link
3451                                                          into compliance mode.
3452                                                          The reset value of this field is controlled by a value sent from
3453                                                          the lsb of the MIO_QLM#_SPD register.
3454                                                          qlm#_spd[0]   RST_VALUE   NOTE
3455                                                          1             0001b       2.5 GHz supported
3456                                                          0             0010b       5.0 GHz and 2.5 GHz supported */
3457 #else
3458         uint32_t tls                          : 4;
3459         uint32_t ec                           : 1;
3460         uint32_t hasd                         : 1;
3461         uint32_t sde                          : 1;
3462         uint32_t tm                           : 3;
3463         uint32_t emc                          : 1;
3464         uint32_t csos                         : 1;
3465         uint32_t cde                          : 1;
3466         uint32_t reserved_13_15               : 3;
3467         uint32_t cdl                          : 1;
3468         uint32_t reserved_17_31               : 15;
3469 #endif
3470         } s;
3471         struct cvmx_pciercx_cfg040_cn52xx {
3472 #ifdef __BIG_ENDIAN_BITFIELD
3473         uint32_t reserved_0_31                : 32;
3474 #else
3475         uint32_t reserved_0_31                : 32;
3476 #endif
3477         } cn52xx;
3478         struct cvmx_pciercx_cfg040_cn52xx     cn52xxp1;
3479         struct cvmx_pciercx_cfg040_cn52xx     cn56xx;
3480         struct cvmx_pciercx_cfg040_cn52xx     cn56xxp1;
3481         struct cvmx_pciercx_cfg040_s          cn61xx;
3482         struct cvmx_pciercx_cfg040_s          cn63xx;
3483         struct cvmx_pciercx_cfg040_s          cn63xxp1;
3484         struct cvmx_pciercx_cfg040_s          cn66xx;
3485         struct cvmx_pciercx_cfg040_s          cn68xx;
3486         struct cvmx_pciercx_cfg040_s          cn68xxp1;
3487         struct cvmx_pciercx_cfg040_s          cnf71xx;
3488 };
3489 typedef union cvmx_pciercx_cfg040 cvmx_pciercx_cfg040_t;
3490
3491 /**
3492  * cvmx_pcierc#_cfg041
3493  *
3494  * PCIE_CFG041 = Fourty-second 32-bits of PCIE type 1 config space
3495  * (Slot Capabilities 2 Register)
3496  */
3497 union cvmx_pciercx_cfg041 {
3498         uint32_t u32;
3499         struct cvmx_pciercx_cfg041_s {
3500 #ifdef __BIG_ENDIAN_BITFIELD
3501         uint32_t reserved_0_31                : 32;
3502 #else
3503         uint32_t reserved_0_31                : 32;
3504 #endif
3505         } s;
3506         struct cvmx_pciercx_cfg041_s          cn52xx;
3507         struct cvmx_pciercx_cfg041_s          cn52xxp1;
3508         struct cvmx_pciercx_cfg041_s          cn56xx;
3509         struct cvmx_pciercx_cfg041_s          cn56xxp1;
3510         struct cvmx_pciercx_cfg041_s          cn61xx;
3511         struct cvmx_pciercx_cfg041_s          cn63xx;
3512         struct cvmx_pciercx_cfg041_s          cn63xxp1;
3513         struct cvmx_pciercx_cfg041_s          cn66xx;
3514         struct cvmx_pciercx_cfg041_s          cn68xx;
3515         struct cvmx_pciercx_cfg041_s          cn68xxp1;
3516         struct cvmx_pciercx_cfg041_s          cnf71xx;
3517 };
3518 typedef union cvmx_pciercx_cfg041 cvmx_pciercx_cfg041_t;
3519
3520 /**
3521  * cvmx_pcierc#_cfg042
3522  *
3523  * PCIE_CFG042 = Fourty-third 32-bits of PCIE type 1 config space
3524  * (Slot Control 2 Register/Slot Status 2 Register)
3525  */
3526 union cvmx_pciercx_cfg042 {
3527         uint32_t u32;
3528         struct cvmx_pciercx_cfg042_s {
3529 #ifdef __BIG_ENDIAN_BITFIELD
3530         uint32_t reserved_0_31                : 32;
3531 #else
3532         uint32_t reserved_0_31                : 32;
3533 #endif
3534         } s;
3535         struct cvmx_pciercx_cfg042_s          cn52xx;
3536         struct cvmx_pciercx_cfg042_s          cn52xxp1;
3537         struct cvmx_pciercx_cfg042_s          cn56xx;
3538         struct cvmx_pciercx_cfg042_s          cn56xxp1;
3539         struct cvmx_pciercx_cfg042_s          cn61xx;
3540         struct cvmx_pciercx_cfg042_s          cn63xx;
3541         struct cvmx_pciercx_cfg042_s          cn63xxp1;
3542         struct cvmx_pciercx_cfg042_s          cn66xx;
3543         struct cvmx_pciercx_cfg042_s          cn68xx;
3544         struct cvmx_pciercx_cfg042_s          cn68xxp1;
3545         struct cvmx_pciercx_cfg042_s          cnf71xx;
3546 };
3547 typedef union cvmx_pciercx_cfg042 cvmx_pciercx_cfg042_t;
3548
3549 /**
3550  * cvmx_pcierc#_cfg064
3551  *
3552  * PCIE_CFG064 = Sixty-fifth 32-bits of PCIE type 1 config space
3553  * (PCI Express Extended Capability Header)
3554  */
3555 union cvmx_pciercx_cfg064 {
3556         uint32_t u32;
3557         struct cvmx_pciercx_cfg064_s {
3558 #ifdef __BIG_ENDIAN_BITFIELD
3559         uint32_t nco                          : 12; /**< Next Capability Offset */
3560         uint32_t cv                           : 4;  /**< Capability Version */
3561         uint32_t pcieec                       : 16; /**< PCIE Express Extended Capability */
3562 #else
3563         uint32_t pcieec                       : 16;
3564         uint32_t cv                           : 4;
3565         uint32_t nco                          : 12;
3566 #endif
3567         } s;
3568         struct cvmx_pciercx_cfg064_s          cn52xx;
3569         struct cvmx_pciercx_cfg064_s          cn52xxp1;
3570         struct cvmx_pciercx_cfg064_s          cn56xx;
3571         struct cvmx_pciercx_cfg064_s          cn56xxp1;
3572         struct cvmx_pciercx_cfg064_s          cn61xx;
3573         struct cvmx_pciercx_cfg064_s          cn63xx;
3574         struct cvmx_pciercx_cfg064_s          cn63xxp1;
3575         struct cvmx_pciercx_cfg064_s          cn66xx;
3576         struct cvmx_pciercx_cfg064_s          cn68xx;
3577         struct cvmx_pciercx_cfg064_s          cn68xxp1;
3578         struct cvmx_pciercx_cfg064_s          cnf71xx;
3579 };
3580 typedef union cvmx_pciercx_cfg064 cvmx_pciercx_cfg064_t;
3581
3582 /**
3583  * cvmx_pcierc#_cfg065
3584  *
3585  * PCIE_CFG065 = Sixty-sixth 32-bits of PCIE type 1 config space
3586  * (Uncorrectable Error Status Register)
3587  */
3588 union cvmx_pciercx_cfg065 {
3589         uint32_t u32;
3590         struct cvmx_pciercx_cfg065_s {
3591 #ifdef __BIG_ENDIAN_BITFIELD
3592         uint32_t reserved_25_31               : 7;
3593         uint32_t uatombs                      : 1;  /**< Unsupported AtomicOp Egress Blocked Status */
3594         uint32_t reserved_23_23               : 1;
3595         uint32_t ucies                        : 1;  /**< Uncorrectable Internal Error Status */
3596         uint32_t reserved_21_21               : 1;
3597         uint32_t ures                         : 1;  /**< Unsupported Request Error Status */
3598         uint32_t ecrces                       : 1;  /**< ECRC Error Status */
3599         uint32_t mtlps                        : 1;  /**< Malformed TLP Status */
3600         uint32_t ros                          : 1;  /**< Receiver Overflow Status */
3601         uint32_t ucs                          : 1;  /**< Unexpected Completion Status */
3602         uint32_t cas                          : 1;  /**< Completer Abort Status */
3603         uint32_t cts                          : 1;  /**< Completion Timeout Status */
3604         uint32_t fcpes                        : 1;  /**< Flow Control Protocol Error Status */
3605         uint32_t ptlps                        : 1;  /**< Poisoned TLP Status */
3606         uint32_t reserved_6_11                : 6;
3607         uint32_t sdes                         : 1;  /**< Surprise Down Error Status (not supported) */
3608         uint32_t dlpes                        : 1;  /**< Data Link Protocol Error Status */
3609         uint32_t reserved_0_3                 : 4;
3610 #else
3611         uint32_t reserved_0_3                 : 4;
3612         uint32_t dlpes                        : 1;
3613         uint32_t sdes                         : 1;
3614         uint32_t reserved_6_11                : 6;
3615         uint32_t ptlps                        : 1;
3616         uint32_t fcpes                        : 1;
3617         uint32_t cts                          : 1;
3618         uint32_t cas                          : 1;
3619         uint32_t ucs                          : 1;
3620         uint32_t ros                          : 1;
3621         uint32_t mtlps                        : 1;
3622         uint32_t ecrces                       : 1;
3623         uint32_t ures                         : 1;
3624         uint32_t reserved_21_21               : 1;
3625         uint32_t ucies                        : 1;
3626         uint32_t reserved_23_23               : 1;
3627         uint32_t uatombs                      : 1;
3628         uint32_t reserved_25_31               : 7;
3629 #endif
3630         } s;
3631         struct cvmx_pciercx_cfg065_cn52xx {
3632 #ifdef __BIG_ENDIAN_BITFIELD
3633         uint32_t reserved_21_31               : 11;
3634         uint32_t ures                         : 1;  /**< Unsupported Request Error Status */
3635         uint32_t ecrces                       : 1;  /**< ECRC Error Status */
3636         uint32_t mtlps                        : 1;  /**< Malformed TLP Status */
3637         uint32_t ros                          : 1;  /**< Receiver Overflow Status */
3638         uint32_t ucs                          : 1;  /**< Unexpected Completion Status */
3639         uint32_t cas                          : 1;  /**< Completer Abort Status */
3640         uint32_t cts                          : 1;  /**< Completion Timeout Status */
3641         uint32_t fcpes                        : 1;  /**< Flow Control Protocol Error Status */
3642         uint32_t ptlps                        : 1;  /**< Poisoned TLP Status */
3643         uint32_t reserved_6_11                : 6;
3644         uint32_t sdes                         : 1;  /**< Surprise Down Error Status (not supported) */
3645         uint32_t dlpes                        : 1;  /**< Data Link Protocol Error Status */
3646         uint32_t reserved_0_3                 : 4;
3647 #else
3648         uint32_t reserved_0_3                 : 4;
3649         uint32_t dlpes                        : 1;
3650         uint32_t sdes                         : 1;
3651         uint32_t reserved_6_11                : 6;
3652         uint32_t ptlps                        : 1;
3653         uint32_t fcpes                        : 1;
3654         uint32_t cts                          : 1;
3655         uint32_t cas                          : 1;
3656         uint32_t ucs                          : 1;
3657         uint32_t ros                          : 1;
3658         uint32_t mtlps                        : 1;
3659         uint32_t ecrces                       : 1;
3660         uint32_t ures                         : 1;
3661         uint32_t reserved_21_31               : 11;
3662 #endif
3663         } cn52xx;
3664         struct cvmx_pciercx_cfg065_cn52xx     cn52xxp1;
3665         struct cvmx_pciercx_cfg065_cn52xx     cn56xx;
3666         struct cvmx_pciercx_cfg065_cn52xx     cn56xxp1;
3667         struct cvmx_pciercx_cfg065_cn61xx {
3668 #ifdef __BIG_ENDIAN_BITFIELD
3669         uint32_t reserved_25_31               : 7;
3670         uint32_t uatombs                      : 1;  /**< Unsupported AtomicOp Egress Blocked Status */
3671         uint32_t reserved_21_23               : 3;
3672         uint32_t ures                         : 1;  /**< Unsupported Request Error Status */
3673         uint32_t ecrces                       : 1;  /**< ECRC Error Status */
3674         uint32_t mtlps                        : 1;  /**< Malformed TLP Status */
3675         uint32_t ros                          : 1;  /**< Receiver Overflow Status */
3676         uint32_t ucs                          : 1;  /**< Unexpected Completion Status */
3677         uint32_t cas                          : 1;  /**< Completer Abort Status */
3678         uint32_t cts                          : 1;  /**< Completion Timeout Status */
3679         uint32_t fcpes                        : 1;  /**< Flow Control Protocol Error Status */
3680         uint32_t ptlps                        : 1;  /**< Poisoned TLP Status */
3681         uint32_t reserved_6_11                : 6;
3682         uint32_t sdes                         : 1;  /**< Surprise Down Error Status (not supported) */
3683         uint32_t dlpes                        : 1;  /**< Data Link Protocol Error Status */
3684         uint32_t reserved_0_3                 : 4;
3685 #else
3686         uint32_t reserved_0_3                 : 4;
3687         uint32_t dlpes                        : 1;
3688         uint32_t sdes                         : 1;
3689         uint32_t reserved_6_11                : 6;
3690         uint32_t ptlps                        : 1;
3691         uint32_t fcpes                        : 1;
3692         uint32_t cts                          : 1;
3693         uint32_t cas                          : 1;
3694         uint32_t ucs                          : 1;
3695         uint32_t ros                          : 1;
3696         uint32_t mtlps                        : 1;
3697         uint32_t ecrces                       : 1;
3698         uint32_t ures                         : 1;
3699         uint32_t reserved_21_23               : 3;
3700         uint32_t uatombs                      : 1;
3701         uint32_t reserved_25_31               : 7;
3702 #endif
3703         } cn61xx;
3704         struct cvmx_pciercx_cfg065_cn52xx     cn63xx;
3705         struct cvmx_pciercx_cfg065_cn52xx     cn63xxp1;
3706         struct cvmx_pciercx_cfg065_cn61xx     cn66xx;
3707         struct cvmx_pciercx_cfg065_cn61xx     cn68xx;
3708         struct cvmx_pciercx_cfg065_cn52xx     cn68xxp1;
3709         struct cvmx_pciercx_cfg065_s          cnf71xx;
3710 };
3711 typedef union cvmx_pciercx_cfg065 cvmx_pciercx_cfg065_t;
3712
3713 /**
3714  * cvmx_pcierc#_cfg066
3715  *
3716  * PCIE_CFG066 = Sixty-seventh 32-bits of PCIE type 1 config space
3717  * (Uncorrectable Error Mask Register)
3718  */
3719 union cvmx_pciercx_cfg066 {
3720         uint32_t u32;
3721         struct cvmx_pciercx_cfg066_s {
3722 #ifdef __BIG_ENDIAN_BITFIELD
3723         uint32_t reserved_25_31               : 7;
3724         uint32_t uatombm                      : 1;  /**< Unsupported AtomicOp Egress Blocked Mask */
3725         uint32_t reserved_23_23               : 1;
3726         uint32_t uciem                        : 1;  /**< Uncorrectable Internal Error Mask */
3727         uint32_t reserved_21_21               : 1;
3728         uint32_t urem                         : 1;  /**< Unsupported Request Error Mask */
3729         uint32_t ecrcem                       : 1;  /**< ECRC Error Mask */
3730         uint32_t mtlpm                        : 1;  /**< Malformed TLP Mask */
3731         uint32_t rom                          : 1;  /**< Receiver Overflow Mask */
3732         uint32_t ucm                          : 1;  /**< Unexpected Completion Mask */
3733         uint32_t cam                          : 1;  /**< Completer Abort Mask */
3734         uint32_t ctm                          : 1;  /**< Completion Timeout Mask */
3735         uint32_t fcpem                        : 1;  /**< Flow Control Protocol Error Mask */
3736         uint32_t ptlpm                        : 1;  /**< Poisoned TLP Mask */
3737         uint32_t reserved_6_11                : 6;
3738         uint32_t sdem                         : 1;  /**< Surprise Down Error Mask (not supported) */
3739         uint32_t dlpem                        : 1;  /**< Data Link Protocol Error Mask */
3740         uint32_t reserved_0_3                 : 4;
3741 #else
3742         uint32_t reserved_0_3                 : 4;
3743         uint32_t dlpem                        : 1;
3744         uint32_t sdem                         : 1;
3745         uint32_t reserved_6_11                : 6;
3746         uint32_t ptlpm                        : 1;
3747         uint32_t fcpem                        : 1;
3748         uint32_t ctm                          : 1;
3749         uint32_t cam                          : 1;
3750         uint32_t ucm                          : 1;
3751         uint32_t rom                          : 1;
3752         uint32_t mtlpm                        : 1;
3753         uint32_t ecrcem                       : 1;
3754         uint32_t urem                         : 1;
3755         uint32_t reserved_21_21               : 1;
3756         uint32_t uciem                        : 1;
3757         uint32_t reserved_23_23               : 1;
3758         uint32_t uatombm                      : 1;
3759         uint32_t reserved_25_31               : 7;
3760 #endif
3761         } s;
3762         struct cvmx_pciercx_cfg066_cn52xx {
3763 #ifdef __BIG_ENDIAN_BITFIELD
3764         uint32_t reserved_21_31               : 11;
3765         uint32_t urem                         : 1;  /**< Unsupported Request Error Mask */
3766         uint32_t ecrcem                       : 1;  /**< ECRC Error Mask */
3767         uint32_t mtlpm                        : 1;  /**< Malformed TLP Mask */
3768         uint32_t rom                          : 1;  /**< Receiver Overflow Mask */
3769         uint32_t ucm                          : 1;  /**< Unexpected Completion Mask */
3770         uint32_t cam                          : 1;  /**< Completer Abort Mask */
3771         uint32_t ctm                          : 1;  /**< Completion Timeout Mask */
3772         uint32_t fcpem                        : 1;  /**< Flow Control Protocol Error Mask */
3773         uint32_t ptlpm                        : 1;  /**< Poisoned TLP Mask */
3774         uint32_t reserved_6_11                : 6;
3775         uint32_t sdem                         : 1;  /**< Surprise Down Error Mask (not supported) */
3776         uint32_t dlpem                        : 1;  /**< Data Link Protocol Error Mask */
3777         uint32_t reserved_0_3                 : 4;
3778 #else
3779         uint32_t reserved_0_3                 : 4;
3780         uint32_t dlpem                        : 1;
3781         uint32_t sdem                         : 1;
3782         uint32_t reserved_6_11                : 6;
3783         uint32_t ptlpm                        : 1;
3784         uint32_t fcpem                        : 1;
3785         uint32_t ctm                          : 1;
3786         uint32_t cam                          : 1;
3787         uint32_t ucm                          : 1;
3788         uint32_t rom                          : 1;
3789         uint32_t mtlpm                        : 1;
3790         uint32_t ecrcem                       : 1;
3791         uint32_t urem                         : 1;
3792         uint32_t reserved_21_31               : 11;
3793 #endif
3794         } cn52xx;
3795         struct cvmx_pciercx_cfg066_cn52xx     cn52xxp1;
3796         struct cvmx_pciercx_cfg066_cn52xx     cn56xx;
3797         struct cvmx_pciercx_cfg066_cn52xx     cn56xxp1;
3798         struct cvmx_pciercx_cfg066_cn61xx {
3799 #ifdef __BIG_ENDIAN_BITFIELD
3800         uint32_t reserved_25_31               : 7;
3801         uint32_t uatombm                      : 1;  /**< Unsupported AtomicOp Egress Blocked Mask */
3802         uint32_t reserved_21_23               : 3;
3803         uint32_t urem                         : 1;  /**< Unsupported Request Error Mask */
3804         uint32_t ecrcem                       : 1;  /**< ECRC Error Mask */
3805         uint32_t mtlpm                        : 1;  /**< Malformed TLP Mask */
3806         uint32_t rom                          : 1;  /**< Receiver Overflow Mask */
3807         uint32_t ucm                          : 1;  /**< Unexpected Completion Mask */
3808         uint32_t cam                          : 1;  /**< Completer Abort Mask */
3809         uint32_t ctm                          : 1;  /**< Completion Timeout Mask */
3810         uint32_t fcpem                        : 1;  /**< Flow Control Protocol Error Mask */
3811         uint32_t ptlpm                        : 1;  /**< Poisoned TLP Mask */
3812         uint32_t reserved_6_11                : 6;
3813         uint32_t sdem                         : 1;  /**< Surprise Down Error Mask (not supported) */
3814         uint32_t dlpem                        : 1;  /**< Data Link Protocol Error Mask */
3815         uint32_t reserved_0_3                 : 4;
3816 #else
3817         uint32_t reserved_0_3                 : 4;
3818         uint32_t dlpem                        : 1;
3819         uint32_t sdem                         : 1;
3820         uint32_t reserved_6_11                : 6;
3821         uint32_t ptlpm                        : 1;
3822         uint32_t fcpem                        : 1;
3823         uint32_t ctm                          : 1;
3824         uint32_t cam                          : 1;
3825         uint32_t ucm                          : 1;
3826         uint32_t rom                          : 1;
3827         uint32_t mtlpm                        : 1;
3828         uint32_t ecrcem                       : 1;
3829         uint32_t urem                         : 1;
3830         uint32_t reserved_21_23               : 3;
3831         uint32_t uatombm                      : 1;
3832         uint32_t reserved_25_31               : 7;
3833 #endif
3834         } cn61xx;
3835         struct cvmx_pciercx_cfg066_cn52xx     cn63xx;
3836         struct cvmx_pciercx_cfg066_cn52xx     cn63xxp1;
3837         struct cvmx_pciercx_cfg066_cn61xx     cn66xx;
3838         struct cvmx_pciercx_cfg066_cn61xx     cn68xx;
3839         struct cvmx_pciercx_cfg066_cn52xx     cn68xxp1;
3840         struct cvmx_pciercx_cfg066_s          cnf71xx;
3841 };
3842 typedef union cvmx_pciercx_cfg066 cvmx_pciercx_cfg066_t;
3843
3844 /**
3845  * cvmx_pcierc#_cfg067
3846  *
3847  * PCIE_CFG067 = Sixty-eighth 32-bits of PCIE type 1 config space
3848  * (Uncorrectable Error Severity Register)
3849  */
3850 union cvmx_pciercx_cfg067 {
3851         uint32_t u32;
3852         struct cvmx_pciercx_cfg067_s {
3853 #ifdef __BIG_ENDIAN_BITFIELD
3854         uint32_t reserved_25_31               : 7;
3855         uint32_t uatombs                      : 1;  /**< Unsupported AtomicOp Egress Blocked Severity */
3856         uint32_t reserved_23_23               : 1;
3857         uint32_t ucies                        : 1;  /**< Uncorrectable Internal Error Severity */
3858         uint32_t reserved_21_21               : 1;
3859         uint32_t ures                         : 1;  /**< Unsupported Request Error Severity */
3860         uint32_t ecrces                       : 1;  /**< ECRC Error Severity */
3861         uint32_t mtlps                        : 1;  /**< Malformed TLP Severity */
3862         uint32_t ros                          : 1;  /**< Receiver Overflow Severity */
3863         uint32_t ucs                          : 1;  /**< Unexpected Completion Severity */
3864         uint32_t cas                          : 1;  /**< Completer Abort Severity */
3865         uint32_t cts                          : 1;  /**< Completion Timeout Severity */
3866         uint32_t fcpes                        : 1;  /**< Flow Control Protocol Error Severity */
3867         uint32_t ptlps                        : 1;  /**< Poisoned TLP Severity */
3868         uint32_t reserved_6_11                : 6;
3869         uint32_t sdes                         : 1;  /**< Surprise Down Error Severity (not supported) */
3870         uint32_t dlpes                        : 1;  /**< Data Link Protocol Error Severity */
3871         uint32_t reserved_0_3                 : 4;
3872 #else
3873         uint32_t reserved_0_3                 : 4;
3874         uint32_t dlpes                        : 1;
3875         uint32_t sdes                         : 1;
3876         uint32_t reserved_6_11                : 6;
3877         uint32_t ptlps                        : 1;
3878         uint32_t fcpes                        : 1;
3879         uint32_t cts                          : 1;
3880         uint32_t cas                          : 1;
3881         uint32_t ucs                          : 1;
3882         uint32_t ros                          : 1;
3883         uint32_t mtlps                        : 1;
3884         uint32_t ecrces                       : 1;
3885         uint32_t ures                         : 1;
3886         uint32_t reserved_21_21               : 1;
3887         uint32_t ucies                        : 1;
3888         uint32_t reserved_23_23               : 1;
3889         uint32_t uatombs                      : 1;
3890         uint32_t reserved_25_31               : 7;
3891 #endif
3892         } s;
3893         struct cvmx_pciercx_cfg067_cn52xx {
3894 #ifdef __BIG_ENDIAN_BITFIELD
3895         uint32_t reserved_21_31               : 11;
3896         uint32_t ures                         : 1;  /**< Unsupported Request Error Severity */
3897         uint32_t ecrces                       : 1;  /**< ECRC Error Severity */
3898         uint32_t mtlps                        : 1;  /**< Malformed TLP Severity */
3899         uint32_t ros                          : 1;  /**< Receiver Overflow Severity */
3900         uint32_t ucs                          : 1;  /**< Unexpected Completion Severity */
3901         uint32_t cas                          : 1;  /**< Completer Abort Severity */
3902         uint32_t cts                          : 1;  /**< Completion Timeout Severity */
3903         uint32_t fcpes                        : 1;  /**< Flow Control Protocol Error Severity */
3904         uint32_t ptlps                        : 1;  /**< Poisoned TLP Severity */
3905         uint32_t reserved_6_11                : 6;
3906         uint32_t sdes                         : 1;  /**< Surprise Down Error Severity (not supported) */
3907         uint32_t dlpes                        : 1;  /**< Data Link Protocol Error Severity */
3908         uint32_t reserved_0_3                 : 4;
3909 #else
3910         uint32_t reserved_0_3                 : 4;
3911         uint32_t dlpes                        : 1;
3912         uint32_t sdes                         : 1;
3913         uint32_t reserved_6_11                : 6;
3914         uint32_t ptlps                        : 1;
3915         uint32_t fcpes                        : 1;
3916         uint32_t cts                          : 1;
3917         uint32_t cas                          : 1;
3918         uint32_t ucs                          : 1;
3919         uint32_t ros                          : 1;
3920         uint32_t mtlps                        : 1;
3921         uint32_t ecrces                       : 1;
3922         uint32_t ures                         : 1;
3923         uint32_t reserved_21_31               : 11;
3924 #endif
3925         } cn52xx;
3926         struct cvmx_pciercx_cfg067_cn52xx     cn52xxp1;
3927         struct cvmx_pciercx_cfg067_cn52xx     cn56xx;
3928         struct cvmx_pciercx_cfg067_cn52xx     cn56xxp1;
3929         struct cvmx_pciercx_cfg067_cn61xx {
3930 #ifdef __BIG_ENDIAN_BITFIELD
3931         uint32_t reserved_25_31               : 7;
3932         uint32_t uatombs                      : 1;  /**< Unsupported AtomicOp Egress Blocked Severity */
3933         uint32_t reserved_21_23               : 3;
3934         uint32_t ures                         : 1;  /**< Unsupported Request Error Severity */
3935         uint32_t ecrces                       : 1;  /**< ECRC Error Severity */
3936         uint32_t mtlps                        : 1;  /**< Malformed TLP Severity */
3937         uint32_t ros                          : 1;  /**< Receiver Overflow Severity */
3938         uint32_t ucs                          : 1;  /**< Unexpected Completion Severity */
3939         uint32_t cas                          : 1;  /**< Completer Abort Severity */
3940         uint32_t cts                          : 1;  /**< Completion Timeout Severity */
3941         uint32_t fcpes                        : 1;  /**< Flow Control Protocol Error Severity */
3942         uint32_t ptlps                        : 1;  /**< Poisoned TLP Severity */
3943         uint32_t reserved_6_11                : 6;
3944         uint32_t sdes                         : 1;  /**< Surprise Down Error Severity (not supported) */
3945         uint32_t dlpes                        : 1;  /**< Data Link Protocol Error Severity */
3946         uint32_t reserved_0_3                 : 4;
3947 #else
3948         uint32_t reserved_0_3                 : 4;
3949         uint32_t dlpes                        : 1;
3950         uint32_t sdes                         : 1;
3951         uint32_t reserved_6_11                : 6;
3952         uint32_t ptlps                        : 1;
3953         uint32_t fcpes                        : 1;
3954         uint32_t cts                          : 1;
3955         uint32_t cas                          : 1;
3956         uint32_t ucs                          : 1;
3957         uint32_t ros                          : 1;
3958         uint32_t mtlps                        : 1;
3959         uint32_t ecrces                       : 1;
3960         uint32_t ures                         : 1;
3961         uint32_t reserved_21_23               : 3;
3962         uint32_t uatombs                      : 1;
3963         uint32_t reserved_25_31               : 7;
3964 #endif
3965         } cn61xx;
3966         struct cvmx_pciercx_cfg067_cn52xx     cn63xx;
3967         struct cvmx_pciercx_cfg067_cn52xx     cn63xxp1;
3968         struct cvmx_pciercx_cfg067_cn61xx     cn66xx;
3969         struct cvmx_pciercx_cfg067_cn61xx     cn68xx;
3970         struct cvmx_pciercx_cfg067_cn52xx     cn68xxp1;
3971         struct cvmx_pciercx_cfg067_s          cnf71xx;
3972 };
3973 typedef union cvmx_pciercx_cfg067 cvmx_pciercx_cfg067_t;
3974
3975 /**
3976  * cvmx_pcierc#_cfg068
3977  *
3978  * PCIE_CFG068 = Sixty-ninth 32-bits of PCIE type 1 config space
3979  * (Correctable Error Status Register)
3980  */
3981 union cvmx_pciercx_cfg068 {
3982         uint32_t u32;
3983         struct cvmx_pciercx_cfg068_s {
3984 #ifdef __BIG_ENDIAN_BITFIELD
3985         uint32_t reserved_15_31               : 17;
3986         uint32_t cies                         : 1;  /**< Corrected Internal Error Status */
3987         uint32_t anfes                        : 1;  /**< Advisory Non-Fatal Error Status */
3988         uint32_t rtts                         : 1;  /**< Replay Timer Timeout Status */
3989         uint32_t reserved_9_11                : 3;
3990         uint32_t rnrs                         : 1;  /**< REPLAY_NUM Rollover Status */
3991         uint32_t bdllps                       : 1;  /**< Bad DLLP Status */
3992         uint32_t btlps                        : 1;  /**< Bad TLP Status */
3993         uint32_t reserved_1_5                 : 5;
3994         uint32_t res                          : 1;  /**< Receiver Error Status */
3995 #else
3996         uint32_t res                          : 1;
3997         uint32_t reserved_1_5                 : 5;
3998         uint32_t btlps                        : 1;
3999         uint32_t bdllps                       : 1;
4000         uint32_t rnrs                         : 1;
4001         uint32_t reserved_9_11                : 3;
4002         uint32_t rtts                         : 1;
4003         uint32_t anfes                        : 1;
4004         uint32_t cies                         : 1;
4005         uint32_t reserved_15_31               : 17;
4006 #endif
4007         } s;
4008         struct cvmx_pciercx_cfg068_cn52xx {
4009 #ifdef __BIG_ENDIAN_BITFIELD
4010         uint32_t reserved_14_31               : 18;
4011         uint32_t anfes                        : 1;  /**< Advisory Non-Fatal Error Status */
4012         uint32_t rtts                         : 1;  /**< Replay Timer Timeout Status */
4013         uint32_t reserved_9_11                : 3;
4014         uint32_t rnrs                         : 1;  /**< REPLAY_NUM Rollover Status */
4015         uint32_t bdllps                       : 1;  /**< Bad DLLP Status */
4016         uint32_t btlps                        : 1;  /**< Bad TLP Status */
4017         uint32_t reserved_1_5                 : 5;
4018         uint32_t res                          : 1;  /**< Receiver Error Status */
4019 #else
4020         uint32_t res                          : 1;
4021         uint32_t reserved_1_5                 : 5;
4022         uint32_t btlps                        : 1;
4023         uint32_t bdllps                       : 1;
4024         uint32_t rnrs                         : 1;
4025         uint32_t reserved_9_11                : 3;
4026         uint32_t rtts                         : 1;
4027         uint32_t anfes                        : 1;
4028         uint32_t reserved_14_31               : 18;
4029 #endif
4030         } cn52xx;
4031         struct cvmx_pciercx_cfg068_cn52xx     cn52xxp1;
4032         struct cvmx_pciercx_cfg068_cn52xx     cn56xx;
4033         struct cvmx_pciercx_cfg068_cn52xx     cn56xxp1;
4034         struct cvmx_pciercx_cfg068_cn52xx     cn61xx;
4035         struct cvmx_pciercx_cfg068_cn52xx     cn63xx;
4036         struct cvmx_pciercx_cfg068_cn52xx     cn63xxp1;
4037         struct cvmx_pciercx_cfg068_cn52xx     cn66xx;
4038         struct cvmx_pciercx_cfg068_cn52xx     cn68xx;
4039         struct cvmx_pciercx_cfg068_cn52xx     cn68xxp1;
4040         struct cvmx_pciercx_cfg068_s          cnf71xx;
4041 };
4042 typedef union cvmx_pciercx_cfg068 cvmx_pciercx_cfg068_t;
4043
4044 /**
4045  * cvmx_pcierc#_cfg069
4046  *
4047  * PCIE_CFG069 = Seventieth 32-bits of PCIE type 1 config space
4048  * (Correctable Error Mask Register)
4049  */
4050 union cvmx_pciercx_cfg069 {
4051         uint32_t u32;
4052         struct cvmx_pciercx_cfg069_s {
4053 #ifdef __BIG_ENDIAN_BITFIELD
4054         uint32_t reserved_15_31               : 17;
4055         uint32_t ciem                         : 1;  /**< Corrected Internal Error Mask */
4056         uint32_t anfem                        : 1;  /**< Advisory Non-Fatal Error Mask */
4057         uint32_t rttm                         : 1;  /**< Replay Timer Timeout Mask */
4058         uint32_t reserved_9_11                : 3;
4059         uint32_t rnrm                         : 1;  /**< REPLAY_NUM Rollover Mask */
4060         uint32_t bdllpm                       : 1;  /**< Bad DLLP Mask */
4061         uint32_t btlpm                        : 1;  /**< Bad TLP Mask */
4062         uint32_t reserved_1_5                 : 5;
4063         uint32_t rem                          : 1;  /**< Receiver Error Mask */
4064 #else
4065         uint32_t rem                          : 1;
4066         uint32_t reserved_1_5                 : 5;
4067         uint32_t btlpm                        : 1;
4068         uint32_t bdllpm                       : 1;
4069         uint32_t rnrm                         : 1;
4070         uint32_t reserved_9_11                : 3;
4071         uint32_t rttm                         : 1;
4072         uint32_t anfem                        : 1;
4073         uint32_t ciem                         : 1;
4074         uint32_t reserved_15_31               : 17;
4075 #endif
4076         } s;
4077         struct cvmx_pciercx_cfg069_cn52xx {
4078 #ifdef __BIG_ENDIAN_BITFIELD
4079         uint32_t reserved_14_31               : 18;
4080         uint32_t anfem                        : 1;  /**< Advisory Non-Fatal Error Mask */
4081         uint32_t rttm                         : 1;  /**< Replay Timer Timeout Mask */
4082         uint32_t reserved_9_11                : 3;
4083         uint32_t rnrm                         : 1;  /**< REPLAY_NUM Rollover Mask */
4084         uint32_t bdllpm                       : 1;  /**< Bad DLLP Mask */
4085         uint32_t btlpm                        : 1;  /**< Bad TLP Mask */
4086         uint32_t reserved_1_5                 : 5;
4087         uint32_t rem                          : 1;  /**< Receiver Error Mask */
4088 #else
4089         uint32_t rem                          : 1;
4090         uint32_t reserved_1_5                 : 5;
4091         uint32_t btlpm                        : 1;
4092         uint32_t bdllpm                       : 1;
4093         uint32_t rnrm                         : 1;
4094         uint32_t reserved_9_11                : 3;
4095         uint32_t rttm                         : 1;
4096         uint32_t anfem                        : 1;
4097         uint32_t reserved_14_31               : 18;
4098 #endif
4099         } cn52xx;
4100         struct cvmx_pciercx_cfg069_cn52xx     cn52xxp1;
4101         struct cvmx_pciercx_cfg069_cn52xx     cn56xx;
4102         struct cvmx_pciercx_cfg069_cn52xx     cn56xxp1;
4103         struct cvmx_pciercx_cfg069_cn52xx     cn61xx;
4104         struct cvmx_pciercx_cfg069_cn52xx     cn63xx;
4105         struct cvmx_pciercx_cfg069_cn52xx     cn63xxp1;
4106         struct cvmx_pciercx_cfg069_cn52xx     cn66xx;
4107         struct cvmx_pciercx_cfg069_cn52xx     cn68xx;
4108         struct cvmx_pciercx_cfg069_cn52xx     cn68xxp1;
4109         struct cvmx_pciercx_cfg069_s          cnf71xx;
4110 };
4111 typedef union cvmx_pciercx_cfg069 cvmx_pciercx_cfg069_t;
4112
4113 /**
4114  * cvmx_pcierc#_cfg070
4115  *
4116  * PCIE_CFG070 = Seventy-first 32-bits of PCIE type 1 config space
4117  * (Advanced Capabilities and Control Register)
4118  */
4119 union cvmx_pciercx_cfg070 {
4120         uint32_t u32;
4121         struct cvmx_pciercx_cfg070_s {
4122 #ifdef __BIG_ENDIAN_BITFIELD
4123         uint32_t reserved_9_31                : 23;
4124         uint32_t ce                           : 1;  /**< ECRC Check Enable */
4125         uint32_t cc                           : 1;  /**< ECRC Check Capable */
4126         uint32_t ge                           : 1;  /**< ECRC Generation Enable */
4127         uint32_t gc                           : 1;  /**< ECRC Generation Capability */
4128         uint32_t fep                          : 5;  /**< First Error Pointer */
4129 #else
4130         uint32_t fep                          : 5;
4131         uint32_t gc                           : 1;
4132         uint32_t ge                           : 1;
4133         uint32_t cc                           : 1;
4134         uint32_t ce                           : 1;
4135         uint32_t reserved_9_31                : 23;
4136 #endif
4137         } s;
4138         struct cvmx_pciercx_cfg070_s          cn52xx;
4139         struct cvmx_pciercx_cfg070_s          cn52xxp1;
4140         struct cvmx_pciercx_cfg070_s          cn56xx;
4141         struct cvmx_pciercx_cfg070_s          cn56xxp1;
4142         struct cvmx_pciercx_cfg070_s          cn61xx;
4143         struct cvmx_pciercx_cfg070_s          cn63xx;
4144         struct cvmx_pciercx_cfg070_s          cn63xxp1;
4145         struct cvmx_pciercx_cfg070_s          cn66xx;
4146         struct cvmx_pciercx_cfg070_s          cn68xx;
4147         struct cvmx_pciercx_cfg070_s          cn68xxp1;
4148         struct cvmx_pciercx_cfg070_s          cnf71xx;
4149 };
4150 typedef union cvmx_pciercx_cfg070 cvmx_pciercx_cfg070_t;
4151
4152 /**
4153  * cvmx_pcierc#_cfg071
4154  *
4155  * PCIE_CFG071 = Seventy-second 32-bits of PCIE type 1 config space
4156  *                  (Header Log Register 1)
4157  *
4158  * The Header Log registers collect the header for the TLP corresponding to a detected error.
4159  */
4160 union cvmx_pciercx_cfg071 {
4161         uint32_t u32;
4162         struct cvmx_pciercx_cfg071_s {
4163 #ifdef __BIG_ENDIAN_BITFIELD
4164         uint32_t dword1                       : 32; /**< Header Log Register (first DWORD) */
4165 #else
4166         uint32_t dword1                       : 32;
4167 #endif
4168         } s;
4169         struct cvmx_pciercx_cfg071_s          cn52xx;
4170         struct cvmx_pciercx_cfg071_s          cn52xxp1;
4171         struct cvmx_pciercx_cfg071_s          cn56xx;
4172         struct cvmx_pciercx_cfg071_s          cn56xxp1;
4173         struct cvmx_pciercx_cfg071_s          cn61xx;
4174         struct cvmx_pciercx_cfg071_s          cn63xx;
4175         struct cvmx_pciercx_cfg071_s          cn63xxp1;
4176         struct cvmx_pciercx_cfg071_s          cn66xx;
4177         struct cvmx_pciercx_cfg071_s          cn68xx;
4178         struct cvmx_pciercx_cfg071_s          cn68xxp1;
4179         struct cvmx_pciercx_cfg071_s          cnf71xx;
4180 };
4181 typedef union cvmx_pciercx_cfg071 cvmx_pciercx_cfg071_t;
4182
4183 /**
4184  * cvmx_pcierc#_cfg072
4185  *
4186  * PCIE_CFG072 = Seventy-third 32-bits of PCIE type 1 config space
4187  *                  (Header Log Register 2)
4188  *
4189  * The Header Log registers collect the header for the TLP corresponding to a detected error.
4190  */
4191 union cvmx_pciercx_cfg072 {
4192         uint32_t u32;
4193         struct cvmx_pciercx_cfg072_s {
4194 #ifdef __BIG_ENDIAN_BITFIELD
4195         uint32_t dword2                       : 32; /**< Header Log Register (second DWORD) */
4196 #else
4197         uint32_t dword2                       : 32;
4198 #endif
4199         } s;
4200         struct cvmx_pciercx_cfg072_s          cn52xx;
4201         struct cvmx_pciercx_cfg072_s          cn52xxp1;
4202         struct cvmx_pciercx_cfg072_s          cn56xx;
4203         struct cvmx_pciercx_cfg072_s          cn56xxp1;
4204         struct cvmx_pciercx_cfg072_s          cn61xx;
4205         struct cvmx_pciercx_cfg072_s          cn63xx;
4206         struct cvmx_pciercx_cfg072_s          cn63xxp1;
4207         struct cvmx_pciercx_cfg072_s          cn66xx;
4208         struct cvmx_pciercx_cfg072_s          cn68xx;
4209         struct cvmx_pciercx_cfg072_s          cn68xxp1;
4210         struct cvmx_pciercx_cfg072_s          cnf71xx;
4211 };
4212 typedef union cvmx_pciercx_cfg072 cvmx_pciercx_cfg072_t;
4213
4214 /**
4215  * cvmx_pcierc#_cfg073
4216  *
4217  * PCIE_CFG073 = Seventy-fourth 32-bits of PCIE type 1 config space
4218  *                  (Header Log Register 3)
4219  *
4220  * The Header Log registers collect the header for the TLP corresponding to a detected error.
4221  */
4222 union cvmx_pciercx_cfg073 {
4223         uint32_t u32;
4224         struct cvmx_pciercx_cfg073_s {
4225 #ifdef __BIG_ENDIAN_BITFIELD
4226         uint32_t dword3                       : 32; /**< Header Log Register (third DWORD) */
4227 #else
4228         uint32_t dword3                       : 32;
4229 #endif
4230         } s;
4231         struct cvmx_pciercx_cfg073_s          cn52xx;
4232         struct cvmx_pciercx_cfg073_s          cn52xxp1;
4233         struct cvmx_pciercx_cfg073_s          cn56xx;
4234         struct cvmx_pciercx_cfg073_s          cn56xxp1;
4235         struct cvmx_pciercx_cfg073_s          cn61xx;
4236         struct cvmx_pciercx_cfg073_s          cn63xx;
4237         struct cvmx_pciercx_cfg073_s          cn63xxp1;
4238         struct cvmx_pciercx_cfg073_s          cn66xx;
4239         struct cvmx_pciercx_cfg073_s          cn68xx;
4240         struct cvmx_pciercx_cfg073_s          cn68xxp1;
4241         struct cvmx_pciercx_cfg073_s          cnf71xx;
4242 };
4243 typedef union cvmx_pciercx_cfg073 cvmx_pciercx_cfg073_t;
4244
4245 /**
4246  * cvmx_pcierc#_cfg074
4247  *
4248  * PCIE_CFG074 = Seventy-fifth 32-bits of PCIE type 1 config space
4249  *                  (Header Log Register 4)
4250  *
4251  * The Header Log registers collect the header for the TLP corresponding to a detected error.
4252  */
4253 union cvmx_pciercx_cfg074 {
4254         uint32_t u32;
4255         struct cvmx_pciercx_cfg074_s {
4256 #ifdef __BIG_ENDIAN_BITFIELD
4257         uint32_t dword4                       : 32; /**< Header Log Register (fourth DWORD) */
4258 #else
4259         uint32_t dword4                       : 32;
4260 #endif
4261         } s;
4262         struct cvmx_pciercx_cfg074_s          cn52xx;
4263         struct cvmx_pciercx_cfg074_s          cn52xxp1;
4264         struct cvmx_pciercx_cfg074_s          cn56xx;
4265         struct cvmx_pciercx_cfg074_s          cn56xxp1;
4266         struct cvmx_pciercx_cfg074_s          cn61xx;
4267         struct cvmx_pciercx_cfg074_s          cn63xx;
4268         struct cvmx_pciercx_cfg074_s          cn63xxp1;
4269         struct cvmx_pciercx_cfg074_s          cn66xx;
4270         struct cvmx_pciercx_cfg074_s          cn68xx;
4271         struct cvmx_pciercx_cfg074_s          cn68xxp1;
4272         struct cvmx_pciercx_cfg074_s          cnf71xx;
4273 };
4274 typedef union cvmx_pciercx_cfg074 cvmx_pciercx_cfg074_t;
4275
4276 /**
4277  * cvmx_pcierc#_cfg075
4278  *
4279  * PCIE_CFG075 = Seventy-sixth 32-bits of PCIE type 1 config space
4280  * (Root Error Command Register)
4281  */
4282 union cvmx_pciercx_cfg075 {
4283         uint32_t u32;
4284         struct cvmx_pciercx_cfg075_s {
4285 #ifdef __BIG_ENDIAN_BITFIELD
4286         uint32_t reserved_3_31                : 29;
4287         uint32_t fere                         : 1;  /**< Fatal Error Reporting Enable */
4288         uint32_t nfere                        : 1;  /**< Non-Fatal Error Reporting Enable */
4289         uint32_t cere                         : 1;  /**< Correctable Error Reporting Enable */
4290 #else
4291         uint32_t cere                         : 1;
4292         uint32_t nfere                        : 1;
4293         uint32_t fere                         : 1;
4294         uint32_t reserved_3_31                : 29;
4295 #endif
4296         } s;
4297         struct cvmx_pciercx_cfg075_s          cn52xx;
4298         struct cvmx_pciercx_cfg075_s          cn52xxp1;
4299         struct cvmx_pciercx_cfg075_s          cn56xx;
4300         struct cvmx_pciercx_cfg075_s          cn56xxp1;
4301         struct cvmx_pciercx_cfg075_s          cn61xx;
4302         struct cvmx_pciercx_cfg075_s          cn63xx;
4303         struct cvmx_pciercx_cfg075_s          cn63xxp1;
4304         struct cvmx_pciercx_cfg075_s          cn66xx;
4305         struct cvmx_pciercx_cfg075_s          cn68xx;
4306         struct cvmx_pciercx_cfg075_s          cn68xxp1;
4307         struct cvmx_pciercx_cfg075_s          cnf71xx;
4308 };
4309 typedef union cvmx_pciercx_cfg075 cvmx_pciercx_cfg075_t;
4310
4311 /**
4312  * cvmx_pcierc#_cfg076
4313  *
4314  * PCIE_CFG076 = Seventy-seventh 32-bits of PCIE type 1 config space
4315  * (Root Error Status Register)
4316  */
4317 union cvmx_pciercx_cfg076 {
4318         uint32_t u32;
4319         struct cvmx_pciercx_cfg076_s {
4320 #ifdef __BIG_ENDIAN_BITFIELD
4321         uint32_t aeimn                        : 5;  /**< Advanced Error Interrupt Message Number,
4322                                                          writable through PEM(0..1)_CFG_WR */
4323         uint32_t reserved_7_26                : 20;
4324         uint32_t femr                         : 1;  /**< Fatal Error Messages Received */
4325         uint32_t nfemr                        : 1;  /**< Non-Fatal Error Messages Received */
4326         uint32_t fuf                          : 1;  /**< First Uncorrectable Fatal */
4327         uint32_t multi_efnfr                  : 1;  /**< Multiple ERR_FATAL/NONFATAL Received */
4328         uint32_t efnfr                        : 1;  /**< ERR_FATAL/NONFATAL Received */
4329         uint32_t multi_ecr                    : 1;  /**< Multiple ERR_COR Received */
4330         uint32_t ecr                          : 1;  /**< ERR_COR Received */
4331 #else
4332         uint32_t ecr                          : 1;
4333         uint32_t multi_ecr                    : 1;
4334         uint32_t efnfr                        : 1;
4335         uint32_t multi_efnfr                  : 1;
4336         uint32_t fuf                          : 1;
4337         uint32_t nfemr                        : 1;
4338         uint32_t femr                         : 1;
4339         uint32_t reserved_7_26                : 20;
4340         uint32_t aeimn                        : 5;
4341 #endif
4342         } s;
4343         struct cvmx_pciercx_cfg076_s          cn52xx;
4344         struct cvmx_pciercx_cfg076_s          cn52xxp1;
4345         struct cvmx_pciercx_cfg076_s          cn56xx;
4346         struct cvmx_pciercx_cfg076_s          cn56xxp1;
4347         struct cvmx_pciercx_cfg076_s          cn61xx;
4348         struct cvmx_pciercx_cfg076_s          cn63xx;
4349         struct cvmx_pciercx_cfg076_s          cn63xxp1;
4350         struct cvmx_pciercx_cfg076_s          cn66xx;
4351         struct cvmx_pciercx_cfg076_s          cn68xx;
4352         struct cvmx_pciercx_cfg076_s          cn68xxp1;
4353         struct cvmx_pciercx_cfg076_s          cnf71xx;
4354 };
4355 typedef union cvmx_pciercx_cfg076 cvmx_pciercx_cfg076_t;
4356
4357 /**
4358  * cvmx_pcierc#_cfg077
4359  *
4360  * PCIE_CFG077 = Seventy-eighth 32-bits of PCIE type 1 config space
4361  * (Error Source Identification Register)
4362  */
4363 union cvmx_pciercx_cfg077 {
4364         uint32_t u32;
4365         struct cvmx_pciercx_cfg077_s {
4366 #ifdef __BIG_ENDIAN_BITFIELD
4367         uint32_t efnfsi                       : 16; /**< ERR_FATAL/NONFATAL Source Identification */
4368         uint32_t ecsi                         : 16; /**< ERR_COR Source Identification */
4369 #else
4370         uint32_t ecsi                         : 16;
4371         uint32_t efnfsi                       : 16;
4372 #endif
4373         } s;
4374         struct cvmx_pciercx_cfg077_s          cn52xx;
4375         struct cvmx_pciercx_cfg077_s          cn52xxp1;
4376         struct cvmx_pciercx_cfg077_s          cn56xx;
4377         struct cvmx_pciercx_cfg077_s          cn56xxp1;
4378         struct cvmx_pciercx_cfg077_s          cn61xx;
4379         struct cvmx_pciercx_cfg077_s          cn63xx;
4380         struct cvmx_pciercx_cfg077_s          cn63xxp1;
4381         struct cvmx_pciercx_cfg077_s          cn66xx;
4382         struct cvmx_pciercx_cfg077_s          cn68xx;
4383         struct cvmx_pciercx_cfg077_s          cn68xxp1;
4384         struct cvmx_pciercx_cfg077_s          cnf71xx;
4385 };
4386 typedef union cvmx_pciercx_cfg077 cvmx_pciercx_cfg077_t;
4387
4388 /**
4389  * cvmx_pcierc#_cfg448
4390  *
4391  * PCIE_CFG448 = Four hundred forty-ninth 32-bits of PCIE type 1 config space
4392  * (Ack Latency Timer and Replay Timer Register)
4393  */
4394 union cvmx_pciercx_cfg448 {
4395         uint32_t u32;
4396         struct cvmx_pciercx_cfg448_s {
4397 #ifdef __BIG_ENDIAN_BITFIELD
4398         uint32_t rtl                          : 16; /**< Replay Time Limit
4399                                                          The replay timer expires when it reaches this limit. The PCI
4400                                                          Express bus initiates a replay upon reception of a Nak or when
4401                                                          the replay timer expires.
4402                                                          This value will be set correctly by the hardware out of reset
4403                                                          or when the negotiated Link-Width or Payload-Size changes. If
4404                                                          the user changes this value through a CSR write or by an
4405                                                          EEPROM load then they should refer to the PCIe Specification
4406                                                          for the correct value. */
4407         uint32_t rtltl                        : 16; /**< Round Trip Latency Time Limit
4408                                                          The Ack/Nak latency timer expires when it reaches this limit.
4409                                                          This value will be set correctly by the hardware out of reset
4410                                                          or when the negotiated Link-Width or Payload-Size changes. If
4411                                                          the user changes this value through a CSR write or by an
4412                                                          EEPROM load then they should refer to the PCIe Specification
4413                                                          for the correct value. */
4414 #else
4415         uint32_t rtltl                        : 16;
4416         uint32_t rtl                          : 16;
4417 #endif
4418         } s;
4419         struct cvmx_pciercx_cfg448_s          cn52xx;
4420         struct cvmx_pciercx_cfg448_s          cn52xxp1;
4421         struct cvmx_pciercx_cfg448_s          cn56xx;
4422         struct cvmx_pciercx_cfg448_s          cn56xxp1;
4423         struct cvmx_pciercx_cfg448_s          cn61xx;
4424         struct cvmx_pciercx_cfg448_s          cn63xx;
4425         struct cvmx_pciercx_cfg448_s          cn63xxp1;
4426         struct cvmx_pciercx_cfg448_s          cn66xx;
4427         struct cvmx_pciercx_cfg448_s          cn68xx;
4428         struct cvmx_pciercx_cfg448_s          cn68xxp1;
4429         struct cvmx_pciercx_cfg448_s          cnf71xx;
4430 };
4431 typedef union cvmx_pciercx_cfg448 cvmx_pciercx_cfg448_t;
4432
4433 /**
4434  * cvmx_pcierc#_cfg449
4435  *
4436  * PCIE_CFG449 = Four hundred fiftieth 32-bits of PCIE type 1 config space
4437  * (Other Message Register)
4438  */
4439 union cvmx_pciercx_cfg449 {
4440         uint32_t u32;
4441         struct cvmx_pciercx_cfg449_s {
4442 #ifdef __BIG_ENDIAN_BITFIELD
4443         uint32_t omr                          : 32; /**< Other Message Register
4444                                                          This register can be used for either of the following purposes:
4445                                                          o To send a specific PCI Express Message, the application
4446                                                            writes the payload of the Message into this register, then
4447                                                            sets bit 0 of the Port Link Control Register to send the
4448                                                            Message.
4449                                                          o To store a corruption pattern for corrupting the LCRC on all
4450                                                            TLPs, the application places a 32-bit corruption pattern into
4451                                                            this register and enables this function by setting bit 25 of
4452                                                            the Port Link Control Register. When enabled, the transmit
4453                                                            LCRC result is XOR'd with this pattern before inserting
4454                                                            it into the packet. */
4455 #else
4456         uint32_t omr                          : 32;
4457 #endif
4458         } s;
4459         struct cvmx_pciercx_cfg449_s          cn52xx;
4460         struct cvmx_pciercx_cfg449_s          cn52xxp1;
4461         struct cvmx_pciercx_cfg449_s          cn56xx;
4462         struct cvmx_pciercx_cfg449_s          cn56xxp1;
4463         struct cvmx_pciercx_cfg449_s          cn61xx;
4464         struct cvmx_pciercx_cfg449_s          cn63xx;
4465         struct cvmx_pciercx_cfg449_s          cn63xxp1;
4466         struct cvmx_pciercx_cfg449_s          cn66xx;
4467         struct cvmx_pciercx_cfg449_s          cn68xx;
4468         struct cvmx_pciercx_cfg449_s          cn68xxp1;
4469         struct cvmx_pciercx_cfg449_s          cnf71xx;
4470 };
4471 typedef union cvmx_pciercx_cfg449 cvmx_pciercx_cfg449_t;
4472
4473 /**
4474  * cvmx_pcierc#_cfg450
4475  *
4476  * PCIE_CFG450 = Four hundred fifty-first 32-bits of PCIE type 1 config space
4477  * (Port Force Link Register)
4478  */
4479 union cvmx_pciercx_cfg450 {
4480         uint32_t u32;
4481         struct cvmx_pciercx_cfg450_s {
4482 #ifdef __BIG_ENDIAN_BITFIELD
4483         uint32_t lpec                         : 8;  /**< Low Power Entrance Count
4484                                                          The Power Management state will wait for this many clock cycles
4485                                                          for the associated completion of a CfgWr to PCIE_CFG017 register
4486                                                          Power State (PS) field register to go low-power. This register
4487                                                          is intended for applications that do not let the PCI Express
4488                                                          bus handle a completion for configuration request to the
4489                                                          Power Management Control and Status (PCIE_CFG017) register. */
4490         uint32_t reserved_22_23               : 2;
4491         uint32_t link_state                   : 6;  /**< Link State
4492                                                          The Link state that the PCI Express Bus will be forced to
4493                                                          when bit 15 (Force Link) is set.
4494                                                          State encoding:
4495                                                          o DETECT_QUIET              00h
4496                                                          o DETECT_ACT                01h
4497                                                          o POLL_ACTIVE               02h
4498                                                          o POLL_COMPLIANCE           03h
4499                                                          o POLL_CONFIG               04h
4500                                                          o PRE_DETECT_QUIET          05h
4501                                                          o DETECT_WAIT               06h
4502                                                          o CFG_LINKWD_START          07h
4503                                                          o CFG_LINKWD_ACEPT          08h
4504                                                          o CFG_LANENUM_WAIT          09h
4505                                                          o CFG_LANENUM_ACEPT         0Ah
4506                                                          o CFG_COMPLETE              0Bh
4507                                                          o CFG_IDLE                  0Ch
4508                                                          o RCVRY_LOCK                0Dh
4509                                                          o RCVRY_SPEED               0Eh
4510                                                          o RCVRY_RCVRCFG             0Fh
4511                                                          o RCVRY_IDLE                10h
4512                                                          o L0                        11h
4513                                                          o L0S                       12h
4514                                                          o L123_SEND_EIDLE           13h
4515                                                          o L1_IDLE                   14h
4516                                                          o L2_IDLE                   15h
4517                                                          o L2_WAKE                   16h
4518                                                          o DISABLED_ENTRY            17h
4519                                                          o DISABLED_IDLE             18h
4520                                                          o DISABLED                  19h
4521                                                          o LPBK_ENTRY                1Ah
4522                                                          o LPBK_ACTIVE               1Bh
4523                                                          o LPBK_EXIT                 1Ch
4524                                                          o LPBK_EXIT_TIMEOUT         1Dh
4525                                                          o HOT_RESET_ENTRY           1Eh
4526                                                          o HOT_RESET                 1Fh */
4527         uint32_t force_link                   : 1;  /**< Force Link
4528                                                          Forces the Link to the state specified by the Link State field.
4529                                                          The Force Link pulse will trigger Link re-negotiation.
4530                                                          * As the The Force Link is a pulse, writing a 1 to it does
4531                                                            trigger the forced link state event, even thought reading it
4532                                                            always returns a 0. */
4533         uint32_t reserved_8_14                : 7;
4534         uint32_t link_num                     : 8;  /**< Link Number */
4535 #else
4536         uint32_t link_num                     : 8;
4537         uint32_t reserved_8_14                : 7;
4538         uint32_t force_link                   : 1;
4539         uint32_t link_state                   : 6;
4540         uint32_t reserved_22_23               : 2;
4541         uint32_t lpec                         : 8;
4542 #endif
4543         } s;
4544         struct cvmx_pciercx_cfg450_s          cn52xx;
4545         struct cvmx_pciercx_cfg450_s          cn52xxp1;
4546         struct cvmx_pciercx_cfg450_s          cn56xx;
4547         struct cvmx_pciercx_cfg450_s          cn56xxp1;
4548         struct cvmx_pciercx_cfg450_s          cn61xx;
4549         struct cvmx_pciercx_cfg450_s          cn63xx;
4550         struct cvmx_pciercx_cfg450_s          cn63xxp1;
4551         struct cvmx_pciercx_cfg450_s          cn66xx;
4552         struct cvmx_pciercx_cfg450_s          cn68xx;
4553         struct cvmx_pciercx_cfg450_s          cn68xxp1;
4554         struct cvmx_pciercx_cfg450_s          cnf71xx;
4555 };
4556 typedef union cvmx_pciercx_cfg450 cvmx_pciercx_cfg450_t;
4557
4558 /**
4559  * cvmx_pcierc#_cfg451
4560  *
4561  * PCIE_CFG451 = Four hundred fifty-second 32-bits of PCIE type 1 config space
4562  * (Ack Frequency Register)
4563  */
4564 union cvmx_pciercx_cfg451 {
4565         uint32_t u32;
4566         struct cvmx_pciercx_cfg451_s {
4567 #ifdef __BIG_ENDIAN_BITFIELD
4568         uint32_t reserved_31_31               : 1;
4569         uint32_t easpml1                      : 1;  /**< Enter ASPM L1 without receive in L0s
4570                                                          Allow core to enter ASPM L1 even when link partner did
4571                                                          not go to L0s (receive is not in L0s).
4572                                                          When not set, core goes to ASPM L1 only after idle period
4573                                                          during which both receive and transmit are in L0s. */
4574         uint32_t l1el                         : 3;  /**< L1 Entrance Latency
4575                                                          Values correspond to:
4576                                                          o 000: 1 ms
4577                                                          o 001: 2 ms
4578                                                          o 010: 4 ms
4579                                                          o 011: 8 ms
4580                                                          o 100: 16 ms
4581                                                          o 101: 32 ms
4582                                                          o 110 or 111: 64 ms */
4583         uint32_t l0el                         : 3;  /**< L0s Entrance Latency
4584                                                          Values correspond to:
4585                                                          o 000: 1 ms
4586                                                          o 001: 2 ms
4587                                                          o 010: 3 ms
4588                                                          o 011: 4 ms
4589                                                          o 100: 5 ms
4590                                                          o 101: 6 ms
4591                                                          o 110 or 111: 7 ms */
4592         uint32_t n_fts_cc                     : 8;  /**< N_FTS when common clock is used.
4593                                                          The number of Fast Training Sequence ordered sets to be
4594                                                          transmitted when transitioning from L0s to L0. The maximum
4595                                                          number of FTS ordered-sets that a component can request is 255.
4596                                                           Note: The core does not support a value of zero; a value of
4597                                                                 zero can cause the LTSSM to go into the recovery state
4598                                                                 when exiting from L0s. */
4599         uint32_t n_fts                        : 8;  /**< N_FTS
4600                                                          The number of Fast Training Sequence ordered sets to be
4601                                                          transmitted when transitioning from L0s to L0. The maximum
4602                                                          number of FTS ordered-sets that a component can request is 255.
4603                                                          Note: The core does not support a value of zero; a value of
4604                                                                zero can cause the LTSSM to go into the recovery state
4605                                                                when exiting from L0s. */
4606         uint32_t ack_freq                     : 8;  /**< Ack Frequency
4607                                                          The number of pending Ack's specified here (up to 255) before
4608                                                          sending an Ack. */
4609 #else
4610         uint32_t ack_freq                     : 8;
4611         uint32_t n_fts                        : 8;
4612         uint32_t n_fts_cc                     : 8;
4613         uint32_t l0el                         : 3;
4614         uint32_t l1el                         : 3;
4615         uint32_t easpml1                      : 1;
4616         uint32_t reserved_31_31               : 1;
4617 #endif
4618         } s;
4619         struct cvmx_pciercx_cfg451_cn52xx {
4620 #ifdef __BIG_ENDIAN_BITFIELD
4621         uint32_t reserved_30_31               : 2;
4622         uint32_t l1el                         : 3;  /**< L1 Entrance Latency
4623                                                          Values correspond to:
4624                                                          o 000: 1 ms
4625                                                          o 001: 2 ms
4626                                                          o 010: 4 ms
4627                                                          o 011: 8 ms
4628                                                          o 100: 16 ms
4629                                                          o 101: 32 ms
4630                                                          o 110 or 111: 64 ms */
4631         uint32_t l0el                         : 3;  /**< L0s Entrance Latency
4632                                                          Values correspond to:
4633                                                          o 000: 1 ms
4634                                                          o 001: 2 ms
4635                                                          o 010: 3 ms
4636                                                          o 011: 4 ms
4637                                                          o 100: 5 ms
4638                                                          o 101: 6 ms
4639                                                          o 110 or 111: 7 ms */
4640         uint32_t n_fts_cc                     : 8;  /**< N_FTS when common clock is used.
4641                                                          The number of Fast Training Sequence ordered sets to be
4642                                                          transmitted when transitioning from L0s to L0. The maximum
4643                                                          number of FTS ordered-sets that a component can request is 255.
4644                                                           Note: The core does not support a value of zero; a value of
4645                                                                 zero can cause the LTSSM to go into the recovery state
4646                                                                 when exiting from L0s. */
4647         uint32_t n_fts                        : 8;  /**< N_FTS
4648                                                          The number of Fast Training Sequence ordered sets to be
4649                                                          transmitted when transitioning from L0s to L0. The maximum
4650                                                          number of FTS ordered-sets that a component can request is 255.
4651                                                          Note: The core does not support a value of zero; a value of
4652                                                                zero can cause the LTSSM to go into the recovery state
4653                                                                when exiting from L0s. */
4654         uint32_t ack_freq                     : 8;  /**< Ack Frequency
4655                                                          The number of pending Ack's specified here (up to 255) before
4656                                                          sending an Ack. */
4657 #else
4658         uint32_t ack_freq                     : 8;
4659         uint32_t n_fts                        : 8;
4660         uint32_t n_fts_cc                     : 8;
4661         uint32_t l0el                         : 3;
4662         uint32_t l1el                         : 3;
4663         uint32_t reserved_30_31               : 2;
4664 #endif
4665         } cn52xx;
4666         struct cvmx_pciercx_cfg451_cn52xx     cn52xxp1;
4667         struct cvmx_pciercx_cfg451_cn52xx     cn56xx;
4668         struct cvmx_pciercx_cfg451_cn52xx     cn56xxp1;
4669         struct cvmx_pciercx_cfg451_s          cn61xx;
4670         struct cvmx_pciercx_cfg451_cn52xx     cn63xx;
4671         struct cvmx_pciercx_cfg451_cn52xx     cn63xxp1;
4672         struct cvmx_pciercx_cfg451_s          cn66xx;
4673         struct cvmx_pciercx_cfg451_s          cn68xx;
4674         struct cvmx_pciercx_cfg451_s          cn68xxp1;
4675         struct cvmx_pciercx_cfg451_s          cnf71xx;
4676 };
4677 typedef union cvmx_pciercx_cfg451 cvmx_pciercx_cfg451_t;
4678
4679 /**
4680  * cvmx_pcierc#_cfg452
4681  *
4682  * PCIE_CFG452 = Four hundred fifty-third 32-bits of PCIE type 1 config space
4683  * (Port Link Control Register)
4684  */
4685 union cvmx_pciercx_cfg452 {
4686         uint32_t u32;
4687         struct cvmx_pciercx_cfg452_s {
4688 #ifdef __BIG_ENDIAN_BITFIELD
4689         uint32_t reserved_26_31               : 6;
4690         uint32_t eccrc                        : 1;  /**< Enable Corrupted CRC
4691                                                          Causes corrupt LCRC for TLPs when set,
4692                                                          using the pattern contained in the Other Message register.
4693                                                          This is a test feature, not to be used in normal operation. */
4694         uint32_t reserved_22_24               : 3;
4695         uint32_t lme                          : 6;  /**< Link Mode Enable
4696                                                          o 000001: x1
4697                                                          o 000011: x2
4698                                                          o 000111: x4  (not supported)
4699                                                          o 001111: x8  (not supported)
4700                                                          o 011111: x16 (not supported)
4701                                                          o 111111: x32 (not supported)
4702                                                          This field indicates the MAXIMUM number of lanes supported
4703                                                          by the PCIe port. The value can be set less than 0x3
4704                                                          to limit the number of lanes the PCIe will attempt to use.
4705                                                          The programming of this field needs to be done by SW BEFORE
4706                                                          enabling the link. See also MLW.
4707                                                          (Note: The value of this field does NOT indicate the number
4708                                                           of lanes in use by the PCIe. LME sets the max number of lanes
4709                                                           in the PCIe core that COULD be used. As per the PCIe specs,
4710                                                           the PCIe core can negotiate a smaller link width, so
4711                                                           x1 is also supported when LME=0x3, for example.) */
4712         uint32_t reserved_8_15                : 8;
4713         uint32_t flm                          : 1;  /**< Fast Link Mode
4714                                                          Sets all internal timers to fast mode for simulation purposes. */
4715         uint32_t reserved_6_6                 : 1;
4716         uint32_t dllle                        : 1;  /**< DLL Link Enable
4717                                                          Enables Link initialization. If DLL Link Enable = 0, the PCI
4718                                                          Express bus does not transmit InitFC DLLPs and does not
4719                                                          establish a Link. */
4720         uint32_t reserved_4_4                 : 1;
4721         uint32_t ra                           : 1;  /**< Reset Assert
4722                                                          Triggers a recovery and forces the LTSSM to the Hot Reset
4723                                                          state (downstream port only). */
4724         uint32_t le                           : 1;  /**< Loopback Enable
4725                                                          Initiate loopback mode as a master. On a 0->1 transition,
4726                                                          the PCIe core sends TS ordered sets with the loopback bit set
4727                                                          to cause the link partner to enter into loopback mode as a
4728                                                          slave. Normal transmission is not possible when LE=1. To exit
4729                                                          loopback mode, take the link through a reset sequence. */
4730         uint32_t sd                           : 1;  /**< Scramble Disable
4731                                                          Turns off data scrambling. */
4732         uint32_t omr                          : 1;  /**< Other Message Request
4733                                                          When software writes a `1' to this bit, the PCI Express bus
4734                                                          transmits the Message contained in the Other Message register. */
4735 #else
4736         uint32_t omr                          : 1;
4737         uint32_t sd                           : 1;
4738         uint32_t le                           : 1;
4739         uint32_t ra                           : 1;
4740         uint32_t reserved_4_4                 : 1;
4741         uint32_t dllle                        : 1;
4742         uint32_t reserved_6_6                 : 1;
4743         uint32_t flm                          : 1;
4744         uint32_t reserved_8_15                : 8;
4745         uint32_t lme                          : 6;
4746         uint32_t reserved_22_24               : 3;
4747         uint32_t eccrc                        : 1;
4748         uint32_t reserved_26_31               : 6;
4749 #endif
4750         } s;
4751         struct cvmx_pciercx_cfg452_s          cn52xx;
4752         struct cvmx_pciercx_cfg452_s          cn52xxp1;
4753         struct cvmx_pciercx_cfg452_s          cn56xx;
4754         struct cvmx_pciercx_cfg452_s          cn56xxp1;
4755         struct cvmx_pciercx_cfg452_cn61xx {
4756 #ifdef __BIG_ENDIAN_BITFIELD
4757         uint32_t reserved_22_31               : 10;
4758         uint32_t lme                          : 6;  /**< Link Mode Enable
4759                                                          o 000001: x1
4760                                                          o 000011: x2
4761                                                          o 000111: x4
4762                                                          o 001111: x8  (not supported)
4763                                                          o 011111: x16 (not supported)
4764                                                          o 111111: x32 (not supported)
4765                                                          This field indicates the MAXIMUM number of lanes supported
4766                                                          by the PCIe port. The value can be set less than 0x7
4767                                                          to limit the number of lanes the PCIe will attempt to use.
4768                                                          The programming of this field needs to be done by SW BEFORE
4769                                                          enabling the link. See also MLW.
4770                                                          (Note: The value of this field does NOT indicate the number
4771                                                           of lanes in use by the PCIe. LME sets the max number of lanes
4772                                                           in the PCIe core that COULD be used. As per the PCIe specs,
4773                                                           the PCIe core can negotiate a smaller link width, so all
4774                                                           of x4, x2, and x1 are supported when LME=0x7,
4775                                                           for example.) */
4776         uint32_t reserved_8_15                : 8;
4777         uint32_t flm                          : 1;  /**< Fast Link Mode
4778                                                          Sets all internal timers to fast mode for simulation purposes. */
4779         uint32_t reserved_6_6                 : 1;
4780         uint32_t dllle                        : 1;  /**< DLL Link Enable
4781                                                          Enables Link initialization. If DLL Link Enable = 0, the PCI
4782                                                          Express bus does not transmit InitFC DLLPs and does not
4783                                                          establish a Link. */
4784         uint32_t reserved_4_4                 : 1;
4785         uint32_t ra                           : 1;  /**< Reset Assert
4786                                                          Triggers a recovery and forces the LTSSM to the Hot Reset
4787                                                          state (downstream port only). */
4788         uint32_t le                           : 1;  /**< Loopback Enable
4789                                                          Initiate loopback mode as a master. On a 0->1 transition,
4790                                                          the PCIe core sends TS ordered sets with the loopback bit set
4791                                                          to cause the link partner to enter into loopback mode as a
4792                                                          slave. Normal transmission is not possible when LE=1. To exit
4793                                                          loopback mode, take the link through a reset sequence. */
4794         uint32_t sd                           : 1;  /**< Scramble Disable
4795                                                          Turns off data scrambling. */
4796         uint32_t omr                          : 1;  /**< Other Message Request
4797                                                          When software writes a `1' to this bit, the PCI Express bus
4798                                                          transmits the Message contained in the Other Message register. */
4799 #else
4800         uint32_t omr                          : 1;
4801         uint32_t sd                           : 1;
4802         uint32_t le                           : 1;
4803         uint32_t ra                           : 1;
4804         uint32_t reserved_4_4                 : 1;
4805         uint32_t dllle                        : 1;
4806         uint32_t reserved_6_6                 : 1;
4807         uint32_t flm                          : 1;
4808         uint32_t reserved_8_15                : 8;
4809         uint32_t lme                          : 6;
4810         uint32_t reserved_22_31               : 10;
4811 #endif
4812         } cn61xx;
4813         struct cvmx_pciercx_cfg452_s          cn63xx;
4814         struct cvmx_pciercx_cfg452_s          cn63xxp1;
4815         struct cvmx_pciercx_cfg452_cn61xx     cn66xx;
4816         struct cvmx_pciercx_cfg452_cn61xx     cn68xx;
4817         struct cvmx_pciercx_cfg452_cn61xx     cn68xxp1;
4818         struct cvmx_pciercx_cfg452_cn61xx     cnf71xx;
4819 };
4820 typedef union cvmx_pciercx_cfg452 cvmx_pciercx_cfg452_t;
4821
4822 /**
4823  * cvmx_pcierc#_cfg453
4824  *
4825  * PCIE_CFG453 = Four hundred fifty-fourth 32-bits of PCIE type 1 config space
4826  * (Lane Skew Register)
4827  */
4828 union cvmx_pciercx_cfg453 {
4829         uint32_t u32;
4830         struct cvmx_pciercx_cfg453_s {
4831 #ifdef __BIG_ENDIAN_BITFIELD
4832         uint32_t dlld                         : 1;  /**< Disable Lane-to-Lane Deskew
4833                                                          Disables the internal Lane-to-Lane deskew logic. */
4834         uint32_t reserved_26_30               : 5;
4835         uint32_t ack_nak                      : 1;  /**< Ack/Nak Disable
4836                                                          Prevents the PCI Express bus from sending Ack and Nak DLLPs. */
4837         uint32_t fcd                          : 1;  /**< Flow Control Disable
4838                                                          Prevents the PCI Express bus from sending FC DLLPs. */
4839         uint32_t ilst                         : 24; /**< Insert Lane Skew for Transmit (not supported for x16)
4840                                                          Causes skew between lanes for test purposes. There are three
4841                                                          bits per Lane. The value is in units of one symbol time. For
4842                                                          example, the value 010b for a Lane forces a skew of two symbol
4843                                                          times for that Lane. The maximum skew value for any Lane is 5
4844                                                          symbol times. */
4845 #else
4846         uint32_t ilst                         : 24;
4847         uint32_t fcd                          : 1;
4848         uint32_t ack_nak                      : 1;
4849         uint32_t reserved_26_30               : 5;
4850         uint32_t dlld                         : 1;
4851 #endif
4852         } s;
4853         struct cvmx_pciercx_cfg453_s          cn52xx;
4854         struct cvmx_pciercx_cfg453_s          cn52xxp1;
4855         struct cvmx_pciercx_cfg453_s          cn56xx;
4856         struct cvmx_pciercx_cfg453_s          cn56xxp1;
4857         struct cvmx_pciercx_cfg453_s          cn61xx;
4858         struct cvmx_pciercx_cfg453_s          cn63xx;
4859         struct cvmx_pciercx_cfg453_s          cn63xxp1;
4860         struct cvmx_pciercx_cfg453_s          cn66xx;
4861         struct cvmx_pciercx_cfg453_s          cn68xx;
4862         struct cvmx_pciercx_cfg453_s          cn68xxp1;
4863         struct cvmx_pciercx_cfg453_s          cnf71xx;
4864 };
4865 typedef union cvmx_pciercx_cfg453 cvmx_pciercx_cfg453_t;
4866
4867 /**
4868  * cvmx_pcierc#_cfg454
4869  *
4870  * PCIE_CFG454 = Four hundred fifty-fifth 32-bits of PCIE type 1 config space
4871  * (Symbol Number Register)
4872  */
4873 union cvmx_pciercx_cfg454 {
4874         uint32_t u32;
4875         struct cvmx_pciercx_cfg454_s {
4876 #ifdef __BIG_ENDIAN_BITFIELD
4877         uint32_t cx_nfunc                     : 3;  /**< Number of Functions (minus 1)
4878                                                          Configuration Requests targeted at function numbers above this
4879                                                          value will be returned with unsupported request */
4880         uint32_t tmfcwt                       : 5;  /**< Timer Modifier for Flow Control Watchdog Timer
4881                                                          Increases the timer value for the Flow Control watchdog timer,
4882                                                          in increments of 16 clock cycles. */
4883         uint32_t tmanlt                       : 5;  /**< Timer Modifier for Ack/Nak Latency Timer
4884                                                          Increases the timer value for the Ack/Nak latency timer, in
4885                                                          increments of 64 clock cycles. */
4886         uint32_t tmrt                         : 5;  /**< Timer Modifier for Replay Timer
4887                                                          Increases the timer value for the replay timer, in increments
4888                                                          of 64 clock cycles. */
4889         uint32_t reserved_11_13               : 3;
4890         uint32_t nskps                        : 3;  /**< Number of SKP Symbols */
4891         uint32_t reserved_0_7                 : 8;
4892 #else
4893         uint32_t reserved_0_7                 : 8;
4894         uint32_t nskps                        : 3;
4895         uint32_t reserved_11_13               : 3;
4896         uint32_t tmrt                         : 5;
4897         uint32_t tmanlt                       : 5;
4898         uint32_t tmfcwt                       : 5;
4899         uint32_t cx_nfunc                     : 3;
4900 #endif
4901         } s;
4902         struct cvmx_pciercx_cfg454_cn52xx {
4903 #ifdef __BIG_ENDIAN_BITFIELD
4904         uint32_t reserved_29_31               : 3;
4905         uint32_t tmfcwt                       : 5;  /**< Timer Modifier for Flow Control Watchdog Timer
4906                                                          Increases the timer value for the Flow Control watchdog timer,
4907                                                          in increments of 16 clock cycles. */
4908         uint32_t tmanlt                       : 5;  /**< Timer Modifier for Ack/Nak Latency Timer
4909                                                          Increases the timer value for the Ack/Nak latency timer, in
4910                                                          increments of 64 clock cycles. */
4911         uint32_t tmrt                         : 5;  /**< Timer Modifier for Replay Timer
4912                                                          Increases the timer value for the replay timer, in increments
4913                                                          of 64 clock cycles. */
4914         uint32_t reserved_11_13               : 3;
4915         uint32_t nskps                        : 3;  /**< Number of SKP Symbols */
4916         uint32_t reserved_4_7                 : 4;
4917         uint32_t ntss                         : 4;  /**< Number of TS Symbols
4918                                                          Sets the number of TS identifier symbols that are sent in TS1
4919                                                          and TS2 ordered sets. */
4920 #else
4921         uint32_t ntss                         : 4;
4922         uint32_t reserved_4_7                 : 4;
4923         uint32_t nskps                        : 3;
4924         uint32_t reserved_11_13               : 3;
4925         uint32_t tmrt                         : 5;
4926         uint32_t tmanlt                       : 5;
4927         uint32_t tmfcwt                       : 5;
4928         uint32_t reserved_29_31               : 3;
4929 #endif
4930         } cn52xx;
4931         struct cvmx_pciercx_cfg454_cn52xx     cn52xxp1;
4932         struct cvmx_pciercx_cfg454_cn52xx     cn56xx;
4933         struct cvmx_pciercx_cfg454_cn52xx     cn56xxp1;
4934         struct cvmx_pciercx_cfg454_cn61xx {
4935 #ifdef __BIG_ENDIAN_BITFIELD
4936         uint32_t cx_nfunc                     : 3;  /**< Number of Functions (minus 1)
4937                                                          Configuration Requests targeted at function numbers above this
4938                                                          value will be returned with unsupported request */
4939         uint32_t tmfcwt                       : 5;  /**< Timer Modifier for Flow Control Watchdog Timer
4940                                                          Increases the timer value for the Flow Control watchdog timer,
4941                                                          in increments of 16 clock cycles. */
4942         uint32_t tmanlt                       : 5;  /**< Timer Modifier for Ack/Nak Latency Timer
4943                                                          Increases the timer value for the Ack/Nak latency timer, in
4944                                                          increments of 64 clock cycles. */
4945         uint32_t tmrt                         : 5;  /**< Timer Modifier for Replay Timer
4946                                                          Increases the timer value for the replay timer, in increments
4947                                                          of 64 clock cycles. */
4948         uint32_t reserved_8_13                : 6;
4949         uint32_t mfuncn                       : 8;  /**< Max Number of Functions Supported */
4950 #else
4951         uint32_t mfuncn                       : 8;
4952         uint32_t reserved_8_13                : 6;
4953         uint32_t tmrt                         : 5;
4954         uint32_t tmanlt                       : 5;
4955         uint32_t tmfcwt                       : 5;
4956         uint32_t cx_nfunc                     : 3;
4957 #endif
4958         } cn61xx;
4959         struct cvmx_pciercx_cfg454_cn52xx     cn63xx;
4960         struct cvmx_pciercx_cfg454_cn52xx     cn63xxp1;
4961         struct cvmx_pciercx_cfg454_cn61xx     cn66xx;
4962         struct cvmx_pciercx_cfg454_cn61xx     cn68xx;
4963         struct cvmx_pciercx_cfg454_cn52xx     cn68xxp1;
4964         struct cvmx_pciercx_cfg454_cn61xx     cnf71xx;
4965 };
4966 typedef union cvmx_pciercx_cfg454 cvmx_pciercx_cfg454_t;
4967
4968 /**
4969  * cvmx_pcierc#_cfg455
4970  *
4971  * PCIE_CFG455 = Four hundred fifty-sixth 32-bits of PCIE type 1 config space
4972  * (Symbol Timer Register/Filter Mask Register 1)
4973  */
4974 union cvmx_pciercx_cfg455 {
4975         uint32_t u32;
4976         struct cvmx_pciercx_cfg455_s {
4977 #ifdef __BIG_ENDIAN_BITFIELD
4978         uint32_t m_cfg0_filt                  : 1;  /**< Mask filtering of received Configuration Requests (RC mode only) */
4979         uint32_t m_io_filt                    : 1;  /**< Mask filtering of received I/O Requests (RC mode only) */
4980         uint32_t msg_ctrl                     : 1;  /**< Message Control
4981                                                          The application must not change this field. */
4982         uint32_t m_cpl_ecrc_filt              : 1;  /**< Mask ECRC error filtering for Completions */
4983         uint32_t m_ecrc_filt                  : 1;  /**< Mask ECRC error filtering */
4984         uint32_t m_cpl_len_err                : 1;  /**< Mask Length mismatch error for received Completions */
4985         uint32_t m_cpl_attr_err               : 1;  /**< Mask Attributes mismatch error for received Completions */
4986         uint32_t m_cpl_tc_err                 : 1;  /**< Mask Traffic Class mismatch error for received Completions */
4987         uint32_t m_cpl_fun_err                : 1;  /**< Mask function mismatch error for received Completions */
4988         uint32_t m_cpl_rid_err                : 1;  /**< Mask Requester ID mismatch error for received Completions */
4989         uint32_t m_cpl_tag_err                : 1;  /**< Mask Tag error rules for received Completions */
4990         uint32_t m_lk_filt                    : 1;  /**< Mask Locked Request filtering */
4991         uint32_t m_cfg1_filt                  : 1;  /**< Mask Type 1 Configuration Request filtering */
4992         uint32_t m_bar_match                  : 1;  /**< Mask BAR match filtering */
4993         uint32_t m_pois_filt                  : 1;  /**< Mask poisoned TLP filtering */
4994         uint32_t m_fun                        : 1;  /**< Mask function */
4995         uint32_t dfcwt                        : 1;  /**< Disable FC Watchdog Timer */
4996         uint32_t reserved_11_14               : 4;
4997         uint32_t skpiv                        : 11; /**< SKP Interval Value */
4998 #else
4999         uint32_t skpiv                        : 11;
5000         uint32_t reserved_11_14               : 4;
5001         uint32_t dfcwt                        : 1;
5002         uint32_t m_fun                        : 1;
5003         uint32_t m_pois_filt                  : 1;
5004         uint32_t m_bar_match                  : 1;
5005         uint32_t m_cfg1_filt                  : 1;
5006         uint32_t m_lk_filt                    : 1;
5007         uint32_t m_cpl_tag_err                : 1;
5008         uint32_t m_cpl_rid_err                : 1;
5009         uint32_t m_cpl_fun_err                : 1;
5010         uint32_t m_cpl_tc_err                 : 1;
5011         uint32_t m_cpl_attr_err               : 1;
5012         uint32_t m_cpl_len_err                : 1;
5013         uint32_t m_ecrc_filt                  : 1;
5014         uint32_t m_cpl_ecrc_filt              : 1;
5015         uint32_t msg_ctrl                     : 1;
5016         uint32_t m_io_filt                    : 1;
5017         uint32_t m_cfg0_filt                  : 1;
5018 #endif
5019         } s;
5020         struct cvmx_pciercx_cfg455_s          cn52xx;
5021         struct cvmx_pciercx_cfg455_s          cn52xxp1;
5022         struct cvmx_pciercx_cfg455_s          cn56xx;
5023         struct cvmx_pciercx_cfg455_s          cn56xxp1;
5024         struct cvmx_pciercx_cfg455_s          cn61xx;
5025         struct cvmx_pciercx_cfg455_s          cn63xx;
5026         struct cvmx_pciercx_cfg455_s          cn63xxp1;
5027         struct cvmx_pciercx_cfg455_s          cn66xx;
5028         struct cvmx_pciercx_cfg455_s          cn68xx;
5029         struct cvmx_pciercx_cfg455_s          cn68xxp1;
5030         struct cvmx_pciercx_cfg455_s          cnf71xx;
5031 };
5032 typedef union cvmx_pciercx_cfg455 cvmx_pciercx_cfg455_t;
5033
5034 /**
5035  * cvmx_pcierc#_cfg456
5036  *
5037  * PCIE_CFG456 = Four hundred fifty-seventh 32-bits of PCIE type 1 config space
5038  * (Filter Mask Register 2)
5039  */
5040 union cvmx_pciercx_cfg456 {
5041         uint32_t u32;
5042         struct cvmx_pciercx_cfg456_s {
5043 #ifdef __BIG_ENDIAN_BITFIELD
5044         uint32_t reserved_4_31                : 28;
5045         uint32_t m_handle_flush               : 1;  /**< Mask Core Filter to handle flush request */
5046         uint32_t m_dabort_4ucpl               : 1;  /**< Mask DLLP abort for unexpected CPL */
5047         uint32_t m_vend1_drp                  : 1;  /**< Mask Vendor MSG Type 1 dropped silently */
5048         uint32_t m_vend0_drp                  : 1;  /**< Mask Vendor MSG Type 0 dropped with UR error reporting. */
5049 #else
5050         uint32_t m_vend0_drp                  : 1;
5051         uint32_t m_vend1_drp                  : 1;
5052         uint32_t m_dabort_4ucpl               : 1;
5053         uint32_t m_handle_flush               : 1;
5054         uint32_t reserved_4_31                : 28;
5055 #endif
5056         } s;
5057         struct cvmx_pciercx_cfg456_cn52xx {
5058 #ifdef __BIG_ENDIAN_BITFIELD
5059         uint32_t reserved_2_31                : 30;
5060         uint32_t m_vend1_drp                  : 1;  /**< Mask Vendor MSG Type 1 dropped silently */
5061         uint32_t m_vend0_drp                  : 1;  /**< Mask Vendor MSG Type 0 dropped with UR error reporting. */
5062 #else
5063         uint32_t m_vend0_drp                  : 1;
5064         uint32_t m_vend1_drp                  : 1;
5065         uint32_t reserved_2_31                : 30;
5066 #endif
5067         } cn52xx;
5068         struct cvmx_pciercx_cfg456_cn52xx     cn52xxp1;
5069         struct cvmx_pciercx_cfg456_cn52xx     cn56xx;
5070         struct cvmx_pciercx_cfg456_cn52xx     cn56xxp1;
5071         struct cvmx_pciercx_cfg456_s          cn61xx;
5072         struct cvmx_pciercx_cfg456_cn52xx     cn63xx;
5073         struct cvmx_pciercx_cfg456_cn52xx     cn63xxp1;
5074         struct cvmx_pciercx_cfg456_s          cn66xx;
5075         struct cvmx_pciercx_cfg456_s          cn68xx;
5076         struct cvmx_pciercx_cfg456_cn52xx     cn68xxp1;
5077         struct cvmx_pciercx_cfg456_s          cnf71xx;
5078 };
5079 typedef union cvmx_pciercx_cfg456 cvmx_pciercx_cfg456_t;
5080
5081 /**
5082  * cvmx_pcierc#_cfg458
5083  *
5084  * PCIE_CFG458 = Four hundred fifty-ninth 32-bits of PCIE type 1 config space
5085  * (Debug Register 0)
5086  */
5087 union cvmx_pciercx_cfg458 {
5088         uint32_t u32;
5089         struct cvmx_pciercx_cfg458_s {
5090 #ifdef __BIG_ENDIAN_BITFIELD
5091         uint32_t dbg_info_l32                 : 32; /**< The value on cxpl_debug_info[31:0]. */
5092 #else
5093         uint32_t dbg_info_l32                 : 32;
5094 #endif
5095         } s;
5096         struct cvmx_pciercx_cfg458_s          cn52xx;
5097         struct cvmx_pciercx_cfg458_s          cn52xxp1;
5098         struct cvmx_pciercx_cfg458_s          cn56xx;
5099         struct cvmx_pciercx_cfg458_s          cn56xxp1;
5100         struct cvmx_pciercx_cfg458_s          cn61xx;
5101         struct cvmx_pciercx_cfg458_s          cn63xx;
5102         struct cvmx_pciercx_cfg458_s          cn63xxp1;
5103         struct cvmx_pciercx_cfg458_s          cn66xx;
5104         struct cvmx_pciercx_cfg458_s          cn68xx;
5105         struct cvmx_pciercx_cfg458_s          cn68xxp1;
5106         struct cvmx_pciercx_cfg458_s          cnf71xx;
5107 };
5108 typedef union cvmx_pciercx_cfg458 cvmx_pciercx_cfg458_t;
5109
5110 /**
5111  * cvmx_pcierc#_cfg459
5112  *
5113  * PCIE_CFG459 = Four hundred sixtieth 32-bits of PCIE type 1 config space
5114  * (Debug Register 1)
5115  */
5116 union cvmx_pciercx_cfg459 {
5117         uint32_t u32;
5118         struct cvmx_pciercx_cfg459_s {
5119 #ifdef __BIG_ENDIAN_BITFIELD
5120         uint32_t dbg_info_u32                 : 32; /**< The value on cxpl_debug_info[63:32]. */
5121 #else
5122         uint32_t dbg_info_u32                 : 32;
5123 #endif
5124         } s;
5125         struct cvmx_pciercx_cfg459_s          cn52xx;
5126         struct cvmx_pciercx_cfg459_s          cn52xxp1;
5127         struct cvmx_pciercx_cfg459_s          cn56xx;
5128         struct cvmx_pciercx_cfg459_s          cn56xxp1;
5129         struct cvmx_pciercx_cfg459_s          cn61xx;
5130         struct cvmx_pciercx_cfg459_s          cn63xx;
5131         struct cvmx_pciercx_cfg459_s          cn63xxp1;
5132         struct cvmx_pciercx_cfg459_s          cn66xx;
5133         struct cvmx_pciercx_cfg459_s          cn68xx;
5134         struct cvmx_pciercx_cfg459_s          cn68xxp1;
5135         struct cvmx_pciercx_cfg459_s          cnf71xx;
5136 };
5137 typedef union cvmx_pciercx_cfg459 cvmx_pciercx_cfg459_t;
5138
5139 /**
5140  * cvmx_pcierc#_cfg460
5141  *
5142  * PCIE_CFG460 = Four hundred sixty-first 32-bits of PCIE type 1 config space
5143  * (Transmit Posted FC Credit Status)
5144  */
5145 union cvmx_pciercx_cfg460 {
5146         uint32_t u32;
5147         struct cvmx_pciercx_cfg460_s {
5148 #ifdef __BIG_ENDIAN_BITFIELD
5149         uint32_t reserved_20_31               : 12;
5150         uint32_t tphfcc                       : 8;  /**< Transmit Posted Header FC Credits
5151                                                          The Posted Header credits advertised by the receiver at the
5152                                                          other end of the Link, updated with each UpdateFC DLLP. */
5153         uint32_t tpdfcc                       : 12; /**< Transmit Posted Data FC Credits
5154                                                          The Posted Data credits advertised by the receiver at the other
5155                                                          end of the Link, updated with each UpdateFC DLLP. */
5156 #else
5157         uint32_t tpdfcc                       : 12;
5158         uint32_t tphfcc                       : 8;
5159         uint32_t reserved_20_31               : 12;
5160 #endif
5161         } s;
5162         struct cvmx_pciercx_cfg460_s          cn52xx;
5163         struct cvmx_pciercx_cfg460_s          cn52xxp1;
5164         struct cvmx_pciercx_cfg460_s          cn56xx;
5165         struct cvmx_pciercx_cfg460_s          cn56xxp1;
5166         struct cvmx_pciercx_cfg460_s          cn61xx;
5167         struct cvmx_pciercx_cfg460_s          cn63xx;
5168         struct cvmx_pciercx_cfg460_s          cn63xxp1;
5169         struct cvmx_pciercx_cfg460_s          cn66xx;
5170         struct cvmx_pciercx_cfg460_s          cn68xx;
5171         struct cvmx_pciercx_cfg460_s          cn68xxp1;
5172         struct cvmx_pciercx_cfg460_s          cnf71xx;
5173 };
5174 typedef union cvmx_pciercx_cfg460 cvmx_pciercx_cfg460_t;
5175
5176 /**
5177  * cvmx_pcierc#_cfg461
5178  *
5179  * PCIE_CFG461 = Four hundred sixty-second 32-bits of PCIE type 1 config space
5180  * (Transmit Non-Posted FC Credit Status)
5181  */
5182 union cvmx_pciercx_cfg461 {
5183         uint32_t u32;
5184         struct cvmx_pciercx_cfg461_s {
5185 #ifdef __BIG_ENDIAN_BITFIELD
5186         uint32_t reserved_20_31               : 12;
5187         uint32_t tchfcc                       : 8;  /**< Transmit Non-Posted Header FC Credits
5188                                                          The Non-Posted Header credits advertised by the receiver at the
5189                                                          other end of the Link, updated with each UpdateFC DLLP. */
5190         uint32_t tcdfcc                       : 12; /**< Transmit Non-Posted Data FC Credits
5191                                                          The Non-Posted Data credits advertised by the receiver at the
5192                                                          other end of the Link, updated with each UpdateFC DLLP. */
5193 #else
5194         uint32_t tcdfcc                       : 12;
5195         uint32_t tchfcc                       : 8;
5196         uint32_t reserved_20_31               : 12;
5197 #endif
5198         } s;
5199         struct cvmx_pciercx_cfg461_s          cn52xx;
5200         struct cvmx_pciercx_cfg461_s          cn52xxp1;
5201         struct cvmx_pciercx_cfg461_s          cn56xx;
5202         struct cvmx_pciercx_cfg461_s          cn56xxp1;
5203         struct cvmx_pciercx_cfg461_s          cn61xx;
5204         struct cvmx_pciercx_cfg461_s          cn63xx;
5205         struct cvmx_pciercx_cfg461_s          cn63xxp1;
5206         struct cvmx_pciercx_cfg461_s          cn66xx;
5207         struct cvmx_pciercx_cfg461_s          cn68xx;
5208         struct cvmx_pciercx_cfg461_s          cn68xxp1;
5209         struct cvmx_pciercx_cfg461_s          cnf71xx;
5210 };
5211 typedef union cvmx_pciercx_cfg461 cvmx_pciercx_cfg461_t;
5212
5213 /**
5214  * cvmx_pcierc#_cfg462
5215  *
5216  * PCIE_CFG462 = Four hundred sixty-third 32-bits of PCIE type 1 config space
5217  * (Transmit Completion FC Credit Status )
5218  */
5219 union cvmx_pciercx_cfg462 {
5220         uint32_t u32;
5221         struct cvmx_pciercx_cfg462_s {
5222 #ifdef __BIG_ENDIAN_BITFIELD
5223         uint32_t reserved_20_31               : 12;
5224         uint32_t tchfcc                       : 8;  /**< Transmit Completion Header FC Credits
5225                                                          The Completion Header credits advertised by the receiver at the
5226                                                          other end of the Link, updated with each UpdateFC DLLP. */
5227         uint32_t tcdfcc                       : 12; /**< Transmit Completion Data FC Credits
5228                                                          The Completion Data credits advertised by the receiver at the
5229                                                          other end of the Link, updated with each UpdateFC DLLP. */
5230 #else
5231         uint32_t tcdfcc                       : 12;
5232         uint32_t tchfcc                       : 8;
5233         uint32_t reserved_20_31               : 12;
5234 #endif
5235         } s;
5236         struct cvmx_pciercx_cfg462_s          cn52xx;
5237         struct cvmx_pciercx_cfg462_s          cn52xxp1;
5238         struct cvmx_pciercx_cfg462_s          cn56xx;
5239         struct cvmx_pciercx_cfg462_s          cn56xxp1;
5240         struct cvmx_pciercx_cfg462_s          cn61xx;
5241         struct cvmx_pciercx_cfg462_s          cn63xx;
5242         struct cvmx_pciercx_cfg462_s          cn63xxp1;
5243         struct cvmx_pciercx_cfg462_s          cn66xx;
5244         struct cvmx_pciercx_cfg462_s          cn68xx;
5245         struct cvmx_pciercx_cfg462_s          cn68xxp1;
5246         struct cvmx_pciercx_cfg462_s          cnf71xx;
5247 };
5248 typedef union cvmx_pciercx_cfg462 cvmx_pciercx_cfg462_t;
5249
5250 /**
5251  * cvmx_pcierc#_cfg463
5252  *
5253  * PCIE_CFG463 = Four hundred sixty-fourth 32-bits of PCIE type 1 config space
5254  * (Queue Status)
5255  */
5256 union cvmx_pciercx_cfg463 {
5257         uint32_t u32;
5258         struct cvmx_pciercx_cfg463_s {
5259 #ifdef __BIG_ENDIAN_BITFIELD
5260         uint32_t reserved_3_31                : 29;
5261         uint32_t rqne                         : 1;  /**< Received Queue Not Empty
5262                                                          Indicates there is data in one or more of the receive buffers. */
5263         uint32_t trbne                        : 1;  /**< Transmit Retry Buffer Not Empty
5264                                                          Indicates that there is data in the transmit retry buffer. */
5265         uint32_t rtlpfccnr                    : 1;  /**< Received TLP FC Credits Not Returned
5266                                                          Indicates that the PCI Express bus has sent a TLP but has not
5267                                                          yet received an UpdateFC DLLP indicating that the credits for
5268                                                          that TLP have been restored by the receiver at the other end of
5269                                                          the Link. */
5270 #else
5271         uint32_t rtlpfccnr                    : 1;
5272         uint32_t trbne                        : 1;
5273         uint32_t rqne                         : 1;
5274         uint32_t reserved_3_31                : 29;
5275 #endif
5276         } s;
5277         struct cvmx_pciercx_cfg463_s          cn52xx;
5278         struct cvmx_pciercx_cfg463_s          cn52xxp1;
5279         struct cvmx_pciercx_cfg463_s          cn56xx;
5280         struct cvmx_pciercx_cfg463_s          cn56xxp1;
5281         struct cvmx_pciercx_cfg463_s          cn61xx;
5282         struct cvmx_pciercx_cfg463_s          cn63xx;
5283         struct cvmx_pciercx_cfg463_s          cn63xxp1;
5284         struct cvmx_pciercx_cfg463_s          cn66xx;
5285         struct cvmx_pciercx_cfg463_s          cn68xx;
5286         struct cvmx_pciercx_cfg463_s          cn68xxp1;
5287         struct cvmx_pciercx_cfg463_s          cnf71xx;
5288 };
5289 typedef union cvmx_pciercx_cfg463 cvmx_pciercx_cfg463_t;
5290
5291 /**
5292  * cvmx_pcierc#_cfg464
5293  *
5294  * PCIE_CFG464 = Four hundred sixty-fifth 32-bits of PCIE type 1 config space
5295  * (VC Transmit Arbitration Register 1)
5296  */
5297 union cvmx_pciercx_cfg464 {
5298         uint32_t u32;
5299         struct cvmx_pciercx_cfg464_s {
5300 #ifdef __BIG_ENDIAN_BITFIELD
5301         uint32_t wrr_vc3                      : 8;  /**< WRR Weight for VC3 */
5302         uint32_t wrr_vc2                      : 8;  /**< WRR Weight for VC2 */
5303         uint32_t wrr_vc1                      : 8;  /**< WRR Weight for VC1 */
5304         uint32_t wrr_vc0                      : 8;  /**< WRR Weight for VC0 */
5305 #else
5306         uint32_t wrr_vc0                      : 8;
5307         uint32_t wrr_vc1                      : 8;
5308         uint32_t wrr_vc2                      : 8;
5309         uint32_t wrr_vc3                      : 8;
5310 #endif
5311         } s;
5312         struct cvmx_pciercx_cfg464_s          cn52xx;
5313         struct cvmx_pciercx_cfg464_s          cn52xxp1;
5314         struct cvmx_pciercx_cfg464_s          cn56xx;
5315         struct cvmx_pciercx_cfg464_s          cn56xxp1;
5316         struct cvmx_pciercx_cfg464_s          cn61xx;
5317         struct cvmx_pciercx_cfg464_s          cn63xx;
5318         struct cvmx_pciercx_cfg464_s          cn63xxp1;
5319         struct cvmx_pciercx_cfg464_s          cn66xx;
5320         struct cvmx_pciercx_cfg464_s          cn68xx;
5321         struct cvmx_pciercx_cfg464_s          cn68xxp1;
5322         struct cvmx_pciercx_cfg464_s          cnf71xx;
5323 };
5324 typedef union cvmx_pciercx_cfg464 cvmx_pciercx_cfg464_t;
5325
5326 /**
5327  * cvmx_pcierc#_cfg465
5328  *
5329  * PCIE_CFG465 = Four hundred sixty-sixth 32-bits of config space
5330  * (VC Transmit Arbitration Register 2)
5331  */
5332 union cvmx_pciercx_cfg465 {
5333         uint32_t u32;
5334         struct cvmx_pciercx_cfg465_s {
5335 #ifdef __BIG_ENDIAN_BITFIELD
5336         uint32_t wrr_vc7                      : 8;  /**< WRR Weight for VC7 */
5337         uint32_t wrr_vc6                      : 8;  /**< WRR Weight for VC6 */
5338         uint32_t wrr_vc5                      : 8;  /**< WRR Weight for VC5 */
5339         uint32_t wrr_vc4                      : 8;  /**< WRR Weight for VC4 */
5340 #else
5341         uint32_t wrr_vc4                      : 8;
5342         uint32_t wrr_vc5                      : 8;
5343         uint32_t wrr_vc6                      : 8;
5344         uint32_t wrr_vc7                      : 8;
5345 #endif
5346         } s;
5347         struct cvmx_pciercx_cfg465_s          cn52xx;
5348         struct cvmx_pciercx_cfg465_s          cn52xxp1;
5349         struct cvmx_pciercx_cfg465_s          cn56xx;
5350         struct cvmx_pciercx_cfg465_s          cn56xxp1;
5351         struct cvmx_pciercx_cfg465_s          cn61xx;
5352         struct cvmx_pciercx_cfg465_s          cn63xx;
5353         struct cvmx_pciercx_cfg465_s          cn63xxp1;
5354         struct cvmx_pciercx_cfg465_s          cn66xx;
5355         struct cvmx_pciercx_cfg465_s          cn68xx;
5356         struct cvmx_pciercx_cfg465_s          cn68xxp1;
5357         struct cvmx_pciercx_cfg465_s          cnf71xx;
5358 };
5359 typedef union cvmx_pciercx_cfg465 cvmx_pciercx_cfg465_t;
5360
5361 /**
5362  * cvmx_pcierc#_cfg466
5363  *
5364  * PCIE_CFG466 = Four hundred sixty-seventh 32-bits of PCIE type 1 config space
5365  * (VC0 Posted Receive Queue Control)
5366  */
5367 union cvmx_pciercx_cfg466 {
5368         uint32_t u32;
5369         struct cvmx_pciercx_cfg466_s {
5370 #ifdef __BIG_ENDIAN_BITFIELD
5371         uint32_t rx_queue_order               : 1;  /**< VC Ordering for Receive Queues
5372                                                          Determines the VC ordering rule for the receive queues, used
5373                                                          only in the segmented-buffer configuration,
5374                                                          writable through PEM(0..1)_CFG_WR:
5375                                                          o 1: Strict ordering, higher numbered VCs have higher priority
5376                                                          o 0: Round robin
5377                                                          However, the application must not change this field. */
5378         uint32_t type_ordering                : 1;  /**< TLP Type Ordering for VC0
5379                                                          Determines the TLP type ordering rule for VC0 receive queues,
5380                                                          used only in the segmented-buffer configuration, writable
5381                                                          through PEM(0..1)_CFG_WR:
5382                                                          o 1: Ordering of received TLPs follows the rules in
5383                                                               PCI Express Base Specification
5384                                                          o 0: Strict ordering for received TLPs: Posted, then
5385                                                               Completion, then Non-Posted
5386                                                          However, the application must not change this field. */
5387         uint32_t reserved_24_29               : 6;
5388         uint32_t queue_mode                   : 3;  /**< VC0 Posted TLP Queue Mode
5389                                                          The operating mode of the Posted receive queue for VC0, used
5390                                                          only in the segmented-buffer configuration, writable through
5391                                                          PEM(0..1)_CFG_WR.
5392                                                          However, the application must not change this field.
5393                                                          Only one bit can be set at a time:
5394                                                          o Bit 23: Bypass
5395                                                          o Bit 22: Cut-through
5396                                                          o Bit 21: Store-and-forward */
5397         uint32_t reserved_20_20               : 1;
5398         uint32_t header_credits               : 8;  /**< VC0 Posted Header Credits
5399                                                          The number of initial Posted header credits for VC0, used for
5400                                                          all receive queue buffer configurations.
5401                                                          This field is writable through PEM(0..1)_CFG_WR.
5402                                                          However, the application must not change this field. */
5403         uint32_t data_credits                 : 12; /**< VC0 Posted Data Credits
5404                                                          The number of initial Posted data credits for VC0, used for all
5405                                                          receive queue buffer configurations.
5406                                                          This field is writable through PEM(0..1)_CFG_WR.
5407                                                          However, the application must not change this field. */
5408 #else
5409         uint32_t data_credits                 : 12;
5410         uint32_t header_credits               : 8;
5411         uint32_t reserved_20_20               : 1;
5412         uint32_t queue_mode                   : 3;
5413         uint32_t reserved_24_29               : 6;
5414         uint32_t type_ordering                : 1;
5415         uint32_t rx_queue_order               : 1;
5416 #endif
5417         } s;
5418         struct cvmx_pciercx_cfg466_s          cn52xx;
5419         struct cvmx_pciercx_cfg466_s          cn52xxp1;
5420         struct cvmx_pciercx_cfg466_s          cn56xx;
5421         struct cvmx_pciercx_cfg466_s          cn56xxp1;
5422         struct cvmx_pciercx_cfg466_s          cn61xx;
5423         struct cvmx_pciercx_cfg466_s          cn63xx;
5424         struct cvmx_pciercx_cfg466_s          cn63xxp1;
5425         struct cvmx_pciercx_cfg466_s          cn66xx;
5426         struct cvmx_pciercx_cfg466_s          cn68xx;
5427         struct cvmx_pciercx_cfg466_s          cn68xxp1;
5428         struct cvmx_pciercx_cfg466_s          cnf71xx;
5429 };
5430 typedef union cvmx_pciercx_cfg466 cvmx_pciercx_cfg466_t;
5431
5432 /**
5433  * cvmx_pcierc#_cfg467
5434  *
5435  * PCIE_CFG467 = Four hundred sixty-eighth 32-bits of PCIE type 1 config space
5436  * (VC0 Non-Posted Receive Queue Control)
5437  */
5438 union cvmx_pciercx_cfg467 {
5439         uint32_t u32;
5440         struct cvmx_pciercx_cfg467_s {
5441 #ifdef __BIG_ENDIAN_BITFIELD
5442         uint32_t reserved_24_31               : 8;
5443         uint32_t queue_mode                   : 3;  /**< VC0 Non-Posted TLP Queue Mode
5444                                                          The operating mode of the Non-Posted receive queue for VC0,
5445                                                          used only in the segmented-buffer configuration, writable
5446                                                          through PEM(0..1)_CFG_WR.
5447                                                          Only one bit can be set at a time:
5448                                                          o Bit 23: Bypass
5449                                                          o Bit 22: Cut-through
5450                                                          o Bit 21: Store-and-forward
5451                                                          However, the application must not change this field. */
5452         uint32_t reserved_20_20               : 1;
5453         uint32_t header_credits               : 8;  /**< VC0 Non-Posted Header Credits
5454                                                          The number of initial Non-Posted header credits for VC0, used
5455                                                          for all receive queue buffer configurations.
5456                                                          This field is writable through PEM(0..1)_CFG_WR.
5457                                                          However, the application must not change this field. */
5458         uint32_t data_credits                 : 12; /**< VC0 Non-Posted Data Credits
5459                                                          The number of initial Non-Posted data credits for VC0, used for
5460                                                          all receive queue buffer configurations.
5461                                                          This field is writable through PEM(0..1)_CFG_WR.
5462                                                          However, the application must not change this field. */
5463 #else
5464         uint32_t data_credits                 : 12;
5465         uint32_t header_credits               : 8;
5466         uint32_t reserved_20_20               : 1;
5467         uint32_t queue_mode                   : 3;
5468         uint32_t reserved_24_31               : 8;
5469 #endif
5470         } s;
5471         struct cvmx_pciercx_cfg467_s          cn52xx;
5472         struct cvmx_pciercx_cfg467_s          cn52xxp1;
5473         struct cvmx_pciercx_cfg467_s          cn56xx;
5474         struct cvmx_pciercx_cfg467_s          cn56xxp1;
5475         struct cvmx_pciercx_cfg467_s          cn61xx;
5476         struct cvmx_pciercx_cfg467_s          cn63xx;
5477         struct cvmx_pciercx_cfg467_s          cn63xxp1;
5478         struct cvmx_pciercx_cfg467_s          cn66xx;
5479         struct cvmx_pciercx_cfg467_s          cn68xx;
5480         struct cvmx_pciercx_cfg467_s          cn68xxp1;
5481         struct cvmx_pciercx_cfg467_s          cnf71xx;
5482 };
5483 typedef union cvmx_pciercx_cfg467 cvmx_pciercx_cfg467_t;
5484
5485 /**
5486  * cvmx_pcierc#_cfg468
5487  *
5488  * PCIE_CFG468 = Four hundred sixty-ninth 32-bits of PCIE type 1 config space
5489  * (VC0 Completion Receive Queue Control)
5490  */
5491 union cvmx_pciercx_cfg468 {
5492         uint32_t u32;
5493         struct cvmx_pciercx_cfg468_s {
5494 #ifdef __BIG_ENDIAN_BITFIELD
5495         uint32_t reserved_24_31               : 8;
5496         uint32_t queue_mode                   : 3;  /**< VC0 Completion TLP Queue Mode
5497                                                          The operating mode of the Completion receive queue for VC0,
5498                                                          used only in the segmented-buffer configuration, writable
5499                                                          through PEM(0..1)_CFG_WR.
5500                                                          Only one bit can be set at a time:
5501                                                          o Bit 23: Bypass
5502                                                          o Bit 22: Cut-through
5503                                                          o Bit 21: Store-and-forward
5504                                                          However, the application must not change this field. */
5505         uint32_t reserved_20_20               : 1;
5506         uint32_t header_credits               : 8;  /**< VC0 Completion Header Credits
5507                                                          The number of initial Completion header credits for VC0, used
5508                                                          for all receive queue buffer configurations.
5509                                                          This field is writable through PEM(0..1)_CFG_WR.
5510                                                          However, the application must not change this field. */
5511         uint32_t data_credits                 : 12; /**< VC0 Completion Data Credits
5512                                                          The number of initial Completion data credits for VC0, used for
5513                                                          all receive queue buffer configurations.
5514                                                          This field is writable through PEM(0..1)_CFG_WR.
5515                                                          However, the application must not change this field. */
5516 #else
5517         uint32_t data_credits                 : 12;
5518         uint32_t header_credits               : 8;
5519         uint32_t reserved_20_20               : 1;
5520         uint32_t queue_mode                   : 3;
5521         uint32_t reserved_24_31               : 8;
5522 #endif
5523         } s;
5524         struct cvmx_pciercx_cfg468_s          cn52xx;
5525         struct cvmx_pciercx_cfg468_s          cn52xxp1;
5526         struct cvmx_pciercx_cfg468_s          cn56xx;
5527         struct cvmx_pciercx_cfg468_s          cn56xxp1;
5528         struct cvmx_pciercx_cfg468_s          cn61xx;
5529         struct cvmx_pciercx_cfg468_s          cn63xx;
5530         struct cvmx_pciercx_cfg468_s          cn63xxp1;
5531         struct cvmx_pciercx_cfg468_s          cn66xx;
5532         struct cvmx_pciercx_cfg468_s          cn68xx;
5533         struct cvmx_pciercx_cfg468_s          cn68xxp1;
5534         struct cvmx_pciercx_cfg468_s          cnf71xx;
5535 };
5536 typedef union cvmx_pciercx_cfg468 cvmx_pciercx_cfg468_t;
5537
5538 /**
5539  * cvmx_pcierc#_cfg490
5540  *
5541  * PCIE_CFG490 = Four hundred ninety-first 32-bits of PCIE type 1 config space
5542  * (VC0 Posted Buffer Depth)
5543  */
5544 union cvmx_pciercx_cfg490 {
5545         uint32_t u32;
5546         struct cvmx_pciercx_cfg490_s {
5547 #ifdef __BIG_ENDIAN_BITFIELD
5548         uint32_t reserved_26_31               : 6;
5549         uint32_t header_depth                 : 10; /**< VC0 Posted Header Queue Depth
5550                                                          Sets the number of entries in the Posted header queue for VC0
5551                                                          when using the segmented-buffer configuration, writable through
5552                                                          PEM(0..1)_CFG_WR.
5553                                                          However, the application must not change this field. */
5554         uint32_t reserved_14_15               : 2;
5555         uint32_t data_depth                   : 14; /**< VC0 Posted Data Queue Depth
5556                                                          Sets the number of entries in the Posted data queue for VC0
5557                                                          when using the segmented-buffer configuration, writable
5558                                                          through PEM(0..1)_CFG_WR.
5559                                                          However, the application must not change this field. */
5560 #else
5561         uint32_t data_depth                   : 14;
5562         uint32_t reserved_14_15               : 2;
5563         uint32_t header_depth                 : 10;
5564         uint32_t reserved_26_31               : 6;
5565 #endif
5566         } s;
5567         struct cvmx_pciercx_cfg490_s          cn52xx;
5568         struct cvmx_pciercx_cfg490_s          cn52xxp1;
5569         struct cvmx_pciercx_cfg490_s          cn56xx;
5570         struct cvmx_pciercx_cfg490_s          cn56xxp1;
5571         struct cvmx_pciercx_cfg490_s          cn61xx;
5572         struct cvmx_pciercx_cfg490_s          cn63xx;
5573         struct cvmx_pciercx_cfg490_s          cn63xxp1;
5574         struct cvmx_pciercx_cfg490_s          cn66xx;
5575         struct cvmx_pciercx_cfg490_s          cn68xx;
5576         struct cvmx_pciercx_cfg490_s          cn68xxp1;
5577         struct cvmx_pciercx_cfg490_s          cnf71xx;
5578 };
5579 typedef union cvmx_pciercx_cfg490 cvmx_pciercx_cfg490_t;
5580
5581 /**
5582  * cvmx_pcierc#_cfg491
5583  *
5584  * PCIE_CFG491 = Four hundred ninety-second 32-bits of PCIE type 1 config space
5585  * (VC0 Non-Posted Buffer Depth)
5586  */
5587 union cvmx_pciercx_cfg491 {
5588         uint32_t u32;
5589         struct cvmx_pciercx_cfg491_s {
5590 #ifdef __BIG_ENDIAN_BITFIELD
5591         uint32_t reserved_26_31               : 6;
5592         uint32_t header_depth                 : 10; /**< VC0 Non-Posted Header Queue Depth
5593                                                          Sets the number of entries in the Non-Posted header queue for
5594                                                          VC0 when using the segmented-buffer configuration, writable
5595                                                          through PEM(0..1)_CFG_WR.
5596                                                          However, the application must not change this field. */
5597         uint32_t reserved_14_15               : 2;
5598         uint32_t data_depth                   : 14; /**< VC0 Non-Posted Data Queue Depth
5599                                                          Sets the number of entries in the Non-Posted data queue for VC0
5600                                                          when using the segmented-buffer configuration, writable
5601                                                          through PEM(0..1)_CFG_WR.
5602                                                          However, the application must not change this field. */
5603 #else
5604         uint32_t data_depth                   : 14;
5605         uint32_t reserved_14_15               : 2;
5606         uint32_t header_depth                 : 10;
5607         uint32_t reserved_26_31               : 6;
5608 #endif
5609         } s;
5610         struct cvmx_pciercx_cfg491_s          cn52xx;
5611         struct cvmx_pciercx_cfg491_s          cn52xxp1;
5612         struct cvmx_pciercx_cfg491_s          cn56xx;
5613         struct cvmx_pciercx_cfg491_s          cn56xxp1;
5614         struct cvmx_pciercx_cfg491_s          cn61xx;
5615         struct cvmx_pciercx_cfg491_s          cn63xx;
5616         struct cvmx_pciercx_cfg491_s          cn63xxp1;
5617         struct cvmx_pciercx_cfg491_s          cn66xx;
5618         struct cvmx_pciercx_cfg491_s          cn68xx;
5619         struct cvmx_pciercx_cfg491_s          cn68xxp1;
5620         struct cvmx_pciercx_cfg491_s          cnf71xx;
5621 };
5622 typedef union cvmx_pciercx_cfg491 cvmx_pciercx_cfg491_t;
5623
5624 /**
5625  * cvmx_pcierc#_cfg492
5626  *
5627  * PCIE_CFG492 = Four hundred ninety-third 32-bits of PCIE type 1 config space
5628  * (VC0 Completion Buffer Depth)
5629  */
5630 union cvmx_pciercx_cfg492 {
5631         uint32_t u32;
5632         struct cvmx_pciercx_cfg492_s {
5633 #ifdef __BIG_ENDIAN_BITFIELD
5634         uint32_t reserved_26_31               : 6;
5635         uint32_t header_depth                 : 10; /**< VC0 Completion Header Queue Depth
5636                                                          Sets the number of entries in the Completion header queue for
5637                                                          VC0 when using the segmented-buffer configuration, writable
5638                                                          through PEM(0..1)_CFG_WR.
5639                                                          However, the application must not change this field. */
5640         uint32_t reserved_14_15               : 2;
5641         uint32_t data_depth                   : 14; /**< VC0 Completion Data Queue Depth
5642                                                          Sets the number of entries in the Completion data queue for VC0
5643                                                          when using the segmented-buffer configuration, writable
5644                                                          through PEM(0..1)_CFG_WR.
5645                                                          However, the application must not change this field. */
5646 #else
5647         uint32_t data_depth                   : 14;
5648         uint32_t reserved_14_15               : 2;
5649         uint32_t header_depth                 : 10;
5650         uint32_t reserved_26_31               : 6;
5651 #endif
5652         } s;
5653         struct cvmx_pciercx_cfg492_s          cn52xx;
5654         struct cvmx_pciercx_cfg492_s          cn52xxp1;
5655         struct cvmx_pciercx_cfg492_s          cn56xx;
5656         struct cvmx_pciercx_cfg492_s          cn56xxp1;
5657         struct cvmx_pciercx_cfg492_s          cn61xx;
5658         struct cvmx_pciercx_cfg492_s          cn63xx;
5659         struct cvmx_pciercx_cfg492_s          cn63xxp1;
5660         struct cvmx_pciercx_cfg492_s          cn66xx;
5661         struct cvmx_pciercx_cfg492_s          cn68xx;
5662         struct cvmx_pciercx_cfg492_s          cn68xxp1;
5663         struct cvmx_pciercx_cfg492_s          cnf71xx;
5664 };
5665 typedef union cvmx_pciercx_cfg492 cvmx_pciercx_cfg492_t;
5666
5667 /**
5668  * cvmx_pcierc#_cfg515
5669  *
5670  * PCIE_CFG515 = Five hundred sixteenth 32-bits of PCIE type 1 config space
5671  * (Port Logic Register (Gen2))
5672  */
5673 union cvmx_pciercx_cfg515 {
5674         uint32_t u32;
5675         struct cvmx_pciercx_cfg515_s {
5676 #ifdef __BIG_ENDIAN_BITFIELD
5677         uint32_t reserved_21_31               : 11;
5678         uint32_t s_d_e                        : 1;  /**< SEL_DE_EMPHASIS
5679                                                          Used to set the de-emphasis level for upstream ports. */
5680         uint32_t ctcrb                        : 1;  /**< Config Tx Compliance Receive Bit
5681                                                          When set to 1, signals LTSSM to transmit TS ordered sets
5682                                                          with the compliance receive bit assert (equal to 1). */
5683         uint32_t cpyts                        : 1;  /**< Config PHY Tx Swing
5684                                                          Indicates the voltage level the PHY should drive. When set to
5685                                                          1, indicates Full Swing. When set to 0, indicates Low Swing */
5686         uint32_t dsc                          : 1;  /**< Directed Speed Change
5687                                                          o a write of '1' will initiate a speed change
5688                                                          o always reads a zero */
5689         uint32_t le                           : 9;  /**< Lane Enable
5690                                                          Indicates the number of lanes to check for exit from electrical
5691                                                          idle in Polling.Active and Polling.Compliance. 1 = x1, 2 = x2,
5692                                                          etc. Used to limit the maximum link width to ignore broken
5693                                                          lanes that detect a receiver, but will not exit electrical
5694                                                          idle and
5695                                                          would otherwise prevent a valid link from being configured. */
5696         uint32_t n_fts                        : 8;  /**< N_FTS
5697                                                          Sets the Number of Fast Training Sequences (N_FTS) that
5698                                                          the core advertises as its N_FTS during GEN2 Link training.
5699                                                          This value is used to inform the Link partner about the PHYs
5700                                                          ability to recover synchronization after a low power state.
5701                                                          Note: Do not set N_FTS to zero; doing so can cause the
5702                                                                LTSSM to go into the recovery state when exiting from
5703                                                                L0s. */
5704 #else
5705         uint32_t n_fts                        : 8;
5706         uint32_t le                           : 9;
5707         uint32_t dsc                          : 1;
5708         uint32_t cpyts                        : 1;
5709         uint32_t ctcrb                        : 1;
5710         uint32_t s_d_e                        : 1;
5711         uint32_t reserved_21_31               : 11;
5712 #endif
5713         } s;
5714         struct cvmx_pciercx_cfg515_s          cn61xx;
5715         struct cvmx_pciercx_cfg515_s          cn63xx;
5716         struct cvmx_pciercx_cfg515_s          cn63xxp1;
5717         struct cvmx_pciercx_cfg515_s          cn66xx;
5718         struct cvmx_pciercx_cfg515_s          cn68xx;
5719         struct cvmx_pciercx_cfg515_s          cn68xxp1;
5720         struct cvmx_pciercx_cfg515_s          cnf71xx;
5721 };
5722 typedef union cvmx_pciercx_cfg515 cvmx_pciercx_cfg515_t;
5723
5724 /**
5725  * cvmx_pcierc#_cfg516
5726  *
5727  * PCIE_CFG516 = Five hundred seventeenth 32-bits of PCIE type 1 config space
5728  * (PHY Status Register)
5729  */
5730 union cvmx_pciercx_cfg516 {
5731         uint32_t u32;
5732         struct cvmx_pciercx_cfg516_s {
5733 #ifdef __BIG_ENDIAN_BITFIELD
5734         uint32_t phy_stat                     : 32; /**< PHY Status */
5735 #else
5736         uint32_t phy_stat                     : 32;
5737 #endif
5738         } s;
5739         struct cvmx_pciercx_cfg516_s          cn52xx;
5740         struct cvmx_pciercx_cfg516_s          cn52xxp1;
5741         struct cvmx_pciercx_cfg516_s          cn56xx;
5742         struct cvmx_pciercx_cfg516_s          cn56xxp1;
5743         struct cvmx_pciercx_cfg516_s          cn61xx;
5744         struct cvmx_pciercx_cfg516_s          cn63xx;
5745         struct cvmx_pciercx_cfg516_s          cn63xxp1;
5746         struct cvmx_pciercx_cfg516_s          cn66xx;
5747         struct cvmx_pciercx_cfg516_s          cn68xx;
5748         struct cvmx_pciercx_cfg516_s          cn68xxp1;
5749         struct cvmx_pciercx_cfg516_s          cnf71xx;
5750 };
5751 typedef union cvmx_pciercx_cfg516 cvmx_pciercx_cfg516_t;
5752
5753 /**
5754  * cvmx_pcierc#_cfg517
5755  *
5756  * PCIE_CFG517 = Five hundred eighteenth 32-bits of PCIE type 1 config space
5757  * (PHY Control Register)
5758  */
5759 union cvmx_pciercx_cfg517 {
5760         uint32_t u32;
5761         struct cvmx_pciercx_cfg517_s {
5762 #ifdef __BIG_ENDIAN_BITFIELD
5763         uint32_t phy_ctrl                     : 32; /**< PHY Control */
5764 #else
5765         uint32_t phy_ctrl                     : 32;
5766 #endif
5767         } s;
5768         struct cvmx_pciercx_cfg517_s          cn52xx;
5769         struct cvmx_pciercx_cfg517_s          cn52xxp1;
5770         struct cvmx_pciercx_cfg517_s          cn56xx;
5771         struct cvmx_pciercx_cfg517_s          cn56xxp1;
5772         struct cvmx_pciercx_cfg517_s          cn61xx;
5773         struct cvmx_pciercx_cfg517_s          cn63xx;
5774         struct cvmx_pciercx_cfg517_s          cn63xxp1;
5775         struct cvmx_pciercx_cfg517_s          cn66xx;
5776         struct cvmx_pciercx_cfg517_s          cn68xx;
5777         struct cvmx_pciercx_cfg517_s          cn68xxp1;
5778         struct cvmx_pciercx_cfg517_s          cnf71xx;
5779 };
5780 typedef union cvmx_pciercx_cfg517 cvmx_pciercx_cfg517_t;
5781
5782 #endif