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