1 /***********************license start***************
2 * Copyright (c) 2003-2010 Cavium Networks (support@cavium.com). All rights
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
13 * * Redistributions in binary form must reproduce the above
14 * copyright notice, this list of conditions and the following
15 * disclaimer in the documentation and/or other materials provided
16 * with the distribution.
18 * * Neither the name of Cavium Networks nor the names of
19 * its contributors may be used to endorse or promote products
20 * derived from this software without specific prior written
23 * This Software, including technical data, may be subject to U.S. export control
24 * laws, including the U.S. Export Administration Act and its associated
25 * regulations, and may be subject to export or import regulations in other
28 * TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
29 * AND WITH ALL FAULTS AND CAVIUM NETWORKS MAKES NO PROMISES, REPRESENTATIONS OR
30 * WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT TO
31 * THE SOFTWARE, INCLUDING ITS CONDITION, ITS CONFORMITY TO ANY REPRESENTATION OR
32 * DESCRIPTION, OR THE EXISTENCE OF ANY LATENT OR PATENT DEFECTS, AND CAVIUM
33 * SPECIFICALLY DISCLAIMS ALL IMPLIED (IF ANY) WARRANTIES OF TITLE,
34 * MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF
35 * VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR
36 * CORRESPONDENCE TO DESCRIPTION. THE ENTIRE RISK ARISING OUT OF USE OR
37 * PERFORMANCE OF THE SOFTWARE LIES WITH YOU.
38 ***********************license end**************************************/
44 * Configuration and status register (CSR) type definitions for
47 * This file is auto generated. Do not edit.
52 #ifndef __CVMX_IOB_TYPEDEFS_H__
53 #define __CVMX_IOB_TYPEDEFS_H__
55 #define CVMX_IOB_BIST_STATUS (CVMX_ADD_IO_SEG(0x00011800F00007F8ull))
56 #define CVMX_IOB_CTL_STATUS (CVMX_ADD_IO_SEG(0x00011800F0000050ull))
57 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
58 #define CVMX_IOB_DWB_PRI_CNT CVMX_IOB_DWB_PRI_CNT_FUNC()
59 static inline uint64_t CVMX_IOB_DWB_PRI_CNT_FUNC(void)
61 if (!(OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX)))
62 cvmx_warn("CVMX_IOB_DWB_PRI_CNT not supported on this chip\n");
63 return CVMX_ADD_IO_SEG(0x00011800F0000028ull);
66 #define CVMX_IOB_DWB_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000028ull))
68 #define CVMX_IOB_FAU_TIMEOUT (CVMX_ADD_IO_SEG(0x00011800F0000000ull))
69 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
70 #define CVMX_IOB_I2C_PRI_CNT CVMX_IOB_I2C_PRI_CNT_FUNC()
71 static inline uint64_t CVMX_IOB_I2C_PRI_CNT_FUNC(void)
73 if (!(OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX)))
74 cvmx_warn("CVMX_IOB_I2C_PRI_CNT not supported on this chip\n");
75 return CVMX_ADD_IO_SEG(0x00011800F0000010ull);
78 #define CVMX_IOB_I2C_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000010ull))
80 #define CVMX_IOB_INB_CONTROL_MATCH (CVMX_ADD_IO_SEG(0x00011800F0000078ull))
81 #define CVMX_IOB_INB_CONTROL_MATCH_ENB (CVMX_ADD_IO_SEG(0x00011800F0000088ull))
82 #define CVMX_IOB_INB_DATA_MATCH (CVMX_ADD_IO_SEG(0x00011800F0000070ull))
83 #define CVMX_IOB_INB_DATA_MATCH_ENB (CVMX_ADD_IO_SEG(0x00011800F0000080ull))
84 #define CVMX_IOB_INT_ENB (CVMX_ADD_IO_SEG(0x00011800F0000060ull))
85 #define CVMX_IOB_INT_SUM (CVMX_ADD_IO_SEG(0x00011800F0000058ull))
86 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
87 #define CVMX_IOB_N2C_L2C_PRI_CNT CVMX_IOB_N2C_L2C_PRI_CNT_FUNC()
88 static inline uint64_t CVMX_IOB_N2C_L2C_PRI_CNT_FUNC(void)
90 if (!(OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX)))
91 cvmx_warn("CVMX_IOB_N2C_L2C_PRI_CNT not supported on this chip\n");
92 return CVMX_ADD_IO_SEG(0x00011800F0000020ull);
95 #define CVMX_IOB_N2C_L2C_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000020ull))
97 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
98 #define CVMX_IOB_N2C_RSP_PRI_CNT CVMX_IOB_N2C_RSP_PRI_CNT_FUNC()
99 static inline uint64_t CVMX_IOB_N2C_RSP_PRI_CNT_FUNC(void)
101 if (!(OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX)))
102 cvmx_warn("CVMX_IOB_N2C_RSP_PRI_CNT not supported on this chip\n");
103 return CVMX_ADD_IO_SEG(0x00011800F0000008ull);
106 #define CVMX_IOB_N2C_RSP_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000008ull))
108 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
109 #define CVMX_IOB_OUTB_COM_PRI_CNT CVMX_IOB_OUTB_COM_PRI_CNT_FUNC()
110 static inline uint64_t CVMX_IOB_OUTB_COM_PRI_CNT_FUNC(void)
112 if (!(OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX)))
113 cvmx_warn("CVMX_IOB_OUTB_COM_PRI_CNT not supported on this chip\n");
114 return CVMX_ADD_IO_SEG(0x00011800F0000040ull);
117 #define CVMX_IOB_OUTB_COM_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000040ull))
119 #define CVMX_IOB_OUTB_CONTROL_MATCH (CVMX_ADD_IO_SEG(0x00011800F0000098ull))
120 #define CVMX_IOB_OUTB_CONTROL_MATCH_ENB (CVMX_ADD_IO_SEG(0x00011800F00000A8ull))
121 #define CVMX_IOB_OUTB_DATA_MATCH (CVMX_ADD_IO_SEG(0x00011800F0000090ull))
122 #define CVMX_IOB_OUTB_DATA_MATCH_ENB (CVMX_ADD_IO_SEG(0x00011800F00000A0ull))
123 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
124 #define CVMX_IOB_OUTB_FPA_PRI_CNT CVMX_IOB_OUTB_FPA_PRI_CNT_FUNC()
125 static inline uint64_t CVMX_IOB_OUTB_FPA_PRI_CNT_FUNC(void)
127 if (!(OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX)))
128 cvmx_warn("CVMX_IOB_OUTB_FPA_PRI_CNT not supported on this chip\n");
129 return CVMX_ADD_IO_SEG(0x00011800F0000048ull);
132 #define CVMX_IOB_OUTB_FPA_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000048ull))
134 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
135 #define CVMX_IOB_OUTB_REQ_PRI_CNT CVMX_IOB_OUTB_REQ_PRI_CNT_FUNC()
136 static inline uint64_t CVMX_IOB_OUTB_REQ_PRI_CNT_FUNC(void)
138 if (!(OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX)))
139 cvmx_warn("CVMX_IOB_OUTB_REQ_PRI_CNT not supported on this chip\n");
140 return CVMX_ADD_IO_SEG(0x00011800F0000038ull);
143 #define CVMX_IOB_OUTB_REQ_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000038ull))
145 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
146 #define CVMX_IOB_P2C_REQ_PRI_CNT CVMX_IOB_P2C_REQ_PRI_CNT_FUNC()
147 static inline uint64_t CVMX_IOB_P2C_REQ_PRI_CNT_FUNC(void)
149 if (!(OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN56XX) || OCTEON_IS_MODEL(OCTEON_CN58XX) || OCTEON_IS_MODEL(OCTEON_CN63XX)))
150 cvmx_warn("CVMX_IOB_P2C_REQ_PRI_CNT not supported on this chip\n");
151 return CVMX_ADD_IO_SEG(0x00011800F0000018ull);
154 #define CVMX_IOB_P2C_REQ_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000018ull))
156 #define CVMX_IOB_PKT_ERR (CVMX_ADD_IO_SEG(0x00011800F0000068ull))
157 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
158 #define CVMX_IOB_TO_CMB_CREDITS CVMX_IOB_TO_CMB_CREDITS_FUNC()
159 static inline uint64_t CVMX_IOB_TO_CMB_CREDITS_FUNC(void)
161 if (!(OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN63XX)))
162 cvmx_warn("CVMX_IOB_TO_CMB_CREDITS not supported on this chip\n");
163 return CVMX_ADD_IO_SEG(0x00011800F00000B0ull);
166 #define CVMX_IOB_TO_CMB_CREDITS (CVMX_ADD_IO_SEG(0x00011800F00000B0ull))
170 * cvmx_iob_bist_status
172 * IOB_BIST_STATUS = BIST Status of IOB Memories
174 * The result of the BIST run on the IOB memories.
176 union cvmx_iob_bist_status
179 struct cvmx_iob_bist_status_s
181 #if __BYTE_ORDER == __BIG_ENDIAN
182 uint64_t reserved_23_63 : 41;
183 uint64_t xmdfif : 1; /**< xmdfif_bist_status */
184 uint64_t xmcfif : 1; /**< xmcfif_bist_status */
185 uint64_t iorfif : 1; /**< iorfif_bist_status */
186 uint64_t rsdfif : 1; /**< rsdfif_bist_status */
187 uint64_t iocfif : 1; /**< iocfif_bist_status */
188 uint64_t icnrcb : 1; /**< icnr_cb_reg_fifo_bist_status */
189 uint64_t icr0 : 1; /**< icr_bist_req_fifo0_status */
190 uint64_t icr1 : 1; /**< icr_bist_req_fifo1_status */
191 uint64_t icnr1 : 1; /**< Reserved */
192 uint64_t icnr0 : 1; /**< icnr_reg_mem0_bist_status */
193 uint64_t ibdr0 : 1; /**< ibdr_bist_req_fifo0_status */
194 uint64_t ibdr1 : 1; /**< ibdr_bist_req_fifo1_status */
195 uint64_t ibr0 : 1; /**< ibr_bist_rsp_fifo0_status */
196 uint64_t ibr1 : 1; /**< ibr_bist_rsp_fifo1_status */
197 uint64_t icnrt : 1; /**< icnr_tag_cb_reg_fifo_bist_status */
198 uint64_t ibrq0 : 1; /**< ibrq_bist_req_fifo0_status */
199 uint64_t ibrq1 : 1; /**< ibrq_bist_req_fifo1_status */
200 uint64_t icrn0 : 1; /**< icr_ncb_bist_mem0_status */
201 uint64_t icrn1 : 1; /**< icr_ncb_bist_mem1_status */
202 uint64_t icrp0 : 1; /**< icr_pko_bist_mem0_status */
203 uint64_t icrp1 : 1; /**< icr_pko_bist_mem1_status */
204 uint64_t ibd : 1; /**< ibd_bist_mem0_status */
205 uint64_t icd : 1; /**< icd_ncb_fifo_bist_status */
230 uint64_t reserved_23_63 : 41;
233 struct cvmx_iob_bist_status_cn30xx
235 #if __BYTE_ORDER == __BIG_ENDIAN
236 uint64_t reserved_18_63 : 46;
237 uint64_t icnrcb : 1; /**< Reserved */
238 uint64_t icr0 : 1; /**< Reserved */
239 uint64_t icr1 : 1; /**< Reserved */
240 uint64_t icnr1 : 1; /**< Reserved */
241 uint64_t icnr0 : 1; /**< icnr_reg_mem0_bist_status */
242 uint64_t ibdr0 : 1; /**< ibdr_bist_req_fifo0_status */
243 uint64_t ibdr1 : 1; /**< ibdr_bist_req_fifo1_status */
244 uint64_t ibr0 : 1; /**< ibr_bist_rsp_fifo0_status */
245 uint64_t ibr1 : 1; /**< ibr_bist_rsp_fifo1_status */
246 uint64_t icnrt : 1; /**< Reserved */
247 uint64_t ibrq0 : 1; /**< ibrq_bist_req_fifo0_status */
248 uint64_t ibrq1 : 1; /**< ibrq_bist_req_fifo1_status */
249 uint64_t icrn0 : 1; /**< icr_ncb_bist_mem0_status */
250 uint64_t icrn1 : 1; /**< icr_ncb_bist_mem1_status */
251 uint64_t icrp0 : 1; /**< icr_pko_bist_mem0_status */
252 uint64_t icrp1 : 1; /**< icr_pko_bist_mem1_status */
253 uint64_t ibd : 1; /**< ibd_bist_mem0_status */
254 uint64_t icd : 1; /**< icd_ncb_fifo_bist_status */
274 uint64_t reserved_18_63 : 46;
277 struct cvmx_iob_bist_status_cn30xx cn31xx;
278 struct cvmx_iob_bist_status_cn30xx cn38xx;
279 struct cvmx_iob_bist_status_cn30xx cn38xxp2;
280 struct cvmx_iob_bist_status_cn30xx cn50xx;
281 struct cvmx_iob_bist_status_cn30xx cn52xx;
282 struct cvmx_iob_bist_status_cn30xx cn52xxp1;
283 struct cvmx_iob_bist_status_cn30xx cn56xx;
284 struct cvmx_iob_bist_status_cn30xx cn56xxp1;
285 struct cvmx_iob_bist_status_cn30xx cn58xx;
286 struct cvmx_iob_bist_status_cn30xx cn58xxp1;
287 struct cvmx_iob_bist_status_s cn63xx;
288 struct cvmx_iob_bist_status_s cn63xxp1;
290 typedef union cvmx_iob_bist_status cvmx_iob_bist_status_t;
293 * cvmx_iob_ctl_status
295 * IOB Control Status = IOB Control and Status Register
297 * Provides control for IOB functions.
299 union cvmx_iob_ctl_status
302 struct cvmx_iob_ctl_status_s
304 #if __BYTE_ORDER == __BIG_ENDIAN
305 uint64_t reserved_10_63 : 54;
306 uint64_t xmc_per : 4; /**< IBC XMC PUSH EARLY */
307 uint64_t rr_mode : 1; /**< When set to '1' will enable Round-Robin mode of next
308 transaction that could arbitrate for the XMB. */
309 uint64_t outb_mat : 1; /**< Was a match on the outbound bus to the inb pattern
310 matchers. PASS2 FIELD. */
311 uint64_t inb_mat : 1; /**< Was a match on the inbound bus to the inb pattern
312 matchers. PASS2 FIELD. */
313 uint64_t pko_enb : 1; /**< Toggles the endian style of the FAU for the PKO.
314 '0' is for big-endian and '1' is for little-endian. */
315 uint64_t dwb_enb : 1; /**< Enables the DWB function of the IOB. */
316 uint64_t fau_end : 1; /**< Toggles the endian style of the FAU. '0' is for
317 big-endian and '1' is for little-endian. */
319 uint64_t fau_end : 1;
320 uint64_t dwb_enb : 1;
321 uint64_t pko_enb : 1;
322 uint64_t inb_mat : 1;
323 uint64_t outb_mat : 1;
324 uint64_t rr_mode : 1;
325 uint64_t xmc_per : 4;
326 uint64_t reserved_10_63 : 54;
329 struct cvmx_iob_ctl_status_cn30xx
331 #if __BYTE_ORDER == __BIG_ENDIAN
332 uint64_t reserved_5_63 : 59;
333 uint64_t outb_mat : 1; /**< Was a match on the outbound bus to the inb pattern
335 uint64_t inb_mat : 1; /**< Was a match on the inbound bus to the inb pattern
337 uint64_t pko_enb : 1; /**< Toggles the endian style of the FAU for the PKO.
338 '0' is for big-endian and '1' is for little-endian. */
339 uint64_t dwb_enb : 1; /**< Enables the DWB function of the IOB. */
340 uint64_t fau_end : 1; /**< Toggles the endian style of the FAU. '0' is for
341 big-endian and '1' is for little-endian. */
343 uint64_t fau_end : 1;
344 uint64_t dwb_enb : 1;
345 uint64_t pko_enb : 1;
346 uint64_t inb_mat : 1;
347 uint64_t outb_mat : 1;
348 uint64_t reserved_5_63 : 59;
351 struct cvmx_iob_ctl_status_cn30xx cn31xx;
352 struct cvmx_iob_ctl_status_cn30xx cn38xx;
353 struct cvmx_iob_ctl_status_cn30xx cn38xxp2;
354 struct cvmx_iob_ctl_status_cn30xx cn50xx;
355 struct cvmx_iob_ctl_status_cn52xx
357 #if __BYTE_ORDER == __BIG_ENDIAN
358 uint64_t reserved_6_63 : 58;
359 uint64_t rr_mode : 1; /**< When set to '1' will enable Round-Robin mode of next
360 transaction that could arbitrate for the XMB. */
361 uint64_t outb_mat : 1; /**< Was a match on the outbound bus to the inb pattern
362 matchers. PASS2 FIELD. */
363 uint64_t inb_mat : 1; /**< Was a match on the inbound bus to the inb pattern
364 matchers. PASS2 FIELD. */
365 uint64_t pko_enb : 1; /**< Toggles the endian style of the FAU for the PKO.
366 '0' is for big-endian and '1' is for little-endian. */
367 uint64_t dwb_enb : 1; /**< Enables the DWB function of the IOB. */
368 uint64_t fau_end : 1; /**< Toggles the endian style of the FAU. '0' is for
369 big-endian and '1' is for little-endian. */
371 uint64_t fau_end : 1;
372 uint64_t dwb_enb : 1;
373 uint64_t pko_enb : 1;
374 uint64_t inb_mat : 1;
375 uint64_t outb_mat : 1;
376 uint64_t rr_mode : 1;
377 uint64_t reserved_6_63 : 58;
380 struct cvmx_iob_ctl_status_cn30xx cn52xxp1;
381 struct cvmx_iob_ctl_status_cn30xx cn56xx;
382 struct cvmx_iob_ctl_status_cn30xx cn56xxp1;
383 struct cvmx_iob_ctl_status_cn30xx cn58xx;
384 struct cvmx_iob_ctl_status_cn30xx cn58xxp1;
385 struct cvmx_iob_ctl_status_s cn63xx;
386 struct cvmx_iob_ctl_status_s cn63xxp1;
388 typedef union cvmx_iob_ctl_status cvmx_iob_ctl_status_t;
391 * cvmx_iob_dwb_pri_cnt
393 * DWB To CMB Priority Counter = Don't Write Back to CMB Priority Counter Enable and Timer Value
395 * Enables and supplies the timeout count for raising the priority of Don't Write Back request to the L2C.
397 union cvmx_iob_dwb_pri_cnt
400 struct cvmx_iob_dwb_pri_cnt_s
402 #if __BYTE_ORDER == __BIG_ENDIAN
403 uint64_t reserved_16_63 : 48;
404 uint64_t cnt_enb : 1; /**< Enables the raising of CMB access priority
405 when CNT_VAL is reached. */
406 uint64_t cnt_val : 15; /**< Number of core clocks to wait before raising
407 the priority for access to CMB. */
409 uint64_t cnt_val : 15;
410 uint64_t cnt_enb : 1;
411 uint64_t reserved_16_63 : 48;
414 struct cvmx_iob_dwb_pri_cnt_s cn38xx;
415 struct cvmx_iob_dwb_pri_cnt_s cn38xxp2;
416 struct cvmx_iob_dwb_pri_cnt_s cn52xx;
417 struct cvmx_iob_dwb_pri_cnt_s cn52xxp1;
418 struct cvmx_iob_dwb_pri_cnt_s cn56xx;
419 struct cvmx_iob_dwb_pri_cnt_s cn56xxp1;
420 struct cvmx_iob_dwb_pri_cnt_s cn58xx;
421 struct cvmx_iob_dwb_pri_cnt_s cn58xxp1;
422 struct cvmx_iob_dwb_pri_cnt_s cn63xx;
423 struct cvmx_iob_dwb_pri_cnt_s cn63xxp1;
425 typedef union cvmx_iob_dwb_pri_cnt cvmx_iob_dwb_pri_cnt_t;
428 * cvmx_iob_fau_timeout
430 * FAU Timeout = Fetch and Add Unit Tag-Switch Timeout
432 * How many clokc ticks the FAU unit will wait for a tag-switch before timeing out.
435 union cvmx_iob_fau_timeout
438 struct cvmx_iob_fau_timeout_s
440 #if __BYTE_ORDER == __BIG_ENDIAN
441 uint64_t reserved_13_63 : 51;
442 uint64_t tout_enb : 1; /**< The enable for the FAU timeout feature.
443 '1' will enable the timeout, '0' will disable. */
444 uint64_t tout_val : 12; /**< When a tag request arrives from the PP a timer is
445 started associate with that PP. The timer which
446 increments every 256 eclks is compared to TOUT_VAL.
447 When the two are equal the IOB will flag the tag
448 request to complete as a time-out tag operation.
449 The 256 count timer used to increment the PP
450 associated timer is always running so the first
451 increment of the PP associated timer may occur any
452 where within the first 256 eclks. Note that '0'
453 is an illegal value. */
455 uint64_t tout_val : 12;
456 uint64_t tout_enb : 1;
457 uint64_t reserved_13_63 : 51;
460 struct cvmx_iob_fau_timeout_s cn30xx;
461 struct cvmx_iob_fau_timeout_s cn31xx;
462 struct cvmx_iob_fau_timeout_s cn38xx;
463 struct cvmx_iob_fau_timeout_s cn38xxp2;
464 struct cvmx_iob_fau_timeout_s cn50xx;
465 struct cvmx_iob_fau_timeout_s cn52xx;
466 struct cvmx_iob_fau_timeout_s cn52xxp1;
467 struct cvmx_iob_fau_timeout_s cn56xx;
468 struct cvmx_iob_fau_timeout_s cn56xxp1;
469 struct cvmx_iob_fau_timeout_s cn58xx;
470 struct cvmx_iob_fau_timeout_s cn58xxp1;
471 struct cvmx_iob_fau_timeout_s cn63xx;
472 struct cvmx_iob_fau_timeout_s cn63xxp1;
474 typedef union cvmx_iob_fau_timeout cvmx_iob_fau_timeout_t;
477 * cvmx_iob_i2c_pri_cnt
479 * IPD To CMB Store Priority Counter = IPD to CMB Store Priority Counter Enable and Timer Value
481 * Enables and supplies the timeout count for raising the priority of IPD Store access to the CMB.
483 union cvmx_iob_i2c_pri_cnt
486 struct cvmx_iob_i2c_pri_cnt_s
488 #if __BYTE_ORDER == __BIG_ENDIAN
489 uint64_t reserved_16_63 : 48;
490 uint64_t cnt_enb : 1; /**< Enables the raising of CMB access priority
491 when CNT_VAL is reached. */
492 uint64_t cnt_val : 15; /**< Number of core clocks to wait before raising
493 the priority for access to CMB. */
495 uint64_t cnt_val : 15;
496 uint64_t cnt_enb : 1;
497 uint64_t reserved_16_63 : 48;
500 struct cvmx_iob_i2c_pri_cnt_s cn38xx;
501 struct cvmx_iob_i2c_pri_cnt_s cn38xxp2;
502 struct cvmx_iob_i2c_pri_cnt_s cn52xx;
503 struct cvmx_iob_i2c_pri_cnt_s cn52xxp1;
504 struct cvmx_iob_i2c_pri_cnt_s cn56xx;
505 struct cvmx_iob_i2c_pri_cnt_s cn56xxp1;
506 struct cvmx_iob_i2c_pri_cnt_s cn58xx;
507 struct cvmx_iob_i2c_pri_cnt_s cn58xxp1;
508 struct cvmx_iob_i2c_pri_cnt_s cn63xx;
509 struct cvmx_iob_i2c_pri_cnt_s cn63xxp1;
511 typedef union cvmx_iob_i2c_pri_cnt cvmx_iob_i2c_pri_cnt_t;
514 * cvmx_iob_inb_control_match
516 * IOB_INB_CONTROL_MATCH = IOB Inbound Control Match
518 * Match pattern for the inbound control to set the INB_MATCH_BIT. PASS-2 Register
520 union cvmx_iob_inb_control_match
523 struct cvmx_iob_inb_control_match_s
525 #if __BYTE_ORDER == __BIG_ENDIAN
526 uint64_t reserved_29_63 : 35;
527 uint64_t mask : 8; /**< Pattern to match on the inbound NCB. */
528 uint64_t opc : 4; /**< Pattern to match on the inbound NCB. */
529 uint64_t dst : 9; /**< Pattern to match on the inbound NCB. */
530 uint64_t src : 8; /**< Pattern to match on the inbound NCB. */
536 uint64_t reserved_29_63 : 35;
539 struct cvmx_iob_inb_control_match_s cn30xx;
540 struct cvmx_iob_inb_control_match_s cn31xx;
541 struct cvmx_iob_inb_control_match_s cn38xx;
542 struct cvmx_iob_inb_control_match_s cn38xxp2;
543 struct cvmx_iob_inb_control_match_s cn50xx;
544 struct cvmx_iob_inb_control_match_s cn52xx;
545 struct cvmx_iob_inb_control_match_s cn52xxp1;
546 struct cvmx_iob_inb_control_match_s cn56xx;
547 struct cvmx_iob_inb_control_match_s cn56xxp1;
548 struct cvmx_iob_inb_control_match_s cn58xx;
549 struct cvmx_iob_inb_control_match_s cn58xxp1;
550 struct cvmx_iob_inb_control_match_s cn63xx;
551 struct cvmx_iob_inb_control_match_s cn63xxp1;
553 typedef union cvmx_iob_inb_control_match cvmx_iob_inb_control_match_t;
556 * cvmx_iob_inb_control_match_enb
558 * IOB_INB_CONTROL_MATCH_ENB = IOB Inbound Control Match Enable
560 * Enables the match of the corresponding bit in the IOB_INB_CONTROL_MATCH reister. PASS-2 Register
562 union cvmx_iob_inb_control_match_enb
565 struct cvmx_iob_inb_control_match_enb_s
567 #if __BYTE_ORDER == __BIG_ENDIAN
568 uint64_t reserved_29_63 : 35;
569 uint64_t mask : 8; /**< Pattern to match on the inbound NCB. */
570 uint64_t opc : 4; /**< Pattern to match on the inbound NCB. */
571 uint64_t dst : 9; /**< Pattern to match on the inbound NCB. */
572 uint64_t src : 8; /**< Pattern to match on the inbound NCB. */
578 uint64_t reserved_29_63 : 35;
581 struct cvmx_iob_inb_control_match_enb_s cn30xx;
582 struct cvmx_iob_inb_control_match_enb_s cn31xx;
583 struct cvmx_iob_inb_control_match_enb_s cn38xx;
584 struct cvmx_iob_inb_control_match_enb_s cn38xxp2;
585 struct cvmx_iob_inb_control_match_enb_s cn50xx;
586 struct cvmx_iob_inb_control_match_enb_s cn52xx;
587 struct cvmx_iob_inb_control_match_enb_s cn52xxp1;
588 struct cvmx_iob_inb_control_match_enb_s cn56xx;
589 struct cvmx_iob_inb_control_match_enb_s cn56xxp1;
590 struct cvmx_iob_inb_control_match_enb_s cn58xx;
591 struct cvmx_iob_inb_control_match_enb_s cn58xxp1;
592 struct cvmx_iob_inb_control_match_enb_s cn63xx;
593 struct cvmx_iob_inb_control_match_enb_s cn63xxp1;
595 typedef union cvmx_iob_inb_control_match_enb cvmx_iob_inb_control_match_enb_t;
598 * cvmx_iob_inb_data_match
600 * IOB_INB_DATA_MATCH = IOB Inbound Data Match
602 * Match pattern for the inbound data to set the INB_MATCH_BIT. PASS-2 Register
604 union cvmx_iob_inb_data_match
607 struct cvmx_iob_inb_data_match_s
609 #if __BYTE_ORDER == __BIG_ENDIAN
610 uint64_t data : 64; /**< Pattern to match on the inbound NCB. */
615 struct cvmx_iob_inb_data_match_s cn30xx;
616 struct cvmx_iob_inb_data_match_s cn31xx;
617 struct cvmx_iob_inb_data_match_s cn38xx;
618 struct cvmx_iob_inb_data_match_s cn38xxp2;
619 struct cvmx_iob_inb_data_match_s cn50xx;
620 struct cvmx_iob_inb_data_match_s cn52xx;
621 struct cvmx_iob_inb_data_match_s cn52xxp1;
622 struct cvmx_iob_inb_data_match_s cn56xx;
623 struct cvmx_iob_inb_data_match_s cn56xxp1;
624 struct cvmx_iob_inb_data_match_s cn58xx;
625 struct cvmx_iob_inb_data_match_s cn58xxp1;
626 struct cvmx_iob_inb_data_match_s cn63xx;
627 struct cvmx_iob_inb_data_match_s cn63xxp1;
629 typedef union cvmx_iob_inb_data_match cvmx_iob_inb_data_match_t;
632 * cvmx_iob_inb_data_match_enb
634 * IOB_INB_DATA_MATCH_ENB = IOB Inbound Data Match Enable
636 * Enables the match of the corresponding bit in the IOB_INB_DATA_MATCH reister. PASS-2 Register
638 union cvmx_iob_inb_data_match_enb
641 struct cvmx_iob_inb_data_match_enb_s
643 #if __BYTE_ORDER == __BIG_ENDIAN
644 uint64_t data : 64; /**< Bit to enable match of. */
649 struct cvmx_iob_inb_data_match_enb_s cn30xx;
650 struct cvmx_iob_inb_data_match_enb_s cn31xx;
651 struct cvmx_iob_inb_data_match_enb_s cn38xx;
652 struct cvmx_iob_inb_data_match_enb_s cn38xxp2;
653 struct cvmx_iob_inb_data_match_enb_s cn50xx;
654 struct cvmx_iob_inb_data_match_enb_s cn52xx;
655 struct cvmx_iob_inb_data_match_enb_s cn52xxp1;
656 struct cvmx_iob_inb_data_match_enb_s cn56xx;
657 struct cvmx_iob_inb_data_match_enb_s cn56xxp1;
658 struct cvmx_iob_inb_data_match_enb_s cn58xx;
659 struct cvmx_iob_inb_data_match_enb_s cn58xxp1;
660 struct cvmx_iob_inb_data_match_enb_s cn63xx;
661 struct cvmx_iob_inb_data_match_enb_s cn63xxp1;
663 typedef union cvmx_iob_inb_data_match_enb cvmx_iob_inb_data_match_enb_t;
668 * IOB_INT_ENB = IOB's Interrupt Enable
670 * The IOB's interrupt enable register. This is a PASS-2 register.
672 union cvmx_iob_int_enb
675 struct cvmx_iob_int_enb_s
677 #if __BYTE_ORDER == __BIG_ENDIAN
678 uint64_t reserved_6_63 : 58;
679 uint64_t p_dat : 1; /**< When set (1) and bit 5 of the IOB_INT_SUM
680 register is asserted the IOB will assert an
682 uint64_t np_dat : 1; /**< When set (1) and bit 4 of the IOB_INT_SUM
683 register is asserted the IOB will assert an
685 uint64_t p_eop : 1; /**< When set (1) and bit 3 of the IOB_INT_SUM
686 register is asserted the IOB will assert an
688 uint64_t p_sop : 1; /**< When set (1) and bit 2 of the IOB_INT_SUM
689 register is asserted the IOB will assert an
691 uint64_t np_eop : 1; /**< When set (1) and bit 1 of the IOB_INT_SUM
692 register is asserted the IOB will assert an
694 uint64_t np_sop : 1; /**< When set (1) and bit 0 of the IOB_INT_SUM
695 register is asserted the IOB will assert an
704 uint64_t reserved_6_63 : 58;
707 struct cvmx_iob_int_enb_cn30xx
709 #if __BYTE_ORDER == __BIG_ENDIAN
710 uint64_t reserved_4_63 : 60;
711 uint64_t p_eop : 1; /**< When set (1) and bit 3 of the IOB_INT_SUM
712 register is asserted the IOB will assert an
714 uint64_t p_sop : 1; /**< When set (1) and bit 2 of the IOB_INT_SUM
715 register is asserted the IOB will assert an
717 uint64_t np_eop : 1; /**< When set (1) and bit 1 of the IOB_INT_SUM
718 register is asserted the IOB will assert an
720 uint64_t np_sop : 1; /**< When set (1) and bit 0 of the IOB_INT_SUM
721 register is asserted the IOB will assert an
728 uint64_t reserved_4_63 : 60;
731 struct cvmx_iob_int_enb_cn30xx cn31xx;
732 struct cvmx_iob_int_enb_cn30xx cn38xx;
733 struct cvmx_iob_int_enb_cn30xx cn38xxp2;
734 struct cvmx_iob_int_enb_s cn50xx;
735 struct cvmx_iob_int_enb_s cn52xx;
736 struct cvmx_iob_int_enb_s cn52xxp1;
737 struct cvmx_iob_int_enb_s cn56xx;
738 struct cvmx_iob_int_enb_s cn56xxp1;
739 struct cvmx_iob_int_enb_s cn58xx;
740 struct cvmx_iob_int_enb_s cn58xxp1;
741 struct cvmx_iob_int_enb_s cn63xx;
742 struct cvmx_iob_int_enb_s cn63xxp1;
744 typedef union cvmx_iob_int_enb cvmx_iob_int_enb_t;
749 * IOB_INT_SUM = IOB's Interrupt Summary Register
751 * Contains the diffrent interrupt summary bits of the IOB. This is a PASS-2 register.
753 union cvmx_iob_int_sum
756 struct cvmx_iob_int_sum_s
758 #if __BYTE_ORDER == __BIG_ENDIAN
759 uint64_t reserved_6_63 : 58;
760 uint64_t p_dat : 1; /**< Set when a data arrives before a SOP for the same
761 port for a passthrough packet.
762 The first detected error associated with bits [5:0]
763 of this register will only be set here. A new bit
764 can be set when the previous reported bit is cleared. */
765 uint64_t np_dat : 1; /**< Set when a data arrives before a SOP for the same
766 port for a non-passthrough packet.
767 The first detected error associated with bits [5:0]
768 of this register will only be set here. A new bit
769 can be set when the previous reported bit is cleared. */
770 uint64_t p_eop : 1; /**< Set when a EOP is followed by an EOP for the same
771 port for a passthrough packet.
772 The first detected error associated with bits [5:0]
773 of this register will only be set here. A new bit
774 can be set when the previous reported bit is cleared. */
775 uint64_t p_sop : 1; /**< Set when a SOP is followed by an SOP for the same
776 port for a passthrough packet.
777 The first detected error associated with bits [5:0]
778 of this register will only be set here. A new bit
779 can be set when the previous reported bit is cleared. */
780 uint64_t np_eop : 1; /**< Set when a EOP is followed by an EOP for the same
781 port for a non-passthrough packet.
782 The first detected error associated with bits [5:0]
783 of this register will only be set here. A new bit
784 can be set when the previous reported bit is cleared. */
785 uint64_t np_sop : 1; /**< Set when a SOP is followed by an SOP for the same
786 port for a non-passthrough packet.
787 The first detected error associated with bits [5:0]
788 of this register will only be set here. A new bit
789 can be set when the previous reported bit is cleared. */
797 uint64_t reserved_6_63 : 58;
800 struct cvmx_iob_int_sum_cn30xx
802 #if __BYTE_ORDER == __BIG_ENDIAN
803 uint64_t reserved_4_63 : 60;
804 uint64_t p_eop : 1; /**< Set when a EOP is followed by an EOP for the same
805 port for a passthrough packet.
806 The first detected error associated with bits [3:0]
807 of this register will only be set here. A new bit
808 can be set when the previous reported bit is cleared. */
809 uint64_t p_sop : 1; /**< Set when a SOP is followed by an SOP for the same
810 port for a passthrough packet.
811 The first detected error associated with bits [3:0]
812 of this register will only be set here. A new bit
813 can be set when the previous reported bit is cleared. */
814 uint64_t np_eop : 1; /**< Set when a EOP is followed by an EOP for the same
815 port for a non-passthrough packet.
816 The first detected error associated with bits [3:0]
817 of this register will only be set here. A new bit
818 can be set when the previous reported bit is cleared. */
819 uint64_t np_sop : 1; /**< Set when a SOP is followed by an SOP for the same
820 port for a non-passthrough packet.
821 The first detected error associated with bits [3:0]
822 of this register will only be set here. A new bit
823 can be set when the previous reported bit is cleared. */
829 uint64_t reserved_4_63 : 60;
832 struct cvmx_iob_int_sum_cn30xx cn31xx;
833 struct cvmx_iob_int_sum_cn30xx cn38xx;
834 struct cvmx_iob_int_sum_cn30xx cn38xxp2;
835 struct cvmx_iob_int_sum_s cn50xx;
836 struct cvmx_iob_int_sum_s cn52xx;
837 struct cvmx_iob_int_sum_s cn52xxp1;
838 struct cvmx_iob_int_sum_s cn56xx;
839 struct cvmx_iob_int_sum_s cn56xxp1;
840 struct cvmx_iob_int_sum_s cn58xx;
841 struct cvmx_iob_int_sum_s cn58xxp1;
842 struct cvmx_iob_int_sum_s cn63xx;
843 struct cvmx_iob_int_sum_s cn63xxp1;
845 typedef union cvmx_iob_int_sum cvmx_iob_int_sum_t;
848 * cvmx_iob_n2c_l2c_pri_cnt
850 * NCB To CMB L2C Priority Counter = NCB to CMB L2C Priority Counter Enable and Timer Value
852 * Enables and supplies the timeout count for raising the priority of NCB Store/Load access to the CMB.
854 union cvmx_iob_n2c_l2c_pri_cnt
857 struct cvmx_iob_n2c_l2c_pri_cnt_s
859 #if __BYTE_ORDER == __BIG_ENDIAN
860 uint64_t reserved_16_63 : 48;
861 uint64_t cnt_enb : 1; /**< Enables the raising of CMB access priority
862 when CNT_VAL is reached. */
863 uint64_t cnt_val : 15; /**< Number of core clocks to wait before raising
864 the priority for access to CMB. */
866 uint64_t cnt_val : 15;
867 uint64_t cnt_enb : 1;
868 uint64_t reserved_16_63 : 48;
871 struct cvmx_iob_n2c_l2c_pri_cnt_s cn38xx;
872 struct cvmx_iob_n2c_l2c_pri_cnt_s cn38xxp2;
873 struct cvmx_iob_n2c_l2c_pri_cnt_s cn52xx;
874 struct cvmx_iob_n2c_l2c_pri_cnt_s cn52xxp1;
875 struct cvmx_iob_n2c_l2c_pri_cnt_s cn56xx;
876 struct cvmx_iob_n2c_l2c_pri_cnt_s cn56xxp1;
877 struct cvmx_iob_n2c_l2c_pri_cnt_s cn58xx;
878 struct cvmx_iob_n2c_l2c_pri_cnt_s cn58xxp1;
879 struct cvmx_iob_n2c_l2c_pri_cnt_s cn63xx;
880 struct cvmx_iob_n2c_l2c_pri_cnt_s cn63xxp1;
882 typedef union cvmx_iob_n2c_l2c_pri_cnt cvmx_iob_n2c_l2c_pri_cnt_t;
885 * cvmx_iob_n2c_rsp_pri_cnt
887 * NCB To CMB Response Priority Counter = NCB to CMB Response Priority Counter Enable and Timer Value
889 * Enables and supplies the timeout count for raising the priority of NCB Responses access to the CMB.
891 union cvmx_iob_n2c_rsp_pri_cnt
894 struct cvmx_iob_n2c_rsp_pri_cnt_s
896 #if __BYTE_ORDER == __BIG_ENDIAN
897 uint64_t reserved_16_63 : 48;
898 uint64_t cnt_enb : 1; /**< Enables the raising of CMB access priority
899 when CNT_VAL is reached. */
900 uint64_t cnt_val : 15; /**< Number of core clocks to wait before raising
901 the priority for access to CMB. */
903 uint64_t cnt_val : 15;
904 uint64_t cnt_enb : 1;
905 uint64_t reserved_16_63 : 48;
908 struct cvmx_iob_n2c_rsp_pri_cnt_s cn38xx;
909 struct cvmx_iob_n2c_rsp_pri_cnt_s cn38xxp2;
910 struct cvmx_iob_n2c_rsp_pri_cnt_s cn52xx;
911 struct cvmx_iob_n2c_rsp_pri_cnt_s cn52xxp1;
912 struct cvmx_iob_n2c_rsp_pri_cnt_s cn56xx;
913 struct cvmx_iob_n2c_rsp_pri_cnt_s cn56xxp1;
914 struct cvmx_iob_n2c_rsp_pri_cnt_s cn58xx;
915 struct cvmx_iob_n2c_rsp_pri_cnt_s cn58xxp1;
916 struct cvmx_iob_n2c_rsp_pri_cnt_s cn63xx;
917 struct cvmx_iob_n2c_rsp_pri_cnt_s cn63xxp1;
919 typedef union cvmx_iob_n2c_rsp_pri_cnt cvmx_iob_n2c_rsp_pri_cnt_t;
922 * cvmx_iob_outb_com_pri_cnt
924 * Commit To NCB Priority Counter = Commit to NCB Priority Counter Enable and Timer Value
926 * Enables and supplies the timeout count for raising the priority of Commit request to the Outbound NCB.
928 union cvmx_iob_outb_com_pri_cnt
931 struct cvmx_iob_outb_com_pri_cnt_s
933 #if __BYTE_ORDER == __BIG_ENDIAN
934 uint64_t reserved_16_63 : 48;
935 uint64_t cnt_enb : 1; /**< Enables the raising of NCB access priority
936 when CNT_VAL is reached. */
937 uint64_t cnt_val : 15; /**< Number of core clocks to wait before raising
938 the priority for access to NCB. */
940 uint64_t cnt_val : 15;
941 uint64_t cnt_enb : 1;
942 uint64_t reserved_16_63 : 48;
945 struct cvmx_iob_outb_com_pri_cnt_s cn38xx;
946 struct cvmx_iob_outb_com_pri_cnt_s cn38xxp2;
947 struct cvmx_iob_outb_com_pri_cnt_s cn52xx;
948 struct cvmx_iob_outb_com_pri_cnt_s cn52xxp1;
949 struct cvmx_iob_outb_com_pri_cnt_s cn56xx;
950 struct cvmx_iob_outb_com_pri_cnt_s cn56xxp1;
951 struct cvmx_iob_outb_com_pri_cnt_s cn58xx;
952 struct cvmx_iob_outb_com_pri_cnt_s cn58xxp1;
953 struct cvmx_iob_outb_com_pri_cnt_s cn63xx;
954 struct cvmx_iob_outb_com_pri_cnt_s cn63xxp1;
956 typedef union cvmx_iob_outb_com_pri_cnt cvmx_iob_outb_com_pri_cnt_t;
959 * cvmx_iob_outb_control_match
961 * IOB_OUTB_CONTROL_MATCH = IOB Outbound Control Match
963 * Match pattern for the outbound control to set the OUTB_MATCH_BIT. PASS-2 Register
965 union cvmx_iob_outb_control_match
968 struct cvmx_iob_outb_control_match_s
970 #if __BYTE_ORDER == __BIG_ENDIAN
971 uint64_t reserved_26_63 : 38;
972 uint64_t mask : 8; /**< Pattern to match on the outbound NCB. */
973 uint64_t eot : 1; /**< Pattern to match on the outbound NCB. */
974 uint64_t dst : 8; /**< Pattern to match on the outbound NCB. */
975 uint64_t src : 9; /**< Pattern to match on the outbound NCB. */
981 uint64_t reserved_26_63 : 38;
984 struct cvmx_iob_outb_control_match_s cn30xx;
985 struct cvmx_iob_outb_control_match_s cn31xx;
986 struct cvmx_iob_outb_control_match_s cn38xx;
987 struct cvmx_iob_outb_control_match_s cn38xxp2;
988 struct cvmx_iob_outb_control_match_s cn50xx;
989 struct cvmx_iob_outb_control_match_s cn52xx;
990 struct cvmx_iob_outb_control_match_s cn52xxp1;
991 struct cvmx_iob_outb_control_match_s cn56xx;
992 struct cvmx_iob_outb_control_match_s cn56xxp1;
993 struct cvmx_iob_outb_control_match_s cn58xx;
994 struct cvmx_iob_outb_control_match_s cn58xxp1;
995 struct cvmx_iob_outb_control_match_s cn63xx;
996 struct cvmx_iob_outb_control_match_s cn63xxp1;
998 typedef union cvmx_iob_outb_control_match cvmx_iob_outb_control_match_t;
1001 * cvmx_iob_outb_control_match_enb
1003 * IOB_OUTB_CONTROL_MATCH_ENB = IOB Outbound Control Match Enable
1005 * Enables the match of the corresponding bit in the IOB_OUTB_CONTROL_MATCH reister. PASS-2 Register
1007 union cvmx_iob_outb_control_match_enb
1010 struct cvmx_iob_outb_control_match_enb_s
1012 #if __BYTE_ORDER == __BIG_ENDIAN
1013 uint64_t reserved_26_63 : 38;
1014 uint64_t mask : 8; /**< Pattern to match on the outbound NCB. */
1015 uint64_t eot : 1; /**< Pattern to match on the outbound NCB. */
1016 uint64_t dst : 8; /**< Pattern to match on the outbound NCB. */
1017 uint64_t src : 9; /**< Pattern to match on the outbound NCB. */
1023 uint64_t reserved_26_63 : 38;
1026 struct cvmx_iob_outb_control_match_enb_s cn30xx;
1027 struct cvmx_iob_outb_control_match_enb_s cn31xx;
1028 struct cvmx_iob_outb_control_match_enb_s cn38xx;
1029 struct cvmx_iob_outb_control_match_enb_s cn38xxp2;
1030 struct cvmx_iob_outb_control_match_enb_s cn50xx;
1031 struct cvmx_iob_outb_control_match_enb_s cn52xx;
1032 struct cvmx_iob_outb_control_match_enb_s cn52xxp1;
1033 struct cvmx_iob_outb_control_match_enb_s cn56xx;
1034 struct cvmx_iob_outb_control_match_enb_s cn56xxp1;
1035 struct cvmx_iob_outb_control_match_enb_s cn58xx;
1036 struct cvmx_iob_outb_control_match_enb_s cn58xxp1;
1037 struct cvmx_iob_outb_control_match_enb_s cn63xx;
1038 struct cvmx_iob_outb_control_match_enb_s cn63xxp1;
1040 typedef union cvmx_iob_outb_control_match_enb cvmx_iob_outb_control_match_enb_t;
1043 * cvmx_iob_outb_data_match
1045 * IOB_OUTB_DATA_MATCH = IOB Outbound Data Match
1047 * Match pattern for the outbound data to set the OUTB_MATCH_BIT. PASS-2 Register
1049 union cvmx_iob_outb_data_match
1052 struct cvmx_iob_outb_data_match_s
1054 #if __BYTE_ORDER == __BIG_ENDIAN
1055 uint64_t data : 64; /**< Pattern to match on the outbound NCB. */
1060 struct cvmx_iob_outb_data_match_s cn30xx;
1061 struct cvmx_iob_outb_data_match_s cn31xx;
1062 struct cvmx_iob_outb_data_match_s cn38xx;
1063 struct cvmx_iob_outb_data_match_s cn38xxp2;
1064 struct cvmx_iob_outb_data_match_s cn50xx;
1065 struct cvmx_iob_outb_data_match_s cn52xx;
1066 struct cvmx_iob_outb_data_match_s cn52xxp1;
1067 struct cvmx_iob_outb_data_match_s cn56xx;
1068 struct cvmx_iob_outb_data_match_s cn56xxp1;
1069 struct cvmx_iob_outb_data_match_s cn58xx;
1070 struct cvmx_iob_outb_data_match_s cn58xxp1;
1071 struct cvmx_iob_outb_data_match_s cn63xx;
1072 struct cvmx_iob_outb_data_match_s cn63xxp1;
1074 typedef union cvmx_iob_outb_data_match cvmx_iob_outb_data_match_t;
1077 * cvmx_iob_outb_data_match_enb
1079 * IOB_OUTB_DATA_MATCH_ENB = IOB Outbound Data Match Enable
1081 * Enables the match of the corresponding bit in the IOB_OUTB_DATA_MATCH reister. PASS-2 Register
1083 union cvmx_iob_outb_data_match_enb
1086 struct cvmx_iob_outb_data_match_enb_s
1088 #if __BYTE_ORDER == __BIG_ENDIAN
1089 uint64_t data : 64; /**< Bit to enable match of. */
1094 struct cvmx_iob_outb_data_match_enb_s cn30xx;
1095 struct cvmx_iob_outb_data_match_enb_s cn31xx;
1096 struct cvmx_iob_outb_data_match_enb_s cn38xx;
1097 struct cvmx_iob_outb_data_match_enb_s cn38xxp2;
1098 struct cvmx_iob_outb_data_match_enb_s cn50xx;
1099 struct cvmx_iob_outb_data_match_enb_s cn52xx;
1100 struct cvmx_iob_outb_data_match_enb_s cn52xxp1;
1101 struct cvmx_iob_outb_data_match_enb_s cn56xx;
1102 struct cvmx_iob_outb_data_match_enb_s cn56xxp1;
1103 struct cvmx_iob_outb_data_match_enb_s cn58xx;
1104 struct cvmx_iob_outb_data_match_enb_s cn58xxp1;
1105 struct cvmx_iob_outb_data_match_enb_s cn63xx;
1106 struct cvmx_iob_outb_data_match_enb_s cn63xxp1;
1108 typedef union cvmx_iob_outb_data_match_enb cvmx_iob_outb_data_match_enb_t;
1111 * cvmx_iob_outb_fpa_pri_cnt
1113 * FPA To NCB Priority Counter = FPA Returns to NCB Priority Counter Enable and Timer Value
1115 * Enables and supplies the timeout count for raising the priority of FPA Rreturn Page request to the Outbound NCB.
1117 union cvmx_iob_outb_fpa_pri_cnt
1120 struct cvmx_iob_outb_fpa_pri_cnt_s
1122 #if __BYTE_ORDER == __BIG_ENDIAN
1123 uint64_t reserved_16_63 : 48;
1124 uint64_t cnt_enb : 1; /**< Enables the raising of NCB access priority
1125 when CNT_VAL is reached. */
1126 uint64_t cnt_val : 15; /**< Number of core clocks to wait before raising
1127 the priority for access to NCB. */
1129 uint64_t cnt_val : 15;
1130 uint64_t cnt_enb : 1;
1131 uint64_t reserved_16_63 : 48;
1134 struct cvmx_iob_outb_fpa_pri_cnt_s cn38xx;
1135 struct cvmx_iob_outb_fpa_pri_cnt_s cn38xxp2;
1136 struct cvmx_iob_outb_fpa_pri_cnt_s cn52xx;
1137 struct cvmx_iob_outb_fpa_pri_cnt_s cn52xxp1;
1138 struct cvmx_iob_outb_fpa_pri_cnt_s cn56xx;
1139 struct cvmx_iob_outb_fpa_pri_cnt_s cn56xxp1;
1140 struct cvmx_iob_outb_fpa_pri_cnt_s cn58xx;
1141 struct cvmx_iob_outb_fpa_pri_cnt_s cn58xxp1;
1142 struct cvmx_iob_outb_fpa_pri_cnt_s cn63xx;
1143 struct cvmx_iob_outb_fpa_pri_cnt_s cn63xxp1;
1145 typedef union cvmx_iob_outb_fpa_pri_cnt cvmx_iob_outb_fpa_pri_cnt_t;
1148 * cvmx_iob_outb_req_pri_cnt
1150 * Request To NCB Priority Counter = Request to NCB Priority Counter Enable and Timer Value
1152 * Enables and supplies the timeout count for raising the priority of Request transfers to the Outbound NCB.
1154 union cvmx_iob_outb_req_pri_cnt
1157 struct cvmx_iob_outb_req_pri_cnt_s
1159 #if __BYTE_ORDER == __BIG_ENDIAN
1160 uint64_t reserved_16_63 : 48;
1161 uint64_t cnt_enb : 1; /**< Enables the raising of NCB access priority
1162 when CNT_VAL is reached. */
1163 uint64_t cnt_val : 15; /**< Number of core clocks to wait before raising
1164 the priority for access to NCB. */
1166 uint64_t cnt_val : 15;
1167 uint64_t cnt_enb : 1;
1168 uint64_t reserved_16_63 : 48;
1171 struct cvmx_iob_outb_req_pri_cnt_s cn38xx;
1172 struct cvmx_iob_outb_req_pri_cnt_s cn38xxp2;
1173 struct cvmx_iob_outb_req_pri_cnt_s cn52xx;
1174 struct cvmx_iob_outb_req_pri_cnt_s cn52xxp1;
1175 struct cvmx_iob_outb_req_pri_cnt_s cn56xx;
1176 struct cvmx_iob_outb_req_pri_cnt_s cn56xxp1;
1177 struct cvmx_iob_outb_req_pri_cnt_s cn58xx;
1178 struct cvmx_iob_outb_req_pri_cnt_s cn58xxp1;
1179 struct cvmx_iob_outb_req_pri_cnt_s cn63xx;
1180 struct cvmx_iob_outb_req_pri_cnt_s cn63xxp1;
1182 typedef union cvmx_iob_outb_req_pri_cnt cvmx_iob_outb_req_pri_cnt_t;
1185 * cvmx_iob_p2c_req_pri_cnt
1187 * PKO To CMB Response Priority Counter = PKO to CMB Response Priority Counter Enable and Timer Value
1189 * Enables and supplies the timeout count for raising the priority of PKO Load access to the CMB.
1191 union cvmx_iob_p2c_req_pri_cnt
1194 struct cvmx_iob_p2c_req_pri_cnt_s
1196 #if __BYTE_ORDER == __BIG_ENDIAN
1197 uint64_t reserved_16_63 : 48;
1198 uint64_t cnt_enb : 1; /**< Enables the raising of CMB access priority
1199 when CNT_VAL is reached. */
1200 uint64_t cnt_val : 15; /**< Number of core clocks to wait before raising
1201 the priority for access to CMB. */
1203 uint64_t cnt_val : 15;
1204 uint64_t cnt_enb : 1;
1205 uint64_t reserved_16_63 : 48;
1208 struct cvmx_iob_p2c_req_pri_cnt_s cn38xx;
1209 struct cvmx_iob_p2c_req_pri_cnt_s cn38xxp2;
1210 struct cvmx_iob_p2c_req_pri_cnt_s cn52xx;
1211 struct cvmx_iob_p2c_req_pri_cnt_s cn52xxp1;
1212 struct cvmx_iob_p2c_req_pri_cnt_s cn56xx;
1213 struct cvmx_iob_p2c_req_pri_cnt_s cn56xxp1;
1214 struct cvmx_iob_p2c_req_pri_cnt_s cn58xx;
1215 struct cvmx_iob_p2c_req_pri_cnt_s cn58xxp1;
1216 struct cvmx_iob_p2c_req_pri_cnt_s cn63xx;
1217 struct cvmx_iob_p2c_req_pri_cnt_s cn63xxp1;
1219 typedef union cvmx_iob_p2c_req_pri_cnt cvmx_iob_p2c_req_pri_cnt_t;
1224 * IOB_PKT_ERR = IOB Packet Error Register
1226 * Provides status about the failing packet recevie error. This is a PASS-2 register.
1228 union cvmx_iob_pkt_err
1231 struct cvmx_iob_pkt_err_s
1233 #if __BYTE_ORDER == __BIG_ENDIAN
1234 uint64_t reserved_12_63 : 52;
1235 uint64_t vport : 6; /**< When IOB_INT_SUM[3:0] bit is set, this field
1236 latches the failing vport associate with the
1237 IOB_INT_SUM[3:0] bit set. */
1238 uint64_t port : 6; /**< When IOB_INT_SUM[3:0] bit is set, this field
1239 latches the failing port associate with the
1240 IOB_INT_SUM[3:0] bit set. */
1244 uint64_t reserved_12_63 : 52;
1247 struct cvmx_iob_pkt_err_cn30xx
1249 #if __BYTE_ORDER == __BIG_ENDIAN
1250 uint64_t reserved_6_63 : 58;
1251 uint64_t port : 6; /**< When IOB_INT_SUM[3:0] bit is set, this field
1252 latches the failing port associate with the
1253 IOB_INT_SUM[3:0] bit set. */
1256 uint64_t reserved_6_63 : 58;
1259 struct cvmx_iob_pkt_err_cn30xx cn31xx;
1260 struct cvmx_iob_pkt_err_cn30xx cn38xx;
1261 struct cvmx_iob_pkt_err_cn30xx cn38xxp2;
1262 struct cvmx_iob_pkt_err_cn30xx cn50xx;
1263 struct cvmx_iob_pkt_err_cn30xx cn52xx;
1264 struct cvmx_iob_pkt_err_cn30xx cn52xxp1;
1265 struct cvmx_iob_pkt_err_cn30xx cn56xx;
1266 struct cvmx_iob_pkt_err_cn30xx cn56xxp1;
1267 struct cvmx_iob_pkt_err_cn30xx cn58xx;
1268 struct cvmx_iob_pkt_err_cn30xx cn58xxp1;
1269 struct cvmx_iob_pkt_err_s cn63xx;
1270 struct cvmx_iob_pkt_err_s cn63xxp1;
1272 typedef union cvmx_iob_pkt_err cvmx_iob_pkt_err_t;
1275 * cvmx_iob_to_cmb_credits
1277 * IOB_TO_CMB_CREDITS = IOB To CMB Credits
1279 * Controls the number of reads and writes that may be outstanding to the L2C (via the CMB).
1281 union cvmx_iob_to_cmb_credits
1284 struct cvmx_iob_to_cmb_credits_s
1286 #if __BYTE_ORDER == __BIG_ENDIAN
1287 uint64_t reserved_9_63 : 55;
1288 uint64_t pko_rd : 3; /**< Number of PKO reads that can be out to L2C where
1290 uint64_t ncb_rd : 3; /**< Number of NCB reads that can be out to L2C where
1292 uint64_t ncb_wr : 3; /**< Number of NCB/PKI writes that can be out to L2C
1293 where 0 == 8-credits. */
1295 uint64_t ncb_wr : 3;
1296 uint64_t ncb_rd : 3;
1297 uint64_t pko_rd : 3;
1298 uint64_t reserved_9_63 : 55;
1301 struct cvmx_iob_to_cmb_credits_s cn52xx;
1302 struct cvmx_iob_to_cmb_credits_s cn63xx;
1303 struct cvmx_iob_to_cmb_credits_s cn63xxp1;
1305 typedef union cvmx_iob_to_cmb_credits cvmx_iob_to_cmb_credits_t;