linux/arch/mips/include/asm/octeon/cvmx-l2c-defs.h
<<
>>
Prefs
   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
  96union 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
 151union 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
 205union 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
 256union 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
 336union 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
 401union 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
 423union 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
 435union 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
 447union 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
 467union 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
 487union 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
 508union 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
 527union 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
 611union 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
 647union 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
 685union 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
 715union 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
 728union 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
 744union 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
 760union 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
 776union 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
 795union 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
 829union 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
 858union 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
 892union 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
 909union 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
 926union 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
 941union 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