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