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_L2C_DEFS_H__ 29 #define __CVMX_L2C_DEFS_H__ 30 31 #define CVMX_L2C_BST0 \ 32 CVMX_ADD_IO_SEG(0x00011800800007F8ull) 33 #define CVMX_L2C_BST1 \ 34 CVMX_ADD_IO_SEG(0x00011800800007F0ull) 35 #define CVMX_L2C_BST2 \ 36 CVMX_ADD_IO_SEG(0x00011800800007E8ull) 37 #define CVMX_L2C_CFG \ 38 CVMX_ADD_IO_SEG(0x0001180080000000ull) 39 #define CVMX_L2C_DBG \ 40 CVMX_ADD_IO_SEG(0x0001180080000030ull) 41 #define CVMX_L2C_DUT \ 42 CVMX_ADD_IO_SEG(0x0001180080000050ull) 43 #define CVMX_L2C_GRPWRR0 \ 44 CVMX_ADD_IO_SEG(0x00011800800000C8ull) 45 #define CVMX_L2C_GRPWRR1 \ 46 CVMX_ADD_IO_SEG(0x00011800800000D0ull) 47 #define CVMX_L2C_INT_EN \ 48 CVMX_ADD_IO_SEG(0x0001180080000100ull) 49 #define CVMX_L2C_INT_STAT \ 50 CVMX_ADD_IO_SEG(0x00011800800000F8ull) 51 #define CVMX_L2C_LCKBASE \ 52 CVMX_ADD_IO_SEG(0x0001180080000058ull) 53 #define CVMX_L2C_LCKOFF \ 54 CVMX_ADD_IO_SEG(0x0001180080000060ull) 55 #define CVMX_L2C_LFB0 \ 56 CVMX_ADD_IO_SEG(0x0001180080000038ull) 57 #define CVMX_L2C_LFB1 \ 58 CVMX_ADD_IO_SEG(0x0001180080000040ull) 59 #define CVMX_L2C_LFB2 \ 60 CVMX_ADD_IO_SEG(0x0001180080000048ull) 61 #define CVMX_L2C_LFB3 \ 62 CVMX_ADD_IO_SEG(0x00011800800000B8ull) 63 #define CVMX_L2C_OOB \ 64 CVMX_ADD_IO_SEG(0x00011800800000D8ull) 65 #define CVMX_L2C_OOB1 \ 66 CVMX_ADD_IO_SEG(0x00011800800000E0ull) 67 #define CVMX_L2C_OOB2 \ 68 CVMX_ADD_IO_SEG(0x00011800800000E8ull) 69 #define CVMX_L2C_OOB3 \ 70 CVMX_ADD_IO_SEG(0x00011800800000F0ull) 71 #define CVMX_L2C_PFC0 \ 72 CVMX_ADD_IO_SEG(0x0001180080000098ull) 73 #define CVMX_L2C_PFC1 \ 74 CVMX_ADD_IO_SEG(0x00011800800000A0ull) 75 #define CVMX_L2C_PFC2 \ 76 CVMX_ADD_IO_SEG(0x00011800800000A8ull) 77 #define CVMX_L2C_PFC3 \ 78 CVMX_ADD_IO_SEG(0x00011800800000B0ull) 79 #define CVMX_L2C_PFCTL \ 80 CVMX_ADD_IO_SEG(0x0001180080000090ull) 81 #define CVMX_L2C_PFCX(offset) \ 82 CVMX_ADD_IO_SEG(0x0001180080000098ull + (((offset) & 3) * 8)) 83 #define CVMX_L2C_PPGRP \ 84 CVMX_ADD_IO_SEG(0x00011800800000C0ull) 85 #define CVMX_L2C_SPAR0 \ 86 CVMX_ADD_IO_SEG(0x0001180080000068ull) 87 #define CVMX_L2C_SPAR1 \ 88 CVMX_ADD_IO_SEG(0x0001180080000070ull) 89 #define CVMX_L2C_SPAR2 \ 90 CVMX_ADD_IO_SEG(0x0001180080000078ull) 91 #define CVMX_L2C_SPAR3 \ 92 CVMX_ADD_IO_SEG(0x0001180080000080ull) 93 #define CVMX_L2C_SPAR4 \ 94 CVMX_ADD_IO_SEG(0x0001180080000088ull) 95 96 union cvmx_l2c_bst0 { 97 uint64_t u64; 98 struct cvmx_l2c_bst0_s { 99 uint64_t reserved_24_63:40; 100 uint64_t dtbnk:1; 101 uint64_t wlb_msk:4; 102 uint64_t dtcnt:13; 103 uint64_t dt:1; 104 uint64_t stin_msk:1; 105 uint64_t wlb_dat:4; 106 } s; 107 struct cvmx_l2c_bst0_cn30xx { 108 uint64_t reserved_23_63:41; 109 uint64_t wlb_msk:4; 110 uint64_t reserved_15_18:4; 111 uint64_t dtcnt:9; 112 uint64_t dt:1; 113 uint64_t reserved_4_4:1; 114 uint64_t wlb_dat:4; 115 } cn30xx; 116 struct cvmx_l2c_bst0_cn31xx { 117 uint64_t reserved_23_63:41; 118 uint64_t wlb_msk:4; 119 uint64_t reserved_16_18:3; 120 uint64_t dtcnt:10; 121 uint64_t dt:1; 122 uint64_t stin_msk:1; 123 uint64_t wlb_dat:4; 124 } cn31xx; 125 struct cvmx_l2c_bst0_cn38xx { 126 uint64_t reserved_19_63:45; 127 uint64_t dtcnt:13; 128 uint64_t dt:1; 129 uint64_t stin_msk:1; 130 uint64_t wlb_dat:4; 131 } cn38xx; 132 struct cvmx_l2c_bst0_cn38xx cn38xxp2; 133 struct cvmx_l2c_bst0_cn50xx { 134 uint64_t reserved_24_63:40; 135 uint64_t dtbnk:1; 136 uint64_t wlb_msk:4; 137 uint64_t reserved_16_18:3; 138 uint64_t dtcnt:10; 139 uint64_t dt:1; 140 uint64_t stin_msk:1; 141 uint64_t wlb_dat:4; 142 } cn50xx; 143 struct cvmx_l2c_bst0_cn50xx cn52xx; 144 struct cvmx_l2c_bst0_cn50xx cn52xxp1; 145 struct cvmx_l2c_bst0_s cn56xx; 146 struct cvmx_l2c_bst0_s cn56xxp1; 147 struct cvmx_l2c_bst0_s cn58xx; 148 struct cvmx_l2c_bst0_s cn58xxp1; 149 }; 150 151 union cvmx_l2c_bst1 { 152 uint64_t u64; 153 struct cvmx_l2c_bst1_s { 154 uint64_t reserved_9_63:55; 155 uint64_t l2t:9; 156 } s; 157 struct cvmx_l2c_bst1_cn30xx { 158 uint64_t reserved_16_63:48; 159 uint64_t vwdf:4; 160 uint64_t lrf:2; 161 uint64_t vab_vwcf:1; 162 uint64_t reserved_5_8:4; 163 uint64_t l2t:5; 164 } cn30xx; 165 struct cvmx_l2c_bst1_cn30xx cn31xx; 166 struct cvmx_l2c_bst1_cn38xx { 167 uint64_t reserved_16_63:48; 168 uint64_t vwdf:4; 169 uint64_t lrf:2; 170 uint64_t vab_vwcf:1; 171 uint64_t l2t:9; 172 } cn38xx; 173 struct cvmx_l2c_bst1_cn38xx cn38xxp2; 174 struct cvmx_l2c_bst1_cn38xx cn50xx; 175 struct cvmx_l2c_bst1_cn52xx { 176 uint64_t reserved_19_63:45; 177 uint64_t plc2:1; 178 uint64_t plc1:1; 179 uint64_t plc0:1; 180 uint64_t vwdf:4; 181 uint64_t reserved_11_11:1; 182 uint64_t ilc:1; 183 uint64_t vab_vwcf:1; 184 uint64_t l2t:9; 185 } cn52xx; 186 struct cvmx_l2c_bst1_cn52xx cn52xxp1; 187 struct cvmx_l2c_bst1_cn56xx { 188 uint64_t reserved_24_63:40; 189 uint64_t plc2:1; 190 uint64_t plc1:1; 191 uint64_t plc0:1; 192 uint64_t ilc:1; 193 uint64_t vwdf1:4; 194 uint64_t vwdf0:4; 195 uint64_t vab_vwcf1:1; 196 uint64_t reserved_10_10:1; 197 uint64_t vab_vwcf0:1; 198 uint64_t l2t:9; 199 } cn56xx; 200 struct cvmx_l2c_bst1_cn56xx cn56xxp1; 201 struct cvmx_l2c_bst1_cn38xx cn58xx; 202 struct cvmx_l2c_bst1_cn38xx cn58xxp1; 203 }; 204 205 union cvmx_l2c_bst2 { 206 uint64_t u64; 207 struct cvmx_l2c_bst2_s { 208 uint64_t reserved_16_63:48; 209 uint64_t mrb:4; 210 uint64_t reserved_4_11:8; 211 uint64_t ipcbst:1; 212 uint64_t picbst:1; 213 uint64_t xrdmsk:1; 214 uint64_t xrddat:1; 215 } s; 216 struct cvmx_l2c_bst2_cn30xx { 217 uint64_t reserved_16_63:48; 218 uint64_t mrb:4; 219 uint64_t rmdf:4; 220 uint64_t reserved_4_7:4; 221 uint64_t ipcbst:1; 222 uint64_t reserved_2_2:1; 223 uint64_t xrdmsk:1; 224 uint64_t xrddat:1; 225 } cn30xx; 226 struct cvmx_l2c_bst2_cn30xx cn31xx; 227 struct cvmx_l2c_bst2_cn38xx { 228 uint64_t reserved_16_63:48; 229 uint64_t mrb:4; 230 uint64_t rmdf:4; 231 uint64_t rhdf:4; 232 uint64_t ipcbst:1; 233 uint64_t picbst:1; 234 uint64_t xrdmsk:1; 235 uint64_t xrddat:1; 236 } cn38xx; 237 struct cvmx_l2c_bst2_cn38xx cn38xxp2; 238 struct cvmx_l2c_bst2_cn30xx cn50xx; 239 struct cvmx_l2c_bst2_cn30xx cn52xx; 240 struct cvmx_l2c_bst2_cn30xx cn52xxp1; 241 struct cvmx_l2c_bst2_cn56xx { 242 uint64_t reserved_16_63:48; 243 uint64_t mrb:4; 244 uint64_t rmdb:4; 245 uint64_t rhdb:4; 246 uint64_t ipcbst:1; 247 uint64_t picbst:1; 248 uint64_t xrdmsk:1; 249 uint64_t xrddat:1; 250 } cn56xx; 251 struct cvmx_l2c_bst2_cn56xx cn56xxp1; 252 struct cvmx_l2c_bst2_cn56xx cn58xx; 253 struct cvmx_l2c_bst2_cn56xx cn58xxp1; 254 }; 255 256 union cvmx_l2c_cfg { 257 uint64_t u64; 258 struct cvmx_l2c_cfg_s { 259 uint64_t reserved_20_63:44; 260 uint64_t bstrun:1; 261 uint64_t lbist:1; 262 uint64_t xor_bank:1; 263 uint64_t dpres1:1; 264 uint64_t dpres0:1; 265 uint64_t dfill_dis:1; 266 uint64_t fpexp:4; 267 uint64_t fpempty:1; 268 uint64_t fpen:1; 269 uint64_t idxalias:1; 270 uint64_t mwf_crd:4; 271 uint64_t rsp_arb_mode:1; 272 uint64_t rfb_arb_mode:1; 273 uint64_t lrf_arb_mode:1; 274 } s; 275 struct cvmx_l2c_cfg_cn30xx { 276 uint64_t reserved_14_63:50; 277 uint64_t fpexp:4; 278 uint64_t fpempty:1; 279 uint64_t fpen:1; 280 uint64_t idxalias:1; 281 uint64_t mwf_crd:4; 282 uint64_t rsp_arb_mode:1; 283 uint64_t rfb_arb_mode:1; 284 uint64_t lrf_arb_mode:1; 285 } cn30xx; 286 struct cvmx_l2c_cfg_cn30xx cn31xx; 287 struct cvmx_l2c_cfg_cn30xx cn38xx; 288 struct cvmx_l2c_cfg_cn30xx cn38xxp2; 289 struct cvmx_l2c_cfg_cn50xx { 290 uint64_t reserved_20_63:44; 291 uint64_t bstrun:1; 292 uint64_t lbist:1; 293 uint64_t reserved_14_17:4; 294 uint64_t fpexp:4; 295 uint64_t fpempty:1; 296 uint64_t fpen:1; 297 uint64_t idxalias:1; 298 uint64_t mwf_crd:4; 299 uint64_t rsp_arb_mode:1; 300 uint64_t rfb_arb_mode:1; 301 uint64_t lrf_arb_mode:1; 302 } cn50xx; 303 struct cvmx_l2c_cfg_cn50xx cn52xx; 304 struct cvmx_l2c_cfg_cn50xx cn52xxp1; 305 struct cvmx_l2c_cfg_s cn56xx; 306 struct cvmx_l2c_cfg_s cn56xxp1; 307 struct cvmx_l2c_cfg_cn58xx { 308 uint64_t reserved_20_63:44; 309 uint64_t bstrun:1; 310 uint64_t lbist:1; 311 uint64_t reserved_15_17:3; 312 uint64_t dfill_dis:1; 313 uint64_t fpexp:4; 314 uint64_t fpempty:1; 315 uint64_t fpen:1; 316 uint64_t idxalias:1; 317 uint64_t mwf_crd:4; 318 uint64_t rsp_arb_mode:1; 319 uint64_t rfb_arb_mode:1; 320 uint64_t lrf_arb_mode:1; 321 } cn58xx; 322 struct cvmx_l2c_cfg_cn58xxp1 { 323 uint64_t reserved_15_63:49; 324 uint64_t dfill_dis:1; 325 uint64_t fpexp:4; 326 uint64_t fpempty:1; 327 uint64_t fpen:1; 328 uint64_t idxalias:1; 329 uint64_t mwf_crd:4; 330 uint64_t rsp_arb_mode:1; 331 uint64_t rfb_arb_mode:1; 332 uint64_t lrf_arb_mode:1; 333 } cn58xxp1; 334 }; 335 336 union cvmx_l2c_dbg { 337 uint64_t u64; 338 struct cvmx_l2c_dbg_s { 339 uint64_t reserved_15_63:49; 340 uint64_t lfb_enum:4; 341 uint64_t lfb_dmp:1; 342 uint64_t ppnum:4; 343 uint64_t set:3; 344 uint64_t finv:1; 345 uint64_t l2d:1; 346 uint64_t l2t:1; 347 } s; 348 struct cvmx_l2c_dbg_cn30xx { 349 uint64_t reserved_13_63:51; 350 uint64_t lfb_enum:2; 351 uint64_t lfb_dmp:1; 352 uint64_t reserved_5_9:5; 353 uint64_t set:2; 354 uint64_t finv:1; 355 uint64_t l2d:1; 356 uint64_t l2t:1; 357 } cn30xx; 358 struct cvmx_l2c_dbg_cn31xx { 359 uint64_t reserved_14_63:50; 360 uint64_t lfb_enum:3; 361 uint64_t lfb_dmp:1; 362 uint64_t reserved_7_9:3; 363 uint64_t ppnum:1; 364 uint64_t reserved_5_5:1; 365 uint64_t set:2; 366 uint64_t finv:1; 367 uint64_t l2d:1; 368 uint64_t l2t:1; 369 } cn31xx; 370 struct cvmx_l2c_dbg_s cn38xx; 371 struct cvmx_l2c_dbg_s cn38xxp2; 372 struct cvmx_l2c_dbg_cn50xx { 373 uint64_t reserved_14_63:50; 374 uint64_t lfb_enum:3; 375 uint64_t lfb_dmp:1; 376 uint64_t reserved_7_9:3; 377 uint64_t ppnum:1; 378 uint64_t set:3; 379 uint64_t finv:1; 380 uint64_t l2d:1; 381 uint64_t l2t:1; 382 } cn50xx; 383 struct cvmx_l2c_dbg_cn52xx { 384 uint64_t reserved_14_63:50; 385 uint64_t lfb_enum:3; 386 uint64_t lfb_dmp:1; 387 uint64_t reserved_8_9:2; 388 uint64_t ppnum:2; 389 uint64_t set:3; 390 uint64_t finv:1; 391 uint64_t l2d:1; 392 uint64_t l2t:1; 393 } cn52xx; 394 struct cvmx_l2c_dbg_cn52xx cn52xxp1; 395 struct cvmx_l2c_dbg_s cn56xx; 396 struct cvmx_l2c_dbg_s cn56xxp1; 397 struct cvmx_l2c_dbg_s cn58xx; 398 struct cvmx_l2c_dbg_s cn58xxp1; 399 }; 400 401 union cvmx_l2c_dut { 402 uint64_t u64; 403 struct cvmx_l2c_dut_s { 404 uint64_t reserved_32_63:32; 405 uint64_t dtena:1; 406 uint64_t reserved_30_30:1; 407 uint64_t dt_vld:1; 408 uint64_t dt_tag:29; 409 } s; 410 struct cvmx_l2c_dut_s cn30xx; 411 struct cvmx_l2c_dut_s cn31xx; 412 struct cvmx_l2c_dut_s cn38xx; 413 struct cvmx_l2c_dut_s cn38xxp2; 414 struct cvmx_l2c_dut_s cn50xx; 415 struct cvmx_l2c_dut_s cn52xx; 416 struct cvmx_l2c_dut_s cn52xxp1; 417 struct cvmx_l2c_dut_s cn56xx; 418 struct cvmx_l2c_dut_s cn56xxp1; 419 struct cvmx_l2c_dut_s cn58xx; 420 struct cvmx_l2c_dut_s cn58xxp1; 421 }; 422 423 union cvmx_l2c_grpwrr0 { 424 uint64_t u64; 425 struct cvmx_l2c_grpwrr0_s { 426 uint64_t plc1rmsk:32; 427 uint64_t plc0rmsk:32; 428 } s; 429 struct cvmx_l2c_grpwrr0_s cn52xx; 430 struct cvmx_l2c_grpwrr0_s cn52xxp1; 431 struct cvmx_l2c_grpwrr0_s cn56xx; 432 struct cvmx_l2c_grpwrr0_s cn56xxp1; 433 }; 434 435 union cvmx_l2c_grpwrr1 { 436 uint64_t u64; 437 struct cvmx_l2c_grpwrr1_s { 438 uint64_t ilcrmsk:32; 439 uint64_t plc2rmsk:32; 440 } s; 441 struct cvmx_l2c_grpwrr1_s cn52xx; 442 struct cvmx_l2c_grpwrr1_s cn52xxp1; 443 struct cvmx_l2c_grpwrr1_s cn56xx; 444 struct cvmx_l2c_grpwrr1_s cn56xxp1; 445 }; 446 447 union cvmx_l2c_int_en { 448 uint64_t u64; 449 struct cvmx_l2c_int_en_s { 450 uint64_t reserved_9_63:55; 451 uint64_t lck2ena:1; 452 uint64_t lckena:1; 453 uint64_t l2ddeden:1; 454 uint64_t l2dsecen:1; 455 uint64_t l2tdeden:1; 456 uint64_t l2tsecen:1; 457 uint64_t oob3en:1; 458 uint64_t oob2en:1; 459 uint64_t oob1en:1; 460 } s; 461 struct cvmx_l2c_int_en_s cn52xx; 462 struct cvmx_l2c_int_en_s cn52xxp1; 463 struct cvmx_l2c_int_en_s cn56xx; 464 struct cvmx_l2c_int_en_s cn56xxp1; 465 }; 466 467 union cvmx_l2c_int_stat { 468 uint64_t u64; 469 struct cvmx_l2c_int_stat_s { 470 uint64_t reserved_9_63:55; 471 uint64_t lck2:1; 472 uint64_t lck:1; 473 uint64_t l2dded:1; 474 uint64_t l2dsec:1; 475 uint64_t l2tded:1; 476 uint64_t l2tsec:1; 477 uint64_t oob3:1; 478 uint64_t oob2:1; 479 uint64_t oob1:1; 480 } s; 481 struct cvmx_l2c_int_stat_s cn52xx; 482 struct cvmx_l2c_int_stat_s cn52xxp1; 483 struct cvmx_l2c_int_stat_s cn56xx; 484 struct cvmx_l2c_int_stat_s cn56xxp1; 485 }; 486 487 union cvmx_l2c_lckbase { 488 uint64_t u64; 489 struct cvmx_l2c_lckbase_s { 490 uint64_t reserved_31_63:33; 491 uint64_t lck_base:27; 492 uint64_t reserved_1_3:3; 493 uint64_t lck_ena:1; 494 } s; 495 struct cvmx_l2c_lckbase_s cn30xx; 496 struct cvmx_l2c_lckbase_s cn31xx; 497 struct cvmx_l2c_lckbase_s cn38xx; 498 struct cvmx_l2c_lckbase_s cn38xxp2; 499 struct cvmx_l2c_lckbase_s cn50xx; 500 struct cvmx_l2c_lckbase_s cn52xx; 501 struct cvmx_l2c_lckbase_s cn52xxp1; 502 struct cvmx_l2c_lckbase_s cn56xx; 503 struct cvmx_l2c_lckbase_s cn56xxp1; 504 struct cvmx_l2c_lckbase_s cn58xx; 505 struct cvmx_l2c_lckbase_s cn58xxp1; 506 }; 507 508 union cvmx_l2c_lckoff { 509 uint64_t u64; 510 struct cvmx_l2c_lckoff_s { 511 uint64_t reserved_10_63:54; 512 uint64_t lck_offset:10; 513 } s; 514 struct cvmx_l2c_lckoff_s cn30xx; 515 struct cvmx_l2c_lckoff_s cn31xx; 516 struct cvmx_l2c_lckoff_s cn38xx; 517 struct cvmx_l2c_lckoff_s cn38xxp2; 518 struct cvmx_l2c_lckoff_s cn50xx; 519 struct cvmx_l2c_lckoff_s cn52xx; 520 struct cvmx_l2c_lckoff_s cn52xxp1; 521 struct cvmx_l2c_lckoff_s cn56xx; 522 struct cvmx_l2c_lckoff_s cn56xxp1; 523 struct cvmx_l2c_lckoff_s cn58xx; 524 struct cvmx_l2c_lckoff_s cn58xxp1; 525 }; 526 527 union cvmx_l2c_lfb0 { 528 uint64_t u64; 529 struct cvmx_l2c_lfb0_s { 530 uint64_t reserved_32_63:32; 531 uint64_t stcpnd:1; 532 uint64_t stpnd:1; 533 uint64_t stinv:1; 534 uint64_t stcfl:1; 535 uint64_t vam:1; 536 uint64_t inxt:4; 537 uint64_t itl:1; 538 uint64_t ihd:1; 539 uint64_t set:3; 540 uint64_t vabnum:4; 541 uint64_t sid:9; 542 uint64_t cmd:4; 543 uint64_t vld:1; 544 } s; 545 struct cvmx_l2c_lfb0_cn30xx { 546 uint64_t reserved_32_63:32; 547 uint64_t stcpnd:1; 548 uint64_t stpnd:1; 549 uint64_t stinv:1; 550 uint64_t stcfl:1; 551 uint64_t vam:1; 552 uint64_t reserved_25_26:2; 553 uint64_t inxt:2; 554 uint64_t itl:1; 555 uint64_t ihd:1; 556 uint64_t reserved_20_20:1; 557 uint64_t set:2; 558 uint64_t reserved_16_17:2; 559 uint64_t vabnum:2; 560 uint64_t sid:9; 561 uint64_t cmd:4; 562 uint64_t vld:1; 563 } cn30xx; 564 struct cvmx_l2c_lfb0_cn31xx { 565 uint64_t reserved_32_63:32; 566 uint64_t stcpnd:1; 567 uint64_t stpnd:1; 568 uint64_t stinv:1; 569 uint64_t stcfl:1; 570 uint64_t vam:1; 571 uint64_t reserved_26_26:1; 572 uint64_t inxt:3; 573 uint64_t itl:1; 574 uint64_t ihd:1; 575 uint64_t reserved_20_20:1; 576 uint64_t set:2; 577 uint64_t reserved_17_17:1; 578 uint64_t vabnum:3; 579 uint64_t sid:9; 580 uint64_t cmd:4; 581 uint64_t vld:1; 582 } cn31xx; 583 struct cvmx_l2c_lfb0_s cn38xx; 584 struct cvmx_l2c_lfb0_s cn38xxp2; 585 struct cvmx_l2c_lfb0_cn50xx { 586 uint64_t reserved_32_63:32; 587 uint64_t stcpnd:1; 588 uint64_t stpnd:1; 589 uint64_t stinv:1; 590 uint64_t stcfl:1; 591 uint64_t vam:1; 592 uint64_t reserved_26_26:1; 593 uint64_t inxt:3; 594 uint64_t itl:1; 595 uint64_t ihd:1; 596 uint64_t set:3; 597 uint64_t reserved_17_17:1; 598 uint64_t vabnum:3; 599 uint64_t sid:9; 600 uint64_t cmd:4; 601 uint64_t vld:1; 602 } cn50xx; 603 struct cvmx_l2c_lfb0_cn50xx cn52xx; 604 struct cvmx_l2c_lfb0_cn50xx cn52xxp1; 605 struct cvmx_l2c_lfb0_s cn56xx; 606 struct cvmx_l2c_lfb0_s cn56xxp1; 607 struct cvmx_l2c_lfb0_s cn58xx; 608 struct cvmx_l2c_lfb0_s cn58xxp1; 609 }; 610 611 union cvmx_l2c_lfb1 { 612 uint64_t u64; 613 struct cvmx_l2c_lfb1_s { 614 uint64_t reserved_19_63:45; 615 uint64_t dsgoing:1; 616 uint64_t bid:2; 617 uint64_t wtrsp:1; 618 uint64_t wtdw:1; 619 uint64_t wtdq:1; 620 uint64_t wtwhp:1; 621 uint64_t wtwhf:1; 622 uint64_t wtwrm:1; 623 uint64_t wtstm:1; 624 uint64_t wtrda:1; 625 uint64_t wtstdt:1; 626 uint64_t wtstrsp:1; 627 uint64_t wtstrsc:1; 628 uint64_t wtvtm:1; 629 uint64_t wtmfl:1; 630 uint64_t prbrty:1; 631 uint64_t wtprb:1; 632 uint64_t vld:1; 633 } s; 634 struct cvmx_l2c_lfb1_s cn30xx; 635 struct cvmx_l2c_lfb1_s cn31xx; 636 struct cvmx_l2c_lfb1_s cn38xx; 637 struct cvmx_l2c_lfb1_s cn38xxp2; 638 struct cvmx_l2c_lfb1_s cn50xx; 639 struct cvmx_l2c_lfb1_s cn52xx; 640 struct cvmx_l2c_lfb1_s cn52xxp1; 641 struct cvmx_l2c_lfb1_s cn56xx; 642 struct cvmx_l2c_lfb1_s cn56xxp1; 643 struct cvmx_l2c_lfb1_s cn58xx; 644 struct cvmx_l2c_lfb1_s cn58xxp1; 645 }; 646 647 union cvmx_l2c_lfb2 { 648 uint64_t u64; 649 struct cvmx_l2c_lfb2_s { 650 uint64_t reserved_0_63:64; 651 } s; 652 struct cvmx_l2c_lfb2_cn30xx { 653 uint64_t reserved_27_63:37; 654 uint64_t lfb_tag:19; 655 uint64_t lfb_idx:8; 656 } cn30xx; 657 struct cvmx_l2c_lfb2_cn31xx { 658 uint64_t reserved_27_63:37; 659 uint64_t lfb_tag:17; 660 uint64_t lfb_idx:10; 661 } cn31xx; 662 struct cvmx_l2c_lfb2_cn31xx cn38xx; 663 struct cvmx_l2c_lfb2_cn31xx cn38xxp2; 664 struct cvmx_l2c_lfb2_cn50xx { 665 uint64_t reserved_27_63:37; 666 uint64_t lfb_tag:20; 667 uint64_t lfb_idx:7; 668 } cn50xx; 669 struct cvmx_l2c_lfb2_cn52xx { 670 uint64_t reserved_27_63:37; 671 uint64_t lfb_tag:18; 672 uint64_t lfb_idx:9; 673 } cn52xx; 674 struct cvmx_l2c_lfb2_cn52xx cn52xxp1; 675 struct cvmx_l2c_lfb2_cn56xx { 676 uint64_t reserved_27_63:37; 677 uint64_t lfb_tag:16; 678 uint64_t lfb_idx:11; 679 } cn56xx; 680 struct cvmx_l2c_lfb2_cn56xx cn56xxp1; 681 struct cvmx_l2c_lfb2_cn56xx cn58xx; 682 struct cvmx_l2c_lfb2_cn56xx cn58xxp1; 683 }; 684 685 union cvmx_l2c_lfb3 { 686 uint64_t u64; 687 struct cvmx_l2c_lfb3_s { 688 uint64_t reserved_5_63:59; 689 uint64_t stpartdis:1; 690 uint64_t lfb_hwm:4; 691 } s; 692 struct cvmx_l2c_lfb3_cn30xx { 693 uint64_t reserved_5_63:59; 694 uint64_t stpartdis:1; 695 uint64_t reserved_2_3:2; 696 uint64_t lfb_hwm:2; 697 } cn30xx; 698 struct cvmx_l2c_lfb3_cn31xx { 699 uint64_t reserved_5_63:59; 700 uint64_t stpartdis:1; 701 uint64_t reserved_3_3:1; 702 uint64_t lfb_hwm:3; 703 } cn31xx; 704 struct cvmx_l2c_lfb3_s cn38xx; 705 struct cvmx_l2c_lfb3_s cn38xxp2; 706 struct cvmx_l2c_lfb3_cn31xx cn50xx; 707 struct cvmx_l2c_lfb3_cn31xx cn52xx; 708 struct cvmx_l2c_lfb3_cn31xx cn52xxp1; 709 struct cvmx_l2c_lfb3_s cn56xx; 710 struct cvmx_l2c_lfb3_s cn56xxp1; 711 struct cvmx_l2c_lfb3_s cn58xx; 712 struct cvmx_l2c_lfb3_s cn58xxp1; 713 }; 714 715 union cvmx_l2c_oob { 716 uint64_t u64; 717 struct cvmx_l2c_oob_s { 718 uint64_t reserved_2_63:62; 719 uint64_t dwbena:1; 720 uint64_t stena:1; 721 } s; 722 struct cvmx_l2c_oob_s cn52xx; 723 struct cvmx_l2c_oob_s cn52xxp1; 724 struct cvmx_l2c_oob_s cn56xx; 725 struct cvmx_l2c_oob_s cn56xxp1; 726 }; 727 728 union cvmx_l2c_oob1 { 729 uint64_t u64; 730 struct cvmx_l2c_oob1_s { 731 uint64_t fadr:27; 732 uint64_t fsrc:1; 733 uint64_t reserved_34_35:2; 734 uint64_t sadr:14; 735 uint64_t reserved_14_19:6; 736 uint64_t size:14; 737 } s; 738 struct cvmx_l2c_oob1_s cn52xx; 739 struct cvmx_l2c_oob1_s cn52xxp1; 740 struct cvmx_l2c_oob1_s cn56xx; 741 struct cvmx_l2c_oob1_s cn56xxp1; 742 }; 743 744 union cvmx_l2c_oob2 { 745 uint64_t u64; 746 struct cvmx_l2c_oob2_s { 747 uint64_t fadr:27; 748 uint64_t fsrc:1; 749 uint64_t reserved_34_35:2; 750 uint64_t sadr:14; 751 uint64_t reserved_14_19:6; 752 uint64_t size:14; 753 } s; 754 struct cvmx_l2c_oob2_s cn52xx; 755 struct cvmx_l2c_oob2_s cn52xxp1; 756 struct cvmx_l2c_oob2_s cn56xx; 757 struct cvmx_l2c_oob2_s cn56xxp1; 758 }; 759 760 union cvmx_l2c_oob3 { 761 uint64_t u64; 762 struct cvmx_l2c_oob3_s { 763 uint64_t fadr:27; 764 uint64_t fsrc:1; 765 uint64_t reserved_34_35:2; 766 uint64_t sadr:14; 767 uint64_t reserved_14_19:6; 768 uint64_t size:14; 769 } s; 770 struct cvmx_l2c_oob3_s cn52xx; 771 struct cvmx_l2c_oob3_s cn52xxp1; 772 struct cvmx_l2c_oob3_s cn56xx; 773 struct cvmx_l2c_oob3_s cn56xxp1; 774 }; 775 776 union cvmx_l2c_pfcx { 777 uint64_t u64; 778 struct cvmx_l2c_pfcx_s { 779 uint64_t reserved_36_63:28; 780 uint64_t pfcnt0:36; 781 } s; 782 struct cvmx_l2c_pfcx_s cn30xx; 783 struct cvmx_l2c_pfcx_s cn31xx; 784 struct cvmx_l2c_pfcx_s cn38xx; 785 struct cvmx_l2c_pfcx_s cn38xxp2; 786 struct cvmx_l2c_pfcx_s cn50xx; 787 struct cvmx_l2c_pfcx_s cn52xx; 788 struct cvmx_l2c_pfcx_s cn52xxp1; 789 struct cvmx_l2c_pfcx_s cn56xx; 790 struct cvmx_l2c_pfcx_s cn56xxp1; 791 struct cvmx_l2c_pfcx_s cn58xx; 792 struct cvmx_l2c_pfcx_s cn58xxp1; 793 }; 794 795 union cvmx_l2c_pfctl { 796 uint64_t u64; 797 struct cvmx_l2c_pfctl_s { 798 uint64_t reserved_36_63:28; 799 uint64_t cnt3rdclr:1; 800 uint64_t cnt2rdclr:1; 801 uint64_t cnt1rdclr:1; 802 uint64_t cnt0rdclr:1; 803 uint64_t cnt3ena:1; 804 uint64_t cnt3clr:1; 805 uint64_t cnt3sel:6; 806 uint64_t cnt2ena:1; 807 uint64_t cnt2clr:1; 808 uint64_t cnt2sel:6; 809 uint64_t cnt1ena:1; 810 uint64_t cnt1clr:1; 811 uint64_t cnt1sel:6; 812 uint64_t cnt0ena:1; 813 uint64_t cnt0clr:1; 814 uint64_t cnt0sel:6; 815 } s; 816 struct cvmx_l2c_pfctl_s cn30xx; 817 struct cvmx_l2c_pfctl_s cn31xx; 818 struct cvmx_l2c_pfctl_s cn38xx; 819 struct cvmx_l2c_pfctl_s cn38xxp2; 820 struct cvmx_l2c_pfctl_s cn50xx; 821 struct cvmx_l2c_pfctl_s cn52xx; 822 struct cvmx_l2c_pfctl_s cn52xxp1; 823 struct cvmx_l2c_pfctl_s cn56xx; 824 struct cvmx_l2c_pfctl_s cn56xxp1; 825 struct cvmx_l2c_pfctl_s cn58xx; 826 struct cvmx_l2c_pfctl_s cn58xxp1; 827 }; 828 829 union cvmx_l2c_ppgrp { 830 uint64_t u64; 831 struct cvmx_l2c_ppgrp_s { 832 uint64_t reserved_24_63:40; 833 uint64_t pp11grp:2; 834 uint64_t pp10grp:2; 835 uint64_t pp9grp:2; 836 uint64_t pp8grp:2; 837 uint64_t pp7grp:2; 838 uint64_t pp6grp:2; 839 uint64_t pp5grp:2; 840 uint64_t pp4grp:2; 841 uint64_t pp3grp:2; 842 uint64_t pp2grp:2; 843 uint64_t pp1grp:2; 844 uint64_t pp0grp:2; 845 } s; 846 struct cvmx_l2c_ppgrp_cn52xx { 847 uint64_t reserved_8_63:56; 848 uint64_t pp3grp:2; 849 uint64_t pp2grp:2; 850 uint64_t pp1grp:2; 851 uint64_t pp0grp:2; 852 } cn52xx; 853 struct cvmx_l2c_ppgrp_cn52xx cn52xxp1; 854 struct cvmx_l2c_ppgrp_s cn56xx; 855 struct cvmx_l2c_ppgrp_s cn56xxp1; 856 }; 857 858 union cvmx_l2c_spar0 { 859 uint64_t u64; 860 struct cvmx_l2c_spar0_s { 861 uint64_t reserved_32_63:32; 862 uint64_t umsk3:8; 863 uint64_t umsk2:8; 864 uint64_t umsk1:8; 865 uint64_t umsk0:8; 866 } s; 867 struct cvmx_l2c_spar0_cn30xx { 868 uint64_t reserved_4_63:60; 869 uint64_t umsk0:4; 870 } cn30xx; 871 struct cvmx_l2c_spar0_cn31xx { 872 uint64_t reserved_12_63:52; 873 uint64_t umsk1:4; 874 uint64_t reserved_4_7:4; 875 uint64_t umsk0:4; 876 } cn31xx; 877 struct cvmx_l2c_spar0_s cn38xx; 878 struct cvmx_l2c_spar0_s cn38xxp2; 879 struct cvmx_l2c_spar0_cn50xx { 880 uint64_t reserved_16_63:48; 881 uint64_t umsk1:8; 882 uint64_t umsk0:8; 883 } cn50xx; 884 struct cvmx_l2c_spar0_s cn52xx; 885 struct cvmx_l2c_spar0_s cn52xxp1; 886 struct cvmx_l2c_spar0_s cn56xx; 887 struct cvmx_l2c_spar0_s cn56xxp1; 888 struct cvmx_l2c_spar0_s cn58xx; 889 struct cvmx_l2c_spar0_s cn58xxp1; 890 }; 891 892 union cvmx_l2c_spar1 { 893 uint64_t u64; 894 struct cvmx_l2c_spar1_s { 895 uint64_t reserved_32_63:32; 896 uint64_t umsk7:8; 897 uint64_t umsk6:8; 898 uint64_t umsk5:8; 899 uint64_t umsk4:8; 900 } s; 901 struct cvmx_l2c_spar1_s cn38xx; 902 struct cvmx_l2c_spar1_s cn38xxp2; 903 struct cvmx_l2c_spar1_s cn56xx; 904 struct cvmx_l2c_spar1_s cn56xxp1; 905 struct cvmx_l2c_spar1_s cn58xx; 906 struct cvmx_l2c_spar1_s cn58xxp1; 907 }; 908 909 union cvmx_l2c_spar2 { 910 uint64_t u64; 911 struct cvmx_l2c_spar2_s { 912 uint64_t reserved_32_63:32; 913 uint64_t umsk11:8; 914 uint64_t umsk10:8; 915 uint64_t umsk9:8; 916 uint64_t umsk8:8; 917 } s; 918 struct cvmx_l2c_spar2_s cn38xx; 919 struct cvmx_l2c_spar2_s cn38xxp2; 920 struct cvmx_l2c_spar2_s cn56xx; 921 struct cvmx_l2c_spar2_s cn56xxp1; 922 struct cvmx_l2c_spar2_s cn58xx; 923 struct cvmx_l2c_spar2_s cn58xxp1; 924 }; 925 926 union cvmx_l2c_spar3 { 927 uint64_t u64; 928 struct cvmx_l2c_spar3_s { 929 uint64_t reserved_32_63:32; 930 uint64_t umsk15:8; 931 uint64_t umsk14:8; 932 uint64_t umsk13:8; 933 uint64_t umsk12:8; 934 } s; 935 struct cvmx_l2c_spar3_s cn38xx; 936 struct cvmx_l2c_spar3_s cn38xxp2; 937 struct cvmx_l2c_spar3_s cn58xx; 938 struct cvmx_l2c_spar3_s cn58xxp1; 939 }; 940 941 union cvmx_l2c_spar4 { 942 uint64_t u64; 943 struct cvmx_l2c_spar4_s { 944 uint64_t reserved_8_63:56; 945 uint64_t umskiob:8; 946 } s; 947 struct cvmx_l2c_spar4_cn30xx { 948 uint64_t reserved_4_63:60; 949 uint64_t umskiob:4; 950 } cn30xx; 951 struct cvmx_l2c_spar4_cn30xx cn31xx; 952 struct cvmx_l2c_spar4_s cn38xx; 953 struct cvmx_l2c_spar4_s cn38xxp2; 954 struct cvmx_l2c_spar4_s cn50xx; 955 struct cvmx_l2c_spar4_s cn52xx; 956 struct cvmx_l2c_spar4_s cn52xxp1; 957 struct cvmx_l2c_spar4_s cn56xx; 958 struct cvmx_l2c_spar4_s cn56xxp1; 959 struct cvmx_l2c_spar4_s cn58xx; 960 struct cvmx_l2c_spar4_s cn58xxp1; 961 }; 962 963 #endif 964