1 /***********************license start***************
2 * Copyright (c) 2003-2010 Cavium Networks (support@cavium.com). All rights
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
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.
18 * * Neither the name of Cavium Networks nor the names of
19 * its contributors may be used to endorse or promote products
20 * derived from this software without specific prior written
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
28 * TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
29 * AND WITH ALL FAULTS AND CAVIUM NETWORKS 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**************************************/
44 * Configuration and status register (CSR) type definitions for
47 * This file is auto generated. Do not edit.
52 #ifndef __CVMX_PCIEEPX_TYPEDEFS_H__
53 #define __CVMX_PCIEEPX_TYPEDEFS_H__
55 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
56 static inline uint64_t CVMX_PCIEEPX_CFG000(unsigned long block_id)
59 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
60 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
61 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
62 cvmx_warn("CVMX_PCIEEPX_CFG000(%lu) is invalid on this chip\n", block_id);
63 return 0x0000000000000000ull;
66 #define CVMX_PCIEEPX_CFG000(block_id) (0x0000000000000000ull)
68 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
69 static inline uint64_t CVMX_PCIEEPX_CFG001(unsigned long block_id)
72 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
73 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
74 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
75 cvmx_warn("CVMX_PCIEEPX_CFG001(%lu) is invalid on this chip\n", block_id);
76 return 0x0000000000000004ull;
79 #define CVMX_PCIEEPX_CFG001(block_id) (0x0000000000000004ull)
81 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
82 static inline uint64_t CVMX_PCIEEPX_CFG002(unsigned long block_id)
85 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
86 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
87 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
88 cvmx_warn("CVMX_PCIEEPX_CFG002(%lu) is invalid on this chip\n", block_id);
89 return 0x0000000000000008ull;
92 #define CVMX_PCIEEPX_CFG002(block_id) (0x0000000000000008ull)
94 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
95 static inline uint64_t CVMX_PCIEEPX_CFG003(unsigned long block_id)
98 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
99 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
100 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
101 cvmx_warn("CVMX_PCIEEPX_CFG003(%lu) is invalid on this chip\n", block_id);
102 return 0x000000000000000Cull;
105 #define CVMX_PCIEEPX_CFG003(block_id) (0x000000000000000Cull)
107 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
108 static inline uint64_t CVMX_PCIEEPX_CFG004(unsigned long block_id)
111 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
112 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
113 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
114 cvmx_warn("CVMX_PCIEEPX_CFG004(%lu) is invalid on this chip\n", block_id);
115 return 0x0000000000000010ull;
118 #define CVMX_PCIEEPX_CFG004(block_id) (0x0000000000000010ull)
120 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
121 static inline uint64_t CVMX_PCIEEPX_CFG004_MASK(unsigned long block_id)
124 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
125 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
126 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
127 cvmx_warn("CVMX_PCIEEPX_CFG004_MASK(%lu) is invalid on this chip\n", block_id);
128 return 0x0000000080000010ull;
131 #define CVMX_PCIEEPX_CFG004_MASK(block_id) (0x0000000080000010ull)
133 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
134 static inline uint64_t CVMX_PCIEEPX_CFG005(unsigned long block_id)
137 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
138 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
139 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
140 cvmx_warn("CVMX_PCIEEPX_CFG005(%lu) is invalid on this chip\n", block_id);
141 return 0x0000000000000014ull;
144 #define CVMX_PCIEEPX_CFG005(block_id) (0x0000000000000014ull)
146 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
147 static inline uint64_t CVMX_PCIEEPX_CFG005_MASK(unsigned long block_id)
150 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
151 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
152 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
153 cvmx_warn("CVMX_PCIEEPX_CFG005_MASK(%lu) is invalid on this chip\n", block_id);
154 return 0x0000000080000014ull;
157 #define CVMX_PCIEEPX_CFG005_MASK(block_id) (0x0000000080000014ull)
159 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
160 static inline uint64_t CVMX_PCIEEPX_CFG006(unsigned long block_id)
163 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
164 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
165 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
166 cvmx_warn("CVMX_PCIEEPX_CFG006(%lu) is invalid on this chip\n", block_id);
167 return 0x0000000000000018ull;
170 #define CVMX_PCIEEPX_CFG006(block_id) (0x0000000000000018ull)
172 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
173 static inline uint64_t CVMX_PCIEEPX_CFG006_MASK(unsigned long block_id)
176 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
177 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
178 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
179 cvmx_warn("CVMX_PCIEEPX_CFG006_MASK(%lu) is invalid on this chip\n", block_id);
180 return 0x0000000080000018ull;
183 #define CVMX_PCIEEPX_CFG006_MASK(block_id) (0x0000000080000018ull)
185 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
186 static inline uint64_t CVMX_PCIEEPX_CFG007(unsigned long block_id)
189 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
190 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
191 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
192 cvmx_warn("CVMX_PCIEEPX_CFG007(%lu) is invalid on this chip\n", block_id);
193 return 0x000000000000001Cull;
196 #define CVMX_PCIEEPX_CFG007(block_id) (0x000000000000001Cull)
198 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
199 static inline uint64_t CVMX_PCIEEPX_CFG007_MASK(unsigned long block_id)
202 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
203 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
204 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
205 cvmx_warn("CVMX_PCIEEPX_CFG007_MASK(%lu) is invalid on this chip\n", block_id);
206 return 0x000000008000001Cull;
209 #define CVMX_PCIEEPX_CFG007_MASK(block_id) (0x000000008000001Cull)
211 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
212 static inline uint64_t CVMX_PCIEEPX_CFG008(unsigned long block_id)
215 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
216 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
217 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
218 cvmx_warn("CVMX_PCIEEPX_CFG008(%lu) is invalid on this chip\n", block_id);
219 return 0x0000000000000020ull;
222 #define CVMX_PCIEEPX_CFG008(block_id) (0x0000000000000020ull)
224 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
225 static inline uint64_t CVMX_PCIEEPX_CFG008_MASK(unsigned long block_id)
228 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
229 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
230 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
231 cvmx_warn("CVMX_PCIEEPX_CFG008_MASK(%lu) is invalid on this chip\n", block_id);
232 return 0x0000000080000020ull;
235 #define CVMX_PCIEEPX_CFG008_MASK(block_id) (0x0000000080000020ull)
237 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
238 static inline uint64_t CVMX_PCIEEPX_CFG009(unsigned long block_id)
241 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
242 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
243 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
244 cvmx_warn("CVMX_PCIEEPX_CFG009(%lu) is invalid on this chip\n", block_id);
245 return 0x0000000000000024ull;
248 #define CVMX_PCIEEPX_CFG009(block_id) (0x0000000000000024ull)
250 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
251 static inline uint64_t CVMX_PCIEEPX_CFG009_MASK(unsigned long block_id)
254 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
255 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
256 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
257 cvmx_warn("CVMX_PCIEEPX_CFG009_MASK(%lu) is invalid on this chip\n", block_id);
258 return 0x0000000080000024ull;
261 #define CVMX_PCIEEPX_CFG009_MASK(block_id) (0x0000000080000024ull)
263 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
264 static inline uint64_t CVMX_PCIEEPX_CFG010(unsigned long block_id)
267 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
268 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
269 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
270 cvmx_warn("CVMX_PCIEEPX_CFG010(%lu) is invalid on this chip\n", block_id);
271 return 0x0000000000000028ull;
274 #define CVMX_PCIEEPX_CFG010(block_id) (0x0000000000000028ull)
276 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
277 static inline uint64_t CVMX_PCIEEPX_CFG011(unsigned long block_id)
280 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
281 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
282 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
283 cvmx_warn("CVMX_PCIEEPX_CFG011(%lu) is invalid on this chip\n", block_id);
284 return 0x000000000000002Cull;
287 #define CVMX_PCIEEPX_CFG011(block_id) (0x000000000000002Cull)
289 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
290 static inline uint64_t CVMX_PCIEEPX_CFG012(unsigned long block_id)
293 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
294 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
295 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
296 cvmx_warn("CVMX_PCIEEPX_CFG012(%lu) is invalid on this chip\n", block_id);
297 return 0x0000000000000030ull;
300 #define CVMX_PCIEEPX_CFG012(block_id) (0x0000000000000030ull)
302 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
303 static inline uint64_t CVMX_PCIEEPX_CFG012_MASK(unsigned long block_id)
306 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
307 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
308 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
309 cvmx_warn("CVMX_PCIEEPX_CFG012_MASK(%lu) is invalid on this chip\n", block_id);
310 return 0x0000000080000030ull;
313 #define CVMX_PCIEEPX_CFG012_MASK(block_id) (0x0000000080000030ull)
315 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
316 static inline uint64_t CVMX_PCIEEPX_CFG013(unsigned long block_id)
319 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
320 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
321 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
322 cvmx_warn("CVMX_PCIEEPX_CFG013(%lu) is invalid on this chip\n", block_id);
323 return 0x0000000000000034ull;
326 #define CVMX_PCIEEPX_CFG013(block_id) (0x0000000000000034ull)
328 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
329 static inline uint64_t CVMX_PCIEEPX_CFG015(unsigned long block_id)
332 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
333 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
334 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
335 cvmx_warn("CVMX_PCIEEPX_CFG015(%lu) is invalid on this chip\n", block_id);
336 return 0x000000000000003Cull;
339 #define CVMX_PCIEEPX_CFG015(block_id) (0x000000000000003Cull)
341 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
342 static inline uint64_t CVMX_PCIEEPX_CFG016(unsigned long block_id)
345 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
346 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
347 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
348 cvmx_warn("CVMX_PCIEEPX_CFG016(%lu) is invalid on this chip\n", block_id);
349 return 0x0000000000000040ull;
352 #define CVMX_PCIEEPX_CFG016(block_id) (0x0000000000000040ull)
354 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
355 static inline uint64_t CVMX_PCIEEPX_CFG017(unsigned long block_id)
358 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
359 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
360 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
361 cvmx_warn("CVMX_PCIEEPX_CFG017(%lu) is invalid on this chip\n", block_id);
362 return 0x0000000000000044ull;
365 #define CVMX_PCIEEPX_CFG017(block_id) (0x0000000000000044ull)
367 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
368 static inline uint64_t CVMX_PCIEEPX_CFG020(unsigned long block_id)
371 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
372 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
373 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
374 cvmx_warn("CVMX_PCIEEPX_CFG020(%lu) is invalid on this chip\n", block_id);
375 return 0x0000000000000050ull;
378 #define CVMX_PCIEEPX_CFG020(block_id) (0x0000000000000050ull)
380 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
381 static inline uint64_t CVMX_PCIEEPX_CFG021(unsigned long block_id)
384 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
385 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
386 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
387 cvmx_warn("CVMX_PCIEEPX_CFG021(%lu) is invalid on this chip\n", block_id);
388 return 0x0000000000000054ull;
391 #define CVMX_PCIEEPX_CFG021(block_id) (0x0000000000000054ull)
393 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
394 static inline uint64_t CVMX_PCIEEPX_CFG022(unsigned long block_id)
397 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
398 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
399 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
400 cvmx_warn("CVMX_PCIEEPX_CFG022(%lu) is invalid on this chip\n", block_id);
401 return 0x0000000000000058ull;
404 #define CVMX_PCIEEPX_CFG022(block_id) (0x0000000000000058ull)
406 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
407 static inline uint64_t CVMX_PCIEEPX_CFG023(unsigned long block_id)
410 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
411 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
412 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
413 cvmx_warn("CVMX_PCIEEPX_CFG023(%lu) is invalid on this chip\n", block_id);
414 return 0x000000000000005Cull;
417 #define CVMX_PCIEEPX_CFG023(block_id) (0x000000000000005Cull)
419 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
420 static inline uint64_t CVMX_PCIEEPX_CFG028(unsigned long block_id)
423 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
424 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
425 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
426 cvmx_warn("CVMX_PCIEEPX_CFG028(%lu) is invalid on this chip\n", block_id);
427 return 0x0000000000000070ull;
430 #define CVMX_PCIEEPX_CFG028(block_id) (0x0000000000000070ull)
432 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
433 static inline uint64_t CVMX_PCIEEPX_CFG029(unsigned long block_id)
436 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
437 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
438 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
439 cvmx_warn("CVMX_PCIEEPX_CFG029(%lu) is invalid on this chip\n", block_id);
440 return 0x0000000000000074ull;
443 #define CVMX_PCIEEPX_CFG029(block_id) (0x0000000000000074ull)
445 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
446 static inline uint64_t CVMX_PCIEEPX_CFG030(unsigned long block_id)
449 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
450 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
451 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
452 cvmx_warn("CVMX_PCIEEPX_CFG030(%lu) is invalid on this chip\n", block_id);
453 return 0x0000000000000078ull;
456 #define CVMX_PCIEEPX_CFG030(block_id) (0x0000000000000078ull)
458 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
459 static inline uint64_t CVMX_PCIEEPX_CFG031(unsigned long block_id)
462 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
463 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
464 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
465 cvmx_warn("CVMX_PCIEEPX_CFG031(%lu) is invalid on this chip\n", block_id);
466 return 0x000000000000007Cull;
469 #define CVMX_PCIEEPX_CFG031(block_id) (0x000000000000007Cull)
471 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
472 static inline uint64_t CVMX_PCIEEPX_CFG032(unsigned long block_id)
475 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
476 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
477 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
478 cvmx_warn("CVMX_PCIEEPX_CFG032(%lu) is invalid on this chip\n", block_id);
479 return 0x0000000000000080ull;
482 #define CVMX_PCIEEPX_CFG032(block_id) (0x0000000000000080ull)
484 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
485 static inline uint64_t CVMX_PCIEEPX_CFG033(unsigned long block_id)
488 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
489 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
490 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
491 cvmx_warn("CVMX_PCIEEPX_CFG033(%lu) is invalid on this chip\n", block_id);
492 return 0x0000000000000084ull;
495 #define CVMX_PCIEEPX_CFG033(block_id) (0x0000000000000084ull)
497 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
498 static inline uint64_t CVMX_PCIEEPX_CFG034(unsigned long block_id)
501 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
502 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
503 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
504 cvmx_warn("CVMX_PCIEEPX_CFG034(%lu) is invalid on this chip\n", block_id);
505 return 0x0000000000000088ull;
508 #define CVMX_PCIEEPX_CFG034(block_id) (0x0000000000000088ull)
510 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
511 static inline uint64_t CVMX_PCIEEPX_CFG037(unsigned long block_id)
514 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
515 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
516 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
517 cvmx_warn("CVMX_PCIEEPX_CFG037(%lu) is invalid on this chip\n", block_id);
518 return 0x0000000000000094ull;
521 #define CVMX_PCIEEPX_CFG037(block_id) (0x0000000000000094ull)
523 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
524 static inline uint64_t CVMX_PCIEEPX_CFG038(unsigned long block_id)
527 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
528 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
529 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
530 cvmx_warn("CVMX_PCIEEPX_CFG038(%lu) is invalid on this chip\n", block_id);
531 return 0x0000000000000098ull;
534 #define CVMX_PCIEEPX_CFG038(block_id) (0x0000000000000098ull)
536 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
537 static inline uint64_t CVMX_PCIEEPX_CFG039(unsigned long block_id)
540 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
541 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
542 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
543 cvmx_warn("CVMX_PCIEEPX_CFG039(%lu) is invalid on this chip\n", block_id);
544 return 0x000000000000009Cull;
547 #define CVMX_PCIEEPX_CFG039(block_id) (0x000000000000009Cull)
549 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
550 static inline uint64_t CVMX_PCIEEPX_CFG040(unsigned long block_id)
553 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
554 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
555 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
556 cvmx_warn("CVMX_PCIEEPX_CFG040(%lu) is invalid on this chip\n", block_id);
557 return 0x00000000000000A0ull;
560 #define CVMX_PCIEEPX_CFG040(block_id) (0x00000000000000A0ull)
562 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
563 static inline uint64_t CVMX_PCIEEPX_CFG041(unsigned long block_id)
566 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
567 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
568 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
569 cvmx_warn("CVMX_PCIEEPX_CFG041(%lu) is invalid on this chip\n", block_id);
570 return 0x00000000000000A4ull;
573 #define CVMX_PCIEEPX_CFG041(block_id) (0x00000000000000A4ull)
575 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
576 static inline uint64_t CVMX_PCIEEPX_CFG042(unsigned long block_id)
579 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
580 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
581 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
582 cvmx_warn("CVMX_PCIEEPX_CFG042(%lu) is invalid on this chip\n", block_id);
583 return 0x00000000000000A8ull;
586 #define CVMX_PCIEEPX_CFG042(block_id) (0x00000000000000A8ull)
588 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
589 static inline uint64_t CVMX_PCIEEPX_CFG064(unsigned long block_id)
592 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
593 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
594 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
595 cvmx_warn("CVMX_PCIEEPX_CFG064(%lu) is invalid on this chip\n", block_id);
596 return 0x0000000000000100ull;
599 #define CVMX_PCIEEPX_CFG064(block_id) (0x0000000000000100ull)
601 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
602 static inline uint64_t CVMX_PCIEEPX_CFG065(unsigned long block_id)
605 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
606 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
607 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
608 cvmx_warn("CVMX_PCIEEPX_CFG065(%lu) is invalid on this chip\n", block_id);
609 return 0x0000000000000104ull;
612 #define CVMX_PCIEEPX_CFG065(block_id) (0x0000000000000104ull)
614 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
615 static inline uint64_t CVMX_PCIEEPX_CFG066(unsigned long block_id)
618 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
619 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
620 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
621 cvmx_warn("CVMX_PCIEEPX_CFG066(%lu) is invalid on this chip\n", block_id);
622 return 0x0000000000000108ull;
625 #define CVMX_PCIEEPX_CFG066(block_id) (0x0000000000000108ull)
627 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
628 static inline uint64_t CVMX_PCIEEPX_CFG067(unsigned long block_id)
631 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
632 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
633 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
634 cvmx_warn("CVMX_PCIEEPX_CFG067(%lu) is invalid on this chip\n", block_id);
635 return 0x000000000000010Cull;
638 #define CVMX_PCIEEPX_CFG067(block_id) (0x000000000000010Cull)
640 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
641 static inline uint64_t CVMX_PCIEEPX_CFG068(unsigned long block_id)
644 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
645 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
646 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
647 cvmx_warn("CVMX_PCIEEPX_CFG068(%lu) is invalid on this chip\n", block_id);
648 return 0x0000000000000110ull;
651 #define CVMX_PCIEEPX_CFG068(block_id) (0x0000000000000110ull)
653 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
654 static inline uint64_t CVMX_PCIEEPX_CFG069(unsigned long block_id)
657 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
658 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
659 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
660 cvmx_warn("CVMX_PCIEEPX_CFG069(%lu) is invalid on this chip\n", block_id);
661 return 0x0000000000000114ull;
664 #define CVMX_PCIEEPX_CFG069(block_id) (0x0000000000000114ull)
666 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
667 static inline uint64_t CVMX_PCIEEPX_CFG070(unsigned long block_id)
670 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
671 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
672 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
673 cvmx_warn("CVMX_PCIEEPX_CFG070(%lu) is invalid on this chip\n", block_id);
674 return 0x0000000000000118ull;
677 #define CVMX_PCIEEPX_CFG070(block_id) (0x0000000000000118ull)
679 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
680 static inline uint64_t CVMX_PCIEEPX_CFG071(unsigned long block_id)
683 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
684 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
685 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
686 cvmx_warn("CVMX_PCIEEPX_CFG071(%lu) is invalid on this chip\n", block_id);
687 return 0x000000000000011Cull;
690 #define CVMX_PCIEEPX_CFG071(block_id) (0x000000000000011Cull)
692 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
693 static inline uint64_t CVMX_PCIEEPX_CFG072(unsigned long block_id)
696 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
697 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
698 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
699 cvmx_warn("CVMX_PCIEEPX_CFG072(%lu) is invalid on this chip\n", block_id);
700 return 0x0000000000000120ull;
703 #define CVMX_PCIEEPX_CFG072(block_id) (0x0000000000000120ull)
705 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
706 static inline uint64_t CVMX_PCIEEPX_CFG073(unsigned long block_id)
709 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
710 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
711 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
712 cvmx_warn("CVMX_PCIEEPX_CFG073(%lu) is invalid on this chip\n", block_id);
713 return 0x0000000000000124ull;
716 #define CVMX_PCIEEPX_CFG073(block_id) (0x0000000000000124ull)
718 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
719 static inline uint64_t CVMX_PCIEEPX_CFG074(unsigned long block_id)
722 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
723 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
724 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
725 cvmx_warn("CVMX_PCIEEPX_CFG074(%lu) is invalid on this chip\n", block_id);
726 return 0x0000000000000128ull;
729 #define CVMX_PCIEEPX_CFG074(block_id) (0x0000000000000128ull)
731 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
732 static inline uint64_t CVMX_PCIEEPX_CFG448(unsigned long block_id)
735 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
736 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
737 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
738 cvmx_warn("CVMX_PCIEEPX_CFG448(%lu) is invalid on this chip\n", block_id);
739 return 0x0000000000000700ull;
742 #define CVMX_PCIEEPX_CFG448(block_id) (0x0000000000000700ull)
744 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
745 static inline uint64_t CVMX_PCIEEPX_CFG449(unsigned long block_id)
748 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
749 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
750 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
751 cvmx_warn("CVMX_PCIEEPX_CFG449(%lu) is invalid on this chip\n", block_id);
752 return 0x0000000000000704ull;
755 #define CVMX_PCIEEPX_CFG449(block_id) (0x0000000000000704ull)
757 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
758 static inline uint64_t CVMX_PCIEEPX_CFG450(unsigned long block_id)
761 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
762 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
763 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
764 cvmx_warn("CVMX_PCIEEPX_CFG450(%lu) is invalid on this chip\n", block_id);
765 return 0x0000000000000708ull;
768 #define CVMX_PCIEEPX_CFG450(block_id) (0x0000000000000708ull)
770 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
771 static inline uint64_t CVMX_PCIEEPX_CFG451(unsigned long block_id)
774 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
775 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
776 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
777 cvmx_warn("CVMX_PCIEEPX_CFG451(%lu) is invalid on this chip\n", block_id);
778 return 0x000000000000070Cull;
781 #define CVMX_PCIEEPX_CFG451(block_id) (0x000000000000070Cull)
783 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
784 static inline uint64_t CVMX_PCIEEPX_CFG452(unsigned long block_id)
787 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
788 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
789 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
790 cvmx_warn("CVMX_PCIEEPX_CFG452(%lu) is invalid on this chip\n", block_id);
791 return 0x0000000000000710ull;
794 #define CVMX_PCIEEPX_CFG452(block_id) (0x0000000000000710ull)
796 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
797 static inline uint64_t CVMX_PCIEEPX_CFG453(unsigned long block_id)
800 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
801 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
802 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
803 cvmx_warn("CVMX_PCIEEPX_CFG453(%lu) is invalid on this chip\n", block_id);
804 return 0x0000000000000714ull;
807 #define CVMX_PCIEEPX_CFG453(block_id) (0x0000000000000714ull)
809 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
810 static inline uint64_t CVMX_PCIEEPX_CFG454(unsigned long block_id)
813 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
814 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
815 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
816 cvmx_warn("CVMX_PCIEEPX_CFG454(%lu) is invalid on this chip\n", block_id);
817 return 0x0000000000000718ull;
820 #define CVMX_PCIEEPX_CFG454(block_id) (0x0000000000000718ull)
822 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
823 static inline uint64_t CVMX_PCIEEPX_CFG455(unsigned long block_id)
826 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
827 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
828 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
829 cvmx_warn("CVMX_PCIEEPX_CFG455(%lu) is invalid on this chip\n", block_id);
830 return 0x000000000000071Cull;
833 #define CVMX_PCIEEPX_CFG455(block_id) (0x000000000000071Cull)
835 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
836 static inline uint64_t CVMX_PCIEEPX_CFG456(unsigned long block_id)
839 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
840 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
841 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
842 cvmx_warn("CVMX_PCIEEPX_CFG456(%lu) is invalid on this chip\n", block_id);
843 return 0x0000000000000720ull;
846 #define CVMX_PCIEEPX_CFG456(block_id) (0x0000000000000720ull)
848 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
849 static inline uint64_t CVMX_PCIEEPX_CFG458(unsigned long block_id)
852 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
853 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
854 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
855 cvmx_warn("CVMX_PCIEEPX_CFG458(%lu) is invalid on this chip\n", block_id);
856 return 0x0000000000000728ull;
859 #define CVMX_PCIEEPX_CFG458(block_id) (0x0000000000000728ull)
861 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
862 static inline uint64_t CVMX_PCIEEPX_CFG459(unsigned long block_id)
865 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
866 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
867 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
868 cvmx_warn("CVMX_PCIEEPX_CFG459(%lu) is invalid on this chip\n", block_id);
869 return 0x000000000000072Cull;
872 #define CVMX_PCIEEPX_CFG459(block_id) (0x000000000000072Cull)
874 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
875 static inline uint64_t CVMX_PCIEEPX_CFG460(unsigned long block_id)
878 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
879 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
880 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
881 cvmx_warn("CVMX_PCIEEPX_CFG460(%lu) is invalid on this chip\n", block_id);
882 return 0x0000000000000730ull;
885 #define CVMX_PCIEEPX_CFG460(block_id) (0x0000000000000730ull)
887 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
888 static inline uint64_t CVMX_PCIEEPX_CFG461(unsigned long block_id)
891 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
892 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
893 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
894 cvmx_warn("CVMX_PCIEEPX_CFG461(%lu) is invalid on this chip\n", block_id);
895 return 0x0000000000000734ull;
898 #define CVMX_PCIEEPX_CFG461(block_id) (0x0000000000000734ull)
900 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
901 static inline uint64_t CVMX_PCIEEPX_CFG462(unsigned long block_id)
904 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
905 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
906 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
907 cvmx_warn("CVMX_PCIEEPX_CFG462(%lu) is invalid on this chip\n", block_id);
908 return 0x0000000000000738ull;
911 #define CVMX_PCIEEPX_CFG462(block_id) (0x0000000000000738ull)
913 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
914 static inline uint64_t CVMX_PCIEEPX_CFG463(unsigned long block_id)
917 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
918 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
919 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
920 cvmx_warn("CVMX_PCIEEPX_CFG463(%lu) is invalid on this chip\n", block_id);
921 return 0x000000000000073Cull;
924 #define CVMX_PCIEEPX_CFG463(block_id) (0x000000000000073Cull)
926 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
927 static inline uint64_t CVMX_PCIEEPX_CFG464(unsigned long block_id)
930 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
931 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
932 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
933 cvmx_warn("CVMX_PCIEEPX_CFG464(%lu) is invalid on this chip\n", block_id);
934 return 0x0000000000000740ull;
937 #define CVMX_PCIEEPX_CFG464(block_id) (0x0000000000000740ull)
939 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
940 static inline uint64_t CVMX_PCIEEPX_CFG465(unsigned long block_id)
943 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
944 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
945 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
946 cvmx_warn("CVMX_PCIEEPX_CFG465(%lu) is invalid on this chip\n", block_id);
947 return 0x0000000000000744ull;
950 #define CVMX_PCIEEPX_CFG465(block_id) (0x0000000000000744ull)
952 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
953 static inline uint64_t CVMX_PCIEEPX_CFG466(unsigned long block_id)
956 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
957 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
958 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
959 cvmx_warn("CVMX_PCIEEPX_CFG466(%lu) is invalid on this chip\n", block_id);
960 return 0x0000000000000748ull;
963 #define CVMX_PCIEEPX_CFG466(block_id) (0x0000000000000748ull)
965 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
966 static inline uint64_t CVMX_PCIEEPX_CFG467(unsigned long block_id)
969 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
970 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
971 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
972 cvmx_warn("CVMX_PCIEEPX_CFG467(%lu) is invalid on this chip\n", block_id);
973 return 0x000000000000074Cull;
976 #define CVMX_PCIEEPX_CFG467(block_id) (0x000000000000074Cull)
978 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
979 static inline uint64_t CVMX_PCIEEPX_CFG468(unsigned long block_id)
982 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
983 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
984 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
985 cvmx_warn("CVMX_PCIEEPX_CFG468(%lu) is invalid on this chip\n", block_id);
986 return 0x0000000000000750ull;
989 #define CVMX_PCIEEPX_CFG468(block_id) (0x0000000000000750ull)
991 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
992 static inline uint64_t CVMX_PCIEEPX_CFG490(unsigned long block_id)
995 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
996 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
997 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
998 cvmx_warn("CVMX_PCIEEPX_CFG490(%lu) is invalid on this chip\n", block_id);
999 return 0x00000000000007A8ull;
1002 #define CVMX_PCIEEPX_CFG490(block_id) (0x00000000000007A8ull)
1004 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1005 static inline uint64_t CVMX_PCIEEPX_CFG491(unsigned long block_id)
1008 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
1009 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
1010 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
1011 cvmx_warn("CVMX_PCIEEPX_CFG491(%lu) is invalid on this chip\n", block_id);
1012 return 0x00000000000007ACull;
1015 #define CVMX_PCIEEPX_CFG491(block_id) (0x00000000000007ACull)
1017 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1018 static inline uint64_t CVMX_PCIEEPX_CFG492(unsigned long block_id)
1021 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
1022 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
1023 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
1024 cvmx_warn("CVMX_PCIEEPX_CFG492(%lu) is invalid on this chip\n", block_id);
1025 return 0x00000000000007B0ull;
1028 #define CVMX_PCIEEPX_CFG492(block_id) (0x00000000000007B0ull)
1030 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1031 static inline uint64_t CVMX_PCIEEPX_CFG515(unsigned long block_id)
1034 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
1035 cvmx_warn("CVMX_PCIEEPX_CFG515(%lu) is invalid on this chip\n", block_id);
1036 return 0x000000000000080Cull;
1039 #define CVMX_PCIEEPX_CFG515(block_id) (0x000000000000080Cull)
1041 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1042 static inline uint64_t CVMX_PCIEEPX_CFG516(unsigned long block_id)
1045 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
1046 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
1047 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
1048 cvmx_warn("CVMX_PCIEEPX_CFG516(%lu) is invalid on this chip\n", block_id);
1049 return 0x0000000000000810ull;
1052 #define CVMX_PCIEEPX_CFG516(block_id) (0x0000000000000810ull)
1054 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1055 static inline uint64_t CVMX_PCIEEPX_CFG517(unsigned long block_id)
1058 (OCTEON_IS_MODEL(OCTEON_CN52XX) && ((block_id == 0))) ||
1059 (OCTEON_IS_MODEL(OCTEON_CN56XX) && ((block_id == 0))) ||
1060 (OCTEON_IS_MODEL(OCTEON_CN63XX) && ((block_id <= 1)))))
1061 cvmx_warn("CVMX_PCIEEPX_CFG517(%lu) is invalid on this chip\n", block_id);
1062 return 0x0000000000000814ull;
1065 #define CVMX_PCIEEPX_CFG517(block_id) (0x0000000000000814ull)
1069 * cvmx_pcieep#_cfg000
1071 * PCIE_CFG000 = First 32-bits of PCIE type 0 config space (Device ID and Vendor ID Register)
1074 union cvmx_pcieepx_cfg000
1077 struct cvmx_pcieepx_cfg000_s
1079 #if __BYTE_ORDER == __BIG_ENDIAN
1080 uint32_t devid : 16; /**< Device ID, writable through PEM(0..1)_CFG_WR
1081 However, the application must not change this field.
1082 For EEPROM loads also see VENDID of this register. */
1083 uint32_t vendid : 16; /**< Vendor ID, writable through PEM(0..1)_CFG_WR
1084 However, the application must not change this field.
1085 During and EPROM Load is a value of 0xFFFF is loaded to this
1086 field and a value of 0xFFFF is loaded to the DEVID field of
1087 this register, the value will not be loaded, EEPROM load will
1088 stop, and the FastLinkEnable bit will be set in the
1089 PCIE_CFG452 register. */
1091 uint32_t vendid : 16;
1092 uint32_t devid : 16;
1095 struct cvmx_pcieepx_cfg000_s cn52xx;
1096 struct cvmx_pcieepx_cfg000_s cn52xxp1;
1097 struct cvmx_pcieepx_cfg000_s cn56xx;
1098 struct cvmx_pcieepx_cfg000_s cn56xxp1;
1099 struct cvmx_pcieepx_cfg000_s cn63xx;
1100 struct cvmx_pcieepx_cfg000_s cn63xxp1;
1102 typedef union cvmx_pcieepx_cfg000 cvmx_pcieepx_cfg000_t;
1105 * cvmx_pcieep#_cfg001
1107 * PCIE_CFG001 = Second 32-bits of PCIE type 0 config space (Command/Status Register)
1110 union cvmx_pcieepx_cfg001
1113 struct cvmx_pcieepx_cfg001_s
1115 #if __BYTE_ORDER == __BIG_ENDIAN
1116 uint32_t dpe : 1; /**< Detected Parity Error */
1117 uint32_t sse : 1; /**< Signaled System Error */
1118 uint32_t rma : 1; /**< Received Master Abort */
1119 uint32_t rta : 1; /**< Received Target Abort */
1120 uint32_t sta : 1; /**< Signaled Target Abort */
1121 uint32_t devt : 2; /**< DEVSEL Timing
1122 Not applicable for PCI Express. Hardwired to 0. */
1123 uint32_t mdpe : 1; /**< Master Data Parity Error */
1124 uint32_t fbb : 1; /**< Fast Back-to-Back Capable
1125 Not applicable for PCI Express. Hardwired to 0. */
1126 uint32_t reserved_22_22 : 1;
1127 uint32_t m66 : 1; /**< 66 MHz Capable
1128 Not applicable for PCI Express. Hardwired to 0. */
1129 uint32_t cl : 1; /**< Capabilities List
1130 Indicates presence of an extended capability item.
1132 uint32_t i_stat : 1; /**< INTx Status */
1133 uint32_t reserved_11_18 : 8;
1134 uint32_t i_dis : 1; /**< INTx Assertion Disable */
1135 uint32_t fbbe : 1; /**< Fast Back-to-Back Enable
1136 Not applicable for PCI Express. Must be hardwired to 0. */
1137 uint32_t see : 1; /**< SERR# Enable */
1138 uint32_t ids_wcc : 1; /**< IDSEL Stepping/Wait Cycle Control
1139 Not applicable for PCI Express. Must be hardwired to 0 */
1140 uint32_t per : 1; /**< Parity Error Response */
1141 uint32_t vps : 1; /**< VGA Palette Snoop
1142 Not applicable for PCI Express. Must be hardwired to 0. */
1143 uint32_t mwice : 1; /**< Memory Write and Invalidate
1144 Not applicable for PCI Express. Must be hardwired to 0. */
1145 uint32_t scse : 1; /**< Special Cycle Enable
1146 Not applicable for PCI Express. Must be hardwired to 0. */
1147 uint32_t me : 1; /**< Bus Master Enable */
1148 uint32_t msae : 1; /**< Memory Space Enable */
1149 uint32_t isae : 1; /**< I/O Space Enable */
1158 uint32_t ids_wcc : 1;
1162 uint32_t reserved_11_18 : 8;
1163 uint32_t i_stat : 1;
1166 uint32_t reserved_22_22 : 1;
1177 struct cvmx_pcieepx_cfg001_s cn52xx;
1178 struct cvmx_pcieepx_cfg001_s cn52xxp1;
1179 struct cvmx_pcieepx_cfg001_s cn56xx;
1180 struct cvmx_pcieepx_cfg001_s cn56xxp1;
1181 struct cvmx_pcieepx_cfg001_s cn63xx;
1182 struct cvmx_pcieepx_cfg001_s cn63xxp1;
1184 typedef union cvmx_pcieepx_cfg001 cvmx_pcieepx_cfg001_t;
1187 * cvmx_pcieep#_cfg002
1189 * PCIE_CFG002 = Third 32-bits of PCIE type 0 config space (Revision ID/Class Code Register)
1192 union cvmx_pcieepx_cfg002
1195 struct cvmx_pcieepx_cfg002_s
1197 #if __BYTE_ORDER == __BIG_ENDIAN
1198 uint32_t bcc : 8; /**< Base Class Code, writable through PEM(0..1)_CFG_WR
1199 However, the application must not change this field. */
1200 uint32_t sc : 8; /**< Subclass Code, writable through PEM(0..1)_CFG_WR
1201 However, the application must not change this field. */
1202 uint32_t pi : 8; /**< Programming Interface, writable through PEM(0..1)_CFG_WR
1203 However, the application must not change this field. */
1204 uint32_t rid : 8; /**< Revision ID, writable through PEM(0..1)_CFG_WR
1205 However, the application must not change this field. */
1213 struct cvmx_pcieepx_cfg002_s cn52xx;
1214 struct cvmx_pcieepx_cfg002_s cn52xxp1;
1215 struct cvmx_pcieepx_cfg002_s cn56xx;
1216 struct cvmx_pcieepx_cfg002_s cn56xxp1;
1217 struct cvmx_pcieepx_cfg002_s cn63xx;
1218 struct cvmx_pcieepx_cfg002_s cn63xxp1;
1220 typedef union cvmx_pcieepx_cfg002 cvmx_pcieepx_cfg002_t;
1223 * cvmx_pcieep#_cfg003
1225 * PCIE_CFG003 = Fourth 32-bits of PCIE type 0 config space (Cache Line Size/Master Latency Timer/Header Type Register/BIST Register)
1228 union cvmx_pcieepx_cfg003
1231 struct cvmx_pcieepx_cfg003_s
1233 #if __BYTE_ORDER == __BIG_ENDIAN
1234 uint32_t bist : 8; /**< The BIST register functions are not supported.
1235 All 8 bits of the BIST register are hardwired to 0. */
1236 uint32_t mfd : 1; /**< Multi Function Device
1237 The Multi Function Device bit is writable through PEM(0..1)_CFG_WR.
1238 However, this is a single function device. Therefore, the
1239 application must not write a 1 to this bit. */
1240 uint32_t chf : 7; /**< Configuration Header Format
1241 Hardwired to 0 for type 0. */
1242 uint32_t lt : 8; /**< Master Latency Timer
1243 Not applicable for PCI Express, hardwired to 0. */
1244 uint32_t cls : 8; /**< Cache Line Size
1245 The Cache Line Size register is RW for legacy compatibility
1246 purposes and is not applicable to PCI Express device
1248 Writing to the Cache Line Size register does not impact
1258 struct cvmx_pcieepx_cfg003_s cn52xx;
1259 struct cvmx_pcieepx_cfg003_s cn52xxp1;
1260 struct cvmx_pcieepx_cfg003_s cn56xx;
1261 struct cvmx_pcieepx_cfg003_s cn56xxp1;
1262 struct cvmx_pcieepx_cfg003_s cn63xx;
1263 struct cvmx_pcieepx_cfg003_s cn63xxp1;
1265 typedef union cvmx_pcieepx_cfg003 cvmx_pcieepx_cfg003_t;
1268 * cvmx_pcieep#_cfg004
1270 * PCIE_CFG004 = Fifth 32-bits of PCIE type 0 config space (Base Address Register 0 - Low)
1273 union cvmx_pcieepx_cfg004
1276 struct cvmx_pcieepx_cfg004_s
1278 #if __BYTE_ORDER == __BIG_ENDIAN
1279 uint32_t lbab : 18; /**< Lower bits of the BAR 0 base address */
1280 uint32_t reserved_4_13 : 10;
1281 uint32_t pf : 1; /**< Prefetchable
1282 This field is writable through PEM(0..1)_CFG_WR.
1283 However, the application must not change this field. */
1284 uint32_t typ : 2; /**< BAR type
1287 This field is writable through PEM(0..1)_CFG_WR.
1288 However, the application must not change this field. */
1289 uint32_t mspc : 1; /**< Memory Space Indicator
1290 o 0 = BAR 0 is a memory BAR
1291 o 1 = BAR 0 is an I/O BAR
1292 This field is writable through PEM(0..1)_CFG_WR.
1293 However, the application must not change this field. */
1298 uint32_t reserved_4_13 : 10;
1302 struct cvmx_pcieepx_cfg004_s cn52xx;
1303 struct cvmx_pcieepx_cfg004_s cn52xxp1;
1304 struct cvmx_pcieepx_cfg004_s cn56xx;
1305 struct cvmx_pcieepx_cfg004_s cn56xxp1;
1306 struct cvmx_pcieepx_cfg004_s cn63xx;
1307 struct cvmx_pcieepx_cfg004_s cn63xxp1;
1309 typedef union cvmx_pcieepx_cfg004 cvmx_pcieepx_cfg004_t;
1312 * cvmx_pcieep#_cfg004_mask
1314 * PCIE_CFG004_MASK (BAR Mask 0 - Low)
1315 * The BAR 0 Mask register is invisible to host software and not readable from the application.
1316 * The BAR 0 Mask register is only writable through PEM(0..1)_CFG_WR.
1318 union cvmx_pcieepx_cfg004_mask
1321 struct cvmx_pcieepx_cfg004_mask_s
1323 #if __BYTE_ORDER == __BIG_ENDIAN
1324 uint32_t lmask : 31; /**< Bar Mask Low */
1325 uint32_t enb : 1; /**< Bar Enable
1326 o 0: BAR 0 is disabled
1327 o 1: BAR 0 is enabled
1328 Bit 0 is interpreted as BAR Enable when writing to the BAR Mask
1329 register rather than as a mask bit because bit 0 of a BAR is
1330 always masked from writing by host software. Bit 0 must be
1331 written prior to writing the other mask bits. */
1334 uint32_t lmask : 31;
1337 struct cvmx_pcieepx_cfg004_mask_s cn52xx;
1338 struct cvmx_pcieepx_cfg004_mask_s cn52xxp1;
1339 struct cvmx_pcieepx_cfg004_mask_s cn56xx;
1340 struct cvmx_pcieepx_cfg004_mask_s cn56xxp1;
1341 struct cvmx_pcieepx_cfg004_mask_s cn63xx;
1342 struct cvmx_pcieepx_cfg004_mask_s cn63xxp1;
1344 typedef union cvmx_pcieepx_cfg004_mask cvmx_pcieepx_cfg004_mask_t;
1347 * cvmx_pcieep#_cfg005
1349 * PCIE_CFG005 = Sixth 32-bits of PCIE type 0 config space (Base Address Register 0 - High)
1352 union cvmx_pcieepx_cfg005
1355 struct cvmx_pcieepx_cfg005_s
1357 #if __BYTE_ORDER == __BIG_ENDIAN
1358 uint32_t ubab : 32; /**< Contains the upper 32 bits of the BAR 0 base address. */
1363 struct cvmx_pcieepx_cfg005_s cn52xx;
1364 struct cvmx_pcieepx_cfg005_s cn52xxp1;
1365 struct cvmx_pcieepx_cfg005_s cn56xx;
1366 struct cvmx_pcieepx_cfg005_s cn56xxp1;
1367 struct cvmx_pcieepx_cfg005_s cn63xx;
1368 struct cvmx_pcieepx_cfg005_s cn63xxp1;
1370 typedef union cvmx_pcieepx_cfg005 cvmx_pcieepx_cfg005_t;
1373 * cvmx_pcieep#_cfg005_mask
1375 * PCIE_CFG005_MASK = (BAR Mask 0 - High)
1376 * The BAR 0 Mask register is invisible to host software and not readable from the application.
1377 * The BAR 0 Mask register is only writable through PEM(0..1)_CFG_WR.
1379 union cvmx_pcieepx_cfg005_mask
1382 struct cvmx_pcieepx_cfg005_mask_s
1384 #if __BYTE_ORDER == __BIG_ENDIAN
1385 uint32_t umask : 32; /**< Bar Mask High */
1387 uint32_t umask : 32;
1390 struct cvmx_pcieepx_cfg005_mask_s cn52xx;
1391 struct cvmx_pcieepx_cfg005_mask_s cn52xxp1;
1392 struct cvmx_pcieepx_cfg005_mask_s cn56xx;
1393 struct cvmx_pcieepx_cfg005_mask_s cn56xxp1;
1394 struct cvmx_pcieepx_cfg005_mask_s cn63xx;
1395 struct cvmx_pcieepx_cfg005_mask_s cn63xxp1;
1397 typedef union cvmx_pcieepx_cfg005_mask cvmx_pcieepx_cfg005_mask_t;
1400 * cvmx_pcieep#_cfg006
1402 * PCIE_CFG006 = Seventh 32-bits of PCIE type 0 config space (Base Address Register 1 - Low)
1405 union cvmx_pcieepx_cfg006
1408 struct cvmx_pcieepx_cfg006_s
1410 #if __BYTE_ORDER == __BIG_ENDIAN
1411 uint32_t lbab : 6; /**< Lower bits of the BAR 1 base address */
1412 uint32_t reserved_4_25 : 22;
1413 uint32_t pf : 1; /**< Prefetchable
1414 This field is writable through PEM(0..1)_CFG_WR.
1415 However, the application must not change this field. */
1416 uint32_t typ : 2; /**< BAR type
1419 This field is writable through PEM(0..1)_CFG_WR.
1420 However, the application must not change this field. */
1421 uint32_t mspc : 1; /**< Memory Space Indicator
1422 o 0 = BAR 0 is a memory BAR
1423 o 1 = BAR 0 is an I/O BAR
1424 This field is writable through PEM(0..1)_CFG_WR.
1425 However, the application must not change this field. */
1430 uint32_t reserved_4_25 : 22;
1434 struct cvmx_pcieepx_cfg006_s cn52xx;
1435 struct cvmx_pcieepx_cfg006_s cn52xxp1;
1436 struct cvmx_pcieepx_cfg006_s cn56xx;
1437 struct cvmx_pcieepx_cfg006_s cn56xxp1;
1438 struct cvmx_pcieepx_cfg006_s cn63xx;
1439 struct cvmx_pcieepx_cfg006_s cn63xxp1;
1441 typedef union cvmx_pcieepx_cfg006 cvmx_pcieepx_cfg006_t;
1444 * cvmx_pcieep#_cfg006_mask
1446 * PCIE_CFG006_MASK (BAR Mask 1 - Low)
1447 * The BAR 1 Mask register is invisible to host software and not readable from the application.
1448 * The BAR 1 Mask register is only writable through PEM(0..1)_CFG_WR.
1450 union cvmx_pcieepx_cfg006_mask
1453 struct cvmx_pcieepx_cfg006_mask_s
1455 #if __BYTE_ORDER == __BIG_ENDIAN
1456 uint32_t lmask : 31; /**< Bar Mask Low */
1457 uint32_t enb : 1; /**< Bar Enable
1458 o 0: BAR 1 is disabled
1459 o 1: BAR 1 is enabled
1460 Bit 0 is interpreted as BAR Enable when writing to the BAR Mask
1461 register rather than as a mask bit because bit 0 of a BAR is
1462 always masked from writing by host software. Bit 0 must be
1463 written prior to writing the other mask bits. */
1466 uint32_t lmask : 31;
1469 struct cvmx_pcieepx_cfg006_mask_s cn52xx;
1470 struct cvmx_pcieepx_cfg006_mask_s cn52xxp1;
1471 struct cvmx_pcieepx_cfg006_mask_s cn56xx;
1472 struct cvmx_pcieepx_cfg006_mask_s cn56xxp1;
1473 struct cvmx_pcieepx_cfg006_mask_s cn63xx;
1474 struct cvmx_pcieepx_cfg006_mask_s cn63xxp1;
1476 typedef union cvmx_pcieepx_cfg006_mask cvmx_pcieepx_cfg006_mask_t;
1479 * cvmx_pcieep#_cfg007
1481 * PCIE_CFG007 = Eighth 32-bits of PCIE type 0 config space (Base Address Register 1 - High)
1484 union cvmx_pcieepx_cfg007
1487 struct cvmx_pcieepx_cfg007_s
1489 #if __BYTE_ORDER == __BIG_ENDIAN
1490 uint32_t ubab : 32; /**< Contains the upper 32 bits of the BAR 1 base address. */
1495 struct cvmx_pcieepx_cfg007_s cn52xx;
1496 struct cvmx_pcieepx_cfg007_s cn52xxp1;
1497 struct cvmx_pcieepx_cfg007_s cn56xx;
1498 struct cvmx_pcieepx_cfg007_s cn56xxp1;
1499 struct cvmx_pcieepx_cfg007_s cn63xx;
1500 struct cvmx_pcieepx_cfg007_s cn63xxp1;
1502 typedef union cvmx_pcieepx_cfg007 cvmx_pcieepx_cfg007_t;
1505 * cvmx_pcieep#_cfg007_mask
1507 * PCIE_CFG007_MASK (BAR Mask 1 - High)
1508 * The BAR 1 Mask register is invisible to host software and not readable from the application.
1509 * The BAR 1 Mask register is only writable through PEM(0..1)_CFG_WR.
1511 union cvmx_pcieepx_cfg007_mask
1514 struct cvmx_pcieepx_cfg007_mask_s
1516 #if __BYTE_ORDER == __BIG_ENDIAN
1517 uint32_t umask : 32; /**< Bar Mask High */
1519 uint32_t umask : 32;
1522 struct cvmx_pcieepx_cfg007_mask_s cn52xx;
1523 struct cvmx_pcieepx_cfg007_mask_s cn52xxp1;
1524 struct cvmx_pcieepx_cfg007_mask_s cn56xx;
1525 struct cvmx_pcieepx_cfg007_mask_s cn56xxp1;
1526 struct cvmx_pcieepx_cfg007_mask_s cn63xx;
1527 struct cvmx_pcieepx_cfg007_mask_s cn63xxp1;
1529 typedef union cvmx_pcieepx_cfg007_mask cvmx_pcieepx_cfg007_mask_t;
1532 * cvmx_pcieep#_cfg008
1534 * PCIE_CFG008 = Ninth 32-bits of PCIE type 0 config space (Base Address Register 2 - Low)
1537 union cvmx_pcieepx_cfg008
1540 struct cvmx_pcieepx_cfg008_s
1542 #if __BYTE_ORDER == __BIG_ENDIAN
1543 uint32_t reserved_4_31 : 28;
1544 uint32_t pf : 1; /**< Prefetchable
1545 This field is writable through PEM(0..1)_CFG_WR.
1546 However, the application must not change this field. */
1547 uint32_t typ : 2; /**< BAR type
1550 This field is writable through PEM(0..1)_CFG_WR.
1551 However, the application must not change this field. */
1552 uint32_t mspc : 1; /**< Memory Space Indicator
1553 o 0 = BAR 0 is a memory BAR
1554 o 1 = BAR 0 is an I/O BAR
1555 This field is writable through PEM(0..1)_CFG_WR.
1556 However, the application must not change this field. */
1561 uint32_t reserved_4_31 : 28;
1564 struct cvmx_pcieepx_cfg008_s cn52xx;
1565 struct cvmx_pcieepx_cfg008_s cn52xxp1;
1566 struct cvmx_pcieepx_cfg008_s cn56xx;
1567 struct cvmx_pcieepx_cfg008_s cn56xxp1;
1568 struct cvmx_pcieepx_cfg008_s cn63xx;
1569 struct cvmx_pcieepx_cfg008_s cn63xxp1;
1571 typedef union cvmx_pcieepx_cfg008 cvmx_pcieepx_cfg008_t;
1574 * cvmx_pcieep#_cfg008_mask
1576 * PCIE_CFG008_MASK (BAR Mask 2 - Low)
1577 * The BAR 2 Mask register is invisible to host software and not readable from the application.
1578 * The BAR 2 Mask register is only writable through PEM(0..1)_CFG_WR.
1580 union cvmx_pcieepx_cfg008_mask
1583 struct cvmx_pcieepx_cfg008_mask_s
1585 #if __BYTE_ORDER == __BIG_ENDIAN
1586 uint32_t lmask : 31; /**< Bar Mask Low */
1587 uint32_t enb : 1; /**< Bar Enable
1588 o 0: BAR 2 is disabled
1589 o 1: BAR 2 is enabled
1590 Bit 0 is interpreted as BAR Enable when writing to the BAR Mask
1591 register rather than as a mask bit because bit 0 of a BAR is
1592 always masked from writing by host software. Bit 0 must be
1593 written prior to writing the other mask bits. */
1596 uint32_t lmask : 31;
1599 struct cvmx_pcieepx_cfg008_mask_s cn52xx;
1600 struct cvmx_pcieepx_cfg008_mask_s cn52xxp1;
1601 struct cvmx_pcieepx_cfg008_mask_s cn56xx;
1602 struct cvmx_pcieepx_cfg008_mask_s cn56xxp1;
1603 struct cvmx_pcieepx_cfg008_mask_s cn63xx;
1604 struct cvmx_pcieepx_cfg008_mask_s cn63xxp1;
1606 typedef union cvmx_pcieepx_cfg008_mask cvmx_pcieepx_cfg008_mask_t;
1609 * cvmx_pcieep#_cfg009
1611 * PCIE_CFG009 = Tenth 32-bits of PCIE type 0 config space (Base Address Register 2 - High)
1614 union cvmx_pcieepx_cfg009
1617 struct cvmx_pcieepx_cfg009_s
1619 #if __BYTE_ORDER == __BIG_ENDIAN
1620 uint32_t reserved_0_31 : 32;
1622 uint32_t reserved_0_31 : 32;
1625 struct cvmx_pcieepx_cfg009_cn52xx
1627 #if __BYTE_ORDER == __BIG_ENDIAN
1628 uint32_t ubab : 25; /**< Contains the upper 32 bits of the BAR 2 base address. */
1629 uint32_t reserved_0_6 : 7;
1631 uint32_t reserved_0_6 : 7;
1635 struct cvmx_pcieepx_cfg009_cn52xx cn52xxp1;
1636 struct cvmx_pcieepx_cfg009_cn52xx cn56xx;
1637 struct cvmx_pcieepx_cfg009_cn52xx cn56xxp1;
1638 struct cvmx_pcieepx_cfg009_cn63xx
1640 #if __BYTE_ORDER == __BIG_ENDIAN
1641 uint32_t ubab : 23; /**< Contains the upper 32 bits of the BAR 2 base address. */
1642 uint32_t reserved_0_8 : 9;
1644 uint32_t reserved_0_8 : 9;
1648 struct cvmx_pcieepx_cfg009_cn63xx cn63xxp1;
1650 typedef union cvmx_pcieepx_cfg009 cvmx_pcieepx_cfg009_t;
1653 * cvmx_pcieep#_cfg009_mask
1655 * PCIE_CFG009_MASK (BAR Mask 2 - High)
1656 * The BAR 2 Mask register is invisible to host software and not readable from the application.
1657 * The BAR 2 Mask register is only writable through PEM(0..1)_CFG_WR.
1659 union cvmx_pcieepx_cfg009_mask
1662 struct cvmx_pcieepx_cfg009_mask_s
1664 #if __BYTE_ORDER == __BIG_ENDIAN
1665 uint32_t umask : 32; /**< Bar Mask High */
1667 uint32_t umask : 32;
1670 struct cvmx_pcieepx_cfg009_mask_s cn52xx;
1671 struct cvmx_pcieepx_cfg009_mask_s cn52xxp1;
1672 struct cvmx_pcieepx_cfg009_mask_s cn56xx;
1673 struct cvmx_pcieepx_cfg009_mask_s cn56xxp1;
1674 struct cvmx_pcieepx_cfg009_mask_s cn63xx;
1675 struct cvmx_pcieepx_cfg009_mask_s cn63xxp1;
1677 typedef union cvmx_pcieepx_cfg009_mask cvmx_pcieepx_cfg009_mask_t;
1680 * cvmx_pcieep#_cfg010
1682 * PCIE_CFG010 = Eleventh 32-bits of PCIE type 0 config space (CardBus CIS Pointer Register)
1685 union cvmx_pcieepx_cfg010
1688 struct cvmx_pcieepx_cfg010_s
1690 #if __BYTE_ORDER == __BIG_ENDIAN
1691 uint32_t cisp : 32; /**< CardBus CIS Pointer
1692 Optional, writable through PEM(0..1)_CFG_WR. */
1697 struct cvmx_pcieepx_cfg010_s cn52xx;
1698 struct cvmx_pcieepx_cfg010_s cn52xxp1;
1699 struct cvmx_pcieepx_cfg010_s cn56xx;
1700 struct cvmx_pcieepx_cfg010_s cn56xxp1;
1701 struct cvmx_pcieepx_cfg010_s cn63xx;
1702 struct cvmx_pcieepx_cfg010_s cn63xxp1;
1704 typedef union cvmx_pcieepx_cfg010 cvmx_pcieepx_cfg010_t;
1707 * cvmx_pcieep#_cfg011
1709 * PCIE_CFG011 = Twelfth 32-bits of PCIE type 0 config space (Subsystem ID and Subsystem Vendor ID Register)
1712 union cvmx_pcieepx_cfg011
1715 struct cvmx_pcieepx_cfg011_s
1717 #if __BYTE_ORDER == __BIG_ENDIAN
1718 uint32_t ssid : 16; /**< Subsystem ID
1719 Assigned by PCI-SIG, writable through PEM(0..1)_CFG_WR. However, the application must not change this field. */
1720 uint32_t ssvid : 16; /**< Subsystem Vendor ID
1721 Assigned by PCI-SIG, writable through PEM(0..1)_CFG_WR.
1722 However, the application must not change this field. */
1724 uint32_t ssvid : 16;
1728 struct cvmx_pcieepx_cfg011_s cn52xx;
1729 struct cvmx_pcieepx_cfg011_s cn52xxp1;
1730 struct cvmx_pcieepx_cfg011_s cn56xx;
1731 struct cvmx_pcieepx_cfg011_s cn56xxp1;
1732 struct cvmx_pcieepx_cfg011_s cn63xx;
1733 struct cvmx_pcieepx_cfg011_s cn63xxp1;
1735 typedef union cvmx_pcieepx_cfg011 cvmx_pcieepx_cfg011_t;
1738 * cvmx_pcieep#_cfg012
1740 * PCIE_CFG012 = Thirteenth 32-bits of PCIE type 0 config space (Expansion ROM Base Address Register)
1743 union cvmx_pcieepx_cfg012
1746 struct cvmx_pcieepx_cfg012_s
1748 #if __BYTE_ORDER == __BIG_ENDIAN
1749 uint32_t eraddr : 16; /**< Expansion ROM Address */
1750 uint32_t reserved_1_15 : 15;
1751 uint32_t er_en : 1; /**< Expansion ROM Enable */
1754 uint32_t reserved_1_15 : 15;
1755 uint32_t eraddr : 16;
1758 struct cvmx_pcieepx_cfg012_s cn52xx;
1759 struct cvmx_pcieepx_cfg012_s cn52xxp1;
1760 struct cvmx_pcieepx_cfg012_s cn56xx;
1761 struct cvmx_pcieepx_cfg012_s cn56xxp1;
1762 struct cvmx_pcieepx_cfg012_s cn63xx;
1763 struct cvmx_pcieepx_cfg012_s cn63xxp1;
1765 typedef union cvmx_pcieepx_cfg012 cvmx_pcieepx_cfg012_t;
1768 * cvmx_pcieep#_cfg012_mask
1770 * PCIE_CFG012_MASK (Exapansion ROM BAR Mask)
1771 * The ROM Mask register is invisible to host software and not readable from the application.
1772 * The ROM Mask register is only writable through PEM(0..1)_CFG_WR.
1774 union cvmx_pcieepx_cfg012_mask
1777 struct cvmx_pcieepx_cfg012_mask_s
1779 #if __BYTE_ORDER == __BIG_ENDIAN
1780 uint32_t mask : 31; /**< Bar Mask Low NS */
1781 uint32_t enb : 1; /**< Bar Enable NS
1782 o 0: BAR ROM is disabled
1783 o 1: BAR ROM is enabled
1784 Bit 0 is interpreted as BAR Enable when writing to the BAR Mask
1785 register rather than as a mask bit because bit 0 of a BAR is
1786 always masked from writing by host software. Bit 0 must be
1787 written prior to writing the other mask bits. */
1793 struct cvmx_pcieepx_cfg012_mask_s cn52xx;
1794 struct cvmx_pcieepx_cfg012_mask_s cn52xxp1;
1795 struct cvmx_pcieepx_cfg012_mask_s cn56xx;
1796 struct cvmx_pcieepx_cfg012_mask_s cn56xxp1;
1797 struct cvmx_pcieepx_cfg012_mask_s cn63xx;
1798 struct cvmx_pcieepx_cfg012_mask_s cn63xxp1;
1800 typedef union cvmx_pcieepx_cfg012_mask cvmx_pcieepx_cfg012_mask_t;
1803 * cvmx_pcieep#_cfg013
1805 * PCIE_CFG013 = Fourteenth 32-bits of PCIE type 0 config space (Capability Pointer Register)
1808 union cvmx_pcieepx_cfg013
1811 struct cvmx_pcieepx_cfg013_s
1813 #if __BYTE_ORDER == __BIG_ENDIAN
1814 uint32_t reserved_8_31 : 24;
1815 uint32_t cp : 8; /**< First Capability Pointer.
1816 Points to Power Management Capability structure by
1817 default, writable through PEM(0..1)_CFG_WR.
1818 However, the application must not change this field. */
1821 uint32_t reserved_8_31 : 24;
1824 struct cvmx_pcieepx_cfg013_s cn52xx;
1825 struct cvmx_pcieepx_cfg013_s cn52xxp1;
1826 struct cvmx_pcieepx_cfg013_s cn56xx;
1827 struct cvmx_pcieepx_cfg013_s cn56xxp1;
1828 struct cvmx_pcieepx_cfg013_s cn63xx;
1829 struct cvmx_pcieepx_cfg013_s cn63xxp1;
1831 typedef union cvmx_pcieepx_cfg013 cvmx_pcieepx_cfg013_t;
1834 * cvmx_pcieep#_cfg015
1836 * PCIE_CFG015 = Sixteenth 32-bits of PCIE type 0 config space (Interrupt Line Register/Interrupt Pin/Bridge Control Register)
1839 union cvmx_pcieepx_cfg015
1842 struct cvmx_pcieepx_cfg015_s
1844 #if __BYTE_ORDER == __BIG_ENDIAN
1845 uint32_t ml : 8; /**< Maximum Latency (Hardwired to 0) */
1846 uint32_t mg : 8; /**< Minimum Grant (Hardwired to 0) */
1847 uint32_t inta : 8; /**< Interrupt Pin
1848 Identifies the legacy interrupt Message that the device
1849 (or device function) uses.
1850 The Interrupt Pin register is writable through PEM(0..1)_CFG_WR.
1851 In a single-function configuration, only INTA is used.
1852 Therefore, the application must not change this field. */
1853 uint32_t il : 8; /**< Interrupt Line */
1861 struct cvmx_pcieepx_cfg015_s cn52xx;
1862 struct cvmx_pcieepx_cfg015_s cn52xxp1;
1863 struct cvmx_pcieepx_cfg015_s cn56xx;
1864 struct cvmx_pcieepx_cfg015_s cn56xxp1;
1865 struct cvmx_pcieepx_cfg015_s cn63xx;
1866 struct cvmx_pcieepx_cfg015_s cn63xxp1;
1868 typedef union cvmx_pcieepx_cfg015 cvmx_pcieepx_cfg015_t;
1871 * cvmx_pcieep#_cfg016
1873 * PCIE_CFG016 = Seventeenth 32-bits of PCIE type 0 config space
1874 * (Power Management Capability ID/
1875 * Power Management Next Item Pointer/
1876 * Power Management Capabilities Register)
1878 union cvmx_pcieepx_cfg016
1881 struct cvmx_pcieepx_cfg016_s
1883 #if __BYTE_ORDER == __BIG_ENDIAN
1884 uint32_t pmes : 5; /**< PME_Support
1885 o Bit 11: If set, PME Messages can be generated from D0
1886 o Bit 12: If set, PME Messages can be generated from D1
1887 o Bit 13: If set, PME Messages can be generated from D2
1888 o Bit 14: If set, PME Messages can be generated from D3hot
1889 o Bit 15: If set, PME Messages can be generated from D3cold
1890 The PME_Support field is writable through PEM(0..1)_CFG_WR.
1891 However, the application must not change this field. */
1892 uint32_t d2s : 1; /**< D2 Support, writable through PEM(0..1)_CFG_WR
1893 However, the application must not change this field. */
1894 uint32_t d1s : 1; /**< D1 Support, writable through PEM(0..1)_CFG_WR
1895 However, the application must not change this field. */
1896 uint32_t auxc : 3; /**< AUX Current, writable through PEM(0..1)_CFG_WR
1897 However, the application must not change this field. */
1898 uint32_t dsi : 1; /**< Device Specific Initialization (DSI), writable through PEM(0..1)_CFG_WR
1899 However, the application must not change this field. */
1900 uint32_t reserved_20_20 : 1;
1901 uint32_t pme_clock : 1; /**< PME Clock, hardwired to 0 */
1902 uint32_t pmsv : 3; /**< Power Management Specification Version, writable through PEM(0..1)_CFG_WR
1903 However, the application must not change this field. */
1904 uint32_t ncp : 8; /**< Next Capability Pointer
1905 Points to the MSI capabilities by default, writable
1906 through PEM(0..1)_CFG_WR.
1907 However, the application must not change this field. */
1908 uint32_t pmcid : 8; /**< Power Management Capability ID */
1913 uint32_t pme_clock : 1;
1914 uint32_t reserved_20_20 : 1;
1922 struct cvmx_pcieepx_cfg016_s cn52xx;
1923 struct cvmx_pcieepx_cfg016_s cn52xxp1;
1924 struct cvmx_pcieepx_cfg016_s cn56xx;
1925 struct cvmx_pcieepx_cfg016_s cn56xxp1;
1926 struct cvmx_pcieepx_cfg016_s cn63xx;
1927 struct cvmx_pcieepx_cfg016_s cn63xxp1;
1929 typedef union cvmx_pcieepx_cfg016 cvmx_pcieepx_cfg016_t;
1932 * cvmx_pcieep#_cfg017
1934 * PCIE_CFG017 = Eighteenth 32-bits of PCIE type 0 config space (Power Management Control and Status Register)
1937 union cvmx_pcieepx_cfg017
1940 struct cvmx_pcieepx_cfg017_s
1942 #if __BYTE_ORDER == __BIG_ENDIAN
1943 uint32_t pmdia : 8; /**< Data register for additional information (not supported) */
1944 uint32_t bpccee : 1; /**< Bus Power/Clock Control Enable, hardwired to 0 */
1945 uint32_t bd3h : 1; /**< B2/B3 Support, hardwired to 0 */
1946 uint32_t reserved_16_21 : 6;
1947 uint32_t pmess : 1; /**< PME Status
1948 Indicates if a previously enabled PME event occurred or not. */
1949 uint32_t pmedsia : 2; /**< Data Scale (not supported) */
1950 uint32_t pmds : 4; /**< Data Select (not supported) */
1951 uint32_t pmeens : 1; /**< PME Enable
1952 A value of 1 indicates that the device is enabled to
1954 uint32_t reserved_4_7 : 4;
1955 uint32_t nsr : 1; /**< No Soft Reset, writable through PEM(0..1)_CFG_WR
1956 However, the application must not change this field. */
1957 uint32_t reserved_2_2 : 1;
1958 uint32_t ps : 2; /**< Power State
1959 Controls the device power state:
1964 The written value is ignored if the specific state is
1968 uint32_t reserved_2_2 : 1;
1970 uint32_t reserved_4_7 : 4;
1971 uint32_t pmeens : 1;
1973 uint32_t pmedsia : 2;
1975 uint32_t reserved_16_21 : 6;
1977 uint32_t bpccee : 1;
1981 struct cvmx_pcieepx_cfg017_s cn52xx;
1982 struct cvmx_pcieepx_cfg017_s cn52xxp1;
1983 struct cvmx_pcieepx_cfg017_s cn56xx;
1984 struct cvmx_pcieepx_cfg017_s cn56xxp1;
1985 struct cvmx_pcieepx_cfg017_s cn63xx;
1986 struct cvmx_pcieepx_cfg017_s cn63xxp1;
1988 typedef union cvmx_pcieepx_cfg017 cvmx_pcieepx_cfg017_t;
1991 * cvmx_pcieep#_cfg020
1993 * PCIE_CFG020 = Twenty-first 32-bits of PCIE type 0 config space
1994 * (MSI Capability ID/
1995 * MSI Next Item Pointer/
1996 * MSI Control Register)
1998 union cvmx_pcieepx_cfg020
2001 struct cvmx_pcieepx_cfg020_s
2003 #if __BYTE_ORDER == __BIG_ENDIAN
2004 uint32_t reserved_24_31 : 8;
2005 uint32_t m64 : 1; /**< 64-bit Address Capable, writable through PEM(0..1)_CFG_WR
2006 However, the application must not change this field. */
2007 uint32_t mme : 3; /**< Multiple Message Enabled
2008 Indicates that multiple Message mode is enabled by system
2009 software. The number of Messages enabled must be less than
2010 or equal to the Multiple Message Capable value. */
2011 uint32_t mmc : 3; /**< Multiple Message Capable, writable through PEM(0..1)_CFG_WR
2012 However, the application must not change this field. */
2013 uint32_t msien : 1; /**< MSI Enabled
2014 When set, INTx must be disabled. */
2015 uint32_t ncp : 8; /**< Next Capability Pointer
2016 Points to PCI Express Capabilities by default,
2017 writable through PEM(0..1)_CFG_WR.
2018 However, the application must not change this field. */
2019 uint32_t msicid : 8; /**< MSI Capability ID */
2021 uint32_t msicid : 8;
2027 uint32_t reserved_24_31 : 8;
2030 struct cvmx_pcieepx_cfg020_s cn52xx;
2031 struct cvmx_pcieepx_cfg020_s cn52xxp1;
2032 struct cvmx_pcieepx_cfg020_s cn56xx;
2033 struct cvmx_pcieepx_cfg020_s cn56xxp1;
2034 struct cvmx_pcieepx_cfg020_s cn63xx;
2035 struct cvmx_pcieepx_cfg020_s cn63xxp1;
2037 typedef union cvmx_pcieepx_cfg020 cvmx_pcieepx_cfg020_t;
2040 * cvmx_pcieep#_cfg021
2042 * PCIE_CFG021 = Twenty-second 32-bits of PCIE type 0 config space (MSI Lower 32 Bits Address Register)
2045 union cvmx_pcieepx_cfg021
2048 struct cvmx_pcieepx_cfg021_s
2050 #if __BYTE_ORDER == __BIG_ENDIAN
2051 uint32_t lmsi : 30; /**< Lower 32-bit Address */
2052 uint32_t reserved_0_1 : 2;
2054 uint32_t reserved_0_1 : 2;
2058 struct cvmx_pcieepx_cfg021_s cn52xx;
2059 struct cvmx_pcieepx_cfg021_s cn52xxp1;
2060 struct cvmx_pcieepx_cfg021_s cn56xx;
2061 struct cvmx_pcieepx_cfg021_s cn56xxp1;
2062 struct cvmx_pcieepx_cfg021_s cn63xx;
2063 struct cvmx_pcieepx_cfg021_s cn63xxp1;
2065 typedef union cvmx_pcieepx_cfg021 cvmx_pcieepx_cfg021_t;
2068 * cvmx_pcieep#_cfg022
2070 * PCIE_CFG022 = Twenty-third 32-bits of PCIE type 0 config space (MSI Upper 32 bits Address Register)
2073 union cvmx_pcieepx_cfg022
2076 struct cvmx_pcieepx_cfg022_s
2078 #if __BYTE_ORDER == __BIG_ENDIAN
2079 uint32_t umsi : 32; /**< Upper 32-bit Address */
2084 struct cvmx_pcieepx_cfg022_s cn52xx;
2085 struct cvmx_pcieepx_cfg022_s cn52xxp1;
2086 struct cvmx_pcieepx_cfg022_s cn56xx;
2087 struct cvmx_pcieepx_cfg022_s cn56xxp1;
2088 struct cvmx_pcieepx_cfg022_s cn63xx;
2089 struct cvmx_pcieepx_cfg022_s cn63xxp1;
2091 typedef union cvmx_pcieepx_cfg022 cvmx_pcieepx_cfg022_t;
2094 * cvmx_pcieep#_cfg023
2096 * PCIE_CFG023 = Twenty-fourth 32-bits of PCIE type 0 config space (MSI Data Register)
2099 union cvmx_pcieepx_cfg023
2102 struct cvmx_pcieepx_cfg023_s
2104 #if __BYTE_ORDER == __BIG_ENDIAN
2105 uint32_t reserved_16_31 : 16;
2106 uint32_t msimd : 16; /**< MSI Data
2107 Pattern assigned by system software, bits [4:0] are Or-ed with
2108 MSI_VECTOR to generate 32 MSI Messages per function. */
2110 uint32_t msimd : 16;
2111 uint32_t reserved_16_31 : 16;
2114 struct cvmx_pcieepx_cfg023_s cn52xx;
2115 struct cvmx_pcieepx_cfg023_s cn52xxp1;
2116 struct cvmx_pcieepx_cfg023_s cn56xx;
2117 struct cvmx_pcieepx_cfg023_s cn56xxp1;
2118 struct cvmx_pcieepx_cfg023_s cn63xx;
2119 struct cvmx_pcieepx_cfg023_s cn63xxp1;
2121 typedef union cvmx_pcieepx_cfg023 cvmx_pcieepx_cfg023_t;
2124 * cvmx_pcieep#_cfg028
2126 * PCIE_CFG028 = Twenty-ninth 32-bits of PCIE type 0 config space
2127 * (PCI Express Capabilities List Register/
2128 * PCI Express Capabilities Register)
2130 union cvmx_pcieepx_cfg028
2133 struct cvmx_pcieepx_cfg028_s
2135 #if __BYTE_ORDER == __BIG_ENDIAN
2136 uint32_t reserved_30_31 : 2;
2137 uint32_t imn : 5; /**< Interrupt Message Number
2138 Updated by hardware, writable through PEM(0..1)_CFG_WR.
2139 However, the application must not change this field. */
2140 uint32_t si : 1; /**< Slot Implemented
2141 This bit is writable through PEM(0..1)_CFG_WR.
2142 However, it must be 0 for
2143 an Endpoint device. Therefore, the application must not write a
2145 uint32_t dpt : 4; /**< Device Port Type */
2146 uint32_t pciecv : 4; /**< PCI Express Capability Version */
2147 uint32_t ncp : 8; /**< Next Capability Pointer
2148 Writable through PEM(0..1)_CFG_WR.
2149 However, the application must not change this field. */
2150 uint32_t pcieid : 8; /**< PCIE Capability ID */
2152 uint32_t pcieid : 8;
2154 uint32_t pciecv : 4;
2158 uint32_t reserved_30_31 : 2;
2161 struct cvmx_pcieepx_cfg028_s cn52xx;
2162 struct cvmx_pcieepx_cfg028_s cn52xxp1;
2163 struct cvmx_pcieepx_cfg028_s cn56xx;
2164 struct cvmx_pcieepx_cfg028_s cn56xxp1;
2165 struct cvmx_pcieepx_cfg028_s cn63xx;
2166 struct cvmx_pcieepx_cfg028_s cn63xxp1;
2168 typedef union cvmx_pcieepx_cfg028 cvmx_pcieepx_cfg028_t;
2171 * cvmx_pcieep#_cfg029
2173 * PCIE_CFG029 = Thirtieth 32-bits of PCIE type 0 config space (Device Capabilities Register)
2176 union cvmx_pcieepx_cfg029
2179 struct cvmx_pcieepx_cfg029_s
2181 #if __BYTE_ORDER == __BIG_ENDIAN
2182 uint32_t reserved_28_31 : 4;
2183 uint32_t cspls : 2; /**< Captured Slot Power Limit Scale
2184 From Message from RC, upstream port only. */
2185 uint32_t csplv : 8; /**< Captured Slot Power Limit Value
2186 From Message from RC, upstream port only. */
2187 uint32_t reserved_16_17 : 2;
2188 uint32_t rber : 1; /**< Role-Based Error Reporting, writable through PEM(0..1)_CFG_WR
2189 However, the application must not change this field. */
2190 uint32_t reserved_12_14 : 3;
2191 uint32_t el1al : 3; /**< Endpoint L1 Acceptable Latency, writable through PEM(0..1)_CFG_WR
2192 However, the application must not change this field. */
2193 uint32_t el0al : 3; /**< Endpoint L0s Acceptable Latency, writable through PEM(0..1)_CFG_WR
2194 However, the application must not change this field. */
2195 uint32_t etfs : 1; /**< Extended Tag Field Supported
2196 This bit is writable through PEM(0..1)_CFG_WR.
2197 However, the application
2198 must not write a 1 to this bit. */
2199 uint32_t pfs : 2; /**< Phantom Function Supported
2200 This field is writable through PEM(0..1)_CFG_WR.
2202 Function is not supported. Therefore, the application must not
2203 write any value other than 0x0 to this field. */
2204 uint32_t mpss : 3; /**< Max_Payload_Size Supported, writable through PEM(0..1)_CFG_WR
2205 However, the application must not change this field. */
2212 uint32_t reserved_12_14 : 3;
2214 uint32_t reserved_16_17 : 2;
2217 uint32_t reserved_28_31 : 4;
2220 struct cvmx_pcieepx_cfg029_s cn52xx;
2221 struct cvmx_pcieepx_cfg029_s cn52xxp1;
2222 struct cvmx_pcieepx_cfg029_s cn56xx;
2223 struct cvmx_pcieepx_cfg029_s cn56xxp1;
2224 struct cvmx_pcieepx_cfg029_s cn63xx;
2225 struct cvmx_pcieepx_cfg029_s cn63xxp1;
2227 typedef union cvmx_pcieepx_cfg029 cvmx_pcieepx_cfg029_t;
2230 * cvmx_pcieep#_cfg030
2232 * PCIE_CFG030 = Thirty-first 32-bits of PCIE type 0 config space
2233 * (Device Control Register/Device Status Register)
2235 union cvmx_pcieepx_cfg030
2238 struct cvmx_pcieepx_cfg030_s
2240 #if __BYTE_ORDER == __BIG_ENDIAN
2241 uint32_t reserved_22_31 : 10;
2242 uint32_t tp : 1; /**< Transaction Pending
2243 Set to 1 when Non-Posted Requests are not yet completed
2244 and clear when they are completed. */
2245 uint32_t ap_d : 1; /**< Aux Power Detected
2246 Set to 1 if Aux power detected. */
2247 uint32_t ur_d : 1; /**< Unsupported Request Detected
2248 Errors are logged in this register regardless of whether
2249 error reporting is enabled in the Device Control register.
2250 UR_D occurs when we receive something we don't support.
2251 Unsupported requests are Nonfatal errors, so UR_D should
2252 cause NFE_D. Receiving a vendor defined message should
2253 cause an unsupported request. */
2254 uint32_t fe_d : 1; /**< Fatal Error Detected
2255 Errors are logged in this register regardless of whether
2256 error reporting is enabled in the Device Control register.
2257 FE_D is set if receive any of the errors in PCIE_CFG066 that
2258 has a severity set to Fatal. Malformed TLP's generally fit
2259 into this category. */
2260 uint32_t nfe_d : 1; /**< Non-Fatal Error detected
2261 Errors are logged in this register regardless of whether
2262 error reporting is enabled in the Device Control register.
2263 NFE_D is set if we receive any of the errors in PCIE_CFG066
2264 that has a severity set to Nonfatal and does NOT meet Advisory
2265 Nonfatal criteria , which
2266 most poisoned TLP's should be. */
2267 uint32_t ce_d : 1; /**< Correctable Error Detected
2268 Errors are logged in this register regardless of whether
2269 error reporting is enabled in the Device Control register.
2270 CE_D is set if we receive any of the errors in PCIE_CFG068
2271 for example a Replay Timer Timeout. Also, it can be set if
2272 we get any of the errors in PCIE_CFG066 that has a severity
2273 set to Nonfatal and meets the Advisory Nonfatal criteria,
2274 which most ECRC errors
2276 uint32_t reserved_15_15 : 1;
2277 uint32_t mrrs : 3; /**< Max Read Request Size
2284 Note: SLI_S2M_PORT#_CTL[MRRS] and DPI_SLI_PRT#_CFG[MRRS] and
2285 also must be set properly.
2286 SLI_S2M_PORT#_CTL[MRRS] and DPI_SLI_PRT#_CFG[MRRS] must
2287 not exceed the desired max read request size. */
2288 uint32_t ns_en : 1; /**< Enable No Snoop */
2289 uint32_t ap_en : 1; /**< AUX Power PM Enable */
2290 uint32_t pf_en : 1; /**< Phantom Function Enable
2291 This bit should never be set - OCTEON requests never use
2292 phantom functions. */
2293 uint32_t etf_en : 1; /**< Extended Tag Field Enable
2294 This bit should never be set - OCTEON requests never use
2296 uint32_t mps : 3; /**< Max Payload Size
2300 Larger sizes not supported by OCTEON.
2301 Note: DPI_SLI_PRT#_CFG[MPS] must be set to the same
2302 value for proper functionality. */
2303 uint32_t ro_en : 1; /**< Enable Relaxed Ordering */
2304 uint32_t ur_en : 1; /**< Unsupported Request Reporting Enable */
2305 uint32_t fe_en : 1; /**< Fatal Error Reporting Enable */
2306 uint32_t nfe_en : 1; /**< Non-Fatal Error Reporting Enable */
2307 uint32_t ce_en : 1; /**< Correctable Error Reporting Enable */
2310 uint32_t nfe_en : 1;
2315 uint32_t etf_en : 1;
2320 uint32_t reserved_15_15 : 1;
2327 uint32_t reserved_22_31 : 10;
2330 struct cvmx_pcieepx_cfg030_s cn52xx;
2331 struct cvmx_pcieepx_cfg030_s cn52xxp1;
2332 struct cvmx_pcieepx_cfg030_s cn56xx;
2333 struct cvmx_pcieepx_cfg030_s cn56xxp1;
2334 struct cvmx_pcieepx_cfg030_s cn63xx;
2335 struct cvmx_pcieepx_cfg030_s cn63xxp1;
2337 typedef union cvmx_pcieepx_cfg030 cvmx_pcieepx_cfg030_t;
2340 * cvmx_pcieep#_cfg031
2342 * PCIE_CFG031 = Thirty-second 32-bits of PCIE type 0 config space
2343 * (Link Capabilities Register)
2345 union cvmx_pcieepx_cfg031
2348 struct cvmx_pcieepx_cfg031_s
2350 #if __BYTE_ORDER == __BIG_ENDIAN
2351 uint32_t pnum : 8; /**< Port Number, writable through PEM(0..1)_CFG_WR
2352 However, the application must not change this field. */
2353 uint32_t reserved_22_23 : 2;
2354 uint32_t lbnc : 1; /**< Link Bandwith Notification Capability */
2355 uint32_t dllarc : 1; /**< Data Link Layer Active Reporting Capable */
2356 uint32_t sderc : 1; /**< Surprise Down Error Reporting Capable
2357 Not supported, hardwired to 0x0. */
2358 uint32_t cpm : 1; /**< Clock Power Management
2359 The default value is the value you specify during hardware
2360 configuration, writable through PEM(0..1)_CFG_WR.
2361 However, the application must not change this field. */
2362 uint32_t l1el : 3; /**< L1 Exit Latency
2363 The default value is the value you specify during hardware
2364 configuration, writable through PEM(0..1)_CFG_WR.
2365 However, the application must not change this field. */
2366 uint32_t l0el : 3; /**< L0s Exit Latency
2367 The default value is the value you specify during hardware
2368 configuration, writable through PEM(0..1)_CFG_WR.
2369 However, the application must not change this field. */
2370 uint32_t aslpms : 2; /**< Active State Link PM Support
2371 The default value is the value you specify during hardware
2372 configuration, writable through PEM(0..1)_CFG_WR.
2373 However, the application must not change this field. */
2374 uint32_t mlw : 6; /**< Maximum Link Width
2375 The default value is the value you specify during hardware
2376 configuration (x1, x4, x8, or x16), writable through PEM(0..1)_CFG_WR. */
2377 uint32_t mls : 4; /**< Maximum Link Speed
2378 The following values are accepted:
2379 0001b: 2.5 GHz supported
2380 0010b: 5.0 GHz and 2.5 GHz supported
2381 This field is writable through PEM(0..1)_CFG_WR.
2382 However, the application must not change this field. */
2386 uint32_t aslpms : 2;
2391 uint32_t dllarc : 1;
2393 uint32_t reserved_22_23 : 2;
2397 struct cvmx_pcieepx_cfg031_s cn52xx;
2398 struct cvmx_pcieepx_cfg031_s cn52xxp1;
2399 struct cvmx_pcieepx_cfg031_s cn56xx;
2400 struct cvmx_pcieepx_cfg031_s cn56xxp1;
2401 struct cvmx_pcieepx_cfg031_s cn63xx;
2402 struct cvmx_pcieepx_cfg031_s cn63xxp1;
2404 typedef union cvmx_pcieepx_cfg031 cvmx_pcieepx_cfg031_t;
2407 * cvmx_pcieep#_cfg032
2409 * PCIE_CFG032 = Thirty-third 32-bits of PCIE type 0 config space
2410 * (Link Control Register/Link Status Register)
2412 union cvmx_pcieepx_cfg032
2415 struct cvmx_pcieepx_cfg032_s
2417 #if __BYTE_ORDER == __BIG_ENDIAN
2418 uint32_t reserved_30_31 : 2;
2419 uint32_t dlla : 1; /**< Data Link Layer Active
2420 Not applicable for an upstream Port or Endpoint device,
2422 uint32_t scc : 1; /**< Slot Clock Configuration
2423 Indicates that the component uses the same physical reference
2424 clock that the platform provides on the connector.
2425 Writable through PEM(0..1)_CFG_WR.
2426 However, the application must not change this field. */
2427 uint32_t lt : 1; /**< Link Training
2428 Not applicable for an upstream Port or Endpoint device,
2430 uint32_t reserved_26_26 : 1;
2431 uint32_t nlw : 6; /**< Negotiated Link Width
2432 Set automatically by hardware after Link initialization. */
2433 uint32_t ls : 4; /**< Link Speed
2434 The negotiated Link speed: 2.5 Gbps */
2435 uint32_t reserved_10_15 : 6;
2436 uint32_t hawd : 1; /**< Hardware Autonomous Width Disable
2438 uint32_t ecpm : 1; /**< Enable Clock Power Management
2439 Hardwired to 0 if Clock Power Management is disabled in
2440 the Link Capabilities register. */
2441 uint32_t es : 1; /**< Extended Synch */
2442 uint32_t ccc : 1; /**< Common Clock Configuration */
2443 uint32_t rl : 1; /**< Retrain Link
2444 Not applicable for an upstream Port or Endpoint device,
2446 uint32_t ld : 1; /**< Link Disable
2447 Not applicable for an upstream Port or Endpoint device,
2449 uint32_t rcb : 1; /**< Read Completion Boundary (RCB) */
2450 uint32_t reserved_2_2 : 1;
2451 uint32_t aslpc : 2; /**< Active State Link PM Control */
2454 uint32_t reserved_2_2 : 1;
2462 uint32_t reserved_10_15 : 6;
2465 uint32_t reserved_26_26 : 1;
2469 uint32_t reserved_30_31 : 2;
2472 struct cvmx_pcieepx_cfg032_s cn52xx;
2473 struct cvmx_pcieepx_cfg032_s cn52xxp1;
2474 struct cvmx_pcieepx_cfg032_s cn56xx;
2475 struct cvmx_pcieepx_cfg032_s cn56xxp1;
2476 struct cvmx_pcieepx_cfg032_s cn63xx;
2477 struct cvmx_pcieepx_cfg032_s cn63xxp1;
2479 typedef union cvmx_pcieepx_cfg032 cvmx_pcieepx_cfg032_t;
2482 * cvmx_pcieep#_cfg033
2484 * PCIE_CFG033 = Thirty-fourth 32-bits of PCIE type 0 config space
2485 * (Slot Capabilities Register)
2487 union cvmx_pcieepx_cfg033
2490 struct cvmx_pcieepx_cfg033_s
2492 #if __BYTE_ORDER == __BIG_ENDIAN
2493 uint32_t ps_num : 13; /**< Physical Slot Number, writable through PEM(0..1)_CFG_WR
2494 However, the application must not change this field. */
2495 uint32_t nccs : 1; /**< No Command Complete Support, writable through PEM(0..1)_CFG_WR
2496 However, the application must not change this field. */
2497 uint32_t emip : 1; /**< Electromechanical Interlock Present, writable through PEM(0..1)_CFG_WR
2498 However, the application must not change this field. */
2499 uint32_t sp_ls : 2; /**< Slot Power Limit Scale, writable through PEM(0..1)_CFG_WR
2500 However, the application must not change this field. */
2501 uint32_t sp_lv : 8; /**< Slot Power Limit Value, writable through PEM(0..1)_CFG_WR
2502 However, the application must not change this field. */
2503 uint32_t hp_c : 1; /**< Hot-Plug Capable, writable through PEM(0..1)_CFG_WR
2504 However, the application must not change this field. */
2505 uint32_t hp_s : 1; /**< Hot-Plug Surprise, writable through PEM(0..1)_CFG_WR
2506 However, the application must not change this field. */
2507 uint32_t pip : 1; /**< Power Indicator Present, writable through PEM(0..1)_CFG_WR
2508 However, the application must not change this field. */
2509 uint32_t aip : 1; /**< Attention Indicator Present, writable through PEM(0..1)_CFG_WR
2510 However, the application must not change this field. */
2511 uint32_t mrlsp : 1; /**< MRL Sensor Present, writable through PEM(0..1)_CFG_WR
2512 However, the application must not change this field. */
2513 uint32_t pcp : 1; /**< Power Controller Present, writable through PEM(0..1)_CFG_WR
2514 However, the application must not change this field. */
2515 uint32_t abp : 1; /**< Attention Button Present, writable through PEM(0..1)_CFG_WR
2516 However, the application must not change this field. */
2529 uint32_t ps_num : 13;
2532 struct cvmx_pcieepx_cfg033_s cn52xx;
2533 struct cvmx_pcieepx_cfg033_s cn52xxp1;
2534 struct cvmx_pcieepx_cfg033_s cn56xx;
2535 struct cvmx_pcieepx_cfg033_s cn56xxp1;
2536 struct cvmx_pcieepx_cfg033_s cn63xx;
2537 struct cvmx_pcieepx_cfg033_s cn63xxp1;
2539 typedef union cvmx_pcieepx_cfg033 cvmx_pcieepx_cfg033_t;
2542 * cvmx_pcieep#_cfg034
2544 * PCIE_CFG034 = Thirty-fifth 32-bits of PCIE type 0 config space
2545 * (Slot Control Register/Slot Status Register)
2547 union cvmx_pcieepx_cfg034
2550 struct cvmx_pcieepx_cfg034_s
2552 #if __BYTE_ORDER == __BIG_ENDIAN
2553 uint32_t reserved_25_31 : 7;
2554 uint32_t dlls_c : 1; /**< Data Link Layer State Changed
2555 Not applicable for an upstream Port or Endpoint device,
2557 uint32_t emis : 1; /**< Electromechanical Interlock Status */
2558 uint32_t pds : 1; /**< Presence Detect State */
2559 uint32_t mrlss : 1; /**< MRL Sensor State */
2560 uint32_t ccint_d : 1; /**< Command Completed */
2561 uint32_t pd_c : 1; /**< Presence Detect Changed */
2562 uint32_t mrls_c : 1; /**< MRL Sensor Changed */
2563 uint32_t pf_d : 1; /**< Power Fault Detected */
2564 uint32_t abp_d : 1; /**< Attention Button Pressed */
2565 uint32_t reserved_13_15 : 3;
2566 uint32_t dlls_en : 1; /**< Data Link Layer State Changed Enable
2567 Not applicable for an upstream Port or Endpoint device,
2569 uint32_t emic : 1; /**< Electromechanical Interlock Control */
2570 uint32_t pcc : 1; /**< Power Controller Control */
2571 uint32_t pic : 2; /**< Power Indicator Control */
2572 uint32_t aic : 2; /**< Attention Indicator Control */
2573 uint32_t hpint_en : 1; /**< Hot-Plug Interrupt Enable */
2574 uint32_t ccint_en : 1; /**< Command Completed Interrupt Enable */
2575 uint32_t pd_en : 1; /**< Presence Detect Changed Enable */
2576 uint32_t mrls_en : 1; /**< MRL Sensor Changed Enable */
2577 uint32_t pf_en : 1; /**< Power Fault Detected Enable */
2578 uint32_t abp_en : 1; /**< Attention Button Pressed Enable */
2580 uint32_t abp_en : 1;
2582 uint32_t mrls_en : 1;
2584 uint32_t ccint_en : 1;
2585 uint32_t hpint_en : 1;
2590 uint32_t dlls_en : 1;
2591 uint32_t reserved_13_15 : 3;
2594 uint32_t mrls_c : 1;
2596 uint32_t ccint_d : 1;
2600 uint32_t dlls_c : 1;
2601 uint32_t reserved_25_31 : 7;
2604 struct cvmx_pcieepx_cfg034_s cn52xx;
2605 struct cvmx_pcieepx_cfg034_s cn52xxp1;
2606 struct cvmx_pcieepx_cfg034_s cn56xx;
2607 struct cvmx_pcieepx_cfg034_s cn56xxp1;
2608 struct cvmx_pcieepx_cfg034_s cn63xx;
2609 struct cvmx_pcieepx_cfg034_s cn63xxp1;
2611 typedef union cvmx_pcieepx_cfg034 cvmx_pcieepx_cfg034_t;
2614 * cvmx_pcieep#_cfg037
2616 * PCIE_CFG037 = Thirty-eighth 32-bits of PCIE type 0 config space
2617 * (Device Capabilities 2 Register)
2619 union cvmx_pcieepx_cfg037
2622 struct cvmx_pcieepx_cfg037_s
2624 #if __BYTE_ORDER == __BIG_ENDIAN
2625 uint32_t reserved_5_31 : 27;
2626 uint32_t ctds : 1; /**< Completion Timeout Disable Supported */
2627 uint32_t ctrs : 4; /**< Completion Timeout Ranges Supported
2628 Value of 0 indicates that Completion Timeout Programming
2630 Completion timeout is 16.7ms. */
2634 uint32_t reserved_5_31 : 27;
2637 struct cvmx_pcieepx_cfg037_s cn52xx;
2638 struct cvmx_pcieepx_cfg037_s cn52xxp1;
2639 struct cvmx_pcieepx_cfg037_s cn56xx;
2640 struct cvmx_pcieepx_cfg037_s cn56xxp1;
2641 struct cvmx_pcieepx_cfg037_s cn63xx;
2642 struct cvmx_pcieepx_cfg037_s cn63xxp1;
2644 typedef union cvmx_pcieepx_cfg037 cvmx_pcieepx_cfg037_t;
2647 * cvmx_pcieep#_cfg038
2649 * PCIE_CFG038 = Thirty-ninth 32-bits of PCIE type 0 config space
2650 * (Device Control 2 Register/Device Status 2 Register)
2652 union cvmx_pcieepx_cfg038
2655 struct cvmx_pcieepx_cfg038_s
2657 #if __BYTE_ORDER == __BIG_ENDIAN
2658 uint32_t reserved_5_31 : 27;
2659 uint32_t ctd : 1; /**< Completion Timeout Disable */
2660 uint32_t ctv : 4; /**< Completion Timeout Value
2661 Completion Timeout Programming is not supported
2662 Completion timeout is 16.7ms. */
2666 uint32_t reserved_5_31 : 27;
2669 struct cvmx_pcieepx_cfg038_s cn52xx;
2670 struct cvmx_pcieepx_cfg038_s cn52xxp1;
2671 struct cvmx_pcieepx_cfg038_s cn56xx;
2672 struct cvmx_pcieepx_cfg038_s cn56xxp1;
2673 struct cvmx_pcieepx_cfg038_s cn63xx;
2674 struct cvmx_pcieepx_cfg038_s cn63xxp1;
2676 typedef union cvmx_pcieepx_cfg038 cvmx_pcieepx_cfg038_t;
2679 * cvmx_pcieep#_cfg039
2681 * PCIE_CFG039 = Fourtieth 32-bits of PCIE type 0 config space
2682 * (Link Capabilities 2 Register)
2684 union cvmx_pcieepx_cfg039
2687 struct cvmx_pcieepx_cfg039_s
2689 #if __BYTE_ORDER == __BIG_ENDIAN
2690 uint32_t reserved_0_31 : 32;
2692 uint32_t reserved_0_31 : 32;
2695 struct cvmx_pcieepx_cfg039_s cn52xx;
2696 struct cvmx_pcieepx_cfg039_s cn52xxp1;
2697 struct cvmx_pcieepx_cfg039_s cn56xx;
2698 struct cvmx_pcieepx_cfg039_s cn56xxp1;
2699 struct cvmx_pcieepx_cfg039_s cn63xx;
2700 struct cvmx_pcieepx_cfg039_s cn63xxp1;
2702 typedef union cvmx_pcieepx_cfg039 cvmx_pcieepx_cfg039_t;
2705 * cvmx_pcieep#_cfg040
2707 * PCIE_CFG040 = Fourty-first 32-bits of PCIE type 0 config space
2708 * (Link Control 2 Register/Link Status 2 Register)
2710 union cvmx_pcieepx_cfg040
2713 struct cvmx_pcieepx_cfg040_s
2715 #if __BYTE_ORDER == __BIG_ENDIAN
2716 uint32_t reserved_17_31 : 15;
2717 uint32_t cdl : 1; /**< Current De-emphasis Level
2718 When the Link is operating at 5 GT/s speed, this bit
2719 reflects the level of de-emphasis. Encodings:
2722 Note: The value in this bit is undefined when the Link is
2723 operating at 2.5 GT/s speed */
2724 uint32_t reserved_13_15 : 3;
2725 uint32_t cde : 1; /**< Compliance De-emphasis
2726 This bit sets the de-emphasis level in Polling. Compliance
2727 state if the entry occurred due to the Tx Compliance
2728 Receive bit being 1b. Encodings:
2731 Note: When the Link is operating at 2.5 GT/s, the setting
2732 of this bit has no effect. */
2733 uint32_t csos : 1; /**< Compliance SOS
2734 When set to 1b, the LTSSM is required to send SKP
2735 Ordered Sets periodically in between the (modified)
2736 compliance patterns.
2737 Note: When the Link is operating at 2.5 GT/s, the setting
2738 of this bit has no effect. */
2739 uint32_t emc : 1; /**< Enter Modified Compliance
2740 When this bit is set to 1b, the device transmits a modified
2741 compliance pattern if the LTSSM enters Polling.
2742 Compliance state. */
2743 uint32_t tm : 3; /**< Transmit Margin
2744 This field controls the value of the non-de-emphasized
2745 voltage level at the Transmitter pins:
2746 - 000: 800-1200 mV for full swing 400-600 mV for half-swing
2747 - 001-010: values must be monotonic with a non-zero slope
2748 - 011: 200-400 mV for full-swing and 100-200 mV for halfswing
2750 This field is reset to 000b on entry to the LTSSM Polling.
2751 Compliance substate.
2752 When operating in 5.0 GT/s mode with full swing, the
2753 de-emphasis ratio must be maintained within +/- 1 dB
2754 from the specification-defined operational value
2755 either -3.5 or -6 dB). */
2756 uint32_t sde : 1; /**< Selectable De-emphasis
2757 Not applicable for an upstream Port or Endpoint device.
2759 uint32_t hasd : 1; /**< Hardware Autonomous Speed Disable
2761 application must disable hardware from changing the Link
2762 speed for device-specific reasons other than attempting to
2763 correct unreliable Link operation by reducing Link speed.
2764 Initial transition to the highest supported common link
2765 speed is not blocked by this signal. */
2766 uint32_t ec : 1; /**< Enter Compliance
2767 Software is permitted to force a link to enter Compliance
2768 mode at the speed indicated in the Target Link Speed
2769 field by setting this bit to 1b in both components on a link
2770 and then initiating a hot reset on the link. */
2771 uint32_t tls : 4; /**< Target Link Speed
2772 For Downstream ports, this field sets an upper limit on link
2773 operational speed by restricting the values advertised by
2774 the upstream component in its training sequences:
2775 - 0001: 2.5Gb/s Target Link Speed
2776 - 0010: 5Gb/s Target Link Speed
2777 All other encodings are reserved.
2778 If a value is written to this field that does not correspond to
2779 a speed included in the Supported Link Speeds field, the
2780 result is undefined.
2781 For both Upstream and Downstream ports, this field is
2782 used to set the target compliance mode speed when
2783 software is using the Enter Compliance bit to force a link
2784 into compliance mode.
2785 Out of reset this will have a value of 1 or 2 which is
2786 selected by qlmCfgx[1]. */
2796 uint32_t reserved_13_15 : 3;
2798 uint32_t reserved_17_31 : 15;
2801 struct cvmx_pcieepx_cfg040_cn52xx
2803 #if __BYTE_ORDER == __BIG_ENDIAN
2804 uint32_t reserved_0_31 : 32;
2806 uint32_t reserved_0_31 : 32;
2809 struct cvmx_pcieepx_cfg040_cn52xx cn52xxp1;
2810 struct cvmx_pcieepx_cfg040_cn52xx cn56xx;
2811 struct cvmx_pcieepx_cfg040_cn52xx cn56xxp1;
2812 struct cvmx_pcieepx_cfg040_s cn63xx;
2813 struct cvmx_pcieepx_cfg040_s cn63xxp1;
2815 typedef union cvmx_pcieepx_cfg040 cvmx_pcieepx_cfg040_t;
2818 * cvmx_pcieep#_cfg041
2820 * PCIE_CFG041 = Fourty-second 32-bits of PCIE type 0 config space
2821 * (Slot Capabilities 2 Register)
2823 union cvmx_pcieepx_cfg041
2826 struct cvmx_pcieepx_cfg041_s
2828 #if __BYTE_ORDER == __BIG_ENDIAN
2829 uint32_t reserved_0_31 : 32;
2831 uint32_t reserved_0_31 : 32;
2834 struct cvmx_pcieepx_cfg041_s cn52xx;
2835 struct cvmx_pcieepx_cfg041_s cn52xxp1;
2836 struct cvmx_pcieepx_cfg041_s cn56xx;
2837 struct cvmx_pcieepx_cfg041_s cn56xxp1;
2838 struct cvmx_pcieepx_cfg041_s cn63xx;
2839 struct cvmx_pcieepx_cfg041_s cn63xxp1;
2841 typedef union cvmx_pcieepx_cfg041 cvmx_pcieepx_cfg041_t;
2844 * cvmx_pcieep#_cfg042
2846 * PCIE_CFG042 = Fourty-third 32-bits of PCIE type 0 config space
2847 * (Slot Control 2 Register/Slot Status 2 Register)
2849 union cvmx_pcieepx_cfg042
2852 struct cvmx_pcieepx_cfg042_s
2854 #if __BYTE_ORDER == __BIG_ENDIAN
2855 uint32_t reserved_0_31 : 32;
2857 uint32_t reserved_0_31 : 32;
2860 struct cvmx_pcieepx_cfg042_s cn52xx;
2861 struct cvmx_pcieepx_cfg042_s cn52xxp1;
2862 struct cvmx_pcieepx_cfg042_s cn56xx;
2863 struct cvmx_pcieepx_cfg042_s cn56xxp1;
2864 struct cvmx_pcieepx_cfg042_s cn63xx;
2865 struct cvmx_pcieepx_cfg042_s cn63xxp1;
2867 typedef union cvmx_pcieepx_cfg042 cvmx_pcieepx_cfg042_t;
2870 * cvmx_pcieep#_cfg064
2872 * PCIE_CFG064 = Sixty-fifth 32-bits of PCIE type 0 config space
2873 * (PCI Express Enhanced Capability Header)
2875 union cvmx_pcieepx_cfg064
2878 struct cvmx_pcieepx_cfg064_s
2880 #if __BYTE_ORDER == __BIG_ENDIAN
2881 uint32_t nco : 12; /**< Next Capability Offset */
2882 uint32_t cv : 4; /**< Capability Version */
2883 uint32_t pcieec : 16; /**< PCIE Express Extended Capability */
2885 uint32_t pcieec : 16;
2890 struct cvmx_pcieepx_cfg064_s cn52xx;
2891 struct cvmx_pcieepx_cfg064_s cn52xxp1;
2892 struct cvmx_pcieepx_cfg064_s cn56xx;
2893 struct cvmx_pcieepx_cfg064_s cn56xxp1;
2894 struct cvmx_pcieepx_cfg064_s cn63xx;
2895 struct cvmx_pcieepx_cfg064_s cn63xxp1;
2897 typedef union cvmx_pcieepx_cfg064 cvmx_pcieepx_cfg064_t;
2900 * cvmx_pcieep#_cfg065
2902 * PCIE_CFG065 = Sixty-sixth 32-bits of PCIE type 0 config space
2903 * (Uncorrectable Error Status Register)
2905 union cvmx_pcieepx_cfg065
2908 struct cvmx_pcieepx_cfg065_s
2910 #if __BYTE_ORDER == __BIG_ENDIAN
2911 uint32_t reserved_21_31 : 11;
2912 uint32_t ures : 1; /**< Unsupported Request Error Status */
2913 uint32_t ecrces : 1; /**< ECRC Error Status */
2914 uint32_t mtlps : 1; /**< Malformed TLP Status */
2915 uint32_t ros : 1; /**< Receiver Overflow Status */
2916 uint32_t ucs : 1; /**< Unexpected Completion Status */
2917 uint32_t cas : 1; /**< Completer Abort Status */
2918 uint32_t cts : 1; /**< Completion Timeout Status */
2919 uint32_t fcpes : 1; /**< Flow Control Protocol Error Status */
2920 uint32_t ptlps : 1; /**< Poisoned TLP Status */
2921 uint32_t reserved_6_11 : 6;
2922 uint32_t sdes : 1; /**< Surprise Down Error Status (not supported) */
2923 uint32_t dlpes : 1; /**< Data Link Protocol Error Status */
2924 uint32_t reserved_0_3 : 4;
2926 uint32_t reserved_0_3 : 4;
2929 uint32_t reserved_6_11 : 6;
2937 uint32_t ecrces : 1;
2939 uint32_t reserved_21_31 : 11;
2942 struct cvmx_pcieepx_cfg065_s cn52xx;
2943 struct cvmx_pcieepx_cfg065_s cn52xxp1;
2944 struct cvmx_pcieepx_cfg065_s cn56xx;
2945 struct cvmx_pcieepx_cfg065_s cn56xxp1;
2946 struct cvmx_pcieepx_cfg065_s cn63xx;
2947 struct cvmx_pcieepx_cfg065_s cn63xxp1;
2949 typedef union cvmx_pcieepx_cfg065 cvmx_pcieepx_cfg065_t;
2952 * cvmx_pcieep#_cfg066
2954 * PCIE_CFG066 = Sixty-seventh 32-bits of PCIE type 0 config space
2955 * (Uncorrectable Error Mask Register)
2957 union cvmx_pcieepx_cfg066
2960 struct cvmx_pcieepx_cfg066_s
2962 #if __BYTE_ORDER == __BIG_ENDIAN
2963 uint32_t reserved_21_31 : 11;
2964 uint32_t urem : 1; /**< Unsupported Request Error Mask */
2965 uint32_t ecrcem : 1; /**< ECRC Error Mask */
2966 uint32_t mtlpm : 1; /**< Malformed TLP Mask */
2967 uint32_t rom : 1; /**< Receiver Overflow Mask */
2968 uint32_t ucm : 1; /**< Unexpected Completion Mask */
2969 uint32_t cam : 1; /**< Completer Abort Mask */
2970 uint32_t ctm : 1; /**< Completion Timeout Mask */
2971 uint32_t fcpem : 1; /**< Flow Control Protocol Error Mask */
2972 uint32_t ptlpm : 1; /**< Poisoned TLP Mask */
2973 uint32_t reserved_6_11 : 6;
2974 uint32_t sdem : 1; /**< Surprise Down Error Mask (not supported) */
2975 uint32_t dlpem : 1; /**< Data Link Protocol Error Mask */
2976 uint32_t reserved_0_3 : 4;
2978 uint32_t reserved_0_3 : 4;
2981 uint32_t reserved_6_11 : 6;
2989 uint32_t ecrcem : 1;
2991 uint32_t reserved_21_31 : 11;
2994 struct cvmx_pcieepx_cfg066_s cn52xx;
2995 struct cvmx_pcieepx_cfg066_s cn52xxp1;
2996 struct cvmx_pcieepx_cfg066_s cn56xx;
2997 struct cvmx_pcieepx_cfg066_s cn56xxp1;
2998 struct cvmx_pcieepx_cfg066_s cn63xx;
2999 struct cvmx_pcieepx_cfg066_s cn63xxp1;
3001 typedef union cvmx_pcieepx_cfg066 cvmx_pcieepx_cfg066_t;
3004 * cvmx_pcieep#_cfg067
3006 * PCIE_CFG067 = Sixty-eighth 32-bits of PCIE type 0 config space
3007 * (Uncorrectable Error Severity Register)
3009 union cvmx_pcieepx_cfg067
3012 struct cvmx_pcieepx_cfg067_s
3014 #if __BYTE_ORDER == __BIG_ENDIAN
3015 uint32_t reserved_21_31 : 11;
3016 uint32_t ures : 1; /**< Unsupported Request Error Severity */
3017 uint32_t ecrces : 1; /**< ECRC Error Severity */
3018 uint32_t mtlps : 1; /**< Malformed TLP Severity */
3019 uint32_t ros : 1; /**< Receiver Overflow Severity */
3020 uint32_t ucs : 1; /**< Unexpected Completion Severity */
3021 uint32_t cas : 1; /**< Completer Abort Severity */
3022 uint32_t cts : 1; /**< Completion Timeout Severity */
3023 uint32_t fcpes : 1; /**< Flow Control Protocol Error Severity */
3024 uint32_t ptlps : 1; /**< Poisoned TLP Severity */
3025 uint32_t reserved_6_11 : 6;
3026 uint32_t sdes : 1; /**< Surprise Down Error Severity (not supported) */
3027 uint32_t dlpes : 1; /**< Data Link Protocol Error Severity */
3028 uint32_t reserved_0_3 : 4;
3030 uint32_t reserved_0_3 : 4;
3033 uint32_t reserved_6_11 : 6;
3041 uint32_t ecrces : 1;
3043 uint32_t reserved_21_31 : 11;
3046 struct cvmx_pcieepx_cfg067_s cn52xx;
3047 struct cvmx_pcieepx_cfg067_s cn52xxp1;
3048 struct cvmx_pcieepx_cfg067_s cn56xx;
3049 struct cvmx_pcieepx_cfg067_s cn56xxp1;
3050 struct cvmx_pcieepx_cfg067_s cn63xx;
3051 struct cvmx_pcieepx_cfg067_s cn63xxp1;
3053 typedef union cvmx_pcieepx_cfg067 cvmx_pcieepx_cfg067_t;
3056 * cvmx_pcieep#_cfg068
3058 * PCIE_CFG068 = Sixty-ninth 32-bits of PCIE type 0 config space
3059 * (Correctable Error Status Register)
3061 union cvmx_pcieepx_cfg068
3064 struct cvmx_pcieepx_cfg068_s
3066 #if __BYTE_ORDER == __BIG_ENDIAN
3067 uint32_t reserved_14_31 : 18;
3068 uint32_t anfes : 1; /**< Advisory Non-Fatal Error Status */
3069 uint32_t rtts : 1; /**< Reply Timer Timeout Status */
3070 uint32_t reserved_9_11 : 3;
3071 uint32_t rnrs : 1; /**< REPLAY_NUM Rollover Status */
3072 uint32_t bdllps : 1; /**< Bad DLLP Status */
3073 uint32_t btlps : 1; /**< Bad TLP Status */
3074 uint32_t reserved_1_5 : 5;
3075 uint32_t res : 1; /**< Receiver Error Status */
3078 uint32_t reserved_1_5 : 5;
3080 uint32_t bdllps : 1;
3082 uint32_t reserved_9_11 : 3;
3085 uint32_t reserved_14_31 : 18;
3088 struct cvmx_pcieepx_cfg068_s cn52xx;
3089 struct cvmx_pcieepx_cfg068_s cn52xxp1;
3090 struct cvmx_pcieepx_cfg068_s cn56xx;
3091 struct cvmx_pcieepx_cfg068_s cn56xxp1;
3092 struct cvmx_pcieepx_cfg068_s cn63xx;
3093 struct cvmx_pcieepx_cfg068_s cn63xxp1;
3095 typedef union cvmx_pcieepx_cfg068 cvmx_pcieepx_cfg068_t;
3098 * cvmx_pcieep#_cfg069
3100 * PCIE_CFG069 = Seventieth 32-bits of PCIE type 0 config space
3101 * (Correctable Error Mask Register)
3103 union cvmx_pcieepx_cfg069
3106 struct cvmx_pcieepx_cfg069_s
3108 #if __BYTE_ORDER == __BIG_ENDIAN
3109 uint32_t reserved_14_31 : 18;
3110 uint32_t anfem : 1; /**< Advisory Non-Fatal Error Mask */
3111 uint32_t rttm : 1; /**< Reply Timer Timeout Mask */
3112 uint32_t reserved_9_11 : 3;
3113 uint32_t rnrm : 1; /**< REPLAY_NUM Rollover Mask */
3114 uint32_t bdllpm : 1; /**< Bad DLLP Mask */
3115 uint32_t btlpm : 1; /**< Bad TLP Mask */
3116 uint32_t reserved_1_5 : 5;
3117 uint32_t rem : 1; /**< Receiver Error Mask */
3120 uint32_t reserved_1_5 : 5;
3122 uint32_t bdllpm : 1;
3124 uint32_t reserved_9_11 : 3;
3127 uint32_t reserved_14_31 : 18;
3130 struct cvmx_pcieepx_cfg069_s cn52xx;
3131 struct cvmx_pcieepx_cfg069_s cn52xxp1;
3132 struct cvmx_pcieepx_cfg069_s cn56xx;
3133 struct cvmx_pcieepx_cfg069_s cn56xxp1;
3134 struct cvmx_pcieepx_cfg069_s cn63xx;
3135 struct cvmx_pcieepx_cfg069_s cn63xxp1;
3137 typedef union cvmx_pcieepx_cfg069 cvmx_pcieepx_cfg069_t;
3140 * cvmx_pcieep#_cfg070
3142 * PCIE_CFG070 = Seventy-first 32-bits of PCIE type 0 config space
3143 * (Advanced Error Capabilities and Control Register)
3145 union cvmx_pcieepx_cfg070
3148 struct cvmx_pcieepx_cfg070_s
3150 #if __BYTE_ORDER == __BIG_ENDIAN
3151 uint32_t reserved_9_31 : 23;
3152 uint32_t ce : 1; /**< ECRC Check Enable */
3153 uint32_t cc : 1; /**< ECRC Check Capable */
3154 uint32_t ge : 1; /**< ECRC Generation Enable */
3155 uint32_t gc : 1; /**< ECRC Generation Capability */
3156 uint32_t fep : 5; /**< First Error Pointer */
3163 uint32_t reserved_9_31 : 23;
3166 struct cvmx_pcieepx_cfg070_s cn52xx;
3167 struct cvmx_pcieepx_cfg070_s cn52xxp1;
3168 struct cvmx_pcieepx_cfg070_s cn56xx;
3169 struct cvmx_pcieepx_cfg070_s cn56xxp1;
3170 struct cvmx_pcieepx_cfg070_s cn63xx;
3171 struct cvmx_pcieepx_cfg070_s cn63xxp1;
3173 typedef union cvmx_pcieepx_cfg070 cvmx_pcieepx_cfg070_t;
3176 * cvmx_pcieep#_cfg071
3178 * PCIE_CFG071 = Seventy-second 32-bits of PCIE type 0 config space
3179 * (Header Log Register 1)
3181 union cvmx_pcieepx_cfg071
3184 struct cvmx_pcieepx_cfg071_s
3186 #if __BYTE_ORDER == __BIG_ENDIAN
3187 uint32_t dword1 : 32; /**< Header Log Register (first DWORD) */
3189 uint32_t dword1 : 32;
3192 struct cvmx_pcieepx_cfg071_s cn52xx;
3193 struct cvmx_pcieepx_cfg071_s cn52xxp1;
3194 struct cvmx_pcieepx_cfg071_s cn56xx;
3195 struct cvmx_pcieepx_cfg071_s cn56xxp1;
3196 struct cvmx_pcieepx_cfg071_s cn63xx;
3197 struct cvmx_pcieepx_cfg071_s cn63xxp1;
3199 typedef union cvmx_pcieepx_cfg071 cvmx_pcieepx_cfg071_t;
3202 * cvmx_pcieep#_cfg072
3204 * PCIE_CFG072 = Seventy-third 32-bits of PCIE type 0 config space
3205 * (Header Log Register 2)
3207 union cvmx_pcieepx_cfg072
3210 struct cvmx_pcieepx_cfg072_s
3212 #if __BYTE_ORDER == __BIG_ENDIAN
3213 uint32_t dword2 : 32; /**< Header Log Register (second DWORD) */
3215 uint32_t dword2 : 32;
3218 struct cvmx_pcieepx_cfg072_s cn52xx;
3219 struct cvmx_pcieepx_cfg072_s cn52xxp1;
3220 struct cvmx_pcieepx_cfg072_s cn56xx;
3221 struct cvmx_pcieepx_cfg072_s cn56xxp1;
3222 struct cvmx_pcieepx_cfg072_s cn63xx;
3223 struct cvmx_pcieepx_cfg072_s cn63xxp1;
3225 typedef union cvmx_pcieepx_cfg072 cvmx_pcieepx_cfg072_t;
3228 * cvmx_pcieep#_cfg073
3230 * PCIE_CFG073 = Seventy-fourth 32-bits of PCIE type 0 config space
3231 * (Header Log Register 3)
3233 union cvmx_pcieepx_cfg073
3236 struct cvmx_pcieepx_cfg073_s
3238 #if __BYTE_ORDER == __BIG_ENDIAN
3239 uint32_t dword3 : 32; /**< Header Log Register (third DWORD) */
3241 uint32_t dword3 : 32;
3244 struct cvmx_pcieepx_cfg073_s cn52xx;
3245 struct cvmx_pcieepx_cfg073_s cn52xxp1;
3246 struct cvmx_pcieepx_cfg073_s cn56xx;
3247 struct cvmx_pcieepx_cfg073_s cn56xxp1;
3248 struct cvmx_pcieepx_cfg073_s cn63xx;
3249 struct cvmx_pcieepx_cfg073_s cn63xxp1;
3251 typedef union cvmx_pcieepx_cfg073 cvmx_pcieepx_cfg073_t;
3254 * cvmx_pcieep#_cfg074
3256 * PCIE_CFG074 = Seventy-fifth 32-bits of PCIE type 0 config space
3257 * (Header Log Register 4)
3259 union cvmx_pcieepx_cfg074
3262 struct cvmx_pcieepx_cfg074_s
3264 #if __BYTE_ORDER == __BIG_ENDIAN
3265 uint32_t dword4 : 32; /**< Header Log Register (fourth DWORD) */
3267 uint32_t dword4 : 32;
3270 struct cvmx_pcieepx_cfg074_s cn52xx;
3271 struct cvmx_pcieepx_cfg074_s cn52xxp1;
3272 struct cvmx_pcieepx_cfg074_s cn56xx;
3273 struct cvmx_pcieepx_cfg074_s cn56xxp1;
3274 struct cvmx_pcieepx_cfg074_s cn63xx;
3275 struct cvmx_pcieepx_cfg074_s cn63xxp1;
3277 typedef union cvmx_pcieepx_cfg074 cvmx_pcieepx_cfg074_t;
3280 * cvmx_pcieep#_cfg448
3282 * PCIE_CFG448 = Four hundred forty-ninth 32-bits of PCIE type 0 config space
3283 * (Ack Latency Timer and Replay Timer Register)
3285 union cvmx_pcieepx_cfg448
3288 struct cvmx_pcieepx_cfg448_s
3290 #if __BYTE_ORDER == __BIG_ENDIAN
3291 uint32_t rtl : 16; /**< Replay Time Limit
3292 The replay timer expires when it reaches this limit. The PCI
3293 Express bus initiates a replay upon reception of a Nak or when
3294 the replay timer expires.
3295 The default is then updated based on the Negotiated Link Width
3296 and Max_Payload_Size. */
3297 uint32_t rtltl : 16; /**< Round Trip Latency Time Limit
3298 The Ack/Nak latency timer expires when it reaches this limit.
3299 The default is then updated based on the Negotiated Link Width
3300 and Max_Payload_Size. */
3302 uint32_t rtltl : 16;
3306 struct cvmx_pcieepx_cfg448_s cn52xx;
3307 struct cvmx_pcieepx_cfg448_s cn52xxp1;
3308 struct cvmx_pcieepx_cfg448_s cn56xx;
3309 struct cvmx_pcieepx_cfg448_s cn56xxp1;
3310 struct cvmx_pcieepx_cfg448_s cn63xx;
3311 struct cvmx_pcieepx_cfg448_s cn63xxp1;
3313 typedef union cvmx_pcieepx_cfg448 cvmx_pcieepx_cfg448_t;
3316 * cvmx_pcieep#_cfg449
3318 * PCIE_CFG449 = Four hundred fiftieth 32-bits of PCIE type 0 config space
3319 * (Other Message Register)
3321 union cvmx_pcieepx_cfg449
3324 struct cvmx_pcieepx_cfg449_s
3326 #if __BYTE_ORDER == __BIG_ENDIAN
3327 uint32_t omr : 32; /**< Other Message Register
3328 This register can be used for either of the following purposes:
3329 o To send a specific PCI Express Message, the application
3330 writes the payload of the Message into this register, then
3331 sets bit 0 of the Port Link Control Register to send the
3333 o To store a corruption pattern for corrupting the LCRC on all
3334 TLPs, the application places a 32-bit corruption pattern into
3335 this register and enables this function by setting bit 25 of
3336 the Port Link Control Register. When enabled, the transmit
3337 LCRC result is XOR'd with this pattern before inserting
3338 it into the packet. */
3343 struct cvmx_pcieepx_cfg449_s cn52xx;
3344 struct cvmx_pcieepx_cfg449_s cn52xxp1;
3345 struct cvmx_pcieepx_cfg449_s cn56xx;
3346 struct cvmx_pcieepx_cfg449_s cn56xxp1;
3347 struct cvmx_pcieepx_cfg449_s cn63xx;
3348 struct cvmx_pcieepx_cfg449_s cn63xxp1;
3350 typedef union cvmx_pcieepx_cfg449 cvmx_pcieepx_cfg449_t;
3353 * cvmx_pcieep#_cfg450
3355 * PCIE_CFG450 = Four hundred fifty-first 32-bits of PCIE type 0 config space
3356 * (Port Force Link Register)
3358 union cvmx_pcieepx_cfg450
3361 struct cvmx_pcieepx_cfg450_s
3363 #if __BYTE_ORDER == __BIG_ENDIAN
3364 uint32_t lpec : 8; /**< Low Power Entrance Count
3365 The Power Management state will wait for this many clock cycles
3366 for the associated completion of a CfgWr to PCIE_CFG017 register
3367 Power State (PS) field register to go low-power. This register
3368 is intended for applications that do not let the PCI Express
3369 bus handle a completion for configuration request to the
3370 Power Management Control and Status (PCIE_CFG017) register. */
3371 uint32_t reserved_22_23 : 2;
3372 uint32_t link_state : 6; /**< Link State
3373 The Link state that the PCI Express Bus will be forced to
3374 when bit 15 (Force Link) is set.
3379 o POLL_COMPLIANCE 03h
3381 o PRE_DETECT_QUIET 05h
3383 o CFG_LINKWD_START 07h
3384 o CFG_LINKWD_ACEPT 08h
3385 o CFG_LANENUM_WAIT 09h
3386 o CFG_LANENUM_ACEPT 0Ah
3395 o L123_SEND_EIDLE 13h
3399 o DISABLED_ENTRY 17h
3405 o LPBK_EXIT_TIMEOUT 1Dh
3406 o HOT_RESET_ENTRY 1Eh
3408 uint32_t force_link : 1; /**< Force Link
3409 Forces the Link to the state specified by the Link State field.
3410 The Force Link pulse will trigger Link re-negotiation.
3411 * As the The Force Link is a pulse, writing a 1 to it does
3412 trigger the forced link state event, even thought reading it
3413 always returns a 0. */
3414 uint32_t reserved_8_14 : 7;
3415 uint32_t link_num : 8; /**< Link Number
3416 Not used for Endpoint */
3418 uint32_t link_num : 8;
3419 uint32_t reserved_8_14 : 7;
3420 uint32_t force_link : 1;
3421 uint32_t link_state : 6;
3422 uint32_t reserved_22_23 : 2;
3426 struct cvmx_pcieepx_cfg450_s cn52xx;
3427 struct cvmx_pcieepx_cfg450_s cn52xxp1;
3428 struct cvmx_pcieepx_cfg450_s cn56xx;
3429 struct cvmx_pcieepx_cfg450_s cn56xxp1;
3430 struct cvmx_pcieepx_cfg450_s cn63xx;
3431 struct cvmx_pcieepx_cfg450_s cn63xxp1;
3433 typedef union cvmx_pcieepx_cfg450 cvmx_pcieepx_cfg450_t;
3436 * cvmx_pcieep#_cfg451
3438 * PCIE_CFG451 = Four hundred fifty-second 32-bits of PCIE type 0 config space
3439 * (Ack Frequency Register)
3441 union cvmx_pcieepx_cfg451
3444 struct cvmx_pcieepx_cfg451_s
3446 #if __BYTE_ORDER == __BIG_ENDIAN
3447 uint32_t reserved_30_31 : 2;
3448 uint32_t l1el : 3; /**< L1 Entrance Latency
3449 Values correspond to:
3456 o 110 or 111: 64 ms */
3457 uint32_t l0el : 3; /**< L0s Entrance Latency
3458 Values correspond to:
3465 o 110 or 111: 7 ms */
3466 uint32_t n_fts_cc : 8; /**< N_FTS when common clock is used.
3467 The number of Fast Training Sequence ordered sets to be
3468 transmitted when transitioning from L0s to L0. The maximum
3469 number of FTS ordered-sets that a component can request is 255.
3470 Note: A value of zero is not supported; a value of
3471 zero can cause the LTSSM to go into the recovery state
3472 when exiting from L0s. */
3473 uint32_t n_fts : 8; /**< N_FTS
3474 The number of Fast Training Sequence ordered sets to be
3475 transmitted when transitioning from L0s to L0. The maximum
3476 number of FTS ordered-sets that a component can request is 255.
3477 Note: A value of zero is not supported; a value of
3478 zero can cause the LTSSM to go into the recovery state
3479 when exiting from L0s. */
3480 uint32_t ack_freq : 8; /**< Ack Frequency
3481 The number of pending Ack's specified here (up to 255) before
3484 uint32_t ack_freq : 8;
3486 uint32_t n_fts_cc : 8;
3489 uint32_t reserved_30_31 : 2;
3492 struct cvmx_pcieepx_cfg451_s cn52xx;
3493 struct cvmx_pcieepx_cfg451_s cn52xxp1;
3494 struct cvmx_pcieepx_cfg451_s cn56xx;
3495 struct cvmx_pcieepx_cfg451_s cn56xxp1;
3496 struct cvmx_pcieepx_cfg451_s cn63xx;
3497 struct cvmx_pcieepx_cfg451_s cn63xxp1;
3499 typedef union cvmx_pcieepx_cfg451 cvmx_pcieepx_cfg451_t;
3502 * cvmx_pcieep#_cfg452
3504 * PCIE_CFG452 = Four hundred fifty-third 32-bits of PCIE type 0 config space
3505 * (Port Link Control Register)
3507 union cvmx_pcieepx_cfg452
3510 struct cvmx_pcieepx_cfg452_s
3512 #if __BYTE_ORDER == __BIG_ENDIAN
3513 uint32_t reserved_26_31 : 6;
3514 uint32_t eccrc : 1; /**< Enable Corrupted CRC
3515 Causes corrupt LCRC for TLPs when set,
3516 using the pattern contained in the Other Message register.
3517 This is a test feature, not to be used in normal operation. */
3518 uint32_t reserved_22_24 : 3;
3519 uint32_t lme : 6; /**< Link Mode Enable
3523 o 001111: x8 (not supported)
3524 o 011111: x16 (not supported)
3525 o 111111: x32 (not supported)
3526 This field indicates the MAXIMUM number of lanes supported
3527 by the PCIe port. The value can be set less than 0x7
3528 to limit the number of lanes the PCIe will attempt to use.
3529 If the value of 0x7 set by the HW is not desired,
3530 this field can be programmed to a smaller value (i.e. EEPROM)
3532 (Note: The value of this field does NOT indicate the number
3533 of lanes in use by the PCIe. LME sets the max number of lanes
3534 in the PCIe core that COULD be used. As per the PCIe specs,
3535 the PCIe core can negotiate a smaller link width, so all
3536 of x4, x2, and x1 are supported when LME=0x7,
3538 uint32_t reserved_8_15 : 8;
3539 uint32_t flm : 1; /**< Fast Link Mode
3540 Sets all internal timers to fast mode for simulation purposes.
3541 If during an eeprom load, the first word loaded is 0xffffffff,
3542 then the EEPROM load will be terminated and this bit will be set. */
3543 uint32_t reserved_6_6 : 1;
3544 uint32_t dllle : 1; /**< DLL Link Enable
3545 Enables Link initialization. If DLL Link Enable = 0, the PCI
3546 Express bus does not transmit InitFC DLLPs and does not
3547 establish a Link. */
3548 uint32_t reserved_4_4 : 1;
3549 uint32_t ra : 1; /**< Reset Assert
3550 Triggers a recovery and forces the LTSSM to the Hot Reset
3551 state (downstream port only). */
3552 uint32_t le : 1; /**< Loopback Enable
3553 Initiate loopback mode as a master. On a 0->1 transition,
3554 the PCIe core sends TS ordered sets with the loopback bit set
3555 to cause the link partner to enter into loopback mode as a
3556 slave. Normal transmission is not possible when LE=1. To exit
3557 loopback mode, take the link through a reset sequence. */
3558 uint32_t sd : 1; /**< Scramble Disable
3559 Turns off data scrambling. */
3560 uint32_t omr : 1; /**< Other Message Request
3561 When software writes a `1' to this bit, the PCI Express bus
3562 transmits the Message contained in the Other Message register. */
3568 uint32_t reserved_4_4 : 1;
3570 uint32_t reserved_6_6 : 1;
3572 uint32_t reserved_8_15 : 8;
3574 uint32_t reserved_22_24 : 3;
3576 uint32_t reserved_26_31 : 6;
3579 struct cvmx_pcieepx_cfg452_s cn52xx;
3580 struct cvmx_pcieepx_cfg452_s cn52xxp1;
3581 struct cvmx_pcieepx_cfg452_s cn56xx;
3582 struct cvmx_pcieepx_cfg452_s cn56xxp1;
3583 struct cvmx_pcieepx_cfg452_s cn63xx;
3584 struct cvmx_pcieepx_cfg452_s cn63xxp1;
3586 typedef union cvmx_pcieepx_cfg452 cvmx_pcieepx_cfg452_t;
3589 * cvmx_pcieep#_cfg453
3591 * PCIE_CFG453 = Four hundred fifty-fourth 32-bits of PCIE type 0 config space
3592 * (Lane Skew Register)
3594 union cvmx_pcieepx_cfg453
3597 struct cvmx_pcieepx_cfg453_s
3599 #if __BYTE_ORDER == __BIG_ENDIAN
3600 uint32_t dlld : 1; /**< Disable Lane-to-Lane Deskew
3601 Disables the internal Lane-to-Lane deskew logic. */
3602 uint32_t reserved_26_30 : 5;
3603 uint32_t ack_nak : 1; /**< Ack/Nak Disable
3604 Prevents the PCI Express bus from sending Ack and Nak DLLPs. */
3605 uint32_t fcd : 1; /**< Flow Control Disable
3606 Prevents the PCI Express bus from sending FC DLLPs. */
3607 uint32_t ilst : 24; /**< Insert Lane Skew for Transmit
3608 Causes skew between lanes for test purposes. There are three
3609 bits per Lane. The value is in units of one symbol time. For
3610 example, the value 010b for a Lane forces a skew of two symbol
3611 times for that Lane. The maximum skew value for any Lane is 5
3616 uint32_t ack_nak : 1;
3617 uint32_t reserved_26_30 : 5;
3621 struct cvmx_pcieepx_cfg453_s cn52xx;
3622 struct cvmx_pcieepx_cfg453_s cn52xxp1;
3623 struct cvmx_pcieepx_cfg453_s cn56xx;
3624 struct cvmx_pcieepx_cfg453_s cn56xxp1;
3625 struct cvmx_pcieepx_cfg453_s cn63xx;
3626 struct cvmx_pcieepx_cfg453_s cn63xxp1;
3628 typedef union cvmx_pcieepx_cfg453 cvmx_pcieepx_cfg453_t;
3631 * cvmx_pcieep#_cfg454
3633 * PCIE_CFG454 = Four hundred fifty-fifth 32-bits of PCIE type 0 config space
3634 * (Symbol Number Register)
3636 union cvmx_pcieepx_cfg454
3639 struct cvmx_pcieepx_cfg454_s
3641 #if __BYTE_ORDER == __BIG_ENDIAN
3642 uint32_t reserved_29_31 : 3;
3643 uint32_t tmfcwt : 5; /**< Timer Modifier for Flow Control Watchdog Timer
3644 Increases the timer value for the Flow Control watchdog timer,
3645 in increments of 16 clock cycles. */
3646 uint32_t tmanlt : 5; /**< Timer Modifier for Ack/Nak Latency Timer
3647 Increases the timer value for the Ack/Nak latency timer, in
3648 increments of 64 clock cycles. */
3649 uint32_t tmrt : 5; /**< Timer Modifier for Replay Timer
3650 Increases the timer value for the replay timer, in increments
3651 of 64 clock cycles. */
3652 uint32_t reserved_11_13 : 3;
3653 uint32_t nskps : 3; /**< Number of SKP Symbols */
3654 uint32_t reserved_4_7 : 4;
3655 uint32_t ntss : 4; /**< Number of TS Symbols
3656 Sets the number of TS identifier symbols that are sent in TS1
3657 and TS2 ordered sets. */
3660 uint32_t reserved_4_7 : 4;
3662 uint32_t reserved_11_13 : 3;
3664 uint32_t tmanlt : 5;
3665 uint32_t tmfcwt : 5;
3666 uint32_t reserved_29_31 : 3;
3669 struct cvmx_pcieepx_cfg454_s cn52xx;
3670 struct cvmx_pcieepx_cfg454_s cn52xxp1;
3671 struct cvmx_pcieepx_cfg454_s cn56xx;
3672 struct cvmx_pcieepx_cfg454_s cn56xxp1;
3673 struct cvmx_pcieepx_cfg454_s cn63xx;
3674 struct cvmx_pcieepx_cfg454_s cn63xxp1;
3676 typedef union cvmx_pcieepx_cfg454 cvmx_pcieepx_cfg454_t;
3679 * cvmx_pcieep#_cfg455
3681 * PCIE_CFG455 = Four hundred fifty-sixth 32-bits of PCIE type 0 config space
3682 * (Symbol Timer Register/Filter Mask Register 1)
3684 union cvmx_pcieepx_cfg455
3687 struct cvmx_pcieepx_cfg455_s
3689 #if __BYTE_ORDER == __BIG_ENDIAN
3690 uint32_t m_cfg0_filt : 1; /**< Mask filtering of received Configuration Requests (RC mode only) */
3691 uint32_t m_io_filt : 1; /**< Mask filtering of received I/O Requests (RC mode only) */
3692 uint32_t msg_ctrl : 1; /**< Message Control
3693 The application must not change this field. */
3694 uint32_t m_cpl_ecrc_filt : 1; /**< Mask ECRC error filtering for Completions */
3695 uint32_t m_ecrc_filt : 1; /**< Mask ECRC error filtering */
3696 uint32_t m_cpl_len_err : 1; /**< Mask Length mismatch error for received Completions */
3697 uint32_t m_cpl_attr_err : 1; /**< Mask Attributes mismatch error for received Completions */
3698 uint32_t m_cpl_tc_err : 1; /**< Mask Traffic Class mismatch error for received Completions */
3699 uint32_t m_cpl_fun_err : 1; /**< Mask function mismatch error for received Completions */
3700 uint32_t m_cpl_rid_err : 1; /**< Mask Requester ID mismatch error for received Completions */
3701 uint32_t m_cpl_tag_err : 1; /**< Mask Tag error rules for received Completions */
3702 uint32_t m_lk_filt : 1; /**< Mask Locked Request filtering */
3703 uint32_t m_cfg1_filt : 1; /**< Mask Type 1 Configuration Request filtering */
3704 uint32_t m_bar_match : 1; /**< Mask BAR match filtering */
3705 uint32_t m_pois_filt : 1; /**< Mask poisoned TLP filtering */
3706 uint32_t m_fun : 1; /**< Mask function */
3707 uint32_t dfcwt : 1; /**< Disable FC Watchdog Timer */
3708 uint32_t reserved_11_14 : 4;
3709 uint32_t skpiv : 11; /**< SKP Interval Value */
3711 uint32_t skpiv : 11;
3712 uint32_t reserved_11_14 : 4;
3715 uint32_t m_pois_filt : 1;
3716 uint32_t m_bar_match : 1;
3717 uint32_t m_cfg1_filt : 1;
3718 uint32_t m_lk_filt : 1;
3719 uint32_t m_cpl_tag_err : 1;
3720 uint32_t m_cpl_rid_err : 1;
3721 uint32_t m_cpl_fun_err : 1;
3722 uint32_t m_cpl_tc_err : 1;
3723 uint32_t m_cpl_attr_err : 1;
3724 uint32_t m_cpl_len_err : 1;
3725 uint32_t m_ecrc_filt : 1;
3726 uint32_t m_cpl_ecrc_filt : 1;
3727 uint32_t msg_ctrl : 1;
3728 uint32_t m_io_filt : 1;
3729 uint32_t m_cfg0_filt : 1;
3732 struct cvmx_pcieepx_cfg455_s cn52xx;
3733 struct cvmx_pcieepx_cfg455_s cn52xxp1;
3734 struct cvmx_pcieepx_cfg455_s cn56xx;
3735 struct cvmx_pcieepx_cfg455_s cn56xxp1;
3736 struct cvmx_pcieepx_cfg455_s cn63xx;
3737 struct cvmx_pcieepx_cfg455_s cn63xxp1;
3739 typedef union cvmx_pcieepx_cfg455 cvmx_pcieepx_cfg455_t;
3742 * cvmx_pcieep#_cfg456
3744 * PCIE_CFG456 = Four hundred fifty-seventh 32-bits of PCIE type 0 config space
3745 * (Filter Mask Register 2)
3747 union cvmx_pcieepx_cfg456
3750 struct cvmx_pcieepx_cfg456_s
3752 #if __BYTE_ORDER == __BIG_ENDIAN
3753 uint32_t reserved_2_31 : 30;
3754 uint32_t m_vend1_drp : 1; /**< Mask Vendor MSG Type 1 dropped silently */
3755 uint32_t m_vend0_drp : 1; /**< Mask Vendor MSG Type 0 dropped with UR error reporting. */
3757 uint32_t m_vend0_drp : 1;
3758 uint32_t m_vend1_drp : 1;
3759 uint32_t reserved_2_31 : 30;
3762 struct cvmx_pcieepx_cfg456_s cn52xx;
3763 struct cvmx_pcieepx_cfg456_s cn52xxp1;
3764 struct cvmx_pcieepx_cfg456_s cn56xx;
3765 struct cvmx_pcieepx_cfg456_s cn56xxp1;
3766 struct cvmx_pcieepx_cfg456_s cn63xx;
3767 struct cvmx_pcieepx_cfg456_s cn63xxp1;
3769 typedef union cvmx_pcieepx_cfg456 cvmx_pcieepx_cfg456_t;
3772 * cvmx_pcieep#_cfg458
3774 * PCIE_CFG458 = Four hundred fifty-ninth 32-bits of PCIE type 0 config space
3775 * (Debug Register 0)
3777 union cvmx_pcieepx_cfg458
3780 struct cvmx_pcieepx_cfg458_s
3782 #if __BYTE_ORDER == __BIG_ENDIAN
3783 uint32_t dbg_info_l32 : 32; /**< Debug Info Lower 32 Bits */
3785 uint32_t dbg_info_l32 : 32;
3788 struct cvmx_pcieepx_cfg458_s cn52xx;
3789 struct cvmx_pcieepx_cfg458_s cn52xxp1;
3790 struct cvmx_pcieepx_cfg458_s cn56xx;
3791 struct cvmx_pcieepx_cfg458_s cn56xxp1;
3792 struct cvmx_pcieepx_cfg458_s cn63xx;
3793 struct cvmx_pcieepx_cfg458_s cn63xxp1;
3795 typedef union cvmx_pcieepx_cfg458 cvmx_pcieepx_cfg458_t;
3798 * cvmx_pcieep#_cfg459
3800 * PCIE_CFG459 = Four hundred sixtieth 32-bits of PCIE type 0 config space
3801 * (Debug Register 1)
3803 union cvmx_pcieepx_cfg459
3806 struct cvmx_pcieepx_cfg459_s
3808 #if __BYTE_ORDER == __BIG_ENDIAN
3809 uint32_t dbg_info_u32 : 32; /**< Debug Info Upper 32 Bits */
3811 uint32_t dbg_info_u32 : 32;
3814 struct cvmx_pcieepx_cfg459_s cn52xx;
3815 struct cvmx_pcieepx_cfg459_s cn52xxp1;
3816 struct cvmx_pcieepx_cfg459_s cn56xx;
3817 struct cvmx_pcieepx_cfg459_s cn56xxp1;
3818 struct cvmx_pcieepx_cfg459_s cn63xx;
3819 struct cvmx_pcieepx_cfg459_s cn63xxp1;
3821 typedef union cvmx_pcieepx_cfg459 cvmx_pcieepx_cfg459_t;
3824 * cvmx_pcieep#_cfg460
3826 * PCIE_CFG460 = Four hundred sixty-first 32-bits of PCIE type 0 config space
3827 * (Transmit Posted FC Credit Status)
3829 union cvmx_pcieepx_cfg460
3832 struct cvmx_pcieepx_cfg460_s
3834 #if __BYTE_ORDER == __BIG_ENDIAN
3835 uint32_t reserved_20_31 : 12;
3836 uint32_t tphfcc : 8; /**< Transmit Posted Header FC Credits
3837 The Posted Header credits advertised by the receiver at the
3838 other end of the Link, updated with each UpdateFC DLLP. */
3839 uint32_t tpdfcc : 12; /**< Transmit Posted Data FC Credits
3840 The Posted Data credits advertised by the receiver at the other
3841 end of the Link, updated with each UpdateFC DLLP. */
3843 uint32_t tpdfcc : 12;
3844 uint32_t tphfcc : 8;
3845 uint32_t reserved_20_31 : 12;
3848 struct cvmx_pcieepx_cfg460_s cn52xx;
3849 struct cvmx_pcieepx_cfg460_s cn52xxp1;
3850 struct cvmx_pcieepx_cfg460_s cn56xx;
3851 struct cvmx_pcieepx_cfg460_s cn56xxp1;
3852 struct cvmx_pcieepx_cfg460_s cn63xx;
3853 struct cvmx_pcieepx_cfg460_s cn63xxp1;
3855 typedef union cvmx_pcieepx_cfg460 cvmx_pcieepx_cfg460_t;
3858 * cvmx_pcieep#_cfg461
3860 * PCIE_CFG461 = Four hundred sixty-second 32-bits of PCIE type 0 config space
3861 * (Transmit Non-Posted FC Credit Status)
3863 union cvmx_pcieepx_cfg461
3866 struct cvmx_pcieepx_cfg461_s
3868 #if __BYTE_ORDER == __BIG_ENDIAN
3869 uint32_t reserved_20_31 : 12;
3870 uint32_t tchfcc : 8; /**< Transmit Non-Posted Header FC Credits
3871 The Non-Posted Header credits advertised by the receiver at the
3872 other end of the Link, updated with each UpdateFC DLLP. */
3873 uint32_t tcdfcc : 12; /**< Transmit Non-Posted Data FC Credits
3874 The Non-Posted Data credits advertised by the receiver at the
3875 other end of the Link, updated with each UpdateFC DLLP. */
3877 uint32_t tcdfcc : 12;
3878 uint32_t tchfcc : 8;
3879 uint32_t reserved_20_31 : 12;
3882 struct cvmx_pcieepx_cfg461_s cn52xx;
3883 struct cvmx_pcieepx_cfg461_s cn52xxp1;
3884 struct cvmx_pcieepx_cfg461_s cn56xx;
3885 struct cvmx_pcieepx_cfg461_s cn56xxp1;
3886 struct cvmx_pcieepx_cfg461_s cn63xx;
3887 struct cvmx_pcieepx_cfg461_s cn63xxp1;
3889 typedef union cvmx_pcieepx_cfg461 cvmx_pcieepx_cfg461_t;
3892 * cvmx_pcieep#_cfg462
3894 * PCIE_CFG462 = Four hundred sixty-third 32-bits of PCIE type 0 config space
3895 * (Transmit Completion FC Credit Status )
3897 union cvmx_pcieepx_cfg462
3900 struct cvmx_pcieepx_cfg462_s
3902 #if __BYTE_ORDER == __BIG_ENDIAN
3903 uint32_t reserved_20_31 : 12;
3904 uint32_t tchfcc : 8; /**< Transmit Completion Header FC Credits
3905 The Completion Header credits advertised by the receiver at the
3906 other end of the Link, updated with each UpdateFC DLLP. */
3907 uint32_t tcdfcc : 12; /**< Transmit Completion Data FC Credits
3908 The Completion Data credits advertised by the receiver at the
3909 other end of the Link, updated with each UpdateFC DLLP. */
3911 uint32_t tcdfcc : 12;
3912 uint32_t tchfcc : 8;
3913 uint32_t reserved_20_31 : 12;
3916 struct cvmx_pcieepx_cfg462_s cn52xx;
3917 struct cvmx_pcieepx_cfg462_s cn52xxp1;
3918 struct cvmx_pcieepx_cfg462_s cn56xx;
3919 struct cvmx_pcieepx_cfg462_s cn56xxp1;
3920 struct cvmx_pcieepx_cfg462_s cn63xx;
3921 struct cvmx_pcieepx_cfg462_s cn63xxp1;
3923 typedef union cvmx_pcieepx_cfg462 cvmx_pcieepx_cfg462_t;
3926 * cvmx_pcieep#_cfg463
3928 * PCIE_CFG463 = Four hundred sixty-fourth 32-bits of PCIE type 0 config space
3931 union cvmx_pcieepx_cfg463
3934 struct cvmx_pcieepx_cfg463_s
3936 #if __BYTE_ORDER == __BIG_ENDIAN
3937 uint32_t reserved_3_31 : 29;
3938 uint32_t rqne : 1; /**< Received Queue Not Empty
3939 Indicates there is data in one or more of the receive buffers. */
3940 uint32_t trbne : 1; /**< Transmit Retry Buffer Not Empty
3941 Indicates that there is data in the transmit retry buffer. */
3942 uint32_t rtlpfccnr : 1; /**< Received TLP FC Credits Not Returned
3943 Indicates that the PCI Express bus has sent a TLP but has not
3944 yet received an UpdateFC DLLP indicating that the credits for
3945 that TLP have been restored by the receiver at the other end of
3948 uint32_t rtlpfccnr : 1;
3951 uint32_t reserved_3_31 : 29;
3954 struct cvmx_pcieepx_cfg463_s cn52xx;
3955 struct cvmx_pcieepx_cfg463_s cn52xxp1;
3956 struct cvmx_pcieepx_cfg463_s cn56xx;
3957 struct cvmx_pcieepx_cfg463_s cn56xxp1;
3958 struct cvmx_pcieepx_cfg463_s cn63xx;
3959 struct cvmx_pcieepx_cfg463_s cn63xxp1;
3961 typedef union cvmx_pcieepx_cfg463 cvmx_pcieepx_cfg463_t;
3964 * cvmx_pcieep#_cfg464
3966 * PCIE_CFG464 = Four hundred sixty-fifth 32-bits of PCIE type 0 config space
3967 * (VC Transmit Arbitration Register 1)
3969 union cvmx_pcieepx_cfg464
3972 struct cvmx_pcieepx_cfg464_s
3974 #if __BYTE_ORDER == __BIG_ENDIAN
3975 uint32_t wrr_vc3 : 8; /**< WRR Weight for VC3 */
3976 uint32_t wrr_vc2 : 8; /**< WRR Weight for VC2 */
3977 uint32_t wrr_vc1 : 8; /**< WRR Weight for VC1 */
3978 uint32_t wrr_vc0 : 8; /**< WRR Weight for VC0 */
3980 uint32_t wrr_vc0 : 8;
3981 uint32_t wrr_vc1 : 8;
3982 uint32_t wrr_vc2 : 8;
3983 uint32_t wrr_vc3 : 8;
3986 struct cvmx_pcieepx_cfg464_s cn52xx;
3987 struct cvmx_pcieepx_cfg464_s cn52xxp1;
3988 struct cvmx_pcieepx_cfg464_s cn56xx;
3989 struct cvmx_pcieepx_cfg464_s cn56xxp1;
3990 struct cvmx_pcieepx_cfg464_s cn63xx;
3991 struct cvmx_pcieepx_cfg464_s cn63xxp1;
3993 typedef union cvmx_pcieepx_cfg464 cvmx_pcieepx_cfg464_t;
3996 * cvmx_pcieep#_cfg465
3998 * PCIE_CFG465 = Four hundred sixty-sixth 32-bits of PCIE type 0 config space
3999 * (VC Transmit Arbitration Register 2)
4001 union cvmx_pcieepx_cfg465
4004 struct cvmx_pcieepx_cfg465_s
4006 #if __BYTE_ORDER == __BIG_ENDIAN
4007 uint32_t wrr_vc7 : 8; /**< WRR Weight for VC7 */
4008 uint32_t wrr_vc6 : 8; /**< WRR Weight for VC6 */
4009 uint32_t wrr_vc5 : 8; /**< WRR Weight for VC5 */
4010 uint32_t wrr_vc4 : 8; /**< WRR Weight for VC4 */
4012 uint32_t wrr_vc4 : 8;
4013 uint32_t wrr_vc5 : 8;
4014 uint32_t wrr_vc6 : 8;
4015 uint32_t wrr_vc7 : 8;
4018 struct cvmx_pcieepx_cfg465_s cn52xx;
4019 struct cvmx_pcieepx_cfg465_s cn52xxp1;
4020 struct cvmx_pcieepx_cfg465_s cn56xx;
4021 struct cvmx_pcieepx_cfg465_s cn56xxp1;
4022 struct cvmx_pcieepx_cfg465_s cn63xx;
4023 struct cvmx_pcieepx_cfg465_s cn63xxp1;
4025 typedef union cvmx_pcieepx_cfg465 cvmx_pcieepx_cfg465_t;
4028 * cvmx_pcieep#_cfg466
4030 * PCIE_CFG466 = Four hundred sixty-seventh 32-bits of PCIE type 0 config space
4031 * (VC0 Posted Receive Queue Control)
4033 union cvmx_pcieepx_cfg466
4036 struct cvmx_pcieepx_cfg466_s
4038 #if __BYTE_ORDER == __BIG_ENDIAN
4039 uint32_t rx_queue_order : 1; /**< VC Ordering for Receive Queues
4040 Determines the VC ordering rule for the receive queues, used
4041 only in the segmented-buffer configuration,
4042 writable through PEM(0..1)_CFG_WR:
4043 o 1: Strict ordering, higher numbered VCs have higher priority
4045 However, the application must not change this field. */
4046 uint32_t type_ordering : 1; /**< TLP Type Ordering for VC0
4047 Determines the TLP type ordering rule for VC0 receive queues,
4048 used only in the segmented-buffer configuration, writable
4049 through PEM(0..1)_CFG_WR:
4050 o 1: Ordering of received TLPs follows the rules in
4051 PCI Express Base Specification
4052 o 0: Strict ordering for received TLPs: Posted, then
4053 Completion, then Non-Posted
4054 However, the application must not change this field. */
4055 uint32_t reserved_24_29 : 6;
4056 uint32_t queue_mode : 3; /**< VC0 Posted TLP Queue Mode
4057 The operating mode of the Posted receive queue for VC0, used
4058 only in the segmented-buffer configuration, writable through
4060 However, the application must not change this field.
4061 Only one bit can be set at a time:
4063 o Bit 22: Cut-through
4064 o Bit 21: Store-and-forward */
4065 uint32_t reserved_20_20 : 1;
4066 uint32_t header_credits : 8; /**< VC0 Posted Header Credits
4067 The number of initial Posted header credits for VC0, used for
4068 all receive queue buffer configurations.
4069 This field is writable through PEM(0..1)_CFG_WR.
4070 However, the application must not change this field. */
4071 uint32_t data_credits : 12; /**< VC0 Posted Data Credits
4072 The number of initial Posted data credits for VC0, used for all
4073 receive queue buffer configurations.
4074 This field is writable through PEM(0..1)_CFG_WR.
4075 However, the application must not change this field. */
4077 uint32_t data_credits : 12;
4078 uint32_t header_credits : 8;
4079 uint32_t reserved_20_20 : 1;
4080 uint32_t queue_mode : 3;
4081 uint32_t reserved_24_29 : 6;
4082 uint32_t type_ordering : 1;
4083 uint32_t rx_queue_order : 1;
4086 struct cvmx_pcieepx_cfg466_s cn52xx;
4087 struct cvmx_pcieepx_cfg466_s cn52xxp1;
4088 struct cvmx_pcieepx_cfg466_s cn56xx;
4089 struct cvmx_pcieepx_cfg466_s cn56xxp1;
4090 struct cvmx_pcieepx_cfg466_s cn63xx;
4091 struct cvmx_pcieepx_cfg466_s cn63xxp1;
4093 typedef union cvmx_pcieepx_cfg466 cvmx_pcieepx_cfg466_t;
4096 * cvmx_pcieep#_cfg467
4098 * PCIE_CFG467 = Four hundred sixty-eighth 32-bits of PCIE type 0 config space
4099 * (VC0 Non-Posted Receive Queue Control)
4101 union cvmx_pcieepx_cfg467
4104 struct cvmx_pcieepx_cfg467_s
4106 #if __BYTE_ORDER == __BIG_ENDIAN
4107 uint32_t reserved_24_31 : 8;
4108 uint32_t queue_mode : 3; /**< VC0 Non-Posted TLP Queue Mode
4109 The operating mode of the Non-Posted receive queue for VC0,
4110 used only in the segmented-buffer configuration, writable
4111 through PEM(0..1)_CFG_WR.
4112 Only one bit can be set at a time:
4114 o Bit 22: Cut-through
4115 o Bit 21: Store-and-forward
4116 However, the application must not change this field. */
4117 uint32_t reserved_20_20 : 1;
4118 uint32_t header_credits : 8; /**< VC0 Non-Posted Header Credits
4119 The number of initial Non-Posted header credits for VC0, used
4120 for all receive queue buffer configurations.
4121 This field is writable through PEM(0..1)_CFG_WR.
4122 However, the application must not change this field. */
4123 uint32_t data_credits : 12; /**< VC0 Non-Posted Data Credits
4124 The number of initial Non-Posted data credits for VC0, used for
4125 all receive queue buffer configurations.
4126 This field is writable through PEM(0..1)_CFG_WR.
4127 However, the application must not change this field. */
4129 uint32_t data_credits : 12;
4130 uint32_t header_credits : 8;
4131 uint32_t reserved_20_20 : 1;
4132 uint32_t queue_mode : 3;
4133 uint32_t reserved_24_31 : 8;
4136 struct cvmx_pcieepx_cfg467_s cn52xx;
4137 struct cvmx_pcieepx_cfg467_s cn52xxp1;
4138 struct cvmx_pcieepx_cfg467_s cn56xx;
4139 struct cvmx_pcieepx_cfg467_s cn56xxp1;
4140 struct cvmx_pcieepx_cfg467_s cn63xx;
4141 struct cvmx_pcieepx_cfg467_s cn63xxp1;
4143 typedef union cvmx_pcieepx_cfg467 cvmx_pcieepx_cfg467_t;
4146 * cvmx_pcieep#_cfg468
4148 * PCIE_CFG468 = Four hundred sixty-ninth 32-bits of PCIE type 0 config space
4149 * (VC0 Completion Receive Queue Control)
4151 union cvmx_pcieepx_cfg468
4154 struct cvmx_pcieepx_cfg468_s
4156 #if __BYTE_ORDER == __BIG_ENDIAN
4157 uint32_t reserved_24_31 : 8;
4158 uint32_t queue_mode : 3; /**< VC0 Completion TLP Queue Mode
4159 The operating mode of the Completion receive queue for VC0,
4160 used only in the segmented-buffer configuration, writable
4161 through PEM(0..1)_CFG_WR.
4162 Only one bit can be set at a time:
4164 o Bit 22: Cut-through
4165 o Bit 21: Store-and-forward
4166 However, the application must not change this field. */
4167 uint32_t reserved_20_20 : 1;
4168 uint32_t header_credits : 8; /**< VC0 Completion Header Credits
4169 The number of initial Completion header credits for VC0, used
4170 for all receive queue buffer configurations.
4171 This field is writable through PEM(0..1)_CFG_WR.
4172 However, the application must not change this field. */
4173 uint32_t data_credits : 12; /**< VC0 Completion Data Credits
4174 The number of initial Completion data credits for VC0, used for
4175 all receive queue buffer configurations.
4176 This field is writable through PEM(0..1)_CFG_WR.
4177 However, the application must not change this field. */
4179 uint32_t data_credits : 12;
4180 uint32_t header_credits : 8;
4181 uint32_t reserved_20_20 : 1;
4182 uint32_t queue_mode : 3;
4183 uint32_t reserved_24_31 : 8;
4186 struct cvmx_pcieepx_cfg468_s cn52xx;
4187 struct cvmx_pcieepx_cfg468_s cn52xxp1;
4188 struct cvmx_pcieepx_cfg468_s cn56xx;
4189 struct cvmx_pcieepx_cfg468_s cn56xxp1;
4190 struct cvmx_pcieepx_cfg468_s cn63xx;
4191 struct cvmx_pcieepx_cfg468_s cn63xxp1;
4193 typedef union cvmx_pcieepx_cfg468 cvmx_pcieepx_cfg468_t;
4196 * cvmx_pcieep#_cfg490
4198 * PCIE_CFG490 = Four hundred ninety-first 32-bits of PCIE type 0 config space
4199 * (VC0 Posted Buffer Depth)
4201 union cvmx_pcieepx_cfg490
4204 struct cvmx_pcieepx_cfg490_s
4206 #if __BYTE_ORDER == __BIG_ENDIAN
4207 uint32_t reserved_26_31 : 6;
4208 uint32_t header_depth : 10; /**< VC0 Posted Header Queue Depth
4209 Sets the number of entries in the Posted header queue for VC0
4210 when using the segmented-buffer configuration, writable through
4212 However, the application must not change this field. */
4213 uint32_t reserved_14_15 : 2;
4214 uint32_t data_depth : 14; /**< VC0 Posted Data Queue Depth
4215 Sets the number of entries in the Posted data queue for VC0
4216 when using the segmented-buffer configuration, writable
4217 through PEM(0..1)_CFG_WR.
4218 However, the application must not change this field. */
4220 uint32_t data_depth : 14;
4221 uint32_t reserved_14_15 : 2;
4222 uint32_t header_depth : 10;
4223 uint32_t reserved_26_31 : 6;
4226 struct cvmx_pcieepx_cfg490_s cn52xx;
4227 struct cvmx_pcieepx_cfg490_s cn52xxp1;
4228 struct cvmx_pcieepx_cfg490_s cn56xx;
4229 struct cvmx_pcieepx_cfg490_s cn56xxp1;
4230 struct cvmx_pcieepx_cfg490_s cn63xx;
4231 struct cvmx_pcieepx_cfg490_s cn63xxp1;
4233 typedef union cvmx_pcieepx_cfg490 cvmx_pcieepx_cfg490_t;
4236 * cvmx_pcieep#_cfg491
4238 * PCIE_CFG491 = Four hundred ninety-second 32-bits of PCIE type 0 config space
4239 * (VC0 Non-Posted Buffer Depth)
4241 union cvmx_pcieepx_cfg491
4244 struct cvmx_pcieepx_cfg491_s
4246 #if __BYTE_ORDER == __BIG_ENDIAN
4247 uint32_t reserved_26_31 : 6;
4248 uint32_t header_depth : 10; /**< VC0 Non-Posted Header Queue Depth
4249 Sets the number of entries in the Non-Posted header queue for
4250 VC0 when using the segmented-buffer configuration, writable
4251 through PEM(0..1)_CFG_WR.
4252 However, the application must not change this field. */
4253 uint32_t reserved_14_15 : 2;
4254 uint32_t data_depth : 14; /**< VC0 Non-Posted Data Queue Depth
4255 Sets the number of entries in the Non-Posted data queue for VC0
4256 when using the segmented-buffer configuration, writable
4257 through PEM(0..1)_CFG_WR.
4258 However, the application must not change this field. */
4260 uint32_t data_depth : 14;
4261 uint32_t reserved_14_15 : 2;
4262 uint32_t header_depth : 10;
4263 uint32_t reserved_26_31 : 6;
4266 struct cvmx_pcieepx_cfg491_s cn52xx;
4267 struct cvmx_pcieepx_cfg491_s cn52xxp1;
4268 struct cvmx_pcieepx_cfg491_s cn56xx;
4269 struct cvmx_pcieepx_cfg491_s cn56xxp1;
4270 struct cvmx_pcieepx_cfg491_s cn63xx;
4271 struct cvmx_pcieepx_cfg491_s cn63xxp1;
4273 typedef union cvmx_pcieepx_cfg491 cvmx_pcieepx_cfg491_t;
4276 * cvmx_pcieep#_cfg492
4278 * PCIE_CFG492 = Four hundred ninety-third 32-bits of PCIE type 0 config space
4279 * (VC0 Completion Buffer Depth)
4281 union cvmx_pcieepx_cfg492
4284 struct cvmx_pcieepx_cfg492_s
4286 #if __BYTE_ORDER == __BIG_ENDIAN
4287 uint32_t reserved_26_31 : 6;
4288 uint32_t header_depth : 10; /**< VC0 Completion Header Queue Depth
4289 Sets the number of entries in the Completion header queue for
4290 VC0 when using the segmented-buffer configuration, writable
4291 through PEM(0..1)_CFG_WR.
4292 However, the application must not change this field. */
4293 uint32_t reserved_14_15 : 2;
4294 uint32_t data_depth : 14; /**< VC0 Completion Data Queue Depth
4295 Sets the number of entries in the Completion data queue for VC0
4296 when using the segmented-buffer configuration, writable
4297 through PEM(0..1)_CFG_WR.
4298 However, the application must not change this field. */
4300 uint32_t data_depth : 14;
4301 uint32_t reserved_14_15 : 2;
4302 uint32_t header_depth : 10;
4303 uint32_t reserved_26_31 : 6;
4306 struct cvmx_pcieepx_cfg492_s cn52xx;
4307 struct cvmx_pcieepx_cfg492_s cn52xxp1;
4308 struct cvmx_pcieepx_cfg492_s cn56xx;
4309 struct cvmx_pcieepx_cfg492_s cn56xxp1;
4310 struct cvmx_pcieepx_cfg492_s cn63xx;
4311 struct cvmx_pcieepx_cfg492_s cn63xxp1;
4313 typedef union cvmx_pcieepx_cfg492 cvmx_pcieepx_cfg492_t;
4316 * cvmx_pcieep#_cfg515
4318 * PCIE_CFG515 = Five hundred sixteenth 32-bits of PCIE type 0 config space
4319 * (Port Logic Register (Gen2))
4321 union cvmx_pcieepx_cfg515
4324 struct cvmx_pcieepx_cfg515_s
4326 #if __BYTE_ORDER == __BIG_ENDIAN
4327 uint32_t reserved_21_31 : 11;
4328 uint32_t s_d_e : 1; /**< SEL_DE_EMPHASIS
4329 Used to set the de-emphasis level for upstream ports. */
4330 uint32_t ctcrb : 1; /**< Config Tx Compliance Receive Bit
4331 When set to 1, signals LTSSM to transmit TS ordered sets
4332 with the compliance receive bit assert (equal to 1). */
4333 uint32_t cpyts : 1; /**< Config PHY Tx Swing
4334 Indicates the voltage level the PHY should drive. When set to
4335 1, indicates Full Swing. When set to 0, indicates Low Swing */
4336 uint32_t dsc : 1; /**< Directed Speed Change
4337 Indicates to the LTSSM whether or not to initiate a speed
4339 uint32_t le : 9; /**< Lane Enable
4340 Indicates the number of lanes to check for exit from electrical
4341 idle in Polling.Active and Polling.Compliance. 1 = x1, 2 = x2,
4342 etc. Used to limit the maximum link width to ignore broken
4343 lanes that detect a receiver, but will not exit electrical
4345 would otherwise prevent a valid link from being configured. */
4346 uint32_t n_fts : 8; /**< N_FTS
4347 Sets the Number of Fast Training Sequences (N_FTS) that
4348 the core advertises as its N_FTS during GEN2 Link training.
4349 This value is used to inform the Link partner about the PHYs
4350 ability to recover synchronization after a low power state.
4351 Note: Do not set N_FTS to zero; doing so can cause the
4352 LTSSM to go into the recovery state when exiting from
4361 uint32_t reserved_21_31 : 11;
4364 struct cvmx_pcieepx_cfg515_s cn63xx;
4365 struct cvmx_pcieepx_cfg515_s cn63xxp1;
4367 typedef union cvmx_pcieepx_cfg515 cvmx_pcieepx_cfg515_t;
4370 * cvmx_pcieep#_cfg516
4372 * PCIE_CFG516 = Five hundred seventeenth 32-bits of PCIE type 0 config space
4373 * (PHY Status Register)
4375 union cvmx_pcieepx_cfg516
4378 struct cvmx_pcieepx_cfg516_s
4380 #if __BYTE_ORDER == __BIG_ENDIAN
4381 uint32_t phy_stat : 32; /**< PHY Status */
4383 uint32_t phy_stat : 32;
4386 struct cvmx_pcieepx_cfg516_s cn52xx;
4387 struct cvmx_pcieepx_cfg516_s cn52xxp1;
4388 struct cvmx_pcieepx_cfg516_s cn56xx;
4389 struct cvmx_pcieepx_cfg516_s cn56xxp1;
4390 struct cvmx_pcieepx_cfg516_s cn63xx;
4391 struct cvmx_pcieepx_cfg516_s cn63xxp1;
4393 typedef union cvmx_pcieepx_cfg516 cvmx_pcieepx_cfg516_t;
4396 * cvmx_pcieep#_cfg517
4398 * PCIE_CFG517 = Five hundred eighteenth 32-bits of PCIE type 0 config space
4399 * (PHY Control Register)
4401 union cvmx_pcieepx_cfg517
4404 struct cvmx_pcieepx_cfg517_s
4406 #if __BYTE_ORDER == __BIG_ENDIAN
4407 uint32_t phy_ctrl : 32; /**< PHY Control */
4409 uint32_t phy_ctrl : 32;
4412 struct cvmx_pcieepx_cfg517_s cn52xx;
4413 struct cvmx_pcieepx_cfg517_s cn52xxp1;
4414 struct cvmx_pcieepx_cfg517_s cn56xx;
4415 struct cvmx_pcieepx_cfg517_s cn56xxp1;
4416 struct cvmx_pcieepx_cfg517_s cn63xx;
4417 struct cvmx_pcieepx_cfg517_s cn63xxp1;
4419 typedef union cvmx_pcieepx_cfg517 cvmx_pcieepx_cfg517_t;