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