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