Merge branch 'vhost-net-next' of git://git.kernel.org/pub/scm/linux/kernel/git/mst...
[pandora-kernel.git] / arch / mips / include / asm / octeon / cvmx-l2c-defs.h
1 /***********************license start***************
2  * Author: Cavium Networks
3  *
4  * Contact: support@caviumnetworks.com
5  * This file is part of the OCTEON SDK
6  *
7  * Copyright (c) 2003-2010 Cavium Networks
8  *
9  * This file is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License, Version 2, as
11  * published by the Free Software Foundation.
12  *
13  * This file is distributed in the hope that it will be useful, but
14  * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
15  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
16  * NONINFRINGEMENT.  See the GNU General Public License for more
17  * details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this file; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22  * or visit http://www.gnu.org/licenses/.
23  *
24  * This file may also be available under a different license from Cavium.
25  * Contact Cavium Networks for more information
26  ***********************license end**************************************/
27
28 #ifndef __CVMX_L2C_DEFS_H__
29 #define __CVMX_L2C_DEFS_H__
30
31 #define CVMX_L2C_BIG_CTL (CVMX_ADD_IO_SEG(0x0001180080800030ull))
32 #define CVMX_L2C_BST (CVMX_ADD_IO_SEG(0x00011800808007F8ull))
33 #define CVMX_L2C_BST0 (CVMX_ADD_IO_SEG(0x00011800800007F8ull))
34 #define CVMX_L2C_BST1 (CVMX_ADD_IO_SEG(0x00011800800007F0ull))
35 #define CVMX_L2C_BST2 (CVMX_ADD_IO_SEG(0x00011800800007E8ull))
36 #define CVMX_L2C_BST_MEMX(block_id) (CVMX_ADD_IO_SEG(0x0001180080C007F8ull))
37 #define CVMX_L2C_BST_TDTX(block_id) (CVMX_ADD_IO_SEG(0x0001180080A007F0ull))
38 #define CVMX_L2C_BST_TTGX(block_id) (CVMX_ADD_IO_SEG(0x0001180080A007F8ull))
39 #define CVMX_L2C_CFG (CVMX_ADD_IO_SEG(0x0001180080000000ull))
40 #define CVMX_L2C_COP0_MAPX(offset) (CVMX_ADD_IO_SEG(0x0001180080940000ull) + ((offset) & 16383) * 8)
41 #define CVMX_L2C_CTL (CVMX_ADD_IO_SEG(0x0001180080800000ull))
42 #define CVMX_L2C_DBG (CVMX_ADD_IO_SEG(0x0001180080000030ull))
43 #define CVMX_L2C_DUT (CVMX_ADD_IO_SEG(0x0001180080000050ull))
44 #define CVMX_L2C_DUT_MAPX(offset) (CVMX_ADD_IO_SEG(0x0001180080E00000ull) + ((offset) & 2047) * 8)
45 #define CVMX_L2C_ERR_TDTX(block_id) (CVMX_ADD_IO_SEG(0x0001180080A007E0ull))
46 #define CVMX_L2C_ERR_TTGX(block_id) (CVMX_ADD_IO_SEG(0x0001180080A007E8ull))
47 #define CVMX_L2C_ERR_VBFX(block_id) (CVMX_ADD_IO_SEG(0x0001180080C007F0ull))
48 #define CVMX_L2C_ERR_XMC (CVMX_ADD_IO_SEG(0x00011800808007D8ull))
49 #define CVMX_L2C_GRPWRR0 (CVMX_ADD_IO_SEG(0x00011800800000C8ull))
50 #define CVMX_L2C_GRPWRR1 (CVMX_ADD_IO_SEG(0x00011800800000D0ull))
51 #define CVMX_L2C_INT_EN (CVMX_ADD_IO_SEG(0x0001180080000100ull))
52 #define CVMX_L2C_INT_ENA (CVMX_ADD_IO_SEG(0x0001180080800020ull))
53 #define CVMX_L2C_INT_REG (CVMX_ADD_IO_SEG(0x0001180080800018ull))
54 #define CVMX_L2C_INT_STAT (CVMX_ADD_IO_SEG(0x00011800800000F8ull))
55 #define CVMX_L2C_IOCX_PFC(block_id) (CVMX_ADD_IO_SEG(0x0001180080800420ull))
56 #define CVMX_L2C_IORX_PFC(block_id) (CVMX_ADD_IO_SEG(0x0001180080800428ull))
57 #define CVMX_L2C_LCKBASE (CVMX_ADD_IO_SEG(0x0001180080000058ull))
58 #define CVMX_L2C_LCKOFF (CVMX_ADD_IO_SEG(0x0001180080000060ull))
59 #define CVMX_L2C_LFB0 (CVMX_ADD_IO_SEG(0x0001180080000038ull))
60 #define CVMX_L2C_LFB1 (CVMX_ADD_IO_SEG(0x0001180080000040ull))
61 #define CVMX_L2C_LFB2 (CVMX_ADD_IO_SEG(0x0001180080000048ull))
62 #define CVMX_L2C_LFB3 (CVMX_ADD_IO_SEG(0x00011800800000B8ull))
63 #define CVMX_L2C_OOB (CVMX_ADD_IO_SEG(0x00011800800000D8ull))
64 #define CVMX_L2C_OOB1 (CVMX_ADD_IO_SEG(0x00011800800000E0ull))
65 #define CVMX_L2C_OOB2 (CVMX_ADD_IO_SEG(0x00011800800000E8ull))
66 #define CVMX_L2C_OOB3 (CVMX_ADD_IO_SEG(0x00011800800000F0ull))
67 #define CVMX_L2C_PFC0 CVMX_L2C_PFCX(0)
68 #define CVMX_L2C_PFC1 CVMX_L2C_PFCX(1)
69 #define CVMX_L2C_PFC2 CVMX_L2C_PFCX(2)
70 #define CVMX_L2C_PFC3 CVMX_L2C_PFCX(3)
71 #define CVMX_L2C_PFCTL (CVMX_ADD_IO_SEG(0x0001180080000090ull))
72 #define CVMX_L2C_PFCX(offset) (CVMX_ADD_IO_SEG(0x0001180080000098ull) + ((offset) & 3) * 8)
73 #define CVMX_L2C_PPGRP (CVMX_ADD_IO_SEG(0x00011800800000C0ull))
74 #define CVMX_L2C_QOS_IOBX(block_id) (CVMX_ADD_IO_SEG(0x0001180080880200ull))
75 #define CVMX_L2C_QOS_PPX(offset) (CVMX_ADD_IO_SEG(0x0001180080880000ull) + ((offset) & 7) * 8)
76 #define CVMX_L2C_QOS_WGT (CVMX_ADD_IO_SEG(0x0001180080800008ull))
77 #define CVMX_L2C_RSCX_PFC(block_id) (CVMX_ADD_IO_SEG(0x0001180080800410ull))
78 #define CVMX_L2C_RSDX_PFC(block_id) (CVMX_ADD_IO_SEG(0x0001180080800418ull))
79 #define CVMX_L2C_SPAR0 (CVMX_ADD_IO_SEG(0x0001180080000068ull))
80 #define CVMX_L2C_SPAR1 (CVMX_ADD_IO_SEG(0x0001180080000070ull))
81 #define CVMX_L2C_SPAR2 (CVMX_ADD_IO_SEG(0x0001180080000078ull))
82 #define CVMX_L2C_SPAR3 (CVMX_ADD_IO_SEG(0x0001180080000080ull))
83 #define CVMX_L2C_SPAR4 (CVMX_ADD_IO_SEG(0x0001180080000088ull))
84 #define CVMX_L2C_TADX_ECC0(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00018ull))
85 #define CVMX_L2C_TADX_ECC1(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00020ull))
86 #define CVMX_L2C_TADX_IEN(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00000ull))
87 #define CVMX_L2C_TADX_INT(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00028ull))
88 #define CVMX_L2C_TADX_PFC0(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00400ull))
89 #define CVMX_L2C_TADX_PFC1(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00408ull))
90 #define CVMX_L2C_TADX_PFC2(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00410ull))
91 #define CVMX_L2C_TADX_PFC3(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00418ull))
92 #define CVMX_L2C_TADX_PRF(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00008ull))
93 #define CVMX_L2C_TADX_TAG(block_id) (CVMX_ADD_IO_SEG(0x0001180080A00010ull))
94 #define CVMX_L2C_VER_ID (CVMX_ADD_IO_SEG(0x00011800808007E0ull))
95 #define CVMX_L2C_VER_IOB (CVMX_ADD_IO_SEG(0x00011800808007F0ull))
96 #define CVMX_L2C_VER_MSC (CVMX_ADD_IO_SEG(0x00011800808007D0ull))
97 #define CVMX_L2C_VER_PP (CVMX_ADD_IO_SEG(0x00011800808007E8ull))
98 #define CVMX_L2C_VIRTID_IOBX(block_id) (CVMX_ADD_IO_SEG(0x00011800808C0200ull))
99 #define CVMX_L2C_VIRTID_PPX(offset) (CVMX_ADD_IO_SEG(0x00011800808C0000ull) + ((offset) & 7) * 8)
100 #define CVMX_L2C_VRT_CTL (CVMX_ADD_IO_SEG(0x0001180080800010ull))
101 #define CVMX_L2C_VRT_MEMX(offset) (CVMX_ADD_IO_SEG(0x0001180080900000ull) + ((offset) & 1023) * 8)
102 #define CVMX_L2C_WPAR_IOBX(block_id) (CVMX_ADD_IO_SEG(0x0001180080840200ull))
103 #define CVMX_L2C_WPAR_PPX(offset) (CVMX_ADD_IO_SEG(0x0001180080840000ull) + ((offset) & 7) * 8)
104 #define CVMX_L2C_XMCX_PFC(block_id) (CVMX_ADD_IO_SEG(0x0001180080800400ull))
105 #define CVMX_L2C_XMC_CMD (CVMX_ADD_IO_SEG(0x0001180080800028ull))
106 #define CVMX_L2C_XMDX_PFC(block_id) (CVMX_ADD_IO_SEG(0x0001180080800408ull))
107
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;
117 };
118
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;
137 };
138
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;
192 };
193
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;
246 };
247
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;
297 };
298
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;
310 };
311
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;
328 };
329
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;
339 };
340
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;
419 };
420
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;
428 };
429
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;
462 };
463
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;
529 };
530
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;
551 };
552
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;
563 };
564
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;
580 };
581
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;
597 };
598
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;
611 };
612
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;
624 };
625
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;
636 };
637
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;
648 };
649
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;
668 };
669
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;
693 };
694
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;
722 };
723
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;
742 };
743
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;
751 };
752
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;
760 };
761
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;
781 };
782
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;
800 };
801
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;
884 };
885
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;
920 };
921
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;
958 };
959
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;
988 };
989
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;
1001 };
1002
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;
1017 };
1018
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;
1033 };
1034
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;
1049 };
1050
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;
1068 };
1069
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;
1102 };
1103
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;
1131 };
1132
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;
1143 };
1144
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;
1153 };
1154
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;
1166 };
1167
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;
1175 };
1176
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;
1184 };
1185
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;
1218 };
1219
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;
1235 };
1236
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;
1252 };
1253
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;
1267 };
1268
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;
1289 };
1290
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;
1305 };
1306
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;
1321 };
1322
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;
1348 };
1349
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;
1365 };
1366
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;
1374 };
1375
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;
1383 };
1384
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;
1392 };
1393
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;
1401 };
1402
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;
1414 };
1415
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;
1431 };
1432
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;
1440 };
1441
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;
1450 };
1451
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;
1460 };
1461
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;
1470 };
1471
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;
1482 };
1483
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;
1492 };
1493
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;
1506 };
1507
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;
1517 };
1518
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;
1527 };
1528
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;
1537 };
1538
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;
1546 };
1547
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;
1558 };
1559
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;
1567 };
1568
1569 #endif