Merge branch 'linus' into timers/hpet
[pandora-kernel.git] / arch / mips / include / asm / octeon / cvmx-iob-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_IOB_DEFS_H__
29 #define __CVMX_IOB_DEFS_H__
30
31 #define CVMX_IOB_BIST_STATUS \
32          CVMX_ADD_IO_SEG(0x00011800F00007F8ull)
33 #define CVMX_IOB_CTL_STATUS \
34          CVMX_ADD_IO_SEG(0x00011800F0000050ull)
35 #define CVMX_IOB_DWB_PRI_CNT \
36          CVMX_ADD_IO_SEG(0x00011800F0000028ull)
37 #define CVMX_IOB_FAU_TIMEOUT \
38          CVMX_ADD_IO_SEG(0x00011800F0000000ull)
39 #define CVMX_IOB_I2C_PRI_CNT \
40          CVMX_ADD_IO_SEG(0x00011800F0000010ull)
41 #define CVMX_IOB_INB_CONTROL_MATCH \
42          CVMX_ADD_IO_SEG(0x00011800F0000078ull)
43 #define CVMX_IOB_INB_CONTROL_MATCH_ENB \
44          CVMX_ADD_IO_SEG(0x00011800F0000088ull)
45 #define CVMX_IOB_INB_DATA_MATCH \
46          CVMX_ADD_IO_SEG(0x00011800F0000070ull)
47 #define CVMX_IOB_INB_DATA_MATCH_ENB \
48          CVMX_ADD_IO_SEG(0x00011800F0000080ull)
49 #define CVMX_IOB_INT_ENB \
50          CVMX_ADD_IO_SEG(0x00011800F0000060ull)
51 #define CVMX_IOB_INT_SUM \
52          CVMX_ADD_IO_SEG(0x00011800F0000058ull)
53 #define CVMX_IOB_N2C_L2C_PRI_CNT \
54          CVMX_ADD_IO_SEG(0x00011800F0000020ull)
55 #define CVMX_IOB_N2C_RSP_PRI_CNT \
56          CVMX_ADD_IO_SEG(0x00011800F0000008ull)
57 #define CVMX_IOB_OUTB_COM_PRI_CNT \
58          CVMX_ADD_IO_SEG(0x00011800F0000040ull)
59 #define CVMX_IOB_OUTB_CONTROL_MATCH \
60          CVMX_ADD_IO_SEG(0x00011800F0000098ull)
61 #define CVMX_IOB_OUTB_CONTROL_MATCH_ENB \
62          CVMX_ADD_IO_SEG(0x00011800F00000A8ull)
63 #define CVMX_IOB_OUTB_DATA_MATCH \
64          CVMX_ADD_IO_SEG(0x00011800F0000090ull)
65 #define CVMX_IOB_OUTB_DATA_MATCH_ENB \
66          CVMX_ADD_IO_SEG(0x00011800F00000A0ull)
67 #define CVMX_IOB_OUTB_FPA_PRI_CNT \
68          CVMX_ADD_IO_SEG(0x00011800F0000048ull)
69 #define CVMX_IOB_OUTB_REQ_PRI_CNT \
70          CVMX_ADD_IO_SEG(0x00011800F0000038ull)
71 #define CVMX_IOB_P2C_REQ_PRI_CNT \
72          CVMX_ADD_IO_SEG(0x00011800F0000018ull)
73 #define CVMX_IOB_PKT_ERR \
74          CVMX_ADD_IO_SEG(0x00011800F0000068ull)
75
76 union cvmx_iob_bist_status {
77         uint64_t u64;
78         struct cvmx_iob_bist_status_s {
79                 uint64_t reserved_18_63:46;
80                 uint64_t icnrcb:1;
81                 uint64_t icr0:1;
82                 uint64_t icr1:1;
83                 uint64_t icnr1:1;
84                 uint64_t icnr0:1;
85                 uint64_t ibdr0:1;
86                 uint64_t ibdr1:1;
87                 uint64_t ibr0:1;
88                 uint64_t ibr1:1;
89                 uint64_t icnrt:1;
90                 uint64_t ibrq0:1;
91                 uint64_t ibrq1:1;
92                 uint64_t icrn0:1;
93                 uint64_t icrn1:1;
94                 uint64_t icrp0:1;
95                 uint64_t icrp1:1;
96                 uint64_t ibd:1;
97                 uint64_t icd:1;
98         } s;
99         struct cvmx_iob_bist_status_s cn30xx;
100         struct cvmx_iob_bist_status_s cn31xx;
101         struct cvmx_iob_bist_status_s cn38xx;
102         struct cvmx_iob_bist_status_s cn38xxp2;
103         struct cvmx_iob_bist_status_s cn50xx;
104         struct cvmx_iob_bist_status_s cn52xx;
105         struct cvmx_iob_bist_status_s cn52xxp1;
106         struct cvmx_iob_bist_status_s cn56xx;
107         struct cvmx_iob_bist_status_s cn56xxp1;
108         struct cvmx_iob_bist_status_s cn58xx;
109         struct cvmx_iob_bist_status_s cn58xxp1;
110 };
111
112 union cvmx_iob_ctl_status {
113         uint64_t u64;
114         struct cvmx_iob_ctl_status_s {
115                 uint64_t reserved_5_63:59;
116                 uint64_t outb_mat:1;
117                 uint64_t inb_mat:1;
118                 uint64_t pko_enb:1;
119                 uint64_t dwb_enb:1;
120                 uint64_t fau_end:1;
121         } s;
122         struct cvmx_iob_ctl_status_s cn30xx;
123         struct cvmx_iob_ctl_status_s cn31xx;
124         struct cvmx_iob_ctl_status_s cn38xx;
125         struct cvmx_iob_ctl_status_s cn38xxp2;
126         struct cvmx_iob_ctl_status_s cn50xx;
127         struct cvmx_iob_ctl_status_s cn52xx;
128         struct cvmx_iob_ctl_status_s cn52xxp1;
129         struct cvmx_iob_ctl_status_s cn56xx;
130         struct cvmx_iob_ctl_status_s cn56xxp1;
131         struct cvmx_iob_ctl_status_s cn58xx;
132         struct cvmx_iob_ctl_status_s cn58xxp1;
133 };
134
135 union cvmx_iob_dwb_pri_cnt {
136         uint64_t u64;
137         struct cvmx_iob_dwb_pri_cnt_s {
138                 uint64_t reserved_16_63:48;
139                 uint64_t cnt_enb:1;
140                 uint64_t cnt_val:15;
141         } s;
142         struct cvmx_iob_dwb_pri_cnt_s cn38xx;
143         struct cvmx_iob_dwb_pri_cnt_s cn38xxp2;
144         struct cvmx_iob_dwb_pri_cnt_s cn52xx;
145         struct cvmx_iob_dwb_pri_cnt_s cn52xxp1;
146         struct cvmx_iob_dwb_pri_cnt_s cn56xx;
147         struct cvmx_iob_dwb_pri_cnt_s cn56xxp1;
148         struct cvmx_iob_dwb_pri_cnt_s cn58xx;
149         struct cvmx_iob_dwb_pri_cnt_s cn58xxp1;
150 };
151
152 union cvmx_iob_fau_timeout {
153         uint64_t u64;
154         struct cvmx_iob_fau_timeout_s {
155                 uint64_t reserved_13_63:51;
156                 uint64_t tout_enb:1;
157                 uint64_t tout_val:12;
158         } s;
159         struct cvmx_iob_fau_timeout_s cn30xx;
160         struct cvmx_iob_fau_timeout_s cn31xx;
161         struct cvmx_iob_fau_timeout_s cn38xx;
162         struct cvmx_iob_fau_timeout_s cn38xxp2;
163         struct cvmx_iob_fau_timeout_s cn50xx;
164         struct cvmx_iob_fau_timeout_s cn52xx;
165         struct cvmx_iob_fau_timeout_s cn52xxp1;
166         struct cvmx_iob_fau_timeout_s cn56xx;
167         struct cvmx_iob_fau_timeout_s cn56xxp1;
168         struct cvmx_iob_fau_timeout_s cn58xx;
169         struct cvmx_iob_fau_timeout_s cn58xxp1;
170 };
171
172 union cvmx_iob_i2c_pri_cnt {
173         uint64_t u64;
174         struct cvmx_iob_i2c_pri_cnt_s {
175                 uint64_t reserved_16_63:48;
176                 uint64_t cnt_enb:1;
177                 uint64_t cnt_val:15;
178         } s;
179         struct cvmx_iob_i2c_pri_cnt_s cn38xx;
180         struct cvmx_iob_i2c_pri_cnt_s cn38xxp2;
181         struct cvmx_iob_i2c_pri_cnt_s cn52xx;
182         struct cvmx_iob_i2c_pri_cnt_s cn52xxp1;
183         struct cvmx_iob_i2c_pri_cnt_s cn56xx;
184         struct cvmx_iob_i2c_pri_cnt_s cn56xxp1;
185         struct cvmx_iob_i2c_pri_cnt_s cn58xx;
186         struct cvmx_iob_i2c_pri_cnt_s cn58xxp1;
187 };
188
189 union cvmx_iob_inb_control_match {
190         uint64_t u64;
191         struct cvmx_iob_inb_control_match_s {
192                 uint64_t reserved_29_63:35;
193                 uint64_t mask:8;
194                 uint64_t opc:4;
195                 uint64_t dst:9;
196                 uint64_t src:8;
197         } s;
198         struct cvmx_iob_inb_control_match_s cn30xx;
199         struct cvmx_iob_inb_control_match_s cn31xx;
200         struct cvmx_iob_inb_control_match_s cn38xx;
201         struct cvmx_iob_inb_control_match_s cn38xxp2;
202         struct cvmx_iob_inb_control_match_s cn50xx;
203         struct cvmx_iob_inb_control_match_s cn52xx;
204         struct cvmx_iob_inb_control_match_s cn52xxp1;
205         struct cvmx_iob_inb_control_match_s cn56xx;
206         struct cvmx_iob_inb_control_match_s cn56xxp1;
207         struct cvmx_iob_inb_control_match_s cn58xx;
208         struct cvmx_iob_inb_control_match_s cn58xxp1;
209 };
210
211 union cvmx_iob_inb_control_match_enb {
212         uint64_t u64;
213         struct cvmx_iob_inb_control_match_enb_s {
214                 uint64_t reserved_29_63:35;
215                 uint64_t mask:8;
216                 uint64_t opc:4;
217                 uint64_t dst:9;
218                 uint64_t src:8;
219         } s;
220         struct cvmx_iob_inb_control_match_enb_s cn30xx;
221         struct cvmx_iob_inb_control_match_enb_s cn31xx;
222         struct cvmx_iob_inb_control_match_enb_s cn38xx;
223         struct cvmx_iob_inb_control_match_enb_s cn38xxp2;
224         struct cvmx_iob_inb_control_match_enb_s cn50xx;
225         struct cvmx_iob_inb_control_match_enb_s cn52xx;
226         struct cvmx_iob_inb_control_match_enb_s cn52xxp1;
227         struct cvmx_iob_inb_control_match_enb_s cn56xx;
228         struct cvmx_iob_inb_control_match_enb_s cn56xxp1;
229         struct cvmx_iob_inb_control_match_enb_s cn58xx;
230         struct cvmx_iob_inb_control_match_enb_s cn58xxp1;
231 };
232
233 union cvmx_iob_inb_data_match {
234         uint64_t u64;
235         struct cvmx_iob_inb_data_match_s {
236                 uint64_t data:64;
237         } s;
238         struct cvmx_iob_inb_data_match_s cn30xx;
239         struct cvmx_iob_inb_data_match_s cn31xx;
240         struct cvmx_iob_inb_data_match_s cn38xx;
241         struct cvmx_iob_inb_data_match_s cn38xxp2;
242         struct cvmx_iob_inb_data_match_s cn50xx;
243         struct cvmx_iob_inb_data_match_s cn52xx;
244         struct cvmx_iob_inb_data_match_s cn52xxp1;
245         struct cvmx_iob_inb_data_match_s cn56xx;
246         struct cvmx_iob_inb_data_match_s cn56xxp1;
247         struct cvmx_iob_inb_data_match_s cn58xx;
248         struct cvmx_iob_inb_data_match_s cn58xxp1;
249 };
250
251 union cvmx_iob_inb_data_match_enb {
252         uint64_t u64;
253         struct cvmx_iob_inb_data_match_enb_s {
254                 uint64_t data:64;
255         } s;
256         struct cvmx_iob_inb_data_match_enb_s cn30xx;
257         struct cvmx_iob_inb_data_match_enb_s cn31xx;
258         struct cvmx_iob_inb_data_match_enb_s cn38xx;
259         struct cvmx_iob_inb_data_match_enb_s cn38xxp2;
260         struct cvmx_iob_inb_data_match_enb_s cn50xx;
261         struct cvmx_iob_inb_data_match_enb_s cn52xx;
262         struct cvmx_iob_inb_data_match_enb_s cn52xxp1;
263         struct cvmx_iob_inb_data_match_enb_s cn56xx;
264         struct cvmx_iob_inb_data_match_enb_s cn56xxp1;
265         struct cvmx_iob_inb_data_match_enb_s cn58xx;
266         struct cvmx_iob_inb_data_match_enb_s cn58xxp1;
267 };
268
269 union cvmx_iob_int_enb {
270         uint64_t u64;
271         struct cvmx_iob_int_enb_s {
272                 uint64_t reserved_6_63:58;
273                 uint64_t p_dat:1;
274                 uint64_t np_dat:1;
275                 uint64_t p_eop:1;
276                 uint64_t p_sop:1;
277                 uint64_t np_eop:1;
278                 uint64_t np_sop:1;
279         } s;
280         struct cvmx_iob_int_enb_cn30xx {
281                 uint64_t reserved_4_63:60;
282                 uint64_t p_eop:1;
283                 uint64_t p_sop:1;
284                 uint64_t np_eop:1;
285                 uint64_t np_sop:1;
286         } cn30xx;
287         struct cvmx_iob_int_enb_cn30xx cn31xx;
288         struct cvmx_iob_int_enb_cn30xx cn38xx;
289         struct cvmx_iob_int_enb_cn30xx cn38xxp2;
290         struct cvmx_iob_int_enb_s cn50xx;
291         struct cvmx_iob_int_enb_s cn52xx;
292         struct cvmx_iob_int_enb_s cn52xxp1;
293         struct cvmx_iob_int_enb_s cn56xx;
294         struct cvmx_iob_int_enb_s cn56xxp1;
295         struct cvmx_iob_int_enb_s cn58xx;
296         struct cvmx_iob_int_enb_s cn58xxp1;
297 };
298
299 union cvmx_iob_int_sum {
300         uint64_t u64;
301         struct cvmx_iob_int_sum_s {
302                 uint64_t reserved_6_63:58;
303                 uint64_t p_dat:1;
304                 uint64_t np_dat:1;
305                 uint64_t p_eop:1;
306                 uint64_t p_sop:1;
307                 uint64_t np_eop:1;
308                 uint64_t np_sop:1;
309         } s;
310         struct cvmx_iob_int_sum_cn30xx {
311                 uint64_t reserved_4_63:60;
312                 uint64_t p_eop:1;
313                 uint64_t p_sop:1;
314                 uint64_t np_eop:1;
315                 uint64_t np_sop:1;
316         } cn30xx;
317         struct cvmx_iob_int_sum_cn30xx cn31xx;
318         struct cvmx_iob_int_sum_cn30xx cn38xx;
319         struct cvmx_iob_int_sum_cn30xx cn38xxp2;
320         struct cvmx_iob_int_sum_s cn50xx;
321         struct cvmx_iob_int_sum_s cn52xx;
322         struct cvmx_iob_int_sum_s cn52xxp1;
323         struct cvmx_iob_int_sum_s cn56xx;
324         struct cvmx_iob_int_sum_s cn56xxp1;
325         struct cvmx_iob_int_sum_s cn58xx;
326         struct cvmx_iob_int_sum_s cn58xxp1;
327 };
328
329 union cvmx_iob_n2c_l2c_pri_cnt {
330         uint64_t u64;
331         struct cvmx_iob_n2c_l2c_pri_cnt_s {
332                 uint64_t reserved_16_63:48;
333                 uint64_t cnt_enb:1;
334                 uint64_t cnt_val:15;
335         } s;
336         struct cvmx_iob_n2c_l2c_pri_cnt_s cn38xx;
337         struct cvmx_iob_n2c_l2c_pri_cnt_s cn38xxp2;
338         struct cvmx_iob_n2c_l2c_pri_cnt_s cn52xx;
339         struct cvmx_iob_n2c_l2c_pri_cnt_s cn52xxp1;
340         struct cvmx_iob_n2c_l2c_pri_cnt_s cn56xx;
341         struct cvmx_iob_n2c_l2c_pri_cnt_s cn56xxp1;
342         struct cvmx_iob_n2c_l2c_pri_cnt_s cn58xx;
343         struct cvmx_iob_n2c_l2c_pri_cnt_s cn58xxp1;
344 };
345
346 union cvmx_iob_n2c_rsp_pri_cnt {
347         uint64_t u64;
348         struct cvmx_iob_n2c_rsp_pri_cnt_s {
349                 uint64_t reserved_16_63:48;
350                 uint64_t cnt_enb:1;
351                 uint64_t cnt_val:15;
352         } s;
353         struct cvmx_iob_n2c_rsp_pri_cnt_s cn38xx;
354         struct cvmx_iob_n2c_rsp_pri_cnt_s cn38xxp2;
355         struct cvmx_iob_n2c_rsp_pri_cnt_s cn52xx;
356         struct cvmx_iob_n2c_rsp_pri_cnt_s cn52xxp1;
357         struct cvmx_iob_n2c_rsp_pri_cnt_s cn56xx;
358         struct cvmx_iob_n2c_rsp_pri_cnt_s cn56xxp1;
359         struct cvmx_iob_n2c_rsp_pri_cnt_s cn58xx;
360         struct cvmx_iob_n2c_rsp_pri_cnt_s cn58xxp1;
361 };
362
363 union cvmx_iob_outb_com_pri_cnt {
364         uint64_t u64;
365         struct cvmx_iob_outb_com_pri_cnt_s {
366                 uint64_t reserved_16_63:48;
367                 uint64_t cnt_enb:1;
368                 uint64_t cnt_val:15;
369         } s;
370         struct cvmx_iob_outb_com_pri_cnt_s cn38xx;
371         struct cvmx_iob_outb_com_pri_cnt_s cn38xxp2;
372         struct cvmx_iob_outb_com_pri_cnt_s cn52xx;
373         struct cvmx_iob_outb_com_pri_cnt_s cn52xxp1;
374         struct cvmx_iob_outb_com_pri_cnt_s cn56xx;
375         struct cvmx_iob_outb_com_pri_cnt_s cn56xxp1;
376         struct cvmx_iob_outb_com_pri_cnt_s cn58xx;
377         struct cvmx_iob_outb_com_pri_cnt_s cn58xxp1;
378 };
379
380 union cvmx_iob_outb_control_match {
381         uint64_t u64;
382         struct cvmx_iob_outb_control_match_s {
383                 uint64_t reserved_26_63:38;
384                 uint64_t mask:8;
385                 uint64_t eot:1;
386                 uint64_t dst:8;
387                 uint64_t src:9;
388         } s;
389         struct cvmx_iob_outb_control_match_s cn30xx;
390         struct cvmx_iob_outb_control_match_s cn31xx;
391         struct cvmx_iob_outb_control_match_s cn38xx;
392         struct cvmx_iob_outb_control_match_s cn38xxp2;
393         struct cvmx_iob_outb_control_match_s cn50xx;
394         struct cvmx_iob_outb_control_match_s cn52xx;
395         struct cvmx_iob_outb_control_match_s cn52xxp1;
396         struct cvmx_iob_outb_control_match_s cn56xx;
397         struct cvmx_iob_outb_control_match_s cn56xxp1;
398         struct cvmx_iob_outb_control_match_s cn58xx;
399         struct cvmx_iob_outb_control_match_s cn58xxp1;
400 };
401
402 union cvmx_iob_outb_control_match_enb {
403         uint64_t u64;
404         struct cvmx_iob_outb_control_match_enb_s {
405                 uint64_t reserved_26_63:38;
406                 uint64_t mask:8;
407                 uint64_t eot:1;
408                 uint64_t dst:8;
409                 uint64_t src:9;
410         } s;
411         struct cvmx_iob_outb_control_match_enb_s cn30xx;
412         struct cvmx_iob_outb_control_match_enb_s cn31xx;
413         struct cvmx_iob_outb_control_match_enb_s cn38xx;
414         struct cvmx_iob_outb_control_match_enb_s cn38xxp2;
415         struct cvmx_iob_outb_control_match_enb_s cn50xx;
416         struct cvmx_iob_outb_control_match_enb_s cn52xx;
417         struct cvmx_iob_outb_control_match_enb_s cn52xxp1;
418         struct cvmx_iob_outb_control_match_enb_s cn56xx;
419         struct cvmx_iob_outb_control_match_enb_s cn56xxp1;
420         struct cvmx_iob_outb_control_match_enb_s cn58xx;
421         struct cvmx_iob_outb_control_match_enb_s cn58xxp1;
422 };
423
424 union cvmx_iob_outb_data_match {
425         uint64_t u64;
426         struct cvmx_iob_outb_data_match_s {
427                 uint64_t data:64;
428         } s;
429         struct cvmx_iob_outb_data_match_s cn30xx;
430         struct cvmx_iob_outb_data_match_s cn31xx;
431         struct cvmx_iob_outb_data_match_s cn38xx;
432         struct cvmx_iob_outb_data_match_s cn38xxp2;
433         struct cvmx_iob_outb_data_match_s cn50xx;
434         struct cvmx_iob_outb_data_match_s cn52xx;
435         struct cvmx_iob_outb_data_match_s cn52xxp1;
436         struct cvmx_iob_outb_data_match_s cn56xx;
437         struct cvmx_iob_outb_data_match_s cn56xxp1;
438         struct cvmx_iob_outb_data_match_s cn58xx;
439         struct cvmx_iob_outb_data_match_s cn58xxp1;
440 };
441
442 union cvmx_iob_outb_data_match_enb {
443         uint64_t u64;
444         struct cvmx_iob_outb_data_match_enb_s {
445                 uint64_t data:64;
446         } s;
447         struct cvmx_iob_outb_data_match_enb_s cn30xx;
448         struct cvmx_iob_outb_data_match_enb_s cn31xx;
449         struct cvmx_iob_outb_data_match_enb_s cn38xx;
450         struct cvmx_iob_outb_data_match_enb_s cn38xxp2;
451         struct cvmx_iob_outb_data_match_enb_s cn50xx;
452         struct cvmx_iob_outb_data_match_enb_s cn52xx;
453         struct cvmx_iob_outb_data_match_enb_s cn52xxp1;
454         struct cvmx_iob_outb_data_match_enb_s cn56xx;
455         struct cvmx_iob_outb_data_match_enb_s cn56xxp1;
456         struct cvmx_iob_outb_data_match_enb_s cn58xx;
457         struct cvmx_iob_outb_data_match_enb_s cn58xxp1;
458 };
459
460 union cvmx_iob_outb_fpa_pri_cnt {
461         uint64_t u64;
462         struct cvmx_iob_outb_fpa_pri_cnt_s {
463                 uint64_t reserved_16_63:48;
464                 uint64_t cnt_enb:1;
465                 uint64_t cnt_val:15;
466         } s;
467         struct cvmx_iob_outb_fpa_pri_cnt_s cn38xx;
468         struct cvmx_iob_outb_fpa_pri_cnt_s cn38xxp2;
469         struct cvmx_iob_outb_fpa_pri_cnt_s cn52xx;
470         struct cvmx_iob_outb_fpa_pri_cnt_s cn52xxp1;
471         struct cvmx_iob_outb_fpa_pri_cnt_s cn56xx;
472         struct cvmx_iob_outb_fpa_pri_cnt_s cn56xxp1;
473         struct cvmx_iob_outb_fpa_pri_cnt_s cn58xx;
474         struct cvmx_iob_outb_fpa_pri_cnt_s cn58xxp1;
475 };
476
477 union cvmx_iob_outb_req_pri_cnt {
478         uint64_t u64;
479         struct cvmx_iob_outb_req_pri_cnt_s {
480                 uint64_t reserved_16_63:48;
481                 uint64_t cnt_enb:1;
482                 uint64_t cnt_val:15;
483         } s;
484         struct cvmx_iob_outb_req_pri_cnt_s cn38xx;
485         struct cvmx_iob_outb_req_pri_cnt_s cn38xxp2;
486         struct cvmx_iob_outb_req_pri_cnt_s cn52xx;
487         struct cvmx_iob_outb_req_pri_cnt_s cn52xxp1;
488         struct cvmx_iob_outb_req_pri_cnt_s cn56xx;
489         struct cvmx_iob_outb_req_pri_cnt_s cn56xxp1;
490         struct cvmx_iob_outb_req_pri_cnt_s cn58xx;
491         struct cvmx_iob_outb_req_pri_cnt_s cn58xxp1;
492 };
493
494 union cvmx_iob_p2c_req_pri_cnt {
495         uint64_t u64;
496         struct cvmx_iob_p2c_req_pri_cnt_s {
497                 uint64_t reserved_16_63:48;
498                 uint64_t cnt_enb:1;
499                 uint64_t cnt_val:15;
500         } s;
501         struct cvmx_iob_p2c_req_pri_cnt_s cn38xx;
502         struct cvmx_iob_p2c_req_pri_cnt_s cn38xxp2;
503         struct cvmx_iob_p2c_req_pri_cnt_s cn52xx;
504         struct cvmx_iob_p2c_req_pri_cnt_s cn52xxp1;
505         struct cvmx_iob_p2c_req_pri_cnt_s cn56xx;
506         struct cvmx_iob_p2c_req_pri_cnt_s cn56xxp1;
507         struct cvmx_iob_p2c_req_pri_cnt_s cn58xx;
508         struct cvmx_iob_p2c_req_pri_cnt_s cn58xxp1;
509 };
510
511 union cvmx_iob_pkt_err {
512         uint64_t u64;
513         struct cvmx_iob_pkt_err_s {
514                 uint64_t reserved_6_63:58;
515                 uint64_t port:6;
516         } s;
517         struct cvmx_iob_pkt_err_s cn30xx;
518         struct cvmx_iob_pkt_err_s cn31xx;
519         struct cvmx_iob_pkt_err_s cn38xx;
520         struct cvmx_iob_pkt_err_s cn38xxp2;
521         struct cvmx_iob_pkt_err_s cn50xx;
522         struct cvmx_iob_pkt_err_s cn52xx;
523         struct cvmx_iob_pkt_err_s cn52xxp1;
524         struct cvmx_iob_pkt_err_s cn56xx;
525         struct cvmx_iob_pkt_err_s cn56xxp1;
526         struct cvmx_iob_pkt_err_s cn58xx;
527         struct cvmx_iob_pkt_err_s cn58xxp1;
528 };
529
530 #endif