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
531