Avoid beyond bounds copy while caching ACL
[zen-stable.git] / arch / mips / include / asm / octeon / cvmx-l2c-defs.h
blob7a50a0beb472aa495f8eb1fe321ccc17862253e3
1 /***********************license start***************
2 * Author: Cavium Networks
4 * Contact: support@caviumnetworks.com
5 * This file is part of the OCTEON SDK
7 * Copyright (c) 2003-2010 Cavium Networks
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.
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.
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/.
24 * This file may also be available under a different license from Cavium.
25 * Contact Cavium Networks for more information
26 ***********************license end**************************************/
28 #ifndef __CVMX_L2C_DEFS_H__
29 #define __CVMX_L2C_DEFS_H__
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))
108 union 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;
119 union 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;
139 union 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;
194 union 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;
248 union 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;
299 union 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;
312 union 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;
330 union 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;
341 union 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;
421 union 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;
430 union 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;
464 union 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;
531 union 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;
553 union 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;
565 union 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;
582 union 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;
599 union 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;
613 union 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;
626 union 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;
638 union 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;
650 union 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;
670 union 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;
695 union 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;
724 union 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;
744 union 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;
753 union 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;
762 union 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;
783 union 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;
802 union 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;
886 union 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;
922 union 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;
960 union 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;
990 union 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;
1003 union 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;
1019 union 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;
1035 union 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;
1051 union 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;
1070 union 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;
1104 union 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;
1133 union 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;
1145 union 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;
1155 union 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;
1168 union 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;
1177 union 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;
1186 union 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;
1220 union 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;
1237 union 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;
1254 union 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;
1269 union 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;
1291 union 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;
1307 union 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;
1323 union 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;
1350 union 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;
1367 union 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;
1376 union 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;
1385 union 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;
1394 union 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;
1403 union 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;
1416 union 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;
1433 union 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;
1442 union 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;
1452 union 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;
1462 union 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;
1472 union 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;
1484 union 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;
1494 union 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;
1508 union 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;
1519 union 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;
1529 union 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;
1539 union 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;
1548 union 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;
1560 union 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;
1569 #endif