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 
96 union 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 
151 union 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 
205 union 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 
256 union 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 
336 union 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 
401 union 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 
423 union 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 
435 union 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 
447 union 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 
467 union 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 
487 union 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 
508 union 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 
527 union 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 
611 union 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 
647 union 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 
685 union 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 
715 union 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 
728 union 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 
744 union 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 
760 union 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 
776 union 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 
795 union 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 
829 union 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 
858 union 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 
892 union 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 
909 union 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 
926 union 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 
941 union 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