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