]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - sys/contrib/octeon-sdk/cvmx-iob-defs.h
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.2.git] / sys / contrib / octeon-sdk / cvmx-iob-defs.h
1 /***********************license start***************
2  * Copyright (c) 2003-2012  Cavium Inc. (support@cavium.com). All rights
3  * reserved.
4  *
5  *
6  * Redistribution and use in source and binary forms, with or without
7  * modification, are permitted provided that the following conditions are
8  * met:
9  *
10  *   * Redistributions of source code must retain the above copyright
11  *     notice, this list of conditions and the following disclaimer.
12  *
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.
17
18  *   * Neither the name of Cavium Inc. nor the names of
19  *     its contributors may be used to endorse or promote products
20  *     derived from this software without specific prior written
21  *     permission.
22
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
26  * countries.
27
28  * TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
29  * AND WITH ALL FAULTS AND CAVIUM INC. 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**************************************/
39
40
41 /**
42  * cvmx-iob-defs.h
43  *
44  * Configuration and status register (CSR) type definitions for
45  * Octeon iob.
46  *
47  * This file is auto generated. Do not edit.
48  *
49  * <hr>$Revision$<hr>
50  *
51  */
52 #ifndef __CVMX_IOB_DEFS_H__
53 #define __CVMX_IOB_DEFS_H__
54
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)
60 {
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_CN61XX) || OCTEON_IS_MODEL(OCTEON_CN63XX) || OCTEON_IS_MODEL(OCTEON_CN66XX) || OCTEON_IS_MODEL(OCTEON_CNF71XX)))
62                 cvmx_warn("CVMX_IOB_DWB_PRI_CNT not supported on this chip\n");
63         return CVMX_ADD_IO_SEG(0x00011800F0000028ull);
64 }
65 #else
66 #define CVMX_IOB_DWB_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000028ull))
67 #endif
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)
72 {
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_CN61XX) || OCTEON_IS_MODEL(OCTEON_CN63XX) || OCTEON_IS_MODEL(OCTEON_CN66XX) || OCTEON_IS_MODEL(OCTEON_CNF71XX)))
74                 cvmx_warn("CVMX_IOB_I2C_PRI_CNT not supported on this chip\n");
75         return CVMX_ADD_IO_SEG(0x00011800F0000010ull);
76 }
77 #else
78 #define CVMX_IOB_I2C_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000010ull))
79 #endif
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)
89 {
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_CN61XX) || OCTEON_IS_MODEL(OCTEON_CN63XX) || OCTEON_IS_MODEL(OCTEON_CN66XX) || OCTEON_IS_MODEL(OCTEON_CNF71XX)))
91                 cvmx_warn("CVMX_IOB_N2C_L2C_PRI_CNT not supported on this chip\n");
92         return CVMX_ADD_IO_SEG(0x00011800F0000020ull);
93 }
94 #else
95 #define CVMX_IOB_N2C_L2C_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000020ull))
96 #endif
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)
100 {
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_CN61XX) || OCTEON_IS_MODEL(OCTEON_CN63XX) || OCTEON_IS_MODEL(OCTEON_CN66XX) || OCTEON_IS_MODEL(OCTEON_CNF71XX)))
102                 cvmx_warn("CVMX_IOB_N2C_RSP_PRI_CNT not supported on this chip\n");
103         return CVMX_ADD_IO_SEG(0x00011800F0000008ull);
104 }
105 #else
106 #define CVMX_IOB_N2C_RSP_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000008ull))
107 #endif
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)
111 {
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_CN61XX) || OCTEON_IS_MODEL(OCTEON_CN63XX) || OCTEON_IS_MODEL(OCTEON_CN66XX) || OCTEON_IS_MODEL(OCTEON_CN68XX) || OCTEON_IS_MODEL(OCTEON_CNF71XX)))
113                 cvmx_warn("CVMX_IOB_OUTB_COM_PRI_CNT not supported on this chip\n");
114         return CVMX_ADD_IO_SEG(0x00011800F0000040ull);
115 }
116 #else
117 #define CVMX_IOB_OUTB_COM_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000040ull))
118 #endif
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)
126 {
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_CN61XX) || OCTEON_IS_MODEL(OCTEON_CN63XX) || OCTEON_IS_MODEL(OCTEON_CN66XX) || OCTEON_IS_MODEL(OCTEON_CN68XX) || OCTEON_IS_MODEL(OCTEON_CNF71XX)))
128                 cvmx_warn("CVMX_IOB_OUTB_FPA_PRI_CNT not supported on this chip\n");
129         return CVMX_ADD_IO_SEG(0x00011800F0000048ull);
130 }
131 #else
132 #define CVMX_IOB_OUTB_FPA_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000048ull))
133 #endif
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)
137 {
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_CN61XX) || OCTEON_IS_MODEL(OCTEON_CN63XX) || OCTEON_IS_MODEL(OCTEON_CN66XX) || OCTEON_IS_MODEL(OCTEON_CN68XX) || OCTEON_IS_MODEL(OCTEON_CNF71XX)))
139                 cvmx_warn("CVMX_IOB_OUTB_REQ_PRI_CNT not supported on this chip\n");
140         return CVMX_ADD_IO_SEG(0x00011800F0000038ull);
141 }
142 #else
143 #define CVMX_IOB_OUTB_REQ_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000038ull))
144 #endif
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)
148 {
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_CN61XX) || OCTEON_IS_MODEL(OCTEON_CN63XX) || OCTEON_IS_MODEL(OCTEON_CN66XX) || OCTEON_IS_MODEL(OCTEON_CNF71XX)))
150                 cvmx_warn("CVMX_IOB_P2C_REQ_PRI_CNT not supported on this chip\n");
151         return CVMX_ADD_IO_SEG(0x00011800F0000018ull);
152 }
153 #else
154 #define CVMX_IOB_P2C_REQ_PRI_CNT (CVMX_ADD_IO_SEG(0x00011800F0000018ull))
155 #endif
156 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
157 #define CVMX_IOB_PKT_ERR CVMX_IOB_PKT_ERR_FUNC()
158 static inline uint64_t CVMX_IOB_PKT_ERR_FUNC(void)
159 {
160         if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN5XXX) || OCTEON_IS_MODEL(OCTEON_CN61XX) || OCTEON_IS_MODEL(OCTEON_CN63XX) || OCTEON_IS_MODEL(OCTEON_CN66XX) || OCTEON_IS_MODEL(OCTEON_CNF71XX)))
161                 cvmx_warn("CVMX_IOB_PKT_ERR not supported on this chip\n");
162         return CVMX_ADD_IO_SEG(0x00011800F0000068ull);
163 }
164 #else
165 #define CVMX_IOB_PKT_ERR (CVMX_ADD_IO_SEG(0x00011800F0000068ull))
166 #endif
167 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
168 #define CVMX_IOB_TO_CMB_CREDITS CVMX_IOB_TO_CMB_CREDITS_FUNC()
169 static inline uint64_t CVMX_IOB_TO_CMB_CREDITS_FUNC(void)
170 {
171         if (!(OCTEON_IS_MODEL(OCTEON_CN52XX) || OCTEON_IS_MODEL(OCTEON_CN61XX) || OCTEON_IS_MODEL(OCTEON_CN63XX) || OCTEON_IS_MODEL(OCTEON_CN66XX) || OCTEON_IS_MODEL(OCTEON_CN68XX) || OCTEON_IS_MODEL(OCTEON_CNF71XX)))
172                 cvmx_warn("CVMX_IOB_TO_CMB_CREDITS not supported on this chip\n");
173         return CVMX_ADD_IO_SEG(0x00011800F00000B0ull);
174 }
175 #else
176 #define CVMX_IOB_TO_CMB_CREDITS (CVMX_ADD_IO_SEG(0x00011800F00000B0ull))
177 #endif
178 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
179 #define CVMX_IOB_TO_NCB_DID_00_CREDITS CVMX_IOB_TO_NCB_DID_00_CREDITS_FUNC()
180 static inline uint64_t CVMX_IOB_TO_NCB_DID_00_CREDITS_FUNC(void)
181 {
182         if (!(OCTEON_IS_MODEL(OCTEON_CN68XX)))
183                 cvmx_warn("CVMX_IOB_TO_NCB_DID_00_CREDITS not supported on this chip\n");
184         return CVMX_ADD_IO_SEG(0x00011800F0000800ull);
185 }
186 #else
187 #define CVMX_IOB_TO_NCB_DID_00_CREDITS (CVMX_ADD_IO_SEG(0x00011800F0000800ull))
188 #endif
189 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
190 #define CVMX_IOB_TO_NCB_DID_111_CREDITS CVMX_IOB_TO_NCB_DID_111_CREDITS_FUNC()
191 static inline uint64_t CVMX_IOB_TO_NCB_DID_111_CREDITS_FUNC(void)
192 {
193         if (!(OCTEON_IS_MODEL(OCTEON_CN68XX)))
194                 cvmx_warn("CVMX_IOB_TO_NCB_DID_111_CREDITS not supported on this chip\n");
195         return CVMX_ADD_IO_SEG(0x00011800F0000B78ull);
196 }
197 #else
198 #define CVMX_IOB_TO_NCB_DID_111_CREDITS (CVMX_ADD_IO_SEG(0x00011800F0000B78ull))
199 #endif
200 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
201 #define CVMX_IOB_TO_NCB_DID_223_CREDITS CVMX_IOB_TO_NCB_DID_223_CREDITS_FUNC()
202 static inline uint64_t CVMX_IOB_TO_NCB_DID_223_CREDITS_FUNC(void)
203 {
204         if (!(OCTEON_IS_MODEL(OCTEON_CN68XX)))
205                 cvmx_warn("CVMX_IOB_TO_NCB_DID_223_CREDITS not supported on this chip\n");
206         return CVMX_ADD_IO_SEG(0x00011800F0000EF8ull);
207 }
208 #else
209 #define CVMX_IOB_TO_NCB_DID_223_CREDITS (CVMX_ADD_IO_SEG(0x00011800F0000EF8ull))
210 #endif
211 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
212 #define CVMX_IOB_TO_NCB_DID_24_CREDITS CVMX_IOB_TO_NCB_DID_24_CREDITS_FUNC()
213 static inline uint64_t CVMX_IOB_TO_NCB_DID_24_CREDITS_FUNC(void)
214 {
215         if (!(OCTEON_IS_MODEL(OCTEON_CN68XX)))
216                 cvmx_warn("CVMX_IOB_TO_NCB_DID_24_CREDITS not supported on this chip\n");
217         return CVMX_ADD_IO_SEG(0x00011800F00008C0ull);
218 }
219 #else
220 #define CVMX_IOB_TO_NCB_DID_24_CREDITS (CVMX_ADD_IO_SEG(0x00011800F00008C0ull))
221 #endif
222 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
223 #define CVMX_IOB_TO_NCB_DID_32_CREDITS CVMX_IOB_TO_NCB_DID_32_CREDITS_FUNC()
224 static inline uint64_t CVMX_IOB_TO_NCB_DID_32_CREDITS_FUNC(void)
225 {
226         if (!(OCTEON_IS_MODEL(OCTEON_CN68XX)))
227                 cvmx_warn("CVMX_IOB_TO_NCB_DID_32_CREDITS not supported on this chip\n");
228         return CVMX_ADD_IO_SEG(0x00011800F0000900ull);
229 }
230 #else
231 #define CVMX_IOB_TO_NCB_DID_32_CREDITS (CVMX_ADD_IO_SEG(0x00011800F0000900ull))
232 #endif
233 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
234 #define CVMX_IOB_TO_NCB_DID_40_CREDITS CVMX_IOB_TO_NCB_DID_40_CREDITS_FUNC()
235 static inline uint64_t CVMX_IOB_TO_NCB_DID_40_CREDITS_FUNC(void)
236 {
237         if (!(OCTEON_IS_MODEL(OCTEON_CN68XX)))
238                 cvmx_warn("CVMX_IOB_TO_NCB_DID_40_CREDITS not supported on this chip\n");
239         return CVMX_ADD_IO_SEG(0x00011800F0000940ull);
240 }
241 #else
242 #define CVMX_IOB_TO_NCB_DID_40_CREDITS (CVMX_ADD_IO_SEG(0x00011800F0000940ull))
243 #endif
244 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
245 #define CVMX_IOB_TO_NCB_DID_55_CREDITS CVMX_IOB_TO_NCB_DID_55_CREDITS_FUNC()
246 static inline uint64_t CVMX_IOB_TO_NCB_DID_55_CREDITS_FUNC(void)
247 {
248         if (!(OCTEON_IS_MODEL(OCTEON_CN68XX)))
249                 cvmx_warn("CVMX_IOB_TO_NCB_DID_55_CREDITS not supported on this chip\n");
250         return CVMX_ADD_IO_SEG(0x00011800F00009B8ull);
251 }
252 #else
253 #define CVMX_IOB_TO_NCB_DID_55_CREDITS (CVMX_ADD_IO_SEG(0x00011800F00009B8ull))
254 #endif
255 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
256 #define CVMX_IOB_TO_NCB_DID_64_CREDITS CVMX_IOB_TO_NCB_DID_64_CREDITS_FUNC()
257 static inline uint64_t CVMX_IOB_TO_NCB_DID_64_CREDITS_FUNC(void)
258 {
259         if (!(OCTEON_IS_MODEL(OCTEON_CN68XX)))
260                 cvmx_warn("CVMX_IOB_TO_NCB_DID_64_CREDITS not supported on this chip\n");
261         return CVMX_ADD_IO_SEG(0x00011800F0000A00ull);
262 }
263 #else
264 #define CVMX_IOB_TO_NCB_DID_64_CREDITS (CVMX_ADD_IO_SEG(0x00011800F0000A00ull))
265 #endif
266 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
267 #define CVMX_IOB_TO_NCB_DID_79_CREDITS CVMX_IOB_TO_NCB_DID_79_CREDITS_FUNC()
268 static inline uint64_t CVMX_IOB_TO_NCB_DID_79_CREDITS_FUNC(void)
269 {
270         if (!(OCTEON_IS_MODEL(OCTEON_CN68XX)))
271                 cvmx_warn("CVMX_IOB_TO_NCB_DID_79_CREDITS not supported on this chip\n");
272         return CVMX_ADD_IO_SEG(0x00011800F0000A78ull);
273 }
274 #else
275 #define CVMX_IOB_TO_NCB_DID_79_CREDITS (CVMX_ADD_IO_SEG(0x00011800F0000A78ull))
276 #endif
277 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
278 #define CVMX_IOB_TO_NCB_DID_96_CREDITS CVMX_IOB_TO_NCB_DID_96_CREDITS_FUNC()
279 static inline uint64_t CVMX_IOB_TO_NCB_DID_96_CREDITS_FUNC(void)
280 {
281         if (!(OCTEON_IS_MODEL(OCTEON_CN68XX)))
282                 cvmx_warn("CVMX_IOB_TO_NCB_DID_96_CREDITS not supported on this chip\n");
283         return CVMX_ADD_IO_SEG(0x00011800F0000B00ull);
284 }
285 #else
286 #define CVMX_IOB_TO_NCB_DID_96_CREDITS (CVMX_ADD_IO_SEG(0x00011800F0000B00ull))
287 #endif
288 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
289 #define CVMX_IOB_TO_NCB_DID_98_CREDITS CVMX_IOB_TO_NCB_DID_98_CREDITS_FUNC()
290 static inline uint64_t CVMX_IOB_TO_NCB_DID_98_CREDITS_FUNC(void)
291 {
292         if (!(OCTEON_IS_MODEL(OCTEON_CN68XX)))
293                 cvmx_warn("CVMX_IOB_TO_NCB_DID_98_CREDITS not supported on this chip\n");
294         return CVMX_ADD_IO_SEG(0x00011800F0000B10ull);
295 }
296 #else
297 #define CVMX_IOB_TO_NCB_DID_98_CREDITS (CVMX_ADD_IO_SEG(0x00011800F0000B10ull))
298 #endif
299
300 /**
301  * cvmx_iob_bist_status
302  *
303  * IOB_BIST_STATUS = BIST Status of IOB Memories
304  *
305  * The result of the BIST run on the IOB memories.
306  */
307 union cvmx_iob_bist_status {
308         uint64_t u64;
309         struct cvmx_iob_bist_status_s {
310 #ifdef __BIG_ENDIAN_BITFIELD
311         uint64_t reserved_2_63                : 62;
312         uint64_t ibd                          : 1;  /**< ibd_bist_mem0_status */
313         uint64_t icd                          : 1;  /**< icd_ncb_fifo_bist_status */
314 #else
315         uint64_t icd                          : 1;
316         uint64_t ibd                          : 1;
317         uint64_t reserved_2_63                : 62;
318 #endif
319         } s;
320         struct cvmx_iob_bist_status_cn30xx {
321 #ifdef __BIG_ENDIAN_BITFIELD
322         uint64_t reserved_18_63               : 46;
323         uint64_t icnrcb                       : 1;  /**< Reserved */
324         uint64_t icr0                         : 1;  /**< Reserved */
325         uint64_t icr1                         : 1;  /**< Reserved */
326         uint64_t icnr1                        : 1;  /**< Reserved */
327         uint64_t icnr0                        : 1;  /**< icnr_reg_mem0_bist_status */
328         uint64_t ibdr0                        : 1;  /**< ibdr_bist_req_fifo0_status */
329         uint64_t ibdr1                        : 1;  /**< ibdr_bist_req_fifo1_status */
330         uint64_t ibr0                         : 1;  /**< ibr_bist_rsp_fifo0_status */
331         uint64_t ibr1                         : 1;  /**< ibr_bist_rsp_fifo1_status */
332         uint64_t icnrt                        : 1;  /**< Reserved */
333         uint64_t ibrq0                        : 1;  /**< ibrq_bist_req_fifo0_status */
334         uint64_t ibrq1                        : 1;  /**< ibrq_bist_req_fifo1_status */
335         uint64_t icrn0                        : 1;  /**< icr_ncb_bist_mem0_status */
336         uint64_t icrn1                        : 1;  /**< icr_ncb_bist_mem1_status */
337         uint64_t icrp0                        : 1;  /**< icr_pko_bist_mem0_status */
338         uint64_t icrp1                        : 1;  /**< icr_pko_bist_mem1_status */
339         uint64_t ibd                          : 1;  /**< ibd_bist_mem0_status */
340         uint64_t icd                          : 1;  /**< icd_ncb_fifo_bist_status */
341 #else
342         uint64_t icd                          : 1;
343         uint64_t ibd                          : 1;
344         uint64_t icrp1                        : 1;
345         uint64_t icrp0                        : 1;
346         uint64_t icrn1                        : 1;
347         uint64_t icrn0                        : 1;
348         uint64_t ibrq1                        : 1;
349         uint64_t ibrq0                        : 1;
350         uint64_t icnrt                        : 1;
351         uint64_t ibr1                         : 1;
352         uint64_t ibr0                         : 1;
353         uint64_t ibdr1                        : 1;
354         uint64_t ibdr0                        : 1;
355         uint64_t icnr0                        : 1;
356         uint64_t icnr1                        : 1;
357         uint64_t icr1                         : 1;
358         uint64_t icr0                         : 1;
359         uint64_t icnrcb                       : 1;
360         uint64_t reserved_18_63               : 46;
361 #endif
362         } cn30xx;
363         struct cvmx_iob_bist_status_cn30xx    cn31xx;
364         struct cvmx_iob_bist_status_cn30xx    cn38xx;
365         struct cvmx_iob_bist_status_cn30xx    cn38xxp2;
366         struct cvmx_iob_bist_status_cn30xx    cn50xx;
367         struct cvmx_iob_bist_status_cn30xx    cn52xx;
368         struct cvmx_iob_bist_status_cn30xx    cn52xxp1;
369         struct cvmx_iob_bist_status_cn30xx    cn56xx;
370         struct cvmx_iob_bist_status_cn30xx    cn56xxp1;
371         struct cvmx_iob_bist_status_cn30xx    cn58xx;
372         struct cvmx_iob_bist_status_cn30xx    cn58xxp1;
373         struct cvmx_iob_bist_status_cn61xx {
374 #ifdef __BIG_ENDIAN_BITFIELD
375         uint64_t reserved_23_63               : 41;
376         uint64_t xmdfif                       : 1;  /**< xmdfif_bist_status */
377         uint64_t xmcfif                       : 1;  /**< xmcfif_bist_status */
378         uint64_t iorfif                       : 1;  /**< iorfif_bist_status */
379         uint64_t rsdfif                       : 1;  /**< rsdfif_bist_status */
380         uint64_t iocfif                       : 1;  /**< iocfif_bist_status */
381         uint64_t icnrcb                       : 1;  /**< icnr_cb_reg_fifo_bist_status */
382         uint64_t icr0                         : 1;  /**< icr_bist_req_fifo0_status */
383         uint64_t icr1                         : 1;  /**< icr_bist_req_fifo1_status */
384         uint64_t icnr1                        : 1;  /**< Reserved */
385         uint64_t icnr0                        : 1;  /**< icnr_reg_mem0_bist_status */
386         uint64_t ibdr0                        : 1;  /**< ibdr_bist_req_fifo0_status */
387         uint64_t ibdr1                        : 1;  /**< ibdr_bist_req_fifo1_status */
388         uint64_t ibr0                         : 1;  /**< ibr_bist_rsp_fifo0_status */
389         uint64_t ibr1                         : 1;  /**< ibr_bist_rsp_fifo1_status */
390         uint64_t icnrt                        : 1;  /**< icnr_tag_cb_reg_fifo_bist_status */
391         uint64_t ibrq0                        : 1;  /**< ibrq_bist_req_fifo0_status */
392         uint64_t ibrq1                        : 1;  /**< ibrq_bist_req_fifo1_status */
393         uint64_t icrn0                        : 1;  /**< icr_ncb_bist_mem0_status */
394         uint64_t icrn1                        : 1;  /**< icr_ncb_bist_mem1_status */
395         uint64_t icrp0                        : 1;  /**< icr_pko_bist_mem0_status */
396         uint64_t icrp1                        : 1;  /**< icr_pko_bist_mem1_status */
397         uint64_t ibd                          : 1;  /**< ibd_bist_mem0_status */
398         uint64_t icd                          : 1;  /**< icd_ncb_fifo_bist_status */
399 #else
400         uint64_t icd                          : 1;
401         uint64_t ibd                          : 1;
402         uint64_t icrp1                        : 1;
403         uint64_t icrp0                        : 1;
404         uint64_t icrn1                        : 1;
405         uint64_t icrn0                        : 1;
406         uint64_t ibrq1                        : 1;
407         uint64_t ibrq0                        : 1;
408         uint64_t icnrt                        : 1;
409         uint64_t ibr1                         : 1;
410         uint64_t ibr0                         : 1;
411         uint64_t ibdr1                        : 1;
412         uint64_t ibdr0                        : 1;
413         uint64_t icnr0                        : 1;
414         uint64_t icnr1                        : 1;
415         uint64_t icr1                         : 1;
416         uint64_t icr0                         : 1;
417         uint64_t icnrcb                       : 1;
418         uint64_t iocfif                       : 1;
419         uint64_t rsdfif                       : 1;
420         uint64_t iorfif                       : 1;
421         uint64_t xmcfif                       : 1;
422         uint64_t xmdfif                       : 1;
423         uint64_t reserved_23_63               : 41;
424 #endif
425         } cn61xx;
426         struct cvmx_iob_bist_status_cn61xx    cn63xx;
427         struct cvmx_iob_bist_status_cn61xx    cn63xxp1;
428         struct cvmx_iob_bist_status_cn61xx    cn66xx;
429         struct cvmx_iob_bist_status_cn68xx {
430 #ifdef __BIG_ENDIAN_BITFIELD
431         uint64_t reserved_18_63               : 46;
432         uint64_t xmdfif                       : 1;  /**< xmdfif_bist_status */
433         uint64_t xmcfif                       : 1;  /**< xmcfif_bist_status */
434         uint64_t iorfif                       : 1;  /**< iorfif_bist_status */
435         uint64_t rsdfif                       : 1;  /**< rsdfif_bist_status */
436         uint64_t iocfif                       : 1;  /**< iocfif_bist_status */
437         uint64_t icnrcb                       : 1;  /**< icnr_cb_reg_fifo_bist_status */
438         uint64_t icr0                         : 1;  /**< icr_bist_req_fifo0_status */
439         uint64_t icr1                         : 1;  /**< icr_bist_req_fifo1_status */
440         uint64_t icnr0                        : 1;  /**< icnr_reg_mem0_bist_status */
441         uint64_t ibr0                         : 1;  /**< ibr_bist_rsp_fifo0_status */
442         uint64_t ibr1                         : 1;  /**< ibr_bist_rsp_fifo1_status */
443         uint64_t icnrt                        : 1;  /**< icnr_tag_cb_reg_fifo_bist_status */
444         uint64_t ibrq0                        : 1;  /**< ibrq_bist_req_fifo0_status */
445         uint64_t ibrq1                        : 1;  /**< ibrq_bist_req_fifo1_status */
446         uint64_t icrn0                        : 1;  /**< icr_ncb_bist_mem0_status */
447         uint64_t icrn1                        : 1;  /**< icr_ncb_bist_mem1_status */
448         uint64_t ibd                          : 1;  /**< ibd_bist_mem0_status */
449         uint64_t icd                          : 1;  /**< icd_ncb_fifo_bist_status */
450 #else
451         uint64_t icd                          : 1;
452         uint64_t ibd                          : 1;
453         uint64_t icrn1                        : 1;
454         uint64_t icrn0                        : 1;
455         uint64_t ibrq1                        : 1;
456         uint64_t ibrq0                        : 1;
457         uint64_t icnrt                        : 1;
458         uint64_t ibr1                         : 1;
459         uint64_t ibr0                         : 1;
460         uint64_t icnr0                        : 1;
461         uint64_t icr1                         : 1;
462         uint64_t icr0                         : 1;
463         uint64_t icnrcb                       : 1;
464         uint64_t iocfif                       : 1;
465         uint64_t rsdfif                       : 1;
466         uint64_t iorfif                       : 1;
467         uint64_t xmcfif                       : 1;
468         uint64_t xmdfif                       : 1;
469         uint64_t reserved_18_63               : 46;
470 #endif
471         } cn68xx;
472         struct cvmx_iob_bist_status_cn68xx    cn68xxp1;
473         struct cvmx_iob_bist_status_cn61xx    cnf71xx;
474 };
475 typedef union cvmx_iob_bist_status cvmx_iob_bist_status_t;
476
477 /**
478  * cvmx_iob_ctl_status
479  *
480  * IOB Control Status = IOB Control and Status Register
481  *
482  * Provides control for IOB functions.
483  */
484 union cvmx_iob_ctl_status {
485         uint64_t u64;
486         struct cvmx_iob_ctl_status_s {
487 #ifdef __BIG_ENDIAN_BITFIELD
488         uint64_t reserved_11_63               : 53;
489         uint64_t fif_dly                      : 1;  /**< Delay async FIFO counts to be used when clock ratio
490                                                          is greater then 3:1. Writes should be followed by an
491                                                          immediate read. */
492         uint64_t xmc_per                      : 4;  /**< IBC XMC PUSH EARLY */
493         uint64_t reserved_5_5                 : 1;
494         uint64_t outb_mat                     : 1;  /**< Was a match on the outbound bus to the inb pattern
495                                                          matchers. PASS2 FIELD. */
496         uint64_t inb_mat                      : 1;  /**< Was a match on the inbound bus to the inb pattern
497                                                          matchers. PASS2 FIELD. */
498         uint64_t pko_enb                      : 1;  /**< Toggles the endian style of the FAU for the PKO.
499                                                          '0' is for big-endian and '1' is for little-endian. */
500         uint64_t dwb_enb                      : 1;  /**< Enables the DWB function of the IOB. */
501         uint64_t fau_end                      : 1;  /**< Toggles the endian style of the FAU. '0' is for
502                                                          big-endian and '1' is for little-endian. */
503 #else
504         uint64_t fau_end                      : 1;
505         uint64_t dwb_enb                      : 1;
506         uint64_t pko_enb                      : 1;
507         uint64_t inb_mat                      : 1;
508         uint64_t outb_mat                     : 1;
509         uint64_t reserved_5_5                 : 1;
510         uint64_t xmc_per                      : 4;
511         uint64_t fif_dly                      : 1;
512         uint64_t reserved_11_63               : 53;
513 #endif
514         } s;
515         struct cvmx_iob_ctl_status_cn30xx {
516 #ifdef __BIG_ENDIAN_BITFIELD
517         uint64_t reserved_5_63                : 59;
518         uint64_t outb_mat                     : 1;  /**< Was a match on the outbound bus to the inb pattern
519                                                          matchers. */
520         uint64_t inb_mat                      : 1;  /**< Was a match on the inbound bus to the inb pattern
521                                                          matchers. */
522         uint64_t pko_enb                      : 1;  /**< Toggles the endian style of the FAU for the PKO.
523                                                          '0' is for big-endian and '1' is for little-endian. */
524         uint64_t dwb_enb                      : 1;  /**< Enables the DWB function of the IOB. */
525         uint64_t fau_end                      : 1;  /**< Toggles the endian style of the FAU. '0' is for
526                                                          big-endian and '1' is for little-endian. */
527 #else
528         uint64_t fau_end                      : 1;
529         uint64_t dwb_enb                      : 1;
530         uint64_t pko_enb                      : 1;
531         uint64_t inb_mat                      : 1;
532         uint64_t outb_mat                     : 1;
533         uint64_t reserved_5_63                : 59;
534 #endif
535         } cn30xx;
536         struct cvmx_iob_ctl_status_cn30xx     cn31xx;
537         struct cvmx_iob_ctl_status_cn30xx     cn38xx;
538         struct cvmx_iob_ctl_status_cn30xx     cn38xxp2;
539         struct cvmx_iob_ctl_status_cn30xx     cn50xx;
540         struct cvmx_iob_ctl_status_cn52xx {
541 #ifdef __BIG_ENDIAN_BITFIELD
542         uint64_t reserved_6_63                : 58;
543         uint64_t rr_mode                      : 1;  /**< When set to '1' will enable Round-Robin mode of next
544                                                          transaction that could arbitrate for the XMB. */
545         uint64_t outb_mat                     : 1;  /**< Was a match on the outbound bus to the inb pattern
546                                                          matchers. PASS2 FIELD. */
547         uint64_t inb_mat                      : 1;  /**< Was a match on the inbound bus to the inb pattern
548                                                          matchers. PASS2 FIELD. */
549         uint64_t pko_enb                      : 1;  /**< Toggles the endian style of the FAU for the PKO.
550                                                          '0' is for big-endian and '1' is for little-endian. */
551         uint64_t dwb_enb                      : 1;  /**< Enables the DWB function of the IOB. */
552         uint64_t fau_end                      : 1;  /**< Toggles the endian style of the FAU. '0' is for
553                                                          big-endian and '1' is for little-endian. */
554 #else
555         uint64_t fau_end                      : 1;
556         uint64_t dwb_enb                      : 1;
557         uint64_t pko_enb                      : 1;
558         uint64_t inb_mat                      : 1;
559         uint64_t outb_mat                     : 1;
560         uint64_t rr_mode                      : 1;
561         uint64_t reserved_6_63                : 58;
562 #endif
563         } cn52xx;
564         struct cvmx_iob_ctl_status_cn30xx     cn52xxp1;
565         struct cvmx_iob_ctl_status_cn30xx     cn56xx;
566         struct cvmx_iob_ctl_status_cn30xx     cn56xxp1;
567         struct cvmx_iob_ctl_status_cn30xx     cn58xx;
568         struct cvmx_iob_ctl_status_cn30xx     cn58xxp1;
569         struct cvmx_iob_ctl_status_cn61xx {
570 #ifdef __BIG_ENDIAN_BITFIELD
571         uint64_t reserved_11_63               : 53;
572         uint64_t fif_dly                      : 1;  /**< Delay async FIFO counts to be used when clock ratio
573                                                          is greater then 3:1. Writes should be followed by an
574                                                          immediate read. */
575         uint64_t xmc_per                      : 4;  /**< IBC XMC PUSH EARLY */
576         uint64_t rr_mode                      : 1;  /**< When set to '1' will enable Round-Robin mode of next
577                                                          transaction that could arbitrate for the XMB. */
578         uint64_t outb_mat                     : 1;  /**< Was a match on the outbound bus to the inb pattern
579                                                          matchers. PASS2 FIELD. */
580         uint64_t inb_mat                      : 1;  /**< Was a match on the inbound bus to the inb pattern
581                                                          matchers. PASS2 FIELD. */
582         uint64_t pko_enb                      : 1;  /**< Toggles the endian style of the FAU for the PKO.
583                                                          '0' is for big-endian and '1' is for little-endian. */
584         uint64_t dwb_enb                      : 1;  /**< Enables the DWB function of the IOB. */
585         uint64_t fau_end                      : 1;  /**< Toggles the endian style of the FAU. '0' is for
586                                                          big-endian and '1' is for little-endian. */
587 #else
588         uint64_t fau_end                      : 1;
589         uint64_t dwb_enb                      : 1;
590         uint64_t pko_enb                      : 1;
591         uint64_t inb_mat                      : 1;
592         uint64_t outb_mat                     : 1;
593         uint64_t rr_mode                      : 1;
594         uint64_t xmc_per                      : 4;
595         uint64_t fif_dly                      : 1;
596         uint64_t reserved_11_63               : 53;
597 #endif
598         } cn61xx;
599         struct cvmx_iob_ctl_status_cn63xx {
600 #ifdef __BIG_ENDIAN_BITFIELD
601         uint64_t reserved_10_63               : 54;
602         uint64_t xmc_per                      : 4;  /**< IBC XMC PUSH EARLY */
603         uint64_t rr_mode                      : 1;  /**< When set to '1' will enable Round-Robin mode of next
604                                                          transaction that could arbitrate for the XMB. */
605         uint64_t outb_mat                     : 1;  /**< Was a match on the outbound bus to the inb pattern
606                                                          matchers. PASS2 FIELD. */
607         uint64_t inb_mat                      : 1;  /**< Was a match on the inbound bus to the inb pattern
608                                                          matchers. PASS2 FIELD. */
609         uint64_t pko_enb                      : 1;  /**< Toggles the endian style of the FAU for the PKO.
610                                                          '0' is for big-endian and '1' is for little-endian. */
611         uint64_t dwb_enb                      : 1;  /**< Enables the DWB function of the IOB. */
612         uint64_t fau_end                      : 1;  /**< Toggles the endian style of the FAU. '0' is for
613                                                          big-endian and '1' is for little-endian. */
614 #else
615         uint64_t fau_end                      : 1;
616         uint64_t dwb_enb                      : 1;
617         uint64_t pko_enb                      : 1;
618         uint64_t inb_mat                      : 1;
619         uint64_t outb_mat                     : 1;
620         uint64_t rr_mode                      : 1;
621         uint64_t xmc_per                      : 4;
622         uint64_t reserved_10_63               : 54;
623 #endif
624         } cn63xx;
625         struct cvmx_iob_ctl_status_cn63xx     cn63xxp1;
626         struct cvmx_iob_ctl_status_cn61xx     cn66xx;
627         struct cvmx_iob_ctl_status_cn68xx {
628 #ifdef __BIG_ENDIAN_BITFIELD
629         uint64_t reserved_11_63               : 53;
630         uint64_t fif_dly                      : 1;  /**< Delay async FIFO counts to be used when clock ratio
631                                                          is greater then 3:1. Writes should be followed by an
632                                                          immediate read. */
633         uint64_t xmc_per                      : 4;  /**< IBC XMC PUSH EARLY */
634         uint64_t rsvr5                        : 1;  /**< Reserved */
635         uint64_t outb_mat                     : 1;  /**< Was a match on the outbound bus to the inb pattern
636                                                          matchers. */
637         uint64_t inb_mat                      : 1;  /**< Was a match on the inbound bus to the inb pattern
638                                                          matchers. */
639         uint64_t pko_enb                      : 1;  /**< Toggles the endian style of the FAU for the PKO.
640                                                          '0' is for big-endian and '1' is for little-endian. */
641         uint64_t dwb_enb                      : 1;  /**< Enables the DWB function of the IOB. */
642         uint64_t fau_end                      : 1;  /**< Toggles the endian style of the FAU. '0' is for
643                                                          big-endian and '1' is for little-endian. */
644 #else
645         uint64_t fau_end                      : 1;
646         uint64_t dwb_enb                      : 1;
647         uint64_t pko_enb                      : 1;
648         uint64_t inb_mat                      : 1;
649         uint64_t outb_mat                     : 1;
650         uint64_t rsvr5                        : 1;
651         uint64_t xmc_per                      : 4;
652         uint64_t fif_dly                      : 1;
653         uint64_t reserved_11_63               : 53;
654 #endif
655         } cn68xx;
656         struct cvmx_iob_ctl_status_cn68xx     cn68xxp1;
657         struct cvmx_iob_ctl_status_cn61xx     cnf71xx;
658 };
659 typedef union cvmx_iob_ctl_status cvmx_iob_ctl_status_t;
660
661 /**
662  * cvmx_iob_dwb_pri_cnt
663  *
664  * DWB To CMB Priority Counter = Don't Write Back to CMB Priority Counter Enable and Timer Value
665  *
666  * Enables and supplies the timeout count for raising the priority of Don't Write Back request to the L2C.
667  */
668 union cvmx_iob_dwb_pri_cnt {
669         uint64_t u64;
670         struct cvmx_iob_dwb_pri_cnt_s {
671 #ifdef __BIG_ENDIAN_BITFIELD
672         uint64_t reserved_16_63               : 48;
673         uint64_t cnt_enb                      : 1;  /**< Enables the raising of CMB access priority
674                                                          when CNT_VAL is reached. */
675         uint64_t cnt_val                      : 15; /**< Number of core clocks to wait before raising
676                                                          the priority for access to CMB. */
677 #else
678         uint64_t cnt_val                      : 15;
679         uint64_t cnt_enb                      : 1;
680         uint64_t reserved_16_63               : 48;
681 #endif
682         } s;
683         struct cvmx_iob_dwb_pri_cnt_s         cn38xx;
684         struct cvmx_iob_dwb_pri_cnt_s         cn38xxp2;
685         struct cvmx_iob_dwb_pri_cnt_s         cn52xx;
686         struct cvmx_iob_dwb_pri_cnt_s         cn52xxp1;
687         struct cvmx_iob_dwb_pri_cnt_s         cn56xx;
688         struct cvmx_iob_dwb_pri_cnt_s         cn56xxp1;
689         struct cvmx_iob_dwb_pri_cnt_s         cn58xx;
690         struct cvmx_iob_dwb_pri_cnt_s         cn58xxp1;
691         struct cvmx_iob_dwb_pri_cnt_s         cn61xx;
692         struct cvmx_iob_dwb_pri_cnt_s         cn63xx;
693         struct cvmx_iob_dwb_pri_cnt_s         cn63xxp1;
694         struct cvmx_iob_dwb_pri_cnt_s         cn66xx;
695         struct cvmx_iob_dwb_pri_cnt_s         cnf71xx;
696 };
697 typedef union cvmx_iob_dwb_pri_cnt cvmx_iob_dwb_pri_cnt_t;
698
699 /**
700  * cvmx_iob_fau_timeout
701  *
702  * FAU Timeout = Fetch and Add Unit Tag-Switch Timeout
703  *
704  * How many clokc ticks the FAU unit will wait for a tag-switch before timeing out.
705  * for Queue 0.
706  */
707 union cvmx_iob_fau_timeout {
708         uint64_t u64;
709         struct cvmx_iob_fau_timeout_s {
710 #ifdef __BIG_ENDIAN_BITFIELD
711         uint64_t reserved_13_63               : 51;
712         uint64_t tout_enb                     : 1;  /**< The enable for the FAU timeout feature.
713                                                          '1' will enable the timeout, '0' will disable. */
714         uint64_t tout_val                     : 12; /**< When a tag request arrives from the PP a timer is
715                                                          started associate with that PP. The timer which
716                                                          increments every 256 eclks is compared to TOUT_VAL.
717                                                          When the two are equal the IOB will flag the tag
718                                                          request to complete as a time-out tag operation.
719                                                          The 256 count timer used to increment the PP
720                                                          associated timer is always running so the first
721                                                          increment of the PP associated timer may occur any
722                                                          where within the first 256 eclks.  Note that '0'
723                                                          is an illegal value. */
724 #else
725         uint64_t tout_val                     : 12;
726         uint64_t tout_enb                     : 1;
727         uint64_t reserved_13_63               : 51;
728 #endif
729         } s;
730         struct cvmx_iob_fau_timeout_s         cn30xx;
731         struct cvmx_iob_fau_timeout_s         cn31xx;
732         struct cvmx_iob_fau_timeout_s         cn38xx;
733         struct cvmx_iob_fau_timeout_s         cn38xxp2;
734         struct cvmx_iob_fau_timeout_s         cn50xx;
735         struct cvmx_iob_fau_timeout_s         cn52xx;
736         struct cvmx_iob_fau_timeout_s         cn52xxp1;
737         struct cvmx_iob_fau_timeout_s         cn56xx;
738         struct cvmx_iob_fau_timeout_s         cn56xxp1;
739         struct cvmx_iob_fau_timeout_s         cn58xx;
740         struct cvmx_iob_fau_timeout_s         cn58xxp1;
741         struct cvmx_iob_fau_timeout_s         cn61xx;
742         struct cvmx_iob_fau_timeout_s         cn63xx;
743         struct cvmx_iob_fau_timeout_s         cn63xxp1;
744         struct cvmx_iob_fau_timeout_s         cn66xx;
745         struct cvmx_iob_fau_timeout_s         cn68xx;
746         struct cvmx_iob_fau_timeout_s         cn68xxp1;
747         struct cvmx_iob_fau_timeout_s         cnf71xx;
748 };
749 typedef union cvmx_iob_fau_timeout cvmx_iob_fau_timeout_t;
750
751 /**
752  * cvmx_iob_i2c_pri_cnt
753  *
754  * IPD To CMB Store Priority Counter = IPD to CMB Store Priority Counter Enable and Timer Value
755  *
756  * Enables and supplies the timeout count for raising the priority of IPD Store access to the CMB.
757  */
758 union cvmx_iob_i2c_pri_cnt {
759         uint64_t u64;
760         struct cvmx_iob_i2c_pri_cnt_s {
761 #ifdef __BIG_ENDIAN_BITFIELD
762         uint64_t reserved_16_63               : 48;
763         uint64_t cnt_enb                      : 1;  /**< Enables the raising of CMB access priority
764                                                          when CNT_VAL is reached. */
765         uint64_t cnt_val                      : 15; /**< Number of core clocks to wait before raising
766                                                          the priority for access to CMB. */
767 #else
768         uint64_t cnt_val                      : 15;
769         uint64_t cnt_enb                      : 1;
770         uint64_t reserved_16_63               : 48;
771 #endif
772         } s;
773         struct cvmx_iob_i2c_pri_cnt_s         cn38xx;
774         struct cvmx_iob_i2c_pri_cnt_s         cn38xxp2;
775         struct cvmx_iob_i2c_pri_cnt_s         cn52xx;
776         struct cvmx_iob_i2c_pri_cnt_s         cn52xxp1;
777         struct cvmx_iob_i2c_pri_cnt_s         cn56xx;
778         struct cvmx_iob_i2c_pri_cnt_s         cn56xxp1;
779         struct cvmx_iob_i2c_pri_cnt_s         cn58xx;
780         struct cvmx_iob_i2c_pri_cnt_s         cn58xxp1;
781         struct cvmx_iob_i2c_pri_cnt_s         cn61xx;
782         struct cvmx_iob_i2c_pri_cnt_s         cn63xx;
783         struct cvmx_iob_i2c_pri_cnt_s         cn63xxp1;
784         struct cvmx_iob_i2c_pri_cnt_s         cn66xx;
785         struct cvmx_iob_i2c_pri_cnt_s         cnf71xx;
786 };
787 typedef union cvmx_iob_i2c_pri_cnt cvmx_iob_i2c_pri_cnt_t;
788
789 /**
790  * cvmx_iob_inb_control_match
791  *
792  * IOB_INB_CONTROL_MATCH = IOB Inbound Control Match
793  *
794  * Match pattern for the inbound control to set the INB_MATCH_BIT. PASS-2 Register
795  */
796 union cvmx_iob_inb_control_match {
797         uint64_t u64;
798         struct cvmx_iob_inb_control_match_s {
799 #ifdef __BIG_ENDIAN_BITFIELD
800         uint64_t reserved_29_63               : 35;
801         uint64_t mask                         : 8;  /**< Pattern to match on the inbound NCB. */
802         uint64_t opc                          : 4;  /**< Pattern to match on the inbound NCB. */
803         uint64_t dst                          : 9;  /**< Pattern to match on the inbound NCB. */
804         uint64_t src                          : 8;  /**< Pattern to match on the inbound NCB. */
805 #else
806         uint64_t src                          : 8;
807         uint64_t dst                          : 9;
808         uint64_t opc                          : 4;
809         uint64_t mask                         : 8;
810         uint64_t reserved_29_63               : 35;
811 #endif
812         } s;
813         struct cvmx_iob_inb_control_match_s   cn30xx;
814         struct cvmx_iob_inb_control_match_s   cn31xx;
815         struct cvmx_iob_inb_control_match_s   cn38xx;
816         struct cvmx_iob_inb_control_match_s   cn38xxp2;
817         struct cvmx_iob_inb_control_match_s   cn50xx;
818         struct cvmx_iob_inb_control_match_s   cn52xx;
819         struct cvmx_iob_inb_control_match_s   cn52xxp1;
820         struct cvmx_iob_inb_control_match_s   cn56xx;
821         struct cvmx_iob_inb_control_match_s   cn56xxp1;
822         struct cvmx_iob_inb_control_match_s   cn58xx;
823         struct cvmx_iob_inb_control_match_s   cn58xxp1;
824         struct cvmx_iob_inb_control_match_s   cn61xx;
825         struct cvmx_iob_inb_control_match_s   cn63xx;
826         struct cvmx_iob_inb_control_match_s   cn63xxp1;
827         struct cvmx_iob_inb_control_match_s   cn66xx;
828         struct cvmx_iob_inb_control_match_s   cn68xx;
829         struct cvmx_iob_inb_control_match_s   cn68xxp1;
830         struct cvmx_iob_inb_control_match_s   cnf71xx;
831 };
832 typedef union cvmx_iob_inb_control_match cvmx_iob_inb_control_match_t;
833
834 /**
835  * cvmx_iob_inb_control_match_enb
836  *
837  * IOB_INB_CONTROL_MATCH_ENB = IOB Inbound Control Match Enable
838  *
839  * Enables the match of the corresponding bit in the IOB_INB_CONTROL_MATCH reister. PASS-2 Register
840  */
841 union cvmx_iob_inb_control_match_enb {
842         uint64_t u64;
843         struct cvmx_iob_inb_control_match_enb_s {
844 #ifdef __BIG_ENDIAN_BITFIELD
845         uint64_t reserved_29_63               : 35;
846         uint64_t mask                         : 8;  /**< Pattern to match on the inbound NCB. */
847         uint64_t opc                          : 4;  /**< Pattern to match on the inbound NCB. */
848         uint64_t dst                          : 9;  /**< Pattern to match on the inbound NCB. */
849         uint64_t src                          : 8;  /**< Pattern to match on the inbound NCB. */
850 #else
851         uint64_t src                          : 8;
852         uint64_t dst                          : 9;
853         uint64_t opc                          : 4;
854         uint64_t mask                         : 8;
855         uint64_t reserved_29_63               : 35;
856 #endif
857         } s;
858         struct cvmx_iob_inb_control_match_enb_s cn30xx;
859         struct cvmx_iob_inb_control_match_enb_s cn31xx;
860         struct cvmx_iob_inb_control_match_enb_s cn38xx;
861         struct cvmx_iob_inb_control_match_enb_s cn38xxp2;
862         struct cvmx_iob_inb_control_match_enb_s cn50xx;
863         struct cvmx_iob_inb_control_match_enb_s cn52xx;
864         struct cvmx_iob_inb_control_match_enb_s cn52xxp1;
865         struct cvmx_iob_inb_control_match_enb_s cn56xx;
866         struct cvmx_iob_inb_control_match_enb_s cn56xxp1;
867         struct cvmx_iob_inb_control_match_enb_s cn58xx;
868         struct cvmx_iob_inb_control_match_enb_s cn58xxp1;
869         struct cvmx_iob_inb_control_match_enb_s cn61xx;
870         struct cvmx_iob_inb_control_match_enb_s cn63xx;
871         struct cvmx_iob_inb_control_match_enb_s cn63xxp1;
872         struct cvmx_iob_inb_control_match_enb_s cn66xx;
873         struct cvmx_iob_inb_control_match_enb_s cn68xx;
874         struct cvmx_iob_inb_control_match_enb_s cn68xxp1;
875         struct cvmx_iob_inb_control_match_enb_s cnf71xx;
876 };
877 typedef union cvmx_iob_inb_control_match_enb cvmx_iob_inb_control_match_enb_t;
878
879 /**
880  * cvmx_iob_inb_data_match
881  *
882  * IOB_INB_DATA_MATCH = IOB Inbound Data Match
883  *
884  * Match pattern for the inbound data to set the INB_MATCH_BIT. PASS-2 Register
885  */
886 union cvmx_iob_inb_data_match {
887         uint64_t u64;
888         struct cvmx_iob_inb_data_match_s {
889 #ifdef __BIG_ENDIAN_BITFIELD
890         uint64_t data                         : 64; /**< Pattern to match on the inbound NCB. */
891 #else
892         uint64_t data                         : 64;
893 #endif
894         } s;
895         struct cvmx_iob_inb_data_match_s      cn30xx;
896         struct cvmx_iob_inb_data_match_s      cn31xx;
897         struct cvmx_iob_inb_data_match_s      cn38xx;
898         struct cvmx_iob_inb_data_match_s      cn38xxp2;
899         struct cvmx_iob_inb_data_match_s      cn50xx;
900         struct cvmx_iob_inb_data_match_s      cn52xx;
901         struct cvmx_iob_inb_data_match_s      cn52xxp1;
902         struct cvmx_iob_inb_data_match_s      cn56xx;
903         struct cvmx_iob_inb_data_match_s      cn56xxp1;
904         struct cvmx_iob_inb_data_match_s      cn58xx;
905         struct cvmx_iob_inb_data_match_s      cn58xxp1;
906         struct cvmx_iob_inb_data_match_s      cn61xx;
907         struct cvmx_iob_inb_data_match_s      cn63xx;
908         struct cvmx_iob_inb_data_match_s      cn63xxp1;
909         struct cvmx_iob_inb_data_match_s      cn66xx;
910         struct cvmx_iob_inb_data_match_s      cn68xx;
911         struct cvmx_iob_inb_data_match_s      cn68xxp1;
912         struct cvmx_iob_inb_data_match_s      cnf71xx;
913 };
914 typedef union cvmx_iob_inb_data_match cvmx_iob_inb_data_match_t;
915
916 /**
917  * cvmx_iob_inb_data_match_enb
918  *
919  * IOB_INB_DATA_MATCH_ENB = IOB Inbound Data Match Enable
920  *
921  * Enables the match of the corresponding bit in the IOB_INB_DATA_MATCH reister. PASS-2 Register
922  */
923 union cvmx_iob_inb_data_match_enb {
924         uint64_t u64;
925         struct cvmx_iob_inb_data_match_enb_s {
926 #ifdef __BIG_ENDIAN_BITFIELD
927         uint64_t data                         : 64; /**< Bit to enable match of. */
928 #else
929         uint64_t data                         : 64;
930 #endif
931         } s;
932         struct cvmx_iob_inb_data_match_enb_s  cn30xx;
933         struct cvmx_iob_inb_data_match_enb_s  cn31xx;
934         struct cvmx_iob_inb_data_match_enb_s  cn38xx;
935         struct cvmx_iob_inb_data_match_enb_s  cn38xxp2;
936         struct cvmx_iob_inb_data_match_enb_s  cn50xx;
937         struct cvmx_iob_inb_data_match_enb_s  cn52xx;
938         struct cvmx_iob_inb_data_match_enb_s  cn52xxp1;
939         struct cvmx_iob_inb_data_match_enb_s  cn56xx;
940         struct cvmx_iob_inb_data_match_enb_s  cn56xxp1;
941         struct cvmx_iob_inb_data_match_enb_s  cn58xx;
942         struct cvmx_iob_inb_data_match_enb_s  cn58xxp1;
943         struct cvmx_iob_inb_data_match_enb_s  cn61xx;
944         struct cvmx_iob_inb_data_match_enb_s  cn63xx;
945         struct cvmx_iob_inb_data_match_enb_s  cn63xxp1;
946         struct cvmx_iob_inb_data_match_enb_s  cn66xx;
947         struct cvmx_iob_inb_data_match_enb_s  cn68xx;
948         struct cvmx_iob_inb_data_match_enb_s  cn68xxp1;
949         struct cvmx_iob_inb_data_match_enb_s  cnf71xx;
950 };
951 typedef union cvmx_iob_inb_data_match_enb cvmx_iob_inb_data_match_enb_t;
952
953 /**
954  * cvmx_iob_int_enb
955  *
956  * IOB_INT_ENB = IOB's Interrupt Enable
957  *
958  * The IOB's interrupt enable register. This is a PASS-2 register.
959  */
960 union cvmx_iob_int_enb {
961         uint64_t u64;
962         struct cvmx_iob_int_enb_s {
963 #ifdef __BIG_ENDIAN_BITFIELD
964         uint64_t reserved_6_63                : 58;
965         uint64_t p_dat                        : 1;  /**< When set (1) and bit 5 of the IOB_INT_SUM
966                                                          register is asserted the IOB will assert an
967                                                          interrupt. */
968         uint64_t np_dat                       : 1;  /**< When set (1) and bit 4 of the IOB_INT_SUM
969                                                          register is asserted the IOB will assert an
970                                                          interrupt. */
971         uint64_t p_eop                        : 1;  /**< When set (1) and bit 3 of the IOB_INT_SUM
972                                                          register is asserted the IOB will assert an
973                                                          interrupt. */
974         uint64_t p_sop                        : 1;  /**< When set (1) and bit 2 of the IOB_INT_SUM
975                                                          register is asserted the IOB will assert an
976                                                          interrupt. */
977         uint64_t np_eop                       : 1;  /**< When set (1) and bit 1 of the IOB_INT_SUM
978                                                          register is asserted the IOB will assert an
979                                                          interrupt. */
980         uint64_t np_sop                       : 1;  /**< When set (1) and bit 0 of the IOB_INT_SUM
981                                                          register is asserted the IOB will assert an
982                                                          interrupt. */
983 #else
984         uint64_t np_sop                       : 1;
985         uint64_t np_eop                       : 1;
986         uint64_t p_sop                        : 1;
987         uint64_t p_eop                        : 1;
988         uint64_t np_dat                       : 1;
989         uint64_t p_dat                        : 1;
990         uint64_t reserved_6_63                : 58;
991 #endif
992         } s;
993         struct cvmx_iob_int_enb_cn30xx {
994 #ifdef __BIG_ENDIAN_BITFIELD
995         uint64_t reserved_4_63                : 60;
996         uint64_t p_eop                        : 1;  /**< When set (1) and bit 3 of the IOB_INT_SUM
997                                                          register is asserted the IOB will assert an
998                                                          interrupt. */
999         uint64_t p_sop                        : 1;  /**< When set (1) and bit 2 of the IOB_INT_SUM
1000                                                          register is asserted the IOB will assert an
1001                                                          interrupt. */
1002         uint64_t np_eop                       : 1;  /**< When set (1) and bit 1 of the IOB_INT_SUM
1003                                                          register is asserted the IOB will assert an
1004                                                          interrupt. */
1005         uint64_t np_sop                       : 1;  /**< When set (1) and bit 0 of the IOB_INT_SUM
1006                                                          register is asserted the IOB will assert an
1007                                                          interrupt. */
1008 #else
1009         uint64_t np_sop                       : 1;
1010         uint64_t np_eop                       : 1;
1011         uint64_t p_sop                        : 1;
1012         uint64_t p_eop                        : 1;
1013         uint64_t reserved_4_63                : 60;
1014 #endif
1015         } cn30xx;
1016         struct cvmx_iob_int_enb_cn30xx        cn31xx;
1017         struct cvmx_iob_int_enb_cn30xx        cn38xx;
1018         struct cvmx_iob_int_enb_cn30xx        cn38xxp2;
1019         struct cvmx_iob_int_enb_s             cn50xx;
1020         struct cvmx_iob_int_enb_s             cn52xx;
1021         struct cvmx_iob_int_enb_s             cn52xxp1;
1022         struct cvmx_iob_int_enb_s             cn56xx;
1023         struct cvmx_iob_int_enb_s             cn56xxp1;
1024         struct cvmx_iob_int_enb_s             cn58xx;
1025         struct cvmx_iob_int_enb_s             cn58xxp1;
1026         struct cvmx_iob_int_enb_s             cn61xx;
1027         struct cvmx_iob_int_enb_s             cn63xx;
1028         struct cvmx_iob_int_enb_s             cn63xxp1;
1029         struct cvmx_iob_int_enb_s             cn66xx;
1030         struct cvmx_iob_int_enb_cn68xx {
1031 #ifdef __BIG_ENDIAN_BITFIELD
1032         uint64_t reserved_0_63                : 64;
1033 #else
1034         uint64_t reserved_0_63                : 64;
1035 #endif
1036         } cn68xx;
1037         struct cvmx_iob_int_enb_cn68xx        cn68xxp1;
1038         struct cvmx_iob_int_enb_s             cnf71xx;
1039 };
1040 typedef union cvmx_iob_int_enb cvmx_iob_int_enb_t;
1041
1042 /**
1043  * cvmx_iob_int_sum
1044  *
1045  * IOB_INT_SUM = IOB's Interrupt Summary Register
1046  *
1047  * Contains the diffrent interrupt summary bits of the IOB. This is a PASS-2 register.
1048  */
1049 union cvmx_iob_int_sum {
1050         uint64_t u64;
1051         struct cvmx_iob_int_sum_s {
1052 #ifdef __BIG_ENDIAN_BITFIELD
1053         uint64_t reserved_6_63                : 58;
1054         uint64_t p_dat                        : 1;  /**< Set when a data arrives before a SOP for the same
1055                                                          port for a passthrough packet.
1056                                                          The first detected error associated with bits [5:0]
1057                                                          of this register will only be set here. A new bit
1058                                                          can be set when the previous reported bit is cleared. */
1059         uint64_t np_dat                       : 1;  /**< Set when a data arrives before a SOP for the same
1060                                                          port for a non-passthrough packet.
1061                                                          The first detected error associated with bits [5:0]
1062                                                          of this register will only be set here. A new bit
1063                                                          can be set when the previous reported bit is cleared. */
1064         uint64_t p_eop                        : 1;  /**< Set when a EOP is followed by an EOP for the same
1065                                                          port for a passthrough packet.
1066                                                          The first detected error associated with bits [5:0]
1067                                                          of this register will only be set here. A new bit
1068                                                          can be set when the previous reported bit is cleared. */
1069         uint64_t p_sop                        : 1;  /**< Set when a SOP is followed by an SOP for the same
1070                                                          port for a passthrough packet.
1071                                                          The first detected error associated with bits [5:0]
1072                                                          of this register will only be set here. A new bit
1073                                                          can be set when the previous reported bit is cleared. */
1074         uint64_t np_eop                       : 1;  /**< Set when a EOP is followed by an EOP for the same
1075                                                          port for a non-passthrough packet.
1076                                                          The first detected error associated with bits [5:0]
1077                                                          of this register will only be set here. A new bit
1078                                                          can be set when the previous reported bit is cleared. */
1079         uint64_t np_sop                       : 1;  /**< Set when a SOP is followed by an SOP for the same
1080                                                          port for a non-passthrough packet.
1081                                                          The first detected error associated with bits [5:0]
1082                                                          of this register will only be set here. A new bit
1083                                                          can be set when the previous reported bit is cleared. */
1084 #else
1085         uint64_t np_sop                       : 1;
1086         uint64_t np_eop                       : 1;
1087         uint64_t p_sop                        : 1;
1088         uint64_t p_eop                        : 1;
1089         uint64_t np_dat                       : 1;
1090         uint64_t p_dat                        : 1;
1091         uint64_t reserved_6_63                : 58;
1092 #endif
1093         } s;
1094         struct cvmx_iob_int_sum_cn30xx {
1095 #ifdef __BIG_ENDIAN_BITFIELD
1096         uint64_t reserved_4_63                : 60;
1097         uint64_t p_eop                        : 1;  /**< Set when a EOP is followed by an EOP for the same
1098                                                          port for a passthrough packet.
1099                                                          The first detected error associated with bits [3:0]
1100                                                          of this register will only be set here. A new bit
1101                                                          can be set when the previous reported bit is cleared. */
1102         uint64_t p_sop                        : 1;  /**< Set when a SOP is followed by an SOP for the same
1103                                                          port for a passthrough packet.
1104                                                          The first detected error associated with bits [3:0]
1105                                                          of this register will only be set here. A new bit
1106                                                          can be set when the previous reported bit is cleared. */
1107         uint64_t np_eop                       : 1;  /**< Set when a EOP is followed by an EOP for the same
1108                                                          port for a non-passthrough packet.
1109                                                          The first detected error associated with bits [3:0]
1110                                                          of this register will only be set here. A new bit
1111                                                          can be set when the previous reported bit is cleared. */
1112         uint64_t np_sop                       : 1;  /**< Set when a SOP is followed by an SOP for the same
1113                                                          port for a non-passthrough packet.
1114                                                          The first detected error associated with bits [3:0]
1115                                                          of this register will only be set here. A new bit
1116                                                          can be set when the previous reported bit is cleared. */
1117 #else
1118         uint64_t np_sop                       : 1;
1119         uint64_t np_eop                       : 1;
1120         uint64_t p_sop                        : 1;
1121         uint64_t p_eop                        : 1;
1122         uint64_t reserved_4_63                : 60;
1123 #endif
1124         } cn30xx;
1125         struct cvmx_iob_int_sum_cn30xx        cn31xx;
1126         struct cvmx_iob_int_sum_cn30xx        cn38xx;
1127         struct cvmx_iob_int_sum_cn30xx        cn38xxp2;
1128         struct cvmx_iob_int_sum_s             cn50xx;
1129         struct cvmx_iob_int_sum_s             cn52xx;
1130         struct cvmx_iob_int_sum_s             cn52xxp1;
1131         struct cvmx_iob_int_sum_s             cn56xx;
1132         struct cvmx_iob_int_sum_s             cn56xxp1;
1133         struct cvmx_iob_int_sum_s             cn58xx;
1134         struct cvmx_iob_int_sum_s             cn58xxp1;
1135         struct cvmx_iob_int_sum_s             cn61xx;
1136         struct cvmx_iob_int_sum_s             cn63xx;
1137         struct cvmx_iob_int_sum_s             cn63xxp1;
1138         struct cvmx_iob_int_sum_s             cn66xx;
1139         struct cvmx_iob_int_sum_cn68xx {
1140 #ifdef __BIG_ENDIAN_BITFIELD
1141         uint64_t reserved_0_63                : 64;
1142 #else
1143         uint64_t reserved_0_63                : 64;
1144 #endif
1145         } cn68xx;
1146         struct cvmx_iob_int_sum_cn68xx        cn68xxp1;
1147         struct cvmx_iob_int_sum_s             cnf71xx;
1148 };
1149 typedef union cvmx_iob_int_sum cvmx_iob_int_sum_t;
1150
1151 /**
1152  * cvmx_iob_n2c_l2c_pri_cnt
1153  *
1154  * NCB To CMB L2C Priority Counter = NCB to CMB L2C Priority Counter Enable and Timer Value
1155  *
1156  * Enables and supplies the timeout count for raising the priority of NCB Store/Load access to the CMB.
1157  */
1158 union cvmx_iob_n2c_l2c_pri_cnt {
1159         uint64_t u64;
1160         struct cvmx_iob_n2c_l2c_pri_cnt_s {
1161 #ifdef __BIG_ENDIAN_BITFIELD
1162         uint64_t reserved_16_63               : 48;
1163         uint64_t cnt_enb                      : 1;  /**< Enables the raising of CMB access priority
1164                                                          when CNT_VAL is reached. */
1165         uint64_t cnt_val                      : 15; /**< Number of core clocks to wait before raising
1166                                                          the priority for access to CMB. */
1167 #else
1168         uint64_t cnt_val                      : 15;
1169         uint64_t cnt_enb                      : 1;
1170         uint64_t reserved_16_63               : 48;
1171 #endif
1172         } s;
1173         struct cvmx_iob_n2c_l2c_pri_cnt_s     cn38xx;
1174         struct cvmx_iob_n2c_l2c_pri_cnt_s     cn38xxp2;
1175         struct cvmx_iob_n2c_l2c_pri_cnt_s     cn52xx;
1176         struct cvmx_iob_n2c_l2c_pri_cnt_s     cn52xxp1;
1177         struct cvmx_iob_n2c_l2c_pri_cnt_s     cn56xx;
1178         struct cvmx_iob_n2c_l2c_pri_cnt_s     cn56xxp1;
1179         struct cvmx_iob_n2c_l2c_pri_cnt_s     cn58xx;
1180         struct cvmx_iob_n2c_l2c_pri_cnt_s     cn58xxp1;
1181         struct cvmx_iob_n2c_l2c_pri_cnt_s     cn61xx;
1182         struct cvmx_iob_n2c_l2c_pri_cnt_s     cn63xx;
1183         struct cvmx_iob_n2c_l2c_pri_cnt_s     cn63xxp1;
1184         struct cvmx_iob_n2c_l2c_pri_cnt_s     cn66xx;
1185         struct cvmx_iob_n2c_l2c_pri_cnt_s     cnf71xx;
1186 };
1187 typedef union cvmx_iob_n2c_l2c_pri_cnt cvmx_iob_n2c_l2c_pri_cnt_t;
1188
1189 /**
1190  * cvmx_iob_n2c_rsp_pri_cnt
1191  *
1192  * NCB To CMB Response Priority Counter = NCB to CMB Response Priority Counter Enable and Timer Value
1193  *
1194  * Enables and supplies the timeout count for raising the priority of NCB Responses access to the CMB.
1195  */
1196 union cvmx_iob_n2c_rsp_pri_cnt {
1197         uint64_t u64;
1198         struct cvmx_iob_n2c_rsp_pri_cnt_s {
1199 #ifdef __BIG_ENDIAN_BITFIELD
1200         uint64_t reserved_16_63               : 48;
1201         uint64_t cnt_enb                      : 1;  /**< Enables the raising of CMB access priority
1202                                                          when CNT_VAL is reached. */
1203         uint64_t cnt_val                      : 15; /**< Number of core clocks to wait before raising
1204                                                          the priority for access to CMB. */
1205 #else
1206         uint64_t cnt_val                      : 15;
1207         uint64_t cnt_enb                      : 1;
1208         uint64_t reserved_16_63               : 48;
1209 #endif
1210         } s;
1211         struct cvmx_iob_n2c_rsp_pri_cnt_s     cn38xx;
1212         struct cvmx_iob_n2c_rsp_pri_cnt_s     cn38xxp2;
1213         struct cvmx_iob_n2c_rsp_pri_cnt_s     cn52xx;
1214         struct cvmx_iob_n2c_rsp_pri_cnt_s     cn52xxp1;
1215         struct cvmx_iob_n2c_rsp_pri_cnt_s     cn56xx;
1216         struct cvmx_iob_n2c_rsp_pri_cnt_s     cn56xxp1;
1217         struct cvmx_iob_n2c_rsp_pri_cnt_s     cn58xx;
1218         struct cvmx_iob_n2c_rsp_pri_cnt_s     cn58xxp1;
1219         struct cvmx_iob_n2c_rsp_pri_cnt_s     cn61xx;
1220         struct cvmx_iob_n2c_rsp_pri_cnt_s     cn63xx;
1221         struct cvmx_iob_n2c_rsp_pri_cnt_s     cn63xxp1;
1222         struct cvmx_iob_n2c_rsp_pri_cnt_s     cn66xx;
1223         struct cvmx_iob_n2c_rsp_pri_cnt_s     cnf71xx;
1224 };
1225 typedef union cvmx_iob_n2c_rsp_pri_cnt cvmx_iob_n2c_rsp_pri_cnt_t;
1226
1227 /**
1228  * cvmx_iob_outb_com_pri_cnt
1229  *
1230  * Commit To NCB Priority Counter = Commit to NCB Priority Counter Enable and Timer Value
1231  *
1232  * Enables and supplies the timeout count for raising the priority of Commit request to the Outbound NCB.
1233  */
1234 union cvmx_iob_outb_com_pri_cnt {
1235         uint64_t u64;
1236         struct cvmx_iob_outb_com_pri_cnt_s {
1237 #ifdef __BIG_ENDIAN_BITFIELD
1238         uint64_t reserved_16_63               : 48;
1239         uint64_t cnt_enb                      : 1;  /**< Enables the raising of NCB access priority
1240                                                          when CNT_VAL is reached. */
1241         uint64_t cnt_val                      : 15; /**< Number of core clocks to wait before raising
1242                                                          the priority for access to NCB. */
1243 #else
1244         uint64_t cnt_val                      : 15;
1245         uint64_t cnt_enb                      : 1;
1246         uint64_t reserved_16_63               : 48;
1247 #endif
1248         } s;
1249         struct cvmx_iob_outb_com_pri_cnt_s    cn38xx;
1250         struct cvmx_iob_outb_com_pri_cnt_s    cn38xxp2;
1251         struct cvmx_iob_outb_com_pri_cnt_s    cn52xx;
1252         struct cvmx_iob_outb_com_pri_cnt_s    cn52xxp1;
1253         struct cvmx_iob_outb_com_pri_cnt_s    cn56xx;
1254         struct cvmx_iob_outb_com_pri_cnt_s    cn56xxp1;
1255         struct cvmx_iob_outb_com_pri_cnt_s    cn58xx;
1256         struct cvmx_iob_outb_com_pri_cnt_s    cn58xxp1;
1257         struct cvmx_iob_outb_com_pri_cnt_s    cn61xx;
1258         struct cvmx_iob_outb_com_pri_cnt_s    cn63xx;
1259         struct cvmx_iob_outb_com_pri_cnt_s    cn63xxp1;
1260         struct cvmx_iob_outb_com_pri_cnt_s    cn66xx;
1261         struct cvmx_iob_outb_com_pri_cnt_s    cn68xx;
1262         struct cvmx_iob_outb_com_pri_cnt_s    cn68xxp1;
1263         struct cvmx_iob_outb_com_pri_cnt_s    cnf71xx;
1264 };
1265 typedef union cvmx_iob_outb_com_pri_cnt cvmx_iob_outb_com_pri_cnt_t;
1266
1267 /**
1268  * cvmx_iob_outb_control_match
1269  *
1270  * IOB_OUTB_CONTROL_MATCH = IOB Outbound Control Match
1271  *
1272  * Match pattern for the outbound control to set the OUTB_MATCH_BIT. PASS-2 Register
1273  */
1274 union cvmx_iob_outb_control_match {
1275         uint64_t u64;
1276         struct cvmx_iob_outb_control_match_s {
1277 #ifdef __BIG_ENDIAN_BITFIELD
1278         uint64_t reserved_26_63               : 38;
1279         uint64_t mask                         : 8;  /**< Pattern to match on the outbound NCB. */
1280         uint64_t eot                          : 1;  /**< Pattern to match on the outbound NCB. */
1281         uint64_t dst                          : 8;  /**< Pattern to match on the outbound NCB. */
1282         uint64_t src                          : 9;  /**< Pattern to match on the outbound NCB. */
1283 #else
1284         uint64_t src                          : 9;
1285         uint64_t dst                          : 8;
1286         uint64_t eot                          : 1;
1287         uint64_t mask                         : 8;
1288         uint64_t reserved_26_63               : 38;
1289 #endif
1290         } s;
1291         struct cvmx_iob_outb_control_match_s  cn30xx;
1292         struct cvmx_iob_outb_control_match_s  cn31xx;
1293         struct cvmx_iob_outb_control_match_s  cn38xx;
1294         struct cvmx_iob_outb_control_match_s  cn38xxp2;
1295         struct cvmx_iob_outb_control_match_s  cn50xx;
1296         struct cvmx_iob_outb_control_match_s  cn52xx;
1297         struct cvmx_iob_outb_control_match_s  cn52xxp1;
1298         struct cvmx_iob_outb_control_match_s  cn56xx;
1299         struct cvmx_iob_outb_control_match_s  cn56xxp1;
1300         struct cvmx_iob_outb_control_match_s  cn58xx;
1301         struct cvmx_iob_outb_control_match_s  cn58xxp1;
1302         struct cvmx_iob_outb_control_match_s  cn61xx;
1303         struct cvmx_iob_outb_control_match_s  cn63xx;
1304         struct cvmx_iob_outb_control_match_s  cn63xxp1;
1305         struct cvmx_iob_outb_control_match_s  cn66xx;
1306         struct cvmx_iob_outb_control_match_s  cn68xx;
1307         struct cvmx_iob_outb_control_match_s  cn68xxp1;
1308         struct cvmx_iob_outb_control_match_s  cnf71xx;
1309 };
1310 typedef union cvmx_iob_outb_control_match cvmx_iob_outb_control_match_t;
1311
1312 /**
1313  * cvmx_iob_outb_control_match_enb
1314  *
1315  * IOB_OUTB_CONTROL_MATCH_ENB = IOB Outbound Control Match Enable
1316  *
1317  * Enables the match of the corresponding bit in the IOB_OUTB_CONTROL_MATCH reister. PASS-2 Register
1318  */
1319 union cvmx_iob_outb_control_match_enb {
1320         uint64_t u64;
1321         struct cvmx_iob_outb_control_match_enb_s {
1322 #ifdef __BIG_ENDIAN_BITFIELD
1323         uint64_t reserved_26_63               : 38;
1324         uint64_t mask                         : 8;  /**< Pattern to match on the outbound NCB. */
1325         uint64_t eot                          : 1;  /**< Pattern to match on the outbound NCB. */
1326         uint64_t dst                          : 8;  /**< Pattern to match on the outbound NCB. */
1327         uint64_t src                          : 9;  /**< Pattern to match on the outbound NCB. */
1328 #else
1329         uint64_t src                          : 9;
1330         uint64_t dst                          : 8;
1331         uint64_t eot                          : 1;
1332         uint64_t mask                         : 8;
1333         uint64_t reserved_26_63               : 38;
1334 #endif
1335         } s;
1336         struct cvmx_iob_outb_control_match_enb_s cn30xx;
1337         struct cvmx_iob_outb_control_match_enb_s cn31xx;
1338         struct cvmx_iob_outb_control_match_enb_s cn38xx;
1339         struct cvmx_iob_outb_control_match_enb_s cn38xxp2;
1340         struct cvmx_iob_outb_control_match_enb_s cn50xx;
1341         struct cvmx_iob_outb_control_match_enb_s cn52xx;
1342         struct cvmx_iob_outb_control_match_enb_s cn52xxp1;
1343         struct cvmx_iob_outb_control_match_enb_s cn56xx;
1344         struct cvmx_iob_outb_control_match_enb_s cn56xxp1;
1345         struct cvmx_iob_outb_control_match_enb_s cn58xx;
1346         struct cvmx_iob_outb_control_match_enb_s cn58xxp1;
1347         struct cvmx_iob_outb_control_match_enb_s cn61xx;
1348         struct cvmx_iob_outb_control_match_enb_s cn63xx;
1349         struct cvmx_iob_outb_control_match_enb_s cn63xxp1;
1350         struct cvmx_iob_outb_control_match_enb_s cn66xx;
1351         struct cvmx_iob_outb_control_match_enb_s cn68xx;
1352         struct cvmx_iob_outb_control_match_enb_s cn68xxp1;
1353         struct cvmx_iob_outb_control_match_enb_s cnf71xx;
1354 };
1355 typedef union cvmx_iob_outb_control_match_enb cvmx_iob_outb_control_match_enb_t;
1356
1357 /**
1358  * cvmx_iob_outb_data_match
1359  *
1360  * IOB_OUTB_DATA_MATCH = IOB Outbound Data Match
1361  *
1362  * Match pattern for the outbound data to set the OUTB_MATCH_BIT. PASS-2 Register
1363  */
1364 union cvmx_iob_outb_data_match {
1365         uint64_t u64;
1366         struct cvmx_iob_outb_data_match_s {
1367 #ifdef __BIG_ENDIAN_BITFIELD
1368         uint64_t data                         : 64; /**< Pattern to match on the outbound NCB. */
1369 #else
1370         uint64_t data                         : 64;
1371 #endif
1372         } s;
1373         struct cvmx_iob_outb_data_match_s     cn30xx;
1374         struct cvmx_iob_outb_data_match_s     cn31xx;
1375         struct cvmx_iob_outb_data_match_s     cn38xx;
1376         struct cvmx_iob_outb_data_match_s     cn38xxp2;
1377         struct cvmx_iob_outb_data_match_s     cn50xx;
1378         struct cvmx_iob_outb_data_match_s     cn52xx;
1379         struct cvmx_iob_outb_data_match_s     cn52xxp1;
1380         struct cvmx_iob_outb_data_match_s     cn56xx;
1381         struct cvmx_iob_outb_data_match_s     cn56xxp1;
1382         struct cvmx_iob_outb_data_match_s     cn58xx;
1383         struct cvmx_iob_outb_data_match_s     cn58xxp1;
1384         struct cvmx_iob_outb_data_match_s     cn61xx;
1385         struct cvmx_iob_outb_data_match_s     cn63xx;
1386         struct cvmx_iob_outb_data_match_s     cn63xxp1;
1387         struct cvmx_iob_outb_data_match_s     cn66xx;
1388         struct cvmx_iob_outb_data_match_s     cn68xx;
1389         struct cvmx_iob_outb_data_match_s     cn68xxp1;
1390         struct cvmx_iob_outb_data_match_s     cnf71xx;
1391 };
1392 typedef union cvmx_iob_outb_data_match cvmx_iob_outb_data_match_t;
1393
1394 /**
1395  * cvmx_iob_outb_data_match_enb
1396  *
1397  * IOB_OUTB_DATA_MATCH_ENB = IOB Outbound Data Match Enable
1398  *
1399  * Enables the match of the corresponding bit in the IOB_OUTB_DATA_MATCH reister. PASS-2 Register
1400  */
1401 union cvmx_iob_outb_data_match_enb {
1402         uint64_t u64;
1403         struct cvmx_iob_outb_data_match_enb_s {
1404 #ifdef __BIG_ENDIAN_BITFIELD
1405         uint64_t data                         : 64; /**< Bit to enable match of. */
1406 #else
1407         uint64_t data                         : 64;
1408 #endif
1409         } s;
1410         struct cvmx_iob_outb_data_match_enb_s cn30xx;
1411         struct cvmx_iob_outb_data_match_enb_s cn31xx;
1412         struct cvmx_iob_outb_data_match_enb_s cn38xx;
1413         struct cvmx_iob_outb_data_match_enb_s cn38xxp2;
1414         struct cvmx_iob_outb_data_match_enb_s cn50xx;
1415         struct cvmx_iob_outb_data_match_enb_s cn52xx;
1416         struct cvmx_iob_outb_data_match_enb_s cn52xxp1;
1417         struct cvmx_iob_outb_data_match_enb_s cn56xx;
1418         struct cvmx_iob_outb_data_match_enb_s cn56xxp1;
1419         struct cvmx_iob_outb_data_match_enb_s cn58xx;
1420         struct cvmx_iob_outb_data_match_enb_s cn58xxp1;
1421         struct cvmx_iob_outb_data_match_enb_s cn61xx;
1422         struct cvmx_iob_outb_data_match_enb_s cn63xx;
1423         struct cvmx_iob_outb_data_match_enb_s cn63xxp1;
1424         struct cvmx_iob_outb_data_match_enb_s cn66xx;
1425         struct cvmx_iob_outb_data_match_enb_s cn68xx;
1426         struct cvmx_iob_outb_data_match_enb_s cn68xxp1;
1427         struct cvmx_iob_outb_data_match_enb_s cnf71xx;
1428 };
1429 typedef union cvmx_iob_outb_data_match_enb cvmx_iob_outb_data_match_enb_t;
1430
1431 /**
1432  * cvmx_iob_outb_fpa_pri_cnt
1433  *
1434  * FPA To NCB Priority Counter = FPA Returns to NCB Priority Counter Enable and Timer Value
1435  *
1436  * Enables and supplies the timeout count for raising the priority of FPA Rreturn Page request to the Outbound NCB.
1437  */
1438 union cvmx_iob_outb_fpa_pri_cnt {
1439         uint64_t u64;
1440         struct cvmx_iob_outb_fpa_pri_cnt_s {
1441 #ifdef __BIG_ENDIAN_BITFIELD
1442         uint64_t reserved_16_63               : 48;
1443         uint64_t cnt_enb                      : 1;  /**< Enables the raising of NCB access priority
1444                                                          when CNT_VAL is reached. */
1445         uint64_t cnt_val                      : 15; /**< Number of core clocks to wait before raising
1446                                                          the priority for access to NCB. */
1447 #else
1448         uint64_t cnt_val                      : 15;
1449         uint64_t cnt_enb                      : 1;
1450         uint64_t reserved_16_63               : 48;
1451 #endif
1452         } s;
1453         struct cvmx_iob_outb_fpa_pri_cnt_s    cn38xx;
1454         struct cvmx_iob_outb_fpa_pri_cnt_s    cn38xxp2;
1455         struct cvmx_iob_outb_fpa_pri_cnt_s    cn52xx;
1456         struct cvmx_iob_outb_fpa_pri_cnt_s    cn52xxp1;
1457         struct cvmx_iob_outb_fpa_pri_cnt_s    cn56xx;
1458         struct cvmx_iob_outb_fpa_pri_cnt_s    cn56xxp1;
1459         struct cvmx_iob_outb_fpa_pri_cnt_s    cn58xx;
1460         struct cvmx_iob_outb_fpa_pri_cnt_s    cn58xxp1;
1461         struct cvmx_iob_outb_fpa_pri_cnt_s    cn61xx;
1462         struct cvmx_iob_outb_fpa_pri_cnt_s    cn63xx;
1463         struct cvmx_iob_outb_fpa_pri_cnt_s    cn63xxp1;
1464         struct cvmx_iob_outb_fpa_pri_cnt_s    cn66xx;
1465         struct cvmx_iob_outb_fpa_pri_cnt_s    cn68xx;
1466         struct cvmx_iob_outb_fpa_pri_cnt_s    cn68xxp1;
1467         struct cvmx_iob_outb_fpa_pri_cnt_s    cnf71xx;
1468 };
1469 typedef union cvmx_iob_outb_fpa_pri_cnt cvmx_iob_outb_fpa_pri_cnt_t;
1470
1471 /**
1472  * cvmx_iob_outb_req_pri_cnt
1473  *
1474  * Request To NCB Priority Counter = Request to NCB Priority Counter Enable and Timer Value
1475  *
1476  * Enables and supplies the timeout count for raising the priority of Request transfers to the Outbound NCB.
1477  */
1478 union cvmx_iob_outb_req_pri_cnt {
1479         uint64_t u64;
1480         struct cvmx_iob_outb_req_pri_cnt_s {
1481 #ifdef __BIG_ENDIAN_BITFIELD
1482         uint64_t reserved_16_63               : 48;
1483         uint64_t cnt_enb                      : 1;  /**< Enables the raising of NCB access priority
1484                                                          when CNT_VAL is reached. */
1485         uint64_t cnt_val                      : 15; /**< Number of core clocks to wait before raising
1486                                                          the priority for access to NCB. */
1487 #else
1488         uint64_t cnt_val                      : 15;
1489         uint64_t cnt_enb                      : 1;
1490         uint64_t reserved_16_63               : 48;
1491 #endif
1492         } s;
1493         struct cvmx_iob_outb_req_pri_cnt_s    cn38xx;
1494         struct cvmx_iob_outb_req_pri_cnt_s    cn38xxp2;
1495         struct cvmx_iob_outb_req_pri_cnt_s    cn52xx;
1496         struct cvmx_iob_outb_req_pri_cnt_s    cn52xxp1;
1497         struct cvmx_iob_outb_req_pri_cnt_s    cn56xx;
1498         struct cvmx_iob_outb_req_pri_cnt_s    cn56xxp1;
1499         struct cvmx_iob_outb_req_pri_cnt_s    cn58xx;
1500         struct cvmx_iob_outb_req_pri_cnt_s    cn58xxp1;
1501         struct cvmx_iob_outb_req_pri_cnt_s    cn61xx;
1502         struct cvmx_iob_outb_req_pri_cnt_s    cn63xx;
1503         struct cvmx_iob_outb_req_pri_cnt_s    cn63xxp1;
1504         struct cvmx_iob_outb_req_pri_cnt_s    cn66xx;
1505         struct cvmx_iob_outb_req_pri_cnt_s    cn68xx;
1506         struct cvmx_iob_outb_req_pri_cnt_s    cn68xxp1;
1507         struct cvmx_iob_outb_req_pri_cnt_s    cnf71xx;
1508 };
1509 typedef union cvmx_iob_outb_req_pri_cnt cvmx_iob_outb_req_pri_cnt_t;
1510
1511 /**
1512  * cvmx_iob_p2c_req_pri_cnt
1513  *
1514  * PKO To CMB Response Priority Counter = PKO to CMB Response Priority Counter Enable and Timer Value
1515  *
1516  * Enables and supplies the timeout count for raising the priority of PKO Load access to the CMB.
1517  */
1518 union cvmx_iob_p2c_req_pri_cnt {
1519         uint64_t u64;
1520         struct cvmx_iob_p2c_req_pri_cnt_s {
1521 #ifdef __BIG_ENDIAN_BITFIELD
1522         uint64_t reserved_16_63               : 48;
1523         uint64_t cnt_enb                      : 1;  /**< Enables the raising of CMB access priority
1524                                                          when CNT_VAL is reached. */
1525         uint64_t cnt_val                      : 15; /**< Number of core clocks to wait before raising
1526                                                          the priority for access to CMB. */
1527 #else
1528         uint64_t cnt_val                      : 15;
1529         uint64_t cnt_enb                      : 1;
1530         uint64_t reserved_16_63               : 48;
1531 #endif
1532         } s;
1533         struct cvmx_iob_p2c_req_pri_cnt_s     cn38xx;
1534         struct cvmx_iob_p2c_req_pri_cnt_s     cn38xxp2;
1535         struct cvmx_iob_p2c_req_pri_cnt_s     cn52xx;
1536         struct cvmx_iob_p2c_req_pri_cnt_s     cn52xxp1;
1537         struct cvmx_iob_p2c_req_pri_cnt_s     cn56xx;
1538         struct cvmx_iob_p2c_req_pri_cnt_s     cn56xxp1;
1539         struct cvmx_iob_p2c_req_pri_cnt_s     cn58xx;
1540         struct cvmx_iob_p2c_req_pri_cnt_s     cn58xxp1;
1541         struct cvmx_iob_p2c_req_pri_cnt_s     cn61xx;
1542         struct cvmx_iob_p2c_req_pri_cnt_s     cn63xx;
1543         struct cvmx_iob_p2c_req_pri_cnt_s     cn63xxp1;
1544         struct cvmx_iob_p2c_req_pri_cnt_s     cn66xx;
1545         struct cvmx_iob_p2c_req_pri_cnt_s     cnf71xx;
1546 };
1547 typedef union cvmx_iob_p2c_req_pri_cnt cvmx_iob_p2c_req_pri_cnt_t;
1548
1549 /**
1550  * cvmx_iob_pkt_err
1551  *
1552  * IOB_PKT_ERR = IOB Packet Error Register
1553  *
1554  * Provides status about the failing packet recevie error. This is a PASS-2 register.
1555  */
1556 union cvmx_iob_pkt_err {
1557         uint64_t u64;
1558         struct cvmx_iob_pkt_err_s {
1559 #ifdef __BIG_ENDIAN_BITFIELD
1560         uint64_t reserved_12_63               : 52;
1561         uint64_t vport                        : 6;  /**< When IOB_INT_SUM[3:0] bit is set, this field
1562                                                          latches the failing vport associate with the
1563                                                          IOB_INT_SUM[3:0] bit set. */
1564         uint64_t port                         : 6;  /**< When IOB_INT_SUM[3:0] bit is set, this field
1565                                                          latches the failing port associate with the
1566                                                          IOB_INT_SUM[3:0] bit set. */
1567 #else
1568         uint64_t port                         : 6;
1569         uint64_t vport                        : 6;
1570         uint64_t reserved_12_63               : 52;
1571 #endif
1572         } s;
1573         struct cvmx_iob_pkt_err_cn30xx {
1574 #ifdef __BIG_ENDIAN_BITFIELD
1575         uint64_t reserved_6_63                : 58;
1576         uint64_t port                         : 6;  /**< When IOB_INT_SUM[3:0] bit is set, this field
1577                                                          latches the failing port associate with the
1578                                                          IOB_INT_SUM[3:0] bit set. */
1579 #else
1580         uint64_t port                         : 6;
1581         uint64_t reserved_6_63                : 58;
1582 #endif
1583         } cn30xx;
1584         struct cvmx_iob_pkt_err_cn30xx        cn31xx;
1585         struct cvmx_iob_pkt_err_cn30xx        cn38xx;
1586         struct cvmx_iob_pkt_err_cn30xx        cn38xxp2;
1587         struct cvmx_iob_pkt_err_cn30xx        cn50xx;
1588         struct cvmx_iob_pkt_err_cn30xx        cn52xx;
1589         struct cvmx_iob_pkt_err_cn30xx        cn52xxp1;
1590         struct cvmx_iob_pkt_err_cn30xx        cn56xx;
1591         struct cvmx_iob_pkt_err_cn30xx        cn56xxp1;
1592         struct cvmx_iob_pkt_err_cn30xx        cn58xx;
1593         struct cvmx_iob_pkt_err_cn30xx        cn58xxp1;
1594         struct cvmx_iob_pkt_err_s             cn61xx;
1595         struct cvmx_iob_pkt_err_s             cn63xx;
1596         struct cvmx_iob_pkt_err_s             cn63xxp1;
1597         struct cvmx_iob_pkt_err_s             cn66xx;
1598         struct cvmx_iob_pkt_err_s             cnf71xx;
1599 };
1600 typedef union cvmx_iob_pkt_err cvmx_iob_pkt_err_t;
1601
1602 /**
1603  * cvmx_iob_to_cmb_credits
1604  *
1605  * IOB_TO_CMB_CREDITS = IOB To CMB Credits
1606  *
1607  * Controls the number of reads and writes that may be outstanding to the L2C (via the CMB).
1608  */
1609 union cvmx_iob_to_cmb_credits {
1610         uint64_t u64;
1611         struct cvmx_iob_to_cmb_credits_s {
1612 #ifdef __BIG_ENDIAN_BITFIELD
1613         uint64_t reserved_6_63                : 58;
1614         uint64_t ncb_rd                       : 3;  /**< Number of NCB reads that can be out to L2C where
1615                                                          0 == 8-credits. */
1616         uint64_t ncb_wr                       : 3;  /**< Number of NCB/PKI writes that can be out to L2C
1617                                                          where 0 == 8-credits. */
1618 #else
1619         uint64_t ncb_wr                       : 3;
1620         uint64_t ncb_rd                       : 3;
1621         uint64_t reserved_6_63                : 58;
1622 #endif
1623         } s;
1624         struct cvmx_iob_to_cmb_credits_cn52xx {
1625 #ifdef __BIG_ENDIAN_BITFIELD
1626         uint64_t reserved_9_63                : 55;
1627         uint64_t pko_rd                       : 3;  /**< Number of PKO reads that can be out to L2C where
1628                                                          0 == 8-credits. */
1629         uint64_t ncb_rd                       : 3;  /**< Number of NCB reads that can be out to L2C where
1630                                                          0 == 8-credits. */
1631         uint64_t ncb_wr                       : 3;  /**< Number of NCB/PKI writes that can be out to L2C
1632                                                          where 0 == 8-credits. */
1633 #else
1634         uint64_t ncb_wr                       : 3;
1635         uint64_t ncb_rd                       : 3;
1636         uint64_t pko_rd                       : 3;
1637         uint64_t reserved_9_63                : 55;
1638 #endif
1639         } cn52xx;
1640         struct cvmx_iob_to_cmb_credits_cn52xx cn61xx;
1641         struct cvmx_iob_to_cmb_credits_cn52xx cn63xx;
1642         struct cvmx_iob_to_cmb_credits_cn52xx cn63xxp1;
1643         struct cvmx_iob_to_cmb_credits_cn52xx cn66xx;
1644         struct cvmx_iob_to_cmb_credits_cn68xx {
1645 #ifdef __BIG_ENDIAN_BITFIELD
1646         uint64_t reserved_9_63                : 55;
1647         uint64_t dwb                          : 3;  /**< Number of DWBs  that can be out to L2C where
1648                                                          0 == 8-credits. */
1649         uint64_t ncb_rd                       : 3;  /**< Number of NCB reads that can be out to L2C where
1650                                                          0 == 8-credits. */
1651         uint64_t ncb_wr                       : 3;  /**< Number of NCB/PKI writes that can be out to L2C
1652                                                          where 0 == 8-credits. */
1653 #else
1654         uint64_t ncb_wr                       : 3;
1655         uint64_t ncb_rd                       : 3;
1656         uint64_t dwb                          : 3;
1657         uint64_t reserved_9_63                : 55;
1658 #endif
1659         } cn68xx;
1660         struct cvmx_iob_to_cmb_credits_cn68xx cn68xxp1;
1661         struct cvmx_iob_to_cmb_credits_cn52xx cnf71xx;
1662 };
1663 typedef union cvmx_iob_to_cmb_credits cvmx_iob_to_cmb_credits_t;
1664
1665 /**
1666  * cvmx_iob_to_ncb_did_00_credits
1667  *
1668  * IOB_TO_NCB_DID_00_CREDITS = IOB NCB DID 00 Credits
1669  *
1670  * Number of credits for NCB DID 00.
1671  */
1672 union cvmx_iob_to_ncb_did_00_credits {
1673         uint64_t u64;
1674         struct cvmx_iob_to_ncb_did_00_credits_s {
1675 #ifdef __BIG_ENDIAN_BITFIELD
1676         uint64_t reserved_7_63                : 57;
1677         uint64_t crd                          : 7;  /**< Number of credits for DID. Writing this field will
1678                                                          casuse the credits to be set to the value written.
1679                                                          Reading this field will give the number of credits
1680                                                          PRESENTLY available. */
1681 #else
1682         uint64_t crd                          : 7;
1683         uint64_t reserved_7_63                : 57;
1684 #endif
1685         } s;
1686         struct cvmx_iob_to_ncb_did_00_credits_s cn68xx;
1687         struct cvmx_iob_to_ncb_did_00_credits_s cn68xxp1;
1688 };
1689 typedef union cvmx_iob_to_ncb_did_00_credits cvmx_iob_to_ncb_did_00_credits_t;
1690
1691 /**
1692  * cvmx_iob_to_ncb_did_111_credits
1693  *
1694  * IOB_TO_NCB_DID_111_CREDITS = IOB NCB DID 111 Credits
1695  *
1696  * Number of credits for NCB DID 111.
1697  */
1698 union cvmx_iob_to_ncb_did_111_credits {
1699         uint64_t u64;
1700         struct cvmx_iob_to_ncb_did_111_credits_s {
1701 #ifdef __BIG_ENDIAN_BITFIELD
1702         uint64_t reserved_7_63                : 57;
1703         uint64_t crd                          : 7;  /**< Number of credits for DID. Writing this field will
1704                                                          casuse the credits to be set to the value written.
1705                                                          Reading this field will give the number of credits
1706                                                          PRESENTLY available. */
1707 #else
1708         uint64_t crd                          : 7;
1709         uint64_t reserved_7_63                : 57;
1710 #endif
1711         } s;
1712         struct cvmx_iob_to_ncb_did_111_credits_s cn68xx;
1713         struct cvmx_iob_to_ncb_did_111_credits_s cn68xxp1;
1714 };
1715 typedef union cvmx_iob_to_ncb_did_111_credits cvmx_iob_to_ncb_did_111_credits_t;
1716
1717 /**
1718  * cvmx_iob_to_ncb_did_223_credits
1719  *
1720  * IOB_TO_NCB_DID_223_CREDITS = IOB NCB DID 223 Credits
1721  *
1722  * Number of credits for NCB DID 223.
1723  */
1724 union cvmx_iob_to_ncb_did_223_credits {
1725         uint64_t u64;
1726         struct cvmx_iob_to_ncb_did_223_credits_s {
1727 #ifdef __BIG_ENDIAN_BITFIELD
1728         uint64_t reserved_7_63                : 57;
1729         uint64_t crd                          : 7;  /**< Number of credits for DID. Writing this field will
1730                                                          casuse the credits to be set to the value written.
1731                                                          Reading this field will give the number of credits
1732                                                          PRESENTLY available. */
1733 #else
1734         uint64_t crd                          : 7;
1735         uint64_t reserved_7_63                : 57;
1736 #endif
1737         } s;
1738         struct cvmx_iob_to_ncb_did_223_credits_s cn68xx;
1739         struct cvmx_iob_to_ncb_did_223_credits_s cn68xxp1;
1740 };
1741 typedef union cvmx_iob_to_ncb_did_223_credits cvmx_iob_to_ncb_did_223_credits_t;
1742
1743 /**
1744  * cvmx_iob_to_ncb_did_24_credits
1745  *
1746  * IOB_TO_NCB_DID_24_CREDITS = IOB NCB DID 24 Credits
1747  *
1748  * Number of credits for NCB DID 24.
1749  */
1750 union cvmx_iob_to_ncb_did_24_credits {
1751         uint64_t u64;
1752         struct cvmx_iob_to_ncb_did_24_credits_s {
1753 #ifdef __BIG_ENDIAN_BITFIELD
1754         uint64_t reserved_7_63                : 57;
1755         uint64_t crd                          : 7;  /**< Number of credits for DID. Writing this field will
1756                                                          casuse the credits to be set to the value written.
1757                                                          Reading this field will give the number of credits
1758                                                          PRESENTLY available. */
1759 #else
1760         uint64_t crd                          : 7;
1761         uint64_t reserved_7_63                : 57;
1762 #endif
1763         } s;
1764         struct cvmx_iob_to_ncb_did_24_credits_s cn68xx;
1765         struct cvmx_iob_to_ncb_did_24_credits_s cn68xxp1;
1766 };
1767 typedef union cvmx_iob_to_ncb_did_24_credits cvmx_iob_to_ncb_did_24_credits_t;
1768
1769 /**
1770  * cvmx_iob_to_ncb_did_32_credits
1771  *
1772  * IOB_TO_NCB_DID_32_CREDITS = IOB NCB DID 32 Credits
1773  *
1774  * Number of credits for NCB DID 32.
1775  */
1776 union cvmx_iob_to_ncb_did_32_credits {
1777         uint64_t u64;
1778         struct cvmx_iob_to_ncb_did_32_credits_s {
1779 #ifdef __BIG_ENDIAN_BITFIELD
1780         uint64_t reserved_7_63                : 57;
1781         uint64_t crd                          : 7;  /**< Number of credits for DID. Writing this field will
1782                                                          casuse the credits to be set to the value written.
1783                                                          Reading this field will give the number of credits
1784                                                          PRESENTLY available. */
1785 #else
1786         uint64_t crd                          : 7;
1787         uint64_t reserved_7_63                : 57;
1788 #endif
1789         } s;
1790         struct cvmx_iob_to_ncb_did_32_credits_s cn68xx;
1791         struct cvmx_iob_to_ncb_did_32_credits_s cn68xxp1;
1792 };
1793 typedef union cvmx_iob_to_ncb_did_32_credits cvmx_iob_to_ncb_did_32_credits_t;
1794
1795 /**
1796  * cvmx_iob_to_ncb_did_40_credits
1797  *
1798  * IOB_TO_NCB_DID_40_CREDITS = IOB NCB DID 40 Credits
1799  *
1800  * Number of credits for NCB DID 40.
1801  */
1802 union cvmx_iob_to_ncb_did_40_credits {
1803         uint64_t u64;
1804         struct cvmx_iob_to_ncb_did_40_credits_s {
1805 #ifdef __BIG_ENDIAN_BITFIELD
1806         uint64_t reserved_7_63                : 57;
1807         uint64_t crd                          : 7;  /**< Number of credits for DID. Writing this field will
1808                                                          casuse the credits to be set to the value written.
1809                                                          Reading this field will give the number of credits
1810                                                          PRESENTLY available. */
1811 #else
1812         uint64_t crd                          : 7;
1813         uint64_t reserved_7_63                : 57;
1814 #endif
1815         } s;
1816         struct cvmx_iob_to_ncb_did_40_credits_s cn68xx;
1817         struct cvmx_iob_to_ncb_did_40_credits_s cn68xxp1;
1818 };
1819 typedef union cvmx_iob_to_ncb_did_40_credits cvmx_iob_to_ncb_did_40_credits_t;
1820
1821 /**
1822  * cvmx_iob_to_ncb_did_55_credits
1823  *
1824  * IOB_TO_NCB_DID_55_CREDITS = IOB NCB DID 55 Credits
1825  *
1826  * Number of credits for NCB DID 55.
1827  */
1828 union cvmx_iob_to_ncb_did_55_credits {
1829         uint64_t u64;
1830         struct cvmx_iob_to_ncb_did_55_credits_s {
1831 #ifdef __BIG_ENDIAN_BITFIELD
1832         uint64_t reserved_7_63                : 57;
1833         uint64_t crd                          : 7;  /**< Number of credits for DID. Writing this field will
1834                                                          casuse the credits to be set to the value written.
1835                                                          Reading this field will give the number of credits
1836                                                          PRESENTLY available. */
1837 #else
1838         uint64_t crd                          : 7;
1839         uint64_t reserved_7_63                : 57;
1840 #endif
1841         } s;
1842         struct cvmx_iob_to_ncb_did_55_credits_s cn68xx;
1843         struct cvmx_iob_to_ncb_did_55_credits_s cn68xxp1;
1844 };
1845 typedef union cvmx_iob_to_ncb_did_55_credits cvmx_iob_to_ncb_did_55_credits_t;
1846
1847 /**
1848  * cvmx_iob_to_ncb_did_64_credits
1849  *
1850  * IOB_TO_NCB_DID_64_CREDITS = IOB NCB DID 64 Credits
1851  *
1852  * Number of credits for NCB DID 64.
1853  */
1854 union cvmx_iob_to_ncb_did_64_credits {
1855         uint64_t u64;
1856         struct cvmx_iob_to_ncb_did_64_credits_s {
1857 #ifdef __BIG_ENDIAN_BITFIELD
1858         uint64_t reserved_7_63                : 57;
1859         uint64_t crd                          : 7;  /**< Number of credits for DID. Writing this field will
1860                                                          casuse the credits to be set to the value written.
1861                                                          Reading this field will give the number of credits
1862                                                          PRESENTLY available. */
1863 #else
1864         uint64_t crd                          : 7;
1865         uint64_t reserved_7_63                : 57;
1866 #endif
1867         } s;
1868         struct cvmx_iob_to_ncb_did_64_credits_s cn68xx;
1869         struct cvmx_iob_to_ncb_did_64_credits_s cn68xxp1;
1870 };
1871 typedef union cvmx_iob_to_ncb_did_64_credits cvmx_iob_to_ncb_did_64_credits_t;
1872
1873 /**
1874  * cvmx_iob_to_ncb_did_79_credits
1875  *
1876  * IOB_TO_NCB_DID_79_CREDITS = IOB NCB DID 79 Credits
1877  *
1878  * Number of credits for NCB DID 79.
1879  */
1880 union cvmx_iob_to_ncb_did_79_credits {
1881         uint64_t u64;
1882         struct cvmx_iob_to_ncb_did_79_credits_s {
1883 #ifdef __BIG_ENDIAN_BITFIELD
1884         uint64_t reserved_7_63                : 57;
1885         uint64_t crd                          : 7;  /**< Number of credits for DID. Writing this field will
1886                                                          casuse the credits to be set to the value written.
1887                                                          Reading this field will give the number of credits
1888                                                          PRESENTLY available. */
1889 #else
1890         uint64_t crd                          : 7;
1891         uint64_t reserved_7_63                : 57;
1892 #endif
1893         } s;
1894         struct cvmx_iob_to_ncb_did_79_credits_s cn68xx;
1895         struct cvmx_iob_to_ncb_did_79_credits_s cn68xxp1;
1896 };
1897 typedef union cvmx_iob_to_ncb_did_79_credits cvmx_iob_to_ncb_did_79_credits_t;
1898
1899 /**
1900  * cvmx_iob_to_ncb_did_96_credits
1901  *
1902  * IOB_TO_NCB_DID_96_CREDITS = IOB NCB DID 96 Credits
1903  *
1904  * Number of credits for NCB DID 96.
1905  */
1906 union cvmx_iob_to_ncb_did_96_credits {
1907         uint64_t u64;
1908         struct cvmx_iob_to_ncb_did_96_credits_s {
1909 #ifdef __BIG_ENDIAN_BITFIELD
1910         uint64_t reserved_7_63                : 57;
1911         uint64_t crd                          : 7;  /**< Number of credits for DID. Writing this field will
1912                                                          casuse the credits to be set to the value written.
1913                                                          Reading this field will give the number of credits
1914                                                          PRESENTLY available. */
1915 #else
1916         uint64_t crd                          : 7;
1917         uint64_t reserved_7_63                : 57;
1918 #endif
1919         } s;
1920         struct cvmx_iob_to_ncb_did_96_credits_s cn68xx;
1921         struct cvmx_iob_to_ncb_did_96_credits_s cn68xxp1;
1922 };
1923 typedef union cvmx_iob_to_ncb_did_96_credits cvmx_iob_to_ncb_did_96_credits_t;
1924
1925 /**
1926  * cvmx_iob_to_ncb_did_98_credits
1927  *
1928  * IOB_TO_NCB_DID_98_CREDITS = IOB NCB DID 96 Credits
1929  *
1930  * Number of credits for NCB DID 98.
1931  */
1932 union cvmx_iob_to_ncb_did_98_credits {
1933         uint64_t u64;
1934         struct cvmx_iob_to_ncb_did_98_credits_s {
1935 #ifdef __BIG_ENDIAN_BITFIELD
1936         uint64_t reserved_7_63                : 57;
1937         uint64_t crd                          : 7;  /**< Number of credits for DID. Writing this field will
1938                                                          casuse the credits to be set to the value written.
1939                                                          Reading this field will give the number of credits
1940                                                          PRESENTLY available. */
1941 #else
1942         uint64_t crd                          : 7;
1943         uint64_t reserved_7_63                : 57;
1944 #endif
1945         } s;
1946         struct cvmx_iob_to_ncb_did_98_credits_s cn68xx;
1947         struct cvmx_iob_to_ncb_did_98_credits_s cn68xxp1;
1948 };
1949 typedef union cvmx_iob_to_ncb_did_98_credits cvmx_iob_to_ncb_did_98_credits_t;
1950
1951 #endif