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-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_L2C_DEFS_H__
  29#define __CVMX_L2C_DEFS_H__
  30
  31#define CVMX_L2C_BIG_CTL (CVMX_ADD_IO_SEG(0x0001180080800030ull))
  32#define CVMX_L2C_BST (CVMX_ADD_IO_SEG(0x00011800808007F8ull))
  33#define CVMX_L2C_BST0 (CVMX_ADD_IO_SEG(0x00011800800007F8ull))
  34#define CVMX_L2C_BST1 (CVMX_ADD_IO_SEG(0x00011800800007F0ull))
  35#define CVMX_L2C_BST2 (CVMX_ADD_IO_SEG(0x00011800800007E8ull))
  36#define CVMX_L2C_BST_MEMX(block_id) (CVMX_ADD_IO_SEG(0x0001180080C007F8ull))
  37#define CVMX_L2C_BST_TDTX(block_id) (CVMX_ADD_IO_SEG(0x0001180080A007F0ull))
  38#define CVMX_L2C_BST_TTGX(block_id) (CVMX_ADD_IO_SEG(0x0001180080A007F8ull))
  39#define CVMX_L2C_CFG (CVMX_ADD_IO_SEG(0x0001180080000000ull))
  40#define CVMX_L2C_COP0_MAPX(offset) (CVMX_ADD_IO_SEG(0x0001180080940000ull) + ((offset) & 16383) * 8)
  41#define CVMX_L2C_CTL (CVMX_ADD_IO_SEG(0x0001180080800000ull))
  42#define CVMX_L2C_DBG (CVMX_ADD_IO_SEG(0x0001180080000030ull))
  43#define CVMX_L2C_DUT (CVMX_ADD_IO_SEG(0x0001180080000050ull))
  44#define CVMX_L2C_DUT_MAPX(offset) (CVMX_ADD_IO_SEG(0x0001180080E00000ull) + ((offset) & 2047) * 8)
  45#define CVMX_L2C_ERR_TDTX(block_id) (CVMX_ADD_IO_SEG(0x0001180080A007E0ull))
  46#define CVMX_L2C_ERR_TTGX(block_id) (CVMX_ADD_IO_SEG(0x0001180080A007E8ull))
  47#define CVMX_L2C_ERR_VBFX(block_id) (CVMX_ADD_IO_SEG(0x0001180080C007F0ull))
  48#define CVMX_L2C_ERR_XMC (CVMX_ADD_IO_SEG(0x00011800808007D8ull))
  49#define CVMX_L2C_GRPWRR0 (CVMX_ADD_IO_SEG(0x00011800800000C8ull))
  50#define CVMX_L2C_GRPWRR1 (CVMX_ADD_IO_SEG(0x00011800800000D0ull))
  51#define CVMX_L2C_INT_EN (CVMX_ADD_IO_SEG(0x0001180080000100ull))
  52#define CVMX_L2C_INT_ENA (CVMX_ADD_IO_SEG(0x0001180080800020ull))
  53#define CVMX_L2C_INT_REG (CVMX_ADD_IO_SEG(0x0001180080800018ull))
  54#define CVMX_L2C_INT_STAT (CVMX_ADD_IO_SEG(0x00011800800000F8ull))
  55#define CVMX_L2C_IOCX_PFC(block_id) (CVMX_ADD_IO_SEG(0x0001180080800420ull))
  56#define CVMX_L2C_IORX_PFC(block_id) (CVMX_ADD_IO_SEG(0x0001180080800428ull))
  57#define CVMX_L2C_LCKBASE (CVMX_ADD_IO_SEG(0x0001180080000058ull))
  58#define CVMX_L2C_LCKOFF (CVMX_ADD_IO_SEG(0x0001180080000060ull))
  59#define CVMX_L2C_LFB0 (CVMX_ADD_IO_SEG(0x0001180080000038ull))
  60#define CVMX_L2C_LFB1 (CVMX_ADD_IO_SEG(0x0001180080000040ull))
  61#define CVMX_L2C_LFB2 (CVMX_ADD_IO_SEG(0x0001180080000048ull))
  62#define CVMX_L2C_LFB3 (CVMX_ADD_IO_SEG(0x00011800800000B8ull))
  63#define CVMX_L2C_OOB (CVMX_ADD_IO_SEG(0x00011800800000D8ull))
  64#define CVMX_L2C_OOB1 (CVMX_ADD_IO_SEG(0x00011800800000E0ull))
  65#define CVMX_L2C_OOB2 (CVMX_ADD_IO_SEG(0x00011800800000E8ull))
  66#define CVMX_L2C_OOB3 (CVMX_ADD_IO_SEG(0x00011800800000F0ull))
  67#define CVMX_L2C_PFC0 CVMX_L2C_PFCX(0)
  68#define CVMX_L2C_PFC1 CVMX_L2C_PFCX(1)
  69#define CVMX_L2C_PFC2 CVMX_L2C_PFCX(2)
  70#define CVMX_L2C_PFC3 CVMX_L2C_PFCX(3)
  71#define CVMX_L2C_PFCTL (CVMX_ADD_IO_SEG(0x0001180080000090ull))
  72#define CVMX_L2C_PFCX(offset) (CVMX_ADD_IO_SEG(0x0001180080000098ull) + ((offset) & 3) * 8)
  73#define CVMX_L2C_PPGRP (CVMX_ADD_IO_SEG(0x00011800800000C0ull))
  74#define CVMX_L2C_QOS_IOBX(block_id) (CVMX_ADD_IO_SEG(0x0001180080880200ull))
  75#define CVMX_L2C_QOS_PPX(offset) (CVMX_ADD_IO_SEG(0x0001180080880000ull) + ((offset) & 7) * 8)
  76#define CVMX_L2C_QOS_WGT (CVMX_ADD_IO_SEG(0x0001180080800008ull))
  77#define CVMX_L2C_RSCX_PFC(block_id) (CVMX_ADD_IO_SEG(0x0001180080800410ull))
  78#define CVMX_L2C_RSDX_PFC(block_id) (CVMX_ADD_IO_SEG(0x0001180080800418ull))
  79#define CVMX_L2C_SPAR0 (CVMX_ADD_IO_SEG(0x0001180080000068ull))
  80#define CVMX_L2C_SPAR1 (CVMX_ADD_IO_SEG(0x0001180080000070ull))
  81#define CVMX_L2C_SPAR2 (CVMX_ADD_IO_SEG(0x0001180080000078ull))
  82#define CVMX_L2C_SPAR3 (CVMX_ADD_IO_SEG(0x0001180080000080ull))
  83#define CVMX_L2C_SPAR4 (CVMX_ADD_IO_SEG(0x0001180080000088ull))
  84#define CVMX_L2C_TADX_ECC0(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00018ull))
  85#define CVMX_L2C_TADX_ECC1(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00020ull))
  86#define CVMX_L2C_TADX_IEN(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00000ull))
  87#define CVMX_L2C_TADX_INT(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00028ull))
  88#define CVMX_L2C_TADX_PFC0(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00400ull))
  89#define CVMX_L2C_TADX_PFC1(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00408ull))
  90#define CVMX_L2C_TADX_PFC2(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00410ull))
  91#define CVMX_L2C_TADX_PFC3(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00418ull))
  92#define CVMX_L2C_TADX_PRF(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00008ull))
  93#define CVMX_L2C_TADX_TAG(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00010ull))
  94#define CVMX_L2C_VER_ID (CVMX_ADD_IO_SEG(0x00011800808007E0ull))
  95#define CVMX_L2C_VER_IOB (CVMX_ADD_IO_SEG(0x00011800808007F0ull))
  96#define CVMX_L2C_VER_MSC (CVMX_ADD_IO_SEG(0x00011800808007D0ull))
  97#define CVMX_L2C_VER_PP (CVMX_ADD_IO_SEG(0x00011800808007E8ull))
  98#define CVMX_L2C_VIRTID_IOBX(block_id) (CVMX_ADD_IO_SEG(0x00011800808C0200ull))
  99#define CVMX_L2C_VIRTID_PPX(offset) (CVMX_ADD_IO_SEG(0x00011800808C0000ull) + ((offset) & 7) * 8)
 100#define CVMX_L2C_VRT_CTL (CVMX_ADD_IO_SEG(0x0001180080800010ull))
 101#define CVMX_L2C_VRT_MEMX(offset) (CVMX_ADD_IO_SEG(0x0001180080900000ull) + ((offset) & 1023) * 8)
 102#define CVMX_L2C_WPAR_IOBX(block_id) (CVMX_ADD_IO_SEG(0x0001180080840200ull))
 103#define CVMX_L2C_WPAR_PPX(offset) (CVMX_ADD_IO_SEG(0x0001180080840000ull) + ((offset) & 7) * 8)
 104#define CVMX_L2C_XMCX_PFC(block_id) (CVMX_ADD_IO_SEG(0x0001180080800400ull))
 105#define CVMX_L2C_XMC_CMD (CVMX_ADD_IO_SEG(0x0001180080800028ull))
 106#define CVMX_L2C_XMDX_PFC(block_id) (CVMX_ADD_IO_SEG(0x0001180080800408ull))
 107
 108union cvmx_l2c_big_ctl {
 109        uint64_t u64;
 110        struct cvmx_l2c_big_ctl_s {
 111                uint64_t reserved_8_63:56;
 112                uint64_t maxdram:4;
 113                uint64_t reserved_1_3:3;
 114                uint64_t disable:1;
 115        } s;
 116        struct cvmx_l2c_big_ctl_s cn63xx;
 117};
 118
 119union cvmx_l2c_bst {
 120        uint64_t u64;
 121        struct cvmx_l2c_bst_s {
 122                uint64_t reserved_38_63:26;
 123                uint64_t dutfl:6;
 124                uint64_t reserved_17_31:15;
 125                uint64_t ioccmdfl:1;
 126                uint64_t reserved_13_15:3;
 127                uint64_t iocdatfl:1;
 128                uint64_t reserved_9_11:3;
 129                uint64_t dutresfl:1;
 130                uint64_t reserved_5_7:3;
 131                uint64_t vrtfl:1;
 132                uint64_t reserved_1_3:3;
 133                uint64_t tdffl:1;
 134        } s;
 135        struct cvmx_l2c_bst_s cn63xx;
 136        struct cvmx_l2c_bst_s cn63xxp1;
 137};
 138
 139union cvmx_l2c_bst0 {
 140        uint64_t u64;
 141        struct cvmx_l2c_bst0_s {
 142                uint64_t reserved_24_63:40;
 143                uint64_t dtbnk:1;
 144                uint64_t wlb_msk:4;
 145                uint64_t dtcnt:13;
 146                uint64_t dt:1;
 147                uint64_t stin_msk:1;
 148                uint64_t wlb_dat:4;
 149        } s;
 150        struct cvmx_l2c_bst0_cn30xx {
 151                uint64_t reserved_23_63:41;
 152                uint64_t wlb_msk:4;
 153                uint64_t reserved_15_18:4;
 154                uint64_t dtcnt:9;
 155                uint64_t dt:1;
 156                uint64_t reserved_4_4:1;
 157                uint64_t wlb_dat:4;
 158        } cn30xx;
 159        struct cvmx_l2c_bst0_cn31xx {
 160                uint64_t reserved_23_63:41;
 161                uint64_t wlb_msk:4;
 162                uint64_t reserved_16_18:3;
 163                uint64_t dtcnt:10;
 164                uint64_t dt:1;
 165                uint64_t stin_msk:1;
 166                uint64_t wlb_dat:4;
 167        } cn31xx;
 168        struct cvmx_l2c_bst0_cn38xx {
 169                uint64_t reserved_19_63:45;
 170                uint64_t dtcnt:13;
 171                uint64_t dt:1;
 172                uint64_t stin_msk:1;
 173                uint64_t wlb_dat:4;
 174        } cn38xx;
 175        struct cvmx_l2c_bst0_cn38xx cn38xxp2;
 176        struct cvmx_l2c_bst0_cn50xx {
 177                uint64_t reserved_24_63:40;
 178                uint64_t dtbnk:1;
 179                uint64_t wlb_msk:4;
 180                uint64_t reserved_16_18:3;
 181                uint64_t dtcnt:10;
 182                uint64_t dt:1;
 183                uint64_t stin_msk:1;
 184                uint64_t wlb_dat:4;
 185        } cn50xx;
 186        struct cvmx_l2c_bst0_cn50xx cn52xx;
 187        struct cvmx_l2c_bst0_cn50xx cn52xxp1;
 188        struct cvmx_l2c_bst0_s cn56xx;
 189        struct cvmx_l2c_bst0_s cn56xxp1;
 190        struct cvmx_l2c_bst0_s cn58xx;
 191        struct cvmx_l2c_bst0_s cn58xxp1;
 192};
 193
 194union cvmx_l2c_bst1 {
 195        uint64_t u64;
 196        struct cvmx_l2c_bst1_s {
 197                uint64_t reserved_9_63:55;
 198                uint64_t l2t:9;
 199        } s;
 200        struct cvmx_l2c_bst1_cn30xx {
 201                uint64_t reserved_16_63:48;
 202                uint64_t vwdf:4;
 203                uint64_t lrf:2;
 204                uint64_t vab_vwcf:1;
 205                uint64_t reserved_5_8:4;
 206                uint64_t l2t:5;
 207        } cn30xx;
 208        struct cvmx_l2c_bst1_cn30xx cn31xx;
 209        struct cvmx_l2c_bst1_cn38xx {
 210                uint64_t reserved_16_63:48;
 211                uint64_t vwdf:4;
 212                uint64_t lrf:2;
 213                uint64_t vab_vwcf:1;
 214                uint64_t l2t:9;
 215        } cn38xx;
 216        struct cvmx_l2c_bst1_cn38xx cn38xxp2;
 217        struct cvmx_l2c_bst1_cn38xx cn50xx;
 218        struct cvmx_l2c_bst1_cn52xx {
 219                uint64_t reserved_19_63:45;
 220                uint64_t plc2:1;
 221                uint64_t plc1:1;
 222                uint64_t plc0:1;
 223                uint64_t vwdf:4;
 224                uint64_t reserved_11_11:1;
 225                uint64_t ilc:1;
 226                uint64_t vab_vwcf:1;
 227                uint64_t l2t:9;
 228        } cn52xx;
 229        struct cvmx_l2c_bst1_cn52xx cn52xxp1;
 230        struct cvmx_l2c_bst1_cn56xx {
 231                uint64_t reserved_24_63:40;
 232                uint64_t plc2:1;
 233                uint64_t plc1:1;
 234                uint64_t plc0:1;
 235                uint64_t ilc:1;
 236                uint64_t vwdf1:4;
 237                uint64_t vwdf0:4;
 238                uint64_t vab_vwcf1:1;
 239                uint64_t reserved_10_10:1;
 240                uint64_t vab_vwcf0:1;
 241                uint64_t l2t:9;
 242        } cn56xx;
 243        struct cvmx_l2c_bst1_cn56xx cn56xxp1;
 244        struct cvmx_l2c_bst1_cn38xx cn58xx;
 245        struct cvmx_l2c_bst1_cn38xx cn58xxp1;
 246};
 247
 248union cvmx_l2c_bst2 {
 249        uint64_t u64;
 250        struct cvmx_l2c_bst2_s {
 251                uint64_t reserved_16_63:48;
 252                uint64_t mrb:4;
 253                uint64_t reserved_4_11:8;
 254                uint64_t ipcbst:1;
 255                uint64_t picbst:1;
 256                uint64_t xrdmsk:1;
 257                uint64_t xrddat:1;
 258        } s;
 259        struct cvmx_l2c_bst2_cn30xx {
 260                uint64_t reserved_16_63:48;
 261                uint64_t mrb:4;
 262                uint64_t rmdf:4;
 263                uint64_t reserved_4_7:4;
 264                uint64_t ipcbst:1;
 265                uint64_t reserved_2_2:1;
 266                uint64_t xrdmsk:1;
 267                uint64_t xrddat:1;
 268        } cn30xx;
 269        struct cvmx_l2c_bst2_cn30xx cn31xx;
 270        struct cvmx_l2c_bst2_cn38xx {
 271                uint64_t reserved_16_63:48;
 272                uint64_t mrb:4;
 273                uint64_t rmdf:4;
 274                uint64_t rhdf:4;
 275                uint64_t ipcbst:1;
 276                uint64_t picbst:1;
 277                uint64_t xrdmsk:1;
 278                uint64_t xrddat:1;
 279        } cn38xx;
 280        struct cvmx_l2c_bst2_cn38xx cn38xxp2;
 281        struct cvmx_l2c_bst2_cn30xx cn50xx;
 282        struct cvmx_l2c_bst2_cn30xx cn52xx;
 283        struct cvmx_l2c_bst2_cn30xx cn52xxp1;
 284        struct cvmx_l2c_bst2_cn56xx {
 285                uint64_t reserved_16_63:48;
 286                uint64_t mrb:4;
 287                uint64_t rmdb:4;
 288                uint64_t rhdb:4;
 289                uint64_t ipcbst:1;
 290                uint64_t picbst:1;
 291                uint64_t xrdmsk:1;
 292                uint64_t xrddat:1;
 293        } cn56xx;
 294        struct cvmx_l2c_bst2_cn56xx cn56xxp1;
 295        struct cvmx_l2c_bst2_cn56xx cn58xx;
 296        struct cvmx_l2c_bst2_cn56xx cn58xxp1;
 297};
 298
 299union cvmx_l2c_bst_memx {
 300        uint64_t u64;
 301        struct cvmx_l2c_bst_memx_s {
 302                uint64_t start_bist:1;
 303                uint64_t clear_bist:1;
 304                uint64_t reserved_5_61:57;
 305                uint64_t rdffl:1;
 306                uint64_t vbffl:4;
 307        } s;
 308        struct cvmx_l2c_bst_memx_s cn63xx;
 309        struct cvmx_l2c_bst_memx_s cn63xxp1;
 310};
 311
 312union cvmx_l2c_bst_tdtx {
 313        uint64_t u64;
 314        struct cvmx_l2c_bst_tdtx_s {
 315                uint64_t reserved_32_63:32;
 316                uint64_t fbfrspfl:8;
 317                uint64_t sbffl:8;
 318                uint64_t fbffl:8;
 319                uint64_t l2dfl:8;
 320        } s;
 321        struct cvmx_l2c_bst_tdtx_s cn63xx;
 322        struct cvmx_l2c_bst_tdtx_cn63xxp1 {
 323                uint64_t reserved_24_63:40;
 324                uint64_t sbffl:8;
 325                uint64_t fbffl:8;
 326                uint64_t l2dfl:8;
 327        } cn63xxp1;
 328};
 329
 330union cvmx_l2c_bst_ttgx {
 331        uint64_t u64;
 332        struct cvmx_l2c_bst_ttgx_s {
 333                uint64_t reserved_17_63:47;
 334                uint64_t lrufl:1;
 335                uint64_t tagfl:16;
 336        } s;
 337        struct cvmx_l2c_bst_ttgx_s cn63xx;
 338        struct cvmx_l2c_bst_ttgx_s cn63xxp1;
 339};
 340
 341union cvmx_l2c_cfg {
 342        uint64_t u64;
 343        struct cvmx_l2c_cfg_s {
 344                uint64_t reserved_20_63:44;
 345                uint64_t bstrun:1;
 346                uint64_t lbist:1;
 347                uint64_t xor_bank:1;
 348                uint64_t dpres1:1;
 349                uint64_t dpres0:1;
 350                uint64_t dfill_dis:1;
 351                uint64_t fpexp:4;
 352                uint64_t fpempty:1;
 353                uint64_t fpen:1;
 354                uint64_t idxalias:1;
 355                uint64_t mwf_crd:4;
 356                uint64_t rsp_arb_mode:1;
 357                uint64_t rfb_arb_mode:1;
 358                uint64_t lrf_arb_mode:1;
 359        } s;
 360        struct cvmx_l2c_cfg_cn30xx {
 361                uint64_t reserved_14_63:50;
 362                uint64_t fpexp:4;
 363                uint64_t fpempty:1;
 364                uint64_t fpen:1;
 365                uint64_t idxalias:1;
 366                uint64_t mwf_crd:4;
 367                uint64_t rsp_arb_mode:1;
 368                uint64_t rfb_arb_mode:1;
 369                uint64_t lrf_arb_mode:1;
 370        } cn30xx;
 371        struct cvmx_l2c_cfg_cn30xx cn31xx;
 372        struct cvmx_l2c_cfg_cn30xx cn38xx;
 373        struct cvmx_l2c_cfg_cn30xx cn38xxp2;
 374        struct cvmx_l2c_cfg_cn50xx {
 375                uint64_t reserved_20_63:44;
 376                uint64_t bstrun:1;
 377                uint64_t lbist:1;
 378                uint64_t reserved_14_17:4;
 379                uint64_t fpexp:4;
 380                uint64_t fpempty:1;
 381                uint64_t fpen:1;
 382                uint64_t idxalias:1;
 383                uint64_t mwf_crd:4;
 384                uint64_t rsp_arb_mode:1;
 385                uint64_t rfb_arb_mode:1;
 386                uint64_t lrf_arb_mode:1;
 387        } cn50xx;
 388        struct cvmx_l2c_cfg_cn50xx cn52xx;
 389        struct cvmx_l2c_cfg_cn50xx cn52xxp1;
 390        struct cvmx_l2c_cfg_s cn56xx;
 391        struct cvmx_l2c_cfg_s cn56xxp1;
 392        struct cvmx_l2c_cfg_cn58xx {
 393                uint64_t reserved_20_63:44;
 394                uint64_t bstrun:1;
 395                uint64_t lbist:1;
 396                uint64_t reserved_15_17:3;
 397                uint64_t dfill_dis:1;
 398                uint64_t fpexp:4;
 399                uint64_t fpempty:1;
 400                uint64_t fpen:1;
 401                uint64_t idxalias:1;
 402                uint64_t mwf_crd:4;
 403                uint64_t rsp_arb_mode:1;
 404                uint64_t rfb_arb_mode:1;
 405                uint64_t lrf_arb_mode:1;
 406        } cn58xx;
 407        struct cvmx_l2c_cfg_cn58xxp1 {
 408                uint64_t reserved_15_63:49;
 409                uint64_t dfill_dis:1;
 410                uint64_t fpexp:4;
 411                uint64_t fpempty:1;
 412                uint64_t fpen:1;
 413                uint64_t idxalias:1;
 414                uint64_t mwf_crd:4;
 415                uint64_t rsp_arb_mode:1;
 416                uint64_t rfb_arb_mode:1;
 417                uint64_t lrf_arb_mode:1;
 418        } cn58xxp1;
 419};
 420
 421union cvmx_l2c_cop0_mapx {
 422        uint64_t u64;
 423        struct cvmx_l2c_cop0_mapx_s {
 424                uint64_t data:64;
 425        } s;
 426        struct cvmx_l2c_cop0_mapx_s cn63xx;
 427        struct cvmx_l2c_cop0_mapx_s cn63xxp1;
 428};
 429
 430union cvmx_l2c_ctl {
 431        uint64_t u64;
 432        struct cvmx_l2c_ctl_s {
 433                uint64_t reserved_28_63:36;
 434                uint64_t disstgl2i:1;
 435                uint64_t l2dfsbe:1;
 436                uint64_t l2dfdbe:1;
 437                uint64_t discclk:1;
 438                uint64_t maxvab:4;
 439                uint64_t maxlfb:4;
 440                uint64_t rsp_arb_mode:1;
 441                uint64_t xmc_arb_mode:1;
 442                uint64_t ef_ena:1;
 443                uint64_t ef_cnt:7;
 444                uint64_t vab_thresh:4;
 445                uint64_t disecc:1;
 446                uint64_t disidxalias:1;
 447        } s;
 448        struct cvmx_l2c_ctl_s cn63xx;
 449        struct cvmx_l2c_ctl_cn63xxp1 {
 450                uint64_t reserved_25_63:39;
 451                uint64_t discclk:1;
 452                uint64_t maxvab:4;
 453                uint64_t maxlfb:4;
 454                uint64_t rsp_arb_mode:1;
 455                uint64_t xmc_arb_mode:1;
 456                uint64_t ef_ena:1;
 457                uint64_t ef_cnt:7;
 458                uint64_t vab_thresh:4;
 459                uint64_t disecc:1;
 460                uint64_t disidxalias:1;
 461        } cn63xxp1;
 462};
 463
 464union cvmx_l2c_dbg {
 465        uint64_t u64;
 466        struct cvmx_l2c_dbg_s {
 467                uint64_t reserved_15_63:49;
 468                uint64_t lfb_enum:4;
 469                uint64_t lfb_dmp:1;
 470                uint64_t ppnum:4;
 471                uint64_t set:3;
 472                uint64_t finv:1;
 473                uint64_t l2d:1;
 474                uint64_t l2t:1;
 475        } s;
 476        struct cvmx_l2c_dbg_cn30xx {
 477                uint64_t reserved_13_63:51;
 478                uint64_t lfb_enum:2;
 479                uint64_t lfb_dmp:1;
 480                uint64_t reserved_7_9:3;
 481                uint64_t ppnum:1;
 482                uint64_t reserved_5_5:1;
 483                uint64_t set:2;
 484                uint64_t finv:1;
 485                uint64_t l2d:1;
 486                uint64_t l2t:1;
 487        } cn30xx;
 488        struct cvmx_l2c_dbg_cn31xx {
 489                uint64_t reserved_14_63:50;
 490                uint64_t lfb_enum:3;
 491                uint64_t lfb_dmp:1;
 492                uint64_t reserved_7_9:3;
 493                uint64_t ppnum:1;
 494                uint64_t reserved_5_5:1;
 495                uint64_t set:2;
 496                uint64_t finv:1;
 497                uint64_t l2d:1;
 498                uint64_t l2t:1;
 499        } cn31xx;
 500        struct cvmx_l2c_dbg_s cn38xx;
 501        struct cvmx_l2c_dbg_s cn38xxp2;
 502        struct cvmx_l2c_dbg_cn50xx {
 503                uint64_t reserved_14_63:50;
 504                uint64_t lfb_enum:3;
 505                uint64_t lfb_dmp:1;
 506                uint64_t reserved_7_9:3;
 507                uint64_t ppnum:1;
 508                uint64_t set:3;
 509                uint64_t finv:1;
 510                uint64_t l2d:1;
 511                uint64_t l2t:1;
 512        } cn50xx;
 513        struct cvmx_l2c_dbg_cn52xx {
 514                uint64_t reserved_14_63:50;
 515                uint64_t lfb_enum:3;
 516                uint64_t lfb_dmp:1;
 517                uint64_t reserved_8_9:2;
 518                uint64_t ppnum:2;
 519                uint64_t set:3;
 520                uint64_t finv:1;
 521                uint64_t l2d:1;
 522                uint64_t l2t:1;
 523        } cn52xx;
 524        struct cvmx_l2c_dbg_cn52xx cn52xxp1;
 525        struct cvmx_l2c_dbg_s cn56xx;
 526        struct cvmx_l2c_dbg_s cn56xxp1;
 527        struct cvmx_l2c_dbg_s cn58xx;
 528        struct cvmx_l2c_dbg_s cn58xxp1;
 529};
 530
 531union cvmx_l2c_dut {
 532        uint64_t u64;
 533        struct cvmx_l2c_dut_s {
 534                uint64_t reserved_32_63:32;
 535                uint64_t dtena:1;
 536                uint64_t reserved_30_30:1;
 537                uint64_t dt_vld:1;
 538                uint64_t dt_tag:29;
 539        } s;
 540        struct cvmx_l2c_dut_s cn30xx;
 541        struct cvmx_l2c_dut_s cn31xx;
 542        struct cvmx_l2c_dut_s cn38xx;
 543        struct cvmx_l2c_dut_s cn38xxp2;
 544        struct cvmx_l2c_dut_s cn50xx;
 545        struct cvmx_l2c_dut_s cn52xx;
 546        struct cvmx_l2c_dut_s cn52xxp1;
 547        struct cvmx_l2c_dut_s cn56xx;
 548        struct cvmx_l2c_dut_s cn56xxp1;
 549        struct cvmx_l2c_dut_s cn58xx;
 550        struct cvmx_l2c_dut_s cn58xxp1;
 551};
 552
 553union cvmx_l2c_dut_mapx {
 554        uint64_t u64;
 555        struct cvmx_l2c_dut_mapx_s {
 556                uint64_t reserved_38_63:26;
 557                uint64_t tag:28;
 558                uint64_t reserved_1_9:9;
 559                uint64_t valid:1;
 560        } s;
 561        struct cvmx_l2c_dut_mapx_s cn63xx;
 562        struct cvmx_l2c_dut_mapx_s cn63xxp1;
 563};
 564
 565union cvmx_l2c_err_tdtx {
 566        uint64_t u64;
 567        struct cvmx_l2c_err_tdtx_s {
 568                uint64_t dbe:1;
 569                uint64_t sbe:1;
 570                uint64_t vdbe:1;
 571                uint64_t vsbe:1;
 572                uint64_t syn:10;
 573                uint64_t reserved_21_49:29;
 574                uint64_t wayidx:17;
 575                uint64_t reserved_2_3:2;
 576                uint64_t type:2;
 577        } s;
 578        struct cvmx_l2c_err_tdtx_s cn63xx;
 579        struct cvmx_l2c_err_tdtx_s cn63xxp1;
 580};
 581
 582union cvmx_l2c_err_ttgx {
 583        uint64_t u64;
 584        struct cvmx_l2c_err_ttgx_s {
 585                uint64_t dbe:1;
 586                uint64_t sbe:1;
 587                uint64_t noway:1;
 588                uint64_t reserved_56_60:5;
 589                uint64_t syn:6;
 590                uint64_t reserved_21_49:29;
 591                uint64_t wayidx:14;
 592                uint64_t reserved_2_6:5;
 593                uint64_t type:2;
 594        } s;
 595        struct cvmx_l2c_err_ttgx_s cn63xx;
 596        struct cvmx_l2c_err_ttgx_s cn63xxp1;
 597};
 598
 599union cvmx_l2c_err_vbfx {
 600        uint64_t u64;
 601        struct cvmx_l2c_err_vbfx_s {
 602                uint64_t reserved_62_63:2;
 603                uint64_t vdbe:1;
 604                uint64_t vsbe:1;
 605                uint64_t vsyn:10;
 606                uint64_t reserved_2_49:48;
 607                uint64_t type:2;
 608        } s;
 609        struct cvmx_l2c_err_vbfx_s cn63xx;
 610        struct cvmx_l2c_err_vbfx_s cn63xxp1;
 611};
 612
 613union cvmx_l2c_err_xmc {
 614        uint64_t u64;
 615        struct cvmx_l2c_err_xmc_s {
 616                uint64_t cmd:6;
 617                uint64_t reserved_52_57:6;
 618                uint64_t sid:4;
 619                uint64_t reserved_38_47:10;
 620                uint64_t addr:38;
 621        } s;
 622        struct cvmx_l2c_err_xmc_s cn63xx;
 623        struct cvmx_l2c_err_xmc_s cn63xxp1;
 624};
 625
 626union cvmx_l2c_grpwrr0 {
 627        uint64_t u64;
 628        struct cvmx_l2c_grpwrr0_s {
 629                uint64_t plc1rmsk:32;
 630                uint64_t plc0rmsk:32;
 631        } s;
 632        struct cvmx_l2c_grpwrr0_s cn52xx;
 633        struct cvmx_l2c_grpwrr0_s cn52xxp1;
 634        struct cvmx_l2c_grpwrr0_s cn56xx;
 635        struct cvmx_l2c_grpwrr0_s cn56xxp1;
 636};
 637
 638union cvmx_l2c_grpwrr1 {
 639        uint64_t u64;
 640        struct cvmx_l2c_grpwrr1_s {
 641                uint64_t ilcrmsk:32;
 642                uint64_t plc2rmsk:32;
 643        } s;
 644        struct cvmx_l2c_grpwrr1_s cn52xx;
 645        struct cvmx_l2c_grpwrr1_s cn52xxp1;
 646        struct cvmx_l2c_grpwrr1_s cn56xx;
 647        struct cvmx_l2c_grpwrr1_s cn56xxp1;
 648};
 649
 650union cvmx_l2c_int_en {
 651        uint64_t u64;
 652        struct cvmx_l2c_int_en_s {
 653                uint64_t reserved_9_63:55;
 654                uint64_t lck2ena:1;
 655                uint64_t lckena:1;
 656                uint64_t l2ddeden:1;
 657                uint64_t l2dsecen:1;
 658                uint64_t l2tdeden:1;
 659                uint64_t l2tsecen:1;
 660                uint64_t oob3en:1;
 661                uint64_t oob2en:1;
 662                uint64_t oob1en:1;
 663        } s;
 664        struct cvmx_l2c_int_en_s cn52xx;
 665        struct cvmx_l2c_int_en_s cn52xxp1;
 666        struct cvmx_l2c_int_en_s cn56xx;
 667        struct cvmx_l2c_int_en_s cn56xxp1;
 668};
 669
 670union cvmx_l2c_int_ena {
 671        uint64_t u64;
 672        struct cvmx_l2c_int_ena_s {
 673                uint64_t reserved_8_63:56;
 674                uint64_t bigrd:1;
 675                uint64_t bigwr:1;
 676                uint64_t vrtpe:1;
 677                uint64_t vrtadrng:1;
 678                uint64_t vrtidrng:1;
 679                uint64_t vrtwr:1;
 680                uint64_t holewr:1;
 681                uint64_t holerd:1;
 682        } s;
 683        struct cvmx_l2c_int_ena_s cn63xx;
 684        struct cvmx_l2c_int_ena_cn63xxp1 {
 685                uint64_t reserved_6_63:58;
 686                uint64_t vrtpe:1;
 687                uint64_t vrtadrng:1;
 688                uint64_t vrtidrng:1;
 689                uint64_t vrtwr:1;
 690                uint64_t holewr:1;
 691                uint64_t holerd:1;
 692        } cn63xxp1;
 693};
 694
 695union cvmx_l2c_int_reg {
 696        uint64_t u64;
 697        struct cvmx_l2c_int_reg_s {
 698                uint64_t reserved_17_63:47;
 699                uint64_t tad0:1;
 700                uint64_t reserved_8_15:8;
 701                uint64_t bigrd:1;
 702                uint64_t bigwr:1;
 703                uint64_t vrtpe:1;
 704                uint64_t vrtadrng:1;
 705                uint64_t vrtidrng:1;
 706                uint64_t vrtwr:1;
 707                uint64_t holewr:1;
 708                uint64_t holerd:1;
 709        } s;
 710        struct cvmx_l2c_int_reg_s cn63xx;
 711        struct cvmx_l2c_int_reg_cn63xxp1 {
 712                uint64_t reserved_17_63:47;
 713                uint64_t tad0:1;
 714                uint64_t reserved_6_15:10;
 715                uint64_t vrtpe:1;
 716                uint64_t vrtadrng:1;
 717                uint64_t vrtidrng:1;
 718                uint64_t vrtwr:1;
 719                uint64_t holewr:1;
 720                uint64_t holerd:1;
 721        } cn63xxp1;
 722};
 723
 724union cvmx_l2c_int_stat {
 725        uint64_t u64;
 726        struct cvmx_l2c_int_stat_s {
 727                uint64_t reserved_9_63:55;
 728                uint64_t lck2:1;
 729                uint64_t lck:1;
 730                uint64_t l2dded:1;
 731                uint64_t l2dsec:1;
 732                uint64_t l2tded:1;
 733                uint64_t l2tsec:1;
 734                uint64_t oob3:1;
 735                uint64_t oob2:1;
 736                uint64_t oob1:1;
 737        } s;
 738        struct cvmx_l2c_int_stat_s cn52xx;
 739        struct cvmx_l2c_int_stat_s cn52xxp1;
 740        struct cvmx_l2c_int_stat_s cn56xx;
 741        struct cvmx_l2c_int_stat_s cn56xxp1;
 742};
 743
 744union cvmx_l2c_iocx_pfc {
 745        uint64_t u64;
 746        struct cvmx_l2c_iocx_pfc_s {
 747                uint64_t count:64;
 748        } s;
 749        struct cvmx_l2c_iocx_pfc_s cn63xx;
 750        struct cvmx_l2c_iocx_pfc_s cn63xxp1;
 751};
 752
 753union cvmx_l2c_iorx_pfc {
 754        uint64_t u64;
 755        struct cvmx_l2c_iorx_pfc_s {
 756                uint64_t count:64;
 757        } s;
 758        struct cvmx_l2c_iorx_pfc_s cn63xx;
 759        struct cvmx_l2c_iorx_pfc_s cn63xxp1;
 760};
 761
 762union cvmx_l2c_lckbase {
 763        uint64_t u64;
 764        struct cvmx_l2c_lckbase_s {
 765                uint64_t reserved_31_63:33;
 766                uint64_t lck_base:27;
 767                uint64_t reserved_1_3:3;
 768                uint64_t lck_ena:1;
 769        } s;
 770        struct cvmx_l2c_lckbase_s cn30xx;
 771        struct cvmx_l2c_lckbase_s cn31xx;
 772        struct cvmx_l2c_lckbase_s cn38xx;
 773        struct cvmx_l2c_lckbase_s cn38xxp2;
 774        struct cvmx_l2c_lckbase_s cn50xx;
 775        struct cvmx_l2c_lckbase_s cn52xx;
 776        struct cvmx_l2c_lckbase_s cn52xxp1;
 777        struct cvmx_l2c_lckbase_s cn56xx;
 778        struct cvmx_l2c_lckbase_s cn56xxp1;
 779        struct cvmx_l2c_lckbase_s cn58xx;
 780        struct cvmx_l2c_lckbase_s cn58xxp1;
 781};
 782
 783union cvmx_l2c_lckoff {
 784        uint64_t u64;
 785        struct cvmx_l2c_lckoff_s {
 786                uint64_t reserved_10_63:54;
 787                uint64_t lck_offset:10;
 788        } s;
 789        struct cvmx_l2c_lckoff_s cn30xx;
 790        struct cvmx_l2c_lckoff_s cn31xx;
 791        struct cvmx_l2c_lckoff_s cn38xx;
 792        struct cvmx_l2c_lckoff_s cn38xxp2;
 793        struct cvmx_l2c_lckoff_s cn50xx;
 794        struct cvmx_l2c_lckoff_s cn52xx;
 795        struct cvmx_l2c_lckoff_s cn52xxp1;
 796        struct cvmx_l2c_lckoff_s cn56xx;
 797        struct cvmx_l2c_lckoff_s cn56xxp1;
 798        struct cvmx_l2c_lckoff_s cn58xx;
 799        struct cvmx_l2c_lckoff_s cn58xxp1;
 800};
 801
 802union cvmx_l2c_lfb0 {
 803        uint64_t u64;
 804        struct cvmx_l2c_lfb0_s {
 805                uint64_t reserved_32_63:32;
 806                uint64_t stcpnd:1;
 807                uint64_t stpnd:1;
 808                uint64_t stinv:1;
 809                uint64_t stcfl:1;
 810                uint64_t vam:1;
 811                uint64_t inxt:4;
 812                uint64_t itl:1;
 813                uint64_t ihd:1;
 814                uint64_t set:3;
 815                uint64_t vabnum:4;
 816                uint64_t sid:9;
 817                uint64_t cmd:4;
 818                uint64_t vld:1;
 819        } s;
 820        struct cvmx_l2c_lfb0_cn30xx {
 821                uint64_t reserved_32_63:32;
 822                uint64_t stcpnd:1;
 823                uint64_t stpnd:1;
 824                uint64_t stinv:1;
 825                uint64_t stcfl:1;
 826                uint64_t vam:1;
 827                uint64_t reserved_25_26:2;
 828                uint64_t inxt:2;
 829                uint64_t itl:1;
 830                uint64_t ihd:1;
 831                uint64_t reserved_20_20:1;
 832                uint64_t set:2;
 833                uint64_t reserved_16_17:2;
 834                uint64_t vabnum:2;
 835                uint64_t sid:9;
 836                uint64_t cmd:4;
 837                uint64_t vld:1;
 838        } cn30xx;
 839        struct cvmx_l2c_lfb0_cn31xx {
 840                uint64_t reserved_32_63:32;
 841                uint64_t stcpnd:1;
 842                uint64_t stpnd:1;
 843                uint64_t stinv:1;
 844                uint64_t stcfl:1;
 845                uint64_t vam:1;
 846                uint64_t reserved_26_26:1;
 847                uint64_t inxt:3;
 848                uint64_t itl:1;
 849                uint64_t ihd:1;
 850                uint64_t reserved_20_20:1;
 851                uint64_t set:2;
 852                uint64_t reserved_17_17:1;
 853                uint64_t vabnum:3;
 854                uint64_t sid:9;
 855                uint64_t cmd:4;
 856                uint64_t vld:1;
 857        } cn31xx;
 858        struct cvmx_l2c_lfb0_s cn38xx;
 859        struct cvmx_l2c_lfb0_s cn38xxp2;
 860        struct cvmx_l2c_lfb0_cn50xx {
 861                uint64_t reserved_32_63:32;
 862                uint64_t stcpnd:1;
 863                uint64_t stpnd:1;
 864                uint64_t stinv:1;
 865                uint64_t stcfl:1;
 866                uint64_t vam:1;
 867                uint64_t reserved_26_26:1;
 868                uint64_t inxt:3;
 869                uint64_t itl:1;
 870                uint64_t ihd:1;
 871                uint64_t set:3;
 872                uint64_t reserved_17_17:1;
 873                uint64_t vabnum:3;
 874                uint64_t sid:9;
 875                uint64_t cmd:4;
 876                uint64_t vld:1;
 877        } cn50xx;
 878        struct cvmx_l2c_lfb0_cn50xx cn52xx;
 879        struct cvmx_l2c_lfb0_cn50xx cn52xxp1;
 880        struct cvmx_l2c_lfb0_s cn56xx;
 881        struct cvmx_l2c_lfb0_s cn56xxp1;
 882        struct cvmx_l2c_lfb0_s cn58xx;
 883        struct cvmx_l2c_lfb0_s cn58xxp1;
 884};
 885
 886union cvmx_l2c_lfb1 {
 887        uint64_t u64;
 888        struct cvmx_l2c_lfb1_s {
 889                uint64_t reserved_19_63:45;
 890                uint64_t dsgoing:1;
 891                uint64_t bid:2;
 892                uint64_t wtrsp:1;
 893                uint64_t wtdw:1;
 894                uint64_t wtdq:1;
 895                uint64_t wtwhp:1;
 896                uint64_t wtwhf:1;
 897                uint64_t wtwrm:1;
 898                uint64_t wtstm:1;
 899                uint64_t wtrda:1;
 900                uint64_t wtstdt:1;
 901                uint64_t wtstrsp:1;
 902                uint64_t wtstrsc:1;
 903                uint64_t wtvtm:1;
 904                uint64_t wtmfl:1;
 905                uint64_t prbrty:1;
 906                uint64_t wtprb:1;
 907                uint64_t vld:1;
 908        } s;
 909        struct cvmx_l2c_lfb1_s cn30xx;
 910        struct cvmx_l2c_lfb1_s cn31xx;
 911        struct cvmx_l2c_lfb1_s cn38xx;
 912        struct cvmx_l2c_lfb1_s cn38xxp2;
 913        struct cvmx_l2c_lfb1_s cn50xx;
 914        struct cvmx_l2c_lfb1_s cn52xx;
 915        struct cvmx_l2c_lfb1_s cn52xxp1;
 916        struct cvmx_l2c_lfb1_s cn56xx;
 917        struct cvmx_l2c_lfb1_s cn56xxp1;
 918        struct cvmx_l2c_lfb1_s cn58xx;
 919        struct cvmx_l2c_lfb1_s cn58xxp1;
 920};
 921
 922union cvmx_l2c_lfb2 {
 923        uint64_t u64;
 924        struct cvmx_l2c_lfb2_s {
 925                uint64_t reserved_0_63:64;
 926        } s;
 927        struct cvmx_l2c_lfb2_cn30xx {
 928                uint64_t reserved_27_63:37;
 929                uint64_t lfb_tag:19;
 930                uint64_t lfb_idx:8;
 931        } cn30xx;
 932        struct cvmx_l2c_lfb2_cn31xx {
 933                uint64_t reserved_27_63:37;
 934                uint64_t lfb_tag:17;
 935                uint64_t lfb_idx:10;
 936        } cn31xx;
 937        struct cvmx_l2c_lfb2_cn31xx cn38xx;
 938        struct cvmx_l2c_lfb2_cn31xx cn38xxp2;
 939        struct cvmx_l2c_lfb2_cn50xx {
 940                uint64_t reserved_27_63:37;
 941                uint64_t lfb_tag:20;
 942                uint64_t lfb_idx:7;
 943        } cn50xx;
 944        struct cvmx_l2c_lfb2_cn52xx {
 945                uint64_t reserved_27_63:37;
 946                uint64_t lfb_tag:18;
 947                uint64_t lfb_idx:9;
 948        } cn52xx;
 949        struct cvmx_l2c_lfb2_cn52xx cn52xxp1;
 950        struct cvmx_l2c_lfb2_cn56xx {
 951                uint64_t reserved_27_63:37;
 952                uint64_t lfb_tag:16;
 953                uint64_t lfb_idx:11;
 954        } cn56xx;
 955        struct cvmx_l2c_lfb2_cn56xx cn56xxp1;
 956        struct cvmx_l2c_lfb2_cn56xx cn58xx;
 957        struct cvmx_l2c_lfb2_cn56xx cn58xxp1;
 958};
 959
 960union cvmx_l2c_lfb3 {
 961        uint64_t u64;
 962        struct cvmx_l2c_lfb3_s {
 963                uint64_t reserved_5_63:59;
 964                uint64_t stpartdis:1;
 965                uint64_t lfb_hwm:4;
 966        } s;
 967        struct cvmx_l2c_lfb3_cn30xx {
 968                uint64_t reserved_5_63:59;
 969                uint64_t stpartdis:1;
 970                uint64_t reserved_2_3:2;
 971                uint64_t lfb_hwm:2;
 972        } cn30xx;
 973        struct cvmx_l2c_lfb3_cn31xx {
 974                uint64_t reserved_5_63:59;
 975                uint64_t stpartdis:1;
 976                uint64_t reserved_3_3:1;
 977                uint64_t lfb_hwm:3;
 978        } cn31xx;
 979        struct cvmx_l2c_lfb3_s cn38xx;
 980        struct cvmx_l2c_lfb3_s cn38xxp2;
 981        struct cvmx_l2c_lfb3_cn31xx cn50xx;
 982        struct cvmx_l2c_lfb3_cn31xx cn52xx;
 983        struct cvmx_l2c_lfb3_cn31xx cn52xxp1;
 984        struct cvmx_l2c_lfb3_s cn56xx;
 985        struct cvmx_l2c_lfb3_s cn56xxp1;
 986        struct cvmx_l2c_lfb3_s cn58xx;
 987        struct cvmx_l2c_lfb3_s cn58xxp1;
 988};
 989
 990union cvmx_l2c_oob {
 991        uint64_t u64;
 992        struct cvmx_l2c_oob_s {
 993                uint64_t reserved_2_63:62;
 994                uint64_t dwbena:1;
 995                uint64_t stena:1;
 996        } s;
 997        struct cvmx_l2c_oob_s cn52xx;
 998        struct cvmx_l2c_oob_s cn52xxp1;
 999        struct cvmx_l2c_oob_s cn56xx;
1000        struct cvmx_l2c_oob_s cn56xxp1;
1001};
1002
1003union cvmx_l2c_oob1 {
1004        uint64_t u64;
1005        struct cvmx_l2c_oob1_s {
1006                uint64_t fadr:27;
1007                uint64_t fsrc:1;
1008                uint64_t reserved_34_35:2;
1009                uint64_t sadr:14;
1010                uint64_t reserved_14_19:6;
1011                uint64_t size:14;
1012        } s;
1013        struct cvmx_l2c_oob1_s cn52xx;
1014        struct cvmx_l2c_oob1_s cn52xxp1;
1015        struct cvmx_l2c_oob1_s cn56xx;
1016        struct cvmx_l2c_oob1_s cn56xxp1;
1017};
1018
1019union cvmx_l2c_oob2 {
1020        uint64_t u64;
1021        struct cvmx_l2c_oob2_s {
1022                uint64_t fadr:27;
1023                uint64_t fsrc:1;
1024                uint64_t reserved_34_35:2;
1025                uint64_t sadr:14;
1026                uint64_t reserved_14_19:6;
1027                uint64_t size:14;
1028        } s;
1029        struct cvmx_l2c_oob2_s cn52xx;
1030        struct cvmx_l2c_oob2_s cn52xxp1;
1031        struct cvmx_l2c_oob2_s cn56xx;
1032        struct cvmx_l2c_oob2_s cn56xxp1;
1033};
1034
1035union cvmx_l2c_oob3 {
1036        uint64_t u64;
1037        struct cvmx_l2c_oob3_s {
1038                uint64_t fadr:27;
1039                uint64_t fsrc:1;
1040                uint64_t reserved_34_35:2;
1041                uint64_t sadr:14;
1042                uint64_t reserved_14_19:6;
1043                uint64_t size:14;
1044        } s;
1045        struct cvmx_l2c_oob3_s cn52xx;
1046        struct cvmx_l2c_oob3_s cn52xxp1;
1047        struct cvmx_l2c_oob3_s cn56xx;
1048        struct cvmx_l2c_oob3_s cn56xxp1;
1049};
1050
1051union cvmx_l2c_pfcx {
1052        uint64_t u64;
1053        struct cvmx_l2c_pfcx_s {
1054                uint64_t reserved_36_63:28;
1055                uint64_t pfcnt0:36;
1056        } s;
1057        struct cvmx_l2c_pfcx_s cn30xx;
1058        struct cvmx_l2c_pfcx_s cn31xx;
1059        struct cvmx_l2c_pfcx_s cn38xx;
1060        struct cvmx_l2c_pfcx_s cn38xxp2;
1061        struct cvmx_l2c_pfcx_s cn50xx;
1062        struct cvmx_l2c_pfcx_s cn52xx;
1063        struct cvmx_l2c_pfcx_s cn52xxp1;
1064        struct cvmx_l2c_pfcx_s cn56xx;
1065        struct cvmx_l2c_pfcx_s cn56xxp1;
1066        struct cvmx_l2c_pfcx_s cn58xx;
1067        struct cvmx_l2c_pfcx_s cn58xxp1;
1068};
1069
1070union cvmx_l2c_pfctl {
1071        uint64_t u64;
1072        struct cvmx_l2c_pfctl_s {
1073                uint64_t reserved_36_63:28;
1074                uint64_t cnt3rdclr:1;
1075                uint64_t cnt2rdclr:1;
1076                uint64_t cnt1rdclr:1;
1077                uint64_t cnt0rdclr:1;
1078                uint64_t cnt3ena:1;
1079                uint64_t cnt3clr:1;
1080                uint64_t cnt3sel:6;
1081                uint64_t cnt2ena:1;
1082                uint64_t cnt2clr:1;
1083                uint64_t cnt2sel:6;
1084                uint64_t cnt1ena:1;
1085                uint64_t cnt1clr:1;
1086                uint64_t cnt1sel:6;
1087                uint64_t cnt0ena:1;
1088                uint64_t cnt0clr:1;
1089                uint64_t cnt0sel:6;
1090        } s;
1091        struct cvmx_l2c_pfctl_s cn30xx;
1092        struct cvmx_l2c_pfctl_s cn31xx;
1093        struct cvmx_l2c_pfctl_s cn38xx;
1094        struct cvmx_l2c_pfctl_s cn38xxp2;
1095        struct cvmx_l2c_pfctl_s cn50xx;
1096        struct cvmx_l2c_pfctl_s cn52xx;
1097        struct cvmx_l2c_pfctl_s cn52xxp1;
1098        struct cvmx_l2c_pfctl_s cn56xx;
1099        struct cvmx_l2c_pfctl_s cn56xxp1;
1100        struct cvmx_l2c_pfctl_s cn58xx;
1101        struct cvmx_l2c_pfctl_s cn58xxp1;
1102};
1103
1104union cvmx_l2c_ppgrp {
1105        uint64_t u64;
1106        struct cvmx_l2c_ppgrp_s {
1107                uint64_t reserved_24_63:40;
1108                uint64_t pp11grp:2;
1109                uint64_t pp10grp:2;
1110                uint64_t pp9grp:2;
1111                uint64_t pp8grp:2;
1112                uint64_t pp7grp:2;
1113                uint64_t pp6grp:2;
1114                uint64_t pp5grp:2;
1115                uint64_t pp4grp:2;
1116                uint64_t pp3grp:2;
1117                uint64_t pp2grp:2;
1118                uint64_t pp1grp:2;
1119                uint64_t pp0grp:2;
1120        } s;
1121        struct cvmx_l2c_ppgrp_cn52xx {
1122                uint64_t reserved_8_63:56;
1123                uint64_t pp3grp:2;
1124                uint64_t pp2grp:2;
1125                uint64_t pp1grp:2;
1126                uint64_t pp0grp:2;
1127        } cn52xx;
1128        struct cvmx_l2c_ppgrp_cn52xx cn52xxp1;
1129        struct cvmx_l2c_ppgrp_s cn56xx;
1130        struct cvmx_l2c_ppgrp_s cn56xxp1;
1131};
1132
1133union cvmx_l2c_qos_iobx {
1134        uint64_t u64;
1135        struct cvmx_l2c_qos_iobx_s {
1136                uint64_t reserved_6_63:58;
1137                uint64_t dwblvl:2;
1138                uint64_t reserved_2_3:2;
1139                uint64_t lvl:2;
1140        } s;
1141        struct cvmx_l2c_qos_iobx_s cn63xx;
1142        struct cvmx_l2c_qos_iobx_s cn63xxp1;
1143};
1144
1145union cvmx_l2c_qos_ppx {
1146        uint64_t u64;
1147        struct cvmx_l2c_qos_ppx_s {
1148                uint64_t reserved_2_63:62;
1149                uint64_t lvl:2;
1150        } s;
1151        struct cvmx_l2c_qos_ppx_s cn63xx;
1152        struct cvmx_l2c_qos_ppx_s cn63xxp1;
1153};
1154
1155union cvmx_l2c_qos_wgt {
1156        uint64_t u64;
1157        struct cvmx_l2c_qos_wgt_s {
1158                uint64_t reserved_32_63:32;
1159                uint64_t wgt3:8;
1160                uint64_t wgt2:8;
1161                uint64_t wgt1:8;
1162                uint64_t wgt0:8;
1163        } s;
1164        struct cvmx_l2c_qos_wgt_s cn63xx;
1165        struct cvmx_l2c_qos_wgt_s cn63xxp1;
1166};
1167
1168union cvmx_l2c_rscx_pfc {
1169        uint64_t u64;
1170        struct cvmx_l2c_rscx_pfc_s {
1171                uint64_t count:64;
1172        } s;
1173        struct cvmx_l2c_rscx_pfc_s cn63xx;
1174        struct cvmx_l2c_rscx_pfc_s cn63xxp1;
1175};
1176
1177union cvmx_l2c_rsdx_pfc {
1178        uint64_t u64;
1179        struct cvmx_l2c_rsdx_pfc_s {
1180                uint64_t count:64;
1181        } s;
1182        struct cvmx_l2c_rsdx_pfc_s cn63xx;
1183        struct cvmx_l2c_rsdx_pfc_s cn63xxp1;
1184};
1185
1186union cvmx_l2c_spar0 {
1187        uint64_t u64;
1188        struct cvmx_l2c_spar0_s {
1189                uint64_t reserved_32_63:32;
1190                uint64_t umsk3:8;
1191                uint64_t umsk2:8;
1192                uint64_t umsk1:8;
1193                uint64_t umsk0:8;
1194        } s;
1195        struct cvmx_l2c_spar0_cn30xx {
1196                uint64_t reserved_4_63:60;
1197                uint64_t umsk0:4;
1198        } cn30xx;
1199        struct cvmx_l2c_spar0_cn31xx {
1200                uint64_t reserved_12_63:52;
1201                uint64_t umsk1:4;
1202                uint64_t reserved_4_7:4;
1203                uint64_t umsk0:4;
1204        } cn31xx;
1205        struct cvmx_l2c_spar0_s cn38xx;
1206        struct cvmx_l2c_spar0_s cn38xxp2;
1207        struct cvmx_l2c_spar0_cn50xx {
1208                uint64_t reserved_16_63:48;
1209                uint64_t umsk1:8;
1210                uint64_t umsk0:8;
1211        } cn50xx;
1212        struct cvmx_l2c_spar0_s cn52xx;
1213        struct cvmx_l2c_spar0_s cn52xxp1;
1214        struct cvmx_l2c_spar0_s cn56xx;
1215        struct cvmx_l2c_spar0_s cn56xxp1;
1216        struct cvmx_l2c_spar0_s cn58xx;
1217        struct cvmx_l2c_spar0_s cn58xxp1;
1218};
1219
1220union cvmx_l2c_spar1 {
1221        uint64_t u64;
1222        struct cvmx_l2c_spar1_s {
1223                uint64_t reserved_32_63:32;
1224                uint64_t umsk7:8;
1225                uint64_t umsk6:8;
1226                uint64_t umsk5:8;
1227                uint64_t umsk4:8;
1228        } s;
1229        struct cvmx_l2c_spar1_s cn38xx;
1230        struct cvmx_l2c_spar1_s cn38xxp2;
1231        struct cvmx_l2c_spar1_s cn56xx;
1232        struct cvmx_l2c_spar1_s cn56xxp1;
1233        struct cvmx_l2c_spar1_s cn58xx;
1234        struct cvmx_l2c_spar1_s cn58xxp1;
1235};
1236
1237union cvmx_l2c_spar2 {
1238        uint64_t u64;
1239        struct cvmx_l2c_spar2_s {
1240                uint64_t reserved_32_63:32;
1241                uint64_t umsk11:8;
1242                uint64_t umsk10:8;
1243                uint64_t umsk9:8;
1244                uint64_t umsk8:8;
1245        } s;
1246        struct cvmx_l2c_spar2_s cn38xx;
1247        struct cvmx_l2c_spar2_s cn38xxp2;
1248        struct cvmx_l2c_spar2_s cn56xx;
1249        struct cvmx_l2c_spar2_s cn56xxp1;
1250        struct cvmx_l2c_spar2_s cn58xx;
1251        struct cvmx_l2c_spar2_s cn58xxp1;
1252};
1253
1254union cvmx_l2c_spar3 {
1255        uint64_t u64;
1256        struct cvmx_l2c_spar3_s {
1257                uint64_t reserved_32_63:32;
1258                uint64_t umsk15:8;
1259                uint64_t umsk14:8;
1260                uint64_t umsk13:8;
1261                uint64_t umsk12:8;
1262        } s;
1263        struct cvmx_l2c_spar3_s cn38xx;
1264        struct cvmx_l2c_spar3_s cn38xxp2;
1265        struct cvmx_l2c_spar3_s cn58xx;
1266        struct cvmx_l2c_spar3_s cn58xxp1;
1267};
1268
1269union cvmx_l2c_spar4 {
1270        uint64_t u64;
1271        struct cvmx_l2c_spar4_s {
1272                uint64_t reserved_8_63:56;
1273                uint64_t umskiob:8;
1274        } s;
1275        struct cvmx_l2c_spar4_cn30xx {
1276                uint64_t reserved_4_63:60;
1277                uint64_t umskiob:4;
1278        } cn30xx;
1279        struct cvmx_l2c_spar4_cn30xx cn31xx;
1280        struct cvmx_l2c_spar4_s cn38xx;
1281        struct cvmx_l2c_spar4_s cn38xxp2;
1282        struct cvmx_l2c_spar4_s cn50xx;
1283        struct cvmx_l2c_spar4_s cn52xx;
1284        struct cvmx_l2c_spar4_s cn52xxp1;
1285        struct cvmx_l2c_spar4_s cn56xx;
1286        struct cvmx_l2c_spar4_s cn56xxp1;
1287        struct cvmx_l2c_spar4_s cn58xx;
1288        struct cvmx_l2c_spar4_s cn58xxp1;
1289};
1290
1291union cvmx_l2c_tadx_ecc0 {
1292        uint64_t u64;
1293        struct cvmx_l2c_tadx_ecc0_s {
1294                uint64_t reserved_58_63:6;
1295                uint64_t ow3ecc:10;
1296                uint64_t reserved_42_47:6;
1297                uint64_t ow2ecc:10;
1298                uint64_t reserved_26_31:6;
1299                uint64_t ow1ecc:10;
1300                uint64_t reserved_10_15:6;
1301                uint64_t ow0ecc:10;
1302        } s;
1303        struct cvmx_l2c_tadx_ecc0_s cn63xx;
1304        struct cvmx_l2c_tadx_ecc0_s cn63xxp1;
1305};
1306
1307union cvmx_l2c_tadx_ecc1 {
1308        uint64_t u64;
1309        struct cvmx_l2c_tadx_ecc1_s {
1310                uint64_t reserved_58_63:6;
1311                uint64_t ow7ecc:10;
1312                uint64_t reserved_42_47:6;
1313                uint64_t ow6ecc:10;
1314                uint64_t reserved_26_31:6;
1315                uint64_t ow5ecc:10;
1316                uint64_t reserved_10_15:6;
1317                uint64_t ow4ecc:10;
1318        } s;
1319        struct cvmx_l2c_tadx_ecc1_s cn63xx;
1320        struct cvmx_l2c_tadx_ecc1_s cn63xxp1;
1321};
1322
1323union cvmx_l2c_tadx_ien {
1324        uint64_t u64;
1325        struct cvmx_l2c_tadx_ien_s {
1326                uint64_t reserved_9_63:55;
1327                uint64_t wrdislmc:1;
1328                uint64_t rddislmc:1;
1329                uint64_t noway:1;
1330                uint64_t vbfdbe:1;
1331                uint64_t vbfsbe:1;
1332                uint64_t tagdbe:1;
1333                uint64_t tagsbe:1;
1334                uint64_t l2ddbe:1;
1335                uint64_t l2dsbe:1;
1336        } s;
1337        struct cvmx_l2c_tadx_ien_s cn63xx;
1338        struct cvmx_l2c_tadx_ien_cn63xxp1 {
1339                uint64_t reserved_7_63:57;
1340                uint64_t noway:1;
1341                uint64_t vbfdbe:1;
1342                uint64_t vbfsbe:1;
1343                uint64_t tagdbe:1;
1344                uint64_t tagsbe:1;
1345                uint64_t l2ddbe:1;
1346                uint64_t l2dsbe:1;
1347        } cn63xxp1;
1348};
1349
1350union cvmx_l2c_tadx_int {
1351        uint64_t u64;
1352        struct cvmx_l2c_tadx_int_s {
1353                uint64_t reserved_9_63:55;
1354                uint64_t wrdislmc:1;
1355                uint64_t rddislmc:1;
1356                uint64_t noway:1;
1357                uint64_t vbfdbe:1;
1358                uint64_t vbfsbe:1;
1359                uint64_t tagdbe:1;
1360                uint64_t tagsbe:1;
1361                uint64_t l2ddbe:1;
1362                uint64_t l2dsbe:1;
1363        } s;
1364        struct cvmx_l2c_tadx_int_s cn63xx;
1365};
1366
1367union cvmx_l2c_tadx_pfc0 {
1368        uint64_t u64;
1369        struct cvmx_l2c_tadx_pfc0_s {
1370                uint64_t count:64;
1371        } s;
1372        struct cvmx_l2c_tadx_pfc0_s cn63xx;
1373        struct cvmx_l2c_tadx_pfc0_s cn63xxp1;
1374};
1375
1376union cvmx_l2c_tadx_pfc1 {
1377        uint64_t u64;
1378        struct cvmx_l2c_tadx_pfc1_s {
1379                uint64_t count:64;
1380        } s;
1381        struct cvmx_l2c_tadx_pfc1_s cn63xx;
1382        struct cvmx_l2c_tadx_pfc1_s cn63xxp1;
1383};
1384
1385union cvmx_l2c_tadx_pfc2 {
1386        uint64_t u64;
1387        struct cvmx_l2c_tadx_pfc2_s {
1388                uint64_t count:64;
1389        } s;
1390        struct cvmx_l2c_tadx_pfc2_s cn63xx;
1391        struct cvmx_l2c_tadx_pfc2_s cn63xxp1;
1392};
1393
1394union cvmx_l2c_tadx_pfc3 {
1395        uint64_t u64;
1396        struct cvmx_l2c_tadx_pfc3_s {
1397                uint64_t count:64;
1398        } s;
1399        struct cvmx_l2c_tadx_pfc3_s cn63xx;
1400        struct cvmx_l2c_tadx_pfc3_s cn63xxp1;
1401};
1402
1403union cvmx_l2c_tadx_prf {
1404        uint64_t u64;
1405        struct cvmx_l2c_tadx_prf_s {
1406                uint64_t reserved_32_63:32;
1407                uint64_t cnt3sel:8;
1408                uint64_t cnt2sel:8;
1409                uint64_t cnt1sel:8;
1410                uint64_t cnt0sel:8;
1411        } s;
1412        struct cvmx_l2c_tadx_prf_s cn63xx;
1413        struct cvmx_l2c_tadx_prf_s cn63xxp1;
1414};
1415
1416union cvmx_l2c_tadx_tag {
1417        uint64_t u64;
1418        struct cvmx_l2c_tadx_tag_s {
1419                uint64_t reserved_46_63:18;
1420                uint64_t ecc:6;
1421                uint64_t reserved_36_39:4;
1422                uint64_t tag:19;
1423                uint64_t reserved_4_16:13;
1424                uint64_t use:1;
1425                uint64_t valid:1;
1426                uint64_t dirty:1;
1427                uint64_t lock:1;
1428        } s;
1429        struct cvmx_l2c_tadx_tag_s cn63xx;
1430        struct cvmx_l2c_tadx_tag_s cn63xxp1;
1431};
1432
1433union cvmx_l2c_ver_id {
1434        uint64_t u64;
1435        struct cvmx_l2c_ver_id_s {
1436                uint64_t mask:64;
1437        } s;
1438        struct cvmx_l2c_ver_id_s cn63xx;
1439        struct cvmx_l2c_ver_id_s cn63xxp1;
1440};
1441
1442union cvmx_l2c_ver_iob {
1443        uint64_t u64;
1444        struct cvmx_l2c_ver_iob_s {
1445                uint64_t reserved_1_63:63;
1446                uint64_t mask:1;
1447        } s;
1448        struct cvmx_l2c_ver_iob_s cn63xx;
1449        struct cvmx_l2c_ver_iob_s cn63xxp1;
1450};
1451
1452union cvmx_l2c_ver_msc {
1453        uint64_t u64;
1454        struct cvmx_l2c_ver_msc_s {
1455                uint64_t reserved_2_63:62;
1456                uint64_t invl2:1;
1457                uint64_t dwb:1;
1458        } s;
1459        struct cvmx_l2c_ver_msc_s cn63xx;
1460};
1461
1462union cvmx_l2c_ver_pp {
1463        uint64_t u64;
1464        struct cvmx_l2c_ver_pp_s {
1465                uint64_t reserved_6_63:58;
1466                uint64_t mask:6;
1467        } s;
1468        struct cvmx_l2c_ver_pp_s cn63xx;
1469        struct cvmx_l2c_ver_pp_s cn63xxp1;
1470};
1471
1472union cvmx_l2c_virtid_iobx {
1473        uint64_t u64;
1474        struct cvmx_l2c_virtid_iobx_s {
1475                uint64_t reserved_14_63:50;
1476                uint64_t dwbid:6;
1477                uint64_t reserved_6_7:2;
1478                uint64_t id:6;
1479        } s;
1480        struct cvmx_l2c_virtid_iobx_s cn63xx;
1481        struct cvmx_l2c_virtid_iobx_s cn63xxp1;
1482};
1483
1484union cvmx_l2c_virtid_ppx {
1485        uint64_t u64;
1486        struct cvmx_l2c_virtid_ppx_s {
1487                uint64_t reserved_6_63:58;
1488                uint64_t id:6;
1489        } s;
1490        struct cvmx_l2c_virtid_ppx_s cn63xx;
1491        struct cvmx_l2c_virtid_ppx_s cn63xxp1;
1492};
1493
1494union cvmx_l2c_vrt_ctl {
1495        uint64_t u64;
1496        struct cvmx_l2c_vrt_ctl_s {
1497                uint64_t reserved_9_63:55;
1498                uint64_t ooberr:1;
1499                uint64_t reserved_7_7:1;
1500                uint64_t memsz:3;
1501                uint64_t numid:3;
1502                uint64_t enable:1;
1503        } s;
1504        struct cvmx_l2c_vrt_ctl_s cn63xx;
1505        struct cvmx_l2c_vrt_ctl_s cn63xxp1;
1506};
1507
1508union cvmx_l2c_vrt_memx {
1509        uint64_t u64;
1510        struct cvmx_l2c_vrt_memx_s {
1511                uint64_t reserved_36_63:28;
1512                uint64_t parity:4;
1513                uint64_t data:32;
1514        } s;
1515        struct cvmx_l2c_vrt_memx_s cn63xx;
1516        struct cvmx_l2c_vrt_memx_s cn63xxp1;
1517};
1518
1519union cvmx_l2c_wpar_iobx {
1520        uint64_t u64;
1521        struct cvmx_l2c_wpar_iobx_s {
1522                uint64_t reserved_16_63:48;
1523                uint64_t mask:16;
1524        } s;
1525        struct cvmx_l2c_wpar_iobx_s cn63xx;
1526        struct cvmx_l2c_wpar_iobx_s cn63xxp1;
1527};
1528
1529union cvmx_l2c_wpar_ppx {
1530        uint64_t u64;
1531        struct cvmx_l2c_wpar_ppx_s {
1532                uint64_t reserved_16_63:48;
1533                uint64_t mask:16;
1534        } s;
1535        struct cvmx_l2c_wpar_ppx_s cn63xx;
1536        struct cvmx_l2c_wpar_ppx_s cn63xxp1;
1537};
1538
1539union cvmx_l2c_xmcx_pfc {
1540        uint64_t u64;
1541        struct cvmx_l2c_xmcx_pfc_s {
1542                uint64_t count:64;
1543        } s;
1544        struct cvmx_l2c_xmcx_pfc_s cn63xx;
1545        struct cvmx_l2c_xmcx_pfc_s cn63xxp1;
1546};
1547
1548union cvmx_l2c_xmc_cmd {
1549        uint64_t u64;
1550        struct cvmx_l2c_xmc_cmd_s {
1551                uint64_t inuse:1;
1552                uint64_t cmd:6;
1553                uint64_t reserved_38_56:19;
1554                uint64_t addr:38;
1555        } s;
1556        struct cvmx_l2c_xmc_cmd_s cn63xx;
1557        struct cvmx_l2c_xmc_cmd_s cn63xxp1;
1558};
1559
1560union cvmx_l2c_xmdx_pfc {
1561        uint64_t u64;
1562        struct cvmx_l2c_xmdx_pfc_s {
1563                uint64_t count:64;
1564        } s;
1565        struct cvmx_l2c_xmdx_pfc_s cn63xx;
1566        struct cvmx_l2c_xmdx_pfc_s cn63xxp1;
1567};
1568
1569#endif
1570