154293ec3SDavid Daney /***********************license start***************
254293ec3SDavid Daney  * Author: Cavium Networks
354293ec3SDavid Daney  *
454293ec3SDavid Daney  * Contact: support@caviumnetworks.com
554293ec3SDavid Daney  * This file is part of the OCTEON SDK
654293ec3SDavid Daney  *
754293ec3SDavid Daney  * Copyright (c) 2003-2008 Cavium Networks
854293ec3SDavid Daney  *
954293ec3SDavid Daney  * This file is free software; you can redistribute it and/or modify
1054293ec3SDavid Daney  * it under the terms of the GNU General Public License, Version 2, as
1154293ec3SDavid Daney  * published by the Free Software Foundation.
1254293ec3SDavid Daney  *
1354293ec3SDavid Daney  * This file is distributed in the hope that it will be useful, but
1454293ec3SDavid Daney  * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
1554293ec3SDavid Daney  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
1654293ec3SDavid Daney  * NONINFRINGEMENT.  See the GNU General Public License for more
1754293ec3SDavid Daney  * details.
1854293ec3SDavid Daney  *
1954293ec3SDavid Daney  * You should have received a copy of the GNU General Public License
2054293ec3SDavid Daney  * along with this file; if not, write to the Free Software
2154293ec3SDavid Daney  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
2254293ec3SDavid Daney  * or visit http://www.gnu.org/licenses/.
2354293ec3SDavid Daney  *
2454293ec3SDavid Daney  * This file may also be available under a different license from Cavium.
2554293ec3SDavid Daney  * Contact Cavium Networks for more information
2654293ec3SDavid Daney  ***********************license end**************************************/
2754293ec3SDavid Daney 
2854293ec3SDavid Daney #ifndef __CVMX_L2C_DEFS_H__
2954293ec3SDavid Daney #define __CVMX_L2C_DEFS_H__
3054293ec3SDavid Daney 
3154293ec3SDavid Daney #define CVMX_L2C_BST0 \
3254293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800800007F8ull)
3354293ec3SDavid Daney #define CVMX_L2C_BST1 \
3454293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800800007F0ull)
3554293ec3SDavid Daney #define CVMX_L2C_BST2 \
3654293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800800007E8ull)
3754293ec3SDavid Daney #define CVMX_L2C_CFG \
3854293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x0001180080000000ull)
3954293ec3SDavid Daney #define CVMX_L2C_DBG \
4054293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x0001180080000030ull)
4154293ec3SDavid Daney #define CVMX_L2C_DUT \
4254293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x0001180080000050ull)
4354293ec3SDavid Daney #define CVMX_L2C_GRPWRR0 \
4454293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800800000C8ull)
4554293ec3SDavid Daney #define CVMX_L2C_GRPWRR1 \
4654293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800800000D0ull)
4754293ec3SDavid Daney #define CVMX_L2C_INT_EN \
4854293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x0001180080000100ull)
4954293ec3SDavid Daney #define CVMX_L2C_INT_STAT \
5054293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800800000F8ull)
5154293ec3SDavid Daney #define CVMX_L2C_LCKBASE \
5254293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x0001180080000058ull)
5354293ec3SDavid Daney #define CVMX_L2C_LCKOFF \
5454293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x0001180080000060ull)
5554293ec3SDavid Daney #define CVMX_L2C_LFB0 \
5654293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x0001180080000038ull)
5754293ec3SDavid Daney #define CVMX_L2C_LFB1 \
5854293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x0001180080000040ull)
5954293ec3SDavid Daney #define CVMX_L2C_LFB2 \
6054293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x0001180080000048ull)
6154293ec3SDavid Daney #define CVMX_L2C_LFB3 \
6254293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800800000B8ull)
6354293ec3SDavid Daney #define CVMX_L2C_OOB \
6454293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800800000D8ull)
6554293ec3SDavid Daney #define CVMX_L2C_OOB1 \
6654293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800800000E0ull)
6754293ec3SDavid Daney #define CVMX_L2C_OOB2 \
6854293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800800000E8ull)
6954293ec3SDavid Daney #define CVMX_L2C_OOB3 \
7054293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800800000F0ull)
7154293ec3SDavid Daney #define CVMX_L2C_PFC0 \
7254293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x0001180080000098ull)
7354293ec3SDavid Daney #define CVMX_L2C_PFC1 \
7454293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800800000A0ull)
7554293ec3SDavid Daney #define CVMX_L2C_PFC2 \
7654293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800800000A8ull)
7754293ec3SDavid Daney #define CVMX_L2C_PFC3 \
7854293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800800000B0ull)
7954293ec3SDavid Daney #define CVMX_L2C_PFCTL \
8054293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x0001180080000090ull)
8154293ec3SDavid Daney #define CVMX_L2C_PFCX(offset) \
8254293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x0001180080000098ull + (((offset) & 3) * 8))
8354293ec3SDavid Daney #define CVMX_L2C_PPGRP \
8454293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x00011800800000C0ull)
8554293ec3SDavid Daney #define CVMX_L2C_SPAR0 \
8654293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x0001180080000068ull)
8754293ec3SDavid Daney #define CVMX_L2C_SPAR1 \
8854293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x0001180080000070ull)
8954293ec3SDavid Daney #define CVMX_L2C_SPAR2 \
9054293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x0001180080000078ull)
9154293ec3SDavid Daney #define CVMX_L2C_SPAR3 \
9254293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x0001180080000080ull)
9354293ec3SDavid Daney #define CVMX_L2C_SPAR4 \
9454293ec3SDavid Daney 	 CVMX_ADD_IO_SEG(0x0001180080000088ull)
9554293ec3SDavid Daney 
9654293ec3SDavid Daney union cvmx_l2c_bst0 {
9754293ec3SDavid Daney 	uint64_t u64;
9854293ec3SDavid Daney 	struct cvmx_l2c_bst0_s {
9954293ec3SDavid Daney 		uint64_t reserved_24_63:40;
10054293ec3SDavid Daney 		uint64_t dtbnk:1;
10154293ec3SDavid Daney 		uint64_t wlb_msk:4;
10254293ec3SDavid Daney 		uint64_t dtcnt:13;
10354293ec3SDavid Daney 		uint64_t dt:1;
10454293ec3SDavid Daney 		uint64_t stin_msk:1;
10554293ec3SDavid Daney 		uint64_t wlb_dat:4;
10654293ec3SDavid Daney 	} s;
10754293ec3SDavid Daney 	struct cvmx_l2c_bst0_cn30xx {
10854293ec3SDavid Daney 		uint64_t reserved_23_63:41;
10954293ec3SDavid Daney 		uint64_t wlb_msk:4;
11054293ec3SDavid Daney 		uint64_t reserved_15_18:4;
11154293ec3SDavid Daney 		uint64_t dtcnt:9;
11254293ec3SDavid Daney 		uint64_t dt:1;
11354293ec3SDavid Daney 		uint64_t reserved_4_4:1;
11454293ec3SDavid Daney 		uint64_t wlb_dat:4;
11554293ec3SDavid Daney 	} cn30xx;
11654293ec3SDavid Daney 	struct cvmx_l2c_bst0_cn31xx {
11754293ec3SDavid Daney 		uint64_t reserved_23_63:41;
11854293ec3SDavid Daney 		uint64_t wlb_msk:4;
11954293ec3SDavid Daney 		uint64_t reserved_16_18:3;
12054293ec3SDavid Daney 		uint64_t dtcnt:10;
12154293ec3SDavid Daney 		uint64_t dt:1;
12254293ec3SDavid Daney 		uint64_t stin_msk:1;
12354293ec3SDavid Daney 		uint64_t wlb_dat:4;
12454293ec3SDavid Daney 	} cn31xx;
12554293ec3SDavid Daney 	struct cvmx_l2c_bst0_cn38xx {
12654293ec3SDavid Daney 		uint64_t reserved_19_63:45;
12754293ec3SDavid Daney 		uint64_t dtcnt:13;
12854293ec3SDavid Daney 		uint64_t dt:1;
12954293ec3SDavid Daney 		uint64_t stin_msk:1;
13054293ec3SDavid Daney 		uint64_t wlb_dat:4;
13154293ec3SDavid Daney 	} cn38xx;
13254293ec3SDavid Daney 	struct cvmx_l2c_bst0_cn38xx cn38xxp2;
13354293ec3SDavid Daney 	struct cvmx_l2c_bst0_cn50xx {
13454293ec3SDavid Daney 		uint64_t reserved_24_63:40;
13554293ec3SDavid Daney 		uint64_t dtbnk:1;
13654293ec3SDavid Daney 		uint64_t wlb_msk:4;
13754293ec3SDavid Daney 		uint64_t reserved_16_18:3;
13854293ec3SDavid Daney 		uint64_t dtcnt:10;
13954293ec3SDavid Daney 		uint64_t dt:1;
14054293ec3SDavid Daney 		uint64_t stin_msk:1;
14154293ec3SDavid Daney 		uint64_t wlb_dat:4;
14254293ec3SDavid Daney 	} cn50xx;
14354293ec3SDavid Daney 	struct cvmx_l2c_bst0_cn50xx cn52xx;
14454293ec3SDavid Daney 	struct cvmx_l2c_bst0_cn50xx cn52xxp1;
14554293ec3SDavid Daney 	struct cvmx_l2c_bst0_s cn56xx;
14654293ec3SDavid Daney 	struct cvmx_l2c_bst0_s cn56xxp1;
14754293ec3SDavid Daney 	struct cvmx_l2c_bst0_s cn58xx;
14854293ec3SDavid Daney 	struct cvmx_l2c_bst0_s cn58xxp1;
14954293ec3SDavid Daney };
15054293ec3SDavid Daney 
15154293ec3SDavid Daney union cvmx_l2c_bst1 {
15254293ec3SDavid Daney 	uint64_t u64;
15354293ec3SDavid Daney 	struct cvmx_l2c_bst1_s {
15454293ec3SDavid Daney 		uint64_t reserved_9_63:55;
15554293ec3SDavid Daney 		uint64_t l2t:9;
15654293ec3SDavid Daney 	} s;
15754293ec3SDavid Daney 	struct cvmx_l2c_bst1_cn30xx {
15854293ec3SDavid Daney 		uint64_t reserved_16_63:48;
15954293ec3SDavid Daney 		uint64_t vwdf:4;
16054293ec3SDavid Daney 		uint64_t lrf:2;
16154293ec3SDavid Daney 		uint64_t vab_vwcf:1;
16254293ec3SDavid Daney 		uint64_t reserved_5_8:4;
16354293ec3SDavid Daney 		uint64_t l2t:5;
16454293ec3SDavid Daney 	} cn30xx;
16554293ec3SDavid Daney 	struct cvmx_l2c_bst1_cn30xx cn31xx;
16654293ec3SDavid Daney 	struct cvmx_l2c_bst1_cn38xx {
16754293ec3SDavid Daney 		uint64_t reserved_16_63:48;
16854293ec3SDavid Daney 		uint64_t vwdf:4;
16954293ec3SDavid Daney 		uint64_t lrf:2;
17054293ec3SDavid Daney 		uint64_t vab_vwcf:1;
17154293ec3SDavid Daney 		uint64_t l2t:9;
17254293ec3SDavid Daney 	} cn38xx;
17354293ec3SDavid Daney 	struct cvmx_l2c_bst1_cn38xx cn38xxp2;
17454293ec3SDavid Daney 	struct cvmx_l2c_bst1_cn38xx cn50xx;
17554293ec3SDavid Daney 	struct cvmx_l2c_bst1_cn52xx {
17654293ec3SDavid Daney 		uint64_t reserved_19_63:45;
17754293ec3SDavid Daney 		uint64_t plc2:1;
17854293ec3SDavid Daney 		uint64_t plc1:1;
17954293ec3SDavid Daney 		uint64_t plc0:1;
18054293ec3SDavid Daney 		uint64_t vwdf:4;
18154293ec3SDavid Daney 		uint64_t reserved_11_11:1;
18254293ec3SDavid Daney 		uint64_t ilc:1;
18354293ec3SDavid Daney 		uint64_t vab_vwcf:1;
18454293ec3SDavid Daney 		uint64_t l2t:9;
18554293ec3SDavid Daney 	} cn52xx;
18654293ec3SDavid Daney 	struct cvmx_l2c_bst1_cn52xx cn52xxp1;
18754293ec3SDavid Daney 	struct cvmx_l2c_bst1_cn56xx {
18854293ec3SDavid Daney 		uint64_t reserved_24_63:40;
18954293ec3SDavid Daney 		uint64_t plc2:1;
19054293ec3SDavid Daney 		uint64_t plc1:1;
19154293ec3SDavid Daney 		uint64_t plc0:1;
19254293ec3SDavid Daney 		uint64_t ilc:1;
19354293ec3SDavid Daney 		uint64_t vwdf1:4;
19454293ec3SDavid Daney 		uint64_t vwdf0:4;
19554293ec3SDavid Daney 		uint64_t vab_vwcf1:1;
19654293ec3SDavid Daney 		uint64_t reserved_10_10:1;
19754293ec3SDavid Daney 		uint64_t vab_vwcf0:1;
19854293ec3SDavid Daney 		uint64_t l2t:9;
19954293ec3SDavid Daney 	} cn56xx;
20054293ec3SDavid Daney 	struct cvmx_l2c_bst1_cn56xx cn56xxp1;
20154293ec3SDavid Daney 	struct cvmx_l2c_bst1_cn38xx cn58xx;
20254293ec3SDavid Daney 	struct cvmx_l2c_bst1_cn38xx cn58xxp1;
20354293ec3SDavid Daney };
20454293ec3SDavid Daney 
20554293ec3SDavid Daney union cvmx_l2c_bst2 {
20654293ec3SDavid Daney 	uint64_t u64;
20754293ec3SDavid Daney 	struct cvmx_l2c_bst2_s {
20854293ec3SDavid Daney 		uint64_t reserved_16_63:48;
20954293ec3SDavid Daney 		uint64_t mrb:4;
21054293ec3SDavid Daney 		uint64_t reserved_4_11:8;
21154293ec3SDavid Daney 		uint64_t ipcbst:1;
21254293ec3SDavid Daney 		uint64_t picbst:1;
21354293ec3SDavid Daney 		uint64_t xrdmsk:1;
21454293ec3SDavid Daney 		uint64_t xrddat:1;
21554293ec3SDavid Daney 	} s;
21654293ec3SDavid Daney 	struct cvmx_l2c_bst2_cn30xx {
21754293ec3SDavid Daney 		uint64_t reserved_16_63:48;
21854293ec3SDavid Daney 		uint64_t mrb:4;
21954293ec3SDavid Daney 		uint64_t rmdf:4;
22054293ec3SDavid Daney 		uint64_t reserved_4_7:4;
22154293ec3SDavid Daney 		uint64_t ipcbst:1;
22254293ec3SDavid Daney 		uint64_t reserved_2_2:1;
22354293ec3SDavid Daney 		uint64_t xrdmsk:1;
22454293ec3SDavid Daney 		uint64_t xrddat:1;
22554293ec3SDavid Daney 	} cn30xx;
22654293ec3SDavid Daney 	struct cvmx_l2c_bst2_cn30xx cn31xx;
22754293ec3SDavid Daney 	struct cvmx_l2c_bst2_cn38xx {
22854293ec3SDavid Daney 		uint64_t reserved_16_63:48;
22954293ec3SDavid Daney 		uint64_t mrb:4;
23054293ec3SDavid Daney 		uint64_t rmdf:4;
23154293ec3SDavid Daney 		uint64_t rhdf:4;
23254293ec3SDavid Daney 		uint64_t ipcbst:1;
23354293ec3SDavid Daney 		uint64_t picbst:1;
23454293ec3SDavid Daney 		uint64_t xrdmsk:1;
23554293ec3SDavid Daney 		uint64_t xrddat:1;
23654293ec3SDavid Daney 	} cn38xx;
23754293ec3SDavid Daney 	struct cvmx_l2c_bst2_cn38xx cn38xxp2;
23854293ec3SDavid Daney 	struct cvmx_l2c_bst2_cn30xx cn50xx;
23954293ec3SDavid Daney 	struct cvmx_l2c_bst2_cn30xx cn52xx;
24054293ec3SDavid Daney 	struct cvmx_l2c_bst2_cn30xx cn52xxp1;
24154293ec3SDavid Daney 	struct cvmx_l2c_bst2_cn56xx {
24254293ec3SDavid Daney 		uint64_t reserved_16_63:48;
24354293ec3SDavid Daney 		uint64_t mrb:4;
24454293ec3SDavid Daney 		uint64_t rmdb:4;
24554293ec3SDavid Daney 		uint64_t rhdb:4;
24654293ec3SDavid Daney 		uint64_t ipcbst:1;
24754293ec3SDavid Daney 		uint64_t picbst:1;
24854293ec3SDavid Daney 		uint64_t xrdmsk:1;
24954293ec3SDavid Daney 		uint64_t xrddat:1;
25054293ec3SDavid Daney 	} cn56xx;
25154293ec3SDavid Daney 	struct cvmx_l2c_bst2_cn56xx cn56xxp1;
25254293ec3SDavid Daney 	struct cvmx_l2c_bst2_cn56xx cn58xx;
25354293ec3SDavid Daney 	struct cvmx_l2c_bst2_cn56xx cn58xxp1;
25454293ec3SDavid Daney };
25554293ec3SDavid Daney 
25654293ec3SDavid Daney union cvmx_l2c_cfg {
25754293ec3SDavid Daney 	uint64_t u64;
25854293ec3SDavid Daney 	struct cvmx_l2c_cfg_s {
25954293ec3SDavid Daney 		uint64_t reserved_20_63:44;
26054293ec3SDavid Daney 		uint64_t bstrun:1;
26154293ec3SDavid Daney 		uint64_t lbist:1;
26254293ec3SDavid Daney 		uint64_t xor_bank:1;
26354293ec3SDavid Daney 		uint64_t dpres1:1;
26454293ec3SDavid Daney 		uint64_t dpres0:1;
26554293ec3SDavid Daney 		uint64_t dfill_dis:1;
26654293ec3SDavid Daney 		uint64_t fpexp:4;
26754293ec3SDavid Daney 		uint64_t fpempty:1;
26854293ec3SDavid Daney 		uint64_t fpen:1;
26954293ec3SDavid Daney 		uint64_t idxalias:1;
27054293ec3SDavid Daney 		uint64_t mwf_crd:4;
27154293ec3SDavid Daney 		uint64_t rsp_arb_mode:1;
27254293ec3SDavid Daney 		uint64_t rfb_arb_mode:1;
27354293ec3SDavid Daney 		uint64_t lrf_arb_mode:1;
27454293ec3SDavid Daney 	} s;
27554293ec3SDavid Daney 	struct cvmx_l2c_cfg_cn30xx {
27654293ec3SDavid Daney 		uint64_t reserved_14_63:50;
27754293ec3SDavid Daney 		uint64_t fpexp:4;
27854293ec3SDavid Daney 		uint64_t fpempty:1;
27954293ec3SDavid Daney 		uint64_t fpen:1;
28054293ec3SDavid Daney 		uint64_t idxalias:1;
28154293ec3SDavid Daney 		uint64_t mwf_crd:4;
28254293ec3SDavid Daney 		uint64_t rsp_arb_mode:1;
28354293ec3SDavid Daney 		uint64_t rfb_arb_mode:1;
28454293ec3SDavid Daney 		uint64_t lrf_arb_mode:1;
28554293ec3SDavid Daney 	} cn30xx;
28654293ec3SDavid Daney 	struct cvmx_l2c_cfg_cn30xx cn31xx;
28754293ec3SDavid Daney 	struct cvmx_l2c_cfg_cn30xx cn38xx;
28854293ec3SDavid Daney 	struct cvmx_l2c_cfg_cn30xx cn38xxp2;
28954293ec3SDavid Daney 	struct cvmx_l2c_cfg_cn50xx {
29054293ec3SDavid Daney 		uint64_t reserved_20_63:44;
29154293ec3SDavid Daney 		uint64_t bstrun:1;
29254293ec3SDavid Daney 		uint64_t lbist:1;
29354293ec3SDavid Daney 		uint64_t reserved_14_17:4;
29454293ec3SDavid Daney 		uint64_t fpexp:4;
29554293ec3SDavid Daney 		uint64_t fpempty:1;
29654293ec3SDavid Daney 		uint64_t fpen:1;
29754293ec3SDavid Daney 		uint64_t idxalias:1;
29854293ec3SDavid Daney 		uint64_t mwf_crd:4;
29954293ec3SDavid Daney 		uint64_t rsp_arb_mode:1;
30054293ec3SDavid Daney 		uint64_t rfb_arb_mode:1;
30154293ec3SDavid Daney 		uint64_t lrf_arb_mode:1;
30254293ec3SDavid Daney 	} cn50xx;
30354293ec3SDavid Daney 	struct cvmx_l2c_cfg_cn50xx cn52xx;
30454293ec3SDavid Daney 	struct cvmx_l2c_cfg_cn50xx cn52xxp1;
30554293ec3SDavid Daney 	struct cvmx_l2c_cfg_s cn56xx;
30654293ec3SDavid Daney 	struct cvmx_l2c_cfg_s cn56xxp1;
30754293ec3SDavid Daney 	struct cvmx_l2c_cfg_cn58xx {
30854293ec3SDavid Daney 		uint64_t reserved_20_63:44;
30954293ec3SDavid Daney 		uint64_t bstrun:1;
31054293ec3SDavid Daney 		uint64_t lbist:1;
31154293ec3SDavid Daney 		uint64_t reserved_15_17:3;
31254293ec3SDavid Daney 		uint64_t dfill_dis:1;
31354293ec3SDavid Daney 		uint64_t fpexp:4;
31454293ec3SDavid Daney 		uint64_t fpempty:1;
31554293ec3SDavid Daney 		uint64_t fpen:1;
31654293ec3SDavid Daney 		uint64_t idxalias:1;
31754293ec3SDavid Daney 		uint64_t mwf_crd:4;
31854293ec3SDavid Daney 		uint64_t rsp_arb_mode:1;
31954293ec3SDavid Daney 		uint64_t rfb_arb_mode:1;
32054293ec3SDavid Daney 		uint64_t lrf_arb_mode:1;
32154293ec3SDavid Daney 	} cn58xx;
32254293ec3SDavid Daney 	struct cvmx_l2c_cfg_cn58xxp1 {
32354293ec3SDavid Daney 		uint64_t reserved_15_63:49;
32454293ec3SDavid Daney 		uint64_t dfill_dis:1;
32554293ec3SDavid Daney 		uint64_t fpexp:4;
32654293ec3SDavid Daney 		uint64_t fpempty:1;
32754293ec3SDavid Daney 		uint64_t fpen:1;
32854293ec3SDavid Daney 		uint64_t idxalias:1;
32954293ec3SDavid Daney 		uint64_t mwf_crd:4;
33054293ec3SDavid Daney 		uint64_t rsp_arb_mode:1;
33154293ec3SDavid Daney 		uint64_t rfb_arb_mode:1;
33254293ec3SDavid Daney 		uint64_t lrf_arb_mode:1;
33354293ec3SDavid Daney 	} cn58xxp1;
33454293ec3SDavid Daney };
33554293ec3SDavid Daney 
33654293ec3SDavid Daney union cvmx_l2c_dbg {
33754293ec3SDavid Daney 	uint64_t u64;
33854293ec3SDavid Daney 	struct cvmx_l2c_dbg_s {
33954293ec3SDavid Daney 		uint64_t reserved_15_63:49;
34054293ec3SDavid Daney 		uint64_t lfb_enum:4;
34154293ec3SDavid Daney 		uint64_t lfb_dmp:1;
34254293ec3SDavid Daney 		uint64_t ppnum:4;
34354293ec3SDavid Daney 		uint64_t set:3;
34454293ec3SDavid Daney 		uint64_t finv:1;
34554293ec3SDavid Daney 		uint64_t l2d:1;
34654293ec3SDavid Daney 		uint64_t l2t:1;
34754293ec3SDavid Daney 	} s;
34854293ec3SDavid Daney 	struct cvmx_l2c_dbg_cn30xx {
34954293ec3SDavid Daney 		uint64_t reserved_13_63:51;
35054293ec3SDavid Daney 		uint64_t lfb_enum:2;
35154293ec3SDavid Daney 		uint64_t lfb_dmp:1;
35254293ec3SDavid Daney 		uint64_t reserved_5_9:5;
35354293ec3SDavid Daney 		uint64_t set:2;
35454293ec3SDavid Daney 		uint64_t finv:1;
35554293ec3SDavid Daney 		uint64_t l2d:1;
35654293ec3SDavid Daney 		uint64_t l2t:1;
35754293ec3SDavid Daney 	} cn30xx;
35854293ec3SDavid Daney 	struct cvmx_l2c_dbg_cn31xx {
35954293ec3SDavid Daney 		uint64_t reserved_14_63:50;
36054293ec3SDavid Daney 		uint64_t lfb_enum:3;
36154293ec3SDavid Daney 		uint64_t lfb_dmp:1;
36254293ec3SDavid Daney 		uint64_t reserved_7_9:3;
36354293ec3SDavid Daney 		uint64_t ppnum:1;
36454293ec3SDavid Daney 		uint64_t reserved_5_5:1;
36554293ec3SDavid Daney 		uint64_t set:2;
36654293ec3SDavid Daney 		uint64_t finv:1;
36754293ec3SDavid Daney 		uint64_t l2d:1;
36854293ec3SDavid Daney 		uint64_t l2t:1;
36954293ec3SDavid Daney 	} cn31xx;
37054293ec3SDavid Daney 	struct cvmx_l2c_dbg_s cn38xx;
37154293ec3SDavid Daney 	struct cvmx_l2c_dbg_s cn38xxp2;
37254293ec3SDavid Daney 	struct cvmx_l2c_dbg_cn50xx {
37354293ec3SDavid Daney 		uint64_t reserved_14_63:50;
37454293ec3SDavid Daney 		uint64_t lfb_enum:3;
37554293ec3SDavid Daney 		uint64_t lfb_dmp:1;
37654293ec3SDavid Daney 		uint64_t reserved_7_9:3;
37754293ec3SDavid Daney 		uint64_t ppnum:1;
37854293ec3SDavid Daney 		uint64_t set:3;
37954293ec3SDavid Daney 		uint64_t finv:1;
38054293ec3SDavid Daney 		uint64_t l2d:1;
38154293ec3SDavid Daney 		uint64_t l2t:1;
38254293ec3SDavid Daney 	} cn50xx;
38354293ec3SDavid Daney 	struct cvmx_l2c_dbg_cn52xx {
38454293ec3SDavid Daney 		uint64_t reserved_14_63:50;
38554293ec3SDavid Daney 		uint64_t lfb_enum:3;
38654293ec3SDavid Daney 		uint64_t lfb_dmp:1;
38754293ec3SDavid Daney 		uint64_t reserved_8_9:2;
38854293ec3SDavid Daney 		uint64_t ppnum:2;
38954293ec3SDavid Daney 		uint64_t set:3;
39054293ec3SDavid Daney 		uint64_t finv:1;
39154293ec3SDavid Daney 		uint64_t l2d:1;
39254293ec3SDavid Daney 		uint64_t l2t:1;
39354293ec3SDavid Daney 	} cn52xx;
39454293ec3SDavid Daney 	struct cvmx_l2c_dbg_cn52xx cn52xxp1;
39554293ec3SDavid Daney 	struct cvmx_l2c_dbg_s cn56xx;
39654293ec3SDavid Daney 	struct cvmx_l2c_dbg_s cn56xxp1;
39754293ec3SDavid Daney 	struct cvmx_l2c_dbg_s cn58xx;
39854293ec3SDavid Daney 	struct cvmx_l2c_dbg_s cn58xxp1;
39954293ec3SDavid Daney };
40054293ec3SDavid Daney 
40154293ec3SDavid Daney union cvmx_l2c_dut {
40254293ec3SDavid Daney 	uint64_t u64;
40354293ec3SDavid Daney 	struct cvmx_l2c_dut_s {
40454293ec3SDavid Daney 		uint64_t reserved_32_63:32;
40554293ec3SDavid Daney 		uint64_t dtena:1;
40654293ec3SDavid Daney 		uint64_t reserved_30_30:1;
40754293ec3SDavid Daney 		uint64_t dt_vld:1;
40854293ec3SDavid Daney 		uint64_t dt_tag:29;
40954293ec3SDavid Daney 	} s;
41054293ec3SDavid Daney 	struct cvmx_l2c_dut_s cn30xx;
41154293ec3SDavid Daney 	struct cvmx_l2c_dut_s cn31xx;
41254293ec3SDavid Daney 	struct cvmx_l2c_dut_s cn38xx;
41354293ec3SDavid Daney 	struct cvmx_l2c_dut_s cn38xxp2;
41454293ec3SDavid Daney 	struct cvmx_l2c_dut_s cn50xx;
41554293ec3SDavid Daney 	struct cvmx_l2c_dut_s cn52xx;
41654293ec3SDavid Daney 	struct cvmx_l2c_dut_s cn52xxp1;
41754293ec3SDavid Daney 	struct cvmx_l2c_dut_s cn56xx;
41854293ec3SDavid Daney 	struct cvmx_l2c_dut_s cn56xxp1;
41954293ec3SDavid Daney 	struct cvmx_l2c_dut_s cn58xx;
42054293ec3SDavid Daney 	struct cvmx_l2c_dut_s cn58xxp1;
42154293ec3SDavid Daney };
42254293ec3SDavid Daney 
42354293ec3SDavid Daney union cvmx_l2c_grpwrr0 {
42454293ec3SDavid Daney 	uint64_t u64;
42554293ec3SDavid Daney 	struct cvmx_l2c_grpwrr0_s {
42654293ec3SDavid Daney 		uint64_t plc1rmsk:32;
42754293ec3SDavid Daney 		uint64_t plc0rmsk:32;
42854293ec3SDavid Daney 	} s;
42954293ec3SDavid Daney 	struct cvmx_l2c_grpwrr0_s cn52xx;
43054293ec3SDavid Daney 	struct cvmx_l2c_grpwrr0_s cn52xxp1;
43154293ec3SDavid Daney 	struct cvmx_l2c_grpwrr0_s cn56xx;
43254293ec3SDavid Daney 	struct cvmx_l2c_grpwrr0_s cn56xxp1;
43354293ec3SDavid Daney };
43454293ec3SDavid Daney 
43554293ec3SDavid Daney union cvmx_l2c_grpwrr1 {
43654293ec3SDavid Daney 	uint64_t u64;
43754293ec3SDavid Daney 	struct cvmx_l2c_grpwrr1_s {
43854293ec3SDavid Daney 		uint64_t ilcrmsk:32;
43954293ec3SDavid Daney 		uint64_t plc2rmsk:32;
44054293ec3SDavid Daney 	} s;
44154293ec3SDavid Daney 	struct cvmx_l2c_grpwrr1_s cn52xx;
44254293ec3SDavid Daney 	struct cvmx_l2c_grpwrr1_s cn52xxp1;
44354293ec3SDavid Daney 	struct cvmx_l2c_grpwrr1_s cn56xx;
44454293ec3SDavid Daney 	struct cvmx_l2c_grpwrr1_s cn56xxp1;
44554293ec3SDavid Daney };
44654293ec3SDavid Daney 
44754293ec3SDavid Daney union cvmx_l2c_int_en {
44854293ec3SDavid Daney 	uint64_t u64;
44954293ec3SDavid Daney 	struct cvmx_l2c_int_en_s {
45054293ec3SDavid Daney 		uint64_t reserved_9_63:55;
45154293ec3SDavid Daney 		uint64_t lck2ena:1;
45254293ec3SDavid Daney 		uint64_t lckena:1;
45354293ec3SDavid Daney 		uint64_t l2ddeden:1;
45454293ec3SDavid Daney 		uint64_t l2dsecen:1;
45554293ec3SDavid Daney 		uint64_t l2tdeden:1;
45654293ec3SDavid Daney 		uint64_t l2tsecen:1;
45754293ec3SDavid Daney 		uint64_t oob3en:1;
45854293ec3SDavid Daney 		uint64_t oob2en:1;
45954293ec3SDavid Daney 		uint64_t oob1en:1;
46054293ec3SDavid Daney 	} s;
46154293ec3SDavid Daney 	struct cvmx_l2c_int_en_s cn52xx;
46254293ec3SDavid Daney 	struct cvmx_l2c_int_en_s cn52xxp1;
46354293ec3SDavid Daney 	struct cvmx_l2c_int_en_s cn56xx;
46454293ec3SDavid Daney 	struct cvmx_l2c_int_en_s cn56xxp1;
46554293ec3SDavid Daney };
46654293ec3SDavid Daney 
46754293ec3SDavid Daney union cvmx_l2c_int_stat {
46854293ec3SDavid Daney 	uint64_t u64;
46954293ec3SDavid Daney 	struct cvmx_l2c_int_stat_s {
47054293ec3SDavid Daney 		uint64_t reserved_9_63:55;
47154293ec3SDavid Daney 		uint64_t lck2:1;
47254293ec3SDavid Daney 		uint64_t lck:1;
47354293ec3SDavid Daney 		uint64_t l2dded:1;
47454293ec3SDavid Daney 		uint64_t l2dsec:1;
47554293ec3SDavid Daney 		uint64_t l2tded:1;
47654293ec3SDavid Daney 		uint64_t l2tsec:1;
47754293ec3SDavid Daney 		uint64_t oob3:1;
47854293ec3SDavid Daney 		uint64_t oob2:1;
47954293ec3SDavid Daney 		uint64_t oob1:1;
48054293ec3SDavid Daney 	} s;
48154293ec3SDavid Daney 	struct cvmx_l2c_int_stat_s cn52xx;
48254293ec3SDavid Daney 	struct cvmx_l2c_int_stat_s cn52xxp1;
48354293ec3SDavid Daney 	struct cvmx_l2c_int_stat_s cn56xx;
48454293ec3SDavid Daney 	struct cvmx_l2c_int_stat_s cn56xxp1;
48554293ec3SDavid Daney };
48654293ec3SDavid Daney 
48754293ec3SDavid Daney union cvmx_l2c_lckbase {
48854293ec3SDavid Daney 	uint64_t u64;
48954293ec3SDavid Daney 	struct cvmx_l2c_lckbase_s {
49054293ec3SDavid Daney 		uint64_t reserved_31_63:33;
49154293ec3SDavid Daney 		uint64_t lck_base:27;
49254293ec3SDavid Daney 		uint64_t reserved_1_3:3;
49354293ec3SDavid Daney 		uint64_t lck_ena:1;
49454293ec3SDavid Daney 	} s;
49554293ec3SDavid Daney 	struct cvmx_l2c_lckbase_s cn30xx;
49654293ec3SDavid Daney 	struct cvmx_l2c_lckbase_s cn31xx;
49754293ec3SDavid Daney 	struct cvmx_l2c_lckbase_s cn38xx;
49854293ec3SDavid Daney 	struct cvmx_l2c_lckbase_s cn38xxp2;
49954293ec3SDavid Daney 	struct cvmx_l2c_lckbase_s cn50xx;
50054293ec3SDavid Daney 	struct cvmx_l2c_lckbase_s cn52xx;
50154293ec3SDavid Daney 	struct cvmx_l2c_lckbase_s cn52xxp1;
50254293ec3SDavid Daney 	struct cvmx_l2c_lckbase_s cn56xx;
50354293ec3SDavid Daney 	struct cvmx_l2c_lckbase_s cn56xxp1;
50454293ec3SDavid Daney 	struct cvmx_l2c_lckbase_s cn58xx;
50554293ec3SDavid Daney 	struct cvmx_l2c_lckbase_s cn58xxp1;
50654293ec3SDavid Daney };
50754293ec3SDavid Daney 
50854293ec3SDavid Daney union cvmx_l2c_lckoff {
50954293ec3SDavid Daney 	uint64_t u64;
51054293ec3SDavid Daney 	struct cvmx_l2c_lckoff_s {
51154293ec3SDavid Daney 		uint64_t reserved_10_63:54;
51254293ec3SDavid Daney 		uint64_t lck_offset:10;
51354293ec3SDavid Daney 	} s;
51454293ec3SDavid Daney 	struct cvmx_l2c_lckoff_s cn30xx;
51554293ec3SDavid Daney 	struct cvmx_l2c_lckoff_s cn31xx;
51654293ec3SDavid Daney 	struct cvmx_l2c_lckoff_s cn38xx;
51754293ec3SDavid Daney 	struct cvmx_l2c_lckoff_s cn38xxp2;
51854293ec3SDavid Daney 	struct cvmx_l2c_lckoff_s cn50xx;
51954293ec3SDavid Daney 	struct cvmx_l2c_lckoff_s cn52xx;
52054293ec3SDavid Daney 	struct cvmx_l2c_lckoff_s cn52xxp1;
52154293ec3SDavid Daney 	struct cvmx_l2c_lckoff_s cn56xx;
52254293ec3SDavid Daney 	struct cvmx_l2c_lckoff_s cn56xxp1;
52354293ec3SDavid Daney 	struct cvmx_l2c_lckoff_s cn58xx;
52454293ec3SDavid Daney 	struct cvmx_l2c_lckoff_s cn58xxp1;
52554293ec3SDavid Daney };
52654293ec3SDavid Daney 
52754293ec3SDavid Daney union cvmx_l2c_lfb0 {
52854293ec3SDavid Daney 	uint64_t u64;
52954293ec3SDavid Daney 	struct cvmx_l2c_lfb0_s {
53054293ec3SDavid Daney 		uint64_t reserved_32_63:32;
53154293ec3SDavid Daney 		uint64_t stcpnd:1;
53254293ec3SDavid Daney 		uint64_t stpnd:1;
53354293ec3SDavid Daney 		uint64_t stinv:1;
53454293ec3SDavid Daney 		uint64_t stcfl:1;
53554293ec3SDavid Daney 		uint64_t vam:1;
53654293ec3SDavid Daney 		uint64_t inxt:4;
53754293ec3SDavid Daney 		uint64_t itl:1;
53854293ec3SDavid Daney 		uint64_t ihd:1;
53954293ec3SDavid Daney 		uint64_t set:3;
54054293ec3SDavid Daney 		uint64_t vabnum:4;
54154293ec3SDavid Daney 		uint64_t sid:9;
54254293ec3SDavid Daney 		uint64_t cmd:4;
54354293ec3SDavid Daney 		uint64_t vld:1;
54454293ec3SDavid Daney 	} s;
54554293ec3SDavid Daney 	struct cvmx_l2c_lfb0_cn30xx {
54654293ec3SDavid Daney 		uint64_t reserved_32_63:32;
54754293ec3SDavid Daney 		uint64_t stcpnd:1;
54854293ec3SDavid Daney 		uint64_t stpnd:1;
54954293ec3SDavid Daney 		uint64_t stinv:1;
55054293ec3SDavid Daney 		uint64_t stcfl:1;
55154293ec3SDavid Daney 		uint64_t vam:1;
55254293ec3SDavid Daney 		uint64_t reserved_25_26:2;
55354293ec3SDavid Daney 		uint64_t inxt:2;
55454293ec3SDavid Daney 		uint64_t itl:1;
55554293ec3SDavid Daney 		uint64_t ihd:1;
55654293ec3SDavid Daney 		uint64_t reserved_20_20:1;
55754293ec3SDavid Daney 		uint64_t set:2;
55854293ec3SDavid Daney 		uint64_t reserved_16_17:2;
55954293ec3SDavid Daney 		uint64_t vabnum:2;
56054293ec3SDavid Daney 		uint64_t sid:9;
56154293ec3SDavid Daney 		uint64_t cmd:4;
56254293ec3SDavid Daney 		uint64_t vld:1;
56354293ec3SDavid Daney 	} cn30xx;
56454293ec3SDavid Daney 	struct cvmx_l2c_lfb0_cn31xx {
56554293ec3SDavid Daney 		uint64_t reserved_32_63:32;
56654293ec3SDavid Daney 		uint64_t stcpnd:1;
56754293ec3SDavid Daney 		uint64_t stpnd:1;
56854293ec3SDavid Daney 		uint64_t stinv:1;
56954293ec3SDavid Daney 		uint64_t stcfl:1;
57054293ec3SDavid Daney 		uint64_t vam:1;
57154293ec3SDavid Daney 		uint64_t reserved_26_26:1;
57254293ec3SDavid Daney 		uint64_t inxt:3;
57354293ec3SDavid Daney 		uint64_t itl:1;
57454293ec3SDavid Daney 		uint64_t ihd:1;
57554293ec3SDavid Daney 		uint64_t reserved_20_20:1;
57654293ec3SDavid Daney 		uint64_t set:2;
57754293ec3SDavid Daney 		uint64_t reserved_17_17:1;
57854293ec3SDavid Daney 		uint64_t vabnum:3;
57954293ec3SDavid Daney 		uint64_t sid:9;
58054293ec3SDavid Daney 		uint64_t cmd:4;
58154293ec3SDavid Daney 		uint64_t vld:1;
58254293ec3SDavid Daney 	} cn31xx;
58354293ec3SDavid Daney 	struct cvmx_l2c_lfb0_s cn38xx;
58454293ec3SDavid Daney 	struct cvmx_l2c_lfb0_s cn38xxp2;
58554293ec3SDavid Daney 	struct cvmx_l2c_lfb0_cn50xx {
58654293ec3SDavid Daney 		uint64_t reserved_32_63:32;
58754293ec3SDavid Daney 		uint64_t stcpnd:1;
58854293ec3SDavid Daney 		uint64_t stpnd:1;
58954293ec3SDavid Daney 		uint64_t stinv:1;
59054293ec3SDavid Daney 		uint64_t stcfl:1;
59154293ec3SDavid Daney 		uint64_t vam:1;
59254293ec3SDavid Daney 		uint64_t reserved_26_26:1;
59354293ec3SDavid Daney 		uint64_t inxt:3;
59454293ec3SDavid Daney 		uint64_t itl:1;
59554293ec3SDavid Daney 		uint64_t ihd:1;
59654293ec3SDavid Daney 		uint64_t set:3;
59754293ec3SDavid Daney 		uint64_t reserved_17_17:1;
59854293ec3SDavid Daney 		uint64_t vabnum:3;
59954293ec3SDavid Daney 		uint64_t sid:9;
60054293ec3SDavid Daney 		uint64_t cmd:4;
60154293ec3SDavid Daney 		uint64_t vld:1;
60254293ec3SDavid Daney 	} cn50xx;
60354293ec3SDavid Daney 	struct cvmx_l2c_lfb0_cn50xx cn52xx;
60454293ec3SDavid Daney 	struct cvmx_l2c_lfb0_cn50xx cn52xxp1;
60554293ec3SDavid Daney 	struct cvmx_l2c_lfb0_s cn56xx;
60654293ec3SDavid Daney 	struct cvmx_l2c_lfb0_s cn56xxp1;
60754293ec3SDavid Daney 	struct cvmx_l2c_lfb0_s cn58xx;
60854293ec3SDavid Daney 	struct cvmx_l2c_lfb0_s cn58xxp1;
60954293ec3SDavid Daney };
61054293ec3SDavid Daney 
61154293ec3SDavid Daney union cvmx_l2c_lfb1 {
61254293ec3SDavid Daney 	uint64_t u64;
61354293ec3SDavid Daney 	struct cvmx_l2c_lfb1_s {
61454293ec3SDavid Daney 		uint64_t reserved_19_63:45;
61554293ec3SDavid Daney 		uint64_t dsgoing:1;
61654293ec3SDavid Daney 		uint64_t bid:2;
61754293ec3SDavid Daney 		uint64_t wtrsp:1;
61854293ec3SDavid Daney 		uint64_t wtdw:1;
61954293ec3SDavid Daney 		uint64_t wtdq:1;
62054293ec3SDavid Daney 		uint64_t wtwhp:1;
62154293ec3SDavid Daney 		uint64_t wtwhf:1;
62254293ec3SDavid Daney 		uint64_t wtwrm:1;
62354293ec3SDavid Daney 		uint64_t wtstm:1;
62454293ec3SDavid Daney 		uint64_t wtrda:1;
62554293ec3SDavid Daney 		uint64_t wtstdt:1;
62654293ec3SDavid Daney 		uint64_t wtstrsp:1;
62754293ec3SDavid Daney 		uint64_t wtstrsc:1;
62854293ec3SDavid Daney 		uint64_t wtvtm:1;
62954293ec3SDavid Daney 		uint64_t wtmfl:1;
63054293ec3SDavid Daney 		uint64_t prbrty:1;
63154293ec3SDavid Daney 		uint64_t wtprb:1;
63254293ec3SDavid Daney 		uint64_t vld:1;
63354293ec3SDavid Daney 	} s;
63454293ec3SDavid Daney 	struct cvmx_l2c_lfb1_s cn30xx;
63554293ec3SDavid Daney 	struct cvmx_l2c_lfb1_s cn31xx;
63654293ec3SDavid Daney 	struct cvmx_l2c_lfb1_s cn38xx;
63754293ec3SDavid Daney 	struct cvmx_l2c_lfb1_s cn38xxp2;
63854293ec3SDavid Daney 	struct cvmx_l2c_lfb1_s cn50xx;
63954293ec3SDavid Daney 	struct cvmx_l2c_lfb1_s cn52xx;
64054293ec3SDavid Daney 	struct cvmx_l2c_lfb1_s cn52xxp1;
64154293ec3SDavid Daney 	struct cvmx_l2c_lfb1_s cn56xx;
64254293ec3SDavid Daney 	struct cvmx_l2c_lfb1_s cn56xxp1;
64354293ec3SDavid Daney 	struct cvmx_l2c_lfb1_s cn58xx;
64454293ec3SDavid Daney 	struct cvmx_l2c_lfb1_s cn58xxp1;
64554293ec3SDavid Daney };
64654293ec3SDavid Daney 
64754293ec3SDavid Daney union cvmx_l2c_lfb2 {
64854293ec3SDavid Daney 	uint64_t u64;
64954293ec3SDavid Daney 	struct cvmx_l2c_lfb2_s {
65054293ec3SDavid Daney 		uint64_t reserved_0_63:64;
65154293ec3SDavid Daney 	} s;
65254293ec3SDavid Daney 	struct cvmx_l2c_lfb2_cn30xx {
65354293ec3SDavid Daney 		uint64_t reserved_27_63:37;
65454293ec3SDavid Daney 		uint64_t lfb_tag:19;
65554293ec3SDavid Daney 		uint64_t lfb_idx:8;
65654293ec3SDavid Daney 	} cn30xx;
65754293ec3SDavid Daney 	struct cvmx_l2c_lfb2_cn31xx {
65854293ec3SDavid Daney 		uint64_t reserved_27_63:37;
65954293ec3SDavid Daney 		uint64_t lfb_tag:17;
66054293ec3SDavid Daney 		uint64_t lfb_idx:10;
66154293ec3SDavid Daney 	} cn31xx;
66254293ec3SDavid Daney 	struct cvmx_l2c_lfb2_cn31xx cn38xx;
66354293ec3SDavid Daney 	struct cvmx_l2c_lfb2_cn31xx cn38xxp2;
66454293ec3SDavid Daney 	struct cvmx_l2c_lfb2_cn50xx {
66554293ec3SDavid Daney 		uint64_t reserved_27_63:37;
66654293ec3SDavid Daney 		uint64_t lfb_tag:20;
66754293ec3SDavid Daney 		uint64_t lfb_idx:7;
66854293ec3SDavid Daney 	} cn50xx;
66954293ec3SDavid Daney 	struct cvmx_l2c_lfb2_cn52xx {
67054293ec3SDavid Daney 		uint64_t reserved_27_63:37;
67154293ec3SDavid Daney 		uint64_t lfb_tag:18;
67254293ec3SDavid Daney 		uint64_t lfb_idx:9;
67354293ec3SDavid Daney 	} cn52xx;
67454293ec3SDavid Daney 	struct cvmx_l2c_lfb2_cn52xx cn52xxp1;
67554293ec3SDavid Daney 	struct cvmx_l2c_lfb2_cn56xx {
67654293ec3SDavid Daney 		uint64_t reserved_27_63:37;
67754293ec3SDavid Daney 		uint64_t lfb_tag:16;
67854293ec3SDavid Daney 		uint64_t lfb_idx:11;
67954293ec3SDavid Daney 	} cn56xx;
68054293ec3SDavid Daney 	struct cvmx_l2c_lfb2_cn56xx cn56xxp1;
68154293ec3SDavid Daney 	struct cvmx_l2c_lfb2_cn56xx cn58xx;
68254293ec3SDavid Daney 	struct cvmx_l2c_lfb2_cn56xx cn58xxp1;
68354293ec3SDavid Daney };
68454293ec3SDavid Daney 
68554293ec3SDavid Daney union cvmx_l2c_lfb3 {
68654293ec3SDavid Daney 	uint64_t u64;
68754293ec3SDavid Daney 	struct cvmx_l2c_lfb3_s {
68854293ec3SDavid Daney 		uint64_t reserved_5_63:59;
68954293ec3SDavid Daney 		uint64_t stpartdis:1;
69054293ec3SDavid Daney 		uint64_t lfb_hwm:4;
69154293ec3SDavid Daney 	} s;
69254293ec3SDavid Daney 	struct cvmx_l2c_lfb3_cn30xx {
69354293ec3SDavid Daney 		uint64_t reserved_5_63:59;
69454293ec3SDavid Daney 		uint64_t stpartdis:1;
69554293ec3SDavid Daney 		uint64_t reserved_2_3:2;
69654293ec3SDavid Daney 		uint64_t lfb_hwm:2;
69754293ec3SDavid Daney 	} cn30xx;
69854293ec3SDavid Daney 	struct cvmx_l2c_lfb3_cn31xx {
69954293ec3SDavid Daney 		uint64_t reserved_5_63:59;
70054293ec3SDavid Daney 		uint64_t stpartdis:1;
70154293ec3SDavid Daney 		uint64_t reserved_3_3:1;
70254293ec3SDavid Daney 		uint64_t lfb_hwm:3;
70354293ec3SDavid Daney 	} cn31xx;
70454293ec3SDavid Daney 	struct cvmx_l2c_lfb3_s cn38xx;
70554293ec3SDavid Daney 	struct cvmx_l2c_lfb3_s cn38xxp2;
70654293ec3SDavid Daney 	struct cvmx_l2c_lfb3_cn31xx cn50xx;
70754293ec3SDavid Daney 	struct cvmx_l2c_lfb3_cn31xx cn52xx;
70854293ec3SDavid Daney 	struct cvmx_l2c_lfb3_cn31xx cn52xxp1;
70954293ec3SDavid Daney 	struct cvmx_l2c_lfb3_s cn56xx;
71054293ec3SDavid Daney 	struct cvmx_l2c_lfb3_s cn56xxp1;
71154293ec3SDavid Daney 	struct cvmx_l2c_lfb3_s cn58xx;
71254293ec3SDavid Daney 	struct cvmx_l2c_lfb3_s cn58xxp1;
71354293ec3SDavid Daney };
71454293ec3SDavid Daney 
71554293ec3SDavid Daney union cvmx_l2c_oob {
71654293ec3SDavid Daney 	uint64_t u64;
71754293ec3SDavid Daney 	struct cvmx_l2c_oob_s {
71854293ec3SDavid Daney 		uint64_t reserved_2_63:62;
71954293ec3SDavid Daney 		uint64_t dwbena:1;
72054293ec3SDavid Daney 		uint64_t stena:1;
72154293ec3SDavid Daney 	} s;
72254293ec3SDavid Daney 	struct cvmx_l2c_oob_s cn52xx;
72354293ec3SDavid Daney 	struct cvmx_l2c_oob_s cn52xxp1;
72454293ec3SDavid Daney 	struct cvmx_l2c_oob_s cn56xx;
72554293ec3SDavid Daney 	struct cvmx_l2c_oob_s cn56xxp1;
72654293ec3SDavid Daney };
72754293ec3SDavid Daney 
72854293ec3SDavid Daney union cvmx_l2c_oob1 {
72954293ec3SDavid Daney 	uint64_t u64;
73054293ec3SDavid Daney 	struct cvmx_l2c_oob1_s {
73154293ec3SDavid Daney 		uint64_t fadr:27;
73254293ec3SDavid Daney 		uint64_t fsrc:1;
73354293ec3SDavid Daney 		uint64_t reserved_34_35:2;
73454293ec3SDavid Daney 		uint64_t sadr:14;
73554293ec3SDavid Daney 		uint64_t reserved_14_19:6;
73654293ec3SDavid Daney 		uint64_t size:14;
73754293ec3SDavid Daney 	} s;
73854293ec3SDavid Daney 	struct cvmx_l2c_oob1_s cn52xx;
73954293ec3SDavid Daney 	struct cvmx_l2c_oob1_s cn52xxp1;
74054293ec3SDavid Daney 	struct cvmx_l2c_oob1_s cn56xx;
74154293ec3SDavid Daney 	struct cvmx_l2c_oob1_s cn56xxp1;
74254293ec3SDavid Daney };
74354293ec3SDavid Daney 
74454293ec3SDavid Daney union cvmx_l2c_oob2 {
74554293ec3SDavid Daney 	uint64_t u64;
74654293ec3SDavid Daney 	struct cvmx_l2c_oob2_s {
74754293ec3SDavid Daney 		uint64_t fadr:27;
74854293ec3SDavid Daney 		uint64_t fsrc:1;
74954293ec3SDavid Daney 		uint64_t reserved_34_35:2;
75054293ec3SDavid Daney 		uint64_t sadr:14;
75154293ec3SDavid Daney 		uint64_t reserved_14_19:6;
75254293ec3SDavid Daney 		uint64_t size:14;
75354293ec3SDavid Daney 	} s;
75454293ec3SDavid Daney 	struct cvmx_l2c_oob2_s cn52xx;
75554293ec3SDavid Daney 	struct cvmx_l2c_oob2_s cn52xxp1;
75654293ec3SDavid Daney 	struct cvmx_l2c_oob2_s cn56xx;
75754293ec3SDavid Daney 	struct cvmx_l2c_oob2_s cn56xxp1;
75854293ec3SDavid Daney };
75954293ec3SDavid Daney 
76054293ec3SDavid Daney union cvmx_l2c_oob3 {
76154293ec3SDavid Daney 	uint64_t u64;
76254293ec3SDavid Daney 	struct cvmx_l2c_oob3_s {
76354293ec3SDavid Daney 		uint64_t fadr:27;
76454293ec3SDavid Daney 		uint64_t fsrc:1;
76554293ec3SDavid Daney 		uint64_t reserved_34_35:2;
76654293ec3SDavid Daney 		uint64_t sadr:14;
76754293ec3SDavid Daney 		uint64_t reserved_14_19:6;
76854293ec3SDavid Daney 		uint64_t size:14;
76954293ec3SDavid Daney 	} s;
77054293ec3SDavid Daney 	struct cvmx_l2c_oob3_s cn52xx;
77154293ec3SDavid Daney 	struct cvmx_l2c_oob3_s cn52xxp1;
77254293ec3SDavid Daney 	struct cvmx_l2c_oob3_s cn56xx;
77354293ec3SDavid Daney 	struct cvmx_l2c_oob3_s cn56xxp1;
77454293ec3SDavid Daney };
77554293ec3SDavid Daney 
77654293ec3SDavid Daney union cvmx_l2c_pfcx {
77754293ec3SDavid Daney 	uint64_t u64;
77854293ec3SDavid Daney 	struct cvmx_l2c_pfcx_s {
77954293ec3SDavid Daney 		uint64_t reserved_36_63:28;
78054293ec3SDavid Daney 		uint64_t pfcnt0:36;
78154293ec3SDavid Daney 	} s;
78254293ec3SDavid Daney 	struct cvmx_l2c_pfcx_s cn30xx;
78354293ec3SDavid Daney 	struct cvmx_l2c_pfcx_s cn31xx;
78454293ec3SDavid Daney 	struct cvmx_l2c_pfcx_s cn38xx;
78554293ec3SDavid Daney 	struct cvmx_l2c_pfcx_s cn38xxp2;
78654293ec3SDavid Daney 	struct cvmx_l2c_pfcx_s cn50xx;
78754293ec3SDavid Daney 	struct cvmx_l2c_pfcx_s cn52xx;
78854293ec3SDavid Daney 	struct cvmx_l2c_pfcx_s cn52xxp1;
78954293ec3SDavid Daney 	struct cvmx_l2c_pfcx_s cn56xx;
79054293ec3SDavid Daney 	struct cvmx_l2c_pfcx_s cn56xxp1;
79154293ec3SDavid Daney 	struct cvmx_l2c_pfcx_s cn58xx;
79254293ec3SDavid Daney 	struct cvmx_l2c_pfcx_s cn58xxp1;
79354293ec3SDavid Daney };
79454293ec3SDavid Daney 
79554293ec3SDavid Daney union cvmx_l2c_pfctl {
79654293ec3SDavid Daney 	uint64_t u64;
79754293ec3SDavid Daney 	struct cvmx_l2c_pfctl_s {
79854293ec3SDavid Daney 		uint64_t reserved_36_63:28;
79954293ec3SDavid Daney 		uint64_t cnt3rdclr:1;
80054293ec3SDavid Daney 		uint64_t cnt2rdclr:1;
80154293ec3SDavid Daney 		uint64_t cnt1rdclr:1;
80254293ec3SDavid Daney 		uint64_t cnt0rdclr:1;
80354293ec3SDavid Daney 		uint64_t cnt3ena:1;
80454293ec3SDavid Daney 		uint64_t cnt3clr:1;
80554293ec3SDavid Daney 		uint64_t cnt3sel:6;
80654293ec3SDavid Daney 		uint64_t cnt2ena:1;
80754293ec3SDavid Daney 		uint64_t cnt2clr:1;
80854293ec3SDavid Daney 		uint64_t cnt2sel:6;
80954293ec3SDavid Daney 		uint64_t cnt1ena:1;
81054293ec3SDavid Daney 		uint64_t cnt1clr:1;
81154293ec3SDavid Daney 		uint64_t cnt1sel:6;
81254293ec3SDavid Daney 		uint64_t cnt0ena:1;
81354293ec3SDavid Daney 		uint64_t cnt0clr:1;
81454293ec3SDavid Daney 		uint64_t cnt0sel:6;
81554293ec3SDavid Daney 	} s;
81654293ec3SDavid Daney 	struct cvmx_l2c_pfctl_s cn30xx;
81754293ec3SDavid Daney 	struct cvmx_l2c_pfctl_s cn31xx;
81854293ec3SDavid Daney 	struct cvmx_l2c_pfctl_s cn38xx;
81954293ec3SDavid Daney 	struct cvmx_l2c_pfctl_s cn38xxp2;
82054293ec3SDavid Daney 	struct cvmx_l2c_pfctl_s cn50xx;
82154293ec3SDavid Daney 	struct cvmx_l2c_pfctl_s cn52xx;
82254293ec3SDavid Daney 	struct cvmx_l2c_pfctl_s cn52xxp1;
82354293ec3SDavid Daney 	struct cvmx_l2c_pfctl_s cn56xx;
82454293ec3SDavid Daney 	struct cvmx_l2c_pfctl_s cn56xxp1;
82554293ec3SDavid Daney 	struct cvmx_l2c_pfctl_s cn58xx;
82654293ec3SDavid Daney 	struct cvmx_l2c_pfctl_s cn58xxp1;
82754293ec3SDavid Daney };
82854293ec3SDavid Daney 
82954293ec3SDavid Daney union cvmx_l2c_ppgrp {
83054293ec3SDavid Daney 	uint64_t u64;
83154293ec3SDavid Daney 	struct cvmx_l2c_ppgrp_s {
83254293ec3SDavid Daney 		uint64_t reserved_24_63:40;
83354293ec3SDavid Daney 		uint64_t pp11grp:2;
83454293ec3SDavid Daney 		uint64_t pp10grp:2;
83554293ec3SDavid Daney 		uint64_t pp9grp:2;
83654293ec3SDavid Daney 		uint64_t pp8grp:2;
83754293ec3SDavid Daney 		uint64_t pp7grp:2;
83854293ec3SDavid Daney 		uint64_t pp6grp:2;
83954293ec3SDavid Daney 		uint64_t pp5grp:2;
84054293ec3SDavid Daney 		uint64_t pp4grp:2;
84154293ec3SDavid Daney 		uint64_t pp3grp:2;
84254293ec3SDavid Daney 		uint64_t pp2grp:2;
84354293ec3SDavid Daney 		uint64_t pp1grp:2;
84454293ec3SDavid Daney 		uint64_t pp0grp:2;
84554293ec3SDavid Daney 	} s;
84654293ec3SDavid Daney 	struct cvmx_l2c_ppgrp_cn52xx {
84754293ec3SDavid Daney 		uint64_t reserved_8_63:56;
84854293ec3SDavid Daney 		uint64_t pp3grp:2;
84954293ec3SDavid Daney 		uint64_t pp2grp:2;
85054293ec3SDavid Daney 		uint64_t pp1grp:2;
85154293ec3SDavid Daney 		uint64_t pp0grp:2;
85254293ec3SDavid Daney 	} cn52xx;
85354293ec3SDavid Daney 	struct cvmx_l2c_ppgrp_cn52xx cn52xxp1;
85454293ec3SDavid Daney 	struct cvmx_l2c_ppgrp_s cn56xx;
85554293ec3SDavid Daney 	struct cvmx_l2c_ppgrp_s cn56xxp1;
85654293ec3SDavid Daney };
85754293ec3SDavid Daney 
85854293ec3SDavid Daney union cvmx_l2c_spar0 {
85954293ec3SDavid Daney 	uint64_t u64;
86054293ec3SDavid Daney 	struct cvmx_l2c_spar0_s {
86154293ec3SDavid Daney 		uint64_t reserved_32_63:32;
86254293ec3SDavid Daney 		uint64_t umsk3:8;
86354293ec3SDavid Daney 		uint64_t umsk2:8;
86454293ec3SDavid Daney 		uint64_t umsk1:8;
86554293ec3SDavid Daney 		uint64_t umsk0:8;
86654293ec3SDavid Daney 	} s;
86754293ec3SDavid Daney 	struct cvmx_l2c_spar0_cn30xx {
86854293ec3SDavid Daney 		uint64_t reserved_4_63:60;
86954293ec3SDavid Daney 		uint64_t umsk0:4;
87054293ec3SDavid Daney 	} cn30xx;
87154293ec3SDavid Daney 	struct cvmx_l2c_spar0_cn31xx {
87254293ec3SDavid Daney 		uint64_t reserved_12_63:52;
87354293ec3SDavid Daney 		uint64_t umsk1:4;
87454293ec3SDavid Daney 		uint64_t reserved_4_7:4;
87554293ec3SDavid Daney 		uint64_t umsk0:4;
87654293ec3SDavid Daney 	} cn31xx;
87754293ec3SDavid Daney 	struct cvmx_l2c_spar0_s cn38xx;
87854293ec3SDavid Daney 	struct cvmx_l2c_spar0_s cn38xxp2;
87954293ec3SDavid Daney 	struct cvmx_l2c_spar0_cn50xx {
88054293ec3SDavid Daney 		uint64_t reserved_16_63:48;
88154293ec3SDavid Daney 		uint64_t umsk1:8;
88254293ec3SDavid Daney 		uint64_t umsk0:8;
88354293ec3SDavid Daney 	} cn50xx;
88454293ec3SDavid Daney 	struct cvmx_l2c_spar0_s cn52xx;
88554293ec3SDavid Daney 	struct cvmx_l2c_spar0_s cn52xxp1;
88654293ec3SDavid Daney 	struct cvmx_l2c_spar0_s cn56xx;
88754293ec3SDavid Daney 	struct cvmx_l2c_spar0_s cn56xxp1;
88854293ec3SDavid Daney 	struct cvmx_l2c_spar0_s cn58xx;
88954293ec3SDavid Daney 	struct cvmx_l2c_spar0_s cn58xxp1;
89054293ec3SDavid Daney };
89154293ec3SDavid Daney 
89254293ec3SDavid Daney union cvmx_l2c_spar1 {
89354293ec3SDavid Daney 	uint64_t u64;
89454293ec3SDavid Daney 	struct cvmx_l2c_spar1_s {
89554293ec3SDavid Daney 		uint64_t reserved_32_63:32;
89654293ec3SDavid Daney 		uint64_t umsk7:8;
89754293ec3SDavid Daney 		uint64_t umsk6:8;
89854293ec3SDavid Daney 		uint64_t umsk5:8;
89954293ec3SDavid Daney 		uint64_t umsk4:8;
90054293ec3SDavid Daney 	} s;
90154293ec3SDavid Daney 	struct cvmx_l2c_spar1_s cn38xx;
90254293ec3SDavid Daney 	struct cvmx_l2c_spar1_s cn38xxp2;
90354293ec3SDavid Daney 	struct cvmx_l2c_spar1_s cn56xx;
90454293ec3SDavid Daney 	struct cvmx_l2c_spar1_s cn56xxp1;
90554293ec3SDavid Daney 	struct cvmx_l2c_spar1_s cn58xx;
90654293ec3SDavid Daney 	struct cvmx_l2c_spar1_s cn58xxp1;
90754293ec3SDavid Daney };
90854293ec3SDavid Daney 
90954293ec3SDavid Daney union cvmx_l2c_spar2 {
91054293ec3SDavid Daney 	uint64_t u64;
91154293ec3SDavid Daney 	struct cvmx_l2c_spar2_s {
91254293ec3SDavid Daney 		uint64_t reserved_32_63:32;
91354293ec3SDavid Daney 		uint64_t umsk11:8;
91454293ec3SDavid Daney 		uint64_t umsk10:8;
91554293ec3SDavid Daney 		uint64_t umsk9:8;
91654293ec3SDavid Daney 		uint64_t umsk8:8;
91754293ec3SDavid Daney 	} s;
91854293ec3SDavid Daney 	struct cvmx_l2c_spar2_s cn38xx;
91954293ec3SDavid Daney 	struct cvmx_l2c_spar2_s cn38xxp2;
92054293ec3SDavid Daney 	struct cvmx_l2c_spar2_s cn56xx;
92154293ec3SDavid Daney 	struct cvmx_l2c_spar2_s cn56xxp1;
92254293ec3SDavid Daney 	struct cvmx_l2c_spar2_s cn58xx;
92354293ec3SDavid Daney 	struct cvmx_l2c_spar2_s cn58xxp1;
92454293ec3SDavid Daney };
92554293ec3SDavid Daney 
92654293ec3SDavid Daney union cvmx_l2c_spar3 {
92754293ec3SDavid Daney 	uint64_t u64;
92854293ec3SDavid Daney 	struct cvmx_l2c_spar3_s {
92954293ec3SDavid Daney 		uint64_t reserved_32_63:32;
93054293ec3SDavid Daney 		uint64_t umsk15:8;
93154293ec3SDavid Daney 		uint64_t umsk14:8;
93254293ec3SDavid Daney 		uint64_t umsk13:8;
93354293ec3SDavid Daney 		uint64_t umsk12:8;
93454293ec3SDavid Daney 	} s;
93554293ec3SDavid Daney 	struct cvmx_l2c_spar3_s cn38xx;
93654293ec3SDavid Daney 	struct cvmx_l2c_spar3_s cn38xxp2;
93754293ec3SDavid Daney 	struct cvmx_l2c_spar3_s cn58xx;
93854293ec3SDavid Daney 	struct cvmx_l2c_spar3_s cn58xxp1;
93954293ec3SDavid Daney };
94054293ec3SDavid Daney 
94154293ec3SDavid Daney union cvmx_l2c_spar4 {
94254293ec3SDavid Daney 	uint64_t u64;
94354293ec3SDavid Daney 	struct cvmx_l2c_spar4_s {
94454293ec3SDavid Daney 		uint64_t reserved_8_63:56;
94554293ec3SDavid Daney 		uint64_t umskiob:8;
94654293ec3SDavid Daney 	} s;
94754293ec3SDavid Daney 	struct cvmx_l2c_spar4_cn30xx {
94854293ec3SDavid Daney 		uint64_t reserved_4_63:60;
94954293ec3SDavid Daney 		uint64_t umskiob:4;
95054293ec3SDavid Daney 	} cn30xx;
95154293ec3SDavid Daney 	struct cvmx_l2c_spar4_cn30xx cn31xx;
95254293ec3SDavid Daney 	struct cvmx_l2c_spar4_s cn38xx;
95354293ec3SDavid Daney 	struct cvmx_l2c_spar4_s cn38xxp2;
95454293ec3SDavid Daney 	struct cvmx_l2c_spar4_s cn50xx;
95554293ec3SDavid Daney 	struct cvmx_l2c_spar4_s cn52xx;
95654293ec3SDavid Daney 	struct cvmx_l2c_spar4_s cn52xxp1;
95754293ec3SDavid Daney 	struct cvmx_l2c_spar4_s cn56xx;
95854293ec3SDavid Daney 	struct cvmx_l2c_spar4_s cn56xxp1;
95954293ec3SDavid Daney 	struct cvmx_l2c_spar4_s cn58xx;
96054293ec3SDavid Daney 	struct cvmx_l2c_spar4_s cn58xxp1;
96154293ec3SDavid Daney };
96254293ec3SDavid Daney 
96354293ec3SDavid Daney #endif
964