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