1 /***********************license start***************
2 * Author: Cavium Networks
4 * Contact: support@caviumnetworks.com
5 * This file is part of the OCTEON SDK
7 * Copyright (c) 2003-2008 Cavium Networks
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.
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
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/.
24 * This file may also be available under a different license from Cavium.
25 * Contact Cavium Networks for more information
26 ***********************license end**************************************/
28 #ifndef __CVMX_IOB_DEFS_H__
29 #define __CVMX_IOB_DEFS_H__
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)
76 union cvmx_iob_bist_status
{
78 struct cvmx_iob_bist_status_s
{
79 uint64_t reserved_18_63
:46;
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
;
112 union cvmx_iob_ctl_status
{
114 struct cvmx_iob_ctl_status_s
{
115 uint64_t reserved_5_63
:59;
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
;
135 union cvmx_iob_dwb_pri_cnt
{
137 struct cvmx_iob_dwb_pri_cnt_s
{
138 uint64_t reserved_16_63
:48;
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
;
152 union cvmx_iob_fau_timeout
{
154 struct cvmx_iob_fau_timeout_s
{
155 uint64_t reserved_13_63
:51;
157 uint64_t tout_val
:12;
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
;
172 union cvmx_iob_i2c_pri_cnt
{
174 struct cvmx_iob_i2c_pri_cnt_s
{
175 uint64_t reserved_16_63
:48;
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
;
189 union cvmx_iob_inb_control_match
{
191 struct cvmx_iob_inb_control_match_s
{
192 uint64_t reserved_29_63
:35;
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
;
211 union cvmx_iob_inb_control_match_enb
{
213 struct cvmx_iob_inb_control_match_enb_s
{
214 uint64_t reserved_29_63
:35;
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
;
233 union cvmx_iob_inb_data_match
{
235 struct cvmx_iob_inb_data_match_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
;
251 union cvmx_iob_inb_data_match_enb
{
253 struct cvmx_iob_inb_data_match_enb_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
;
269 union cvmx_iob_int_enb
{
271 struct cvmx_iob_int_enb_s
{
272 uint64_t reserved_6_63
:58;
280 struct cvmx_iob_int_enb_cn30xx
{
281 uint64_t reserved_4_63
:60;
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
;
299 union cvmx_iob_int_sum
{
301 struct cvmx_iob_int_sum_s
{
302 uint64_t reserved_6_63
:58;
310 struct cvmx_iob_int_sum_cn30xx
{
311 uint64_t reserved_4_63
:60;
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
;
329 union cvmx_iob_n2c_l2c_pri_cnt
{
331 struct cvmx_iob_n2c_l2c_pri_cnt_s
{
332 uint64_t reserved_16_63
:48;
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
;
346 union cvmx_iob_n2c_rsp_pri_cnt
{
348 struct cvmx_iob_n2c_rsp_pri_cnt_s
{
349 uint64_t reserved_16_63
:48;
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
;
363 union cvmx_iob_outb_com_pri_cnt
{
365 struct cvmx_iob_outb_com_pri_cnt_s
{
366 uint64_t reserved_16_63
:48;
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
;
380 union cvmx_iob_outb_control_match
{
382 struct cvmx_iob_outb_control_match_s
{
383 uint64_t reserved_26_63
:38;
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
;
402 union cvmx_iob_outb_control_match_enb
{
404 struct cvmx_iob_outb_control_match_enb_s
{
405 uint64_t reserved_26_63
:38;
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
;
424 union cvmx_iob_outb_data_match
{
426 struct cvmx_iob_outb_data_match_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
;
442 union cvmx_iob_outb_data_match_enb
{
444 struct cvmx_iob_outb_data_match_enb_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
;
460 union cvmx_iob_outb_fpa_pri_cnt
{
462 struct cvmx_iob_outb_fpa_pri_cnt_s
{
463 uint64_t reserved_16_63
:48;
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
;
477 union cvmx_iob_outb_req_pri_cnt
{
479 struct cvmx_iob_outb_req_pri_cnt_s
{
480 uint64_t reserved_16_63
:48;
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
;
494 union cvmx_iob_p2c_req_pri_cnt
{
496 struct cvmx_iob_p2c_req_pri_cnt_s
{
497 uint64_t reserved_16_63
:48;
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
;
511 union cvmx_iob_pkt_err
{
513 struct cvmx_iob_pkt_err_s
{
514 uint64_t reserved_6_63
:58;
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
;