Merge commit 'v2.6.37-rc2' into sched/core
[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-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