1 /***********************license start***************
2 * Copyright (c) 2003-2010 Cavium Networks (support@cavium.com). All rights
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions are
10 * * Redistributions of source code must retain the above copyright
11 * notice, this list of conditions and the following disclaimer.
13 * * Redistributions in binary form must reproduce the above
14 * copyright notice, this list of conditions and the following
15 * disclaimer in the documentation and/or other materials provided
16 * with the distribution.
18 * * Neither the name of Cavium Networks nor the names of
19 * its contributors may be used to endorse or promote products
20 * derived from this software without specific prior written
23 * This Software, including technical data, may be subject to U.S. export control
24 * laws, including the U.S. Export Administration Act and its associated
25 * regulations, and may be subject to export or import regulations in other
28 * TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE SOFTWARE IS PROVIDED "AS IS"
29 * AND WITH ALL FAULTS AND CAVIUM NETWORKS MAKES NO PROMISES, REPRESENTATIONS OR
30 * WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT TO
31 * THE SOFTWARE, INCLUDING ITS CONDITION, ITS CONFORMITY TO ANY REPRESENTATION OR
32 * DESCRIPTION, OR THE EXISTENCE OF ANY LATENT OR PATENT DEFECTS, AND CAVIUM
33 * SPECIFICALLY DISCLAIMS ALL IMPLIED (IF ANY) WARRANTIES OF TITLE,
34 * MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF
35 * VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR
36 * CORRESPONDENCE TO DESCRIPTION. THE ENTIRE RISK ARISING OUT OF USE OR
37 * PERFORMANCE OF THE SOFTWARE LIES WITH YOU.
38 ***********************license end**************************************/
44 * Configuration and status register (CSR) type definitions for
47 * This file is auto generated. Do not edit.
52 #ifndef __CVMX_NPI_TYPEDEFS_H__
53 #define __CVMX_NPI_TYPEDEFS_H__
55 #define CVMX_NPI_BASE_ADDR_INPUT0 CVMX_NPI_BASE_ADDR_INPUTX(0)
56 #define CVMX_NPI_BASE_ADDR_INPUT1 CVMX_NPI_BASE_ADDR_INPUTX(1)
57 #define CVMX_NPI_BASE_ADDR_INPUT2 CVMX_NPI_BASE_ADDR_INPUTX(2)
58 #define CVMX_NPI_BASE_ADDR_INPUT3 CVMX_NPI_BASE_ADDR_INPUTX(3)
59 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
60 static inline uint64_t CVMX_NPI_BASE_ADDR_INPUTX(unsigned long offset)
63 (OCTEON_IS_MODEL(OCTEON_CN30XX) && ((offset == 0))) ||
64 (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((offset <= 1))) ||
65 (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((offset <= 3))) ||
66 (OCTEON_IS_MODEL(OCTEON_CN50XX) && ((offset <= 1))) ||
67 (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((offset <= 3)))))
68 cvmx_warn("CVMX_NPI_BASE_ADDR_INPUTX(%lu) is invalid on this chip\n", offset);
69 return CVMX_ADD_IO_SEG(0x00011F0000000070ull) + ((offset) & 3) * 16;
72 #define CVMX_NPI_BASE_ADDR_INPUTX(offset) (CVMX_ADD_IO_SEG(0x00011F0000000070ull) + ((offset) & 3) * 16)
74 #define CVMX_NPI_BASE_ADDR_OUTPUT0 CVMX_NPI_BASE_ADDR_OUTPUTX(0)
75 #define CVMX_NPI_BASE_ADDR_OUTPUT1 CVMX_NPI_BASE_ADDR_OUTPUTX(1)
76 #define CVMX_NPI_BASE_ADDR_OUTPUT2 CVMX_NPI_BASE_ADDR_OUTPUTX(2)
77 #define CVMX_NPI_BASE_ADDR_OUTPUT3 CVMX_NPI_BASE_ADDR_OUTPUTX(3)
78 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
79 static inline uint64_t CVMX_NPI_BASE_ADDR_OUTPUTX(unsigned long offset)
82 (OCTEON_IS_MODEL(OCTEON_CN30XX) && ((offset == 0))) ||
83 (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((offset <= 1))) ||
84 (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((offset <= 3))) ||
85 (OCTEON_IS_MODEL(OCTEON_CN50XX) && ((offset <= 1))) ||
86 (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((offset <= 3)))))
87 cvmx_warn("CVMX_NPI_BASE_ADDR_OUTPUTX(%lu) is invalid on this chip\n", offset);
88 return CVMX_ADD_IO_SEG(0x00011F00000000B8ull) + ((offset) & 3) * 8;
91 #define CVMX_NPI_BASE_ADDR_OUTPUTX(offset) (CVMX_ADD_IO_SEG(0x00011F00000000B8ull) + ((offset) & 3) * 8)
93 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
94 #define CVMX_NPI_BIST_STATUS CVMX_NPI_BIST_STATUS_FUNC()
95 static inline uint64_t CVMX_NPI_BIST_STATUS_FUNC(void)
97 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
98 cvmx_warn("CVMX_NPI_BIST_STATUS not supported on this chip\n");
99 return CVMX_ADD_IO_SEG(0x00011F00000003F8ull);
102 #define CVMX_NPI_BIST_STATUS (CVMX_ADD_IO_SEG(0x00011F00000003F8ull))
104 #define CVMX_NPI_BUFF_SIZE_OUTPUT0 CVMX_NPI_BUFF_SIZE_OUTPUTX(0)
105 #define CVMX_NPI_BUFF_SIZE_OUTPUT1 CVMX_NPI_BUFF_SIZE_OUTPUTX(1)
106 #define CVMX_NPI_BUFF_SIZE_OUTPUT2 CVMX_NPI_BUFF_SIZE_OUTPUTX(2)
107 #define CVMX_NPI_BUFF_SIZE_OUTPUT3 CVMX_NPI_BUFF_SIZE_OUTPUTX(3)
108 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
109 static inline uint64_t CVMX_NPI_BUFF_SIZE_OUTPUTX(unsigned long offset)
112 (OCTEON_IS_MODEL(OCTEON_CN30XX) && ((offset == 0))) ||
113 (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((offset <= 1))) ||
114 (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((offset <= 3))) ||
115 (OCTEON_IS_MODEL(OCTEON_CN50XX) && ((offset <= 1))) ||
116 (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((offset <= 3)))))
117 cvmx_warn("CVMX_NPI_BUFF_SIZE_OUTPUTX(%lu) is invalid on this chip\n", offset);
118 return CVMX_ADD_IO_SEG(0x00011F00000000E0ull) + ((offset) & 3) * 8;
121 #define CVMX_NPI_BUFF_SIZE_OUTPUTX(offset) (CVMX_ADD_IO_SEG(0x00011F00000000E0ull) + ((offset) & 3) * 8)
123 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
124 #define CVMX_NPI_COMP_CTL CVMX_NPI_COMP_CTL_FUNC()
125 static inline uint64_t CVMX_NPI_COMP_CTL_FUNC(void)
127 if (!(OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
128 cvmx_warn("CVMX_NPI_COMP_CTL not supported on this chip\n");
129 return CVMX_ADD_IO_SEG(0x00011F0000000218ull);
132 #define CVMX_NPI_COMP_CTL (CVMX_ADD_IO_SEG(0x00011F0000000218ull))
134 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
135 #define CVMX_NPI_CTL_STATUS CVMX_NPI_CTL_STATUS_FUNC()
136 static inline uint64_t CVMX_NPI_CTL_STATUS_FUNC(void)
138 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
139 cvmx_warn("CVMX_NPI_CTL_STATUS not supported on this chip\n");
140 return CVMX_ADD_IO_SEG(0x00011F0000000010ull);
143 #define CVMX_NPI_CTL_STATUS (CVMX_ADD_IO_SEG(0x00011F0000000010ull))
145 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
146 #define CVMX_NPI_DBG_SELECT CVMX_NPI_DBG_SELECT_FUNC()
147 static inline uint64_t CVMX_NPI_DBG_SELECT_FUNC(void)
149 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
150 cvmx_warn("CVMX_NPI_DBG_SELECT not supported on this chip\n");
151 return CVMX_ADD_IO_SEG(0x00011F0000000008ull);
154 #define CVMX_NPI_DBG_SELECT (CVMX_ADD_IO_SEG(0x00011F0000000008ull))
156 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
157 #define CVMX_NPI_DMA_CONTROL CVMX_NPI_DMA_CONTROL_FUNC()
158 static inline uint64_t CVMX_NPI_DMA_CONTROL_FUNC(void)
160 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
161 cvmx_warn("CVMX_NPI_DMA_CONTROL not supported on this chip\n");
162 return CVMX_ADD_IO_SEG(0x00011F0000000128ull);
165 #define CVMX_NPI_DMA_CONTROL (CVMX_ADD_IO_SEG(0x00011F0000000128ull))
167 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
168 #define CVMX_NPI_DMA_HIGHP_COUNTS CVMX_NPI_DMA_HIGHP_COUNTS_FUNC()
169 static inline uint64_t CVMX_NPI_DMA_HIGHP_COUNTS_FUNC(void)
171 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
172 cvmx_warn("CVMX_NPI_DMA_HIGHP_COUNTS not supported on this chip\n");
173 return CVMX_ADD_IO_SEG(0x00011F0000000148ull);
176 #define CVMX_NPI_DMA_HIGHP_COUNTS (CVMX_ADD_IO_SEG(0x00011F0000000148ull))
178 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
179 #define CVMX_NPI_DMA_HIGHP_NADDR CVMX_NPI_DMA_HIGHP_NADDR_FUNC()
180 static inline uint64_t CVMX_NPI_DMA_HIGHP_NADDR_FUNC(void)
182 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
183 cvmx_warn("CVMX_NPI_DMA_HIGHP_NADDR not supported on this chip\n");
184 return CVMX_ADD_IO_SEG(0x00011F0000000158ull);
187 #define CVMX_NPI_DMA_HIGHP_NADDR (CVMX_ADD_IO_SEG(0x00011F0000000158ull))
189 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
190 #define CVMX_NPI_DMA_LOWP_COUNTS CVMX_NPI_DMA_LOWP_COUNTS_FUNC()
191 static inline uint64_t CVMX_NPI_DMA_LOWP_COUNTS_FUNC(void)
193 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
194 cvmx_warn("CVMX_NPI_DMA_LOWP_COUNTS not supported on this chip\n");
195 return CVMX_ADD_IO_SEG(0x00011F0000000140ull);
198 #define CVMX_NPI_DMA_LOWP_COUNTS (CVMX_ADD_IO_SEG(0x00011F0000000140ull))
200 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
201 #define CVMX_NPI_DMA_LOWP_NADDR CVMX_NPI_DMA_LOWP_NADDR_FUNC()
202 static inline uint64_t CVMX_NPI_DMA_LOWP_NADDR_FUNC(void)
204 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
205 cvmx_warn("CVMX_NPI_DMA_LOWP_NADDR not supported on this chip\n");
206 return CVMX_ADD_IO_SEG(0x00011F0000000150ull);
209 #define CVMX_NPI_DMA_LOWP_NADDR (CVMX_ADD_IO_SEG(0x00011F0000000150ull))
211 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
212 #define CVMX_NPI_HIGHP_DBELL CVMX_NPI_HIGHP_DBELL_FUNC()
213 static inline uint64_t CVMX_NPI_HIGHP_DBELL_FUNC(void)
215 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
216 cvmx_warn("CVMX_NPI_HIGHP_DBELL not supported on this chip\n");
217 return CVMX_ADD_IO_SEG(0x00011F0000000120ull);
220 #define CVMX_NPI_HIGHP_DBELL (CVMX_ADD_IO_SEG(0x00011F0000000120ull))
222 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
223 #define CVMX_NPI_HIGHP_IBUFF_SADDR CVMX_NPI_HIGHP_IBUFF_SADDR_FUNC()
224 static inline uint64_t CVMX_NPI_HIGHP_IBUFF_SADDR_FUNC(void)
226 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
227 cvmx_warn("CVMX_NPI_HIGHP_IBUFF_SADDR not supported on this chip\n");
228 return CVMX_ADD_IO_SEG(0x00011F0000000110ull);
231 #define CVMX_NPI_HIGHP_IBUFF_SADDR (CVMX_ADD_IO_SEG(0x00011F0000000110ull))
233 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
234 #define CVMX_NPI_INPUT_CONTROL CVMX_NPI_INPUT_CONTROL_FUNC()
235 static inline uint64_t CVMX_NPI_INPUT_CONTROL_FUNC(void)
237 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
238 cvmx_warn("CVMX_NPI_INPUT_CONTROL not supported on this chip\n");
239 return CVMX_ADD_IO_SEG(0x00011F0000000138ull);
242 #define CVMX_NPI_INPUT_CONTROL (CVMX_ADD_IO_SEG(0x00011F0000000138ull))
244 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
245 #define CVMX_NPI_INT_ENB CVMX_NPI_INT_ENB_FUNC()
246 static inline uint64_t CVMX_NPI_INT_ENB_FUNC(void)
248 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
249 cvmx_warn("CVMX_NPI_INT_ENB not supported on this chip\n");
250 return CVMX_ADD_IO_SEG(0x00011F0000000020ull);
253 #define CVMX_NPI_INT_ENB (CVMX_ADD_IO_SEG(0x00011F0000000020ull))
255 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
256 #define CVMX_NPI_INT_SUM CVMX_NPI_INT_SUM_FUNC()
257 static inline uint64_t CVMX_NPI_INT_SUM_FUNC(void)
259 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
260 cvmx_warn("CVMX_NPI_INT_SUM not supported on this chip\n");
261 return CVMX_ADD_IO_SEG(0x00011F0000000018ull);
264 #define CVMX_NPI_INT_SUM (CVMX_ADD_IO_SEG(0x00011F0000000018ull))
266 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
267 #define CVMX_NPI_LOWP_DBELL CVMX_NPI_LOWP_DBELL_FUNC()
268 static inline uint64_t CVMX_NPI_LOWP_DBELL_FUNC(void)
270 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
271 cvmx_warn("CVMX_NPI_LOWP_DBELL not supported on this chip\n");
272 return CVMX_ADD_IO_SEG(0x00011F0000000118ull);
275 #define CVMX_NPI_LOWP_DBELL (CVMX_ADD_IO_SEG(0x00011F0000000118ull))
277 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
278 #define CVMX_NPI_LOWP_IBUFF_SADDR CVMX_NPI_LOWP_IBUFF_SADDR_FUNC()
279 static inline uint64_t CVMX_NPI_LOWP_IBUFF_SADDR_FUNC(void)
281 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
282 cvmx_warn("CVMX_NPI_LOWP_IBUFF_SADDR not supported on this chip\n");
283 return CVMX_ADD_IO_SEG(0x00011F0000000108ull);
286 #define CVMX_NPI_LOWP_IBUFF_SADDR (CVMX_ADD_IO_SEG(0x00011F0000000108ull))
288 #define CVMX_NPI_MEM_ACCESS_SUBID3 CVMX_NPI_MEM_ACCESS_SUBIDX(3)
289 #define CVMX_NPI_MEM_ACCESS_SUBID4 CVMX_NPI_MEM_ACCESS_SUBIDX(4)
290 #define CVMX_NPI_MEM_ACCESS_SUBID5 CVMX_NPI_MEM_ACCESS_SUBIDX(5)
291 #define CVMX_NPI_MEM_ACCESS_SUBID6 CVMX_NPI_MEM_ACCESS_SUBIDX(6)
292 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
293 static inline uint64_t CVMX_NPI_MEM_ACCESS_SUBIDX(unsigned long offset)
296 (OCTEON_IS_MODEL(OCTEON_CN30XX) && (((offset >= 3) && (offset <= 6)))) ||
297 (OCTEON_IS_MODEL(OCTEON_CN31XX) && (((offset >= 3) && (offset <= 6)))) ||
298 (OCTEON_IS_MODEL(OCTEON_CN38XX) && (((offset >= 3) && (offset <= 6)))) ||
299 (OCTEON_IS_MODEL(OCTEON_CN50XX) && (((offset >= 3) && (offset <= 6)))) ||
300 (OCTEON_IS_MODEL(OCTEON_CN58XX) && (((offset >= 3) && (offset <= 6))))))
301 cvmx_warn("CVMX_NPI_MEM_ACCESS_SUBIDX(%lu) is invalid on this chip\n", offset);
302 return CVMX_ADD_IO_SEG(0x00011F0000000028ull) + ((offset) & 7) * 8 - 8*3;
305 #define CVMX_NPI_MEM_ACCESS_SUBIDX(offset) (CVMX_ADD_IO_SEG(0x00011F0000000028ull) + ((offset) & 7) * 8 - 8*3)
307 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
308 #define CVMX_NPI_MSI_RCV CVMX_NPI_MSI_RCV_FUNC()
309 static inline uint64_t CVMX_NPI_MSI_RCV_FUNC(void)
311 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
312 cvmx_warn("CVMX_NPI_MSI_RCV not supported on this chip\n");
313 return 0x0000000000000190ull;
316 #define CVMX_NPI_MSI_RCV (0x0000000000000190ull)
318 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
319 #define CVMX_NPI_NPI_MSI_RCV CVMX_NPI_NPI_MSI_RCV_FUNC()
320 static inline uint64_t CVMX_NPI_NPI_MSI_RCV_FUNC(void)
322 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
323 cvmx_warn("CVMX_NPI_NPI_MSI_RCV not supported on this chip\n");
324 return CVMX_ADD_IO_SEG(0x00011F0000001190ull);
327 #define CVMX_NPI_NPI_MSI_RCV (CVMX_ADD_IO_SEG(0x00011F0000001190ull))
329 #define CVMX_NPI_NUM_DESC_OUTPUT0 CVMX_NPI_NUM_DESC_OUTPUTX(0)
330 #define CVMX_NPI_NUM_DESC_OUTPUT1 CVMX_NPI_NUM_DESC_OUTPUTX(1)
331 #define CVMX_NPI_NUM_DESC_OUTPUT2 CVMX_NPI_NUM_DESC_OUTPUTX(2)
332 #define CVMX_NPI_NUM_DESC_OUTPUT3 CVMX_NPI_NUM_DESC_OUTPUTX(3)
333 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
334 static inline uint64_t CVMX_NPI_NUM_DESC_OUTPUTX(unsigned long offset)
337 (OCTEON_IS_MODEL(OCTEON_CN30XX) && ((offset == 0))) ||
338 (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((offset <= 1))) ||
339 (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((offset <= 3))) ||
340 (OCTEON_IS_MODEL(OCTEON_CN50XX) && ((offset <= 1))) ||
341 (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((offset <= 3)))))
342 cvmx_warn("CVMX_NPI_NUM_DESC_OUTPUTX(%lu) is invalid on this chip\n", offset);
343 return CVMX_ADD_IO_SEG(0x00011F0000000050ull) + ((offset) & 3) * 8;
346 #define CVMX_NPI_NUM_DESC_OUTPUTX(offset) (CVMX_ADD_IO_SEG(0x00011F0000000050ull) + ((offset) & 3) * 8)
348 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
349 #define CVMX_NPI_OUTPUT_CONTROL CVMX_NPI_OUTPUT_CONTROL_FUNC()
350 static inline uint64_t CVMX_NPI_OUTPUT_CONTROL_FUNC(void)
352 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
353 cvmx_warn("CVMX_NPI_OUTPUT_CONTROL not supported on this chip\n");
354 return CVMX_ADD_IO_SEG(0x00011F0000000100ull);
357 #define CVMX_NPI_OUTPUT_CONTROL (CVMX_ADD_IO_SEG(0x00011F0000000100ull))
359 #define CVMX_NPI_P0_DBPAIR_ADDR CVMX_NPI_PX_DBPAIR_ADDR(0)
360 #define CVMX_NPI_P0_INSTR_ADDR CVMX_NPI_PX_INSTR_ADDR(0)
361 #define CVMX_NPI_P0_INSTR_CNTS CVMX_NPI_PX_INSTR_CNTS(0)
362 #define CVMX_NPI_P0_PAIR_CNTS CVMX_NPI_PX_PAIR_CNTS(0)
363 #define CVMX_NPI_P1_DBPAIR_ADDR CVMX_NPI_PX_DBPAIR_ADDR(1)
364 #define CVMX_NPI_P1_INSTR_ADDR CVMX_NPI_PX_INSTR_ADDR(1)
365 #define CVMX_NPI_P1_INSTR_CNTS CVMX_NPI_PX_INSTR_CNTS(1)
366 #define CVMX_NPI_P1_PAIR_CNTS CVMX_NPI_PX_PAIR_CNTS(1)
367 #define CVMX_NPI_P2_DBPAIR_ADDR CVMX_NPI_PX_DBPAIR_ADDR(2)
368 #define CVMX_NPI_P2_INSTR_ADDR CVMX_NPI_PX_INSTR_ADDR(2)
369 #define CVMX_NPI_P2_INSTR_CNTS CVMX_NPI_PX_INSTR_CNTS(2)
370 #define CVMX_NPI_P2_PAIR_CNTS CVMX_NPI_PX_PAIR_CNTS(2)
371 #define CVMX_NPI_P3_DBPAIR_ADDR CVMX_NPI_PX_DBPAIR_ADDR(3)
372 #define CVMX_NPI_P3_INSTR_ADDR CVMX_NPI_PX_INSTR_ADDR(3)
373 #define CVMX_NPI_P3_INSTR_CNTS CVMX_NPI_PX_INSTR_CNTS(3)
374 #define CVMX_NPI_P3_PAIR_CNTS CVMX_NPI_PX_PAIR_CNTS(3)
375 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
376 static inline uint64_t CVMX_NPI_PCI_BAR1_INDEXX(unsigned long offset)
379 (OCTEON_IS_MODEL(OCTEON_CN30XX) && ((offset <= 31))) ||
380 (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((offset <= 31))) ||
381 (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((offset <= 31))) ||
382 (OCTEON_IS_MODEL(OCTEON_CN50XX) && ((offset <= 31))) ||
383 (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((offset <= 31)))))
384 cvmx_warn("CVMX_NPI_PCI_BAR1_INDEXX(%lu) is invalid on this chip\n", offset);
385 return CVMX_ADD_IO_SEG(0x00011F0000001100ull) + ((offset) & 31) * 4;
388 #define CVMX_NPI_PCI_BAR1_INDEXX(offset) (CVMX_ADD_IO_SEG(0x00011F0000001100ull) + ((offset) & 31) * 4)
390 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
391 #define CVMX_NPI_PCI_BIST_REG CVMX_NPI_PCI_BIST_REG_FUNC()
392 static inline uint64_t CVMX_NPI_PCI_BIST_REG_FUNC(void)
394 if (!(OCTEON_IS_MODEL(OCTEON_CN50XX)))
395 cvmx_warn("CVMX_NPI_PCI_BIST_REG not supported on this chip\n");
396 return CVMX_ADD_IO_SEG(0x00011F00000011C0ull);
399 #define CVMX_NPI_PCI_BIST_REG (CVMX_ADD_IO_SEG(0x00011F00000011C0ull))
401 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
402 #define CVMX_NPI_PCI_BURST_SIZE CVMX_NPI_PCI_BURST_SIZE_FUNC()
403 static inline uint64_t CVMX_NPI_PCI_BURST_SIZE_FUNC(void)
405 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
406 cvmx_warn("CVMX_NPI_PCI_BURST_SIZE not supported on this chip\n");
407 return CVMX_ADD_IO_SEG(0x00011F00000000D8ull);
410 #define CVMX_NPI_PCI_BURST_SIZE (CVMX_ADD_IO_SEG(0x00011F00000000D8ull))
412 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
413 #define CVMX_NPI_PCI_CFG00 CVMX_NPI_PCI_CFG00_FUNC()
414 static inline uint64_t CVMX_NPI_PCI_CFG00_FUNC(void)
416 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
417 cvmx_warn("CVMX_NPI_PCI_CFG00 not supported on this chip\n");
418 return CVMX_ADD_IO_SEG(0x00011F0000001800ull);
421 #define CVMX_NPI_PCI_CFG00 (CVMX_ADD_IO_SEG(0x00011F0000001800ull))
423 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
424 #define CVMX_NPI_PCI_CFG01 CVMX_NPI_PCI_CFG01_FUNC()
425 static inline uint64_t CVMX_NPI_PCI_CFG01_FUNC(void)
427 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
428 cvmx_warn("CVMX_NPI_PCI_CFG01 not supported on this chip\n");
429 return CVMX_ADD_IO_SEG(0x00011F0000001804ull);
432 #define CVMX_NPI_PCI_CFG01 (CVMX_ADD_IO_SEG(0x00011F0000001804ull))
434 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
435 #define CVMX_NPI_PCI_CFG02 CVMX_NPI_PCI_CFG02_FUNC()
436 static inline uint64_t CVMX_NPI_PCI_CFG02_FUNC(void)
438 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
439 cvmx_warn("CVMX_NPI_PCI_CFG02 not supported on this chip\n");
440 return CVMX_ADD_IO_SEG(0x00011F0000001808ull);
443 #define CVMX_NPI_PCI_CFG02 (CVMX_ADD_IO_SEG(0x00011F0000001808ull))
445 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
446 #define CVMX_NPI_PCI_CFG03 CVMX_NPI_PCI_CFG03_FUNC()
447 static inline uint64_t CVMX_NPI_PCI_CFG03_FUNC(void)
449 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
450 cvmx_warn("CVMX_NPI_PCI_CFG03 not supported on this chip\n");
451 return CVMX_ADD_IO_SEG(0x00011F000000180Cull);
454 #define CVMX_NPI_PCI_CFG03 (CVMX_ADD_IO_SEG(0x00011F000000180Cull))
456 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
457 #define CVMX_NPI_PCI_CFG04 CVMX_NPI_PCI_CFG04_FUNC()
458 static inline uint64_t CVMX_NPI_PCI_CFG04_FUNC(void)
460 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
461 cvmx_warn("CVMX_NPI_PCI_CFG04 not supported on this chip\n");
462 return CVMX_ADD_IO_SEG(0x00011F0000001810ull);
465 #define CVMX_NPI_PCI_CFG04 (CVMX_ADD_IO_SEG(0x00011F0000001810ull))
467 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
468 #define CVMX_NPI_PCI_CFG05 CVMX_NPI_PCI_CFG05_FUNC()
469 static inline uint64_t CVMX_NPI_PCI_CFG05_FUNC(void)
471 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
472 cvmx_warn("CVMX_NPI_PCI_CFG05 not supported on this chip\n");
473 return CVMX_ADD_IO_SEG(0x00011F0000001814ull);
476 #define CVMX_NPI_PCI_CFG05 (CVMX_ADD_IO_SEG(0x00011F0000001814ull))
478 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
479 #define CVMX_NPI_PCI_CFG06 CVMX_NPI_PCI_CFG06_FUNC()
480 static inline uint64_t CVMX_NPI_PCI_CFG06_FUNC(void)
482 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
483 cvmx_warn("CVMX_NPI_PCI_CFG06 not supported on this chip\n");
484 return CVMX_ADD_IO_SEG(0x00011F0000001818ull);
487 #define CVMX_NPI_PCI_CFG06 (CVMX_ADD_IO_SEG(0x00011F0000001818ull))
489 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
490 #define CVMX_NPI_PCI_CFG07 CVMX_NPI_PCI_CFG07_FUNC()
491 static inline uint64_t CVMX_NPI_PCI_CFG07_FUNC(void)
493 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
494 cvmx_warn("CVMX_NPI_PCI_CFG07 not supported on this chip\n");
495 return CVMX_ADD_IO_SEG(0x00011F000000181Cull);
498 #define CVMX_NPI_PCI_CFG07 (CVMX_ADD_IO_SEG(0x00011F000000181Cull))
500 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
501 #define CVMX_NPI_PCI_CFG08 CVMX_NPI_PCI_CFG08_FUNC()
502 static inline uint64_t CVMX_NPI_PCI_CFG08_FUNC(void)
504 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
505 cvmx_warn("CVMX_NPI_PCI_CFG08 not supported on this chip\n");
506 return CVMX_ADD_IO_SEG(0x00011F0000001820ull);
509 #define CVMX_NPI_PCI_CFG08 (CVMX_ADD_IO_SEG(0x00011F0000001820ull))
511 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
512 #define CVMX_NPI_PCI_CFG09 CVMX_NPI_PCI_CFG09_FUNC()
513 static inline uint64_t CVMX_NPI_PCI_CFG09_FUNC(void)
515 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
516 cvmx_warn("CVMX_NPI_PCI_CFG09 not supported on this chip\n");
517 return CVMX_ADD_IO_SEG(0x00011F0000001824ull);
520 #define CVMX_NPI_PCI_CFG09 (CVMX_ADD_IO_SEG(0x00011F0000001824ull))
522 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
523 #define CVMX_NPI_PCI_CFG10 CVMX_NPI_PCI_CFG10_FUNC()
524 static inline uint64_t CVMX_NPI_PCI_CFG10_FUNC(void)
526 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
527 cvmx_warn("CVMX_NPI_PCI_CFG10 not supported on this chip\n");
528 return CVMX_ADD_IO_SEG(0x00011F0000001828ull);
531 #define CVMX_NPI_PCI_CFG10 (CVMX_ADD_IO_SEG(0x00011F0000001828ull))
533 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
534 #define CVMX_NPI_PCI_CFG11 CVMX_NPI_PCI_CFG11_FUNC()
535 static inline uint64_t CVMX_NPI_PCI_CFG11_FUNC(void)
537 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
538 cvmx_warn("CVMX_NPI_PCI_CFG11 not supported on this chip\n");
539 return CVMX_ADD_IO_SEG(0x00011F000000182Cull);
542 #define CVMX_NPI_PCI_CFG11 (CVMX_ADD_IO_SEG(0x00011F000000182Cull))
544 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
545 #define CVMX_NPI_PCI_CFG12 CVMX_NPI_PCI_CFG12_FUNC()
546 static inline uint64_t CVMX_NPI_PCI_CFG12_FUNC(void)
548 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
549 cvmx_warn("CVMX_NPI_PCI_CFG12 not supported on this chip\n");
550 return CVMX_ADD_IO_SEG(0x00011F0000001830ull);
553 #define CVMX_NPI_PCI_CFG12 (CVMX_ADD_IO_SEG(0x00011F0000001830ull))
555 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
556 #define CVMX_NPI_PCI_CFG13 CVMX_NPI_PCI_CFG13_FUNC()
557 static inline uint64_t CVMX_NPI_PCI_CFG13_FUNC(void)
559 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
560 cvmx_warn("CVMX_NPI_PCI_CFG13 not supported on this chip\n");
561 return CVMX_ADD_IO_SEG(0x00011F0000001834ull);
564 #define CVMX_NPI_PCI_CFG13 (CVMX_ADD_IO_SEG(0x00011F0000001834ull))
566 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
567 #define CVMX_NPI_PCI_CFG15 CVMX_NPI_PCI_CFG15_FUNC()
568 static inline uint64_t CVMX_NPI_PCI_CFG15_FUNC(void)
570 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
571 cvmx_warn("CVMX_NPI_PCI_CFG15 not supported on this chip\n");
572 return CVMX_ADD_IO_SEG(0x00011F000000183Cull);
575 #define CVMX_NPI_PCI_CFG15 (CVMX_ADD_IO_SEG(0x00011F000000183Cull))
577 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
578 #define CVMX_NPI_PCI_CFG16 CVMX_NPI_PCI_CFG16_FUNC()
579 static inline uint64_t CVMX_NPI_PCI_CFG16_FUNC(void)
581 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
582 cvmx_warn("CVMX_NPI_PCI_CFG16 not supported on this chip\n");
583 return CVMX_ADD_IO_SEG(0x00011F0000001840ull);
586 #define CVMX_NPI_PCI_CFG16 (CVMX_ADD_IO_SEG(0x00011F0000001840ull))
588 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
589 #define CVMX_NPI_PCI_CFG17 CVMX_NPI_PCI_CFG17_FUNC()
590 static inline uint64_t CVMX_NPI_PCI_CFG17_FUNC(void)
592 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
593 cvmx_warn("CVMX_NPI_PCI_CFG17 not supported on this chip\n");
594 return CVMX_ADD_IO_SEG(0x00011F0000001844ull);
597 #define CVMX_NPI_PCI_CFG17 (CVMX_ADD_IO_SEG(0x00011F0000001844ull))
599 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
600 #define CVMX_NPI_PCI_CFG18 CVMX_NPI_PCI_CFG18_FUNC()
601 static inline uint64_t CVMX_NPI_PCI_CFG18_FUNC(void)
603 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
604 cvmx_warn("CVMX_NPI_PCI_CFG18 not supported on this chip\n");
605 return CVMX_ADD_IO_SEG(0x00011F0000001848ull);
608 #define CVMX_NPI_PCI_CFG18 (CVMX_ADD_IO_SEG(0x00011F0000001848ull))
610 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
611 #define CVMX_NPI_PCI_CFG19 CVMX_NPI_PCI_CFG19_FUNC()
612 static inline uint64_t CVMX_NPI_PCI_CFG19_FUNC(void)
614 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
615 cvmx_warn("CVMX_NPI_PCI_CFG19 not supported on this chip\n");
616 return CVMX_ADD_IO_SEG(0x00011F000000184Cull);
619 #define CVMX_NPI_PCI_CFG19 (CVMX_ADD_IO_SEG(0x00011F000000184Cull))
621 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
622 #define CVMX_NPI_PCI_CFG20 CVMX_NPI_PCI_CFG20_FUNC()
623 static inline uint64_t CVMX_NPI_PCI_CFG20_FUNC(void)
625 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
626 cvmx_warn("CVMX_NPI_PCI_CFG20 not supported on this chip\n");
627 return CVMX_ADD_IO_SEG(0x00011F0000001850ull);
630 #define CVMX_NPI_PCI_CFG20 (CVMX_ADD_IO_SEG(0x00011F0000001850ull))
632 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
633 #define CVMX_NPI_PCI_CFG21 CVMX_NPI_PCI_CFG21_FUNC()
634 static inline uint64_t CVMX_NPI_PCI_CFG21_FUNC(void)
636 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
637 cvmx_warn("CVMX_NPI_PCI_CFG21 not supported on this chip\n");
638 return CVMX_ADD_IO_SEG(0x00011F0000001854ull);
641 #define CVMX_NPI_PCI_CFG21 (CVMX_ADD_IO_SEG(0x00011F0000001854ull))
643 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
644 #define CVMX_NPI_PCI_CFG22 CVMX_NPI_PCI_CFG22_FUNC()
645 static inline uint64_t CVMX_NPI_PCI_CFG22_FUNC(void)
647 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
648 cvmx_warn("CVMX_NPI_PCI_CFG22 not supported on this chip\n");
649 return CVMX_ADD_IO_SEG(0x00011F0000001858ull);
652 #define CVMX_NPI_PCI_CFG22 (CVMX_ADD_IO_SEG(0x00011F0000001858ull))
654 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
655 #define CVMX_NPI_PCI_CFG56 CVMX_NPI_PCI_CFG56_FUNC()
656 static inline uint64_t CVMX_NPI_PCI_CFG56_FUNC(void)
658 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
659 cvmx_warn("CVMX_NPI_PCI_CFG56 not supported on this chip\n");
660 return CVMX_ADD_IO_SEG(0x00011F00000018E0ull);
663 #define CVMX_NPI_PCI_CFG56 (CVMX_ADD_IO_SEG(0x00011F00000018E0ull))
665 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
666 #define CVMX_NPI_PCI_CFG57 CVMX_NPI_PCI_CFG57_FUNC()
667 static inline uint64_t CVMX_NPI_PCI_CFG57_FUNC(void)
669 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
670 cvmx_warn("CVMX_NPI_PCI_CFG57 not supported on this chip\n");
671 return CVMX_ADD_IO_SEG(0x00011F00000018E4ull);
674 #define CVMX_NPI_PCI_CFG57 (CVMX_ADD_IO_SEG(0x00011F00000018E4ull))
676 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
677 #define CVMX_NPI_PCI_CFG58 CVMX_NPI_PCI_CFG58_FUNC()
678 static inline uint64_t CVMX_NPI_PCI_CFG58_FUNC(void)
680 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
681 cvmx_warn("CVMX_NPI_PCI_CFG58 not supported on this chip\n");
682 return CVMX_ADD_IO_SEG(0x00011F00000018E8ull);
685 #define CVMX_NPI_PCI_CFG58 (CVMX_ADD_IO_SEG(0x00011F00000018E8ull))
687 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
688 #define CVMX_NPI_PCI_CFG59 CVMX_NPI_PCI_CFG59_FUNC()
689 static inline uint64_t CVMX_NPI_PCI_CFG59_FUNC(void)
691 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
692 cvmx_warn("CVMX_NPI_PCI_CFG59 not supported on this chip\n");
693 return CVMX_ADD_IO_SEG(0x00011F00000018ECull);
696 #define CVMX_NPI_PCI_CFG59 (CVMX_ADD_IO_SEG(0x00011F00000018ECull))
698 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
699 #define CVMX_NPI_PCI_CFG60 CVMX_NPI_PCI_CFG60_FUNC()
700 static inline uint64_t CVMX_NPI_PCI_CFG60_FUNC(void)
702 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
703 cvmx_warn("CVMX_NPI_PCI_CFG60 not supported on this chip\n");
704 return CVMX_ADD_IO_SEG(0x00011F00000018F0ull);
707 #define CVMX_NPI_PCI_CFG60 (CVMX_ADD_IO_SEG(0x00011F00000018F0ull))
709 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
710 #define CVMX_NPI_PCI_CFG61 CVMX_NPI_PCI_CFG61_FUNC()
711 static inline uint64_t CVMX_NPI_PCI_CFG61_FUNC(void)
713 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
714 cvmx_warn("CVMX_NPI_PCI_CFG61 not supported on this chip\n");
715 return CVMX_ADD_IO_SEG(0x00011F00000018F4ull);
718 #define CVMX_NPI_PCI_CFG61 (CVMX_ADD_IO_SEG(0x00011F00000018F4ull))
720 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
721 #define CVMX_NPI_PCI_CFG62 CVMX_NPI_PCI_CFG62_FUNC()
722 static inline uint64_t CVMX_NPI_PCI_CFG62_FUNC(void)
724 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
725 cvmx_warn("CVMX_NPI_PCI_CFG62 not supported on this chip\n");
726 return CVMX_ADD_IO_SEG(0x00011F00000018F8ull);
729 #define CVMX_NPI_PCI_CFG62 (CVMX_ADD_IO_SEG(0x00011F00000018F8ull))
731 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
732 #define CVMX_NPI_PCI_CFG63 CVMX_NPI_PCI_CFG63_FUNC()
733 static inline uint64_t CVMX_NPI_PCI_CFG63_FUNC(void)
735 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
736 cvmx_warn("CVMX_NPI_PCI_CFG63 not supported on this chip\n");
737 return CVMX_ADD_IO_SEG(0x00011F00000018FCull);
740 #define CVMX_NPI_PCI_CFG63 (CVMX_ADD_IO_SEG(0x00011F00000018FCull))
742 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
743 #define CVMX_NPI_PCI_CNT_REG CVMX_NPI_PCI_CNT_REG_FUNC()
744 static inline uint64_t CVMX_NPI_PCI_CNT_REG_FUNC(void)
746 if (!(OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
747 cvmx_warn("CVMX_NPI_PCI_CNT_REG not supported on this chip\n");
748 return CVMX_ADD_IO_SEG(0x00011F00000011B8ull);
751 #define CVMX_NPI_PCI_CNT_REG (CVMX_ADD_IO_SEG(0x00011F00000011B8ull))
753 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
754 #define CVMX_NPI_PCI_CTL_STATUS_2 CVMX_NPI_PCI_CTL_STATUS_2_FUNC()
755 static inline uint64_t CVMX_NPI_PCI_CTL_STATUS_2_FUNC(void)
757 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
758 cvmx_warn("CVMX_NPI_PCI_CTL_STATUS_2 not supported on this chip\n");
759 return CVMX_ADD_IO_SEG(0x00011F000000118Cull);
762 #define CVMX_NPI_PCI_CTL_STATUS_2 (CVMX_ADD_IO_SEG(0x00011F000000118Cull))
764 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
765 #define CVMX_NPI_PCI_INT_ARB_CFG CVMX_NPI_PCI_INT_ARB_CFG_FUNC()
766 static inline uint64_t CVMX_NPI_PCI_INT_ARB_CFG_FUNC(void)
768 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
769 cvmx_warn("CVMX_NPI_PCI_INT_ARB_CFG not supported on this chip\n");
770 return CVMX_ADD_IO_SEG(0x00011F0000000130ull);
773 #define CVMX_NPI_PCI_INT_ARB_CFG (CVMX_ADD_IO_SEG(0x00011F0000000130ull))
775 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
776 #define CVMX_NPI_PCI_INT_ENB2 CVMX_NPI_PCI_INT_ENB2_FUNC()
777 static inline uint64_t CVMX_NPI_PCI_INT_ENB2_FUNC(void)
779 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
780 cvmx_warn("CVMX_NPI_PCI_INT_ENB2 not supported on this chip\n");
781 return CVMX_ADD_IO_SEG(0x00011F00000011A0ull);
784 #define CVMX_NPI_PCI_INT_ENB2 (CVMX_ADD_IO_SEG(0x00011F00000011A0ull))
786 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
787 #define CVMX_NPI_PCI_INT_SUM2 CVMX_NPI_PCI_INT_SUM2_FUNC()
788 static inline uint64_t CVMX_NPI_PCI_INT_SUM2_FUNC(void)
790 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
791 cvmx_warn("CVMX_NPI_PCI_INT_SUM2 not supported on this chip\n");
792 return CVMX_ADD_IO_SEG(0x00011F0000001198ull);
795 #define CVMX_NPI_PCI_INT_SUM2 (CVMX_ADD_IO_SEG(0x00011F0000001198ull))
797 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
798 #define CVMX_NPI_PCI_READ_CMD CVMX_NPI_PCI_READ_CMD_FUNC()
799 static inline uint64_t CVMX_NPI_PCI_READ_CMD_FUNC(void)
801 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
802 cvmx_warn("CVMX_NPI_PCI_READ_CMD not supported on this chip\n");
803 return CVMX_ADD_IO_SEG(0x00011F0000000048ull);
806 #define CVMX_NPI_PCI_READ_CMD (CVMX_ADD_IO_SEG(0x00011F0000000048ull))
808 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
809 #define CVMX_NPI_PCI_READ_CMD_6 CVMX_NPI_PCI_READ_CMD_6_FUNC()
810 static inline uint64_t CVMX_NPI_PCI_READ_CMD_6_FUNC(void)
812 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
813 cvmx_warn("CVMX_NPI_PCI_READ_CMD_6 not supported on this chip\n");
814 return CVMX_ADD_IO_SEG(0x00011F0000001180ull);
817 #define CVMX_NPI_PCI_READ_CMD_6 (CVMX_ADD_IO_SEG(0x00011F0000001180ull))
819 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
820 #define CVMX_NPI_PCI_READ_CMD_C CVMX_NPI_PCI_READ_CMD_C_FUNC()
821 static inline uint64_t CVMX_NPI_PCI_READ_CMD_C_FUNC(void)
823 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
824 cvmx_warn("CVMX_NPI_PCI_READ_CMD_C not supported on this chip\n");
825 return CVMX_ADD_IO_SEG(0x00011F0000001184ull);
828 #define CVMX_NPI_PCI_READ_CMD_C (CVMX_ADD_IO_SEG(0x00011F0000001184ull))
830 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
831 #define CVMX_NPI_PCI_READ_CMD_E CVMX_NPI_PCI_READ_CMD_E_FUNC()
832 static inline uint64_t CVMX_NPI_PCI_READ_CMD_E_FUNC(void)
834 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
835 cvmx_warn("CVMX_NPI_PCI_READ_CMD_E not supported on this chip\n");
836 return CVMX_ADD_IO_SEG(0x00011F0000001188ull);
839 #define CVMX_NPI_PCI_READ_CMD_E (CVMX_ADD_IO_SEG(0x00011F0000001188ull))
841 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
842 #define CVMX_NPI_PCI_SCM_REG CVMX_NPI_PCI_SCM_REG_FUNC()
843 static inline uint64_t CVMX_NPI_PCI_SCM_REG_FUNC(void)
845 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
846 cvmx_warn("CVMX_NPI_PCI_SCM_REG not supported on this chip\n");
847 return CVMX_ADD_IO_SEG(0x00011F00000011A8ull);
850 #define CVMX_NPI_PCI_SCM_REG (CVMX_ADD_IO_SEG(0x00011F00000011A8ull))
852 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
853 #define CVMX_NPI_PCI_TSR_REG CVMX_NPI_PCI_TSR_REG_FUNC()
854 static inline uint64_t CVMX_NPI_PCI_TSR_REG_FUNC(void)
856 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
857 cvmx_warn("CVMX_NPI_PCI_TSR_REG not supported on this chip\n");
858 return CVMX_ADD_IO_SEG(0x00011F00000011B0ull);
861 #define CVMX_NPI_PCI_TSR_REG (CVMX_ADD_IO_SEG(0x00011F00000011B0ull))
863 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
864 #define CVMX_NPI_PORT32_INSTR_HDR CVMX_NPI_PORT32_INSTR_HDR_FUNC()
865 static inline uint64_t CVMX_NPI_PORT32_INSTR_HDR_FUNC(void)
867 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
868 cvmx_warn("CVMX_NPI_PORT32_INSTR_HDR not supported on this chip\n");
869 return CVMX_ADD_IO_SEG(0x00011F00000001F8ull);
872 #define CVMX_NPI_PORT32_INSTR_HDR (CVMX_ADD_IO_SEG(0x00011F00000001F8ull))
874 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
875 #define CVMX_NPI_PORT33_INSTR_HDR CVMX_NPI_PORT33_INSTR_HDR_FUNC()
876 static inline uint64_t CVMX_NPI_PORT33_INSTR_HDR_FUNC(void)
878 if (!(OCTEON_IS_MODEL(OCTEON_CN31XX) || OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
879 cvmx_warn("CVMX_NPI_PORT33_INSTR_HDR not supported on this chip\n");
880 return CVMX_ADD_IO_SEG(0x00011F0000000200ull);
883 #define CVMX_NPI_PORT33_INSTR_HDR (CVMX_ADD_IO_SEG(0x00011F0000000200ull))
885 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
886 #define CVMX_NPI_PORT34_INSTR_HDR CVMX_NPI_PORT34_INSTR_HDR_FUNC()
887 static inline uint64_t CVMX_NPI_PORT34_INSTR_HDR_FUNC(void)
889 if (!(OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
890 cvmx_warn("CVMX_NPI_PORT34_INSTR_HDR not supported on this chip\n");
891 return CVMX_ADD_IO_SEG(0x00011F0000000208ull);
894 #define CVMX_NPI_PORT34_INSTR_HDR (CVMX_ADD_IO_SEG(0x00011F0000000208ull))
896 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
897 #define CVMX_NPI_PORT35_INSTR_HDR CVMX_NPI_PORT35_INSTR_HDR_FUNC()
898 static inline uint64_t CVMX_NPI_PORT35_INSTR_HDR_FUNC(void)
900 if (!(OCTEON_IS_MODEL(OCTEON_CN38XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
901 cvmx_warn("CVMX_NPI_PORT35_INSTR_HDR not supported on this chip\n");
902 return CVMX_ADD_IO_SEG(0x00011F0000000210ull);
905 #define CVMX_NPI_PORT35_INSTR_HDR (CVMX_ADD_IO_SEG(0x00011F0000000210ull))
907 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
908 #define CVMX_NPI_PORT_BP_CONTROL CVMX_NPI_PORT_BP_CONTROL_FUNC()
909 static inline uint64_t CVMX_NPI_PORT_BP_CONTROL_FUNC(void)
911 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
912 cvmx_warn("CVMX_NPI_PORT_BP_CONTROL not supported on this chip\n");
913 return CVMX_ADD_IO_SEG(0x00011F00000001F0ull);
916 #define CVMX_NPI_PORT_BP_CONTROL (CVMX_ADD_IO_SEG(0x00011F00000001F0ull))
918 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
919 static inline uint64_t CVMX_NPI_PX_DBPAIR_ADDR(unsigned long offset)
922 (OCTEON_IS_MODEL(OCTEON_CN30XX) && ((offset == 0))) ||
923 (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((offset <= 1))) ||
924 (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((offset <= 3))) ||
925 (OCTEON_IS_MODEL(OCTEON_CN50XX) && ((offset <= 1))) ||
926 (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((offset <= 3)))))
927 cvmx_warn("CVMX_NPI_PX_DBPAIR_ADDR(%lu) is invalid on this chip\n", offset);
928 return CVMX_ADD_IO_SEG(0x00011F0000000180ull) + ((offset) & 3) * 8;
931 #define CVMX_NPI_PX_DBPAIR_ADDR(offset) (CVMX_ADD_IO_SEG(0x00011F0000000180ull) + ((offset) & 3) * 8)
933 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
934 static inline uint64_t CVMX_NPI_PX_INSTR_ADDR(unsigned long offset)
937 (OCTEON_IS_MODEL(OCTEON_CN30XX) && ((offset == 0))) ||
938 (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((offset <= 1))) ||
939 (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((offset <= 3))) ||
940 (OCTEON_IS_MODEL(OCTEON_CN50XX) && ((offset <= 1))) ||
941 (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((offset <= 3)))))
942 cvmx_warn("CVMX_NPI_PX_INSTR_ADDR(%lu) is invalid on this chip\n", offset);
943 return CVMX_ADD_IO_SEG(0x00011F00000001C0ull) + ((offset) & 3) * 8;
946 #define CVMX_NPI_PX_INSTR_ADDR(offset) (CVMX_ADD_IO_SEG(0x00011F00000001C0ull) + ((offset) & 3) * 8)
948 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
949 static inline uint64_t CVMX_NPI_PX_INSTR_CNTS(unsigned long offset)
952 (OCTEON_IS_MODEL(OCTEON_CN30XX) && ((offset == 0))) ||
953 (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((offset <= 1))) ||
954 (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((offset <= 3))) ||
955 (OCTEON_IS_MODEL(OCTEON_CN50XX) && ((offset <= 1))) ||
956 (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((offset <= 3)))))
957 cvmx_warn("CVMX_NPI_PX_INSTR_CNTS(%lu) is invalid on this chip\n", offset);
958 return CVMX_ADD_IO_SEG(0x00011F00000001A0ull) + ((offset) & 3) * 8;
961 #define CVMX_NPI_PX_INSTR_CNTS(offset) (CVMX_ADD_IO_SEG(0x00011F00000001A0ull) + ((offset) & 3) * 8)
963 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
964 static inline uint64_t CVMX_NPI_PX_PAIR_CNTS(unsigned long offset)
967 (OCTEON_IS_MODEL(OCTEON_CN30XX) && ((offset == 0))) ||
968 (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((offset <= 1))) ||
969 (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((offset <= 3))) ||
970 (OCTEON_IS_MODEL(OCTEON_CN50XX) && ((offset <= 1))) ||
971 (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((offset <= 3)))))
972 cvmx_warn("CVMX_NPI_PX_PAIR_CNTS(%lu) is invalid on this chip\n", offset);
973 return CVMX_ADD_IO_SEG(0x00011F0000000160ull) + ((offset) & 3) * 8;
976 #define CVMX_NPI_PX_PAIR_CNTS(offset) (CVMX_ADD_IO_SEG(0x00011F0000000160ull) + ((offset) & 3) * 8)
978 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
979 #define CVMX_NPI_RSL_INT_BLOCKS CVMX_NPI_RSL_INT_BLOCKS_FUNC()
980 static inline uint64_t CVMX_NPI_RSL_INT_BLOCKS_FUNC(void)
982 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
983 cvmx_warn("CVMX_NPI_RSL_INT_BLOCKS not supported on this chip\n");
984 return CVMX_ADD_IO_SEG(0x00011F0000000000ull);
987 #define CVMX_NPI_RSL_INT_BLOCKS (CVMX_ADD_IO_SEG(0x00011F0000000000ull))
989 #define CVMX_NPI_SIZE_INPUT0 CVMX_NPI_SIZE_INPUTX(0)
990 #define CVMX_NPI_SIZE_INPUT1 CVMX_NPI_SIZE_INPUTX(1)
991 #define CVMX_NPI_SIZE_INPUT2 CVMX_NPI_SIZE_INPUTX(2)
992 #define CVMX_NPI_SIZE_INPUT3 CVMX_NPI_SIZE_INPUTX(3)
993 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
994 static inline uint64_t CVMX_NPI_SIZE_INPUTX(unsigned long offset)
997 (OCTEON_IS_MODEL(OCTEON_CN30XX) && ((offset == 0))) ||
998 (OCTEON_IS_MODEL(OCTEON_CN31XX) && ((offset <= 1))) ||
999 (OCTEON_IS_MODEL(OCTEON_CN38XX) && ((offset <= 3))) ||
1000 (OCTEON_IS_MODEL(OCTEON_CN50XX) && ((offset <= 1))) ||
1001 (OCTEON_IS_MODEL(OCTEON_CN58XX) && ((offset <= 3)))))
1002 cvmx_warn("CVMX_NPI_SIZE_INPUTX(%lu) is invalid on this chip\n", offset);
1003 return CVMX_ADD_IO_SEG(0x00011F0000000078ull) + ((offset) & 3) * 16;
1006 #define CVMX_NPI_SIZE_INPUTX(offset) (CVMX_ADD_IO_SEG(0x00011F0000000078ull) + ((offset) & 3) * 16)
1008 #if CVMX_ENABLE_CSR_ADDRESS_CHECKING
1009 #define CVMX_NPI_WIN_READ_TO CVMX_NPI_WIN_READ_TO_FUNC()
1010 static inline uint64_t CVMX_NPI_WIN_READ_TO_FUNC(void)
1012 if (!(OCTEON_IS_MODEL(OCTEON_CN3XXX) || OCTEON_IS_MODEL(OCTEON_CN50XX) || OCTEON_IS_MODEL(OCTEON_CN58XX)))
1013 cvmx_warn("CVMX_NPI_WIN_READ_TO not supported on this chip\n");
1014 return CVMX_ADD_IO_SEG(0x00011F00000001E0ull);
1017 #define CVMX_NPI_WIN_READ_TO (CVMX_ADD_IO_SEG(0x00011F00000001E0ull))
1021 * cvmx_npi_base_addr_input#
1023 * NPI_BASE_ADDR_INPUT0 = NPI's Base Address Input 0 Register
1025 * The address to start reading Instructions from for Input-0.
1027 union cvmx_npi_base_addr_inputx
1030 struct cvmx_npi_base_addr_inputx_s
1032 #if __BYTE_ORDER == __BIG_ENDIAN
1033 uint64_t baddr : 61; /**< The address to read Instruction from for output 0.
1034 This address is 8-byte aligned, for this reason
1035 address bits [2:0] will always be zero. */
1036 uint64_t reserved_0_2 : 3;
1038 uint64_t reserved_0_2 : 3;
1039 uint64_t baddr : 61;
1042 struct cvmx_npi_base_addr_inputx_s cn30xx;
1043 struct cvmx_npi_base_addr_inputx_s cn31xx;
1044 struct cvmx_npi_base_addr_inputx_s cn38xx;
1045 struct cvmx_npi_base_addr_inputx_s cn38xxp2;
1046 struct cvmx_npi_base_addr_inputx_s cn50xx;
1047 struct cvmx_npi_base_addr_inputx_s cn58xx;
1048 struct cvmx_npi_base_addr_inputx_s cn58xxp1;
1050 typedef union cvmx_npi_base_addr_inputx cvmx_npi_base_addr_inputx_t;
1053 * cvmx_npi_base_addr_output#
1055 * NPI_BASE_ADDR_OUTPUT0 = NPI's Base Address Output 0 Register
1057 * The address to start reading Instructions from for Output-0.
1059 union cvmx_npi_base_addr_outputx
1062 struct cvmx_npi_base_addr_outputx_s
1064 #if __BYTE_ORDER == __BIG_ENDIAN
1065 uint64_t baddr : 61; /**< The address to read Instruction from for output 0.
1066 This address is 8-byte aligned, for this reason
1067 address bits [2:0] will always be zero. */
1068 uint64_t reserved_0_2 : 3;
1070 uint64_t reserved_0_2 : 3;
1071 uint64_t baddr : 61;
1074 struct cvmx_npi_base_addr_outputx_s cn30xx;
1075 struct cvmx_npi_base_addr_outputx_s cn31xx;
1076 struct cvmx_npi_base_addr_outputx_s cn38xx;
1077 struct cvmx_npi_base_addr_outputx_s cn38xxp2;
1078 struct cvmx_npi_base_addr_outputx_s cn50xx;
1079 struct cvmx_npi_base_addr_outputx_s cn58xx;
1080 struct cvmx_npi_base_addr_outputx_s cn58xxp1;
1082 typedef union cvmx_npi_base_addr_outputx cvmx_npi_base_addr_outputx_t;
1085 * cvmx_npi_bist_status
1087 * NPI_BIST_STATUS = NPI's BIST Status Register
1089 * Results from BIST runs of NPI's memories.
1091 union cvmx_npi_bist_status
1094 struct cvmx_npi_bist_status_s
1096 #if __BYTE_ORDER == __BIG_ENDIAN
1097 uint64_t reserved_20_63 : 44;
1098 uint64_t csr_bs : 1; /**< BIST Status for the csr_fifo */
1099 uint64_t dif_bs : 1; /**< BIST Status for the dif_fifo */
1100 uint64_t rdp_bs : 1; /**< BIST Status for the rdp_fifo */
1101 uint64_t pcnc_bs : 1; /**< BIST Status for the pcn_cnt_fifo */
1102 uint64_t pcn_bs : 1; /**< BIST Status for the pcn_fifo */
1103 uint64_t rdn_bs : 1; /**< BIST Status for the rdn_fifo */
1104 uint64_t pcac_bs : 1; /**< BIST Status for the pca_cmd_fifo */
1105 uint64_t pcad_bs : 1; /**< BIST Status for the pca_data_fifo */
1106 uint64_t rdnl_bs : 1; /**< BIST Status for the rdn_length_fifo */
1107 uint64_t pgf_bs : 1; /**< BIST Status for the pgf_fifo */
1108 uint64_t pig_bs : 1; /**< BIST Status for the pig_fifo */
1109 uint64_t pof0_bs : 1; /**< BIST Status for the pof0_fifo */
1110 uint64_t pof1_bs : 1; /**< BIST Status for the pof1_fifo */
1111 uint64_t pof2_bs : 1; /**< BIST Status for the pof2_fifo */
1112 uint64_t pof3_bs : 1; /**< BIST Status for the pof3_fifo */
1113 uint64_t pos_bs : 1; /**< BIST Status for the pos_fifo */
1114 uint64_t nus_bs : 1; /**< BIST Status for the nus_fifo */
1115 uint64_t dob_bs : 1; /**< BIST Status for the dob_fifo */
1116 uint64_t pdf_bs : 1; /**< BIST Status for the pdf_fifo */
1117 uint64_t dpi_bs : 1; /**< BIST Status for the dpi_fifo */
1119 uint64_t dpi_bs : 1;
1120 uint64_t pdf_bs : 1;
1121 uint64_t dob_bs : 1;
1122 uint64_t nus_bs : 1;
1123 uint64_t pos_bs : 1;
1124 uint64_t pof3_bs : 1;
1125 uint64_t pof2_bs : 1;
1126 uint64_t pof1_bs : 1;
1127 uint64_t pof0_bs : 1;
1128 uint64_t pig_bs : 1;
1129 uint64_t pgf_bs : 1;
1130 uint64_t rdnl_bs : 1;
1131 uint64_t pcad_bs : 1;
1132 uint64_t pcac_bs : 1;
1133 uint64_t rdn_bs : 1;
1134 uint64_t pcn_bs : 1;
1135 uint64_t pcnc_bs : 1;
1136 uint64_t rdp_bs : 1;
1137 uint64_t dif_bs : 1;
1138 uint64_t csr_bs : 1;
1139 uint64_t reserved_20_63 : 44;
1142 struct cvmx_npi_bist_status_cn30xx
1144 #if __BYTE_ORDER == __BIG_ENDIAN
1145 uint64_t reserved_20_63 : 44;
1146 uint64_t csr_bs : 1; /**< BIST Status for the csr_fifo */
1147 uint64_t dif_bs : 1; /**< BIST Status for the dif_fifo */
1148 uint64_t rdp_bs : 1; /**< BIST Status for the rdp_fifo */
1149 uint64_t pcnc_bs : 1; /**< BIST Status for the pcn_cnt_fifo */
1150 uint64_t pcn_bs : 1; /**< BIST Status for the pcn_fifo */
1151 uint64_t rdn_bs : 1; /**< BIST Status for the rdn_fifo */
1152 uint64_t pcac_bs : 1; /**< BIST Status for the pca_cmd_fifo */
1153 uint64_t pcad_bs : 1; /**< BIST Status for the pca_data_fifo */
1154 uint64_t rdnl_bs : 1; /**< BIST Status for the rdn_length_fifo */
1155 uint64_t pgf_bs : 1; /**< BIST Status for the pgf_fifo */
1156 uint64_t pig_bs : 1; /**< BIST Status for the pig_fifo */
1157 uint64_t pof0_bs : 1; /**< BIST Status for the pof0_fifo */
1158 uint64_t reserved_5_7 : 3;
1159 uint64_t pos_bs : 1; /**< BIST Status for the pos_fifo */
1160 uint64_t nus_bs : 1; /**< BIST Status for the nus_fifo */
1161 uint64_t dob_bs : 1; /**< BIST Status for the dob_fifo */
1162 uint64_t pdf_bs : 1; /**< BIST Status for the pdf_fifo */
1163 uint64_t dpi_bs : 1; /**< BIST Status for the dpi_fifo */
1165 uint64_t dpi_bs : 1;
1166 uint64_t pdf_bs : 1;
1167 uint64_t dob_bs : 1;
1168 uint64_t nus_bs : 1;
1169 uint64_t pos_bs : 1;
1170 uint64_t reserved_5_7 : 3;
1171 uint64_t pof0_bs : 1;
1172 uint64_t pig_bs : 1;
1173 uint64_t pgf_bs : 1;
1174 uint64_t rdnl_bs : 1;
1175 uint64_t pcad_bs : 1;
1176 uint64_t pcac_bs : 1;
1177 uint64_t rdn_bs : 1;
1178 uint64_t pcn_bs : 1;
1179 uint64_t pcnc_bs : 1;
1180 uint64_t rdp_bs : 1;
1181 uint64_t dif_bs : 1;
1182 uint64_t csr_bs : 1;
1183 uint64_t reserved_20_63 : 44;
1186 struct cvmx_npi_bist_status_s cn31xx;
1187 struct cvmx_npi_bist_status_s cn38xx;
1188 struct cvmx_npi_bist_status_s cn38xxp2;
1189 struct cvmx_npi_bist_status_cn50xx
1191 #if __BYTE_ORDER == __BIG_ENDIAN
1192 uint64_t reserved_20_63 : 44;
1193 uint64_t csr_bs : 1; /**< BIST Status for the csr_fifo */
1194 uint64_t dif_bs : 1; /**< BIST Status for the dif_fifo */
1195 uint64_t rdp_bs : 1; /**< BIST Status for the rdp_fifo */
1196 uint64_t pcnc_bs : 1; /**< BIST Status for the pcn_cnt_fifo */
1197 uint64_t pcn_bs : 1; /**< BIST Status for the pcn_fifo */
1198 uint64_t rdn_bs : 1; /**< BIST Status for the rdn_fifo */
1199 uint64_t pcac_bs : 1; /**< BIST Status for the pca_cmd_fifo */
1200 uint64_t pcad_bs : 1; /**< BIST Status for the pca_data_fifo */
1201 uint64_t rdnl_bs : 1; /**< BIST Status for the rdn_length_fifo */
1202 uint64_t pgf_bs : 1; /**< BIST Status for the pgf_fifo */
1203 uint64_t pig_bs : 1; /**< BIST Status for the pig_fifo */
1204 uint64_t pof0_bs : 1; /**< BIST Status for the pof0_fifo */
1205 uint64_t pof1_bs : 1; /**< BIST Status for the pof1_fifo */
1206 uint64_t reserved_5_6 : 2;
1207 uint64_t pos_bs : 1; /**< BIST Status for the pos_fifo */
1208 uint64_t nus_bs : 1; /**< BIST Status for the nus_fifo */
1209 uint64_t dob_bs : 1; /**< BIST Status for the dob_fifo */
1210 uint64_t pdf_bs : 1; /**< BIST Status for the pdf_fifo */
1211 uint64_t dpi_bs : 1; /**< BIST Status for the dpi_fifo */
1213 uint64_t dpi_bs : 1;
1214 uint64_t pdf_bs : 1;
1215 uint64_t dob_bs : 1;
1216 uint64_t nus_bs : 1;
1217 uint64_t pos_bs : 1;
1218 uint64_t reserved_5_6 : 2;
1219 uint64_t pof1_bs : 1;
1220 uint64_t pof0_bs : 1;
1221 uint64_t pig_bs : 1;
1222 uint64_t pgf_bs : 1;
1223 uint64_t rdnl_bs : 1;
1224 uint64_t pcad_bs : 1;
1225 uint64_t pcac_bs : 1;
1226 uint64_t rdn_bs : 1;
1227 uint64_t pcn_bs : 1;
1228 uint64_t pcnc_bs : 1;
1229 uint64_t rdp_bs : 1;
1230 uint64_t dif_bs : 1;
1231 uint64_t csr_bs : 1;
1232 uint64_t reserved_20_63 : 44;
1235 struct cvmx_npi_bist_status_s cn58xx;
1236 struct cvmx_npi_bist_status_s cn58xxp1;
1238 typedef union cvmx_npi_bist_status cvmx_npi_bist_status_t;
1241 * cvmx_npi_buff_size_output#
1243 * NPI_BUFF_SIZE_OUTPUT0 = NPI's D/I Buffer Sizes For Output 0
1245 * The size in bytes of the Data Bufffer and Information Buffer for output 0.
1247 union cvmx_npi_buff_size_outputx
1250 struct cvmx_npi_buff_size_outputx_s
1252 #if __BYTE_ORDER == __BIG_ENDIAN
1253 uint64_t reserved_23_63 : 41;
1254 uint64_t isize : 7; /**< The number of bytes to move to the Info-Pointer
1255 from the front of the packet.
1256 Legal values are 0-120. */
1257 uint64_t bsize : 16; /**< The size in bytes of the area pointed to by
1258 buffer pointer for output packet data. */
1260 uint64_t bsize : 16;
1262 uint64_t reserved_23_63 : 41;
1265 struct cvmx_npi_buff_size_outputx_s cn30xx;
1266 struct cvmx_npi_buff_size_outputx_s cn31xx;
1267 struct cvmx_npi_buff_size_outputx_s cn38xx;
1268 struct cvmx_npi_buff_size_outputx_s cn38xxp2;
1269 struct cvmx_npi_buff_size_outputx_s cn50xx;
1270 struct cvmx_npi_buff_size_outputx_s cn58xx;
1271 struct cvmx_npi_buff_size_outputx_s cn58xxp1;
1273 typedef union cvmx_npi_buff_size_outputx cvmx_npi_buff_size_outputx_t;
1278 * NPI_COMP_CTL = PCI Compensation Control
1280 * PCI Compensation Control
1282 union cvmx_npi_comp_ctl
1285 struct cvmx_npi_comp_ctl_s
1287 #if __BYTE_ORDER == __BIG_ENDIAN
1288 uint64_t reserved_10_63 : 54;
1289 uint64_t pctl : 5; /**< Bypass value for PCTL */
1290 uint64_t nctl : 5; /**< Bypass value for NCTL */
1294 uint64_t reserved_10_63 : 54;
1297 struct cvmx_npi_comp_ctl_s cn50xx;
1298 struct cvmx_npi_comp_ctl_s cn58xx;
1299 struct cvmx_npi_comp_ctl_s cn58xxp1;
1301 typedef union cvmx_npi_comp_ctl cvmx_npi_comp_ctl_t;
1304 * cvmx_npi_ctl_status
1306 * NPI_CTL_STATUS = NPI's Control Status Register
1308 * Contains control ans status for NPI.
1309 * Writes to this register are not ordered with writes/reads to the PCI Memory space.
1310 * To ensure that a write has completed the user must read the register before
1311 * making an access(i.e. PCI memory space) that requires the value of this register to be updated.
1313 union cvmx_npi_ctl_status
1316 struct cvmx_npi_ctl_status_s
1318 #if __BYTE_ORDER == __BIG_ENDIAN
1319 uint64_t reserved_63_63 : 1;
1320 uint64_t chip_rev : 8; /**< The revision of the N3. */
1321 uint64_t dis_pniw : 1; /**< When asserted '1' access from the PNI Window
1322 Registers are disabled. */
1323 uint64_t out3_enb : 1; /**< When asserted '1' the output3 engine is enabled.
1324 After enabling the values of the associated
1325 Address and Size Register should not be changed. */
1326 uint64_t out2_enb : 1; /**< When asserted '1' the output2 engine is enabled.
1327 After enabling the values of the associated
1328 Address and Size Register should not be changed. */
1329 uint64_t out1_enb : 1; /**< When asserted '1' the output1 engine is enabled.
1330 After enabling the values of the associated
1331 Address and Size Register should not be changed. */
1332 uint64_t out0_enb : 1; /**< When asserted '1' the output0 engine is enabled.
1333 After enabling the values of the associated
1334 Address and Size Register should not be changed. */
1335 uint64_t ins3_enb : 1; /**< When asserted '1' the gather3 engine is enabled.
1336 After enabling the values of the associated
1337 Address and Size Register should not be changed. */
1338 uint64_t ins2_enb : 1; /**< When asserted '1' the gather2 engine is enabled.
1339 After enabling the values of the associated
1340 Address and Size Register should not be changed. */
1341 uint64_t ins1_enb : 1; /**< When asserted '1' the gather1 engine is enabled.
1342 After enabling the values of the associated
1343 Address and Size Register should not be changed. */
1344 uint64_t ins0_enb : 1; /**< When asserted '1' the gather0 engine is enabled.
1345 After enabling the values of the associated
1346 Address and Size Register should not be changed. */
1347 uint64_t ins3_64b : 1; /**< When asserted '1' the instructions read by the
1348 gather3 engine are 64-Byte instructions, when
1349 de-asserted '0' instructions are 32-byte. */
1350 uint64_t ins2_64b : 1; /**< When asserted '1' the instructions read by the
1351 gather2 engine are 64-Byte instructions, when
1352 de-asserted '0' instructions are 32-byte. */
1353 uint64_t ins1_64b : 1; /**< When asserted '1' the instructions read by the
1354 gather1 engine are 64-Byte instructions, when
1355 de-asserted '0' instructions are 32-byte. */
1356 uint64_t ins0_64b : 1; /**< When asserted '1' the instructions read by the
1357 gather0 engine are 64-Byte instructions, when
1358 de-asserted '0' instructions are 32-byte. */
1359 uint64_t pci_wdis : 1; /**< When set '1' disables access to registers in
1360 PNI address range 0x1000 - 0x17FF from the PCI. */
1361 uint64_t wait_com : 1; /**< When set '1' casues the NPI to wait for a commit
1362 from the L2C before sending additional access to
1363 the L2C from the PCI. */
1364 uint64_t reserved_37_39 : 3;
1365 uint64_t max_word : 5; /**< The maximum number of words to merge into a single
1366 write operation from the PPs to the PCI. Legal
1367 values are 1 to 32, where a '0' is treated as 32. */
1368 uint64_t reserved_10_31 : 22;
1369 uint64_t timer : 10; /**< When the NPI starts a PP to PCI write it will wait
1370 no longer than the value of TIMER in eclks to
1371 merge additional writes from the PPs into 1
1372 large write. The values for this field is 1 to
1373 1024 where a value of '0' is treated as 1024. */
1375 uint64_t timer : 10;
1376 uint64_t reserved_10_31 : 22;
1377 uint64_t max_word : 5;
1378 uint64_t reserved_37_39 : 3;
1379 uint64_t wait_com : 1;
1380 uint64_t pci_wdis : 1;
1381 uint64_t ins0_64b : 1;
1382 uint64_t ins1_64b : 1;
1383 uint64_t ins2_64b : 1;
1384 uint64_t ins3_64b : 1;
1385 uint64_t ins0_enb : 1;
1386 uint64_t ins1_enb : 1;
1387 uint64_t ins2_enb : 1;
1388 uint64_t ins3_enb : 1;
1389 uint64_t out0_enb : 1;
1390 uint64_t out1_enb : 1;
1391 uint64_t out2_enb : 1;
1392 uint64_t out3_enb : 1;
1393 uint64_t dis_pniw : 1;
1394 uint64_t chip_rev : 8;
1395 uint64_t reserved_63_63 : 1;
1398 struct cvmx_npi_ctl_status_cn30xx
1400 #if __BYTE_ORDER == __BIG_ENDIAN
1401 uint64_t reserved_63_63 : 1;
1402 uint64_t chip_rev : 8; /**< The revision of the N3. */
1403 uint64_t dis_pniw : 1; /**< When asserted '1' access from the PNI Window
1404 Registers are disabled. */
1405 uint64_t reserved_51_53 : 3;
1406 uint64_t out0_enb : 1; /**< When asserted '1' the output0 engine is enabled.
1407 After enabling the values of the associated
1408 Address and Size Register should not be changed. */
1409 uint64_t reserved_47_49 : 3;
1410 uint64_t ins0_enb : 1; /**< When asserted '1' the gather0 engine is enabled.
1411 After enabling the values of the associated
1412 Address and Size Register should not be changed. */
1413 uint64_t reserved_43_45 : 3;
1414 uint64_t ins0_64b : 1; /**< When asserted '1' the instructions read by the
1415 gather0 engine are 64-Byte instructions, when
1416 de-asserted '0' instructions are 32-byte. */
1417 uint64_t pci_wdis : 1; /**< When set '1' disables access to registers in
1418 PNI address range 0x1000 - 0x17FF from the PCI. */
1419 uint64_t wait_com : 1; /**< When set '1' casues the NPI to wait for a commit
1420 from the L2C before sending additional access to
1421 the L2C from the PCI. */
1422 uint64_t reserved_37_39 : 3;
1423 uint64_t max_word : 5; /**< The maximum number of words to merge into a single
1424 write operation from the PPs to the PCI. Legal
1425 values are 1 to 32, where a '0' is treated as 32. */
1426 uint64_t reserved_10_31 : 22;
1427 uint64_t timer : 10; /**< When the NPI starts a PP to PCI write it will wait
1428 no longer than the value of TIMER in eclks to
1429 merge additional writes from the PPs into 1
1430 large write. The values for this field is 1 to
1431 1024 where a value of '0' is treated as 1024. */
1433 uint64_t timer : 10;
1434 uint64_t reserved_10_31 : 22;
1435 uint64_t max_word : 5;
1436 uint64_t reserved_37_39 : 3;
1437 uint64_t wait_com : 1;
1438 uint64_t pci_wdis : 1;
1439 uint64_t ins0_64b : 1;
1440 uint64_t reserved_43_45 : 3;
1441 uint64_t ins0_enb : 1;
1442 uint64_t reserved_47_49 : 3;
1443 uint64_t out0_enb : 1;
1444 uint64_t reserved_51_53 : 3;
1445 uint64_t dis_pniw : 1;
1446 uint64_t chip_rev : 8;
1447 uint64_t reserved_63_63 : 1;
1450 struct cvmx_npi_ctl_status_cn31xx
1452 #if __BYTE_ORDER == __BIG_ENDIAN
1453 uint64_t reserved_63_63 : 1;
1454 uint64_t chip_rev : 8; /**< The revision of the N3.
1455 0 => pass1.x, 1 => 2.0 */
1456 uint64_t dis_pniw : 1; /**< When asserted '1' access from the PNI Window
1457 Registers are disabled. */
1458 uint64_t reserved_52_53 : 2;
1459 uint64_t out1_enb : 1; /**< When asserted '1' the output1 engine is enabled.
1460 After enabling the values of the associated
1461 Address and Size Register should not be changed. */
1462 uint64_t out0_enb : 1; /**< When asserted '1' the output0 engine is enabled.
1463 After enabling the values of the associated
1464 Address and Size Register should not be changed. */
1465 uint64_t reserved_48_49 : 2;
1466 uint64_t ins1_enb : 1; /**< When asserted '1' the gather1 engine is enabled.
1467 After enabling the values of the associated
1468 Address and Size Register should not be changed. */
1469 uint64_t ins0_enb : 1; /**< When asserted '1' the gather0 engine is enabled.
1470 After enabling the values of the associated
1471 Address and Size Register should not be changed. */
1472 uint64_t reserved_44_45 : 2;
1473 uint64_t ins1_64b : 1; /**< When asserted '1' the instructions read by the
1474 gather1 engine are 64-Byte instructions, when
1475 de-asserted '0' instructions are 32-byte. */
1476 uint64_t ins0_64b : 1; /**< When asserted '1' the instructions read by the
1477 gather0 engine are 64-Byte instructions, when
1478 de-asserted '0' instructions are 32-byte. */
1479 uint64_t pci_wdis : 1; /**< When set '1' disables access to registers in
1480 PNI address range 0x1000 - 0x17FF from the PCI. */
1481 uint64_t wait_com : 1; /**< When set '1' casues the NPI to wait for a commit
1482 from the L2C before sending additional access to
1483 the L2C from the PCI. */
1484 uint64_t reserved_37_39 : 3;
1485 uint64_t max_word : 5; /**< The maximum number of words to merge into a single
1486 write operation from the PPs to the PCI. Legal
1487 values are 1 to 32, where a '0' is treated as 32. */
1488 uint64_t reserved_10_31 : 22;
1489 uint64_t timer : 10; /**< When the NPI starts a PP to PCI write it will wait
1490 no longer than the value of TIMER in eclks to
1491 merge additional writes from the PPs into 1
1492 large write. The values for this field is 1 to
1493 1024 where a value of '0' is treated as 1024. */
1495 uint64_t timer : 10;
1496 uint64_t reserved_10_31 : 22;
1497 uint64_t max_word : 5;
1498 uint64_t reserved_37_39 : 3;
1499 uint64_t wait_com : 1;
1500 uint64_t pci_wdis : 1;
1501 uint64_t ins0_64b : 1;
1502 uint64_t ins1_64b : 1;
1503 uint64_t reserved_44_45 : 2;
1504 uint64_t ins0_enb : 1;
1505 uint64_t ins1_enb : 1;
1506 uint64_t reserved_48_49 : 2;
1507 uint64_t out0_enb : 1;
1508 uint64_t out1_enb : 1;
1509 uint64_t reserved_52_53 : 2;
1510 uint64_t dis_pniw : 1;
1511 uint64_t chip_rev : 8;
1512 uint64_t reserved_63_63 : 1;
1515 struct cvmx_npi_ctl_status_s cn38xx;
1516 struct cvmx_npi_ctl_status_s cn38xxp2;
1517 struct cvmx_npi_ctl_status_cn31xx cn50xx;
1518 struct cvmx_npi_ctl_status_s cn58xx;
1519 struct cvmx_npi_ctl_status_s cn58xxp1;
1521 typedef union cvmx_npi_ctl_status cvmx_npi_ctl_status_t;
1524 * cvmx_npi_dbg_select
1526 * NPI_DBG_SELECT = Debug Select Register
1528 * Contains the debug select value in last written to the RSLs.
1530 union cvmx_npi_dbg_select
1533 struct cvmx_npi_dbg_select_s
1535 #if __BYTE_ORDER == __BIG_ENDIAN
1536 uint64_t reserved_16_63 : 48;
1537 uint64_t dbg_sel : 16; /**< When this register is written its value is sent to
1540 uint64_t dbg_sel : 16;
1541 uint64_t reserved_16_63 : 48;
1544 struct cvmx_npi_dbg_select_s cn30xx;
1545 struct cvmx_npi_dbg_select_s cn31xx;
1546 struct cvmx_npi_dbg_select_s cn38xx;
1547 struct cvmx_npi_dbg_select_s cn38xxp2;
1548 struct cvmx_npi_dbg_select_s cn50xx;
1549 struct cvmx_npi_dbg_select_s cn58xx;
1550 struct cvmx_npi_dbg_select_s cn58xxp1;
1552 typedef union cvmx_npi_dbg_select cvmx_npi_dbg_select_t;
1555 * cvmx_npi_dma_control
1557 * NPI_DMA_CONTROL = DMA Control Register
1559 * Controls operation of the DMA IN/OUT of the NPI.
1561 union cvmx_npi_dma_control
1564 struct cvmx_npi_dma_control_s
1566 #if __BYTE_ORDER == __BIG_ENDIAN
1567 uint64_t reserved_36_63 : 28;
1568 uint64_t b0_lend : 1; /**< When set '1' and the NPI is in the mode to write
1569 0 to L2C memory when a DMA is done, the address
1570 to be written to will be treated as a Little
1571 Endian address. This field is new to PASS-2. */
1572 uint64_t dwb_denb : 1; /**< When set '1' the NPI will send a value in the DWB
1573 field for a free page operation for the memory
1574 that contained the data in N3. */
1575 uint64_t dwb_ichk : 9; /**< When Instruction Chunks for DMA operations are freed
1576 this value is used for the DWB field of the
1578 uint64_t fpa_que : 3; /**< The FPA queue that the instruction-chunk page will
1579 be returned to when used. */
1580 uint64_t o_add1 : 1; /**< When set '1' 1 will be added to the DMA counters,
1581 if '0' then the number of bytes in the dma transfer
1582 will be added to the count register. */
1583 uint64_t o_ro : 1; /**< Relaxed Ordering Mode for DMA. */
1584 uint64_t o_ns : 1; /**< Nosnoop For DMA. */
1585 uint64_t o_es : 2; /**< Endian Swap Mode for DMA. */
1586 uint64_t o_mode : 1; /**< Select PCI_POINTER MODE to be used.
1587 '1' use pointer values for address and register
1588 values for RO, ES, and NS, '0' use register
1589 values for address and pointer values for
1591 uint64_t hp_enb : 1; /**< Enables the High Priority DMA.
1592 While this bit is disabled '0' then the value
1593 in the NPI_HIGHP_IBUFF_SADDR is re-loaded to the
1594 starting address of the High Priority DMA engine.
1595 CSIZE field will be reloaded, for the High Priority
1597 uint64_t lp_enb : 1; /**< Enables the Low Priority DMA.
1598 While this bit is disabled '0' then the value
1599 in the NPI_LOWP_IBUFF_SADDR is re-loaded to the
1600 starting address of the Low Priority DMA engine.
1601 PASS-2: When this bit is '0' the value in the
1602 CSIZE field will be reloaded, for the Low Priority
1604 uint64_t csize : 14; /**< The size in words of the DMA Instruction Chunk.
1605 This value should only be written once. After
1606 writing this value a new value will not be
1607 recognized until the end of the DMA I-Chunk is
1610 uint64_t csize : 14;
1611 uint64_t lp_enb : 1;
1612 uint64_t hp_enb : 1;
1613 uint64_t o_mode : 1;
1617 uint64_t o_add1 : 1;
1618 uint64_t fpa_que : 3;
1619 uint64_t dwb_ichk : 9;
1620 uint64_t dwb_denb : 1;
1621 uint64_t b0_lend : 1;
1622 uint64_t reserved_36_63 : 28;
1625 struct cvmx_npi_dma_control_s cn30xx;
1626 struct cvmx_npi_dma_control_s cn31xx;
1627 struct cvmx_npi_dma_control_s cn38xx;
1628 struct cvmx_npi_dma_control_s cn38xxp2;
1629 struct cvmx_npi_dma_control_s cn50xx;
1630 struct cvmx_npi_dma_control_s cn58xx;
1631 struct cvmx_npi_dma_control_s cn58xxp1;
1633 typedef union cvmx_npi_dma_control cvmx_npi_dma_control_t;
1636 * cvmx_npi_dma_highp_counts
1638 * NPI_DMA_HIGHP_COUNTS = NPI's High Priority DMA Counts
1640 * Values for determing the number of instructions for High Priority DMA in the NPI.
1642 union cvmx_npi_dma_highp_counts
1645 struct cvmx_npi_dma_highp_counts_s
1647 #if __BYTE_ORDER == __BIG_ENDIAN
1648 uint64_t reserved_39_63 : 25;
1649 uint64_t fcnt : 7; /**< Number of words in the Instruction FIFO. */
1650 uint64_t dbell : 32; /**< Number of available words of Instructions to read. */
1652 uint64_t dbell : 32;
1654 uint64_t reserved_39_63 : 25;
1657 struct cvmx_npi_dma_highp_counts_s cn30xx;
1658 struct cvmx_npi_dma_highp_counts_s cn31xx;
1659 struct cvmx_npi_dma_highp_counts_s cn38xx;
1660 struct cvmx_npi_dma_highp_counts_s cn38xxp2;
1661 struct cvmx_npi_dma_highp_counts_s cn50xx;
1662 struct cvmx_npi_dma_highp_counts_s cn58xx;
1663 struct cvmx_npi_dma_highp_counts_s cn58xxp1;
1665 typedef union cvmx_npi_dma_highp_counts cvmx_npi_dma_highp_counts_t;
1668 * cvmx_npi_dma_highp_naddr
1670 * NPI_DMA_HIGHP_NADDR = NPI's High Priority DMA Next Ichunk Address
1672 * Place NPI will read the next Ichunk data from. This is valid when state is 0
1674 union cvmx_npi_dma_highp_naddr
1677 struct cvmx_npi_dma_highp_naddr_s
1679 #if __BYTE_ORDER == __BIG_ENDIAN
1680 uint64_t reserved_40_63 : 24;
1681 uint64_t state : 4; /**< The DMA instruction engine state vector.
1682 Typical value is 0 (IDLE). */
1683 uint64_t addr : 36; /**< The next L2C address to read DMA instructions
1684 from for the High Priority DMA engine. */
1688 uint64_t reserved_40_63 : 24;
1691 struct cvmx_npi_dma_highp_naddr_s cn30xx;
1692 struct cvmx_npi_dma_highp_naddr_s cn31xx;
1693 struct cvmx_npi_dma_highp_naddr_s cn38xx;
1694 struct cvmx_npi_dma_highp_naddr_s cn38xxp2;
1695 struct cvmx_npi_dma_highp_naddr_s cn50xx;
1696 struct cvmx_npi_dma_highp_naddr_s cn58xx;
1697 struct cvmx_npi_dma_highp_naddr_s cn58xxp1;
1699 typedef union cvmx_npi_dma_highp_naddr cvmx_npi_dma_highp_naddr_t;
1702 * cvmx_npi_dma_lowp_counts
1704 * NPI_DMA_LOWP_COUNTS = NPI's Low Priority DMA Counts
1706 * Values for determing the number of instructions for Low Priority DMA in the NPI.
1708 union cvmx_npi_dma_lowp_counts
1711 struct cvmx_npi_dma_lowp_counts_s
1713 #if __BYTE_ORDER == __BIG_ENDIAN
1714 uint64_t reserved_39_63 : 25;
1715 uint64_t fcnt : 7; /**< Number of words in the Instruction FIFO. */
1716 uint64_t dbell : 32; /**< Number of available words of Instructions to read. */
1718 uint64_t dbell : 32;
1720 uint64_t reserved_39_63 : 25;
1723 struct cvmx_npi_dma_lowp_counts_s cn30xx;
1724 struct cvmx_npi_dma_lowp_counts_s cn31xx;
1725 struct cvmx_npi_dma_lowp_counts_s cn38xx;
1726 struct cvmx_npi_dma_lowp_counts_s cn38xxp2;
1727 struct cvmx_npi_dma_lowp_counts_s cn50xx;
1728 struct cvmx_npi_dma_lowp_counts_s cn58xx;
1729 struct cvmx_npi_dma_lowp_counts_s cn58xxp1;
1731 typedef union cvmx_npi_dma_lowp_counts cvmx_npi_dma_lowp_counts_t;
1734 * cvmx_npi_dma_lowp_naddr
1736 * NPI_DMA_LOWP_NADDR = NPI's Low Priority DMA Next Ichunk Address
1738 * Place NPI will read the next Ichunk data from. This is valid when state is 0
1740 union cvmx_npi_dma_lowp_naddr
1743 struct cvmx_npi_dma_lowp_naddr_s
1745 #if __BYTE_ORDER == __BIG_ENDIAN
1746 uint64_t reserved_40_63 : 24;
1747 uint64_t state : 4; /**< The DMA instruction engine state vector.
1748 Typical value is 0 (IDLE). */
1749 uint64_t addr : 36; /**< The next L2C address to read DMA instructions
1750 from for the Low Priority DMA engine. */
1754 uint64_t reserved_40_63 : 24;
1757 struct cvmx_npi_dma_lowp_naddr_s cn30xx;
1758 struct cvmx_npi_dma_lowp_naddr_s cn31xx;
1759 struct cvmx_npi_dma_lowp_naddr_s cn38xx;
1760 struct cvmx_npi_dma_lowp_naddr_s cn38xxp2;
1761 struct cvmx_npi_dma_lowp_naddr_s cn50xx;
1762 struct cvmx_npi_dma_lowp_naddr_s cn58xx;
1763 struct cvmx_npi_dma_lowp_naddr_s cn58xxp1;
1765 typedef union cvmx_npi_dma_lowp_naddr cvmx_npi_dma_lowp_naddr_t;
1768 * cvmx_npi_highp_dbell
1770 * NPI_HIGHP_DBELL = High Priority Door Bell
1772 * The door bell register for the high priority DMA queue.
1774 union cvmx_npi_highp_dbell
1777 struct cvmx_npi_highp_dbell_s
1779 #if __BYTE_ORDER == __BIG_ENDIAN
1780 uint64_t reserved_16_63 : 48;
1781 uint64_t dbell : 16; /**< The value written to this register is added to the
1782 number of 8byte words to be read and processes for
1783 the high priority dma queue. */
1785 uint64_t dbell : 16;
1786 uint64_t reserved_16_63 : 48;
1789 struct cvmx_npi_highp_dbell_s cn30xx;
1790 struct cvmx_npi_highp_dbell_s cn31xx;
1791 struct cvmx_npi_highp_dbell_s cn38xx;
1792 struct cvmx_npi_highp_dbell_s cn38xxp2;
1793 struct cvmx_npi_highp_dbell_s cn50xx;
1794 struct cvmx_npi_highp_dbell_s cn58xx;
1795 struct cvmx_npi_highp_dbell_s cn58xxp1;
1797 typedef union cvmx_npi_highp_dbell cvmx_npi_highp_dbell_t;
1800 * cvmx_npi_highp_ibuff_saddr
1802 * NPI_HIGHP_IBUFF_SADDR = DMA High Priority Instruction Buffer Starting Address
1804 * The address to start reading Instructions from for HIGHP.
1806 union cvmx_npi_highp_ibuff_saddr
1809 struct cvmx_npi_highp_ibuff_saddr_s
1811 #if __BYTE_ORDER == __BIG_ENDIAN
1812 uint64_t reserved_36_63 : 28;
1813 uint64_t saddr : 36; /**< The starting address to read the first instruction. */
1815 uint64_t saddr : 36;
1816 uint64_t reserved_36_63 : 28;
1819 struct cvmx_npi_highp_ibuff_saddr_s cn30xx;
1820 struct cvmx_npi_highp_ibuff_saddr_s cn31xx;
1821 struct cvmx_npi_highp_ibuff_saddr_s cn38xx;
1822 struct cvmx_npi_highp_ibuff_saddr_s cn38xxp2;
1823 struct cvmx_npi_highp_ibuff_saddr_s cn50xx;
1824 struct cvmx_npi_highp_ibuff_saddr_s cn58xx;
1825 struct cvmx_npi_highp_ibuff_saddr_s cn58xxp1;
1827 typedef union cvmx_npi_highp_ibuff_saddr cvmx_npi_highp_ibuff_saddr_t;
1830 * cvmx_npi_input_control
1832 * NPI_INPUT_CONTROL = NPI's Input Control Register
1834 * Control for reads for gather list and instructions.
1836 union cvmx_npi_input_control
1839 struct cvmx_npi_input_control_s
1841 #if __BYTE_ORDER == __BIG_ENDIAN
1842 uint64_t reserved_23_63 : 41;
1843 uint64_t pkt_rr : 1; /**< When set '1' the input packet selection will be
1844 made with a Round Robin arbitration. When '0'
1845 the input packet port is fixed in priority,
1846 where the lower port number has higher priority.
1848 uint64_t pbp_dhi : 13; /**< Field when in [PBP] is set to be used in
1849 calculating a DPTR. */
1850 uint64_t d_nsr : 1; /**< Enables '1' NoSnoop for reading of
1852 uint64_t d_esr : 2; /**< The Endian-Swap-Mode for reading of
1854 uint64_t d_ror : 1; /**< Enables '1' Relaxed Ordering for reading of
1856 uint64_t use_csr : 1; /**< When set '1' the csr value will be used for
1857 ROR, ESR, and NSR. When clear '0' the value in
1858 DPTR will be used. In turn the bits not used for
1859 ROR, ESR, and NSR, will be used for bits [63:60]
1860 of the address used to fetch packet data. */
1861 uint64_t nsr : 1; /**< Enables '1' NoSnoop for reading of
1862 gather list and gather instruction. */
1863 uint64_t esr : 2; /**< The Endian-Swap-Mode for reading of
1864 gather list and gather instruction. */
1865 uint64_t ror : 1; /**< Enables '1' Relaxed Ordering for reading of
1866 gather list and gather instruction. */
1871 uint64_t use_csr : 1;
1875 uint64_t pbp_dhi : 13;
1876 uint64_t pkt_rr : 1;
1877 uint64_t reserved_23_63 : 41;
1880 struct cvmx_npi_input_control_cn30xx
1882 #if __BYTE_ORDER == __BIG_ENDIAN
1883 uint64_t reserved_22_63 : 42;
1884 uint64_t pbp_dhi : 13; /**< Field when in [PBP] is set to be used in
1885 calculating a DPTR. */
1886 uint64_t d_nsr : 1; /**< Enables '1' NoSnoop for reading of
1888 uint64_t d_esr : 2; /**< The Endian-Swap-Mode for reading of
1890 uint64_t d_ror : 1; /**< Enables '1' Relaxed Ordering for reading of
1892 uint64_t use_csr : 1; /**< When set '1' the csr value will be used for
1893 ROR, ESR, and NSR. When clear '0' the value in
1894 DPTR will be used. In turn the bits not used for
1895 ROR, ESR, and NSR, will be used for bits [63:60]
1896 of the address used to fetch packet data. */
1897 uint64_t nsr : 1; /**< Enables '1' NoSnoop for reading of
1898 gather list and gather instruction. */
1899 uint64_t esr : 2; /**< The Endian-Swap-Mode for reading of
1900 gather list and gather instruction. */
1901 uint64_t ror : 1; /**< Enables '1' Relaxed Ordering for reading of
1902 gather list and gather instruction. */
1907 uint64_t use_csr : 1;
1911 uint64_t pbp_dhi : 13;
1912 uint64_t reserved_22_63 : 42;
1915 struct cvmx_npi_input_control_cn30xx cn31xx;
1916 struct cvmx_npi_input_control_s cn38xx;
1917 struct cvmx_npi_input_control_cn30xx cn38xxp2;
1918 struct cvmx_npi_input_control_s cn50xx;
1919 struct cvmx_npi_input_control_s cn58xx;
1920 struct cvmx_npi_input_control_s cn58xxp1;
1922 typedef union cvmx_npi_input_control cvmx_npi_input_control_t;
1927 * NPI_INTERRUPT_ENB = NPI's Interrupt Enable Register
1929 * Used to enable the various interrupting conditions of NPI
1931 union cvmx_npi_int_enb
1934 struct cvmx_npi_int_enb_s
1936 #if __BYTE_ORDER == __BIG_ENDIAN
1937 uint64_t reserved_62_63 : 2;
1938 uint64_t q1_a_f : 1; /**< Enables NPI_INT_SUM[Q1_A_F] to generate an
1940 uint64_t q1_s_e : 1; /**< Enables NPI_INT_SUM[Q1_S_E] to generate an
1942 uint64_t pdf_p_f : 1; /**< Enables NPI_INT_SUM[PDF_P_F] to generate an
1944 uint64_t pdf_p_e : 1; /**< Enables NPI_INT_SUM[PDF_P_E] to generate an
1946 uint64_t pcf_p_f : 1; /**< Enables NPI_INT_SUM[PCF_P_F] to generate an
1948 uint64_t pcf_p_e : 1; /**< Enables NPI_INT_SUM[PCF_P_E] to generate an
1950 uint64_t rdx_s_e : 1; /**< Enables NPI_INT_SUM[RDX_S_E] to generate an
1952 uint64_t rwx_s_e : 1; /**< Enables NPI_INT_SUM[RWX_S_E] to generate an
1954 uint64_t pnc_a_f : 1; /**< Enables NPI_INT_SUM[PNC_A_F] to generate an
1956 uint64_t pnc_s_e : 1; /**< Enables NPI_INT_SUM[PNC_S_E] to generate an
1958 uint64_t com_a_f : 1; /**< Enables NPI_INT_SUM[COM_A_F] to generate an
1960 uint64_t com_s_e : 1; /**< Enables NPI_INT_SUM[COM_S_E] to generate an
1962 uint64_t q3_a_f : 1; /**< Enables NPI_INT_SUM[Q3_A_F] to generate an
1964 uint64_t q3_s_e : 1; /**< Enables NPI_INT_SUM[Q3_S_E] to generate an
1966 uint64_t q2_a_f : 1; /**< Enables NPI_INT_SUM[Q2_A_F] to generate an
1968 uint64_t q2_s_e : 1; /**< Enables NPI_INT_SUM[Q2_S_E] to generate an
1970 uint64_t pcr_a_f : 1; /**< Enables NPI_INT_SUM[PCR_A_F] to generate an
1972 uint64_t pcr_s_e : 1; /**< Enables NPI_INT_SUM[PCR_S_E] to generate an
1974 uint64_t fcr_a_f : 1; /**< Enables NPI_INT_SUM[FCR_A_F] to generate an
1976 uint64_t fcr_s_e : 1; /**< Enables NPI_INT_SUM[FCR_S_E] to generate an
1978 uint64_t iobdma : 1; /**< Enables NPI_INT_SUM[IOBDMA] to generate an
1980 uint64_t p_dperr : 1; /**< Enables NPI_INT_SUM[P_DPERR] to generate an
1982 uint64_t win_rto : 1; /**< Enables NPI_INT_SUM[WIN_RTO] to generate an
1984 uint64_t i3_pperr : 1; /**< Enables NPI_INT_SUM[I3_PPERR] to generate an
1986 uint64_t i2_pperr : 1; /**< Enables NPI_INT_SUM[I2_PPERR] to generate an
1988 uint64_t i1_pperr : 1; /**< Enables NPI_INT_SUM[I1_PPERR] to generate an
1990 uint64_t i0_pperr : 1; /**< Enables NPI_INT_SUM[I0_PPERR] to generate an
1992 uint64_t p3_ptout : 1; /**< Enables NPI_INT_SUM[P3_PTOUT] to generate an
1994 uint64_t p2_ptout : 1; /**< Enables NPI_INT_SUM[P2_PTOUT] to generate an
1996 uint64_t p1_ptout : 1; /**< Enables NPI_INT_SUM[P1_PTOUT] to generate an
1998 uint64_t p0_ptout : 1; /**< Enables NPI_INT_SUM[P0_PTOUT] to generate an
2000 uint64_t p3_pperr : 1; /**< Enables NPI_INT_SUM[P3_PPERR] to generate an
2002 uint64_t p2_pperr : 1; /**< Enables NPI_INT_SUM[P2_PPERR] to generate an
2004 uint64_t p1_pperr : 1; /**< Enables NPI_INT_SUM[P1_PPERR] to generate an
2006 uint64_t p0_pperr : 1; /**< Enables NPI_INT_SUM[P0_PPERR] to generate an
2008 uint64_t g3_rtout : 1; /**< Enables NPI_INT_SUM[G3_RTOUT] to generate an
2010 uint64_t g2_rtout : 1; /**< Enables NPI_INT_SUM[G2_RTOUT] to generate an
2012 uint64_t g1_rtout : 1; /**< Enables NPI_INT_SUM[G1_RTOUT] to generate an
2014 uint64_t g0_rtout : 1; /**< Enables NPI_INT_SUM[G0_RTOUT] to generate an
2016 uint64_t p3_perr : 1; /**< Enables NPI_INT_SUM[P3_PERR] to generate an
2018 uint64_t p2_perr : 1; /**< Enables NPI_INT_SUM[P2_PERR] to generate an
2020 uint64_t p1_perr : 1; /**< Enables NPI_INT_SUM[P1_PERR] to generate an
2022 uint64_t p0_perr : 1; /**< Enables NPI_INT_SUM[P0_PERR] to generate an
2024 uint64_t p3_rtout : 1; /**< Enables NPI_INT_SUM[P3_RTOUT] to generate an
2026 uint64_t p2_rtout : 1; /**< Enables NPI_INT_SUM[P2_RTOUT] to generate an
2028 uint64_t p1_rtout : 1; /**< Enables NPI_INT_SUM[P1_RTOUT] to generate an
2030 uint64_t p0_rtout : 1; /**< Enables NPI_INT_SUM[P0_RTOUT] to generate an
2032 uint64_t i3_overf : 1; /**< Enables NPI_INT_SUM[I3_OVERF] to generate an
2034 uint64_t i2_overf : 1; /**< Enables NPI_INT_SUM[I2_OVERF] to generate an
2036 uint64_t i1_overf : 1; /**< Enables NPI_INT_SUM[I1_OVERF] to generate an
2038 uint64_t i0_overf : 1; /**< Enables NPI_INT_SUM[I0_OVERF] to generate an
2040 uint64_t i3_rtout : 1; /**< Enables NPI_INT_SUM[I3_RTOUT] to generate an
2042 uint64_t i2_rtout : 1; /**< Enables NPI_INT_SUM[I2_RTOUT] to generate an
2044 uint64_t i1_rtout : 1; /**< Enables NPI_INT_SUM[I1_RTOUT] to generate an
2046 uint64_t i0_rtout : 1; /**< Enables NPI_INT_SUM[I0_RTOUT] to generate an
2048 uint64_t po3_2sml : 1; /**< Enables NPI_INT_SUM[PO3_2SML] to generate an
2050 uint64_t po2_2sml : 1; /**< Enables NPI_INT_SUM[PO2_2SML] to generate an
2052 uint64_t po1_2sml : 1; /**< Enables NPI_INT_SUM[PO1_2SML] to generate an
2054 uint64_t po0_2sml : 1; /**< Enables NPI_INT_SUM[PO0_2SML] to generate an
2056 uint64_t pci_rsl : 1; /**< Enables NPI_INT_SUM[PCI_RSL] to generate an
2058 uint64_t rml_wto : 1; /**< Enables NPI_INT_SUM[RML_WTO] to generate an
2060 uint64_t rml_rto : 1; /**< Enables NPI_INT_SUM[RML_RTO] to generate an
2063 uint64_t rml_rto : 1;
2064 uint64_t rml_wto : 1;
2065 uint64_t pci_rsl : 1;
2066 uint64_t po0_2sml : 1;
2067 uint64_t po1_2sml : 1;
2068 uint64_t po2_2sml : 1;
2069 uint64_t po3_2sml : 1;
2070 uint64_t i0_rtout : 1;
2071 uint64_t i1_rtout : 1;
2072 uint64_t i2_rtout : 1;
2073 uint64_t i3_rtout : 1;
2074 uint64_t i0_overf : 1;
2075 uint64_t i1_overf : 1;
2076 uint64_t i2_overf : 1;
2077 uint64_t i3_overf : 1;
2078 uint64_t p0_rtout : 1;
2079 uint64_t p1_rtout : 1;
2080 uint64_t p2_rtout : 1;
2081 uint64_t p3_rtout : 1;
2082 uint64_t p0_perr : 1;
2083 uint64_t p1_perr : 1;
2084 uint64_t p2_perr : 1;
2085 uint64_t p3_perr : 1;
2086 uint64_t g0_rtout : 1;
2087 uint64_t g1_rtout : 1;
2088 uint64_t g2_rtout : 1;
2089 uint64_t g3_rtout : 1;
2090 uint64_t p0_pperr : 1;
2091 uint64_t p1_pperr : 1;
2092 uint64_t p2_pperr : 1;
2093 uint64_t p3_pperr : 1;
2094 uint64_t p0_ptout : 1;
2095 uint64_t p1_ptout : 1;
2096 uint64_t p2_ptout : 1;
2097 uint64_t p3_ptout : 1;
2098 uint64_t i0_pperr : 1;
2099 uint64_t i1_pperr : 1;
2100 uint64_t i2_pperr : 1;
2101 uint64_t i3_pperr : 1;
2102 uint64_t win_rto : 1;
2103 uint64_t p_dperr : 1;
2104 uint64_t iobdma : 1;
2105 uint64_t fcr_s_e : 1;
2106 uint64_t fcr_a_f : 1;
2107 uint64_t pcr_s_e : 1;
2108 uint64_t pcr_a_f : 1;
2109 uint64_t q2_s_e : 1;
2110 uint64_t q2_a_f : 1;
2111 uint64_t q3_s_e : 1;
2112 uint64_t q3_a_f : 1;
2113 uint64_t com_s_e : 1;
2114 uint64_t com_a_f : 1;
2115 uint64_t pnc_s_e : 1;
2116 uint64_t pnc_a_f : 1;
2117 uint64_t rwx_s_e : 1;
2118 uint64_t rdx_s_e : 1;
2119 uint64_t pcf_p_e : 1;
2120 uint64_t pcf_p_f : 1;
2121 uint64_t pdf_p_e : 1;
2122 uint64_t pdf_p_f : 1;
2123 uint64_t q1_s_e : 1;
2124 uint64_t q1_a_f : 1;
2125 uint64_t reserved_62_63 : 2;
2128 struct cvmx_npi_int_enb_cn30xx
2130 #if __BYTE_ORDER == __BIG_ENDIAN
2131 uint64_t reserved_62_63 : 2;
2132 uint64_t q1_a_f : 1; /**< Enables NPI_INT_SUM[Q1_A_F] to generate an
2134 uint64_t q1_s_e : 1; /**< Enables NPI_INT_SUM[Q1_S_E] to generate an
2136 uint64_t pdf_p_f : 1; /**< Enables NPI_INT_SUM[PDF_P_F] to generate an
2138 uint64_t pdf_p_e : 1; /**< Enables NPI_INT_SUM[PDF_P_E] to generate an
2140 uint64_t pcf_p_f : 1; /**< Enables NPI_INT_SUM[PCF_P_F] to generate an
2142 uint64_t pcf_p_e : 1; /**< Enables NPI_INT_SUM[PCF_P_E] to generate an
2144 uint64_t rdx_s_e : 1; /**< Enables NPI_INT_SUM[RDX_S_E] to generate an
2146 uint64_t rwx_s_e : 1; /**< Enables NPI_INT_SUM[RWX_S_E] to generate an
2148 uint64_t pnc_a_f : 1; /**< Enables NPI_INT_SUM[PNC_A_F] to generate an
2150 uint64_t pnc_s_e : 1; /**< Enables NPI_INT_SUM[PNC_S_E] to generate an
2152 uint64_t com_a_f : 1; /**< Enables NPI_INT_SUM[COM_A_F] to generate an
2154 uint64_t com_s_e : 1; /**< Enables NPI_INT_SUM[COM_S_E] to generate an
2156 uint64_t q3_a_f : 1; /**< Enables NPI_INT_SUM[Q3_A_F] to generate an
2158 uint64_t q3_s_e : 1; /**< Enables NPI_INT_SUM[Q3_S_E] to generate an
2160 uint64_t q2_a_f : 1; /**< Enables NPI_INT_SUM[Q2_A_F] to generate an
2162 uint64_t q2_s_e : 1; /**< Enables NPI_INT_SUM[Q2_S_E] to generate an
2164 uint64_t pcr_a_f : 1; /**< Enables NPI_INT_SUM[PCR_A_F] to generate an
2166 uint64_t pcr_s_e : 1; /**< Enables NPI_INT_SUM[PCR_S_E] to generate an
2168 uint64_t fcr_a_f : 1; /**< Enables NPI_INT_SUM[FCR_A_F] to generate an
2170 uint64_t fcr_s_e : 1; /**< Enables NPI_INT_SUM[FCR_S_E] to generate an
2172 uint64_t iobdma : 1; /**< Enables NPI_INT_SUM[IOBDMA] to generate an
2174 uint64_t p_dperr : 1; /**< Enables NPI_INT_SUM[P_DPERR] to generate an
2176 uint64_t win_rto : 1; /**< Enables NPI_INT_SUM[WIN_RTO] to generate an
2178 uint64_t reserved_36_38 : 3;
2179 uint64_t i0_pperr : 1; /**< Enables NPI_INT_SUM[I0_PPERR] to generate an
2181 uint64_t reserved_32_34 : 3;
2182 uint64_t p0_ptout : 1; /**< Enables NPI_INT_SUM[P0_PTOUT] to generate an
2184 uint64_t reserved_28_30 : 3;
2185 uint64_t p0_pperr : 1; /**< Enables NPI_INT_SUM[P0_PPERR] to generate an
2187 uint64_t reserved_24_26 : 3;
2188 uint64_t g0_rtout : 1; /**< Enables NPI_INT_SUM[G0_RTOUT] to generate an
2190 uint64_t reserved_20_22 : 3;
2191 uint64_t p0_perr : 1; /**< Enables NPI_INT_SUM[P0_PERR] to generate an
2193 uint64_t reserved_16_18 : 3;
2194 uint64_t p0_rtout : 1; /**< Enables NPI_INT_SUM[P0_RTOUT] to generate an
2196 uint64_t reserved_12_14 : 3;
2197 uint64_t i0_overf : 1; /**< Enables NPI_INT_SUM[I0_OVERF] to generate an
2199 uint64_t reserved_8_10 : 3;
2200 uint64_t i0_rtout : 1; /**< Enables NPI_INT_SUM[I0_RTOUT] to generate an
2202 uint64_t reserved_4_6 : 3;
2203 uint64_t po0_2sml : 1; /**< Enables NPI_INT_SUM[PO0_2SML] to generate an
2205 uint64_t pci_rsl : 1; /**< Enables NPI_INT_SUM[PCI_RSL] to generate an
2207 uint64_t rml_wto : 1; /**< Enables NPI_INT_SUM[RML_WTO] to generate an
2209 uint64_t rml_rto : 1; /**< Enables NPI_INT_SUM[RML_RTO] to generate an
2212 uint64_t rml_rto : 1;
2213 uint64_t rml_wto : 1;
2214 uint64_t pci_rsl : 1;
2215 uint64_t po0_2sml : 1;
2216 uint64_t reserved_4_6 : 3;
2217 uint64_t i0_rtout : 1;
2218 uint64_t reserved_8_10 : 3;
2219 uint64_t i0_overf : 1;
2220 uint64_t reserved_12_14 : 3;
2221 uint64_t p0_rtout : 1;
2222 uint64_t reserved_16_18 : 3;
2223 uint64_t p0_perr : 1;
2224 uint64_t reserved_20_22 : 3;
2225 uint64_t g0_rtout : 1;
2226 uint64_t reserved_24_26 : 3;
2227 uint64_t p0_pperr : 1;
2228 uint64_t reserved_28_30 : 3;
2229 uint64_t p0_ptout : 1;
2230 uint64_t reserved_32_34 : 3;
2231 uint64_t i0_pperr : 1;
2232 uint64_t reserved_36_38 : 3;
2233 uint64_t win_rto : 1;
2234 uint64_t p_dperr : 1;
2235 uint64_t iobdma : 1;
2236 uint64_t fcr_s_e : 1;
2237 uint64_t fcr_a_f : 1;
2238 uint64_t pcr_s_e : 1;
2239 uint64_t pcr_a_f : 1;
2240 uint64_t q2_s_e : 1;
2241 uint64_t q2_a_f : 1;
2242 uint64_t q3_s_e : 1;
2243 uint64_t q3_a_f : 1;
2244 uint64_t com_s_e : 1;
2245 uint64_t com_a_f : 1;
2246 uint64_t pnc_s_e : 1;
2247 uint64_t pnc_a_f : 1;
2248 uint64_t rwx_s_e : 1;
2249 uint64_t rdx_s_e : 1;
2250 uint64_t pcf_p_e : 1;
2251 uint64_t pcf_p_f : 1;
2252 uint64_t pdf_p_e : 1;
2253 uint64_t pdf_p_f : 1;
2254 uint64_t q1_s_e : 1;
2255 uint64_t q1_a_f : 1;
2256 uint64_t reserved_62_63 : 2;
2259 struct cvmx_npi_int_enb_cn31xx
2261 #if __BYTE_ORDER == __BIG_ENDIAN
2262 uint64_t reserved_62_63 : 2;
2263 uint64_t q1_a_f : 1; /**< Enables NPI_INT_SUM[Q1_A_F] to generate an
2265 uint64_t q1_s_e : 1; /**< Enables NPI_INT_SUM[Q1_S_E] to generate an
2267 uint64_t pdf_p_f : 1; /**< Enables NPI_INT_SUM[PDF_P_F] to generate an
2269 uint64_t pdf_p_e : 1; /**< Enables NPI_INT_SUM[PDF_P_E] to generate an
2271 uint64_t pcf_p_f : 1; /**< Enables NPI_INT_SUM[PCF_P_F] to generate an
2273 uint64_t pcf_p_e : 1; /**< Enables NPI_INT_SUM[PCF_P_E] to generate an
2275 uint64_t rdx_s_e : 1; /**< Enables NPI_INT_SUM[RDX_S_E] to generate an
2277 uint64_t rwx_s_e : 1; /**< Enables NPI_INT_SUM[RWX_S_E] to generate an
2279 uint64_t pnc_a_f : 1; /**< Enables NPI_INT_SUM[PNC_A_F] to generate an
2281 uint64_t pnc_s_e : 1; /**< Enables NPI_INT_SUM[PNC_S_E] to generate an
2283 uint64_t com_a_f : 1; /**< Enables NPI_INT_SUM[COM_A_F] to generate an
2285 uint64_t com_s_e : 1; /**< Enables NPI_INT_SUM[COM_S_E] to generate an
2287 uint64_t q3_a_f : 1; /**< Enables NPI_INT_SUM[Q3_A_F] to generate an
2289 uint64_t q3_s_e : 1; /**< Enables NPI_INT_SUM[Q3_S_E] to generate an
2291 uint64_t q2_a_f : 1; /**< Enables NPI_INT_SUM[Q2_A_F] to generate an
2293 uint64_t q2_s_e : 1; /**< Enables NPI_INT_SUM[Q2_S_E] to generate an
2295 uint64_t pcr_a_f : 1; /**< Enables NPI_INT_SUM[PCR_A_F] to generate an
2297 uint64_t pcr_s_e : 1; /**< Enables NPI_INT_SUM[PCR_S_E] to generate an
2299 uint64_t fcr_a_f : 1; /**< Enables NPI_INT_SUM[FCR_A_F] to generate an
2301 uint64_t fcr_s_e : 1; /**< Enables NPI_INT_SUM[FCR_S_E] to generate an
2303 uint64_t iobdma : 1; /**< Enables NPI_INT_SUM[IOBDMA] to generate an
2305 uint64_t p_dperr : 1; /**< Enables NPI_INT_SUM[P_DPERR] to generate an
2307 uint64_t win_rto : 1; /**< Enables NPI_INT_SUM[WIN_RTO] to generate an
2309 uint64_t reserved_37_38 : 2;
2310 uint64_t i1_pperr : 1; /**< Enables NPI_INT_SUM[I1_PPERR] to generate an
2312 uint64_t i0_pperr : 1; /**< Enables NPI_INT_SUM[I0_PPERR] to generate an
2314 uint64_t reserved_33_34 : 2;
2315 uint64_t p1_ptout : 1; /**< Enables NPI_INT_SUM[P1_PTOUT] to generate an
2317 uint64_t p0_ptout : 1; /**< Enables NPI_INT_SUM[P0_PTOUT] to generate an
2319 uint64_t reserved_29_30 : 2;
2320 uint64_t p1_pperr : 1; /**< Enables NPI_INT_SUM[P1_PPERR] to generate an
2322 uint64_t p0_pperr : 1; /**< Enables NPI_INT_SUM[P0_PPERR] to generate an
2324 uint64_t reserved_25_26 : 2;
2325 uint64_t g1_rtout : 1; /**< Enables NPI_INT_SUM[G1_RTOUT] to generate an
2327 uint64_t g0_rtout : 1; /**< Enables NPI_INT_SUM[G0_RTOUT] to generate an
2329 uint64_t reserved_21_22 : 2;
2330 uint64_t p1_perr : 1; /**< Enables NPI_INT_SUM[P1_PERR] to generate an
2332 uint64_t p0_perr : 1; /**< Enables NPI_INT_SUM[P0_PERR] to generate an
2334 uint64_t reserved_17_18 : 2;
2335 uint64_t p1_rtout : 1; /**< Enables NPI_INT_SUM[P1_RTOUT] to generate an
2337 uint64_t p0_rtout : 1; /**< Enables NPI_INT_SUM[P0_RTOUT] to generate an
2339 uint64_t reserved_13_14 : 2;
2340 uint64_t i1_overf : 1; /**< Enables NPI_INT_SUM[I1_OVERF] to generate an
2342 uint64_t i0_overf : 1; /**< Enables NPI_INT_SUM[I0_OVERF] to generate an
2344 uint64_t reserved_9_10 : 2;
2345 uint64_t i1_rtout : 1; /**< Enables NPI_INT_SUM[I1_RTOUT] to generate an
2347 uint64_t i0_rtout : 1; /**< Enables NPI_INT_SUM[I0_RTOUT] to generate an
2349 uint64_t reserved_5_6 : 2;
2350 uint64_t po1_2sml : 1; /**< Enables NPI_INT_SUM[PO1_2SML] to generate an
2352 uint64_t po0_2sml : 1; /**< Enables NPI_INT_SUM[PO0_2SML] to generate an
2354 uint64_t pci_rsl : 1; /**< Enables NPI_INT_SUM[PCI_RSL] to generate an
2356 uint64_t rml_wto : 1; /**< Enables NPI_INT_SUM[RML_WTO] to generate an
2358 uint64_t rml_rto : 1; /**< Enables NPI_INT_SUM[RML_RTO] to generate an
2361 uint64_t rml_rto : 1;
2362 uint64_t rml_wto : 1;
2363 uint64_t pci_rsl : 1;
2364 uint64_t po0_2sml : 1;
2365 uint64_t po1_2sml : 1;
2366 uint64_t reserved_5_6 : 2;
2367 uint64_t i0_rtout : 1;
2368 uint64_t i1_rtout : 1;
2369 uint64_t reserved_9_10 : 2;
2370 uint64_t i0_overf : 1;
2371 uint64_t i1_overf : 1;
2372 uint64_t reserved_13_14 : 2;
2373 uint64_t p0_rtout : 1;
2374 uint64_t p1_rtout : 1;
2375 uint64_t reserved_17_18 : 2;
2376 uint64_t p0_perr : 1;
2377 uint64_t p1_perr : 1;
2378 uint64_t reserved_21_22 : 2;
2379 uint64_t g0_rtout : 1;
2380 uint64_t g1_rtout : 1;
2381 uint64_t reserved_25_26 : 2;
2382 uint64_t p0_pperr : 1;
2383 uint64_t p1_pperr : 1;
2384 uint64_t reserved_29_30 : 2;
2385 uint64_t p0_ptout : 1;
2386 uint64_t p1_ptout : 1;
2387 uint64_t reserved_33_34 : 2;
2388 uint64_t i0_pperr : 1;
2389 uint64_t i1_pperr : 1;
2390 uint64_t reserved_37_38 : 2;
2391 uint64_t win_rto : 1;
2392 uint64_t p_dperr : 1;
2393 uint64_t iobdma : 1;
2394 uint64_t fcr_s_e : 1;
2395 uint64_t fcr_a_f : 1;
2396 uint64_t pcr_s_e : 1;
2397 uint64_t pcr_a_f : 1;
2398 uint64_t q2_s_e : 1;
2399 uint64_t q2_a_f : 1;
2400 uint64_t q3_s_e : 1;
2401 uint64_t q3_a_f : 1;
2402 uint64_t com_s_e : 1;
2403 uint64_t com_a_f : 1;
2404 uint64_t pnc_s_e : 1;
2405 uint64_t pnc_a_f : 1;
2406 uint64_t rwx_s_e : 1;
2407 uint64_t rdx_s_e : 1;
2408 uint64_t pcf_p_e : 1;
2409 uint64_t pcf_p_f : 1;
2410 uint64_t pdf_p_e : 1;
2411 uint64_t pdf_p_f : 1;
2412 uint64_t q1_s_e : 1;
2413 uint64_t q1_a_f : 1;
2414 uint64_t reserved_62_63 : 2;
2417 struct cvmx_npi_int_enb_s cn38xx;
2418 struct cvmx_npi_int_enb_cn38xxp2
2420 #if __BYTE_ORDER == __BIG_ENDIAN
2421 uint64_t reserved_42_63 : 22;
2422 uint64_t iobdma : 1; /**< Enables NPI_INT_SUM[IOBDMA] to generate an
2424 uint64_t p_dperr : 1; /**< Enables NPI_INT_SUM[P_DPERR] to generate an
2426 uint64_t win_rto : 1; /**< Enables NPI_INT_SUM[WIN_RTO] to generate an
2428 uint64_t i3_pperr : 1; /**< Enables NPI_INT_SUM[I3_PPERR] to generate an
2430 uint64_t i2_pperr : 1; /**< Enables NPI_INT_SUM[I2_PPERR] to generate an
2432 uint64_t i1_pperr : 1; /**< Enables NPI_INT_SUM[I1_PPERR] to generate an
2434 uint64_t i0_pperr : 1; /**< Enables NPI_INT_SUM[I0_PPERR] to generate an
2436 uint64_t p3_ptout : 1; /**< Enables NPI_INT_SUM[P3_PTOUT] to generate an
2438 uint64_t p2_ptout : 1; /**< Enables NPI_INT_SUM[P2_PTOUT] to generate an
2440 uint64_t p1_ptout : 1; /**< Enables NPI_INT_SUM[P1_PTOUT] to generate an
2442 uint64_t p0_ptout : 1; /**< Enables NPI_INT_SUM[P0_PTOUT] to generate an
2444 uint64_t p3_pperr : 1; /**< Enables NPI_INT_SUM[P3_PPERR] to generate an
2446 uint64_t p2_pperr : 1; /**< Enables NPI_INT_SUM[P2_PPERR] to generate an
2448 uint64_t p1_pperr : 1; /**< Enables NPI_INT_SUM[P1_PPERR] to generate an
2450 uint64_t p0_pperr : 1; /**< Enables NPI_INT_SUM[P0_PPERR] to generate an
2452 uint64_t g3_rtout : 1; /**< Enables NPI_INT_SUM[G3_RTOUT] to generate an
2454 uint64_t g2_rtout : 1; /**< Enables NPI_INT_SUM[G2_RTOUT] to generate an
2456 uint64_t g1_rtout : 1; /**< Enables NPI_INT_SUM[G1_RTOUT] to generate an
2458 uint64_t g0_rtout : 1; /**< Enables NPI_INT_SUM[G0_RTOUT] to generate an
2460 uint64_t p3_perr : 1; /**< Enables NPI_INT_SUM[P3_PERR] to generate an
2462 uint64_t p2_perr : 1; /**< Enables NPI_INT_SUM[P2_PERR] to generate an
2464 uint64_t p1_perr : 1; /**< Enables NPI_INT_SUM[P1_PERR] to generate an
2466 uint64_t p0_perr : 1; /**< Enables NPI_INT_SUM[P0_PERR] to generate an
2468 uint64_t p3_rtout : 1; /**< Enables NPI_INT_SUM[P3_RTOUT] to generate an
2470 uint64_t p2_rtout : 1; /**< Enables NPI_INT_SUM[P2_RTOUT] to generate an
2472 uint64_t p1_rtout : 1; /**< Enables NPI_INT_SUM[P1_RTOUT] to generate an
2474 uint64_t p0_rtout : 1; /**< Enables NPI_INT_SUM[P0_RTOUT] to generate an
2476 uint64_t i3_overf : 1; /**< Enables NPI_INT_SUM[I3_OVERF] to generate an
2478 uint64_t i2_overf : 1; /**< Enables NPI_INT_SUM[I2_OVERF] to generate an
2480 uint64_t i1_overf : 1; /**< Enables NPI_INT_SUM[I1_OVERF] to generate an
2482 uint64_t i0_overf : 1; /**< Enables NPI_INT_SUM[I0_OVERF] to generate an
2484 uint64_t i3_rtout : 1; /**< Enables NPI_INT_SUM[I3_RTOUT] to generate an
2486 uint64_t i2_rtout : 1; /**< Enables NPI_INT_SUM[I2_RTOUT] to generate an
2488 uint64_t i1_rtout : 1; /**< Enables NPI_INT_SUM[I1_RTOUT] to generate an
2490 uint64_t i0_rtout : 1; /**< Enables NPI_INT_SUM[I0_RTOUT] to generate an
2492 uint64_t po3_2sml : 1; /**< Enables NPI_INT_SUM[PO3_2SML] to generate an
2494 uint64_t po2_2sml : 1; /**< Enables NPI_INT_SUM[PO2_2SML] to generate an
2496 uint64_t po1_2sml : 1; /**< Enables NPI_INT_SUM[PO1_2SML] to generate an
2498 uint64_t po0_2sml : 1; /**< Enables NPI_INT_SUM[PO0_2SML] to generate an
2500 uint64_t pci_rsl : 1; /**< Enables NPI_INT_SUM[PCI_RSL] to generate an
2502 uint64_t rml_wto : 1; /**< Enables NPI_INT_SUM[RML_WTO] to generate an
2504 uint64_t rml_rto : 1; /**< Enables NPI_INT_SUM[RML_RTO] to generate an
2507 uint64_t rml_rto : 1;
2508 uint64_t rml_wto : 1;
2509 uint64_t pci_rsl : 1;
2510 uint64_t po0_2sml : 1;
2511 uint64_t po1_2sml : 1;
2512 uint64_t po2_2sml : 1;
2513 uint64_t po3_2sml : 1;
2514 uint64_t i0_rtout : 1;
2515 uint64_t i1_rtout : 1;
2516 uint64_t i2_rtout : 1;
2517 uint64_t i3_rtout : 1;
2518 uint64_t i0_overf : 1;
2519 uint64_t i1_overf : 1;
2520 uint64_t i2_overf : 1;
2521 uint64_t i3_overf : 1;
2522 uint64_t p0_rtout : 1;
2523 uint64_t p1_rtout : 1;
2524 uint64_t p2_rtout : 1;
2525 uint64_t p3_rtout : 1;
2526 uint64_t p0_perr : 1;
2527 uint64_t p1_perr : 1;
2528 uint64_t p2_perr : 1;
2529 uint64_t p3_perr : 1;
2530 uint64_t g0_rtout : 1;
2531 uint64_t g1_rtout : 1;
2532 uint64_t g2_rtout : 1;
2533 uint64_t g3_rtout : 1;
2534 uint64_t p0_pperr : 1;
2535 uint64_t p1_pperr : 1;
2536 uint64_t p2_pperr : 1;
2537 uint64_t p3_pperr : 1;
2538 uint64_t p0_ptout : 1;
2539 uint64_t p1_ptout : 1;
2540 uint64_t p2_ptout : 1;
2541 uint64_t p3_ptout : 1;
2542 uint64_t i0_pperr : 1;
2543 uint64_t i1_pperr : 1;
2544 uint64_t i2_pperr : 1;
2545 uint64_t i3_pperr : 1;
2546 uint64_t win_rto : 1;
2547 uint64_t p_dperr : 1;
2548 uint64_t iobdma : 1;
2549 uint64_t reserved_42_63 : 22;
2552 struct cvmx_npi_int_enb_cn31xx cn50xx;
2553 struct cvmx_npi_int_enb_s cn58xx;
2554 struct cvmx_npi_int_enb_s cn58xxp1;
2556 typedef union cvmx_npi_int_enb cvmx_npi_int_enb_t;
2561 * NPI_INTERRUPT_SUM = NPI Interrupt Summary Register
2563 * Set when an interrupt condition occurs, write '1' to clear.
2565 union cvmx_npi_int_sum
2568 struct cvmx_npi_int_sum_s
2570 #if __BYTE_ORDER == __BIG_ENDIAN
2571 uint64_t reserved_62_63 : 2;
2572 uint64_t q1_a_f : 1; /**< Attempted to add when Queue-1 FIFO is full.
2574 uint64_t q1_s_e : 1; /**< Attempted to subtract when Queue-1 FIFO is empty.
2576 uint64_t pdf_p_f : 1; /**< Attempted to push a full PCN-DATA-FIFO.
2578 uint64_t pdf_p_e : 1; /**< Attempted to pop an empty PCN-DATA-FIFO.
2580 uint64_t pcf_p_f : 1; /**< Attempted to push a full PCN-CNT-FIFO.
2582 uint64_t pcf_p_e : 1; /**< Attempted to pop an empty PCN-CNT-FIFO.
2584 uint64_t rdx_s_e : 1; /**< Attempted to subtract when DPI-XFR-Wait count is 0.
2586 uint64_t rwx_s_e : 1; /**< Attempted to subtract when RDN-XFR-Wait count is 0.
2588 uint64_t pnc_a_f : 1; /**< Attempted to add when PNI-NPI Credits are max.
2590 uint64_t pnc_s_e : 1; /**< Attempted to subtract when PNI-NPI Credits are 0.
2592 uint64_t com_a_f : 1; /**< Attempted to add when PCN-Commit Counter is max.
2594 uint64_t com_s_e : 1; /**< Attempted to subtract when PCN-Commit Counter is 0.
2596 uint64_t q3_a_f : 1; /**< Attempted to add when Queue-3 FIFO is full.
2598 uint64_t q3_s_e : 1; /**< Attempted to subtract when Queue-3 FIFO is empty.
2600 uint64_t q2_a_f : 1; /**< Attempted to add when Queue-2 FIFO is full.
2602 uint64_t q2_s_e : 1; /**< Attempted to subtract when Queue-2 FIFO is empty.
2604 uint64_t pcr_a_f : 1; /**< Attempted to add when POW Credits is full.
2606 uint64_t pcr_s_e : 1; /**< Attempted to subtract when POW Credits is empty.
2608 uint64_t fcr_a_f : 1; /**< Attempted to add when FPA Credits is full.
2610 uint64_t fcr_s_e : 1; /**< Attempted to subtract when FPA Credits is empty.
2612 uint64_t iobdma : 1; /**< Requested IOBDMA read size exceeded 128 words. */
2613 uint64_t p_dperr : 1; /**< If a parity error occured on data written to L2C
2614 from the PCI this bit may be set. */
2615 uint64_t win_rto : 1; /**< Windowed Load Timed Out. */
2616 uint64_t i3_pperr : 1; /**< If a parity error occured on the port's instruction
2617 this bit may be set. */
2618 uint64_t i2_pperr : 1; /**< If a parity error occured on the port's instruction
2619 this bit may be set. */
2620 uint64_t i1_pperr : 1; /**< If a parity error occured on the port's instruction
2621 this bit may be set. */
2622 uint64_t i0_pperr : 1; /**< If a parity error occured on the port's instruction
2623 this bit may be set. */
2624 uint64_t p3_ptout : 1; /**< Port-3 output had a read timeout on a DATA/INFO
2626 uint64_t p2_ptout : 1; /**< Port-2 output had a read timeout on a DATA/INFO
2628 uint64_t p1_ptout : 1; /**< Port-1 output had a read timeout on a DATA/INFO
2630 uint64_t p0_ptout : 1; /**< Port-0 output had a read timeout on a DATA/INFO
2632 uint64_t p3_pperr : 1; /**< If a parity error occured on the port DATA/INFO
2633 pointer-pair, this bit may be set. */
2634 uint64_t p2_pperr : 1; /**< If a parity error occured on the port DATA/INFO
2635 pointer-pair, this bit may be set. */
2636 uint64_t p1_pperr : 1; /**< If a parity error occured on the port DATA/INFO
2637 pointer-pair, this bit may be set. */
2638 uint64_t p0_pperr : 1; /**< If a parity error occured on the port DATA/INFO
2639 pointer-pair, this bit may be set. */
2640 uint64_t g3_rtout : 1; /**< Port-3 had a read timeout while attempting to
2641 read a gather list. */
2642 uint64_t g2_rtout : 1; /**< Port-2 had a read timeout while attempting to
2643 read a gather list. */
2644 uint64_t g1_rtout : 1; /**< Port-1 had a read timeout while attempting to
2645 read a gather list. */
2646 uint64_t g0_rtout : 1; /**< Port-0 had a read timeout while attempting to
2647 read a gather list. */
2648 uint64_t p3_perr : 1; /**< If a parity error occured on the port's packet
2649 data this bit may be set. */
2650 uint64_t p2_perr : 1; /**< If a parity error occured on the port's packet
2651 data this bit may be set. */
2652 uint64_t p1_perr : 1; /**< If a parity error occured on the port's packet
2653 data this bit may be set. */
2654 uint64_t p0_perr : 1; /**< If a parity error occured on the port's packet
2655 data this bit may be set. */
2656 uint64_t p3_rtout : 1; /**< Port-3 had a read timeout while attempting to
2657 read packet data. */
2658 uint64_t p2_rtout : 1; /**< Port-2 had a read timeout while attempting to
2659 read packet data. */
2660 uint64_t p1_rtout : 1; /**< Port-1 had a read timeout while attempting to
2661 read packet data. */
2662 uint64_t p0_rtout : 1; /**< Port-0 had a read timeout while attempting to
2663 read packet data. */
2664 uint64_t i3_overf : 1; /**< Port-3 had a doorbell overflow. Bit[31] of the
2665 doorbell count was set. */
2666 uint64_t i2_overf : 1; /**< Port-2 had a doorbell overflow. Bit[31] of the
2667 doorbell count was set. */
2668 uint64_t i1_overf : 1; /**< Port-1 had a doorbell overflow. Bit[31] of the
2669 doorbell count was set. */
2670 uint64_t i0_overf : 1; /**< Port-0 had a doorbell overflow. Bit[31] of the
2671 doorbell count was set. */
2672 uint64_t i3_rtout : 1; /**< Port-3 had a read timeout while attempting to
2673 read instructions. */
2674 uint64_t i2_rtout : 1; /**< Port-2 had a read timeout while attempting to
2675 read instructions. */
2676 uint64_t i1_rtout : 1; /**< Port-1 had a read timeout while attempting to
2677 read instructions. */
2678 uint64_t i0_rtout : 1; /**< Port-0 had a read timeout while attempting to
2679 read instructions. */
2680 uint64_t po3_2sml : 1; /**< The packet being sent out on Port3 is smaller
2681 than the NPI_BUFF_SIZE_OUTPUT3[ISIZE] field. */
2682 uint64_t po2_2sml : 1; /**< The packet being sent out on Port2 is smaller
2683 than the NPI_BUFF_SIZE_OUTPUT2[ISIZE] field. */
2684 uint64_t po1_2sml : 1; /**< The packet being sent out on Port1 is smaller
2685 than the NPI_BUFF_SIZE_OUTPUT1[ISIZE] field. */
2686 uint64_t po0_2sml : 1; /**< The packet being sent out on Port0 is smaller
2687 than the NPI_BUFF_SIZE_OUTPUT0[ISIZE] field. */
2688 uint64_t pci_rsl : 1; /**< This '1' when a bit in PCI_INT_SUM2 is SET and the
2689 corresponding bit in the PCI_INT_ENB2 is SET. */
2690 uint64_t rml_wto : 1; /**< Set '1' when the RML does not receive a commit
2691 back from a RSL after sending a write command to
2693 uint64_t rml_rto : 1; /**< Set '1' when the RML does not receive read data
2694 back from a RSL after sending a read command to
2697 uint64_t rml_rto : 1;
2698 uint64_t rml_wto : 1;
2699 uint64_t pci_rsl : 1;
2700 uint64_t po0_2sml : 1;
2701 uint64_t po1_2sml : 1;
2702 uint64_t po2_2sml : 1;
2703 uint64_t po3_2sml : 1;
2704 uint64_t i0_rtout : 1;
2705 uint64_t i1_rtout : 1;
2706 uint64_t i2_rtout : 1;
2707 uint64_t i3_rtout : 1;
2708 uint64_t i0_overf : 1;
2709 uint64_t i1_overf : 1;
2710 uint64_t i2_overf : 1;
2711 uint64_t i3_overf : 1;
2712 uint64_t p0_rtout : 1;
2713 uint64_t p1_rtout : 1;
2714 uint64_t p2_rtout : 1;
2715 uint64_t p3_rtout : 1;
2716 uint64_t p0_perr : 1;
2717 uint64_t p1_perr : 1;
2718 uint64_t p2_perr : 1;
2719 uint64_t p3_perr : 1;
2720 uint64_t g0_rtout : 1;
2721 uint64_t g1_rtout : 1;
2722 uint64_t g2_rtout : 1;
2723 uint64_t g3_rtout : 1;
2724 uint64_t p0_pperr : 1;
2725 uint64_t p1_pperr : 1;
2726 uint64_t p2_pperr : 1;
2727 uint64_t p3_pperr : 1;
2728 uint64_t p0_ptout : 1;
2729 uint64_t p1_ptout : 1;
2730 uint64_t p2_ptout : 1;
2731 uint64_t p3_ptout : 1;
2732 uint64_t i0_pperr : 1;
2733 uint64_t i1_pperr : 1;
2734 uint64_t i2_pperr : 1;
2735 uint64_t i3_pperr : 1;
2736 uint64_t win_rto : 1;
2737 uint64_t p_dperr : 1;
2738 uint64_t iobdma : 1;
2739 uint64_t fcr_s_e : 1;
2740 uint64_t fcr_a_f : 1;
2741 uint64_t pcr_s_e : 1;
2742 uint64_t pcr_a_f : 1;
2743 uint64_t q2_s_e : 1;
2744 uint64_t q2_a_f : 1;
2745 uint64_t q3_s_e : 1;
2746 uint64_t q3_a_f : 1;
2747 uint64_t com_s_e : 1;
2748 uint64_t com_a_f : 1;
2749 uint64_t pnc_s_e : 1;
2750 uint64_t pnc_a_f : 1;
2751 uint64_t rwx_s_e : 1;
2752 uint64_t rdx_s_e : 1;
2753 uint64_t pcf_p_e : 1;
2754 uint64_t pcf_p_f : 1;
2755 uint64_t pdf_p_e : 1;
2756 uint64_t pdf_p_f : 1;
2757 uint64_t q1_s_e : 1;
2758 uint64_t q1_a_f : 1;
2759 uint64_t reserved_62_63 : 2;
2762 struct cvmx_npi_int_sum_cn30xx
2764 #if __BYTE_ORDER == __BIG_ENDIAN
2765 uint64_t reserved_62_63 : 2;
2766 uint64_t q1_a_f : 1; /**< Attempted to add when Queue-1 FIFO is full. */
2767 uint64_t q1_s_e : 1; /**< Attempted to subtract when Queue-1 FIFO is empty. */
2768 uint64_t pdf_p_f : 1; /**< Attempted to push a full PCN-DATA-FIFO. */
2769 uint64_t pdf_p_e : 1; /**< Attempted to pop an empty PCN-DATA-FIFO. */
2770 uint64_t pcf_p_f : 1; /**< Attempted to push a full PCN-CNT-FIFO. */
2771 uint64_t pcf_p_e : 1; /**< Attempted to pop an empty PCN-CNT-FIFO. */
2772 uint64_t rdx_s_e : 1; /**< Attempted to subtract when DPI-XFR-Wait count is 0. */
2773 uint64_t rwx_s_e : 1; /**< Attempted to subtract when RDN-XFR-Wait count is 0. */
2774 uint64_t pnc_a_f : 1; /**< Attempted to add when PNI-NPI Credits are max. */
2775 uint64_t pnc_s_e : 1; /**< Attempted to subtract when PNI-NPI Credits are 0. */
2776 uint64_t com_a_f : 1; /**< Attempted to add when PCN-Commit Counter is max. */
2777 uint64_t com_s_e : 1; /**< Attempted to subtract when PCN-Commit Counter is 0. */
2778 uint64_t q3_a_f : 1; /**< Attempted to add when Queue-3 FIFO is full. */
2779 uint64_t q3_s_e : 1; /**< Attempted to subtract when Queue-3 FIFO is empty. */
2780 uint64_t q2_a_f : 1; /**< Attempted to add when Queue-2 FIFO is full. */
2781 uint64_t q2_s_e : 1; /**< Attempted to subtract when Queue-2 FIFO is empty. */
2782 uint64_t pcr_a_f : 1; /**< Attempted to add when POW Credits is full. */
2783 uint64_t pcr_s_e : 1; /**< Attempted to subtract when POW Credits is empty. */
2784 uint64_t fcr_a_f : 1; /**< Attempted to add when FPA Credits is full. */
2785 uint64_t fcr_s_e : 1; /**< Attempted to subtract when FPA Credits is empty. */
2786 uint64_t iobdma : 1; /**< Requested IOBDMA read size exceeded 128 words. */
2787 uint64_t p_dperr : 1; /**< If a parity error occured on data written to L2C
2788 from the PCI this bit may be set. */
2789 uint64_t win_rto : 1; /**< Windowed Load Timed Out. */
2790 uint64_t reserved_36_38 : 3;
2791 uint64_t i0_pperr : 1; /**< If a parity error occured on the port's instruction
2792 this bit may be set. */
2793 uint64_t reserved_32_34 : 3;
2794 uint64_t p0_ptout : 1; /**< Port-0 output had a read timeout on a DATA/INFO
2796 uint64_t reserved_28_30 : 3;
2797 uint64_t p0_pperr : 1; /**< If a parity error occured on the port DATA/INFO
2798 pointer-pair, this bit may be set. */
2799 uint64_t reserved_24_26 : 3;
2800 uint64_t g0_rtout : 1; /**< Port-0 had a read timeout while attempting to
2801 read a gather list. */
2802 uint64_t reserved_20_22 : 3;
2803 uint64_t p0_perr : 1; /**< If a parity error occured on the port's packet
2804 data this bit may be set. */
2805 uint64_t reserved_16_18 : 3;
2806 uint64_t p0_rtout : 1; /**< Port-0 had a read timeout while attempting to
2807 read packet data. */
2808 uint64_t reserved_12_14 : 3;
2809 uint64_t i0_overf : 1; /**< Port-0 had a doorbell overflow. Bit[31] of the
2810 doorbell count was set. */
2811 uint64_t reserved_8_10 : 3;
2812 uint64_t i0_rtout : 1; /**< Port-0 had a read timeout while attempting to
2813 read instructions. */
2814 uint64_t reserved_4_6 : 3;
2815 uint64_t po0_2sml : 1; /**< The packet being sent out on Port0 is smaller
2816 than the NPI_BUFF_SIZE_OUTPUT0[ISIZE] field. */
2817 uint64_t pci_rsl : 1; /**< This '1' when a bit in PCI_INT_SUM2 is SET and the
2818 corresponding bit in the PCI_INT_ENB2 is SET. */
2819 uint64_t rml_wto : 1; /**< Set '1' when the RML does not receive a commit
2820 back from a RSL after sending a write command to
2822 uint64_t rml_rto : 1; /**< Set '1' when the RML does not receive read data
2823 back from a RSL after sending a read command to
2826 uint64_t rml_rto : 1;
2827 uint64_t rml_wto : 1;
2828 uint64_t pci_rsl : 1;
2829 uint64_t po0_2sml : 1;
2830 uint64_t reserved_4_6 : 3;
2831 uint64_t i0_rtout : 1;
2832 uint64_t reserved_8_10 : 3;
2833 uint64_t i0_overf : 1;
2834 uint64_t reserved_12_14 : 3;
2835 uint64_t p0_rtout : 1;
2836 uint64_t reserved_16_18 : 3;
2837 uint64_t p0_perr : 1;
2838 uint64_t reserved_20_22 : 3;
2839 uint64_t g0_rtout : 1;
2840 uint64_t reserved_24_26 : 3;
2841 uint64_t p0_pperr : 1;
2842 uint64_t reserved_28_30 : 3;
2843 uint64_t p0_ptout : 1;
2844 uint64_t reserved_32_34 : 3;
2845 uint64_t i0_pperr : 1;
2846 uint64_t reserved_36_38 : 3;
2847 uint64_t win_rto : 1;
2848 uint64_t p_dperr : 1;
2849 uint64_t iobdma : 1;
2850 uint64_t fcr_s_e : 1;
2851 uint64_t fcr_a_f : 1;
2852 uint64_t pcr_s_e : 1;
2853 uint64_t pcr_a_f : 1;
2854 uint64_t q2_s_e : 1;
2855 uint64_t q2_a_f : 1;
2856 uint64_t q3_s_e : 1;
2857 uint64_t q3_a_f : 1;
2858 uint64_t com_s_e : 1;
2859 uint64_t com_a_f : 1;
2860 uint64_t pnc_s_e : 1;
2861 uint64_t pnc_a_f : 1;
2862 uint64_t rwx_s_e : 1;
2863 uint64_t rdx_s_e : 1;
2864 uint64_t pcf_p_e : 1;
2865 uint64_t pcf_p_f : 1;
2866 uint64_t pdf_p_e : 1;
2867 uint64_t pdf_p_f : 1;
2868 uint64_t q1_s_e : 1;
2869 uint64_t q1_a_f : 1;
2870 uint64_t reserved_62_63 : 2;
2873 struct cvmx_npi_int_sum_cn31xx
2875 #if __BYTE_ORDER == __BIG_ENDIAN
2876 uint64_t reserved_62_63 : 2;
2877 uint64_t q1_a_f : 1; /**< Attempted to add when Queue-1 FIFO is full. */
2878 uint64_t q1_s_e : 1; /**< Attempted to subtract when Queue-1 FIFO is empty. */
2879 uint64_t pdf_p_f : 1; /**< Attempted to push a full PCN-DATA-FIFO. */
2880 uint64_t pdf_p_e : 1; /**< Attempted to pop an empty PCN-DATA-FIFO. */
2881 uint64_t pcf_p_f : 1; /**< Attempted to push a full PCN-CNT-FIFO. */
2882 uint64_t pcf_p_e : 1; /**< Attempted to pop an empty PCN-CNT-FIFO. */
2883 uint64_t rdx_s_e : 1; /**< Attempted to subtract when DPI-XFR-Wait count is 0. */
2884 uint64_t rwx_s_e : 1; /**< Attempted to subtract when RDN-XFR-Wait count is 0. */
2885 uint64_t pnc_a_f : 1; /**< Attempted to add when PNI-NPI Credits are max. */
2886 uint64_t pnc_s_e : 1; /**< Attempted to subtract when PNI-NPI Credits are 0. */
2887 uint64_t com_a_f : 1; /**< Attempted to add when PCN-Commit Counter is max. */
2888 uint64_t com_s_e : 1; /**< Attempted to subtract when PCN-Commit Counter is 0. */
2889 uint64_t q3_a_f : 1; /**< Attempted to add when Queue-3 FIFO is full. */
2890 uint64_t q3_s_e : 1; /**< Attempted to subtract when Queue-3 FIFO is empty. */
2891 uint64_t q2_a_f : 1; /**< Attempted to add when Queue-2 FIFO is full. */
2892 uint64_t q2_s_e : 1; /**< Attempted to subtract when Queue-2 FIFO is empty. */
2893 uint64_t pcr_a_f : 1; /**< Attempted to add when POW Credits is full. */
2894 uint64_t pcr_s_e : 1; /**< Attempted to subtract when POW Credits is empty. */
2895 uint64_t fcr_a_f : 1; /**< Attempted to add when FPA Credits is full. */
2896 uint64_t fcr_s_e : 1; /**< Attempted to subtract when FPA Credits is empty. */
2897 uint64_t iobdma : 1; /**< Requested IOBDMA read size exceeded 128 words. */
2898 uint64_t p_dperr : 1; /**< If a parity error occured on data written to L2C
2899 from the PCI this bit may be set. */
2900 uint64_t win_rto : 1; /**< Windowed Load Timed Out. */
2901 uint64_t reserved_37_38 : 2;
2902 uint64_t i1_pperr : 1; /**< If a parity error occured on the port's instruction
2903 this bit may be set. */
2904 uint64_t i0_pperr : 1; /**< If a parity error occured on the port's instruction
2905 this bit may be set. */
2906 uint64_t reserved_33_34 : 2;
2907 uint64_t p1_ptout : 1; /**< Port-1 output had a read timeout on a DATA/INFO
2909 uint64_t p0_ptout : 1; /**< Port-0 output had a read timeout on a DATA/INFO
2911 uint64_t reserved_29_30 : 2;
2912 uint64_t p1_pperr : 1; /**< If a parity error occured on the port DATA/INFO
2913 pointer-pair, this bit may be set. */
2914 uint64_t p0_pperr : 1; /**< If a parity error occured on the port DATA/INFO
2915 pointer-pair, this bit may be set. */
2916 uint64_t reserved_25_26 : 2;
2917 uint64_t g1_rtout : 1; /**< Port-1 had a read timeout while attempting to
2918 read a gather list. */
2919 uint64_t g0_rtout : 1; /**< Port-0 had a read timeout while attempting to
2920 read a gather list. */
2921 uint64_t reserved_21_22 : 2;
2922 uint64_t p1_perr : 1; /**< If a parity error occured on the port's packet
2923 data this bit may be set. */
2924 uint64_t p0_perr : 1; /**< If a parity error occured on the port's packet
2925 data this bit may be set. */
2926 uint64_t reserved_17_18 : 2;
2927 uint64_t p1_rtout : 1; /**< Port-1 had a read timeout while attempting to
2928 read packet data. */
2929 uint64_t p0_rtout : 1; /**< Port-0 had a read timeout while attempting to
2930 read packet data. */
2931 uint64_t reserved_13_14 : 2;
2932 uint64_t i1_overf : 1; /**< Port-1 had a doorbell overflow. Bit[31] of the
2933 doorbell count was set. */
2934 uint64_t i0_overf : 1; /**< Port-0 had a doorbell overflow. Bit[31] of the
2935 doorbell count was set. */
2936 uint64_t reserved_9_10 : 2;
2937 uint64_t i1_rtout : 1; /**< Port-1 had a read timeout while attempting to
2938 read instructions. */
2939 uint64_t i0_rtout : 1; /**< Port-0 had a read timeout while attempting to
2940 read instructions. */
2941 uint64_t reserved_5_6 : 2;
2942 uint64_t po1_2sml : 1; /**< The packet being sent out on Port1 is smaller
2943 than the NPI_BUFF_SIZE_OUTPUT1[ISIZE] field. */
2944 uint64_t po0_2sml : 1; /**< The packet being sent out on Port0 is smaller
2945 than the NPI_BUFF_SIZE_OUTPUT0[ISIZE] field. */
2946 uint64_t pci_rsl : 1; /**< This '1' when a bit in PCI_INT_SUM2 is SET and the
2947 corresponding bit in the PCI_INT_ENB2 is SET. */
2948 uint64_t rml_wto : 1; /**< Set '1' when the RML does not receive a commit
2949 back from a RSL after sending a write command to
2951 uint64_t rml_rto : 1; /**< Set '1' when the RML does not receive read data
2952 back from a RSL after sending a read command to
2955 uint64_t rml_rto : 1;
2956 uint64_t rml_wto : 1;
2957 uint64_t pci_rsl : 1;
2958 uint64_t po0_2sml : 1;
2959 uint64_t po1_2sml : 1;
2960 uint64_t reserved_5_6 : 2;
2961 uint64_t i0_rtout : 1;
2962 uint64_t i1_rtout : 1;
2963 uint64_t reserved_9_10 : 2;
2964 uint64_t i0_overf : 1;
2965 uint64_t i1_overf : 1;
2966 uint64_t reserved_13_14 : 2;
2967 uint64_t p0_rtout : 1;
2968 uint64_t p1_rtout : 1;
2969 uint64_t reserved_17_18 : 2;
2970 uint64_t p0_perr : 1;
2971 uint64_t p1_perr : 1;
2972 uint64_t reserved_21_22 : 2;
2973 uint64_t g0_rtout : 1;
2974 uint64_t g1_rtout : 1;
2975 uint64_t reserved_25_26 : 2;
2976 uint64_t p0_pperr : 1;
2977 uint64_t p1_pperr : 1;
2978 uint64_t reserved_29_30 : 2;
2979 uint64_t p0_ptout : 1;
2980 uint64_t p1_ptout : 1;
2981 uint64_t reserved_33_34 : 2;
2982 uint64_t i0_pperr : 1;
2983 uint64_t i1_pperr : 1;
2984 uint64_t reserved_37_38 : 2;
2985 uint64_t win_rto : 1;
2986 uint64_t p_dperr : 1;
2987 uint64_t iobdma : 1;
2988 uint64_t fcr_s_e : 1;
2989 uint64_t fcr_a_f : 1;
2990 uint64_t pcr_s_e : 1;
2991 uint64_t pcr_a_f : 1;
2992 uint64_t q2_s_e : 1;
2993 uint64_t q2_a_f : 1;
2994 uint64_t q3_s_e : 1;
2995 uint64_t q3_a_f : 1;
2996 uint64_t com_s_e : 1;
2997 uint64_t com_a_f : 1;
2998 uint64_t pnc_s_e : 1;
2999 uint64_t pnc_a_f : 1;
3000 uint64_t rwx_s_e : 1;
3001 uint64_t rdx_s_e : 1;
3002 uint64_t pcf_p_e : 1;
3003 uint64_t pcf_p_f : 1;
3004 uint64_t pdf_p_e : 1;
3005 uint64_t pdf_p_f : 1;
3006 uint64_t q1_s_e : 1;
3007 uint64_t q1_a_f : 1;
3008 uint64_t reserved_62_63 : 2;
3011 struct cvmx_npi_int_sum_s cn38xx;
3012 struct cvmx_npi_int_sum_cn38xxp2
3014 #if __BYTE_ORDER == __BIG_ENDIAN
3015 uint64_t reserved_42_63 : 22;
3016 uint64_t iobdma : 1; /**< Requested IOBDMA read size exceeded 128 words. */
3017 uint64_t p_dperr : 1; /**< If a parity error occured on data written to L2C
3018 from the PCI this bit may be set. */
3019 uint64_t win_rto : 1; /**< Windowed Load Timed Out. */
3020 uint64_t i3_pperr : 1; /**< If a parity error occured on the port's instruction
3021 this bit may be set. */
3022 uint64_t i2_pperr : 1; /**< If a parity error occured on the port's instruction
3023 this bit may be set. */
3024 uint64_t i1_pperr : 1; /**< If a parity error occured on the port's instruction
3025 this bit may be set. */
3026 uint64_t i0_pperr : 1; /**< If a parity error occured on the port's instruction
3027 this bit may be set. */
3028 uint64_t p3_ptout : 1; /**< Port-3 output had a read timeout on a DATA/INFO
3030 uint64_t p2_ptout : 1; /**< Port-2 output had a read timeout on a DATA/INFO
3032 uint64_t p1_ptout : 1; /**< Port-1 output had a read timeout on a DATA/INFO
3034 uint64_t p0_ptout : 1; /**< Port-0 output had a read timeout on a DATA/INFO
3036 uint64_t p3_pperr : 1; /**< If a parity error occured on the port DATA/INFO
3037 pointer-pair, this bit may be set. */
3038 uint64_t p2_pperr : 1; /**< If a parity error occured on the port DATA/INFO
3039 pointer-pair, this bit may be set. */
3040 uint64_t p1_pperr : 1; /**< If a parity error occured on the port DATA/INFO
3041 pointer-pair, this bit may be set. */
3042 uint64_t p0_pperr : 1; /**< If a parity error occured on the port DATA/INFO
3043 pointer-pair, this bit may be set. */
3044 uint64_t g3_rtout : 1; /**< Port-3 had a read timeout while attempting to
3045 read a gather list. */
3046 uint64_t g2_rtout : 1; /**< Port-2 had a read timeout while attempting to
3047 read a gather list. */
3048 uint64_t g1_rtout : 1; /**< Port-1 had a read timeout while attempting to
3049 read a gather list. */
3050 uint64_t g0_rtout : 1; /**< Port-0 had a read timeout while attempting to
3051 read a gather list. */
3052 uint64_t p3_perr : 1; /**< If a parity error occured on the port's packet
3053 data this bit may be set. */
3054 uint64_t p2_perr : 1; /**< If a parity error occured on the port's packet
3055 data this bit may be set. */
3056 uint64_t p1_perr : 1; /**< If a parity error occured on the port's packet
3057 data this bit may be set. */
3058 uint64_t p0_perr : 1; /**< If a parity error occured on the port's packet
3059 data this bit may be set. */
3060 uint64_t p3_rtout : 1; /**< Port-3 had a read timeout while attempting to
3061 read packet data. */
3062 uint64_t p2_rtout : 1; /**< Port-2 had a read timeout while attempting to
3063 read packet data. */
3064 uint64_t p1_rtout : 1; /**< Port-1 had a read timeout while attempting to
3065 read packet data. */
3066 uint64_t p0_rtout : 1; /**< Port-0 had a read timeout while attempting to
3067 read packet data. */
3068 uint64_t i3_overf : 1; /**< Port-3 had a doorbell overflow. Bit[31] of the
3069 doorbell count was set. */
3070 uint64_t i2_overf : 1; /**< Port-2 had a doorbell overflow. Bit[31] of the
3071 doorbell count was set. */
3072 uint64_t i1_overf : 1; /**< Port-1 had a doorbell overflow. Bit[31] of the
3073 doorbell count was set. */
3074 uint64_t i0_overf : 1; /**< Port-0 had a doorbell overflow. Bit[31] of the
3075 doorbell count was set. */
3076 uint64_t i3_rtout : 1; /**< Port-3 had a read timeout while attempting to
3077 read instructions. */
3078 uint64_t i2_rtout : 1; /**< Port-2 had a read timeout while attempting to
3079 read instructions. */
3080 uint64_t i1_rtout : 1; /**< Port-1 had a read timeout while attempting to
3081 read instructions. */
3082 uint64_t i0_rtout : 1; /**< Port-0 had a read timeout while attempting to
3083 read instructions. */
3084 uint64_t po3_2sml : 1; /**< The packet being sent out on Port3 is smaller
3085 than the NPI_BUFF_SIZE_OUTPUT3[ISIZE] field. */
3086 uint64_t po2_2sml : 1; /**< The packet being sent out on Port2 is smaller
3087 than the NPI_BUFF_SIZE_OUTPUT2[ISIZE] field. */
3088 uint64_t po1_2sml : 1; /**< The packet being sent out on Port1 is smaller
3089 than the NPI_BUFF_SIZE_OUTPUT1[ISIZE] field. */
3090 uint64_t po0_2sml : 1; /**< The packet being sent out on Port0 is smaller
3091 than the NPI_BUFF_SIZE_OUTPUT0[ISIZE] field. */
3092 uint64_t pci_rsl : 1; /**< This '1' when a bit in PCI_INT_SUM2 is SET and the
3093 corresponding bit in the PCI_INT_ENB2 is SET. */
3094 uint64_t rml_wto : 1; /**< Set '1' when the RML does not receive a commit
3095 back from a RSL after sending a write command to
3097 uint64_t rml_rto : 1; /**< Set '1' when the RML does not receive read data
3098 back from a RSL after sending a read command to
3101 uint64_t rml_rto : 1;
3102 uint64_t rml_wto : 1;
3103 uint64_t pci_rsl : 1;
3104 uint64_t po0_2sml : 1;
3105 uint64_t po1_2sml : 1;
3106 uint64_t po2_2sml : 1;
3107 uint64_t po3_2sml : 1;
3108 uint64_t i0_rtout : 1;
3109 uint64_t i1_rtout : 1;
3110 uint64_t i2_rtout : 1;
3111 uint64_t i3_rtout : 1;
3112 uint64_t i0_overf : 1;
3113 uint64_t i1_overf : 1;
3114 uint64_t i2_overf : 1;
3115 uint64_t i3_overf : 1;
3116 uint64_t p0_rtout : 1;
3117 uint64_t p1_rtout : 1;
3118 uint64_t p2_rtout : 1;
3119 uint64_t p3_rtout : 1;
3120 uint64_t p0_perr : 1;
3121 uint64_t p1_perr : 1;
3122 uint64_t p2_perr : 1;
3123 uint64_t p3_perr : 1;
3124 uint64_t g0_rtout : 1;
3125 uint64_t g1_rtout : 1;
3126 uint64_t g2_rtout : 1;
3127 uint64_t g3_rtout : 1;
3128 uint64_t p0_pperr : 1;
3129 uint64_t p1_pperr : 1;
3130 uint64_t p2_pperr : 1;
3131 uint64_t p3_pperr : 1;
3132 uint64_t p0_ptout : 1;
3133 uint64_t p1_ptout : 1;
3134 uint64_t p2_ptout : 1;
3135 uint64_t p3_ptout : 1;
3136 uint64_t i0_pperr : 1;
3137 uint64_t i1_pperr : 1;
3138 uint64_t i2_pperr : 1;
3139 uint64_t i3_pperr : 1;
3140 uint64_t win_rto : 1;
3141 uint64_t p_dperr : 1;
3142 uint64_t iobdma : 1;
3143 uint64_t reserved_42_63 : 22;
3146 struct cvmx_npi_int_sum_cn31xx cn50xx;
3147 struct cvmx_npi_int_sum_s cn58xx;
3148 struct cvmx_npi_int_sum_s cn58xxp1;
3150 typedef union cvmx_npi_int_sum cvmx_npi_int_sum_t;
3153 * cvmx_npi_lowp_dbell
3155 * NPI_LOWP_DBELL = Low Priority Door Bell
3157 * The door bell register for the low priority DMA queue.
3159 union cvmx_npi_lowp_dbell
3162 struct cvmx_npi_lowp_dbell_s
3164 #if __BYTE_ORDER == __BIG_ENDIAN
3165 uint64_t reserved_16_63 : 48;
3166 uint64_t dbell : 16; /**< The value written to this register is added to the
3167 number of 8byte words to be read and processes for
3168 the low priority dma queue. */
3170 uint64_t dbell : 16;
3171 uint64_t reserved_16_63 : 48;
3174 struct cvmx_npi_lowp_dbell_s cn30xx;
3175 struct cvmx_npi_lowp_dbell_s cn31xx;
3176 struct cvmx_npi_lowp_dbell_s cn38xx;
3177 struct cvmx_npi_lowp_dbell_s cn38xxp2;
3178 struct cvmx_npi_lowp_dbell_s cn50xx;
3179 struct cvmx_npi_lowp_dbell_s cn58xx;
3180 struct cvmx_npi_lowp_dbell_s cn58xxp1;
3182 typedef union cvmx_npi_lowp_dbell cvmx_npi_lowp_dbell_t;
3185 * cvmx_npi_lowp_ibuff_saddr
3187 * NPI_LOWP_IBUFF_SADDR = DMA Low Priority's Instruction Buffer Starting Address
3189 * The address to start reading Instructions from for LOWP.
3191 union cvmx_npi_lowp_ibuff_saddr
3194 struct cvmx_npi_lowp_ibuff_saddr_s
3196 #if __BYTE_ORDER == __BIG_ENDIAN
3197 uint64_t reserved_36_63 : 28;
3198 uint64_t saddr : 36; /**< The starting address to read the first instruction. */
3200 uint64_t saddr : 36;
3201 uint64_t reserved_36_63 : 28;
3204 struct cvmx_npi_lowp_ibuff_saddr_s cn30xx;
3205 struct cvmx_npi_lowp_ibuff_saddr_s cn31xx;
3206 struct cvmx_npi_lowp_ibuff_saddr_s cn38xx;
3207 struct cvmx_npi_lowp_ibuff_saddr_s cn38xxp2;
3208 struct cvmx_npi_lowp_ibuff_saddr_s cn50xx;
3209 struct cvmx_npi_lowp_ibuff_saddr_s cn58xx;
3210 struct cvmx_npi_lowp_ibuff_saddr_s cn58xxp1;
3212 typedef union cvmx_npi_lowp_ibuff_saddr cvmx_npi_lowp_ibuff_saddr_t;
3215 * cvmx_npi_mem_access_subid#
3217 * NPI_MEM_ACCESS_SUBID3 = Memory Access SubId 3Register
3219 * Carries Read/Write parameters for PP access to PCI memory that use NPI SubId3.
3220 * Writes to this register are not ordered with writes/reads to the PCI Memory space.
3221 * To ensure that a write has completed the user must read the register before
3222 * making an access(i.e. PCI memory space) that requires the value of this register to be updated.
3224 union cvmx_npi_mem_access_subidx
3227 struct cvmx_npi_mem_access_subidx_s
3229 #if __BYTE_ORDER == __BIG_ENDIAN
3230 uint64_t reserved_38_63 : 26;
3231 uint64_t shortl : 1; /**< Generate CMD-6 on PCI(x) when '1'.
3232 Loads from the cores to the corresponding subid
3233 that are 32-bits or smaller:
3234 - Will generate the PCI-X "Memory Read DWORD"
3235 command in PCI-X mode. (Note that "Memory
3236 Read DWORD" appears much like an IO read on
3238 - Will generate the PCI "Memory Read" command
3239 in PCI-X mode, irrespective of the
3240 NPI_PCI_READ_CMD[CMD_SIZE] value.
3241 NOT IN PASS 1 NOR PASS 2 */
3242 uint64_t nmerge : 1; /**< No Merge. (NOT IN PASS 1 NOR PASS 2) */
3243 uint64_t esr : 2; /**< Endian-Swap on read. */
3244 uint64_t esw : 2; /**< Endian-Swap on write. */
3245 uint64_t nsr : 1; /**< No-Snoop on read. */
3246 uint64_t nsw : 1; /**< No-Snoop on write. */
3247 uint64_t ror : 1; /**< Relax Read on read. */
3248 uint64_t row : 1; /**< Relax Order on write. */
3249 uint64_t ba : 28; /**< PCI Address bits [63:36]. */
3258 uint64_t nmerge : 1;
3259 uint64_t shortl : 1;
3260 uint64_t reserved_38_63 : 26;
3263 struct cvmx_npi_mem_access_subidx_s cn30xx;
3264 struct cvmx_npi_mem_access_subidx_cn31xx
3266 #if __BYTE_ORDER == __BIG_ENDIAN
3267 uint64_t reserved_36_63 : 28;
3268 uint64_t esr : 2; /**< Endian-Swap on read. */
3269 uint64_t esw : 2; /**< Endian-Swap on write. */
3270 uint64_t nsr : 1; /**< No-Snoop on read. */
3271 uint64_t nsw : 1; /**< No-Snoop on write. */
3272 uint64_t ror : 1; /**< Relax Read on read. */
3273 uint64_t row : 1; /**< Relax Order on write. */
3274 uint64_t ba : 28; /**< PCI Address bits [63:36]. */
3283 uint64_t reserved_36_63 : 28;
3286 struct cvmx_npi_mem_access_subidx_s cn38xx;
3287 struct cvmx_npi_mem_access_subidx_cn31xx cn38xxp2;
3288 struct cvmx_npi_mem_access_subidx_s cn50xx;
3289 struct cvmx_npi_mem_access_subidx_s cn58xx;
3290 struct cvmx_npi_mem_access_subidx_s cn58xxp1;
3292 typedef union cvmx_npi_mem_access_subidx cvmx_npi_mem_access_subidx_t;
3297 * NPI_MSI_RCV = NPI MSI Receive Vector Register
3299 * A bit is set in this register relative to the vector received during a MSI. And cleared by a W1 to the register.
3301 union cvmx_npi_msi_rcv
3304 struct cvmx_npi_msi_rcv_s
3306 #if __BYTE_ORDER == __BIG_ENDIAN
3307 uint64_t int_vec : 64; /**< Refer to PCI_MSI_RCV */
3309 uint64_t int_vec : 64;
3312 struct cvmx_npi_msi_rcv_s cn30xx;
3313 struct cvmx_npi_msi_rcv_s cn31xx;
3314 struct cvmx_npi_msi_rcv_s cn38xx;
3315 struct cvmx_npi_msi_rcv_s cn38xxp2;
3316 struct cvmx_npi_msi_rcv_s cn50xx;
3317 struct cvmx_npi_msi_rcv_s cn58xx;
3318 struct cvmx_npi_msi_rcv_s cn58xxp1;
3320 typedef union cvmx_npi_msi_rcv cvmx_npi_msi_rcv_t;
3323 * cvmx_npi_num_desc_output#
3325 * NUM_DESC_OUTPUT0 = Number Of Descriptors Available For Output 0
3327 * The size of the Buffer/Info Pointer Pair ring for Output-0.
3329 union cvmx_npi_num_desc_outputx
3332 struct cvmx_npi_num_desc_outputx_s
3334 #if __BYTE_ORDER == __BIG_ENDIAN
3335 uint64_t reserved_32_63 : 32;
3336 uint64_t size : 32; /**< The size of the Buffer/Info Pointer Pair ring. */
3339 uint64_t reserved_32_63 : 32;
3342 struct cvmx_npi_num_desc_outputx_s cn30xx;
3343 struct cvmx_npi_num_desc_outputx_s cn31xx;
3344 struct cvmx_npi_num_desc_outputx_s cn38xx;
3345 struct cvmx_npi_num_desc_outputx_s cn38xxp2;
3346 struct cvmx_npi_num_desc_outputx_s cn50xx;
3347 struct cvmx_npi_num_desc_outputx_s cn58xx;
3348 struct cvmx_npi_num_desc_outputx_s cn58xxp1;
3350 typedef union cvmx_npi_num_desc_outputx cvmx_npi_num_desc_outputx_t;
3353 * cvmx_npi_output_control
3355 * NPI_OUTPUT_CONTROL = NPI's Output Control Register
3357 * The address to start reading Instructions from for Output-3.
3359 union cvmx_npi_output_control
3362 struct cvmx_npi_output_control_s
3364 #if __BYTE_ORDER == __BIG_ENDIAN
3365 uint64_t reserved_49_63 : 15;
3366 uint64_t pkt_rr : 1; /**< When set '1' the output packet selection will be
3367 made with a Round Robin arbitration. When '0'
3368 the output packet port is fixed in priority,
3369 where the lower port number has higher priority.
3371 uint64_t p3_bmode : 1; /**< When set '1' PCI_PKTS_SENT3 register will be
3372 updated with the number of bytes in the packet
3373 sent, when '0' the register will have a value
3375 uint64_t p2_bmode : 1; /**< When set '1' PCI_PKTS_SENT2 register will be
3376 updated with the number of bytes in the packet
3377 sent, when '0' the register will have a value
3379 uint64_t p1_bmode : 1; /**< When set '1' PCI_PKTS_SENT1 register will be
3380 updated with the number of bytes in the packet
3381 sent, when '0' the register will have a value
3383 uint64_t p0_bmode : 1; /**< When set '1' PCI_PKTS_SENT0 register will be
3384 updated with the number of bytes in the packet
3385 sent, when '0' the register will have a value
3387 uint64_t o3_es : 2; /**< Endian Swap for Output3 Data. */
3388 uint64_t o3_ns : 1; /**< NoSnoop Enable for Output3 Data. */
3389 uint64_t o3_ro : 1; /**< Relaxed Ordering Enable for Output3 Data. */
3390 uint64_t o2_es : 2; /**< Endian Swap for Output2 Data. */
3391 uint64_t o2_ns : 1; /**< NoSnoop Enable for Output2 Data. */
3392 uint64_t o2_ro : 1; /**< Relaxed Ordering Enable for Output2 Data. */
3393 uint64_t o1_es : 2; /**< Endian Swap for Output1 Data. */
3394 uint64_t o1_ns : 1; /**< NoSnoop Enable for Output1 Data. */
3395 uint64_t o1_ro : 1; /**< Relaxed Ordering Enable for Output1 Data. */
3396 uint64_t o0_es : 2; /**< Endian Swap for Output0 Data. */
3397 uint64_t o0_ns : 1; /**< NoSnoop Enable for Output0 Data. */
3398 uint64_t o0_ro : 1; /**< Relaxed Ordering Enable for Output0 Data. */
3399 uint64_t o3_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3400 comes from the DPTR[63:60] in the scatter-list pair,
3401 and the RO, NS, ES values come from the O3_ES,
3402 O3_NS, O3_RO. When '0' the RO == DPTR[60],
3403 NS == DPTR[61], ES == DPTR[63:62], the address the
3404 packet will be written to is ADDR[63:60] ==
3405 O3_ES[1:0], O3_NS, O3_RO. For Output Port-3. */
3406 uint64_t o2_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3407 comes from the DPTR[63:60] in the scatter-list pair,
3408 and the RO, NS, ES values come from the O2_ES,
3409 O2_NS, O2_RO. When '0' the RO == DPTR[60],
3410 NS == DPTR[61], ES == DPTR[63:62], the address the
3411 packet will be written to is ADDR[63:60] ==
3412 O2_ES[1:0], O2_NS, O2_RO. For Output Port-2. */
3413 uint64_t o1_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3414 comes from the DPTR[63:60] in the scatter-list pair,
3415 and the RO, NS, ES values come from the O1_ES,
3416 O1_NS, O1_RO. When '0' the RO == DPTR[60],
3417 NS == DPTR[61], ES == DPTR[63:62], the address the
3418 packet will be written to is ADDR[63:60] ==
3419 O1_ES[1:0], O1_NS, O1_RO. For Output Port-1. */
3420 uint64_t o0_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3421 comes from the DPTR[63:60] in the scatter-list pair,
3422 and the RO, NS, ES values come from the O0_ES,
3423 O0_NS, O0_RO. When '0' the RO == DPTR[60],
3424 NS == DPTR[61], ES == DPTR[63:62], the address the
3425 packet will be written to is ADDR[63:60] ==
3426 O0_ES[1:0], O0_NS, O0_RO. For Output Port-0. */
3427 uint64_t reserved_20_23 : 4;
3428 uint64_t iptr_o3 : 1; /**< Uses the Info-Pointer to store length and data
3430 uint64_t iptr_o2 : 1; /**< Uses the Info-Pointer to store length and data
3432 uint64_t iptr_o1 : 1; /**< Uses the Info-Pointer to store length and data
3434 uint64_t iptr_o0 : 1; /**< Uses the Info-Pointer to store length and data
3436 uint64_t esr_sl3 : 2; /**< The Endian-Swap-Mode for Slist3 reads. */
3437 uint64_t nsr_sl3 : 1; /**< Enables '1' NoSnoop for Slist3 reads. */
3438 uint64_t ror_sl3 : 1; /**< Enables '1' Relaxed Ordering for Slist3 reads. */
3439 uint64_t esr_sl2 : 2; /**< The Endian-Swap-Mode for Slist2 reads. */
3440 uint64_t nsr_sl2 : 1; /**< Enables '1' NoSnoop for Slist2 reads. */
3441 uint64_t ror_sl2 : 1; /**< Enables '1' Relaxed Ordering for Slist2 reads. */
3442 uint64_t esr_sl1 : 2; /**< The Endian-Swap-Mode for Slist1 reads. */
3443 uint64_t nsr_sl1 : 1; /**< Enables '1' NoSnoop for Slist1 reads. */
3444 uint64_t ror_sl1 : 1; /**< Enables '1' Relaxed Ordering for Slist1 reads. */
3445 uint64_t esr_sl0 : 2; /**< The Endian-Swap-Mode for Slist0 reads. */
3446 uint64_t nsr_sl0 : 1; /**< Enables '1' NoSnoop for Slist0 reads. */
3447 uint64_t ror_sl0 : 1; /**< Enables '1' Relaxed Ordering for Slist0 reads. */
3449 uint64_t ror_sl0 : 1;
3450 uint64_t nsr_sl0 : 1;
3451 uint64_t esr_sl0 : 2;
3452 uint64_t ror_sl1 : 1;
3453 uint64_t nsr_sl1 : 1;
3454 uint64_t esr_sl1 : 2;
3455 uint64_t ror_sl2 : 1;
3456 uint64_t nsr_sl2 : 1;
3457 uint64_t esr_sl2 : 2;
3458 uint64_t ror_sl3 : 1;
3459 uint64_t nsr_sl3 : 1;
3460 uint64_t esr_sl3 : 2;
3461 uint64_t iptr_o0 : 1;
3462 uint64_t iptr_o1 : 1;
3463 uint64_t iptr_o2 : 1;
3464 uint64_t iptr_o3 : 1;
3465 uint64_t reserved_20_23 : 4;
3466 uint64_t o0_csrm : 1;
3467 uint64_t o1_csrm : 1;
3468 uint64_t o2_csrm : 1;
3469 uint64_t o3_csrm : 1;
3482 uint64_t p0_bmode : 1;
3483 uint64_t p1_bmode : 1;
3484 uint64_t p2_bmode : 1;
3485 uint64_t p3_bmode : 1;
3486 uint64_t pkt_rr : 1;
3487 uint64_t reserved_49_63 : 15;
3490 struct cvmx_npi_output_control_cn30xx
3492 #if __BYTE_ORDER == __BIG_ENDIAN
3493 uint64_t reserved_45_63 : 19;
3494 uint64_t p0_bmode : 1; /**< When set '1' PCI_PKTS_SENT0 register will be
3495 updated with the number of bytes in the packet
3496 sent, when '0' the register will have a value
3498 uint64_t reserved_32_43 : 12;
3499 uint64_t o0_es : 2; /**< Endian Swap for Output0 Data. */
3500 uint64_t o0_ns : 1; /**< NoSnoop Enable for Output0 Data. */
3501 uint64_t o0_ro : 1; /**< Relaxed Ordering Enable for Output0 Data. */
3502 uint64_t reserved_25_27 : 3;
3503 uint64_t o0_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3504 comes from the DPTR[63:60] in the scatter-list pair,
3505 and the RO, NS, ES values come from the O0_ES,
3506 O0_NS, O0_RO. When '0' the RO == DPTR[60],
3507 NS == DPTR[61], ES == DPTR[63:62], the address the
3508 packet will be written to is ADDR[63:60] ==
3509 O0_ES[1:0], O0_NS, O0_RO. For Output Port-0. */
3510 uint64_t reserved_17_23 : 7;
3511 uint64_t iptr_o0 : 1; /**< Uses the Info-Pointer to store length and data
3513 uint64_t reserved_4_15 : 12;
3514 uint64_t esr_sl0 : 2; /**< The Endian-Swap-Mode for Slist0 reads. */
3515 uint64_t nsr_sl0 : 1; /**< Enables '1' NoSnoop for Slist0 reads. */
3516 uint64_t ror_sl0 : 1; /**< Enables '1' Relaxed Ordering for Slist0 reads. */
3518 uint64_t ror_sl0 : 1;
3519 uint64_t nsr_sl0 : 1;
3520 uint64_t esr_sl0 : 2;
3521 uint64_t reserved_4_15 : 12;
3522 uint64_t iptr_o0 : 1;
3523 uint64_t reserved_17_23 : 7;
3524 uint64_t o0_csrm : 1;
3525 uint64_t reserved_25_27 : 3;
3529 uint64_t reserved_32_43 : 12;
3530 uint64_t p0_bmode : 1;
3531 uint64_t reserved_45_63 : 19;
3534 struct cvmx_npi_output_control_cn31xx
3536 #if __BYTE_ORDER == __BIG_ENDIAN
3537 uint64_t reserved_46_63 : 18;
3538 uint64_t p1_bmode : 1; /**< When set '1' PCI_PKTS_SENT1 register will be
3539 updated with the number of bytes in the packet
3540 sent, when '0' the register will have a value
3542 uint64_t p0_bmode : 1; /**< When set '1' PCI_PKTS_SENT0 register will be
3543 updated with the number of bytes in the packet
3544 sent, when '0' the register will have a value
3546 uint64_t reserved_36_43 : 8;
3547 uint64_t o1_es : 2; /**< Endian Swap for Output1 Data. */
3548 uint64_t o1_ns : 1; /**< NoSnoop Enable for Output1 Data. */
3549 uint64_t o1_ro : 1; /**< Relaxed Ordering Enable for Output1 Data. */
3550 uint64_t o0_es : 2; /**< Endian Swap for Output0 Data. */
3551 uint64_t o0_ns : 1; /**< NoSnoop Enable for Output0 Data. */
3552 uint64_t o0_ro : 1; /**< Relaxed Ordering Enable for Output0 Data. */
3553 uint64_t reserved_26_27 : 2;
3554 uint64_t o1_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3555 comes from the DPTR[63:60] in the scatter-list pair,
3556 and the RO, NS, ES values come from the O1_ES,
3557 O1_NS, O1_RO. When '0' the RO == DPTR[60],
3558 NS == DPTR[61], ES == DPTR[63:62], the address the
3559 packet will be written to is ADDR[63:60] ==
3560 O1_ES[1:0], O1_NS, O1_RO. For Output Port-1. */
3561 uint64_t o0_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3562 comes from the DPTR[63:60] in the scatter-list pair,
3563 and the RO, NS, ES values come from the O0_ES,
3564 O0_NS, O0_RO. When '0' the RO == DPTR[60],
3565 NS == DPTR[61], ES == DPTR[63:62], the address the
3566 packet will be written to is ADDR[63:60] ==
3567 O0_ES[1:0], O0_NS, O0_RO. For Output Port-0. */
3568 uint64_t reserved_18_23 : 6;
3569 uint64_t iptr_o1 : 1; /**< Uses the Info-Pointer to store length and data
3571 uint64_t iptr_o0 : 1; /**< Uses the Info-Pointer to store length and data
3573 uint64_t reserved_8_15 : 8;
3574 uint64_t esr_sl1 : 2; /**< The Endian-Swap-Mode for Slist1 reads. */
3575 uint64_t nsr_sl1 : 1; /**< Enables '1' NoSnoop for Slist1 reads. */
3576 uint64_t ror_sl1 : 1; /**< Enables '1' Relaxed Ordering for Slist1 reads. */
3577 uint64_t esr_sl0 : 2; /**< The Endian-Swap-Mode for Slist0 reads. */
3578 uint64_t nsr_sl0 : 1; /**< Enables '1' NoSnoop for Slist0 reads. */
3579 uint64_t ror_sl0 : 1; /**< Enables '1' Relaxed Ordering for Slist0 reads. */
3581 uint64_t ror_sl0 : 1;
3582 uint64_t nsr_sl0 : 1;
3583 uint64_t esr_sl0 : 2;
3584 uint64_t ror_sl1 : 1;
3585 uint64_t nsr_sl1 : 1;
3586 uint64_t esr_sl1 : 2;
3587 uint64_t reserved_8_15 : 8;
3588 uint64_t iptr_o0 : 1;
3589 uint64_t iptr_o1 : 1;
3590 uint64_t reserved_18_23 : 6;
3591 uint64_t o0_csrm : 1;
3592 uint64_t o1_csrm : 1;
3593 uint64_t reserved_26_27 : 2;
3600 uint64_t reserved_36_43 : 8;
3601 uint64_t p0_bmode : 1;
3602 uint64_t p1_bmode : 1;
3603 uint64_t reserved_46_63 : 18;
3606 struct cvmx_npi_output_control_s cn38xx;
3607 struct cvmx_npi_output_control_cn38xxp2
3609 #if __BYTE_ORDER == __BIG_ENDIAN
3610 uint64_t reserved_48_63 : 16;
3611 uint64_t p3_bmode : 1; /**< When set '1' PCI_PKTS_SENT3 register will be
3612 updated with the number of bytes in the packet
3613 sent, when '0' the register will have a value
3615 uint64_t p2_bmode : 1; /**< When set '1' PCI_PKTS_SENT2 register will be
3616 updated with the number of bytes in the packet
3617 sent, when '0' the register will have a value
3619 uint64_t p1_bmode : 1; /**< When set '1' PCI_PKTS_SENT1 register will be
3620 updated with the number of bytes in the packet
3621 sent, when '0' the register will have a value
3623 uint64_t p0_bmode : 1; /**< When set '1' PCI_PKTS_SENT0 register will be
3624 updated with the number of bytes in the packet
3625 sent, when '0' the register will have a value
3627 uint64_t o3_es : 2; /**< Endian Swap for Output3 Data. */
3628 uint64_t o3_ns : 1; /**< NoSnoop Enable for Output3 Data. */
3629 uint64_t o3_ro : 1; /**< Relaxed Ordering Enable for Output3 Data. */
3630 uint64_t o2_es : 2; /**< Endian Swap for Output2 Data. */
3631 uint64_t o2_ns : 1; /**< NoSnoop Enable for Output2 Data. */
3632 uint64_t o2_ro : 1; /**< Relaxed Ordering Enable for Output2 Data. */
3633 uint64_t o1_es : 2; /**< Endian Swap for Output1 Data. */
3634 uint64_t o1_ns : 1; /**< NoSnoop Enable for Output1 Data. */
3635 uint64_t o1_ro : 1; /**< Relaxed Ordering Enable for Output1 Data. */
3636 uint64_t o0_es : 2; /**< Endian Swap for Output0 Data. */
3637 uint64_t o0_ns : 1; /**< NoSnoop Enable for Output0 Data. */
3638 uint64_t o0_ro : 1; /**< Relaxed Ordering Enable for Output0 Data. */
3639 uint64_t o3_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3640 comes from the DPTR[63:60] in the scatter-list pair,
3641 and the RO, NS, ES values come from the O3_ES,
3642 O3_NS, O3_RO. When '0' the RO == DPTR[60],
3643 NS == DPTR[61], ES == DPTR[63:62], the address the
3644 packet will be written to is ADDR[63:60] ==
3645 O3_ES[1:0], O3_NS, O3_RO. For Output Port-3. */
3646 uint64_t o2_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3647 comes from the DPTR[63:60] in the scatter-list pair,
3648 and the RO, NS, ES values come from the O2_ES,
3649 O2_NS, O2_RO. When '0' the RO == DPTR[60],
3650 NS == DPTR[61], ES == DPTR[63:62], the address the
3651 packet will be written to is ADDR[63:60] ==
3652 O2_ES[1:0], O2_NS, O2_RO. For Output Port-2. */
3653 uint64_t o1_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3654 comes from the DPTR[63:60] in the scatter-list pair,
3655 and the RO, NS, ES values come from the O1_ES,
3656 O1_NS, O1_RO. When '0' the RO == DPTR[60],
3657 NS == DPTR[61], ES == DPTR[63:62], the address the
3658 packet will be written to is ADDR[63:60] ==
3659 O1_ES[1:0], O1_NS, O1_RO. For Output Port-1. */
3660 uint64_t o0_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3661 comes from the DPTR[63:60] in the scatter-list pair,
3662 and the RO, NS, ES values come from the O0_ES,
3663 O0_NS, O0_RO. When '0' the RO == DPTR[60],
3664 NS == DPTR[61], ES == DPTR[63:62], the address the
3665 packet will be written to is ADDR[63:60] ==
3666 O0_ES[1:0], O0_NS, O0_RO. For Output Port-0. */
3667 uint64_t reserved_20_23 : 4;
3668 uint64_t iptr_o3 : 1; /**< Uses the Info-Pointer to store length and data
3670 uint64_t iptr_o2 : 1; /**< Uses the Info-Pointer to store length and data
3672 uint64_t iptr_o1 : 1; /**< Uses the Info-Pointer to store length and data
3674 uint64_t iptr_o0 : 1; /**< Uses the Info-Pointer to store length and data
3676 uint64_t esr_sl3 : 2; /**< The Endian-Swap-Mode for Slist3 reads. */
3677 uint64_t nsr_sl3 : 1; /**< Enables '1' NoSnoop for Slist3 reads. */
3678 uint64_t ror_sl3 : 1; /**< Enables '1' Relaxed Ordering for Slist3 reads. */
3679 uint64_t esr_sl2 : 2; /**< The Endian-Swap-Mode for Slist2 reads. */
3680 uint64_t nsr_sl2 : 1; /**< Enables '1' NoSnoop for Slist2 reads. */
3681 uint64_t ror_sl2 : 1; /**< Enables '1' Relaxed Ordering for Slist2 reads. */
3682 uint64_t esr_sl1 : 2; /**< The Endian-Swap-Mode for Slist1 reads. */
3683 uint64_t nsr_sl1 : 1; /**< Enables '1' NoSnoop for Slist1 reads. */
3684 uint64_t ror_sl1 : 1; /**< Enables '1' Relaxed Ordering for Slist1 reads. */
3685 uint64_t esr_sl0 : 2; /**< The Endian-Swap-Mode for Slist0 reads. */
3686 uint64_t nsr_sl0 : 1; /**< Enables '1' NoSnoop for Slist0 reads. */
3687 uint64_t ror_sl0 : 1; /**< Enables '1' Relaxed Ordering for Slist0 reads. */
3689 uint64_t ror_sl0 : 1;
3690 uint64_t nsr_sl0 : 1;
3691 uint64_t esr_sl0 : 2;
3692 uint64_t ror_sl1 : 1;
3693 uint64_t nsr_sl1 : 1;
3694 uint64_t esr_sl1 : 2;
3695 uint64_t ror_sl2 : 1;
3696 uint64_t nsr_sl2 : 1;
3697 uint64_t esr_sl2 : 2;
3698 uint64_t ror_sl3 : 1;
3699 uint64_t nsr_sl3 : 1;
3700 uint64_t esr_sl3 : 2;
3701 uint64_t iptr_o0 : 1;
3702 uint64_t iptr_o1 : 1;
3703 uint64_t iptr_o2 : 1;
3704 uint64_t iptr_o3 : 1;
3705 uint64_t reserved_20_23 : 4;
3706 uint64_t o0_csrm : 1;
3707 uint64_t o1_csrm : 1;
3708 uint64_t o2_csrm : 1;
3709 uint64_t o3_csrm : 1;
3722 uint64_t p0_bmode : 1;
3723 uint64_t p1_bmode : 1;
3724 uint64_t p2_bmode : 1;
3725 uint64_t p3_bmode : 1;
3726 uint64_t reserved_48_63 : 16;
3729 struct cvmx_npi_output_control_cn50xx
3731 #if __BYTE_ORDER == __BIG_ENDIAN
3732 uint64_t reserved_49_63 : 15;
3733 uint64_t pkt_rr : 1; /**< When set '1' the output packet selection will be
3734 made with a Round Robin arbitration. When '0'
3735 the output packet port is fixed in priority,
3736 where the lower port number has higher priority.
3738 uint64_t reserved_46_47 : 2;
3739 uint64_t p1_bmode : 1; /**< When set '1' PCI_PKTS_SENT1 register will be
3740 updated with the number of bytes in the packet
3741 sent, when '0' the register will have a value
3743 uint64_t p0_bmode : 1; /**< When set '1' PCI_PKTS_SENT0 register will be
3744 updated with the number of bytes in the packet
3745 sent, when '0' the register will have a value
3747 uint64_t reserved_36_43 : 8;
3748 uint64_t o1_es : 2; /**< Endian Swap for Output1 Data. */
3749 uint64_t o1_ns : 1; /**< NoSnoop Enable for Output1 Data. */
3750 uint64_t o1_ro : 1; /**< Relaxed Ordering Enable for Output1 Data. */
3751 uint64_t o0_es : 2; /**< Endian Swap for Output0 Data. */
3752 uint64_t o0_ns : 1; /**< NoSnoop Enable for Output0 Data. */
3753 uint64_t o0_ro : 1; /**< Relaxed Ordering Enable for Output0 Data. */
3754 uint64_t reserved_26_27 : 2;
3755 uint64_t o1_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3756 comes from the DPTR[63:60] in the scatter-list pair,
3757 and the RO, NS, ES values come from the O1_ES,
3758 O1_NS, O1_RO. When '0' the RO == DPTR[60],
3759 NS == DPTR[61], ES == DPTR[63:62], the address the
3760 packet will be written to is ADDR[63:60] ==
3761 O1_ES[1:0], O1_NS, O1_RO. For Output Port-1. */
3762 uint64_t o0_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3763 comes from the DPTR[63:60] in the scatter-list pair,
3764 and the RO, NS, ES values come from the O0_ES,
3765 O0_NS, O0_RO. When '0' the RO == DPTR[60],
3766 NS == DPTR[61], ES == DPTR[63:62], the address the
3767 packet will be written to is ADDR[63:60] ==
3768 O0_ES[1:0], O0_NS, O0_RO. For Output Port-0. */
3769 uint64_t reserved_18_23 : 6;
3770 uint64_t iptr_o1 : 1; /**< Uses the Info-Pointer to store length and data
3772 uint64_t iptr_o0 : 1; /**< Uses the Info-Pointer to store length and data
3774 uint64_t reserved_8_15 : 8;
3775 uint64_t esr_sl1 : 2; /**< The Endian-Swap-Mode for Slist1 reads. */
3776 uint64_t nsr_sl1 : 1; /**< Enables '1' NoSnoop for Slist1 reads. */
3777 uint64_t ror_sl1 : 1; /**< Enables '1' Relaxed Ordering for Slist1 reads. */
3778 uint64_t esr_sl0 : 2; /**< The Endian-Swap-Mode for Slist0 reads. */
3779 uint64_t nsr_sl0 : 1; /**< Enables '1' NoSnoop for Slist0 reads. */
3780 uint64_t ror_sl0 : 1; /**< Enables '1' Relaxed Ordering for Slist0 reads. */
3782 uint64_t ror_sl0 : 1;
3783 uint64_t nsr_sl0 : 1;
3784 uint64_t esr_sl0 : 2;
3785 uint64_t ror_sl1 : 1;
3786 uint64_t nsr_sl1 : 1;
3787 uint64_t esr_sl1 : 2;
3788 uint64_t reserved_8_15 : 8;
3789 uint64_t iptr_o0 : 1;
3790 uint64_t iptr_o1 : 1;
3791 uint64_t reserved_18_23 : 6;
3792 uint64_t o0_csrm : 1;
3793 uint64_t o1_csrm : 1;
3794 uint64_t reserved_26_27 : 2;
3801 uint64_t reserved_36_43 : 8;
3802 uint64_t p0_bmode : 1;
3803 uint64_t p1_bmode : 1;
3804 uint64_t reserved_46_47 : 2;
3805 uint64_t pkt_rr : 1;
3806 uint64_t reserved_49_63 : 15;
3809 struct cvmx_npi_output_control_s cn58xx;
3810 struct cvmx_npi_output_control_s cn58xxp1;
3812 typedef union cvmx_npi_output_control cvmx_npi_output_control_t;
3815 * cvmx_npi_p#_dbpair_addr
3817 * NPI_P0_DBPAIR_ADDR = NPI's Port-0 DATA-BUFFER Pair Next Read Address.
3819 * Contains the next address to read for Port's-0 Data/Buffer Pair.
3821 union cvmx_npi_px_dbpair_addr
3824 struct cvmx_npi_px_dbpair_addr_s
3826 #if __BYTE_ORDER == __BIG_ENDIAN
3827 uint64_t reserved_63_63 : 1;
3828 uint64_t state : 2; /**< POS state machine vector. Used to tell when NADDR
3829 is valid (when STATE == 0). */
3830 uint64_t naddr : 61; /**< Bits [63:3] of the next Data-Info Pair to read.
3831 Value is only valid when STATE == 0. */
3833 uint64_t naddr : 61;
3835 uint64_t reserved_63_63 : 1;
3838 struct cvmx_npi_px_dbpair_addr_s cn30xx;
3839 struct cvmx_npi_px_dbpair_addr_s cn31xx;
3840 struct cvmx_npi_px_dbpair_addr_s cn38xx;
3841 struct cvmx_npi_px_dbpair_addr_s cn38xxp2;
3842 struct cvmx_npi_px_dbpair_addr_s cn50xx;
3843 struct cvmx_npi_px_dbpair_addr_s cn58xx;
3844 struct cvmx_npi_px_dbpair_addr_s cn58xxp1;
3846 typedef union cvmx_npi_px_dbpair_addr cvmx_npi_px_dbpair_addr_t;
3849 * cvmx_npi_p#_instr_addr
3851 * NPI_P0_INSTR_ADDR = NPI's Port-0 Instruction Next Read Address.
3853 * Contains the next address to read for Port's-0 Instructions.
3855 union cvmx_npi_px_instr_addr
3858 struct cvmx_npi_px_instr_addr_s
3860 #if __BYTE_ORDER == __BIG_ENDIAN
3861 uint64_t state : 3; /**< Gather engine state vector. Used to tell when
3862 NADDR is valid (when STATE == 0). */
3863 uint64_t naddr : 61; /**< Bits [63:3] of the next Instruction to read.
3864 Value is only valid when STATE == 0. */
3866 uint64_t naddr : 61;
3870 struct cvmx_npi_px_instr_addr_s cn30xx;
3871 struct cvmx_npi_px_instr_addr_s cn31xx;
3872 struct cvmx_npi_px_instr_addr_s cn38xx;
3873 struct cvmx_npi_px_instr_addr_s cn38xxp2;
3874 struct cvmx_npi_px_instr_addr_s cn50xx;
3875 struct cvmx_npi_px_instr_addr_s cn58xx;
3876 struct cvmx_npi_px_instr_addr_s cn58xxp1;
3878 typedef union cvmx_npi_px_instr_addr cvmx_npi_px_instr_addr_t;
3881 * cvmx_npi_p#_instr_cnts
3883 * NPI_P0_INSTR_CNTS = NPI's Port-0 Instruction Counts For Packets In.
3885 * Used to determine the number of instruction in the NPI and to be fetched for Input-Packets.
3887 union cvmx_npi_px_instr_cnts
3890 struct cvmx_npi_px_instr_cnts_s
3892 #if __BYTE_ORDER == __BIG_ENDIAN
3893 uint64_t reserved_38_63 : 26;
3894 uint64_t fcnt : 6; /**< Number entries in the Instruction FIFO. */
3895 uint64_t avail : 32; /**< Doorbell count to be read. */
3897 uint64_t avail : 32;
3899 uint64_t reserved_38_63 : 26;
3902 struct cvmx_npi_px_instr_cnts_s cn30xx;
3903 struct cvmx_npi_px_instr_cnts_s cn31xx;
3904 struct cvmx_npi_px_instr_cnts_s cn38xx;
3905 struct cvmx_npi_px_instr_cnts_s cn38xxp2;
3906 struct cvmx_npi_px_instr_cnts_s cn50xx;
3907 struct cvmx_npi_px_instr_cnts_s cn58xx;
3908 struct cvmx_npi_px_instr_cnts_s cn58xxp1;
3910 typedef union cvmx_npi_px_instr_cnts cvmx_npi_px_instr_cnts_t;
3913 * cvmx_npi_p#_pair_cnts
3915 * NPI_P0_PAIR_CNTS = NPI's Port-0 Instruction Counts For Packets Out.
3917 * Used to determine the number of instruction in the NPI and to be fetched for Output-Packets.
3919 union cvmx_npi_px_pair_cnts
3922 struct cvmx_npi_px_pair_cnts_s
3924 #if __BYTE_ORDER == __BIG_ENDIAN
3925 uint64_t reserved_37_63 : 27;
3926 uint64_t fcnt : 5; /**< 16 - number entries in the D/I Pair FIFO. */
3927 uint64_t avail : 32; /**< Doorbell count to be read. */
3929 uint64_t avail : 32;
3931 uint64_t reserved_37_63 : 27;
3934 struct cvmx_npi_px_pair_cnts_s cn30xx;
3935 struct cvmx_npi_px_pair_cnts_s cn31xx;
3936 struct cvmx_npi_px_pair_cnts_s cn38xx;
3937 struct cvmx_npi_px_pair_cnts_s cn38xxp2;
3938 struct cvmx_npi_px_pair_cnts_s cn50xx;
3939 struct cvmx_npi_px_pair_cnts_s cn58xx;
3940 struct cvmx_npi_px_pair_cnts_s cn58xxp1;
3942 typedef union cvmx_npi_px_pair_cnts cvmx_npi_px_pair_cnts_t;
3945 * cvmx_npi_pci_burst_size
3947 * NPI_PCI_BURST_SIZE = NPI PCI Burst Size Register
3949 * Control the number of words the NPI will attempt to read / write to/from the PCI.
3951 union cvmx_npi_pci_burst_size
3954 struct cvmx_npi_pci_burst_size_s
3956 #if __BYTE_ORDER == __BIG_ENDIAN
3957 uint64_t reserved_14_63 : 50;
3958 uint64_t wr_brst : 7; /**< The number of 8B words to write to PCI in any one
3959 write operation. A zero is equal to 128. This
3960 value is used the packet reads and is clamped at
3961 a max of 112 for dma writes. */
3962 uint64_t rd_brst : 7; /**< Number of 8B words to read from PCI in any one
3963 read operation. Legal values are 1 to 127, where
3964 a 0 will be treated as a 1.
3965 "For reading of packet data value is limited to 64
3967 This value does not control the size of a read
3968 caused by an IOBDMA from a PP. */
3970 uint64_t rd_brst : 7;
3971 uint64_t wr_brst : 7;
3972 uint64_t reserved_14_63 : 50;
3975 struct cvmx_npi_pci_burst_size_s cn30xx;
3976 struct cvmx_npi_pci_burst_size_s cn31xx;
3977 struct cvmx_npi_pci_burst_size_s cn38xx;
3978 struct cvmx_npi_pci_burst_size_s cn38xxp2;
3979 struct cvmx_npi_pci_burst_size_s cn50xx;
3980 struct cvmx_npi_pci_burst_size_s cn58xx;
3981 struct cvmx_npi_pci_burst_size_s cn58xxp1;
3983 typedef union cvmx_npi_pci_burst_size cvmx_npi_pci_burst_size_t;
3986 * cvmx_npi_pci_int_arb_cfg
3988 * NPI_PCI_INT_ARB_CFG = Configuration For PCI Arbiter
3990 * Controls operation of the Internal PCI Arbiter. This register should
3991 * only be written when PRST# is asserted. NPI_PCI_INT_ARB_CFG[EN] should
3992 * only be set when Octane is a host.
3994 union cvmx_npi_pci_int_arb_cfg
3997 struct cvmx_npi_pci_int_arb_cfg_s
3999 #if __BYTE_ORDER == __BIG_ENDIAN
4000 uint64_t reserved_13_63 : 51;
4001 uint64_t hostmode : 1; /**< PCI Host Mode Pin (sampled for use by software).
4002 This bit reflects the sampled PCI_HOSTMODE pin.
4003 In HOST Mode, OCTEON drives the PCI_CLK_OUT and
4004 PCI initialization pattern during PCI_RST_N deassertion). */
4005 uint64_t pci_ovr : 4; /**< PCI Host Mode Bus Speed/Type Override
4006 When in Host Mode(PCI_HOSTMODE pin =1), OCTEON acting
4007 as the PCI Central Agent, samples the PCI_PCI100,
4008 PCI_M66EN and PCI_PCIXCAP pins to determine the
4009 'sampled' PCI Bus speed and Bus Type (PCI or PCIX).
4010 (see: PCI_CNT_REG[HM_SPEED,HM_PCIX])
4011 However, in some cases, SW may want to override the
4012 the 'sampled' PCI Bus Type/Speed, and use some
4013 SLOWER Bus frequency.
4014 The PCI_OVR field encoding represents the 'override'
4015 PCI Bus Type/Speed which will be used to generate the
4016 PCI_CLK_OUT and determines the PCI initialization pattern
4017 driven during PCI_RST_N deassertion.
4018 PCI_OVR[3]: OVERRIDE (0:DISABLE/1:ENABLE)
4019 PCI_OVR[2]: BUS TYPE(0:PCI/1:PCIX)
4020 PCI_OVR[1:0]: BUS SPEED(0:33/1:66/2:100/3:133)
4021 OVERRIDE TYPE SPEED | Override Configuration
4022 [3] [2] [1:0] | TYPE SPEED
4023 ------------------+-------------------------------
4024 0 x xx | No override(uses 'sampled'
4025 | Bus Speed(HM_SPEED) and Bus Type(HM_PCIX)
4026 1 0 00 | PCI Mode 33MHz
4027 1 0 01 | PCI Mode 66MHz
4028 1 0 10 | RESERVED (DO NOT USE)
4029 1 0 11 | RESERVED (DO NOT USE)
4030 1 1 00 | RESERVED (DO NOT USE)
4031 1 1 01 | PCIX Mode 66MHz
4032 1 1 10 | PCIX Mode 100MHz
4033 1 1 11 | PCIX Mode 133MHz
4035 - NPI_PCI_INT_ARB_CFG[PCI_OVR] has NO EFFECT on
4036 PCI_CNT_REG[HM_SPEED,HM_PCIX] (ie: the sampled PCI Bus
4037 Type/Speed), but WILL EFFECT PCI_CTL_STATUS_2[AP_PCIX]
4038 which reflects the actual PCI Bus Type(0:PCI/1:PCIX).
4039 - Software should never 'up' configure the recommended values.
4040 In other words, if the 'sampled' Bus Type=PCI(HM_PCIX=0),
4041 then SW should NOT attempt to set TYPE[2]=1 for PCIX Mode.
4042 Likewise, if the sampled Bus Speed=66MHz(HM_SPEED=01),
4043 then SW should NOT attempt to 'speed up' the bus [ie:
4044 SPEED[1:0]=10(100MHz)].
4045 - If PCI_OVR<3> is set prior to PCI reset de-assertion
4046 in host mode, NPI_PCI_INT_ARB_CFG[PCI_OVR]
4047 indicates the Bus Type/Speed that OCTEON drove on the
4048 DEVSEL/STOP/TRDY pins during reset de-assertion. (user
4049 should then ignore the 'sampled' Bus Type/Speed
4050 contained in the PCI_CNT_REG[HM_PCIX, HM_SPEED]) fields.
4051 - If PCI_OVR<3> is clear prior to PCI reset de-assertion
4052 in host mode, PCI_CNT_REG[HM_PCIX,HM_SPEED])
4053 indicates the Bus Type/Speed that OCTEON drove on the
4054 DEVSEL/STOP/TRDY pins during reset de-assertion. */
4055 uint64_t reserved_5_7 : 3;
4056 uint64_t en : 1; /**< Internal arbiter enable. */
4057 uint64_t park_mod : 1; /**< Bus park mode. 0=park on last, 1=park on device. */
4058 uint64_t park_dev : 3; /**< Bus park device. 0-3 External device, 4 = Octane. */
4060 uint64_t park_dev : 3;
4061 uint64_t park_mod : 1;
4063 uint64_t reserved_5_7 : 3;
4064 uint64_t pci_ovr : 4;
4065 uint64_t hostmode : 1;
4066 uint64_t reserved_13_63 : 51;
4069 struct cvmx_npi_pci_int_arb_cfg_cn30xx
4071 #if __BYTE_ORDER == __BIG_ENDIAN
4072 uint64_t reserved_5_63 : 59;
4073 uint64_t en : 1; /**< Internal arbiter enable. */
4074 uint64_t park_mod : 1; /**< Bus park mode. 0=park on last, 1=park on device. */
4075 uint64_t park_dev : 3; /**< Bus park device. 0-3 External device, 4 = Octane. */
4077 uint64_t park_dev : 3;
4078 uint64_t park_mod : 1;
4080 uint64_t reserved_5_63 : 59;
4083 struct cvmx_npi_pci_int_arb_cfg_cn30xx cn31xx;
4084 struct cvmx_npi_pci_int_arb_cfg_cn30xx cn38xx;
4085 struct cvmx_npi_pci_int_arb_cfg_cn30xx cn38xxp2;
4086 struct cvmx_npi_pci_int_arb_cfg_s cn50xx;
4087 struct cvmx_npi_pci_int_arb_cfg_s cn58xx;
4088 struct cvmx_npi_pci_int_arb_cfg_s cn58xxp1;
4090 typedef union cvmx_npi_pci_int_arb_cfg cvmx_npi_pci_int_arb_cfg_t;
4093 * cvmx_npi_pci_read_cmd
4095 * NPI_PCI_READ_CMD = NPI PCI Read Command Register
4097 * Controls the type of read command sent.
4098 * Writes to this register are not ordered with writes/reads to the PCI Memory space.
4099 * To ensure that a write has completed the user must read the register before
4100 * making an access(i.e. PCI memory space) that requires the value of this register to be updated.
4101 * Also any previously issued reads/writes to PCI memory space, still stored in the outbound
4102 * FIFO will use the value of this register after it has been updated.
4104 union cvmx_npi_pci_read_cmd
4107 struct cvmx_npi_pci_read_cmd_s
4109 #if __BYTE_ORDER == __BIG_ENDIAN
4110 uint64_t reserved_11_63 : 53;
4111 uint64_t cmd_size : 11; /**< Number bytes to be read is equal to or exceeds this
4112 size will cause the PCI in PCI mode to use a
4113 Memory-Read-Multiple. This register has a value
4114 from 8 to 2048. A value of 0-7 will be treated as
4117 uint64_t cmd_size : 11;
4118 uint64_t reserved_11_63 : 53;
4121 struct cvmx_npi_pci_read_cmd_s cn30xx;
4122 struct cvmx_npi_pci_read_cmd_s cn31xx;
4123 struct cvmx_npi_pci_read_cmd_s cn38xx;
4124 struct cvmx_npi_pci_read_cmd_s cn38xxp2;
4125 struct cvmx_npi_pci_read_cmd_s cn50xx;
4126 struct cvmx_npi_pci_read_cmd_s cn58xx;
4127 struct cvmx_npi_pci_read_cmd_s cn58xxp1;
4129 typedef union cvmx_npi_pci_read_cmd cvmx_npi_pci_read_cmd_t;
4132 * cvmx_npi_port32_instr_hdr
4134 * NPI_PORT32_INSTR_HDR = NPI Port 32 Instruction Header
4136 * Contains bits [62:42] of the Instruction Header for port 32.
4138 union cvmx_npi_port32_instr_hdr
4141 struct cvmx_npi_port32_instr_hdr_s
4143 #if __BYTE_ORDER == __BIG_ENDIAN
4144 uint64_t reserved_44_63 : 20;
4145 uint64_t pbp : 1; /**< Enable Packet-by-packet mode. */
4146 uint64_t rsv_f : 5; /**< Reserved */
4147 uint64_t rparmode : 2; /**< Parse Mode. Used when packet is raw and PBP==0. */
4148 uint64_t rsv_e : 1; /**< Reserved */
4149 uint64_t rskp_len : 7; /**< Skip Length. Used when packet is raw and PBP==0. */
4150 uint64_t rsv_d : 6; /**< Reserved */
4151 uint64_t use_ihdr : 1; /**< When set '1' the instruction header will be sent
4152 as part of the packet data, regardless of the
4153 value of bit [63] of the instruction header.
4154 USE_IHDR must be set whenever PBP is set. */
4155 uint64_t rsv_c : 5; /**< Reserved */
4156 uint64_t par_mode : 2; /**< Parse Mode. Used when USE_IHDR is set and packet
4157 is not raw and PBP is not set. */
4158 uint64_t rsv_b : 1; /**< Reserved
4159 instruction header sent to IPD. */
4160 uint64_t skp_len : 7; /**< Skip Length. Used when USE_IHDR is set and packet
4161 is not raw and PBP is not set. */
4162 uint64_t rsv_a : 6; /**< Reserved */
4165 uint64_t skp_len : 7;
4167 uint64_t par_mode : 2;
4169 uint64_t use_ihdr : 1;
4171 uint64_t rskp_len : 7;
4173 uint64_t rparmode : 2;
4176 uint64_t reserved_44_63 : 20;
4179 struct cvmx_npi_port32_instr_hdr_s cn30xx;
4180 struct cvmx_npi_port32_instr_hdr_s cn31xx;
4181 struct cvmx_npi_port32_instr_hdr_s cn38xx;
4182 struct cvmx_npi_port32_instr_hdr_s cn38xxp2;
4183 struct cvmx_npi_port32_instr_hdr_s cn50xx;
4184 struct cvmx_npi_port32_instr_hdr_s cn58xx;
4185 struct cvmx_npi_port32_instr_hdr_s cn58xxp1;
4187 typedef union cvmx_npi_port32_instr_hdr cvmx_npi_port32_instr_hdr_t;
4190 * cvmx_npi_port33_instr_hdr
4192 * NPI_PORT33_INSTR_HDR = NPI Port 33 Instruction Header
4194 * Contains bits [62:42] of the Instruction Header for port 33.
4196 union cvmx_npi_port33_instr_hdr
4199 struct cvmx_npi_port33_instr_hdr_s
4201 #if __BYTE_ORDER == __BIG_ENDIAN
4202 uint64_t reserved_44_63 : 20;
4203 uint64_t pbp : 1; /**< Enable Packet-by-packet mode. */
4204 uint64_t rsv_f : 5; /**< Reserved */
4205 uint64_t rparmode : 2; /**< Parse Mode. Used when packet is raw and PBP==0. */
4206 uint64_t rsv_e : 1; /**< Reserved */
4207 uint64_t rskp_len : 7; /**< Skip Length. Used when packet is raw and PBP==0. */
4208 uint64_t rsv_d : 6; /**< Reserved */
4209 uint64_t use_ihdr : 1; /**< When set '1' the instruction header will be sent
4210 as part of the packet data, regardless of the
4211 value of bit [63] of the instruction header.
4212 USE_IHDR must be set whenever PBP is set. */
4213 uint64_t rsv_c : 5; /**< Reserved */
4214 uint64_t par_mode : 2; /**< Parse Mode. Used when USE_IHDR is set and packet
4215 is not raw and PBP is not set. */
4216 uint64_t rsv_b : 1; /**< Reserved
4217 instruction header sent to IPD. */
4218 uint64_t skp_len : 7; /**< Skip Length. Used when USE_IHDR is set and packet
4219 is not raw and PBP is not set. */
4220 uint64_t rsv_a : 6; /**< Reserved */
4223 uint64_t skp_len : 7;
4225 uint64_t par_mode : 2;
4227 uint64_t use_ihdr : 1;
4229 uint64_t rskp_len : 7;
4231 uint64_t rparmode : 2;
4234 uint64_t reserved_44_63 : 20;
4237 struct cvmx_npi_port33_instr_hdr_s cn31xx;
4238 struct cvmx_npi_port33_instr_hdr_s cn38xx;
4239 struct cvmx_npi_port33_instr_hdr_s cn38xxp2;
4240 struct cvmx_npi_port33_instr_hdr_s cn50xx;
4241 struct cvmx_npi_port33_instr_hdr_s cn58xx;
4242 struct cvmx_npi_port33_instr_hdr_s cn58xxp1;
4244 typedef union cvmx_npi_port33_instr_hdr cvmx_npi_port33_instr_hdr_t;
4247 * cvmx_npi_port34_instr_hdr
4249 * NPI_PORT34_INSTR_HDR = NPI Port 34 Instruction Header
4251 * Contains bits [62:42] of the Instruction Header for port 34. Added for PASS-2.
4253 union cvmx_npi_port34_instr_hdr
4256 struct cvmx_npi_port34_instr_hdr_s
4258 #if __BYTE_ORDER == __BIG_ENDIAN
4259 uint64_t reserved_44_63 : 20;
4260 uint64_t pbp : 1; /**< Enable Packet-by-packet mode. */
4261 uint64_t rsv_f : 5; /**< Reserved */
4262 uint64_t rparmode : 2; /**< Parse Mode. Used when packet is raw and PBP==0. */
4263 uint64_t rsv_e : 1; /**< Reserved */
4264 uint64_t rskp_len : 7; /**< Skip Length. Used when packet is raw and PBP==0. */
4265 uint64_t rsv_d : 6; /**< Reserved */
4266 uint64_t use_ihdr : 1; /**< When set '1' the instruction header will be sent
4267 as part of the packet data, regardless of the
4268 value of bit [63] of the instruction header.
4269 USE_IHDR must be set whenever PBP is set. */
4270 uint64_t rsv_c : 5; /**< Reserved */
4271 uint64_t par_mode : 2; /**< Parse Mode. Used when USE_IHDR is set and packet
4272 is not raw and PBP is not set. */
4273 uint64_t rsv_b : 1; /**< Reserved
4274 instruction header sent to IPD. */
4275 uint64_t skp_len : 7; /**< Skip Length. Used when USE_IHDR is set and packet
4276 is not raw and PBP is not set. */
4277 uint64_t rsv_a : 6; /**< Reserved */
4280 uint64_t skp_len : 7;
4282 uint64_t par_mode : 2;
4284 uint64_t use_ihdr : 1;
4286 uint64_t rskp_len : 7;
4288 uint64_t rparmode : 2;
4291 uint64_t reserved_44_63 : 20;
4294 struct cvmx_npi_port34_instr_hdr_s cn38xx;
4295 struct cvmx_npi_port34_instr_hdr_s cn38xxp2;
4296 struct cvmx_npi_port34_instr_hdr_s cn58xx;
4297 struct cvmx_npi_port34_instr_hdr_s cn58xxp1;
4299 typedef union cvmx_npi_port34_instr_hdr cvmx_npi_port34_instr_hdr_t;
4302 * cvmx_npi_port35_instr_hdr
4304 * NPI_PORT35_INSTR_HDR = NPI Port 35 Instruction Header
4306 * Contains bits [62:42] of the Instruction Header for port 35. Added for PASS-2.
4308 union cvmx_npi_port35_instr_hdr
4311 struct cvmx_npi_port35_instr_hdr_s
4313 #if __BYTE_ORDER == __BIG_ENDIAN
4314 uint64_t reserved_44_63 : 20;
4315 uint64_t pbp : 1; /**< Enable Packet-by-packet mode. */
4316 uint64_t rsv_f : 5; /**< Reserved */
4317 uint64_t rparmode : 2; /**< Parse Mode. Used when packet is raw and PBP==0. */
4318 uint64_t rsv_e : 1; /**< Reserved */
4319 uint64_t rskp_len : 7; /**< Skip Length. Used when packet is raw and PBP==0. */
4320 uint64_t rsv_d : 6; /**< Reserved */
4321 uint64_t use_ihdr : 1; /**< When set '1' the instruction header will be sent
4322 as part of the packet data, regardless of the
4323 value of bit [63] of the instruction header.
4324 USE_IHDR must be set whenever PBP is set. */
4325 uint64_t rsv_c : 5; /**< Reserved */
4326 uint64_t par_mode : 2; /**< Parse Mode. Used when USE_IHDR is set and packet
4327 is not raw and PBP is not set. */
4328 uint64_t rsv_b : 1; /**< Reserved
4329 instruction header sent to IPD. */
4330 uint64_t skp_len : 7; /**< Skip Length. Used when USE_IHDR is set and packet
4331 is not raw and PBP is not set. */
4332 uint64_t rsv_a : 6; /**< Reserved */
4335 uint64_t skp_len : 7;
4337 uint64_t par_mode : 2;
4339 uint64_t use_ihdr : 1;
4341 uint64_t rskp_len : 7;
4343 uint64_t rparmode : 2;
4346 uint64_t reserved_44_63 : 20;
4349 struct cvmx_npi_port35_instr_hdr_s cn38xx;
4350 struct cvmx_npi_port35_instr_hdr_s cn38xxp2;
4351 struct cvmx_npi_port35_instr_hdr_s cn58xx;
4352 struct cvmx_npi_port35_instr_hdr_s cn58xxp1;
4354 typedef union cvmx_npi_port35_instr_hdr cvmx_npi_port35_instr_hdr_t;
4357 * cvmx_npi_port_bp_control
4359 * NPI_PORT_BP_CONTROL = Port Backpressure Control
4361 * Enables Port Level Backpressure
4363 union cvmx_npi_port_bp_control
4366 struct cvmx_npi_port_bp_control_s
4368 #if __BYTE_ORDER == __BIG_ENDIAN
4369 uint64_t reserved_8_63 : 56;
4370 uint64_t bp_on : 4; /**< Port 35-32 port level backpressure applied. */
4371 uint64_t enb : 4; /**< Enables port level backpressure from the IPD. */
4375 uint64_t reserved_8_63 : 56;
4378 struct cvmx_npi_port_bp_control_s cn30xx;
4379 struct cvmx_npi_port_bp_control_s cn31xx;
4380 struct cvmx_npi_port_bp_control_s cn38xx;
4381 struct cvmx_npi_port_bp_control_s cn38xxp2;
4382 struct cvmx_npi_port_bp_control_s cn50xx;
4383 struct cvmx_npi_port_bp_control_s cn58xx;
4384 struct cvmx_npi_port_bp_control_s cn58xxp1;
4386 typedef union cvmx_npi_port_bp_control cvmx_npi_port_bp_control_t;
4389 * cvmx_npi_rsl_int_blocks
4391 * RSL_INT_BLOCKS = RSL Interrupt Blocks Register
4393 * Reading this register will return a vector with a bit set '1' for a corresponding RSL block
4394 * that presently has an interrupt pending. The Field Description below supplies the name of the
4395 * register that software should read to find out why that intterupt bit is set.
4397 union cvmx_npi_rsl_int_blocks
4400 struct cvmx_npi_rsl_int_blocks_s
4402 #if __BYTE_ORDER == __BIG_ENDIAN
4403 uint64_t reserved_32_63 : 32;
4404 uint64_t rint_31 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4405 uint64_t iob : 1; /**< IOB_INT_SUM */
4406 uint64_t reserved_28_29 : 2;
4407 uint64_t rint_27 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4408 uint64_t rint_26 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4409 uint64_t rint_25 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4410 uint64_t rint_24 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4411 uint64_t asx1 : 1; /**< ASX1_INT_REG */
4412 uint64_t asx0 : 1; /**< ASX0_INT_REG */
4413 uint64_t rint_21 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4414 uint64_t pip : 1; /**< PIP_INT_REG. */
4415 uint64_t spx1 : 1; /**< SPX1_INT_REG & STX1_INT_REG */
4416 uint64_t spx0 : 1; /**< SPX0_INT_REG & STX0_INT_REG */
4417 uint64_t lmc : 1; /**< LMC_MEM_CFG0 */
4418 uint64_t l2c : 1; /**< L2T_ERR & L2D_ERR */
4419 uint64_t rint_15 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4420 uint64_t reserved_13_14 : 2;
4421 uint64_t pow : 1; /**< POW_ECC_ERR */
4422 uint64_t tim : 1; /**< TIM_REG_ERROR */
4423 uint64_t pko : 1; /**< PKO_REG_ERROR */
4424 uint64_t ipd : 1; /**< IPD_INT_SUM */
4425 uint64_t rint_8 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4426 uint64_t zip : 1; /**< ZIP_ERROR */
4427 uint64_t dfa : 1; /**< DFA_ERR */
4428 uint64_t fpa : 1; /**< FPA_INT_SUM */
4429 uint64_t key : 1; /**< KEY_INT_SUM */
4430 uint64_t npi : 1; /**< NPI_INT_SUM */
4431 uint64_t gmx1 : 1; /**< GMX1_RX*_INT_REG & GMX1_TX_INT_REG */
4432 uint64_t gmx0 : 1; /**< GMX0_RX*_INT_REG & GMX0_TX_INT_REG */
4433 uint64_t mio : 1; /**< MIO_BOOT_ERR */
4443 uint64_t rint_8 : 1;
4448 uint64_t reserved_13_14 : 2;
4449 uint64_t rint_15 : 1;
4455 uint64_t rint_21 : 1;
4458 uint64_t rint_24 : 1;
4459 uint64_t rint_25 : 1;
4460 uint64_t rint_26 : 1;
4461 uint64_t rint_27 : 1;
4462 uint64_t reserved_28_29 : 2;
4464 uint64_t rint_31 : 1;
4465 uint64_t reserved_32_63 : 32;
4468 struct cvmx_npi_rsl_int_blocks_cn30xx
4470 #if __BYTE_ORDER == __BIG_ENDIAN
4471 uint64_t reserved_32_63 : 32;
4472 uint64_t rint_31 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4473 uint64_t iob : 1; /**< IOB_INT_SUM */
4474 uint64_t rint_29 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4475 uint64_t rint_28 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4476 uint64_t rint_27 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4477 uint64_t rint_26 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4478 uint64_t rint_25 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4479 uint64_t rint_24 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4480 uint64_t asx1 : 1; /**< ASX1_INT_REG */
4481 uint64_t asx0 : 1; /**< ASX0_INT_REG */
4482 uint64_t rint_21 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4483 uint64_t pip : 1; /**< PIP_INT_REG. */
4484 uint64_t spx1 : 1; /**< SPX1_INT_REG & STX1_INT_REG */
4485 uint64_t spx0 : 1; /**< SPX0_INT_REG & STX0_INT_REG */
4486 uint64_t lmc : 1; /**< LMC_MEM_CFG0 */
4487 uint64_t l2c : 1; /**< L2T_ERR & L2D_ERR */
4488 uint64_t rint_15 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4489 uint64_t rint_14 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4490 uint64_t usb : 1; /**< USBN_INT_SUM */
4491 uint64_t pow : 1; /**< POW_ECC_ERR */
4492 uint64_t tim : 1; /**< TIM_REG_ERROR */
4493 uint64_t pko : 1; /**< PKO_REG_ERROR */
4494 uint64_t ipd : 1; /**< IPD_INT_SUM */
4495 uint64_t rint_8 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4496 uint64_t zip : 1; /**< ZIP_ERROR */
4497 uint64_t dfa : 1; /**< DFA_ERR */
4498 uint64_t fpa : 1; /**< FPA_INT_SUM */
4499 uint64_t key : 1; /**< Set '1' when RSL bLock has an interrupt. */
4500 uint64_t npi : 1; /**< NPI_INT_SUM */
4501 uint64_t gmx1 : 1; /**< GMX1_RX*_INT_REG & GMX1_TX_INT_REG */
4502 uint64_t gmx0 : 1; /**< GMX0_RX*_INT_REG & GMX0_TX_INT_REG */
4503 uint64_t mio : 1; /**< MIO_BOOT_ERR */
4513 uint64_t rint_8 : 1;
4519 uint64_t rint_14 : 1;
4520 uint64_t rint_15 : 1;
4526 uint64_t rint_21 : 1;
4529 uint64_t rint_24 : 1;
4530 uint64_t rint_25 : 1;
4531 uint64_t rint_26 : 1;
4532 uint64_t rint_27 : 1;
4533 uint64_t rint_28 : 1;
4534 uint64_t rint_29 : 1;
4536 uint64_t rint_31 : 1;
4537 uint64_t reserved_32_63 : 32;
4540 struct cvmx_npi_rsl_int_blocks_cn30xx cn31xx;
4541 struct cvmx_npi_rsl_int_blocks_cn38xx
4543 #if __BYTE_ORDER == __BIG_ENDIAN
4544 uint64_t reserved_32_63 : 32;
4545 uint64_t rint_31 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4546 uint64_t iob : 1; /**< IOB_INT_SUM */
4547 uint64_t rint_29 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4548 uint64_t rint_28 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4549 uint64_t rint_27 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4550 uint64_t rint_26 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4551 uint64_t rint_25 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4552 uint64_t rint_24 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4553 uint64_t asx1 : 1; /**< ASX1_INT_REG */
4554 uint64_t asx0 : 1; /**< ASX0_INT_REG */
4555 uint64_t rint_21 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4556 uint64_t pip : 1; /**< PIP_INT_REG. */
4557 uint64_t spx1 : 1; /**< SPX1_INT_REG & STX1_INT_REG */
4558 uint64_t spx0 : 1; /**< SPX0_INT_REG & STX0_INT_REG */
4559 uint64_t lmc : 1; /**< LMC_MEM_CFG0 */
4560 uint64_t l2c : 1; /**< L2T_ERR & L2D_ERR */
4561 uint64_t rint_15 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4562 uint64_t rint_14 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4563 uint64_t rint_13 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4564 uint64_t pow : 1; /**< POW_ECC_ERR */
4565 uint64_t tim : 1; /**< TIM_REG_ERROR */
4566 uint64_t pko : 1; /**< PKO_REG_ERROR */
4567 uint64_t ipd : 1; /**< IPD_INT_SUM */
4568 uint64_t rint_8 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4569 uint64_t zip : 1; /**< ZIP_ERROR */
4570 uint64_t dfa : 1; /**< DFA_ERR */
4571 uint64_t fpa : 1; /**< FPA_INT_SUM */
4572 uint64_t key : 1; /**< KEY_INT_SUM */
4573 uint64_t npi : 1; /**< NPI_INT_SUM */
4574 uint64_t gmx1 : 1; /**< GMX1_RX*_INT_REG & GMX1_TX_INT_REG */
4575 uint64_t gmx0 : 1; /**< GMX0_RX*_INT_REG & GMX0_TX_INT_REG */
4576 uint64_t mio : 1; /**< MIO_BOOT_ERR */
4586 uint64_t rint_8 : 1;
4591 uint64_t rint_13 : 1;
4592 uint64_t rint_14 : 1;
4593 uint64_t rint_15 : 1;
4599 uint64_t rint_21 : 1;
4602 uint64_t rint_24 : 1;
4603 uint64_t rint_25 : 1;
4604 uint64_t rint_26 : 1;
4605 uint64_t rint_27 : 1;
4606 uint64_t rint_28 : 1;
4607 uint64_t rint_29 : 1;
4609 uint64_t rint_31 : 1;
4610 uint64_t reserved_32_63 : 32;
4613 struct cvmx_npi_rsl_int_blocks_cn38xx cn38xxp2;
4614 struct cvmx_npi_rsl_int_blocks_cn50xx
4616 #if __BYTE_ORDER == __BIG_ENDIAN
4617 uint64_t reserved_31_63 : 33;
4618 uint64_t iob : 1; /**< IOB_INT_SUM */
4619 uint64_t lmc1 : 1; /**< Always reads as zero */
4620 uint64_t agl : 1; /**< Always reads as zero */
4621 uint64_t reserved_24_27 : 4;
4622 uint64_t asx1 : 1; /**< Always reads as zero */
4623 uint64_t asx0 : 1; /**< ASX0_INT_REG */
4624 uint64_t reserved_21_21 : 1;
4625 uint64_t pip : 1; /**< PIP_INT_REG. */
4626 uint64_t spx1 : 1; /**< Always reads as zero */
4627 uint64_t spx0 : 1; /**< Always reads as zero */
4628 uint64_t lmc : 1; /**< LMC_MEM_CFG0 */
4629 uint64_t l2c : 1; /**< L2T_ERR & L2D_ERR */
4630 uint64_t reserved_15_15 : 1;
4631 uint64_t rad : 1; /**< Always reads as zero */
4632 uint64_t usb : 1; /**< USBN_INT_SUM */
4633 uint64_t pow : 1; /**< POW_ECC_ERR */
4634 uint64_t tim : 1; /**< TIM_REG_ERROR */
4635 uint64_t pko : 1; /**< PKO_REG_ERROR */
4636 uint64_t ipd : 1; /**< IPD_INT_SUM */
4637 uint64_t reserved_8_8 : 1;
4638 uint64_t zip : 1; /**< Always reads as zero */
4639 uint64_t dfa : 1; /**< Always reads as zero */
4640 uint64_t fpa : 1; /**< FPA_INT_SUM */
4641 uint64_t key : 1; /**< Always reads as zero */
4642 uint64_t npi : 1; /**< NPI_INT_SUM */
4643 uint64_t gmx1 : 1; /**< Always reads as zero */
4644 uint64_t gmx0 : 1; /**< GMX0_RX*_INT_REG & GMX0_TX_INT_REG */
4645 uint64_t mio : 1; /**< MIO_BOOT_ERR */
4655 uint64_t reserved_8_8 : 1;
4662 uint64_t reserved_15_15 : 1;
4668 uint64_t reserved_21_21 : 1;
4671 uint64_t reserved_24_27 : 4;
4675 uint64_t reserved_31_63 : 33;
4678 struct cvmx_npi_rsl_int_blocks_cn38xx cn58xx;
4679 struct cvmx_npi_rsl_int_blocks_cn38xx cn58xxp1;
4681 typedef union cvmx_npi_rsl_int_blocks cvmx_npi_rsl_int_blocks_t;
4684 * cvmx_npi_size_input#
4686 * NPI_SIZE_INPUT0 = NPI's Size for Input 0 Register
4688 * The size (in instructions) of Instruction Queue-0.
4690 union cvmx_npi_size_inputx
4693 struct cvmx_npi_size_inputx_s
4695 #if __BYTE_ORDER == __BIG_ENDIAN
4696 uint64_t reserved_32_63 : 32;
4697 uint64_t size : 32; /**< The size of the Instruction Queue used by Octane.
4698 The value [SIZE] is in Instructions.
4699 A value of 0 in this field is illegal. */
4702 uint64_t reserved_32_63 : 32;
4705 struct cvmx_npi_size_inputx_s cn30xx;
4706 struct cvmx_npi_size_inputx_s cn31xx;
4707 struct cvmx_npi_size_inputx_s cn38xx;
4708 struct cvmx_npi_size_inputx_s cn38xxp2;
4709 struct cvmx_npi_size_inputx_s cn50xx;
4710 struct cvmx_npi_size_inputx_s cn58xx;
4711 struct cvmx_npi_size_inputx_s cn58xxp1;
4713 typedef union cvmx_npi_size_inputx cvmx_npi_size_inputx_t;
4716 * cvmx_npi_win_read_to
4718 * NPI_WIN_READ_TO = NPI WINDOW READ Timeout Register
4720 * Number of core clocks to wait before timing out on a WINDOW-READ to the NCB.
4722 union cvmx_npi_win_read_to
4725 struct cvmx_npi_win_read_to_s
4727 #if __BYTE_ORDER == __BIG_ENDIAN
4728 uint64_t reserved_32_63 : 32;
4729 uint64_t time : 32; /**< Time to wait in core clocks. A value of 0 will
4730 cause no timeouts. */
4733 uint64_t reserved_32_63 : 32;
4736 struct cvmx_npi_win_read_to_s cn30xx;
4737 struct cvmx_npi_win_read_to_s cn31xx;
4738 struct cvmx_npi_win_read_to_s cn38xx;
4739 struct cvmx_npi_win_read_to_s cn38xxp2;
4740 struct cvmx_npi_win_read_to_s cn50xx;
4741 struct cvmx_npi_win_read_to_s cn58xx;
4742 struct cvmx_npi_win_read_to_s cn58xxp1;
4744 typedef union cvmx_npi_win_read_to cvmx_npi_win_read_to_t;