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