1 /***********************license start***************
2 * Copyright (c) 2003-2012 Cavium Inc. (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 Inc. nor the names of
19 * its contributors may be used to endorse or promote products
20 * derived from this software without specific prior written
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 INC. MAKES NO PROMISES, REPRESENTATIONS OR
30 * WARRANTIES, EITHER EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE, WITH RESPECT TO
31 * THE SOFTWARE, INCLUDING ITS CONDITION, ITS CONFORMITY TO ANY REPRESENTATION OR
32 * DESCRIPTION, OR THE EXISTENCE OF ANY LATENT OR PATENT DEFECTS, AND CAVIUM
33 * SPECIFICALLY DISCLAIMS ALL IMPLIED (IF ANY) WARRANTIES OF TITLE,
34 * MERCHANTABILITY, NONINFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, LACK OF
35 * VIRUSES, ACCURACY OR COMPLETENESS, QUIET ENJOYMENT, QUIET POSSESSION OR
36 * CORRESPONDENCE TO DESCRIPTION. THE ENTIRE RISK ARISING OUT OF USE OR
37 * PERFORMANCE OF THE SOFTWARE LIES WITH YOU.
38 ***********************license end**************************************/
44 * Configuration and status register (CSR) type definitions for
47 * This file is auto generated. Do not edit.
52 #ifndef __CVMX_NPI_DEFS_H__
53 #define __CVMX_NPI_DEFS_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 {
1029 struct cvmx_npi_base_addr_inputx_s {
1030 #ifdef __BIG_ENDIAN_BITFIELD
1031 uint64_t baddr : 61; /**< The address to read Instruction from for output 0.
1032 This address is 8-byte aligned, for this reason
1033 address bits [2:0] will always be zero. */
1034 uint64_t reserved_0_2 : 3;
1036 uint64_t reserved_0_2 : 3;
1037 uint64_t baddr : 61;
1040 struct cvmx_npi_base_addr_inputx_s cn30xx;
1041 struct cvmx_npi_base_addr_inputx_s cn31xx;
1042 struct cvmx_npi_base_addr_inputx_s cn38xx;
1043 struct cvmx_npi_base_addr_inputx_s cn38xxp2;
1044 struct cvmx_npi_base_addr_inputx_s cn50xx;
1045 struct cvmx_npi_base_addr_inputx_s cn58xx;
1046 struct cvmx_npi_base_addr_inputx_s cn58xxp1;
1048 typedef union cvmx_npi_base_addr_inputx cvmx_npi_base_addr_inputx_t;
1051 * cvmx_npi_base_addr_output#
1053 * NPI_BASE_ADDR_OUTPUT0 = NPI's Base Address Output 0 Register
1055 * The address to start reading Instructions from for Output-0.
1057 union cvmx_npi_base_addr_outputx {
1059 struct cvmx_npi_base_addr_outputx_s {
1060 #ifdef __BIG_ENDIAN_BITFIELD
1061 uint64_t baddr : 61; /**< The address to read Instruction from for output 0.
1062 This address is 8-byte aligned, for this reason
1063 address bits [2:0] will always be zero. */
1064 uint64_t reserved_0_2 : 3;
1066 uint64_t reserved_0_2 : 3;
1067 uint64_t baddr : 61;
1070 struct cvmx_npi_base_addr_outputx_s cn30xx;
1071 struct cvmx_npi_base_addr_outputx_s cn31xx;
1072 struct cvmx_npi_base_addr_outputx_s cn38xx;
1073 struct cvmx_npi_base_addr_outputx_s cn38xxp2;
1074 struct cvmx_npi_base_addr_outputx_s cn50xx;
1075 struct cvmx_npi_base_addr_outputx_s cn58xx;
1076 struct cvmx_npi_base_addr_outputx_s cn58xxp1;
1078 typedef union cvmx_npi_base_addr_outputx cvmx_npi_base_addr_outputx_t;
1081 * cvmx_npi_bist_status
1083 * NPI_BIST_STATUS = NPI's BIST Status Register
1085 * Results from BIST runs of NPI's memories.
1087 union cvmx_npi_bist_status {
1089 struct cvmx_npi_bist_status_s {
1090 #ifdef __BIG_ENDIAN_BITFIELD
1091 uint64_t reserved_20_63 : 44;
1092 uint64_t csr_bs : 1; /**< BIST Status for the csr_fifo */
1093 uint64_t dif_bs : 1; /**< BIST Status for the dif_fifo */
1094 uint64_t rdp_bs : 1; /**< BIST Status for the rdp_fifo */
1095 uint64_t pcnc_bs : 1; /**< BIST Status for the pcn_cnt_fifo */
1096 uint64_t pcn_bs : 1; /**< BIST Status for the pcn_fifo */
1097 uint64_t rdn_bs : 1; /**< BIST Status for the rdn_fifo */
1098 uint64_t pcac_bs : 1; /**< BIST Status for the pca_cmd_fifo */
1099 uint64_t pcad_bs : 1; /**< BIST Status for the pca_data_fifo */
1100 uint64_t rdnl_bs : 1; /**< BIST Status for the rdn_length_fifo */
1101 uint64_t pgf_bs : 1; /**< BIST Status for the pgf_fifo */
1102 uint64_t pig_bs : 1; /**< BIST Status for the pig_fifo */
1103 uint64_t pof0_bs : 1; /**< BIST Status for the pof0_fifo */
1104 uint64_t pof1_bs : 1; /**< BIST Status for the pof1_fifo */
1105 uint64_t pof2_bs : 1; /**< BIST Status for the pof2_fifo */
1106 uint64_t pof3_bs : 1; /**< BIST Status for the pof3_fifo */
1107 uint64_t pos_bs : 1; /**< BIST Status for the pos_fifo */
1108 uint64_t nus_bs : 1; /**< BIST Status for the nus_fifo */
1109 uint64_t dob_bs : 1; /**< BIST Status for the dob_fifo */
1110 uint64_t pdf_bs : 1; /**< BIST Status for the pdf_fifo */
1111 uint64_t dpi_bs : 1; /**< BIST Status for the dpi_fifo */
1113 uint64_t dpi_bs : 1;
1114 uint64_t pdf_bs : 1;
1115 uint64_t dob_bs : 1;
1116 uint64_t nus_bs : 1;
1117 uint64_t pos_bs : 1;
1118 uint64_t pof3_bs : 1;
1119 uint64_t pof2_bs : 1;
1120 uint64_t pof1_bs : 1;
1121 uint64_t pof0_bs : 1;
1122 uint64_t pig_bs : 1;
1123 uint64_t pgf_bs : 1;
1124 uint64_t rdnl_bs : 1;
1125 uint64_t pcad_bs : 1;
1126 uint64_t pcac_bs : 1;
1127 uint64_t rdn_bs : 1;
1128 uint64_t pcn_bs : 1;
1129 uint64_t pcnc_bs : 1;
1130 uint64_t rdp_bs : 1;
1131 uint64_t dif_bs : 1;
1132 uint64_t csr_bs : 1;
1133 uint64_t reserved_20_63 : 44;
1136 struct cvmx_npi_bist_status_cn30xx {
1137 #ifdef __BIG_ENDIAN_BITFIELD
1138 uint64_t reserved_20_63 : 44;
1139 uint64_t csr_bs : 1; /**< BIST Status for the csr_fifo */
1140 uint64_t dif_bs : 1; /**< BIST Status for the dif_fifo */
1141 uint64_t rdp_bs : 1; /**< BIST Status for the rdp_fifo */
1142 uint64_t pcnc_bs : 1; /**< BIST Status for the pcn_cnt_fifo */
1143 uint64_t pcn_bs : 1; /**< BIST Status for the pcn_fifo */
1144 uint64_t rdn_bs : 1; /**< BIST Status for the rdn_fifo */
1145 uint64_t pcac_bs : 1; /**< BIST Status for the pca_cmd_fifo */
1146 uint64_t pcad_bs : 1; /**< BIST Status for the pca_data_fifo */
1147 uint64_t rdnl_bs : 1; /**< BIST Status for the rdn_length_fifo */
1148 uint64_t pgf_bs : 1; /**< BIST Status for the pgf_fifo */
1149 uint64_t pig_bs : 1; /**< BIST Status for the pig_fifo */
1150 uint64_t pof0_bs : 1; /**< BIST Status for the pof0_fifo */
1151 uint64_t reserved_5_7 : 3;
1152 uint64_t pos_bs : 1; /**< BIST Status for the pos_fifo */
1153 uint64_t nus_bs : 1; /**< BIST Status for the nus_fifo */
1154 uint64_t dob_bs : 1; /**< BIST Status for the dob_fifo */
1155 uint64_t pdf_bs : 1; /**< BIST Status for the pdf_fifo */
1156 uint64_t dpi_bs : 1; /**< BIST Status for the dpi_fifo */
1158 uint64_t dpi_bs : 1;
1159 uint64_t pdf_bs : 1;
1160 uint64_t dob_bs : 1;
1161 uint64_t nus_bs : 1;
1162 uint64_t pos_bs : 1;
1163 uint64_t reserved_5_7 : 3;
1164 uint64_t pof0_bs : 1;
1165 uint64_t pig_bs : 1;
1166 uint64_t pgf_bs : 1;
1167 uint64_t rdnl_bs : 1;
1168 uint64_t pcad_bs : 1;
1169 uint64_t pcac_bs : 1;
1170 uint64_t rdn_bs : 1;
1171 uint64_t pcn_bs : 1;
1172 uint64_t pcnc_bs : 1;
1173 uint64_t rdp_bs : 1;
1174 uint64_t dif_bs : 1;
1175 uint64_t csr_bs : 1;
1176 uint64_t reserved_20_63 : 44;
1179 struct cvmx_npi_bist_status_s cn31xx;
1180 struct cvmx_npi_bist_status_s cn38xx;
1181 struct cvmx_npi_bist_status_s cn38xxp2;
1182 struct cvmx_npi_bist_status_cn50xx {
1183 #ifdef __BIG_ENDIAN_BITFIELD
1184 uint64_t reserved_20_63 : 44;
1185 uint64_t csr_bs : 1; /**< BIST Status for the csr_fifo */
1186 uint64_t dif_bs : 1; /**< BIST Status for the dif_fifo */
1187 uint64_t rdp_bs : 1; /**< BIST Status for the rdp_fifo */
1188 uint64_t pcnc_bs : 1; /**< BIST Status for the pcn_cnt_fifo */
1189 uint64_t pcn_bs : 1; /**< BIST Status for the pcn_fifo */
1190 uint64_t rdn_bs : 1; /**< BIST Status for the rdn_fifo */
1191 uint64_t pcac_bs : 1; /**< BIST Status for the pca_cmd_fifo */
1192 uint64_t pcad_bs : 1; /**< BIST Status for the pca_data_fifo */
1193 uint64_t rdnl_bs : 1; /**< BIST Status for the rdn_length_fifo */
1194 uint64_t pgf_bs : 1; /**< BIST Status for the pgf_fifo */
1195 uint64_t pig_bs : 1; /**< BIST Status for the pig_fifo */
1196 uint64_t pof0_bs : 1; /**< BIST Status for the pof0_fifo */
1197 uint64_t pof1_bs : 1; /**< BIST Status for the pof1_fifo */
1198 uint64_t reserved_5_6 : 2;
1199 uint64_t pos_bs : 1; /**< BIST Status for the pos_fifo */
1200 uint64_t nus_bs : 1; /**< BIST Status for the nus_fifo */
1201 uint64_t dob_bs : 1; /**< BIST Status for the dob_fifo */
1202 uint64_t pdf_bs : 1; /**< BIST Status for the pdf_fifo */
1203 uint64_t dpi_bs : 1; /**< BIST Status for the dpi_fifo */
1205 uint64_t dpi_bs : 1;
1206 uint64_t pdf_bs : 1;
1207 uint64_t dob_bs : 1;
1208 uint64_t nus_bs : 1;
1209 uint64_t pos_bs : 1;
1210 uint64_t reserved_5_6 : 2;
1211 uint64_t pof1_bs : 1;
1212 uint64_t pof0_bs : 1;
1213 uint64_t pig_bs : 1;
1214 uint64_t pgf_bs : 1;
1215 uint64_t rdnl_bs : 1;
1216 uint64_t pcad_bs : 1;
1217 uint64_t pcac_bs : 1;
1218 uint64_t rdn_bs : 1;
1219 uint64_t pcn_bs : 1;
1220 uint64_t pcnc_bs : 1;
1221 uint64_t rdp_bs : 1;
1222 uint64_t dif_bs : 1;
1223 uint64_t csr_bs : 1;
1224 uint64_t reserved_20_63 : 44;
1227 struct cvmx_npi_bist_status_s cn58xx;
1228 struct cvmx_npi_bist_status_s cn58xxp1;
1230 typedef union cvmx_npi_bist_status cvmx_npi_bist_status_t;
1233 * cvmx_npi_buff_size_output#
1235 * NPI_BUFF_SIZE_OUTPUT0 = NPI's D/I Buffer Sizes For Output 0
1237 * The size in bytes of the Data Bufffer and Information Buffer for output 0.
1239 union cvmx_npi_buff_size_outputx {
1241 struct cvmx_npi_buff_size_outputx_s {
1242 #ifdef __BIG_ENDIAN_BITFIELD
1243 uint64_t reserved_23_63 : 41;
1244 uint64_t isize : 7; /**< The number of bytes to move to the Info-Pointer
1245 from the front of the packet.
1246 Legal values are 0-120. */
1247 uint64_t bsize : 16; /**< The size in bytes of the area pointed to by
1248 buffer pointer for output packet data. */
1250 uint64_t bsize : 16;
1252 uint64_t reserved_23_63 : 41;
1255 struct cvmx_npi_buff_size_outputx_s cn30xx;
1256 struct cvmx_npi_buff_size_outputx_s cn31xx;
1257 struct cvmx_npi_buff_size_outputx_s cn38xx;
1258 struct cvmx_npi_buff_size_outputx_s cn38xxp2;
1259 struct cvmx_npi_buff_size_outputx_s cn50xx;
1260 struct cvmx_npi_buff_size_outputx_s cn58xx;
1261 struct cvmx_npi_buff_size_outputx_s cn58xxp1;
1263 typedef union cvmx_npi_buff_size_outputx cvmx_npi_buff_size_outputx_t;
1268 * NPI_COMP_CTL = PCI Compensation Control
1270 * PCI Compensation Control
1272 union cvmx_npi_comp_ctl {
1274 struct cvmx_npi_comp_ctl_s {
1275 #ifdef __BIG_ENDIAN_BITFIELD
1276 uint64_t reserved_10_63 : 54;
1277 uint64_t pctl : 5; /**< Bypass value for PCTL */
1278 uint64_t nctl : 5; /**< Bypass value for NCTL */
1282 uint64_t reserved_10_63 : 54;
1285 struct cvmx_npi_comp_ctl_s cn50xx;
1286 struct cvmx_npi_comp_ctl_s cn58xx;
1287 struct cvmx_npi_comp_ctl_s cn58xxp1;
1289 typedef union cvmx_npi_comp_ctl cvmx_npi_comp_ctl_t;
1292 * cvmx_npi_ctl_status
1294 * NPI_CTL_STATUS = NPI's Control Status Register
1296 * Contains control ans status for NPI.
1297 * Writes to this register are not ordered with writes/reads to the PCI Memory space.
1298 * To ensure that a write has completed the user must read the register before
1299 * making an access(i.e. PCI memory space) that requires the value of this register to be updated.
1301 union cvmx_npi_ctl_status {
1303 struct cvmx_npi_ctl_status_s {
1304 #ifdef __BIG_ENDIAN_BITFIELD
1305 uint64_t reserved_63_63 : 1;
1306 uint64_t chip_rev : 8; /**< The revision of the N3. */
1307 uint64_t dis_pniw : 1; /**< When asserted '1' access from the PNI Window
1308 Registers are disabled. */
1309 uint64_t out3_enb : 1; /**< When asserted '1' the output3 engine is enabled.
1310 After enabling the values of the associated
1311 Address and Size Register should not be changed. */
1312 uint64_t out2_enb : 1; /**< When asserted '1' the output2 engine is enabled.
1313 After enabling the values of the associated
1314 Address and Size Register should not be changed. */
1315 uint64_t out1_enb : 1; /**< When asserted '1' the output1 engine is enabled.
1316 After enabling the values of the associated
1317 Address and Size Register should not be changed. */
1318 uint64_t out0_enb : 1; /**< When asserted '1' the output0 engine is enabled.
1319 After enabling the values of the associated
1320 Address and Size Register should not be changed. */
1321 uint64_t ins3_enb : 1; /**< When asserted '1' the gather3 engine is enabled.
1322 After enabling the values of the associated
1323 Address and Size Register should not be changed. */
1324 uint64_t ins2_enb : 1; /**< When asserted '1' the gather2 engine is enabled.
1325 After enabling the values of the associated
1326 Address and Size Register should not be changed. */
1327 uint64_t ins1_enb : 1; /**< When asserted '1' the gather1 engine is enabled.
1328 After enabling the values of the associated
1329 Address and Size Register should not be changed. */
1330 uint64_t ins0_enb : 1; /**< When asserted '1' the gather0 engine is enabled.
1331 After enabling the values of the associated
1332 Address and Size Register should not be changed. */
1333 uint64_t ins3_64b : 1; /**< When asserted '1' the instructions read by the
1334 gather3 engine are 64-Byte instructions, when
1335 de-asserted '0' instructions are 32-byte. */
1336 uint64_t ins2_64b : 1; /**< When asserted '1' the instructions read by the
1337 gather2 engine are 64-Byte instructions, when
1338 de-asserted '0' instructions are 32-byte. */
1339 uint64_t ins1_64b : 1; /**< When asserted '1' the instructions read by the
1340 gather1 engine are 64-Byte instructions, when
1341 de-asserted '0' instructions are 32-byte. */
1342 uint64_t ins0_64b : 1; /**< When asserted '1' the instructions read by the
1343 gather0 engine are 64-Byte instructions, when
1344 de-asserted '0' instructions are 32-byte. */
1345 uint64_t pci_wdis : 1; /**< When set '1' disables access to registers in
1346 PNI address range 0x1000 - 0x17FF from the PCI. */
1347 uint64_t wait_com : 1; /**< When set '1' casues the NPI to wait for a commit
1348 from the L2C before sending additional access to
1349 the L2C from the PCI. */
1350 uint64_t reserved_37_39 : 3;
1351 uint64_t max_word : 5; /**< The maximum number of words to merge into a single
1352 write operation from the PPs to the PCI. Legal
1353 values are 1 to 32, where a '0' is treated as 32. */
1354 uint64_t reserved_10_31 : 22;
1355 uint64_t timer : 10; /**< When the NPI starts a PP to PCI write it will wait
1356 no longer than the value of TIMER in eclks to
1357 merge additional writes from the PPs into 1
1358 large write. The values for this field is 1 to
1359 1024 where a value of '0' is treated as 1024. */
1361 uint64_t timer : 10;
1362 uint64_t reserved_10_31 : 22;
1363 uint64_t max_word : 5;
1364 uint64_t reserved_37_39 : 3;
1365 uint64_t wait_com : 1;
1366 uint64_t pci_wdis : 1;
1367 uint64_t ins0_64b : 1;
1368 uint64_t ins1_64b : 1;
1369 uint64_t ins2_64b : 1;
1370 uint64_t ins3_64b : 1;
1371 uint64_t ins0_enb : 1;
1372 uint64_t ins1_enb : 1;
1373 uint64_t ins2_enb : 1;
1374 uint64_t ins3_enb : 1;
1375 uint64_t out0_enb : 1;
1376 uint64_t out1_enb : 1;
1377 uint64_t out2_enb : 1;
1378 uint64_t out3_enb : 1;
1379 uint64_t dis_pniw : 1;
1380 uint64_t chip_rev : 8;
1381 uint64_t reserved_63_63 : 1;
1384 struct cvmx_npi_ctl_status_cn30xx {
1385 #ifdef __BIG_ENDIAN_BITFIELD
1386 uint64_t reserved_63_63 : 1;
1387 uint64_t chip_rev : 8; /**< The revision of the N3. */
1388 uint64_t dis_pniw : 1; /**< When asserted '1' access from the PNI Window
1389 Registers are disabled. */
1390 uint64_t reserved_51_53 : 3;
1391 uint64_t out0_enb : 1; /**< When asserted '1' the output0 engine is enabled.
1392 After enabling the values of the associated
1393 Address and Size Register should not be changed. */
1394 uint64_t reserved_47_49 : 3;
1395 uint64_t ins0_enb : 1; /**< When asserted '1' the gather0 engine is enabled.
1396 After enabling the values of the associated
1397 Address and Size Register should not be changed. */
1398 uint64_t reserved_43_45 : 3;
1399 uint64_t ins0_64b : 1; /**< When asserted '1' the instructions read by the
1400 gather0 engine are 64-Byte instructions, when
1401 de-asserted '0' instructions are 32-byte. */
1402 uint64_t pci_wdis : 1; /**< When set '1' disables access to registers in
1403 PNI address range 0x1000 - 0x17FF from the PCI. */
1404 uint64_t wait_com : 1; /**< When set '1' casues the NPI to wait for a commit
1405 from the L2C before sending additional access to
1406 the L2C from the PCI. */
1407 uint64_t reserved_37_39 : 3;
1408 uint64_t max_word : 5; /**< The maximum number of words to merge into a single
1409 write operation from the PPs to the PCI. Legal
1410 values are 1 to 32, where a '0' is treated as 32. */
1411 uint64_t reserved_10_31 : 22;
1412 uint64_t timer : 10; /**< When the NPI starts a PP to PCI write it will wait
1413 no longer than the value of TIMER in eclks to
1414 merge additional writes from the PPs into 1
1415 large write. The values for this field is 1 to
1416 1024 where a value of '0' is treated as 1024. */
1418 uint64_t timer : 10;
1419 uint64_t reserved_10_31 : 22;
1420 uint64_t max_word : 5;
1421 uint64_t reserved_37_39 : 3;
1422 uint64_t wait_com : 1;
1423 uint64_t pci_wdis : 1;
1424 uint64_t ins0_64b : 1;
1425 uint64_t reserved_43_45 : 3;
1426 uint64_t ins0_enb : 1;
1427 uint64_t reserved_47_49 : 3;
1428 uint64_t out0_enb : 1;
1429 uint64_t reserved_51_53 : 3;
1430 uint64_t dis_pniw : 1;
1431 uint64_t chip_rev : 8;
1432 uint64_t reserved_63_63 : 1;
1435 struct cvmx_npi_ctl_status_cn31xx {
1436 #ifdef __BIG_ENDIAN_BITFIELD
1437 uint64_t reserved_63_63 : 1;
1438 uint64_t chip_rev : 8; /**< The revision of the N3.
1439 0 => pass1.x, 1 => 2.0 */
1440 uint64_t dis_pniw : 1; /**< When asserted '1' access from the PNI Window
1441 Registers are disabled. */
1442 uint64_t reserved_52_53 : 2;
1443 uint64_t out1_enb : 1; /**< When asserted '1' the output1 engine is enabled.
1444 After enabling the values of the associated
1445 Address and Size Register should not be changed. */
1446 uint64_t out0_enb : 1; /**< When asserted '1' the output0 engine is enabled.
1447 After enabling the values of the associated
1448 Address and Size Register should not be changed. */
1449 uint64_t reserved_48_49 : 2;
1450 uint64_t ins1_enb : 1; /**< When asserted '1' the gather1 engine is enabled.
1451 After enabling the values of the associated
1452 Address and Size Register should not be changed. */
1453 uint64_t ins0_enb : 1; /**< When asserted '1' the gather0 engine is enabled.
1454 After enabling the values of the associated
1455 Address and Size Register should not be changed. */
1456 uint64_t reserved_44_45 : 2;
1457 uint64_t ins1_64b : 1; /**< When asserted '1' the instructions read by the
1458 gather1 engine are 64-Byte instructions, when
1459 de-asserted '0' instructions are 32-byte. */
1460 uint64_t ins0_64b : 1; /**< When asserted '1' the instructions read by the
1461 gather0 engine are 64-Byte instructions, when
1462 de-asserted '0' instructions are 32-byte. */
1463 uint64_t pci_wdis : 1; /**< When set '1' disables access to registers in
1464 PNI address range 0x1000 - 0x17FF from the PCI. */
1465 uint64_t wait_com : 1; /**< When set '1' casues the NPI to wait for a commit
1466 from the L2C before sending additional access to
1467 the L2C from the PCI. */
1468 uint64_t reserved_37_39 : 3;
1469 uint64_t max_word : 5; /**< The maximum number of words to merge into a single
1470 write operation from the PPs to the PCI. Legal
1471 values are 1 to 32, where a '0' is treated as 32. */
1472 uint64_t reserved_10_31 : 22;
1473 uint64_t timer : 10; /**< When the NPI starts a PP to PCI write it will wait
1474 no longer than the value of TIMER in eclks to
1475 merge additional writes from the PPs into 1
1476 large write. The values for this field is 1 to
1477 1024 where a value of '0' is treated as 1024. */
1479 uint64_t timer : 10;
1480 uint64_t reserved_10_31 : 22;
1481 uint64_t max_word : 5;
1482 uint64_t reserved_37_39 : 3;
1483 uint64_t wait_com : 1;
1484 uint64_t pci_wdis : 1;
1485 uint64_t ins0_64b : 1;
1486 uint64_t ins1_64b : 1;
1487 uint64_t reserved_44_45 : 2;
1488 uint64_t ins0_enb : 1;
1489 uint64_t ins1_enb : 1;
1490 uint64_t reserved_48_49 : 2;
1491 uint64_t out0_enb : 1;
1492 uint64_t out1_enb : 1;
1493 uint64_t reserved_52_53 : 2;
1494 uint64_t dis_pniw : 1;
1495 uint64_t chip_rev : 8;
1496 uint64_t reserved_63_63 : 1;
1499 struct cvmx_npi_ctl_status_s cn38xx;
1500 struct cvmx_npi_ctl_status_s cn38xxp2;
1501 struct cvmx_npi_ctl_status_cn31xx cn50xx;
1502 struct cvmx_npi_ctl_status_s cn58xx;
1503 struct cvmx_npi_ctl_status_s cn58xxp1;
1505 typedef union cvmx_npi_ctl_status cvmx_npi_ctl_status_t;
1508 * cvmx_npi_dbg_select
1510 * NPI_DBG_SELECT = Debug Select Register
1512 * Contains the debug select value in last written to the RSLs.
1514 union cvmx_npi_dbg_select {
1516 struct cvmx_npi_dbg_select_s {
1517 #ifdef __BIG_ENDIAN_BITFIELD
1518 uint64_t reserved_16_63 : 48;
1519 uint64_t dbg_sel : 16; /**< When this register is written its value is sent to
1522 uint64_t dbg_sel : 16;
1523 uint64_t reserved_16_63 : 48;
1526 struct cvmx_npi_dbg_select_s cn30xx;
1527 struct cvmx_npi_dbg_select_s cn31xx;
1528 struct cvmx_npi_dbg_select_s cn38xx;
1529 struct cvmx_npi_dbg_select_s cn38xxp2;
1530 struct cvmx_npi_dbg_select_s cn50xx;
1531 struct cvmx_npi_dbg_select_s cn58xx;
1532 struct cvmx_npi_dbg_select_s cn58xxp1;
1534 typedef union cvmx_npi_dbg_select cvmx_npi_dbg_select_t;
1537 * cvmx_npi_dma_control
1539 * NPI_DMA_CONTROL = DMA Control Register
1541 * Controls operation of the DMA IN/OUT of the NPI.
1543 union cvmx_npi_dma_control {
1545 struct cvmx_npi_dma_control_s {
1546 #ifdef __BIG_ENDIAN_BITFIELD
1547 uint64_t reserved_36_63 : 28;
1548 uint64_t b0_lend : 1; /**< When set '1' and the NPI is in the mode to write
1549 0 to L2C memory when a DMA is done, the address
1550 to be written to will be treated as a Little
1551 Endian address. This field is new to PASS-2. */
1552 uint64_t dwb_denb : 1; /**< When set '1' the NPI will send a value in the DWB
1553 field for a free page operation for the memory
1554 that contained the data in N3. */
1555 uint64_t dwb_ichk : 9; /**< When Instruction Chunks for DMA operations are freed
1556 this value is used for the DWB field of the
1558 uint64_t fpa_que : 3; /**< The FPA queue that the instruction-chunk page will
1559 be returned to when used. */
1560 uint64_t o_add1 : 1; /**< When set '1' 1 will be added to the DMA counters,
1561 if '0' then the number of bytes in the dma transfer
1562 will be added to the count register. */
1563 uint64_t o_ro : 1; /**< Relaxed Ordering Mode for DMA. */
1564 uint64_t o_ns : 1; /**< Nosnoop For DMA. */
1565 uint64_t o_es : 2; /**< Endian Swap Mode for DMA. */
1566 uint64_t o_mode : 1; /**< Select PCI_POINTER MODE to be used.
1567 '1' use pointer values for address and register
1568 values for RO, ES, and NS, '0' use register
1569 values for address and pointer values for
1571 uint64_t hp_enb : 1; /**< Enables the High Priority DMA.
1572 While this bit is disabled '0' then the value
1573 in the NPI_HIGHP_IBUFF_SADDR is re-loaded to the
1574 starting address of the High Priority DMA engine.
1575 CSIZE field will be reloaded, for the High Priority
1577 uint64_t lp_enb : 1; /**< Enables the Low Priority DMA.
1578 While this bit is disabled '0' then the value
1579 in the NPI_LOWP_IBUFF_SADDR is re-loaded to the
1580 starting address of the Low Priority DMA engine.
1581 PASS-2: When this bit is '0' the value in the
1582 CSIZE field will be reloaded, for the Low Priority
1584 uint64_t csize : 14; /**< The size in words of the DMA Instruction Chunk.
1585 This value should only be written once. After
1586 writing this value a new value will not be
1587 recognized until the end of the DMA I-Chunk is
1590 uint64_t csize : 14;
1591 uint64_t lp_enb : 1;
1592 uint64_t hp_enb : 1;
1593 uint64_t o_mode : 1;
1597 uint64_t o_add1 : 1;
1598 uint64_t fpa_que : 3;
1599 uint64_t dwb_ichk : 9;
1600 uint64_t dwb_denb : 1;
1601 uint64_t b0_lend : 1;
1602 uint64_t reserved_36_63 : 28;
1605 struct cvmx_npi_dma_control_s cn30xx;
1606 struct cvmx_npi_dma_control_s cn31xx;
1607 struct cvmx_npi_dma_control_s cn38xx;
1608 struct cvmx_npi_dma_control_s cn38xxp2;
1609 struct cvmx_npi_dma_control_s cn50xx;
1610 struct cvmx_npi_dma_control_s cn58xx;
1611 struct cvmx_npi_dma_control_s cn58xxp1;
1613 typedef union cvmx_npi_dma_control cvmx_npi_dma_control_t;
1616 * cvmx_npi_dma_highp_counts
1618 * NPI_DMA_HIGHP_COUNTS = NPI's High Priority DMA Counts
1620 * Values for determing the number of instructions for High Priority DMA in the NPI.
1622 union cvmx_npi_dma_highp_counts {
1624 struct cvmx_npi_dma_highp_counts_s {
1625 #ifdef __BIG_ENDIAN_BITFIELD
1626 uint64_t reserved_39_63 : 25;
1627 uint64_t fcnt : 7; /**< Number of words in the Instruction FIFO. */
1628 uint64_t dbell : 32; /**< Number of available words of Instructions to read. */
1630 uint64_t dbell : 32;
1632 uint64_t reserved_39_63 : 25;
1635 struct cvmx_npi_dma_highp_counts_s cn30xx;
1636 struct cvmx_npi_dma_highp_counts_s cn31xx;
1637 struct cvmx_npi_dma_highp_counts_s cn38xx;
1638 struct cvmx_npi_dma_highp_counts_s cn38xxp2;
1639 struct cvmx_npi_dma_highp_counts_s cn50xx;
1640 struct cvmx_npi_dma_highp_counts_s cn58xx;
1641 struct cvmx_npi_dma_highp_counts_s cn58xxp1;
1643 typedef union cvmx_npi_dma_highp_counts cvmx_npi_dma_highp_counts_t;
1646 * cvmx_npi_dma_highp_naddr
1648 * NPI_DMA_HIGHP_NADDR = NPI's High Priority DMA Next Ichunk Address
1650 * Place NPI will read the next Ichunk data from. This is valid when state is 0
1652 union cvmx_npi_dma_highp_naddr {
1654 struct cvmx_npi_dma_highp_naddr_s {
1655 #ifdef __BIG_ENDIAN_BITFIELD
1656 uint64_t reserved_40_63 : 24;
1657 uint64_t state : 4; /**< The DMA instruction engine state vector.
1658 Typical value is 0 (IDLE). */
1659 uint64_t addr : 36; /**< The next L2C address to read DMA instructions
1660 from for the High Priority DMA engine. */
1664 uint64_t reserved_40_63 : 24;
1667 struct cvmx_npi_dma_highp_naddr_s cn30xx;
1668 struct cvmx_npi_dma_highp_naddr_s cn31xx;
1669 struct cvmx_npi_dma_highp_naddr_s cn38xx;
1670 struct cvmx_npi_dma_highp_naddr_s cn38xxp2;
1671 struct cvmx_npi_dma_highp_naddr_s cn50xx;
1672 struct cvmx_npi_dma_highp_naddr_s cn58xx;
1673 struct cvmx_npi_dma_highp_naddr_s cn58xxp1;
1675 typedef union cvmx_npi_dma_highp_naddr cvmx_npi_dma_highp_naddr_t;
1678 * cvmx_npi_dma_lowp_counts
1680 * NPI_DMA_LOWP_COUNTS = NPI's Low Priority DMA Counts
1682 * Values for determing the number of instructions for Low Priority DMA in the NPI.
1684 union cvmx_npi_dma_lowp_counts {
1686 struct cvmx_npi_dma_lowp_counts_s {
1687 #ifdef __BIG_ENDIAN_BITFIELD
1688 uint64_t reserved_39_63 : 25;
1689 uint64_t fcnt : 7; /**< Number of words in the Instruction FIFO. */
1690 uint64_t dbell : 32; /**< Number of available words of Instructions to read. */
1692 uint64_t dbell : 32;
1694 uint64_t reserved_39_63 : 25;
1697 struct cvmx_npi_dma_lowp_counts_s cn30xx;
1698 struct cvmx_npi_dma_lowp_counts_s cn31xx;
1699 struct cvmx_npi_dma_lowp_counts_s cn38xx;
1700 struct cvmx_npi_dma_lowp_counts_s cn38xxp2;
1701 struct cvmx_npi_dma_lowp_counts_s cn50xx;
1702 struct cvmx_npi_dma_lowp_counts_s cn58xx;
1703 struct cvmx_npi_dma_lowp_counts_s cn58xxp1;
1705 typedef union cvmx_npi_dma_lowp_counts cvmx_npi_dma_lowp_counts_t;
1708 * cvmx_npi_dma_lowp_naddr
1710 * NPI_DMA_LOWP_NADDR = NPI's Low Priority DMA Next Ichunk Address
1712 * Place NPI will read the next Ichunk data from. This is valid when state is 0
1714 union cvmx_npi_dma_lowp_naddr {
1716 struct cvmx_npi_dma_lowp_naddr_s {
1717 #ifdef __BIG_ENDIAN_BITFIELD
1718 uint64_t reserved_40_63 : 24;
1719 uint64_t state : 4; /**< The DMA instruction engine state vector.
1720 Typical value is 0 (IDLE). */
1721 uint64_t addr : 36; /**< The next L2C address to read DMA instructions
1722 from for the Low Priority DMA engine. */
1726 uint64_t reserved_40_63 : 24;
1729 struct cvmx_npi_dma_lowp_naddr_s cn30xx;
1730 struct cvmx_npi_dma_lowp_naddr_s cn31xx;
1731 struct cvmx_npi_dma_lowp_naddr_s cn38xx;
1732 struct cvmx_npi_dma_lowp_naddr_s cn38xxp2;
1733 struct cvmx_npi_dma_lowp_naddr_s cn50xx;
1734 struct cvmx_npi_dma_lowp_naddr_s cn58xx;
1735 struct cvmx_npi_dma_lowp_naddr_s cn58xxp1;
1737 typedef union cvmx_npi_dma_lowp_naddr cvmx_npi_dma_lowp_naddr_t;
1740 * cvmx_npi_highp_dbell
1742 * NPI_HIGHP_DBELL = High Priority Door Bell
1744 * The door bell register for the high priority DMA queue.
1746 union cvmx_npi_highp_dbell {
1748 struct cvmx_npi_highp_dbell_s {
1749 #ifdef __BIG_ENDIAN_BITFIELD
1750 uint64_t reserved_16_63 : 48;
1751 uint64_t dbell : 16; /**< The value written to this register is added to the
1752 number of 8byte words to be read and processes for
1753 the high priority dma queue. */
1755 uint64_t dbell : 16;
1756 uint64_t reserved_16_63 : 48;
1759 struct cvmx_npi_highp_dbell_s cn30xx;
1760 struct cvmx_npi_highp_dbell_s cn31xx;
1761 struct cvmx_npi_highp_dbell_s cn38xx;
1762 struct cvmx_npi_highp_dbell_s cn38xxp2;
1763 struct cvmx_npi_highp_dbell_s cn50xx;
1764 struct cvmx_npi_highp_dbell_s cn58xx;
1765 struct cvmx_npi_highp_dbell_s cn58xxp1;
1767 typedef union cvmx_npi_highp_dbell cvmx_npi_highp_dbell_t;
1770 * cvmx_npi_highp_ibuff_saddr
1772 * NPI_HIGHP_IBUFF_SADDR = DMA High Priority Instruction Buffer Starting Address
1774 * The address to start reading Instructions from for HIGHP.
1776 union cvmx_npi_highp_ibuff_saddr {
1778 struct cvmx_npi_highp_ibuff_saddr_s {
1779 #ifdef __BIG_ENDIAN_BITFIELD
1780 uint64_t reserved_36_63 : 28;
1781 uint64_t saddr : 36; /**< The starting address to read the first instruction. */
1783 uint64_t saddr : 36;
1784 uint64_t reserved_36_63 : 28;
1787 struct cvmx_npi_highp_ibuff_saddr_s cn30xx;
1788 struct cvmx_npi_highp_ibuff_saddr_s cn31xx;
1789 struct cvmx_npi_highp_ibuff_saddr_s cn38xx;
1790 struct cvmx_npi_highp_ibuff_saddr_s cn38xxp2;
1791 struct cvmx_npi_highp_ibuff_saddr_s cn50xx;
1792 struct cvmx_npi_highp_ibuff_saddr_s cn58xx;
1793 struct cvmx_npi_highp_ibuff_saddr_s cn58xxp1;
1795 typedef union cvmx_npi_highp_ibuff_saddr cvmx_npi_highp_ibuff_saddr_t;
1798 * cvmx_npi_input_control
1800 * NPI_INPUT_CONTROL = NPI's Input Control Register
1802 * Control for reads for gather list and instructions.
1804 union cvmx_npi_input_control {
1806 struct cvmx_npi_input_control_s {
1807 #ifdef __BIG_ENDIAN_BITFIELD
1808 uint64_t reserved_23_63 : 41;
1809 uint64_t pkt_rr : 1; /**< When set '1' the input packet selection will be
1810 made with a Round Robin arbitration. When '0'
1811 the input packet port is fixed in priority,
1812 where the lower port number has higher priority.
1814 uint64_t pbp_dhi : 13; /**< Field when in [PBP] is set to be used in
1815 calculating a DPTR. */
1816 uint64_t d_nsr : 1; /**< Enables '1' NoSnoop for reading of
1818 uint64_t d_esr : 2; /**< The Endian-Swap-Mode for reading of
1820 uint64_t d_ror : 1; /**< Enables '1' Relaxed Ordering for reading of
1822 uint64_t use_csr : 1; /**< When set '1' the csr value will be used for
1823 ROR, ESR, and NSR. When clear '0' the value in
1824 DPTR will be used. In turn the bits not used for
1825 ROR, ESR, and NSR, will be used for bits [63:60]
1826 of the address used to fetch packet data. */
1827 uint64_t nsr : 1; /**< Enables '1' NoSnoop for reading of
1828 gather list and gather instruction. */
1829 uint64_t esr : 2; /**< The Endian-Swap-Mode for reading of
1830 gather list and gather instruction. */
1831 uint64_t ror : 1; /**< Enables '1' Relaxed Ordering for reading of
1832 gather list and gather instruction. */
1837 uint64_t use_csr : 1;
1841 uint64_t pbp_dhi : 13;
1842 uint64_t pkt_rr : 1;
1843 uint64_t reserved_23_63 : 41;
1846 struct cvmx_npi_input_control_cn30xx {
1847 #ifdef __BIG_ENDIAN_BITFIELD
1848 uint64_t reserved_22_63 : 42;
1849 uint64_t pbp_dhi : 13; /**< Field when in [PBP] is set to be used in
1850 calculating a DPTR. */
1851 uint64_t d_nsr : 1; /**< Enables '1' NoSnoop for reading of
1853 uint64_t d_esr : 2; /**< The Endian-Swap-Mode for reading of
1855 uint64_t d_ror : 1; /**< Enables '1' Relaxed Ordering for reading of
1857 uint64_t use_csr : 1; /**< When set '1' the csr value will be used for
1858 ROR, ESR, and NSR. When clear '0' the value in
1859 DPTR will be used. In turn the bits not used for
1860 ROR, ESR, and NSR, will be used for bits [63:60]
1861 of the address used to fetch packet data. */
1862 uint64_t nsr : 1; /**< Enables '1' NoSnoop for reading of
1863 gather list and gather instruction. */
1864 uint64_t esr : 2; /**< The Endian-Swap-Mode for reading of
1865 gather list and gather instruction. */
1866 uint64_t ror : 1; /**< Enables '1' Relaxed Ordering for reading of
1867 gather list and gather instruction. */
1872 uint64_t use_csr : 1;
1876 uint64_t pbp_dhi : 13;
1877 uint64_t reserved_22_63 : 42;
1880 struct cvmx_npi_input_control_cn30xx cn31xx;
1881 struct cvmx_npi_input_control_s cn38xx;
1882 struct cvmx_npi_input_control_cn30xx cn38xxp2;
1883 struct cvmx_npi_input_control_s cn50xx;
1884 struct cvmx_npi_input_control_s cn58xx;
1885 struct cvmx_npi_input_control_s cn58xxp1;
1887 typedef union cvmx_npi_input_control cvmx_npi_input_control_t;
1892 * NPI_INTERRUPT_ENB = NPI's Interrupt Enable Register
1894 * Used to enable the various interrupting conditions of NPI
1896 union cvmx_npi_int_enb {
1898 struct cvmx_npi_int_enb_s {
1899 #ifdef __BIG_ENDIAN_BITFIELD
1900 uint64_t reserved_62_63 : 2;
1901 uint64_t q1_a_f : 1; /**< Enables NPI_INT_SUM[Q1_A_F] to generate an
1903 uint64_t q1_s_e : 1; /**< Enables NPI_INT_SUM[Q1_S_E] to generate an
1905 uint64_t pdf_p_f : 1; /**< Enables NPI_INT_SUM[PDF_P_F] to generate an
1907 uint64_t pdf_p_e : 1; /**< Enables NPI_INT_SUM[PDF_P_E] to generate an
1909 uint64_t pcf_p_f : 1; /**< Enables NPI_INT_SUM[PCF_P_F] to generate an
1911 uint64_t pcf_p_e : 1; /**< Enables NPI_INT_SUM[PCF_P_E] to generate an
1913 uint64_t rdx_s_e : 1; /**< Enables NPI_INT_SUM[RDX_S_E] to generate an
1915 uint64_t rwx_s_e : 1; /**< Enables NPI_INT_SUM[RWX_S_E] to generate an
1917 uint64_t pnc_a_f : 1; /**< Enables NPI_INT_SUM[PNC_A_F] to generate an
1919 uint64_t pnc_s_e : 1; /**< Enables NPI_INT_SUM[PNC_S_E] to generate an
1921 uint64_t com_a_f : 1; /**< Enables NPI_INT_SUM[COM_A_F] to generate an
1923 uint64_t com_s_e : 1; /**< Enables NPI_INT_SUM[COM_S_E] to generate an
1925 uint64_t q3_a_f : 1; /**< Enables NPI_INT_SUM[Q3_A_F] to generate an
1927 uint64_t q3_s_e : 1; /**< Enables NPI_INT_SUM[Q3_S_E] to generate an
1929 uint64_t q2_a_f : 1; /**< Enables NPI_INT_SUM[Q2_A_F] to generate an
1931 uint64_t q2_s_e : 1; /**< Enables NPI_INT_SUM[Q2_S_E] to generate an
1933 uint64_t pcr_a_f : 1; /**< Enables NPI_INT_SUM[PCR_A_F] to generate an
1935 uint64_t pcr_s_e : 1; /**< Enables NPI_INT_SUM[PCR_S_E] to generate an
1937 uint64_t fcr_a_f : 1; /**< Enables NPI_INT_SUM[FCR_A_F] to generate an
1939 uint64_t fcr_s_e : 1; /**< Enables NPI_INT_SUM[FCR_S_E] to generate an
1941 uint64_t iobdma : 1; /**< Enables NPI_INT_SUM[IOBDMA] to generate an
1943 uint64_t p_dperr : 1; /**< Enables NPI_INT_SUM[P_DPERR] to generate an
1945 uint64_t win_rto : 1; /**< Enables NPI_INT_SUM[WIN_RTO] to generate an
1947 uint64_t i3_pperr : 1; /**< Enables NPI_INT_SUM[I3_PPERR] to generate an
1949 uint64_t i2_pperr : 1; /**< Enables NPI_INT_SUM[I2_PPERR] to generate an
1951 uint64_t i1_pperr : 1; /**< Enables NPI_INT_SUM[I1_PPERR] to generate an
1953 uint64_t i0_pperr : 1; /**< Enables NPI_INT_SUM[I0_PPERR] to generate an
1955 uint64_t p3_ptout : 1; /**< Enables NPI_INT_SUM[P3_PTOUT] to generate an
1957 uint64_t p2_ptout : 1; /**< Enables NPI_INT_SUM[P2_PTOUT] to generate an
1959 uint64_t p1_ptout : 1; /**< Enables NPI_INT_SUM[P1_PTOUT] to generate an
1961 uint64_t p0_ptout : 1; /**< Enables NPI_INT_SUM[P0_PTOUT] to generate an
1963 uint64_t p3_pperr : 1; /**< Enables NPI_INT_SUM[P3_PPERR] to generate an
1965 uint64_t p2_pperr : 1; /**< Enables NPI_INT_SUM[P2_PPERR] to generate an
1967 uint64_t p1_pperr : 1; /**< Enables NPI_INT_SUM[P1_PPERR] to generate an
1969 uint64_t p0_pperr : 1; /**< Enables NPI_INT_SUM[P0_PPERR] to generate an
1971 uint64_t g3_rtout : 1; /**< Enables NPI_INT_SUM[G3_RTOUT] to generate an
1973 uint64_t g2_rtout : 1; /**< Enables NPI_INT_SUM[G2_RTOUT] to generate an
1975 uint64_t g1_rtout : 1; /**< Enables NPI_INT_SUM[G1_RTOUT] to generate an
1977 uint64_t g0_rtout : 1; /**< Enables NPI_INT_SUM[G0_RTOUT] to generate an
1979 uint64_t p3_perr : 1; /**< Enables NPI_INT_SUM[P3_PERR] to generate an
1981 uint64_t p2_perr : 1; /**< Enables NPI_INT_SUM[P2_PERR] to generate an
1983 uint64_t p1_perr : 1; /**< Enables NPI_INT_SUM[P1_PERR] to generate an
1985 uint64_t p0_perr : 1; /**< Enables NPI_INT_SUM[P0_PERR] to generate an
1987 uint64_t p3_rtout : 1; /**< Enables NPI_INT_SUM[P3_RTOUT] to generate an
1989 uint64_t p2_rtout : 1; /**< Enables NPI_INT_SUM[P2_RTOUT] to generate an
1991 uint64_t p1_rtout : 1; /**< Enables NPI_INT_SUM[P1_RTOUT] to generate an
1993 uint64_t p0_rtout : 1; /**< Enables NPI_INT_SUM[P0_RTOUT] to generate an
1995 uint64_t i3_overf : 1; /**< Enables NPI_INT_SUM[I3_OVERF] to generate an
1997 uint64_t i2_overf : 1; /**< Enables NPI_INT_SUM[I2_OVERF] to generate an
1999 uint64_t i1_overf : 1; /**< Enables NPI_INT_SUM[I1_OVERF] to generate an
2001 uint64_t i0_overf : 1; /**< Enables NPI_INT_SUM[I0_OVERF] to generate an
2003 uint64_t i3_rtout : 1; /**< Enables NPI_INT_SUM[I3_RTOUT] to generate an
2005 uint64_t i2_rtout : 1; /**< Enables NPI_INT_SUM[I2_RTOUT] to generate an
2007 uint64_t i1_rtout : 1; /**< Enables NPI_INT_SUM[I1_RTOUT] to generate an
2009 uint64_t i0_rtout : 1; /**< Enables NPI_INT_SUM[I0_RTOUT] to generate an
2011 uint64_t po3_2sml : 1; /**< Enables NPI_INT_SUM[PO3_2SML] to generate an
2013 uint64_t po2_2sml : 1; /**< Enables NPI_INT_SUM[PO2_2SML] to generate an
2015 uint64_t po1_2sml : 1; /**< Enables NPI_INT_SUM[PO1_2SML] to generate an
2017 uint64_t po0_2sml : 1; /**< Enables NPI_INT_SUM[PO0_2SML] to generate an
2019 uint64_t pci_rsl : 1; /**< Enables NPI_INT_SUM[PCI_RSL] to generate an
2021 uint64_t rml_wto : 1; /**< Enables NPI_INT_SUM[RML_WTO] to generate an
2023 uint64_t rml_rto : 1; /**< Enables NPI_INT_SUM[RML_RTO] to generate an
2026 uint64_t rml_rto : 1;
2027 uint64_t rml_wto : 1;
2028 uint64_t pci_rsl : 1;
2029 uint64_t po0_2sml : 1;
2030 uint64_t po1_2sml : 1;
2031 uint64_t po2_2sml : 1;
2032 uint64_t po3_2sml : 1;
2033 uint64_t i0_rtout : 1;
2034 uint64_t i1_rtout : 1;
2035 uint64_t i2_rtout : 1;
2036 uint64_t i3_rtout : 1;
2037 uint64_t i0_overf : 1;
2038 uint64_t i1_overf : 1;
2039 uint64_t i2_overf : 1;
2040 uint64_t i3_overf : 1;
2041 uint64_t p0_rtout : 1;
2042 uint64_t p1_rtout : 1;
2043 uint64_t p2_rtout : 1;
2044 uint64_t p3_rtout : 1;
2045 uint64_t p0_perr : 1;
2046 uint64_t p1_perr : 1;
2047 uint64_t p2_perr : 1;
2048 uint64_t p3_perr : 1;
2049 uint64_t g0_rtout : 1;
2050 uint64_t g1_rtout : 1;
2051 uint64_t g2_rtout : 1;
2052 uint64_t g3_rtout : 1;
2053 uint64_t p0_pperr : 1;
2054 uint64_t p1_pperr : 1;
2055 uint64_t p2_pperr : 1;
2056 uint64_t p3_pperr : 1;
2057 uint64_t p0_ptout : 1;
2058 uint64_t p1_ptout : 1;
2059 uint64_t p2_ptout : 1;
2060 uint64_t p3_ptout : 1;
2061 uint64_t i0_pperr : 1;
2062 uint64_t i1_pperr : 1;
2063 uint64_t i2_pperr : 1;
2064 uint64_t i3_pperr : 1;
2065 uint64_t win_rto : 1;
2066 uint64_t p_dperr : 1;
2067 uint64_t iobdma : 1;
2068 uint64_t fcr_s_e : 1;
2069 uint64_t fcr_a_f : 1;
2070 uint64_t pcr_s_e : 1;
2071 uint64_t pcr_a_f : 1;
2072 uint64_t q2_s_e : 1;
2073 uint64_t q2_a_f : 1;
2074 uint64_t q3_s_e : 1;
2075 uint64_t q3_a_f : 1;
2076 uint64_t com_s_e : 1;
2077 uint64_t com_a_f : 1;
2078 uint64_t pnc_s_e : 1;
2079 uint64_t pnc_a_f : 1;
2080 uint64_t rwx_s_e : 1;
2081 uint64_t rdx_s_e : 1;
2082 uint64_t pcf_p_e : 1;
2083 uint64_t pcf_p_f : 1;
2084 uint64_t pdf_p_e : 1;
2085 uint64_t pdf_p_f : 1;
2086 uint64_t q1_s_e : 1;
2087 uint64_t q1_a_f : 1;
2088 uint64_t reserved_62_63 : 2;
2091 struct cvmx_npi_int_enb_cn30xx {
2092 #ifdef __BIG_ENDIAN_BITFIELD
2093 uint64_t reserved_62_63 : 2;
2094 uint64_t q1_a_f : 1; /**< Enables NPI_INT_SUM[Q1_A_F] to generate an
2096 uint64_t q1_s_e : 1; /**< Enables NPI_INT_SUM[Q1_S_E] to generate an
2098 uint64_t pdf_p_f : 1; /**< Enables NPI_INT_SUM[PDF_P_F] to generate an
2100 uint64_t pdf_p_e : 1; /**< Enables NPI_INT_SUM[PDF_P_E] to generate an
2102 uint64_t pcf_p_f : 1; /**< Enables NPI_INT_SUM[PCF_P_F] to generate an
2104 uint64_t pcf_p_e : 1; /**< Enables NPI_INT_SUM[PCF_P_E] to generate an
2106 uint64_t rdx_s_e : 1; /**< Enables NPI_INT_SUM[RDX_S_E] to generate an
2108 uint64_t rwx_s_e : 1; /**< Enables NPI_INT_SUM[RWX_S_E] to generate an
2110 uint64_t pnc_a_f : 1; /**< Enables NPI_INT_SUM[PNC_A_F] to generate an
2112 uint64_t pnc_s_e : 1; /**< Enables NPI_INT_SUM[PNC_S_E] to generate an
2114 uint64_t com_a_f : 1; /**< Enables NPI_INT_SUM[COM_A_F] to generate an
2116 uint64_t com_s_e : 1; /**< Enables NPI_INT_SUM[COM_S_E] to generate an
2118 uint64_t q3_a_f : 1; /**< Enables NPI_INT_SUM[Q3_A_F] to generate an
2120 uint64_t q3_s_e : 1; /**< Enables NPI_INT_SUM[Q3_S_E] to generate an
2122 uint64_t q2_a_f : 1; /**< Enables NPI_INT_SUM[Q2_A_F] to generate an
2124 uint64_t q2_s_e : 1; /**< Enables NPI_INT_SUM[Q2_S_E] to generate an
2126 uint64_t pcr_a_f : 1; /**< Enables NPI_INT_SUM[PCR_A_F] to generate an
2128 uint64_t pcr_s_e : 1; /**< Enables NPI_INT_SUM[PCR_S_E] to generate an
2130 uint64_t fcr_a_f : 1; /**< Enables NPI_INT_SUM[FCR_A_F] to generate an
2132 uint64_t fcr_s_e : 1; /**< Enables NPI_INT_SUM[FCR_S_E] to generate an
2134 uint64_t iobdma : 1; /**< Enables NPI_INT_SUM[IOBDMA] to generate an
2136 uint64_t p_dperr : 1; /**< Enables NPI_INT_SUM[P_DPERR] to generate an
2138 uint64_t win_rto : 1; /**< Enables NPI_INT_SUM[WIN_RTO] to generate an
2140 uint64_t reserved_36_38 : 3;
2141 uint64_t i0_pperr : 1; /**< Enables NPI_INT_SUM[I0_PPERR] to generate an
2143 uint64_t reserved_32_34 : 3;
2144 uint64_t p0_ptout : 1; /**< Enables NPI_INT_SUM[P0_PTOUT] to generate an
2146 uint64_t reserved_28_30 : 3;
2147 uint64_t p0_pperr : 1; /**< Enables NPI_INT_SUM[P0_PPERR] to generate an
2149 uint64_t reserved_24_26 : 3;
2150 uint64_t g0_rtout : 1; /**< Enables NPI_INT_SUM[G0_RTOUT] to generate an
2152 uint64_t reserved_20_22 : 3;
2153 uint64_t p0_perr : 1; /**< Enables NPI_INT_SUM[P0_PERR] to generate an
2155 uint64_t reserved_16_18 : 3;
2156 uint64_t p0_rtout : 1; /**< Enables NPI_INT_SUM[P0_RTOUT] to generate an
2158 uint64_t reserved_12_14 : 3;
2159 uint64_t i0_overf : 1; /**< Enables NPI_INT_SUM[I0_OVERF] to generate an
2161 uint64_t reserved_8_10 : 3;
2162 uint64_t i0_rtout : 1; /**< Enables NPI_INT_SUM[I0_RTOUT] to generate an
2164 uint64_t reserved_4_6 : 3;
2165 uint64_t po0_2sml : 1; /**< Enables NPI_INT_SUM[PO0_2SML] to generate an
2167 uint64_t pci_rsl : 1; /**< Enables NPI_INT_SUM[PCI_RSL] to generate an
2169 uint64_t rml_wto : 1; /**< Enables NPI_INT_SUM[RML_WTO] to generate an
2171 uint64_t rml_rto : 1; /**< Enables NPI_INT_SUM[RML_RTO] to generate an
2174 uint64_t rml_rto : 1;
2175 uint64_t rml_wto : 1;
2176 uint64_t pci_rsl : 1;
2177 uint64_t po0_2sml : 1;
2178 uint64_t reserved_4_6 : 3;
2179 uint64_t i0_rtout : 1;
2180 uint64_t reserved_8_10 : 3;
2181 uint64_t i0_overf : 1;
2182 uint64_t reserved_12_14 : 3;
2183 uint64_t p0_rtout : 1;
2184 uint64_t reserved_16_18 : 3;
2185 uint64_t p0_perr : 1;
2186 uint64_t reserved_20_22 : 3;
2187 uint64_t g0_rtout : 1;
2188 uint64_t reserved_24_26 : 3;
2189 uint64_t p0_pperr : 1;
2190 uint64_t reserved_28_30 : 3;
2191 uint64_t p0_ptout : 1;
2192 uint64_t reserved_32_34 : 3;
2193 uint64_t i0_pperr : 1;
2194 uint64_t reserved_36_38 : 3;
2195 uint64_t win_rto : 1;
2196 uint64_t p_dperr : 1;
2197 uint64_t iobdma : 1;
2198 uint64_t fcr_s_e : 1;
2199 uint64_t fcr_a_f : 1;
2200 uint64_t pcr_s_e : 1;
2201 uint64_t pcr_a_f : 1;
2202 uint64_t q2_s_e : 1;
2203 uint64_t q2_a_f : 1;
2204 uint64_t q3_s_e : 1;
2205 uint64_t q3_a_f : 1;
2206 uint64_t com_s_e : 1;
2207 uint64_t com_a_f : 1;
2208 uint64_t pnc_s_e : 1;
2209 uint64_t pnc_a_f : 1;
2210 uint64_t rwx_s_e : 1;
2211 uint64_t rdx_s_e : 1;
2212 uint64_t pcf_p_e : 1;
2213 uint64_t pcf_p_f : 1;
2214 uint64_t pdf_p_e : 1;
2215 uint64_t pdf_p_f : 1;
2216 uint64_t q1_s_e : 1;
2217 uint64_t q1_a_f : 1;
2218 uint64_t reserved_62_63 : 2;
2221 struct cvmx_npi_int_enb_cn31xx {
2222 #ifdef __BIG_ENDIAN_BITFIELD
2223 uint64_t reserved_62_63 : 2;
2224 uint64_t q1_a_f : 1; /**< Enables NPI_INT_SUM[Q1_A_F] to generate an
2226 uint64_t q1_s_e : 1; /**< Enables NPI_INT_SUM[Q1_S_E] to generate an
2228 uint64_t pdf_p_f : 1; /**< Enables NPI_INT_SUM[PDF_P_F] to generate an
2230 uint64_t pdf_p_e : 1; /**< Enables NPI_INT_SUM[PDF_P_E] to generate an
2232 uint64_t pcf_p_f : 1; /**< Enables NPI_INT_SUM[PCF_P_F] to generate an
2234 uint64_t pcf_p_e : 1; /**< Enables NPI_INT_SUM[PCF_P_E] to generate an
2236 uint64_t rdx_s_e : 1; /**< Enables NPI_INT_SUM[RDX_S_E] to generate an
2238 uint64_t rwx_s_e : 1; /**< Enables NPI_INT_SUM[RWX_S_E] to generate an
2240 uint64_t pnc_a_f : 1; /**< Enables NPI_INT_SUM[PNC_A_F] to generate an
2242 uint64_t pnc_s_e : 1; /**< Enables NPI_INT_SUM[PNC_S_E] to generate an
2244 uint64_t com_a_f : 1; /**< Enables NPI_INT_SUM[COM_A_F] to generate an
2246 uint64_t com_s_e : 1; /**< Enables NPI_INT_SUM[COM_S_E] to generate an
2248 uint64_t q3_a_f : 1; /**< Enables NPI_INT_SUM[Q3_A_F] to generate an
2250 uint64_t q3_s_e : 1; /**< Enables NPI_INT_SUM[Q3_S_E] to generate an
2252 uint64_t q2_a_f : 1; /**< Enables NPI_INT_SUM[Q2_A_F] to generate an
2254 uint64_t q2_s_e : 1; /**< Enables NPI_INT_SUM[Q2_S_E] to generate an
2256 uint64_t pcr_a_f : 1; /**< Enables NPI_INT_SUM[PCR_A_F] to generate an
2258 uint64_t pcr_s_e : 1; /**< Enables NPI_INT_SUM[PCR_S_E] to generate an
2260 uint64_t fcr_a_f : 1; /**< Enables NPI_INT_SUM[FCR_A_F] to generate an
2262 uint64_t fcr_s_e : 1; /**< Enables NPI_INT_SUM[FCR_S_E] to generate an
2264 uint64_t iobdma : 1; /**< Enables NPI_INT_SUM[IOBDMA] to generate an
2266 uint64_t p_dperr : 1; /**< Enables NPI_INT_SUM[P_DPERR] to generate an
2268 uint64_t win_rto : 1; /**< Enables NPI_INT_SUM[WIN_RTO] to generate an
2270 uint64_t reserved_37_38 : 2;
2271 uint64_t i1_pperr : 1; /**< Enables NPI_INT_SUM[I1_PPERR] to generate an
2273 uint64_t i0_pperr : 1; /**< Enables NPI_INT_SUM[I0_PPERR] to generate an
2275 uint64_t reserved_33_34 : 2;
2276 uint64_t p1_ptout : 1; /**< Enables NPI_INT_SUM[P1_PTOUT] to generate an
2278 uint64_t p0_ptout : 1; /**< Enables NPI_INT_SUM[P0_PTOUT] to generate an
2280 uint64_t reserved_29_30 : 2;
2281 uint64_t p1_pperr : 1; /**< Enables NPI_INT_SUM[P1_PPERR] to generate an
2283 uint64_t p0_pperr : 1; /**< Enables NPI_INT_SUM[P0_PPERR] to generate an
2285 uint64_t reserved_25_26 : 2;
2286 uint64_t g1_rtout : 1; /**< Enables NPI_INT_SUM[G1_RTOUT] to generate an
2288 uint64_t g0_rtout : 1; /**< Enables NPI_INT_SUM[G0_RTOUT] to generate an
2290 uint64_t reserved_21_22 : 2;
2291 uint64_t p1_perr : 1; /**< Enables NPI_INT_SUM[P1_PERR] to generate an
2293 uint64_t p0_perr : 1; /**< Enables NPI_INT_SUM[P0_PERR] to generate an
2295 uint64_t reserved_17_18 : 2;
2296 uint64_t p1_rtout : 1; /**< Enables NPI_INT_SUM[P1_RTOUT] to generate an
2298 uint64_t p0_rtout : 1; /**< Enables NPI_INT_SUM[P0_RTOUT] to generate an
2300 uint64_t reserved_13_14 : 2;
2301 uint64_t i1_overf : 1; /**< Enables NPI_INT_SUM[I1_OVERF] to generate an
2303 uint64_t i0_overf : 1; /**< Enables NPI_INT_SUM[I0_OVERF] to generate an
2305 uint64_t reserved_9_10 : 2;
2306 uint64_t i1_rtout : 1; /**< Enables NPI_INT_SUM[I1_RTOUT] to generate an
2308 uint64_t i0_rtout : 1; /**< Enables NPI_INT_SUM[I0_RTOUT] to generate an
2310 uint64_t reserved_5_6 : 2;
2311 uint64_t po1_2sml : 1; /**< Enables NPI_INT_SUM[PO1_2SML] to generate an
2313 uint64_t po0_2sml : 1; /**< Enables NPI_INT_SUM[PO0_2SML] to generate an
2315 uint64_t pci_rsl : 1; /**< Enables NPI_INT_SUM[PCI_RSL] to generate an
2317 uint64_t rml_wto : 1; /**< Enables NPI_INT_SUM[RML_WTO] to generate an
2319 uint64_t rml_rto : 1; /**< Enables NPI_INT_SUM[RML_RTO] to generate an
2322 uint64_t rml_rto : 1;
2323 uint64_t rml_wto : 1;
2324 uint64_t pci_rsl : 1;
2325 uint64_t po0_2sml : 1;
2326 uint64_t po1_2sml : 1;
2327 uint64_t reserved_5_6 : 2;
2328 uint64_t i0_rtout : 1;
2329 uint64_t i1_rtout : 1;
2330 uint64_t reserved_9_10 : 2;
2331 uint64_t i0_overf : 1;
2332 uint64_t i1_overf : 1;
2333 uint64_t reserved_13_14 : 2;
2334 uint64_t p0_rtout : 1;
2335 uint64_t p1_rtout : 1;
2336 uint64_t reserved_17_18 : 2;
2337 uint64_t p0_perr : 1;
2338 uint64_t p1_perr : 1;
2339 uint64_t reserved_21_22 : 2;
2340 uint64_t g0_rtout : 1;
2341 uint64_t g1_rtout : 1;
2342 uint64_t reserved_25_26 : 2;
2343 uint64_t p0_pperr : 1;
2344 uint64_t p1_pperr : 1;
2345 uint64_t reserved_29_30 : 2;
2346 uint64_t p0_ptout : 1;
2347 uint64_t p1_ptout : 1;
2348 uint64_t reserved_33_34 : 2;
2349 uint64_t i0_pperr : 1;
2350 uint64_t i1_pperr : 1;
2351 uint64_t reserved_37_38 : 2;
2352 uint64_t win_rto : 1;
2353 uint64_t p_dperr : 1;
2354 uint64_t iobdma : 1;
2355 uint64_t fcr_s_e : 1;
2356 uint64_t fcr_a_f : 1;
2357 uint64_t pcr_s_e : 1;
2358 uint64_t pcr_a_f : 1;
2359 uint64_t q2_s_e : 1;
2360 uint64_t q2_a_f : 1;
2361 uint64_t q3_s_e : 1;
2362 uint64_t q3_a_f : 1;
2363 uint64_t com_s_e : 1;
2364 uint64_t com_a_f : 1;
2365 uint64_t pnc_s_e : 1;
2366 uint64_t pnc_a_f : 1;
2367 uint64_t rwx_s_e : 1;
2368 uint64_t rdx_s_e : 1;
2369 uint64_t pcf_p_e : 1;
2370 uint64_t pcf_p_f : 1;
2371 uint64_t pdf_p_e : 1;
2372 uint64_t pdf_p_f : 1;
2373 uint64_t q1_s_e : 1;
2374 uint64_t q1_a_f : 1;
2375 uint64_t reserved_62_63 : 2;
2378 struct cvmx_npi_int_enb_s cn38xx;
2379 struct cvmx_npi_int_enb_cn38xxp2 {
2380 #ifdef __BIG_ENDIAN_BITFIELD
2381 uint64_t reserved_42_63 : 22;
2382 uint64_t iobdma : 1; /**< Enables NPI_INT_SUM[IOBDMA] to generate an
2384 uint64_t p_dperr : 1; /**< Enables NPI_INT_SUM[P_DPERR] to generate an
2386 uint64_t win_rto : 1; /**< Enables NPI_INT_SUM[WIN_RTO] to generate an
2388 uint64_t i3_pperr : 1; /**< Enables NPI_INT_SUM[I3_PPERR] to generate an
2390 uint64_t i2_pperr : 1; /**< Enables NPI_INT_SUM[I2_PPERR] to generate an
2392 uint64_t i1_pperr : 1; /**< Enables NPI_INT_SUM[I1_PPERR] to generate an
2394 uint64_t i0_pperr : 1; /**< Enables NPI_INT_SUM[I0_PPERR] to generate an
2396 uint64_t p3_ptout : 1; /**< Enables NPI_INT_SUM[P3_PTOUT] to generate an
2398 uint64_t p2_ptout : 1; /**< Enables NPI_INT_SUM[P2_PTOUT] to generate an
2400 uint64_t p1_ptout : 1; /**< Enables NPI_INT_SUM[P1_PTOUT] to generate an
2402 uint64_t p0_ptout : 1; /**< Enables NPI_INT_SUM[P0_PTOUT] to generate an
2404 uint64_t p3_pperr : 1; /**< Enables NPI_INT_SUM[P3_PPERR] to generate an
2406 uint64_t p2_pperr : 1; /**< Enables NPI_INT_SUM[P2_PPERR] to generate an
2408 uint64_t p1_pperr : 1; /**< Enables NPI_INT_SUM[P1_PPERR] to generate an
2410 uint64_t p0_pperr : 1; /**< Enables NPI_INT_SUM[P0_PPERR] to generate an
2412 uint64_t g3_rtout : 1; /**< Enables NPI_INT_SUM[G3_RTOUT] to generate an
2414 uint64_t g2_rtout : 1; /**< Enables NPI_INT_SUM[G2_RTOUT] to generate an
2416 uint64_t g1_rtout : 1; /**< Enables NPI_INT_SUM[G1_RTOUT] to generate an
2418 uint64_t g0_rtout : 1; /**< Enables NPI_INT_SUM[G0_RTOUT] to generate an
2420 uint64_t p3_perr : 1; /**< Enables NPI_INT_SUM[P3_PERR] to generate an
2422 uint64_t p2_perr : 1; /**< Enables NPI_INT_SUM[P2_PERR] to generate an
2424 uint64_t p1_perr : 1; /**< Enables NPI_INT_SUM[P1_PERR] to generate an
2426 uint64_t p0_perr : 1; /**< Enables NPI_INT_SUM[P0_PERR] to generate an
2428 uint64_t p3_rtout : 1; /**< Enables NPI_INT_SUM[P3_RTOUT] to generate an
2430 uint64_t p2_rtout : 1; /**< Enables NPI_INT_SUM[P2_RTOUT] to generate an
2432 uint64_t p1_rtout : 1; /**< Enables NPI_INT_SUM[P1_RTOUT] to generate an
2434 uint64_t p0_rtout : 1; /**< Enables NPI_INT_SUM[P0_RTOUT] to generate an
2436 uint64_t i3_overf : 1; /**< Enables NPI_INT_SUM[I3_OVERF] to generate an
2438 uint64_t i2_overf : 1; /**< Enables NPI_INT_SUM[I2_OVERF] to generate an
2440 uint64_t i1_overf : 1; /**< Enables NPI_INT_SUM[I1_OVERF] to generate an
2442 uint64_t i0_overf : 1; /**< Enables NPI_INT_SUM[I0_OVERF] to generate an
2444 uint64_t i3_rtout : 1; /**< Enables NPI_INT_SUM[I3_RTOUT] to generate an
2446 uint64_t i2_rtout : 1; /**< Enables NPI_INT_SUM[I2_RTOUT] to generate an
2448 uint64_t i1_rtout : 1; /**< Enables NPI_INT_SUM[I1_RTOUT] to generate an
2450 uint64_t i0_rtout : 1; /**< Enables NPI_INT_SUM[I0_RTOUT] to generate an
2452 uint64_t po3_2sml : 1; /**< Enables NPI_INT_SUM[PO3_2SML] to generate an
2454 uint64_t po2_2sml : 1; /**< Enables NPI_INT_SUM[PO2_2SML] to generate an
2456 uint64_t po1_2sml : 1; /**< Enables NPI_INT_SUM[PO1_2SML] to generate an
2458 uint64_t po0_2sml : 1; /**< Enables NPI_INT_SUM[PO0_2SML] to generate an
2460 uint64_t pci_rsl : 1; /**< Enables NPI_INT_SUM[PCI_RSL] to generate an
2462 uint64_t rml_wto : 1; /**< Enables NPI_INT_SUM[RML_WTO] to generate an
2464 uint64_t rml_rto : 1; /**< Enables NPI_INT_SUM[RML_RTO] to generate an
2467 uint64_t rml_rto : 1;
2468 uint64_t rml_wto : 1;
2469 uint64_t pci_rsl : 1;
2470 uint64_t po0_2sml : 1;
2471 uint64_t po1_2sml : 1;
2472 uint64_t po2_2sml : 1;
2473 uint64_t po3_2sml : 1;
2474 uint64_t i0_rtout : 1;
2475 uint64_t i1_rtout : 1;
2476 uint64_t i2_rtout : 1;
2477 uint64_t i3_rtout : 1;
2478 uint64_t i0_overf : 1;
2479 uint64_t i1_overf : 1;
2480 uint64_t i2_overf : 1;
2481 uint64_t i3_overf : 1;
2482 uint64_t p0_rtout : 1;
2483 uint64_t p1_rtout : 1;
2484 uint64_t p2_rtout : 1;
2485 uint64_t p3_rtout : 1;
2486 uint64_t p0_perr : 1;
2487 uint64_t p1_perr : 1;
2488 uint64_t p2_perr : 1;
2489 uint64_t p3_perr : 1;
2490 uint64_t g0_rtout : 1;
2491 uint64_t g1_rtout : 1;
2492 uint64_t g2_rtout : 1;
2493 uint64_t g3_rtout : 1;
2494 uint64_t p0_pperr : 1;
2495 uint64_t p1_pperr : 1;
2496 uint64_t p2_pperr : 1;
2497 uint64_t p3_pperr : 1;
2498 uint64_t p0_ptout : 1;
2499 uint64_t p1_ptout : 1;
2500 uint64_t p2_ptout : 1;
2501 uint64_t p3_ptout : 1;
2502 uint64_t i0_pperr : 1;
2503 uint64_t i1_pperr : 1;
2504 uint64_t i2_pperr : 1;
2505 uint64_t i3_pperr : 1;
2506 uint64_t win_rto : 1;
2507 uint64_t p_dperr : 1;
2508 uint64_t iobdma : 1;
2509 uint64_t reserved_42_63 : 22;
2512 struct cvmx_npi_int_enb_cn31xx cn50xx;
2513 struct cvmx_npi_int_enb_s cn58xx;
2514 struct cvmx_npi_int_enb_s cn58xxp1;
2516 typedef union cvmx_npi_int_enb cvmx_npi_int_enb_t;
2521 * NPI_INTERRUPT_SUM = NPI Interrupt Summary Register
2523 * Set when an interrupt condition occurs, write '1' to clear.
2525 union cvmx_npi_int_sum {
2527 struct cvmx_npi_int_sum_s {
2528 #ifdef __BIG_ENDIAN_BITFIELD
2529 uint64_t reserved_62_63 : 2;
2530 uint64_t q1_a_f : 1; /**< Attempted to add when Queue-1 FIFO is full.
2532 uint64_t q1_s_e : 1; /**< Attempted to subtract when Queue-1 FIFO is empty.
2534 uint64_t pdf_p_f : 1; /**< Attempted to push a full PCN-DATA-FIFO.
2536 uint64_t pdf_p_e : 1; /**< Attempted to pop an empty PCN-DATA-FIFO.
2538 uint64_t pcf_p_f : 1; /**< Attempted to push a full PCN-CNT-FIFO.
2540 uint64_t pcf_p_e : 1; /**< Attempted to pop an empty PCN-CNT-FIFO.
2542 uint64_t rdx_s_e : 1; /**< Attempted to subtract when DPI-XFR-Wait count is 0.
2544 uint64_t rwx_s_e : 1; /**< Attempted to subtract when RDN-XFR-Wait count is 0.
2546 uint64_t pnc_a_f : 1; /**< Attempted to add when PNI-NPI Credits are max.
2548 uint64_t pnc_s_e : 1; /**< Attempted to subtract when PNI-NPI Credits are 0.
2550 uint64_t com_a_f : 1; /**< Attempted to add when PCN-Commit Counter is max.
2552 uint64_t com_s_e : 1; /**< Attempted to subtract when PCN-Commit Counter is 0.
2554 uint64_t q3_a_f : 1; /**< Attempted to add when Queue-3 FIFO is full.
2556 uint64_t q3_s_e : 1; /**< Attempted to subtract when Queue-3 FIFO is empty.
2558 uint64_t q2_a_f : 1; /**< Attempted to add when Queue-2 FIFO is full.
2560 uint64_t q2_s_e : 1; /**< Attempted to subtract when Queue-2 FIFO is empty.
2562 uint64_t pcr_a_f : 1; /**< Attempted to add when POW Credits is full.
2564 uint64_t pcr_s_e : 1; /**< Attempted to subtract when POW Credits is empty.
2566 uint64_t fcr_a_f : 1; /**< Attempted to add when FPA Credits is full.
2568 uint64_t fcr_s_e : 1; /**< Attempted to subtract when FPA Credits is empty.
2570 uint64_t iobdma : 1; /**< Requested IOBDMA read size exceeded 128 words. */
2571 uint64_t p_dperr : 1; /**< If a parity error occured on data written to L2C
2572 from the PCI this bit may be set. */
2573 uint64_t win_rto : 1; /**< Windowed Load Timed Out. */
2574 uint64_t i3_pperr : 1; /**< If a parity error occured on the port's instruction
2575 this bit may be set. */
2576 uint64_t i2_pperr : 1; /**< If a parity error occured on the port's instruction
2577 this bit may be set. */
2578 uint64_t i1_pperr : 1; /**< If a parity error occured on the port's instruction
2579 this bit may be set. */
2580 uint64_t i0_pperr : 1; /**< If a parity error occured on the port's instruction
2581 this bit may be set. */
2582 uint64_t p3_ptout : 1; /**< Port-3 output had a read timeout on a DATA/INFO
2584 uint64_t p2_ptout : 1; /**< Port-2 output had a read timeout on a DATA/INFO
2586 uint64_t p1_ptout : 1; /**< Port-1 output had a read timeout on a DATA/INFO
2588 uint64_t p0_ptout : 1; /**< Port-0 output had a read timeout on a DATA/INFO
2590 uint64_t p3_pperr : 1; /**< If a parity error occured on the port DATA/INFO
2591 pointer-pair, this bit may be set. */
2592 uint64_t p2_pperr : 1; /**< If a parity error occured on the port DATA/INFO
2593 pointer-pair, this bit may be set. */
2594 uint64_t p1_pperr : 1; /**< If a parity error occured on the port DATA/INFO
2595 pointer-pair, this bit may be set. */
2596 uint64_t p0_pperr : 1; /**< If a parity error occured on the port DATA/INFO
2597 pointer-pair, this bit may be set. */
2598 uint64_t g3_rtout : 1; /**< Port-3 had a read timeout while attempting to
2599 read a gather list. */
2600 uint64_t g2_rtout : 1; /**< Port-2 had a read timeout while attempting to
2601 read a gather list. */
2602 uint64_t g1_rtout : 1; /**< Port-1 had a read timeout while attempting to
2603 read a gather list. */
2604 uint64_t g0_rtout : 1; /**< Port-0 had a read timeout while attempting to
2605 read a gather list. */
2606 uint64_t p3_perr : 1; /**< If a parity error occured on the port's packet
2607 data this bit may be set. */
2608 uint64_t p2_perr : 1; /**< If a parity error occured on the port's packet
2609 data this bit may be set. */
2610 uint64_t p1_perr : 1; /**< If a parity error occured on the port's packet
2611 data this bit may be set. */
2612 uint64_t p0_perr : 1; /**< If a parity error occured on the port's packet
2613 data this bit may be set. */
2614 uint64_t p3_rtout : 1; /**< Port-3 had a read timeout while attempting to
2615 read packet data. */
2616 uint64_t p2_rtout : 1; /**< Port-2 had a read timeout while attempting to
2617 read packet data. */
2618 uint64_t p1_rtout : 1; /**< Port-1 had a read timeout while attempting to
2619 read packet data. */
2620 uint64_t p0_rtout : 1; /**< Port-0 had a read timeout while attempting to
2621 read packet data. */
2622 uint64_t i3_overf : 1; /**< Port-3 had a doorbell overflow. Bit[31] of the
2623 doorbell count was set. */
2624 uint64_t i2_overf : 1; /**< Port-2 had a doorbell overflow. Bit[31] of the
2625 doorbell count was set. */
2626 uint64_t i1_overf : 1; /**< Port-1 had a doorbell overflow. Bit[31] of the
2627 doorbell count was set. */
2628 uint64_t i0_overf : 1; /**< Port-0 had a doorbell overflow. Bit[31] of the
2629 doorbell count was set. */
2630 uint64_t i3_rtout : 1; /**< Port-3 had a read timeout while attempting to
2631 read instructions. */
2632 uint64_t i2_rtout : 1; /**< Port-2 had a read timeout while attempting to
2633 read instructions. */
2634 uint64_t i1_rtout : 1; /**< Port-1 had a read timeout while attempting to
2635 read instructions. */
2636 uint64_t i0_rtout : 1; /**< Port-0 had a read timeout while attempting to
2637 read instructions. */
2638 uint64_t po3_2sml : 1; /**< The packet being sent out on Port3 is smaller
2639 than the NPI_BUFF_SIZE_OUTPUT3[ISIZE] field. */
2640 uint64_t po2_2sml : 1; /**< The packet being sent out on Port2 is smaller
2641 than the NPI_BUFF_SIZE_OUTPUT2[ISIZE] field. */
2642 uint64_t po1_2sml : 1; /**< The packet being sent out on Port1 is smaller
2643 than the NPI_BUFF_SIZE_OUTPUT1[ISIZE] field. */
2644 uint64_t po0_2sml : 1; /**< The packet being sent out on Port0 is smaller
2645 than the NPI_BUFF_SIZE_OUTPUT0[ISIZE] field. */
2646 uint64_t pci_rsl : 1; /**< This '1' when a bit in PCI_INT_SUM2 is SET and the
2647 corresponding bit in the PCI_INT_ENB2 is SET. */
2648 uint64_t rml_wto : 1; /**< Set '1' when the RML does not receive a commit
2649 back from a RSL after sending a write command to
2651 uint64_t rml_rto : 1; /**< Set '1' when the RML does not receive read data
2652 back from a RSL after sending a read command to
2655 uint64_t rml_rto : 1;
2656 uint64_t rml_wto : 1;
2657 uint64_t pci_rsl : 1;
2658 uint64_t po0_2sml : 1;
2659 uint64_t po1_2sml : 1;
2660 uint64_t po2_2sml : 1;
2661 uint64_t po3_2sml : 1;
2662 uint64_t i0_rtout : 1;
2663 uint64_t i1_rtout : 1;
2664 uint64_t i2_rtout : 1;
2665 uint64_t i3_rtout : 1;
2666 uint64_t i0_overf : 1;
2667 uint64_t i1_overf : 1;
2668 uint64_t i2_overf : 1;
2669 uint64_t i3_overf : 1;
2670 uint64_t p0_rtout : 1;
2671 uint64_t p1_rtout : 1;
2672 uint64_t p2_rtout : 1;
2673 uint64_t p3_rtout : 1;
2674 uint64_t p0_perr : 1;
2675 uint64_t p1_perr : 1;
2676 uint64_t p2_perr : 1;
2677 uint64_t p3_perr : 1;
2678 uint64_t g0_rtout : 1;
2679 uint64_t g1_rtout : 1;
2680 uint64_t g2_rtout : 1;
2681 uint64_t g3_rtout : 1;
2682 uint64_t p0_pperr : 1;
2683 uint64_t p1_pperr : 1;
2684 uint64_t p2_pperr : 1;
2685 uint64_t p3_pperr : 1;
2686 uint64_t p0_ptout : 1;
2687 uint64_t p1_ptout : 1;
2688 uint64_t p2_ptout : 1;
2689 uint64_t p3_ptout : 1;
2690 uint64_t i0_pperr : 1;
2691 uint64_t i1_pperr : 1;
2692 uint64_t i2_pperr : 1;
2693 uint64_t i3_pperr : 1;
2694 uint64_t win_rto : 1;
2695 uint64_t p_dperr : 1;
2696 uint64_t iobdma : 1;
2697 uint64_t fcr_s_e : 1;
2698 uint64_t fcr_a_f : 1;
2699 uint64_t pcr_s_e : 1;
2700 uint64_t pcr_a_f : 1;
2701 uint64_t q2_s_e : 1;
2702 uint64_t q2_a_f : 1;
2703 uint64_t q3_s_e : 1;
2704 uint64_t q3_a_f : 1;
2705 uint64_t com_s_e : 1;
2706 uint64_t com_a_f : 1;
2707 uint64_t pnc_s_e : 1;
2708 uint64_t pnc_a_f : 1;
2709 uint64_t rwx_s_e : 1;
2710 uint64_t rdx_s_e : 1;
2711 uint64_t pcf_p_e : 1;
2712 uint64_t pcf_p_f : 1;
2713 uint64_t pdf_p_e : 1;
2714 uint64_t pdf_p_f : 1;
2715 uint64_t q1_s_e : 1;
2716 uint64_t q1_a_f : 1;
2717 uint64_t reserved_62_63 : 2;
2720 struct cvmx_npi_int_sum_cn30xx {
2721 #ifdef __BIG_ENDIAN_BITFIELD
2722 uint64_t reserved_62_63 : 2;
2723 uint64_t q1_a_f : 1; /**< Attempted to add when Queue-1 FIFO is full. */
2724 uint64_t q1_s_e : 1; /**< Attempted to subtract when Queue-1 FIFO is empty. */
2725 uint64_t pdf_p_f : 1; /**< Attempted to push a full PCN-DATA-FIFO. */
2726 uint64_t pdf_p_e : 1; /**< Attempted to pop an empty PCN-DATA-FIFO. */
2727 uint64_t pcf_p_f : 1; /**< Attempted to push a full PCN-CNT-FIFO. */
2728 uint64_t pcf_p_e : 1; /**< Attempted to pop an empty PCN-CNT-FIFO. */
2729 uint64_t rdx_s_e : 1; /**< Attempted to subtract when DPI-XFR-Wait count is 0. */
2730 uint64_t rwx_s_e : 1; /**< Attempted to subtract when RDN-XFR-Wait count is 0. */
2731 uint64_t pnc_a_f : 1; /**< Attempted to add when PNI-NPI Credits are max. */
2732 uint64_t pnc_s_e : 1; /**< Attempted to subtract when PNI-NPI Credits are 0. */
2733 uint64_t com_a_f : 1; /**< Attempted to add when PCN-Commit Counter is max. */
2734 uint64_t com_s_e : 1; /**< Attempted to subtract when PCN-Commit Counter is 0. */
2735 uint64_t q3_a_f : 1; /**< Attempted to add when Queue-3 FIFO is full. */
2736 uint64_t q3_s_e : 1; /**< Attempted to subtract when Queue-3 FIFO is empty. */
2737 uint64_t q2_a_f : 1; /**< Attempted to add when Queue-2 FIFO is full. */
2738 uint64_t q2_s_e : 1; /**< Attempted to subtract when Queue-2 FIFO is empty. */
2739 uint64_t pcr_a_f : 1; /**< Attempted to add when POW Credits is full. */
2740 uint64_t pcr_s_e : 1; /**< Attempted to subtract when POW Credits is empty. */
2741 uint64_t fcr_a_f : 1; /**< Attempted to add when FPA Credits is full. */
2742 uint64_t fcr_s_e : 1; /**< Attempted to subtract when FPA Credits is empty. */
2743 uint64_t iobdma : 1; /**< Requested IOBDMA read size exceeded 128 words. */
2744 uint64_t p_dperr : 1; /**< If a parity error occured on data written to L2C
2745 from the PCI this bit may be set. */
2746 uint64_t win_rto : 1; /**< Windowed Load Timed Out. */
2747 uint64_t reserved_36_38 : 3;
2748 uint64_t i0_pperr : 1; /**< If a parity error occured on the port's instruction
2749 this bit may be set. */
2750 uint64_t reserved_32_34 : 3;
2751 uint64_t p0_ptout : 1; /**< Port-0 output had a read timeout on a DATA/INFO
2753 uint64_t reserved_28_30 : 3;
2754 uint64_t p0_pperr : 1; /**< If a parity error occured on the port DATA/INFO
2755 pointer-pair, this bit may be set. */
2756 uint64_t reserved_24_26 : 3;
2757 uint64_t g0_rtout : 1; /**< Port-0 had a read timeout while attempting to
2758 read a gather list. */
2759 uint64_t reserved_20_22 : 3;
2760 uint64_t p0_perr : 1; /**< If a parity error occured on the port's packet
2761 data this bit may be set. */
2762 uint64_t reserved_16_18 : 3;
2763 uint64_t p0_rtout : 1; /**< Port-0 had a read timeout while attempting to
2764 read packet data. */
2765 uint64_t reserved_12_14 : 3;
2766 uint64_t i0_overf : 1; /**< Port-0 had a doorbell overflow. Bit[31] of the
2767 doorbell count was set. */
2768 uint64_t reserved_8_10 : 3;
2769 uint64_t i0_rtout : 1; /**< Port-0 had a read timeout while attempting to
2770 read instructions. */
2771 uint64_t reserved_4_6 : 3;
2772 uint64_t po0_2sml : 1; /**< The packet being sent out on Port0 is smaller
2773 than the NPI_BUFF_SIZE_OUTPUT0[ISIZE] field. */
2774 uint64_t pci_rsl : 1; /**< This '1' when a bit in PCI_INT_SUM2 is SET and the
2775 corresponding bit in the PCI_INT_ENB2 is SET. */
2776 uint64_t rml_wto : 1; /**< Set '1' when the RML does not receive a commit
2777 back from a RSL after sending a write command to
2779 uint64_t rml_rto : 1; /**< Set '1' when the RML does not receive read data
2780 back from a RSL after sending a read command to
2783 uint64_t rml_rto : 1;
2784 uint64_t rml_wto : 1;
2785 uint64_t pci_rsl : 1;
2786 uint64_t po0_2sml : 1;
2787 uint64_t reserved_4_6 : 3;
2788 uint64_t i0_rtout : 1;
2789 uint64_t reserved_8_10 : 3;
2790 uint64_t i0_overf : 1;
2791 uint64_t reserved_12_14 : 3;
2792 uint64_t p0_rtout : 1;
2793 uint64_t reserved_16_18 : 3;
2794 uint64_t p0_perr : 1;
2795 uint64_t reserved_20_22 : 3;
2796 uint64_t g0_rtout : 1;
2797 uint64_t reserved_24_26 : 3;
2798 uint64_t p0_pperr : 1;
2799 uint64_t reserved_28_30 : 3;
2800 uint64_t p0_ptout : 1;
2801 uint64_t reserved_32_34 : 3;
2802 uint64_t i0_pperr : 1;
2803 uint64_t reserved_36_38 : 3;
2804 uint64_t win_rto : 1;
2805 uint64_t p_dperr : 1;
2806 uint64_t iobdma : 1;
2807 uint64_t fcr_s_e : 1;
2808 uint64_t fcr_a_f : 1;
2809 uint64_t pcr_s_e : 1;
2810 uint64_t pcr_a_f : 1;
2811 uint64_t q2_s_e : 1;
2812 uint64_t q2_a_f : 1;
2813 uint64_t q3_s_e : 1;
2814 uint64_t q3_a_f : 1;
2815 uint64_t com_s_e : 1;
2816 uint64_t com_a_f : 1;
2817 uint64_t pnc_s_e : 1;
2818 uint64_t pnc_a_f : 1;
2819 uint64_t rwx_s_e : 1;
2820 uint64_t rdx_s_e : 1;
2821 uint64_t pcf_p_e : 1;
2822 uint64_t pcf_p_f : 1;
2823 uint64_t pdf_p_e : 1;
2824 uint64_t pdf_p_f : 1;
2825 uint64_t q1_s_e : 1;
2826 uint64_t q1_a_f : 1;
2827 uint64_t reserved_62_63 : 2;
2830 struct cvmx_npi_int_sum_cn31xx {
2831 #ifdef __BIG_ENDIAN_BITFIELD
2832 uint64_t reserved_62_63 : 2;
2833 uint64_t q1_a_f : 1; /**< Attempted to add when Queue-1 FIFO is full. */
2834 uint64_t q1_s_e : 1; /**< Attempted to subtract when Queue-1 FIFO is empty. */
2835 uint64_t pdf_p_f : 1; /**< Attempted to push a full PCN-DATA-FIFO. */
2836 uint64_t pdf_p_e : 1; /**< Attempted to pop an empty PCN-DATA-FIFO. */
2837 uint64_t pcf_p_f : 1; /**< Attempted to push a full PCN-CNT-FIFO. */
2838 uint64_t pcf_p_e : 1; /**< Attempted to pop an empty PCN-CNT-FIFO. */
2839 uint64_t rdx_s_e : 1; /**< Attempted to subtract when DPI-XFR-Wait count is 0. */
2840 uint64_t rwx_s_e : 1; /**< Attempted to subtract when RDN-XFR-Wait count is 0. */
2841 uint64_t pnc_a_f : 1; /**< Attempted to add when PNI-NPI Credits are max. */
2842 uint64_t pnc_s_e : 1; /**< Attempted to subtract when PNI-NPI Credits are 0. */
2843 uint64_t com_a_f : 1; /**< Attempted to add when PCN-Commit Counter is max. */
2844 uint64_t com_s_e : 1; /**< Attempted to subtract when PCN-Commit Counter is 0. */
2845 uint64_t q3_a_f : 1; /**< Attempted to add when Queue-3 FIFO is full. */
2846 uint64_t q3_s_e : 1; /**< Attempted to subtract when Queue-3 FIFO is empty. */
2847 uint64_t q2_a_f : 1; /**< Attempted to add when Queue-2 FIFO is full. */
2848 uint64_t q2_s_e : 1; /**< Attempted to subtract when Queue-2 FIFO is empty. */
2849 uint64_t pcr_a_f : 1; /**< Attempted to add when POW Credits is full. */
2850 uint64_t pcr_s_e : 1; /**< Attempted to subtract when POW Credits is empty. */
2851 uint64_t fcr_a_f : 1; /**< Attempted to add when FPA Credits is full. */
2852 uint64_t fcr_s_e : 1; /**< Attempted to subtract when FPA Credits is empty. */
2853 uint64_t iobdma : 1; /**< Requested IOBDMA read size exceeded 128 words. */
2854 uint64_t p_dperr : 1; /**< If a parity error occured on data written to L2C
2855 from the PCI this bit may be set. */
2856 uint64_t win_rto : 1; /**< Windowed Load Timed Out. */
2857 uint64_t reserved_37_38 : 2;
2858 uint64_t i1_pperr : 1; /**< If a parity error occured on the port's instruction
2859 this bit may be set. */
2860 uint64_t i0_pperr : 1; /**< If a parity error occured on the port's instruction
2861 this bit may be set. */
2862 uint64_t reserved_33_34 : 2;
2863 uint64_t p1_ptout : 1; /**< Port-1 output had a read timeout on a DATA/INFO
2865 uint64_t p0_ptout : 1; /**< Port-0 output had a read timeout on a DATA/INFO
2867 uint64_t reserved_29_30 : 2;
2868 uint64_t p1_pperr : 1; /**< If a parity error occured on the port DATA/INFO
2869 pointer-pair, this bit may be set. */
2870 uint64_t p0_pperr : 1; /**< If a parity error occured on the port DATA/INFO
2871 pointer-pair, this bit may be set. */
2872 uint64_t reserved_25_26 : 2;
2873 uint64_t g1_rtout : 1; /**< Port-1 had a read timeout while attempting to
2874 read a gather list. */
2875 uint64_t g0_rtout : 1; /**< Port-0 had a read timeout while attempting to
2876 read a gather list. */
2877 uint64_t reserved_21_22 : 2;
2878 uint64_t p1_perr : 1; /**< If a parity error occured on the port's packet
2879 data this bit may be set. */
2880 uint64_t p0_perr : 1; /**< If a parity error occured on the port's packet
2881 data this bit may be set. */
2882 uint64_t reserved_17_18 : 2;
2883 uint64_t p1_rtout : 1; /**< Port-1 had a read timeout while attempting to
2884 read packet data. */
2885 uint64_t p0_rtout : 1; /**< Port-0 had a read timeout while attempting to
2886 read packet data. */
2887 uint64_t reserved_13_14 : 2;
2888 uint64_t i1_overf : 1; /**< Port-1 had a doorbell overflow. Bit[31] of the
2889 doorbell count was set. */
2890 uint64_t i0_overf : 1; /**< Port-0 had a doorbell overflow. Bit[31] of the
2891 doorbell count was set. */
2892 uint64_t reserved_9_10 : 2;
2893 uint64_t i1_rtout : 1; /**< Port-1 had a read timeout while attempting to
2894 read instructions. */
2895 uint64_t i0_rtout : 1; /**< Port-0 had a read timeout while attempting to
2896 read instructions. */
2897 uint64_t reserved_5_6 : 2;
2898 uint64_t po1_2sml : 1; /**< The packet being sent out on Port1 is smaller
2899 than the NPI_BUFF_SIZE_OUTPUT1[ISIZE] field. */
2900 uint64_t po0_2sml : 1; /**< The packet being sent out on Port0 is smaller
2901 than the NPI_BUFF_SIZE_OUTPUT0[ISIZE] field. */
2902 uint64_t pci_rsl : 1; /**< This '1' when a bit in PCI_INT_SUM2 is SET and the
2903 corresponding bit in the PCI_INT_ENB2 is SET. */
2904 uint64_t rml_wto : 1; /**< Set '1' when the RML does not receive a commit
2905 back from a RSL after sending a write command to
2907 uint64_t rml_rto : 1; /**< Set '1' when the RML does not receive read data
2908 back from a RSL after sending a read command to
2911 uint64_t rml_rto : 1;
2912 uint64_t rml_wto : 1;
2913 uint64_t pci_rsl : 1;
2914 uint64_t po0_2sml : 1;
2915 uint64_t po1_2sml : 1;
2916 uint64_t reserved_5_6 : 2;
2917 uint64_t i0_rtout : 1;
2918 uint64_t i1_rtout : 1;
2919 uint64_t reserved_9_10 : 2;
2920 uint64_t i0_overf : 1;
2921 uint64_t i1_overf : 1;
2922 uint64_t reserved_13_14 : 2;
2923 uint64_t p0_rtout : 1;
2924 uint64_t p1_rtout : 1;
2925 uint64_t reserved_17_18 : 2;
2926 uint64_t p0_perr : 1;
2927 uint64_t p1_perr : 1;
2928 uint64_t reserved_21_22 : 2;
2929 uint64_t g0_rtout : 1;
2930 uint64_t g1_rtout : 1;
2931 uint64_t reserved_25_26 : 2;
2932 uint64_t p0_pperr : 1;
2933 uint64_t p1_pperr : 1;
2934 uint64_t reserved_29_30 : 2;
2935 uint64_t p0_ptout : 1;
2936 uint64_t p1_ptout : 1;
2937 uint64_t reserved_33_34 : 2;
2938 uint64_t i0_pperr : 1;
2939 uint64_t i1_pperr : 1;
2940 uint64_t reserved_37_38 : 2;
2941 uint64_t win_rto : 1;
2942 uint64_t p_dperr : 1;
2943 uint64_t iobdma : 1;
2944 uint64_t fcr_s_e : 1;
2945 uint64_t fcr_a_f : 1;
2946 uint64_t pcr_s_e : 1;
2947 uint64_t pcr_a_f : 1;
2948 uint64_t q2_s_e : 1;
2949 uint64_t q2_a_f : 1;
2950 uint64_t q3_s_e : 1;
2951 uint64_t q3_a_f : 1;
2952 uint64_t com_s_e : 1;
2953 uint64_t com_a_f : 1;
2954 uint64_t pnc_s_e : 1;
2955 uint64_t pnc_a_f : 1;
2956 uint64_t rwx_s_e : 1;
2957 uint64_t rdx_s_e : 1;
2958 uint64_t pcf_p_e : 1;
2959 uint64_t pcf_p_f : 1;
2960 uint64_t pdf_p_e : 1;
2961 uint64_t pdf_p_f : 1;
2962 uint64_t q1_s_e : 1;
2963 uint64_t q1_a_f : 1;
2964 uint64_t reserved_62_63 : 2;
2967 struct cvmx_npi_int_sum_s cn38xx;
2968 struct cvmx_npi_int_sum_cn38xxp2 {
2969 #ifdef __BIG_ENDIAN_BITFIELD
2970 uint64_t reserved_42_63 : 22;
2971 uint64_t iobdma : 1; /**< Requested IOBDMA read size exceeded 128 words. */
2972 uint64_t p_dperr : 1; /**< If a parity error occured on data written to L2C
2973 from the PCI this bit may be set. */
2974 uint64_t win_rto : 1; /**< Windowed Load Timed Out. */
2975 uint64_t i3_pperr : 1; /**< If a parity error occured on the port's instruction
2976 this bit may be set. */
2977 uint64_t i2_pperr : 1; /**< If a parity error occured on the port's instruction
2978 this bit may be set. */
2979 uint64_t i1_pperr : 1; /**< If a parity error occured on the port's instruction
2980 this bit may be set. */
2981 uint64_t i0_pperr : 1; /**< If a parity error occured on the port's instruction
2982 this bit may be set. */
2983 uint64_t p3_ptout : 1; /**< Port-3 output had a read timeout on a DATA/INFO
2985 uint64_t p2_ptout : 1; /**< Port-2 output had a read timeout on a DATA/INFO
2987 uint64_t p1_ptout : 1; /**< Port-1 output had a read timeout on a DATA/INFO
2989 uint64_t p0_ptout : 1; /**< Port-0 output had a read timeout on a DATA/INFO
2991 uint64_t p3_pperr : 1; /**< If a parity error occured on the port DATA/INFO
2992 pointer-pair, this bit may be set. */
2993 uint64_t p2_pperr : 1; /**< If a parity error occured on the port DATA/INFO
2994 pointer-pair, this bit may be set. */
2995 uint64_t p1_pperr : 1; /**< If a parity error occured on the port DATA/INFO
2996 pointer-pair, this bit may be set. */
2997 uint64_t p0_pperr : 1; /**< If a parity error occured on the port DATA/INFO
2998 pointer-pair, this bit may be set. */
2999 uint64_t g3_rtout : 1; /**< Port-3 had a read timeout while attempting to
3000 read a gather list. */
3001 uint64_t g2_rtout : 1; /**< Port-2 had a read timeout while attempting to
3002 read a gather list. */
3003 uint64_t g1_rtout : 1; /**< Port-1 had a read timeout while attempting to
3004 read a gather list. */
3005 uint64_t g0_rtout : 1; /**< Port-0 had a read timeout while attempting to
3006 read a gather list. */
3007 uint64_t p3_perr : 1; /**< If a parity error occured on the port's packet
3008 data this bit may be set. */
3009 uint64_t p2_perr : 1; /**< If a parity error occured on the port's packet
3010 data this bit may be set. */
3011 uint64_t p1_perr : 1; /**< If a parity error occured on the port's packet
3012 data this bit may be set. */
3013 uint64_t p0_perr : 1; /**< If a parity error occured on the port's packet
3014 data this bit may be set. */
3015 uint64_t p3_rtout : 1; /**< Port-3 had a read timeout while attempting to
3016 read packet data. */
3017 uint64_t p2_rtout : 1; /**< Port-2 had a read timeout while attempting to
3018 read packet data. */
3019 uint64_t p1_rtout : 1; /**< Port-1 had a read timeout while attempting to
3020 read packet data. */
3021 uint64_t p0_rtout : 1; /**< Port-0 had a read timeout while attempting to
3022 read packet data. */
3023 uint64_t i3_overf : 1; /**< Port-3 had a doorbell overflow. Bit[31] of the
3024 doorbell count was set. */
3025 uint64_t i2_overf : 1; /**< Port-2 had a doorbell overflow. Bit[31] of the
3026 doorbell count was set. */
3027 uint64_t i1_overf : 1; /**< Port-1 had a doorbell overflow. Bit[31] of the
3028 doorbell count was set. */
3029 uint64_t i0_overf : 1; /**< Port-0 had a doorbell overflow. Bit[31] of the
3030 doorbell count was set. */
3031 uint64_t i3_rtout : 1; /**< Port-3 had a read timeout while attempting to
3032 read instructions. */
3033 uint64_t i2_rtout : 1; /**< Port-2 had a read timeout while attempting to
3034 read instructions. */
3035 uint64_t i1_rtout : 1; /**< Port-1 had a read timeout while attempting to
3036 read instructions. */
3037 uint64_t i0_rtout : 1; /**< Port-0 had a read timeout while attempting to
3038 read instructions. */
3039 uint64_t po3_2sml : 1; /**< The packet being sent out on Port3 is smaller
3040 than the NPI_BUFF_SIZE_OUTPUT3[ISIZE] field. */
3041 uint64_t po2_2sml : 1; /**< The packet being sent out on Port2 is smaller
3042 than the NPI_BUFF_SIZE_OUTPUT2[ISIZE] field. */
3043 uint64_t po1_2sml : 1; /**< The packet being sent out on Port1 is smaller
3044 than the NPI_BUFF_SIZE_OUTPUT1[ISIZE] field. */
3045 uint64_t po0_2sml : 1; /**< The packet being sent out on Port0 is smaller
3046 than the NPI_BUFF_SIZE_OUTPUT0[ISIZE] field. */
3047 uint64_t pci_rsl : 1; /**< This '1' when a bit in PCI_INT_SUM2 is SET and the
3048 corresponding bit in the PCI_INT_ENB2 is SET. */
3049 uint64_t rml_wto : 1; /**< Set '1' when the RML does not receive a commit
3050 back from a RSL after sending a write command to
3052 uint64_t rml_rto : 1; /**< Set '1' when the RML does not receive read data
3053 back from a RSL after sending a read command to
3056 uint64_t rml_rto : 1;
3057 uint64_t rml_wto : 1;
3058 uint64_t pci_rsl : 1;
3059 uint64_t po0_2sml : 1;
3060 uint64_t po1_2sml : 1;
3061 uint64_t po2_2sml : 1;
3062 uint64_t po3_2sml : 1;
3063 uint64_t i0_rtout : 1;
3064 uint64_t i1_rtout : 1;
3065 uint64_t i2_rtout : 1;
3066 uint64_t i3_rtout : 1;
3067 uint64_t i0_overf : 1;
3068 uint64_t i1_overf : 1;
3069 uint64_t i2_overf : 1;
3070 uint64_t i3_overf : 1;
3071 uint64_t p0_rtout : 1;
3072 uint64_t p1_rtout : 1;
3073 uint64_t p2_rtout : 1;
3074 uint64_t p3_rtout : 1;
3075 uint64_t p0_perr : 1;
3076 uint64_t p1_perr : 1;
3077 uint64_t p2_perr : 1;
3078 uint64_t p3_perr : 1;
3079 uint64_t g0_rtout : 1;
3080 uint64_t g1_rtout : 1;
3081 uint64_t g2_rtout : 1;
3082 uint64_t g3_rtout : 1;
3083 uint64_t p0_pperr : 1;
3084 uint64_t p1_pperr : 1;
3085 uint64_t p2_pperr : 1;
3086 uint64_t p3_pperr : 1;
3087 uint64_t p0_ptout : 1;
3088 uint64_t p1_ptout : 1;
3089 uint64_t p2_ptout : 1;
3090 uint64_t p3_ptout : 1;
3091 uint64_t i0_pperr : 1;
3092 uint64_t i1_pperr : 1;
3093 uint64_t i2_pperr : 1;
3094 uint64_t i3_pperr : 1;
3095 uint64_t win_rto : 1;
3096 uint64_t p_dperr : 1;
3097 uint64_t iobdma : 1;
3098 uint64_t reserved_42_63 : 22;
3101 struct cvmx_npi_int_sum_cn31xx cn50xx;
3102 struct cvmx_npi_int_sum_s cn58xx;
3103 struct cvmx_npi_int_sum_s cn58xxp1;
3105 typedef union cvmx_npi_int_sum cvmx_npi_int_sum_t;
3108 * cvmx_npi_lowp_dbell
3110 * NPI_LOWP_DBELL = Low Priority Door Bell
3112 * The door bell register for the low priority DMA queue.
3114 union cvmx_npi_lowp_dbell {
3116 struct cvmx_npi_lowp_dbell_s {
3117 #ifdef __BIG_ENDIAN_BITFIELD
3118 uint64_t reserved_16_63 : 48;
3119 uint64_t dbell : 16; /**< The value written to this register is added to the
3120 number of 8byte words to be read and processes for
3121 the low priority dma queue. */
3123 uint64_t dbell : 16;
3124 uint64_t reserved_16_63 : 48;
3127 struct cvmx_npi_lowp_dbell_s cn30xx;
3128 struct cvmx_npi_lowp_dbell_s cn31xx;
3129 struct cvmx_npi_lowp_dbell_s cn38xx;
3130 struct cvmx_npi_lowp_dbell_s cn38xxp2;
3131 struct cvmx_npi_lowp_dbell_s cn50xx;
3132 struct cvmx_npi_lowp_dbell_s cn58xx;
3133 struct cvmx_npi_lowp_dbell_s cn58xxp1;
3135 typedef union cvmx_npi_lowp_dbell cvmx_npi_lowp_dbell_t;
3138 * cvmx_npi_lowp_ibuff_saddr
3140 * NPI_LOWP_IBUFF_SADDR = DMA Low Priority's Instruction Buffer Starting Address
3142 * The address to start reading Instructions from for LOWP.
3144 union cvmx_npi_lowp_ibuff_saddr {
3146 struct cvmx_npi_lowp_ibuff_saddr_s {
3147 #ifdef __BIG_ENDIAN_BITFIELD
3148 uint64_t reserved_36_63 : 28;
3149 uint64_t saddr : 36; /**< The starting address to read the first instruction. */
3151 uint64_t saddr : 36;
3152 uint64_t reserved_36_63 : 28;
3155 struct cvmx_npi_lowp_ibuff_saddr_s cn30xx;
3156 struct cvmx_npi_lowp_ibuff_saddr_s cn31xx;
3157 struct cvmx_npi_lowp_ibuff_saddr_s cn38xx;
3158 struct cvmx_npi_lowp_ibuff_saddr_s cn38xxp2;
3159 struct cvmx_npi_lowp_ibuff_saddr_s cn50xx;
3160 struct cvmx_npi_lowp_ibuff_saddr_s cn58xx;
3161 struct cvmx_npi_lowp_ibuff_saddr_s cn58xxp1;
3163 typedef union cvmx_npi_lowp_ibuff_saddr cvmx_npi_lowp_ibuff_saddr_t;
3166 * cvmx_npi_mem_access_subid#
3168 * NPI_MEM_ACCESS_SUBID3 = Memory Access SubId 3Register
3170 * Carries Read/Write parameters for PP access to PCI memory that use NPI SubId3.
3171 * Writes to this register are not ordered with writes/reads to the PCI Memory space.
3172 * To ensure that a write has completed the user must read the register before
3173 * making an access(i.e. PCI memory space) that requires the value of this register to be updated.
3175 union cvmx_npi_mem_access_subidx {
3177 struct cvmx_npi_mem_access_subidx_s {
3178 #ifdef __BIG_ENDIAN_BITFIELD
3179 uint64_t reserved_38_63 : 26;
3180 uint64_t shortl : 1; /**< Generate CMD-6 on PCI(x) when '1'.
3181 Loads from the cores to the corresponding subid
3182 that are 32-bits or smaller:
3183 - Will generate the PCI-X "Memory Read DWORD"
3184 command in PCI-X mode. (Note that "Memory
3185 Read DWORD" appears much like an IO read on
3187 - Will generate the PCI "Memory Read" command
3188 in PCI-X mode, irrespective of the
3189 NPI_PCI_READ_CMD[CMD_SIZE] value.
3190 NOT IN PASS 1 NOR PASS 2 */
3191 uint64_t nmerge : 1; /**< No Merge. (NOT IN PASS 1 NOR PASS 2) */
3192 uint64_t esr : 2; /**< Endian-Swap on read. */
3193 uint64_t esw : 2; /**< Endian-Swap on write. */
3194 uint64_t nsr : 1; /**< No-Snoop on read. */
3195 uint64_t nsw : 1; /**< No-Snoop on write. */
3196 uint64_t ror : 1; /**< Relax Read on read. */
3197 uint64_t row : 1; /**< Relax Order on write. */
3198 uint64_t ba : 28; /**< PCI Address bits [63:36]. */
3207 uint64_t nmerge : 1;
3208 uint64_t shortl : 1;
3209 uint64_t reserved_38_63 : 26;
3212 struct cvmx_npi_mem_access_subidx_s cn30xx;
3213 struct cvmx_npi_mem_access_subidx_cn31xx {
3214 #ifdef __BIG_ENDIAN_BITFIELD
3215 uint64_t reserved_36_63 : 28;
3216 uint64_t esr : 2; /**< Endian-Swap on read. */
3217 uint64_t esw : 2; /**< Endian-Swap on write. */
3218 uint64_t nsr : 1; /**< No-Snoop on read. */
3219 uint64_t nsw : 1; /**< No-Snoop on write. */
3220 uint64_t ror : 1; /**< Relax Read on read. */
3221 uint64_t row : 1; /**< Relax Order on write. */
3222 uint64_t ba : 28; /**< PCI Address bits [63:36]. */
3231 uint64_t reserved_36_63 : 28;
3234 struct cvmx_npi_mem_access_subidx_s cn38xx;
3235 struct cvmx_npi_mem_access_subidx_cn31xx cn38xxp2;
3236 struct cvmx_npi_mem_access_subidx_s cn50xx;
3237 struct cvmx_npi_mem_access_subidx_s cn58xx;
3238 struct cvmx_npi_mem_access_subidx_s cn58xxp1;
3240 typedef union cvmx_npi_mem_access_subidx cvmx_npi_mem_access_subidx_t;
3245 * NPI_MSI_RCV = NPI MSI Receive Vector Register
3247 * A bit is set in this register relative to the vector received during a MSI. And cleared by a W1 to the register.
3249 union cvmx_npi_msi_rcv {
3251 struct cvmx_npi_msi_rcv_s {
3252 #ifdef __BIG_ENDIAN_BITFIELD
3253 uint64_t int_vec : 64; /**< Refer to PCI_MSI_RCV */
3255 uint64_t int_vec : 64;
3258 struct cvmx_npi_msi_rcv_s cn30xx;
3259 struct cvmx_npi_msi_rcv_s cn31xx;
3260 struct cvmx_npi_msi_rcv_s cn38xx;
3261 struct cvmx_npi_msi_rcv_s cn38xxp2;
3262 struct cvmx_npi_msi_rcv_s cn50xx;
3263 struct cvmx_npi_msi_rcv_s cn58xx;
3264 struct cvmx_npi_msi_rcv_s cn58xxp1;
3266 typedef union cvmx_npi_msi_rcv cvmx_npi_msi_rcv_t;
3269 * cvmx_npi_num_desc_output#
3271 * NUM_DESC_OUTPUT0 = Number Of Descriptors Available For Output 0
3273 * The size of the Buffer/Info Pointer Pair ring for Output-0.
3275 union cvmx_npi_num_desc_outputx {
3277 struct cvmx_npi_num_desc_outputx_s {
3278 #ifdef __BIG_ENDIAN_BITFIELD
3279 uint64_t reserved_32_63 : 32;
3280 uint64_t size : 32; /**< The size of the Buffer/Info Pointer Pair ring. */
3283 uint64_t reserved_32_63 : 32;
3286 struct cvmx_npi_num_desc_outputx_s cn30xx;
3287 struct cvmx_npi_num_desc_outputx_s cn31xx;
3288 struct cvmx_npi_num_desc_outputx_s cn38xx;
3289 struct cvmx_npi_num_desc_outputx_s cn38xxp2;
3290 struct cvmx_npi_num_desc_outputx_s cn50xx;
3291 struct cvmx_npi_num_desc_outputx_s cn58xx;
3292 struct cvmx_npi_num_desc_outputx_s cn58xxp1;
3294 typedef union cvmx_npi_num_desc_outputx cvmx_npi_num_desc_outputx_t;
3297 * cvmx_npi_output_control
3299 * NPI_OUTPUT_CONTROL = NPI's Output Control Register
3301 * The address to start reading Instructions from for Output-3.
3303 union cvmx_npi_output_control {
3305 struct cvmx_npi_output_control_s {
3306 #ifdef __BIG_ENDIAN_BITFIELD
3307 uint64_t reserved_49_63 : 15;
3308 uint64_t pkt_rr : 1; /**< When set '1' the output packet selection will be
3309 made with a Round Robin arbitration. When '0'
3310 the output packet port is fixed in priority,
3311 where the lower port number has higher priority.
3313 uint64_t p3_bmode : 1; /**< When set '1' PCI_PKTS_SENT3 register will be
3314 updated with the number of bytes in the packet
3315 sent, when '0' the register will have a value
3317 uint64_t p2_bmode : 1; /**< When set '1' PCI_PKTS_SENT2 register will be
3318 updated with the number of bytes in the packet
3319 sent, when '0' the register will have a value
3321 uint64_t p1_bmode : 1; /**< When set '1' PCI_PKTS_SENT1 register will be
3322 updated with the number of bytes in the packet
3323 sent, when '0' the register will have a value
3325 uint64_t p0_bmode : 1; /**< When set '1' PCI_PKTS_SENT0 register will be
3326 updated with the number of bytes in the packet
3327 sent, when '0' the register will have a value
3329 uint64_t o3_es : 2; /**< Endian Swap for Output3 Data. */
3330 uint64_t o3_ns : 1; /**< NoSnoop Enable for Output3 Data. */
3331 uint64_t o3_ro : 1; /**< Relaxed Ordering Enable for Output3 Data. */
3332 uint64_t o2_es : 2; /**< Endian Swap for Output2 Data. */
3333 uint64_t o2_ns : 1; /**< NoSnoop Enable for Output2 Data. */
3334 uint64_t o2_ro : 1; /**< Relaxed Ordering Enable for Output2 Data. */
3335 uint64_t o1_es : 2; /**< Endian Swap for Output1 Data. */
3336 uint64_t o1_ns : 1; /**< NoSnoop Enable for Output1 Data. */
3337 uint64_t o1_ro : 1; /**< Relaxed Ordering Enable for Output1 Data. */
3338 uint64_t o0_es : 2; /**< Endian Swap for Output0 Data. */
3339 uint64_t o0_ns : 1; /**< NoSnoop Enable for Output0 Data. */
3340 uint64_t o0_ro : 1; /**< Relaxed Ordering Enable for Output0 Data. */
3341 uint64_t o3_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3342 comes from the DPTR[63:60] in the scatter-list pair,
3343 and the RO, NS, ES values come from the O3_ES,
3344 O3_NS, O3_RO. When '0' the RO == DPTR[60],
3345 NS == DPTR[61], ES == DPTR[63:62], the address the
3346 packet will be written to is ADDR[63:60] ==
3347 O3_ES[1:0], O3_NS, O3_RO. For Output Port-3. */
3348 uint64_t o2_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3349 comes from the DPTR[63:60] in the scatter-list pair,
3350 and the RO, NS, ES values come from the O2_ES,
3351 O2_NS, O2_RO. When '0' the RO == DPTR[60],
3352 NS == DPTR[61], ES == DPTR[63:62], the address the
3353 packet will be written to is ADDR[63:60] ==
3354 O2_ES[1:0], O2_NS, O2_RO. For Output Port-2. */
3355 uint64_t o1_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3356 comes from the DPTR[63:60] in the scatter-list pair,
3357 and the RO, NS, ES values come from the O1_ES,
3358 O1_NS, O1_RO. When '0' the RO == DPTR[60],
3359 NS == DPTR[61], ES == DPTR[63:62], the address the
3360 packet will be written to is ADDR[63:60] ==
3361 O1_ES[1:0], O1_NS, O1_RO. For Output Port-1. */
3362 uint64_t o0_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3363 comes from the DPTR[63:60] in the scatter-list pair,
3364 and the RO, NS, ES values come from the O0_ES,
3365 O0_NS, O0_RO. When '0' the RO == DPTR[60],
3366 NS == DPTR[61], ES == DPTR[63:62], the address the
3367 packet will be written to is ADDR[63:60] ==
3368 O0_ES[1:0], O0_NS, O0_RO. For Output Port-0. */
3369 uint64_t reserved_20_23 : 4;
3370 uint64_t iptr_o3 : 1; /**< Uses the Info-Pointer to store length and data
3372 uint64_t iptr_o2 : 1; /**< Uses the Info-Pointer to store length and data
3374 uint64_t iptr_o1 : 1; /**< Uses the Info-Pointer to store length and data
3376 uint64_t iptr_o0 : 1; /**< Uses the Info-Pointer to store length and data
3378 uint64_t esr_sl3 : 2; /**< The Endian-Swap-Mode for Slist3 reads. */
3379 uint64_t nsr_sl3 : 1; /**< Enables '1' NoSnoop for Slist3 reads. */
3380 uint64_t ror_sl3 : 1; /**< Enables '1' Relaxed Ordering for Slist3 reads. */
3381 uint64_t esr_sl2 : 2; /**< The Endian-Swap-Mode for Slist2 reads. */
3382 uint64_t nsr_sl2 : 1; /**< Enables '1' NoSnoop for Slist2 reads. */
3383 uint64_t ror_sl2 : 1; /**< Enables '1' Relaxed Ordering for Slist2 reads. */
3384 uint64_t esr_sl1 : 2; /**< The Endian-Swap-Mode for Slist1 reads. */
3385 uint64_t nsr_sl1 : 1; /**< Enables '1' NoSnoop for Slist1 reads. */
3386 uint64_t ror_sl1 : 1; /**< Enables '1' Relaxed Ordering for Slist1 reads. */
3387 uint64_t esr_sl0 : 2; /**< The Endian-Swap-Mode for Slist0 reads. */
3388 uint64_t nsr_sl0 : 1; /**< Enables '1' NoSnoop for Slist0 reads. */
3389 uint64_t ror_sl0 : 1; /**< Enables '1' Relaxed Ordering for Slist0 reads. */
3391 uint64_t ror_sl0 : 1;
3392 uint64_t nsr_sl0 : 1;
3393 uint64_t esr_sl0 : 2;
3394 uint64_t ror_sl1 : 1;
3395 uint64_t nsr_sl1 : 1;
3396 uint64_t esr_sl1 : 2;
3397 uint64_t ror_sl2 : 1;
3398 uint64_t nsr_sl2 : 1;
3399 uint64_t esr_sl2 : 2;
3400 uint64_t ror_sl3 : 1;
3401 uint64_t nsr_sl3 : 1;
3402 uint64_t esr_sl3 : 2;
3403 uint64_t iptr_o0 : 1;
3404 uint64_t iptr_o1 : 1;
3405 uint64_t iptr_o2 : 1;
3406 uint64_t iptr_o3 : 1;
3407 uint64_t reserved_20_23 : 4;
3408 uint64_t o0_csrm : 1;
3409 uint64_t o1_csrm : 1;
3410 uint64_t o2_csrm : 1;
3411 uint64_t o3_csrm : 1;
3424 uint64_t p0_bmode : 1;
3425 uint64_t p1_bmode : 1;
3426 uint64_t p2_bmode : 1;
3427 uint64_t p3_bmode : 1;
3428 uint64_t pkt_rr : 1;
3429 uint64_t reserved_49_63 : 15;
3432 struct cvmx_npi_output_control_cn30xx {
3433 #ifdef __BIG_ENDIAN_BITFIELD
3434 uint64_t reserved_45_63 : 19;
3435 uint64_t p0_bmode : 1; /**< When set '1' PCI_PKTS_SENT0 register will be
3436 updated with the number of bytes in the packet
3437 sent, when '0' the register will have a value
3439 uint64_t reserved_32_43 : 12;
3440 uint64_t o0_es : 2; /**< Endian Swap for Output0 Data. */
3441 uint64_t o0_ns : 1; /**< NoSnoop Enable for Output0 Data. */
3442 uint64_t o0_ro : 1; /**< Relaxed Ordering Enable for Output0 Data. */
3443 uint64_t reserved_25_27 : 3;
3444 uint64_t o0_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3445 comes from the DPTR[63:60] in the scatter-list pair,
3446 and the RO, NS, ES values come from the O0_ES,
3447 O0_NS, O0_RO. When '0' the RO == DPTR[60],
3448 NS == DPTR[61], ES == DPTR[63:62], the address the
3449 packet will be written to is ADDR[63:60] ==
3450 O0_ES[1:0], O0_NS, O0_RO. For Output Port-0. */
3451 uint64_t reserved_17_23 : 7;
3452 uint64_t iptr_o0 : 1; /**< Uses the Info-Pointer to store length and data
3454 uint64_t reserved_4_15 : 12;
3455 uint64_t esr_sl0 : 2; /**< The Endian-Swap-Mode for Slist0 reads. */
3456 uint64_t nsr_sl0 : 1; /**< Enables '1' NoSnoop for Slist0 reads. */
3457 uint64_t ror_sl0 : 1; /**< Enables '1' Relaxed Ordering for Slist0 reads. */
3459 uint64_t ror_sl0 : 1;
3460 uint64_t nsr_sl0 : 1;
3461 uint64_t esr_sl0 : 2;
3462 uint64_t reserved_4_15 : 12;
3463 uint64_t iptr_o0 : 1;
3464 uint64_t reserved_17_23 : 7;
3465 uint64_t o0_csrm : 1;
3466 uint64_t reserved_25_27 : 3;
3470 uint64_t reserved_32_43 : 12;
3471 uint64_t p0_bmode : 1;
3472 uint64_t reserved_45_63 : 19;
3475 struct cvmx_npi_output_control_cn31xx {
3476 #ifdef __BIG_ENDIAN_BITFIELD
3477 uint64_t reserved_46_63 : 18;
3478 uint64_t p1_bmode : 1; /**< When set '1' PCI_PKTS_SENT1 register will be
3479 updated with the number of bytes in the packet
3480 sent, when '0' the register will have a value
3482 uint64_t p0_bmode : 1; /**< When set '1' PCI_PKTS_SENT0 register will be
3483 updated with the number of bytes in the packet
3484 sent, when '0' the register will have a value
3486 uint64_t reserved_36_43 : 8;
3487 uint64_t o1_es : 2; /**< Endian Swap for Output1 Data. */
3488 uint64_t o1_ns : 1; /**< NoSnoop Enable for Output1 Data. */
3489 uint64_t o1_ro : 1; /**< Relaxed Ordering Enable for Output1 Data. */
3490 uint64_t o0_es : 2; /**< Endian Swap for Output0 Data. */
3491 uint64_t o0_ns : 1; /**< NoSnoop Enable for Output0 Data. */
3492 uint64_t o0_ro : 1; /**< Relaxed Ordering Enable for Output0 Data. */
3493 uint64_t reserved_26_27 : 2;
3494 uint64_t o1_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3495 comes from the DPTR[63:60] in the scatter-list pair,
3496 and the RO, NS, ES values come from the O1_ES,
3497 O1_NS, O1_RO. When '0' the RO == DPTR[60],
3498 NS == DPTR[61], ES == DPTR[63:62], the address the
3499 packet will be written to is ADDR[63:60] ==
3500 O1_ES[1:0], O1_NS, O1_RO. For Output Port-1. */
3501 uint64_t o0_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3502 comes from the DPTR[63:60] in the scatter-list pair,
3503 and the RO, NS, ES values come from the O0_ES,
3504 O0_NS, O0_RO. When '0' the RO == DPTR[60],
3505 NS == DPTR[61], ES == DPTR[63:62], the address the
3506 packet will be written to is ADDR[63:60] ==
3507 O0_ES[1:0], O0_NS, O0_RO. For Output Port-0. */
3508 uint64_t reserved_18_23 : 6;
3509 uint64_t iptr_o1 : 1; /**< Uses the Info-Pointer to store length and data
3511 uint64_t iptr_o0 : 1; /**< Uses the Info-Pointer to store length and data
3513 uint64_t reserved_8_15 : 8;
3514 uint64_t esr_sl1 : 2; /**< The Endian-Swap-Mode for Slist1 reads. */
3515 uint64_t nsr_sl1 : 1; /**< Enables '1' NoSnoop for Slist1 reads. */
3516 uint64_t ror_sl1 : 1; /**< Enables '1' Relaxed Ordering for Slist1 reads. */
3517 uint64_t esr_sl0 : 2; /**< The Endian-Swap-Mode for Slist0 reads. */
3518 uint64_t nsr_sl0 : 1; /**< Enables '1' NoSnoop for Slist0 reads. */
3519 uint64_t ror_sl0 : 1; /**< Enables '1' Relaxed Ordering for Slist0 reads. */
3521 uint64_t ror_sl0 : 1;
3522 uint64_t nsr_sl0 : 1;
3523 uint64_t esr_sl0 : 2;
3524 uint64_t ror_sl1 : 1;
3525 uint64_t nsr_sl1 : 1;
3526 uint64_t esr_sl1 : 2;
3527 uint64_t reserved_8_15 : 8;
3528 uint64_t iptr_o0 : 1;
3529 uint64_t iptr_o1 : 1;
3530 uint64_t reserved_18_23 : 6;
3531 uint64_t o0_csrm : 1;
3532 uint64_t o1_csrm : 1;
3533 uint64_t reserved_26_27 : 2;
3540 uint64_t reserved_36_43 : 8;
3541 uint64_t p0_bmode : 1;
3542 uint64_t p1_bmode : 1;
3543 uint64_t reserved_46_63 : 18;
3546 struct cvmx_npi_output_control_s cn38xx;
3547 struct cvmx_npi_output_control_cn38xxp2 {
3548 #ifdef __BIG_ENDIAN_BITFIELD
3549 uint64_t reserved_48_63 : 16;
3550 uint64_t p3_bmode : 1; /**< When set '1' PCI_PKTS_SENT3 register will be
3551 updated with the number of bytes in the packet
3552 sent, when '0' the register will have a value
3554 uint64_t p2_bmode : 1; /**< When set '1' PCI_PKTS_SENT2 register will be
3555 updated with the number of bytes in the packet
3556 sent, when '0' the register will have a value
3558 uint64_t p1_bmode : 1; /**< When set '1' PCI_PKTS_SENT1 register will be
3559 updated with the number of bytes in the packet
3560 sent, when '0' the register will have a value
3562 uint64_t p0_bmode : 1; /**< When set '1' PCI_PKTS_SENT0 register will be
3563 updated with the number of bytes in the packet
3564 sent, when '0' the register will have a value
3566 uint64_t o3_es : 2; /**< Endian Swap for Output3 Data. */
3567 uint64_t o3_ns : 1; /**< NoSnoop Enable for Output3 Data. */
3568 uint64_t o3_ro : 1; /**< Relaxed Ordering Enable for Output3 Data. */
3569 uint64_t o2_es : 2; /**< Endian Swap for Output2 Data. */
3570 uint64_t o2_ns : 1; /**< NoSnoop Enable for Output2 Data. */
3571 uint64_t o2_ro : 1; /**< Relaxed Ordering Enable for Output2 Data. */
3572 uint64_t o1_es : 2; /**< Endian Swap for Output1 Data. */
3573 uint64_t o1_ns : 1; /**< NoSnoop Enable for Output1 Data. */
3574 uint64_t o1_ro : 1; /**< Relaxed Ordering Enable for Output1 Data. */
3575 uint64_t o0_es : 2; /**< Endian Swap for Output0 Data. */
3576 uint64_t o0_ns : 1; /**< NoSnoop Enable for Output0 Data. */
3577 uint64_t o0_ro : 1; /**< Relaxed Ordering Enable for Output0 Data. */
3578 uint64_t o3_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3579 comes from the DPTR[63:60] in the scatter-list pair,
3580 and the RO, NS, ES values come from the O3_ES,
3581 O3_NS, O3_RO. When '0' the RO == DPTR[60],
3582 NS == DPTR[61], ES == DPTR[63:62], the address the
3583 packet will be written to is ADDR[63:60] ==
3584 O3_ES[1:0], O3_NS, O3_RO. For Output Port-3. */
3585 uint64_t o2_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3586 comes from the DPTR[63:60] in the scatter-list pair,
3587 and the RO, NS, ES values come from the O2_ES,
3588 O2_NS, O2_RO. When '0' the RO == DPTR[60],
3589 NS == DPTR[61], ES == DPTR[63:62], the address the
3590 packet will be written to is ADDR[63:60] ==
3591 O2_ES[1:0], O2_NS, O2_RO. For Output Port-2. */
3592 uint64_t o1_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3593 comes from the DPTR[63:60] in the scatter-list pair,
3594 and the RO, NS, ES values come from the O1_ES,
3595 O1_NS, O1_RO. When '0' the RO == DPTR[60],
3596 NS == DPTR[61], ES == DPTR[63:62], the address the
3597 packet will be written to is ADDR[63:60] ==
3598 O1_ES[1:0], O1_NS, O1_RO. For Output Port-1. */
3599 uint64_t o0_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3600 comes from the DPTR[63:60] in the scatter-list pair,
3601 and the RO, NS, ES values come from the O0_ES,
3602 O0_NS, O0_RO. When '0' the RO == DPTR[60],
3603 NS == DPTR[61], ES == DPTR[63:62], the address the
3604 packet will be written to is ADDR[63:60] ==
3605 O0_ES[1:0], O0_NS, O0_RO. For Output Port-0. */
3606 uint64_t reserved_20_23 : 4;
3607 uint64_t iptr_o3 : 1; /**< Uses the Info-Pointer to store length and data
3609 uint64_t iptr_o2 : 1; /**< Uses the Info-Pointer to store length and data
3611 uint64_t iptr_o1 : 1; /**< Uses the Info-Pointer to store length and data
3613 uint64_t iptr_o0 : 1; /**< Uses the Info-Pointer to store length and data
3615 uint64_t esr_sl3 : 2; /**< The Endian-Swap-Mode for Slist3 reads. */
3616 uint64_t nsr_sl3 : 1; /**< Enables '1' NoSnoop for Slist3 reads. */
3617 uint64_t ror_sl3 : 1; /**< Enables '1' Relaxed Ordering for Slist3 reads. */
3618 uint64_t esr_sl2 : 2; /**< The Endian-Swap-Mode for Slist2 reads. */
3619 uint64_t nsr_sl2 : 1; /**< Enables '1' NoSnoop for Slist2 reads. */
3620 uint64_t ror_sl2 : 1; /**< Enables '1' Relaxed Ordering for Slist2 reads. */
3621 uint64_t esr_sl1 : 2; /**< The Endian-Swap-Mode for Slist1 reads. */
3622 uint64_t nsr_sl1 : 1; /**< Enables '1' NoSnoop for Slist1 reads. */
3623 uint64_t ror_sl1 : 1; /**< Enables '1' Relaxed Ordering for Slist1 reads. */
3624 uint64_t esr_sl0 : 2; /**< The Endian-Swap-Mode for Slist0 reads. */
3625 uint64_t nsr_sl0 : 1; /**< Enables '1' NoSnoop for Slist0 reads. */
3626 uint64_t ror_sl0 : 1; /**< Enables '1' Relaxed Ordering for Slist0 reads. */
3628 uint64_t ror_sl0 : 1;
3629 uint64_t nsr_sl0 : 1;
3630 uint64_t esr_sl0 : 2;
3631 uint64_t ror_sl1 : 1;
3632 uint64_t nsr_sl1 : 1;
3633 uint64_t esr_sl1 : 2;
3634 uint64_t ror_sl2 : 1;
3635 uint64_t nsr_sl2 : 1;
3636 uint64_t esr_sl2 : 2;
3637 uint64_t ror_sl3 : 1;
3638 uint64_t nsr_sl3 : 1;
3639 uint64_t esr_sl3 : 2;
3640 uint64_t iptr_o0 : 1;
3641 uint64_t iptr_o1 : 1;
3642 uint64_t iptr_o2 : 1;
3643 uint64_t iptr_o3 : 1;
3644 uint64_t reserved_20_23 : 4;
3645 uint64_t o0_csrm : 1;
3646 uint64_t o1_csrm : 1;
3647 uint64_t o2_csrm : 1;
3648 uint64_t o3_csrm : 1;
3661 uint64_t p0_bmode : 1;
3662 uint64_t p1_bmode : 1;
3663 uint64_t p2_bmode : 1;
3664 uint64_t p3_bmode : 1;
3665 uint64_t reserved_48_63 : 16;
3668 struct cvmx_npi_output_control_cn50xx {
3669 #ifdef __BIG_ENDIAN_BITFIELD
3670 uint64_t reserved_49_63 : 15;
3671 uint64_t pkt_rr : 1; /**< When set '1' the output packet selection will be
3672 made with a Round Robin arbitration. When '0'
3673 the output packet port is fixed in priority,
3674 where the lower port number has higher priority.
3676 uint64_t reserved_46_47 : 2;
3677 uint64_t p1_bmode : 1; /**< When set '1' PCI_PKTS_SENT1 register will be
3678 updated with the number of bytes in the packet
3679 sent, when '0' the register will have a value
3681 uint64_t p0_bmode : 1; /**< When set '1' PCI_PKTS_SENT0 register will be
3682 updated with the number of bytes in the packet
3683 sent, when '0' the register will have a value
3685 uint64_t reserved_36_43 : 8;
3686 uint64_t o1_es : 2; /**< Endian Swap for Output1 Data. */
3687 uint64_t o1_ns : 1; /**< NoSnoop Enable for Output1 Data. */
3688 uint64_t o1_ro : 1; /**< Relaxed Ordering Enable for Output1 Data. */
3689 uint64_t o0_es : 2; /**< Endian Swap for Output0 Data. */
3690 uint64_t o0_ns : 1; /**< NoSnoop Enable for Output0 Data. */
3691 uint64_t o0_ro : 1; /**< Relaxed Ordering Enable for Output0 Data. */
3692 uint64_t reserved_26_27 : 2;
3693 uint64_t o1_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3694 comes from the DPTR[63:60] in the scatter-list pair,
3695 and the RO, NS, ES values come from the O1_ES,
3696 O1_NS, O1_RO. When '0' the RO == DPTR[60],
3697 NS == DPTR[61], ES == DPTR[63:62], the address the
3698 packet will be written to is ADDR[63:60] ==
3699 O1_ES[1:0], O1_NS, O1_RO. For Output Port-1. */
3700 uint64_t o0_csrm : 1; /**< When '1' the address[63:60] to write packet data,
3701 comes from the DPTR[63:60] in the scatter-list pair,
3702 and the RO, NS, ES values come from the O0_ES,
3703 O0_NS, O0_RO. When '0' the RO == DPTR[60],
3704 NS == DPTR[61], ES == DPTR[63:62], the address the
3705 packet will be written to is ADDR[63:60] ==
3706 O0_ES[1:0], O0_NS, O0_RO. For Output Port-0. */
3707 uint64_t reserved_18_23 : 6;
3708 uint64_t iptr_o1 : 1; /**< Uses the Info-Pointer to store length and data
3710 uint64_t iptr_o0 : 1; /**< Uses the Info-Pointer to store length and data
3712 uint64_t reserved_8_15 : 8;
3713 uint64_t esr_sl1 : 2; /**< The Endian-Swap-Mode for Slist1 reads. */
3714 uint64_t nsr_sl1 : 1; /**< Enables '1' NoSnoop for Slist1 reads. */
3715 uint64_t ror_sl1 : 1; /**< Enables '1' Relaxed Ordering for Slist1 reads. */
3716 uint64_t esr_sl0 : 2; /**< The Endian-Swap-Mode for Slist0 reads. */
3717 uint64_t nsr_sl0 : 1; /**< Enables '1' NoSnoop for Slist0 reads. */
3718 uint64_t ror_sl0 : 1; /**< Enables '1' Relaxed Ordering for Slist0 reads. */
3720 uint64_t ror_sl0 : 1;
3721 uint64_t nsr_sl0 : 1;
3722 uint64_t esr_sl0 : 2;
3723 uint64_t ror_sl1 : 1;
3724 uint64_t nsr_sl1 : 1;
3725 uint64_t esr_sl1 : 2;
3726 uint64_t reserved_8_15 : 8;
3727 uint64_t iptr_o0 : 1;
3728 uint64_t iptr_o1 : 1;
3729 uint64_t reserved_18_23 : 6;
3730 uint64_t o0_csrm : 1;
3731 uint64_t o1_csrm : 1;
3732 uint64_t reserved_26_27 : 2;
3739 uint64_t reserved_36_43 : 8;
3740 uint64_t p0_bmode : 1;
3741 uint64_t p1_bmode : 1;
3742 uint64_t reserved_46_47 : 2;
3743 uint64_t pkt_rr : 1;
3744 uint64_t reserved_49_63 : 15;
3747 struct cvmx_npi_output_control_s cn58xx;
3748 struct cvmx_npi_output_control_s cn58xxp1;
3750 typedef union cvmx_npi_output_control cvmx_npi_output_control_t;
3753 * cvmx_npi_p#_dbpair_addr
3755 * NPI_P0_DBPAIR_ADDR = NPI's Port-0 DATA-BUFFER Pair Next Read Address.
3757 * Contains the next address to read for Port's-0 Data/Buffer Pair.
3759 union cvmx_npi_px_dbpair_addr {
3761 struct cvmx_npi_px_dbpair_addr_s {
3762 #ifdef __BIG_ENDIAN_BITFIELD
3763 uint64_t reserved_63_63 : 1;
3764 uint64_t state : 2; /**< POS state machine vector. Used to tell when NADDR
3765 is valid (when STATE == 0). */
3766 uint64_t naddr : 61; /**< Bits [63:3] of the next Data-Info Pair to read.
3767 Value is only valid when STATE == 0. */
3769 uint64_t naddr : 61;
3771 uint64_t reserved_63_63 : 1;
3774 struct cvmx_npi_px_dbpair_addr_s cn30xx;
3775 struct cvmx_npi_px_dbpair_addr_s cn31xx;
3776 struct cvmx_npi_px_dbpair_addr_s cn38xx;
3777 struct cvmx_npi_px_dbpair_addr_s cn38xxp2;
3778 struct cvmx_npi_px_dbpair_addr_s cn50xx;
3779 struct cvmx_npi_px_dbpair_addr_s cn58xx;
3780 struct cvmx_npi_px_dbpair_addr_s cn58xxp1;
3782 typedef union cvmx_npi_px_dbpair_addr cvmx_npi_px_dbpair_addr_t;
3785 * cvmx_npi_p#_instr_addr
3787 * NPI_P0_INSTR_ADDR = NPI's Port-0 Instruction Next Read Address.
3789 * Contains the next address to read for Port's-0 Instructions.
3791 union cvmx_npi_px_instr_addr {
3793 struct cvmx_npi_px_instr_addr_s {
3794 #ifdef __BIG_ENDIAN_BITFIELD
3795 uint64_t state : 3; /**< Gather engine state vector. Used to tell when
3796 NADDR is valid (when STATE == 0). */
3797 uint64_t naddr : 61; /**< Bits [63:3] of the next Instruction to read.
3798 Value is only valid when STATE == 0. */
3800 uint64_t naddr : 61;
3804 struct cvmx_npi_px_instr_addr_s cn30xx;
3805 struct cvmx_npi_px_instr_addr_s cn31xx;
3806 struct cvmx_npi_px_instr_addr_s cn38xx;
3807 struct cvmx_npi_px_instr_addr_s cn38xxp2;
3808 struct cvmx_npi_px_instr_addr_s cn50xx;
3809 struct cvmx_npi_px_instr_addr_s cn58xx;
3810 struct cvmx_npi_px_instr_addr_s cn58xxp1;
3812 typedef union cvmx_npi_px_instr_addr cvmx_npi_px_instr_addr_t;
3815 * cvmx_npi_p#_instr_cnts
3817 * NPI_P0_INSTR_CNTS = NPI's Port-0 Instruction Counts For Packets In.
3819 * Used to determine the number of instruction in the NPI and to be fetched for Input-Packets.
3821 union cvmx_npi_px_instr_cnts {
3823 struct cvmx_npi_px_instr_cnts_s {
3824 #ifdef __BIG_ENDIAN_BITFIELD
3825 uint64_t reserved_38_63 : 26;
3826 uint64_t fcnt : 6; /**< Number entries in the Instruction FIFO. */
3827 uint64_t avail : 32; /**< Doorbell count to be read. */
3829 uint64_t avail : 32;
3831 uint64_t reserved_38_63 : 26;
3834 struct cvmx_npi_px_instr_cnts_s cn30xx;
3835 struct cvmx_npi_px_instr_cnts_s cn31xx;
3836 struct cvmx_npi_px_instr_cnts_s cn38xx;
3837 struct cvmx_npi_px_instr_cnts_s cn38xxp2;
3838 struct cvmx_npi_px_instr_cnts_s cn50xx;
3839 struct cvmx_npi_px_instr_cnts_s cn58xx;
3840 struct cvmx_npi_px_instr_cnts_s cn58xxp1;
3842 typedef union cvmx_npi_px_instr_cnts cvmx_npi_px_instr_cnts_t;
3845 * cvmx_npi_p#_pair_cnts
3847 * NPI_P0_PAIR_CNTS = NPI's Port-0 Instruction Counts For Packets Out.
3849 * Used to determine the number of instruction in the NPI and to be fetched for Output-Packets.
3851 union cvmx_npi_px_pair_cnts {
3853 struct cvmx_npi_px_pair_cnts_s {
3854 #ifdef __BIG_ENDIAN_BITFIELD
3855 uint64_t reserved_37_63 : 27;
3856 uint64_t fcnt : 5; /**< 16 - number entries in the D/I Pair FIFO. */
3857 uint64_t avail : 32; /**< Doorbell count to be read. */
3859 uint64_t avail : 32;
3861 uint64_t reserved_37_63 : 27;
3864 struct cvmx_npi_px_pair_cnts_s cn30xx;
3865 struct cvmx_npi_px_pair_cnts_s cn31xx;
3866 struct cvmx_npi_px_pair_cnts_s cn38xx;
3867 struct cvmx_npi_px_pair_cnts_s cn38xxp2;
3868 struct cvmx_npi_px_pair_cnts_s cn50xx;
3869 struct cvmx_npi_px_pair_cnts_s cn58xx;
3870 struct cvmx_npi_px_pair_cnts_s cn58xxp1;
3872 typedef union cvmx_npi_px_pair_cnts cvmx_npi_px_pair_cnts_t;
3875 * cvmx_npi_pci_burst_size
3877 * NPI_PCI_BURST_SIZE = NPI PCI Burst Size Register
3879 * Control the number of words the NPI will attempt to read / write to/from the PCI.
3881 union cvmx_npi_pci_burst_size {
3883 struct cvmx_npi_pci_burst_size_s {
3884 #ifdef __BIG_ENDIAN_BITFIELD
3885 uint64_t reserved_14_63 : 50;
3886 uint64_t wr_brst : 7; /**< The number of 8B words to write to PCI in any one
3887 write operation. A zero is equal to 128. This
3888 value is used the packet reads and is clamped at
3889 a max of 112 for dma writes. */
3890 uint64_t rd_brst : 7; /**< Number of 8B words to read from PCI in any one
3891 read operation. Legal values are 1 to 127, where
3892 a 0 will be treated as a 1.
3893 "For reading of packet data value is limited to 64
3895 This value does not control the size of a read
3896 caused by an IOBDMA from a PP. */
3898 uint64_t rd_brst : 7;
3899 uint64_t wr_brst : 7;
3900 uint64_t reserved_14_63 : 50;
3903 struct cvmx_npi_pci_burst_size_s cn30xx;
3904 struct cvmx_npi_pci_burst_size_s cn31xx;
3905 struct cvmx_npi_pci_burst_size_s cn38xx;
3906 struct cvmx_npi_pci_burst_size_s cn38xxp2;
3907 struct cvmx_npi_pci_burst_size_s cn50xx;
3908 struct cvmx_npi_pci_burst_size_s cn58xx;
3909 struct cvmx_npi_pci_burst_size_s cn58xxp1;
3911 typedef union cvmx_npi_pci_burst_size cvmx_npi_pci_burst_size_t;
3914 * cvmx_npi_pci_int_arb_cfg
3916 * NPI_PCI_INT_ARB_CFG = Configuration For PCI Arbiter
3918 * Controls operation of the Internal PCI Arbiter. This register should
3919 * only be written when PRST# is asserted. NPI_PCI_INT_ARB_CFG[EN] should
3920 * only be set when Octane is a host.
3922 union cvmx_npi_pci_int_arb_cfg {
3924 struct cvmx_npi_pci_int_arb_cfg_s {
3925 #ifdef __BIG_ENDIAN_BITFIELD
3926 uint64_t reserved_13_63 : 51;
3927 uint64_t hostmode : 1; /**< PCI Host Mode Pin (sampled for use by software).
3928 This bit reflects the sampled PCI_HOSTMODE pin.
3929 In HOST Mode, OCTEON drives the PCI_CLK_OUT and
3930 PCI initialization pattern during PCI_RST_N deassertion). */
3931 uint64_t pci_ovr : 4; /**< PCI Host Mode Bus Speed/Type Override
3932 When in Host Mode(PCI_HOSTMODE pin =1), OCTEON acting
3933 as the PCI Central Agent, samples the PCI_PCI100,
3934 PCI_M66EN and PCI_PCIXCAP pins to determine the
3935 'sampled' PCI Bus speed and Bus Type (PCI or PCIX).
3936 (see: PCI_CNT_REG[HM_SPEED,HM_PCIX])
3937 However, in some cases, SW may want to override the
3938 the 'sampled' PCI Bus Type/Speed, and use some
3939 SLOWER Bus frequency.
3940 The PCI_OVR field encoding represents the 'override'
3941 PCI Bus Type/Speed which will be used to generate the
3942 PCI_CLK_OUT and determines the PCI initialization pattern
3943 driven during PCI_RST_N deassertion.
3944 PCI_OVR[3]: OVERRIDE (0:DISABLE/1:ENABLE)
3945 PCI_OVR[2]: BUS TYPE(0:PCI/1:PCIX)
3946 PCI_OVR[1:0]: BUS SPEED(0:33/1:66/2:100/3:133)
3947 OVERRIDE TYPE SPEED | Override Configuration
3948 [3] [2] [1:0] | TYPE SPEED
3949 ------------------+-------------------------------
3950 0 x xx | No override(uses 'sampled'
3951 | Bus Speed(HM_SPEED) and Bus Type(HM_PCIX)
3952 1 0 00 | PCI Mode 33MHz
3953 1 0 01 | PCI Mode 66MHz
3954 1 0 10 | RESERVED (DO NOT USE)
3955 1 0 11 | RESERVED (DO NOT USE)
3956 1 1 00 | RESERVED (DO NOT USE)
3957 1 1 01 | PCIX Mode 66MHz
3958 1 1 10 | PCIX Mode 100MHz
3959 1 1 11 | PCIX Mode 133MHz
3961 - NPI_PCI_INT_ARB_CFG[PCI_OVR] has NO EFFECT on
3962 PCI_CNT_REG[HM_SPEED,HM_PCIX] (ie: the sampled PCI Bus
3963 Type/Speed), but WILL EFFECT PCI_CTL_STATUS_2[AP_PCIX]
3964 which reflects the actual PCI Bus Type(0:PCI/1:PCIX).
3965 - Software should never 'up' configure the recommended values.
3966 In other words, if the 'sampled' Bus Type=PCI(HM_PCIX=0),
3967 then SW should NOT attempt to set TYPE[2]=1 for PCIX Mode.
3968 Likewise, if the sampled Bus Speed=66MHz(HM_SPEED=01),
3969 then SW should NOT attempt to 'speed up' the bus [ie:
3970 SPEED[1:0]=10(100MHz)].
3971 - If PCI_OVR<3> is set prior to PCI reset de-assertion
3972 in host mode, NPI_PCI_INT_ARB_CFG[PCI_OVR]
3973 indicates the Bus Type/Speed that OCTEON drove on the
3974 DEVSEL/STOP/TRDY pins during reset de-assertion. (user
3975 should then ignore the 'sampled' Bus Type/Speed
3976 contained in the PCI_CNT_REG[HM_PCIX, HM_SPEED]) fields.
3977 - If PCI_OVR<3> is clear prior to PCI reset de-assertion
3978 in host mode, PCI_CNT_REG[HM_PCIX,HM_SPEED])
3979 indicates the Bus Type/Speed that OCTEON drove on the
3980 DEVSEL/STOP/TRDY pins during reset de-assertion. */
3981 uint64_t reserved_5_7 : 3;
3982 uint64_t en : 1; /**< Internal arbiter enable. */
3983 uint64_t park_mod : 1; /**< Bus park mode. 0=park on last, 1=park on device. */
3984 uint64_t park_dev : 3; /**< Bus park device. 0-3 External device, 4 = Octane. */
3986 uint64_t park_dev : 3;
3987 uint64_t park_mod : 1;
3989 uint64_t reserved_5_7 : 3;
3990 uint64_t pci_ovr : 4;
3991 uint64_t hostmode : 1;
3992 uint64_t reserved_13_63 : 51;
3995 struct cvmx_npi_pci_int_arb_cfg_cn30xx {
3996 #ifdef __BIG_ENDIAN_BITFIELD
3997 uint64_t reserved_5_63 : 59;
3998 uint64_t en : 1; /**< Internal arbiter enable. */
3999 uint64_t park_mod : 1; /**< Bus park mode. 0=park on last, 1=park on device. */
4000 uint64_t park_dev : 3; /**< Bus park device. 0-3 External device, 4 = Octane. */
4002 uint64_t park_dev : 3;
4003 uint64_t park_mod : 1;
4005 uint64_t reserved_5_63 : 59;
4008 struct cvmx_npi_pci_int_arb_cfg_cn30xx cn31xx;
4009 struct cvmx_npi_pci_int_arb_cfg_cn30xx cn38xx;
4010 struct cvmx_npi_pci_int_arb_cfg_cn30xx cn38xxp2;
4011 struct cvmx_npi_pci_int_arb_cfg_s cn50xx;
4012 struct cvmx_npi_pci_int_arb_cfg_s cn58xx;
4013 struct cvmx_npi_pci_int_arb_cfg_s cn58xxp1;
4015 typedef union cvmx_npi_pci_int_arb_cfg cvmx_npi_pci_int_arb_cfg_t;
4018 * cvmx_npi_pci_read_cmd
4020 * NPI_PCI_READ_CMD = NPI PCI Read Command Register
4022 * Controls the type of read command sent.
4023 * Writes to this register are not ordered with writes/reads to the PCI Memory space.
4024 * To ensure that a write has completed the user must read the register before
4025 * making an access(i.e. PCI memory space) that requires the value of this register to be updated.
4026 * Also any previously issued reads/writes to PCI memory space, still stored in the outbound
4027 * FIFO will use the value of this register after it has been updated.
4029 union cvmx_npi_pci_read_cmd {
4031 struct cvmx_npi_pci_read_cmd_s {
4032 #ifdef __BIG_ENDIAN_BITFIELD
4033 uint64_t reserved_11_63 : 53;
4034 uint64_t cmd_size : 11; /**< Number bytes to be read is equal to or exceeds this
4035 size will cause the PCI in PCI mode to use a
4036 Memory-Read-Multiple. This register has a value
4037 from 8 to 2048. A value of 0-7 will be treated as
4040 uint64_t cmd_size : 11;
4041 uint64_t reserved_11_63 : 53;
4044 struct cvmx_npi_pci_read_cmd_s cn30xx;
4045 struct cvmx_npi_pci_read_cmd_s cn31xx;
4046 struct cvmx_npi_pci_read_cmd_s cn38xx;
4047 struct cvmx_npi_pci_read_cmd_s cn38xxp2;
4048 struct cvmx_npi_pci_read_cmd_s cn50xx;
4049 struct cvmx_npi_pci_read_cmd_s cn58xx;
4050 struct cvmx_npi_pci_read_cmd_s cn58xxp1;
4052 typedef union cvmx_npi_pci_read_cmd cvmx_npi_pci_read_cmd_t;
4055 * cvmx_npi_port32_instr_hdr
4057 * NPI_PORT32_INSTR_HDR = NPI Port 32 Instruction Header
4059 * Contains bits [62:42] of the Instruction Header for port 32.
4061 union cvmx_npi_port32_instr_hdr {
4063 struct cvmx_npi_port32_instr_hdr_s {
4064 #ifdef __BIG_ENDIAN_BITFIELD
4065 uint64_t reserved_44_63 : 20;
4066 uint64_t pbp : 1; /**< Enable Packet-by-packet mode. */
4067 uint64_t rsv_f : 5; /**< Reserved */
4068 uint64_t rparmode : 2; /**< Parse Mode. Used when packet is raw and PBP==0. */
4069 uint64_t rsv_e : 1; /**< Reserved */
4070 uint64_t rskp_len : 7; /**< Skip Length. Used when packet is raw and PBP==0. */
4071 uint64_t rsv_d : 6; /**< Reserved */
4072 uint64_t use_ihdr : 1; /**< When set '1' the instruction header will be sent
4073 as part of the packet data, regardless of the
4074 value of bit [63] of the instruction header.
4075 USE_IHDR must be set whenever PBP is set. */
4076 uint64_t rsv_c : 5; /**< Reserved */
4077 uint64_t par_mode : 2; /**< Parse Mode. Used when USE_IHDR is set and packet
4078 is not raw and PBP is not set. */
4079 uint64_t rsv_b : 1; /**< Reserved
4080 instruction header sent to IPD. */
4081 uint64_t skp_len : 7; /**< Skip Length. Used when USE_IHDR is set and packet
4082 is not raw and PBP is not set. */
4083 uint64_t rsv_a : 6; /**< Reserved */
4086 uint64_t skp_len : 7;
4088 uint64_t par_mode : 2;
4090 uint64_t use_ihdr : 1;
4092 uint64_t rskp_len : 7;
4094 uint64_t rparmode : 2;
4097 uint64_t reserved_44_63 : 20;
4100 struct cvmx_npi_port32_instr_hdr_s cn30xx;
4101 struct cvmx_npi_port32_instr_hdr_s cn31xx;
4102 struct cvmx_npi_port32_instr_hdr_s cn38xx;
4103 struct cvmx_npi_port32_instr_hdr_s cn38xxp2;
4104 struct cvmx_npi_port32_instr_hdr_s cn50xx;
4105 struct cvmx_npi_port32_instr_hdr_s cn58xx;
4106 struct cvmx_npi_port32_instr_hdr_s cn58xxp1;
4108 typedef union cvmx_npi_port32_instr_hdr cvmx_npi_port32_instr_hdr_t;
4111 * cvmx_npi_port33_instr_hdr
4113 * NPI_PORT33_INSTR_HDR = NPI Port 33 Instruction Header
4115 * Contains bits [62:42] of the Instruction Header for port 33.
4117 union cvmx_npi_port33_instr_hdr {
4119 struct cvmx_npi_port33_instr_hdr_s {
4120 #ifdef __BIG_ENDIAN_BITFIELD
4121 uint64_t reserved_44_63 : 20;
4122 uint64_t pbp : 1; /**< Enable Packet-by-packet mode. */
4123 uint64_t rsv_f : 5; /**< Reserved */
4124 uint64_t rparmode : 2; /**< Parse Mode. Used when packet is raw and PBP==0. */
4125 uint64_t rsv_e : 1; /**< Reserved */
4126 uint64_t rskp_len : 7; /**< Skip Length. Used when packet is raw and PBP==0. */
4127 uint64_t rsv_d : 6; /**< Reserved */
4128 uint64_t use_ihdr : 1; /**< When set '1' the instruction header will be sent
4129 as part of the packet data, regardless of the
4130 value of bit [63] of the instruction header.
4131 USE_IHDR must be set whenever PBP is set. */
4132 uint64_t rsv_c : 5; /**< Reserved */
4133 uint64_t par_mode : 2; /**< Parse Mode. Used when USE_IHDR is set and packet
4134 is not raw and PBP is not set. */
4135 uint64_t rsv_b : 1; /**< Reserved
4136 instruction header sent to IPD. */
4137 uint64_t skp_len : 7; /**< Skip Length. Used when USE_IHDR is set and packet
4138 is not raw and PBP is not set. */
4139 uint64_t rsv_a : 6; /**< Reserved */
4142 uint64_t skp_len : 7;
4144 uint64_t par_mode : 2;
4146 uint64_t use_ihdr : 1;
4148 uint64_t rskp_len : 7;
4150 uint64_t rparmode : 2;
4153 uint64_t reserved_44_63 : 20;
4156 struct cvmx_npi_port33_instr_hdr_s cn31xx;
4157 struct cvmx_npi_port33_instr_hdr_s cn38xx;
4158 struct cvmx_npi_port33_instr_hdr_s cn38xxp2;
4159 struct cvmx_npi_port33_instr_hdr_s cn50xx;
4160 struct cvmx_npi_port33_instr_hdr_s cn58xx;
4161 struct cvmx_npi_port33_instr_hdr_s cn58xxp1;
4163 typedef union cvmx_npi_port33_instr_hdr cvmx_npi_port33_instr_hdr_t;
4166 * cvmx_npi_port34_instr_hdr
4168 * NPI_PORT34_INSTR_HDR = NPI Port 34 Instruction Header
4170 * Contains bits [62:42] of the Instruction Header for port 34. Added for PASS-2.
4172 union cvmx_npi_port34_instr_hdr {
4174 struct cvmx_npi_port34_instr_hdr_s {
4175 #ifdef __BIG_ENDIAN_BITFIELD
4176 uint64_t reserved_44_63 : 20;
4177 uint64_t pbp : 1; /**< Enable Packet-by-packet mode. */
4178 uint64_t rsv_f : 5; /**< Reserved */
4179 uint64_t rparmode : 2; /**< Parse Mode. Used when packet is raw and PBP==0. */
4180 uint64_t rsv_e : 1; /**< Reserved */
4181 uint64_t rskp_len : 7; /**< Skip Length. Used when packet is raw and PBP==0. */
4182 uint64_t rsv_d : 6; /**< Reserved */
4183 uint64_t use_ihdr : 1; /**< When set '1' the instruction header will be sent
4184 as part of the packet data, regardless of the
4185 value of bit [63] of the instruction header.
4186 USE_IHDR must be set whenever PBP is set. */
4187 uint64_t rsv_c : 5; /**< Reserved */
4188 uint64_t par_mode : 2; /**< Parse Mode. Used when USE_IHDR is set and packet
4189 is not raw and PBP is not set. */
4190 uint64_t rsv_b : 1; /**< Reserved
4191 instruction header sent to IPD. */
4192 uint64_t skp_len : 7; /**< Skip Length. Used when USE_IHDR is set and packet
4193 is not raw and PBP is not set. */
4194 uint64_t rsv_a : 6; /**< Reserved */
4197 uint64_t skp_len : 7;
4199 uint64_t par_mode : 2;
4201 uint64_t use_ihdr : 1;
4203 uint64_t rskp_len : 7;
4205 uint64_t rparmode : 2;
4208 uint64_t reserved_44_63 : 20;
4211 struct cvmx_npi_port34_instr_hdr_s cn38xx;
4212 struct cvmx_npi_port34_instr_hdr_s cn38xxp2;
4213 struct cvmx_npi_port34_instr_hdr_s cn58xx;
4214 struct cvmx_npi_port34_instr_hdr_s cn58xxp1;
4216 typedef union cvmx_npi_port34_instr_hdr cvmx_npi_port34_instr_hdr_t;
4219 * cvmx_npi_port35_instr_hdr
4221 * NPI_PORT35_INSTR_HDR = NPI Port 35 Instruction Header
4223 * Contains bits [62:42] of the Instruction Header for port 35. Added for PASS-2.
4225 union cvmx_npi_port35_instr_hdr {
4227 struct cvmx_npi_port35_instr_hdr_s {
4228 #ifdef __BIG_ENDIAN_BITFIELD
4229 uint64_t reserved_44_63 : 20;
4230 uint64_t pbp : 1; /**< Enable Packet-by-packet mode. */
4231 uint64_t rsv_f : 5; /**< Reserved */
4232 uint64_t rparmode : 2; /**< Parse Mode. Used when packet is raw and PBP==0. */
4233 uint64_t rsv_e : 1; /**< Reserved */
4234 uint64_t rskp_len : 7; /**< Skip Length. Used when packet is raw and PBP==0. */
4235 uint64_t rsv_d : 6; /**< Reserved */
4236 uint64_t use_ihdr : 1; /**< When set '1' the instruction header will be sent
4237 as part of the packet data, regardless of the
4238 value of bit [63] of the instruction header.
4239 USE_IHDR must be set whenever PBP is set. */
4240 uint64_t rsv_c : 5; /**< Reserved */
4241 uint64_t par_mode : 2; /**< Parse Mode. Used when USE_IHDR is set and packet
4242 is not raw and PBP is not set. */
4243 uint64_t rsv_b : 1; /**< Reserved
4244 instruction header sent to IPD. */
4245 uint64_t skp_len : 7; /**< Skip Length. Used when USE_IHDR is set and packet
4246 is not raw and PBP is not set. */
4247 uint64_t rsv_a : 6; /**< Reserved */
4250 uint64_t skp_len : 7;
4252 uint64_t par_mode : 2;
4254 uint64_t use_ihdr : 1;
4256 uint64_t rskp_len : 7;
4258 uint64_t rparmode : 2;
4261 uint64_t reserved_44_63 : 20;
4264 struct cvmx_npi_port35_instr_hdr_s cn38xx;
4265 struct cvmx_npi_port35_instr_hdr_s cn38xxp2;
4266 struct cvmx_npi_port35_instr_hdr_s cn58xx;
4267 struct cvmx_npi_port35_instr_hdr_s cn58xxp1;
4269 typedef union cvmx_npi_port35_instr_hdr cvmx_npi_port35_instr_hdr_t;
4272 * cvmx_npi_port_bp_control
4274 * NPI_PORT_BP_CONTROL = Port Backpressure Control
4276 * Enables Port Level Backpressure
4278 union cvmx_npi_port_bp_control {
4280 struct cvmx_npi_port_bp_control_s {
4281 #ifdef __BIG_ENDIAN_BITFIELD
4282 uint64_t reserved_8_63 : 56;
4283 uint64_t bp_on : 4; /**< Port 35-32 port level backpressure applied. */
4284 uint64_t enb : 4; /**< Enables port level backpressure from the IPD. */
4288 uint64_t reserved_8_63 : 56;
4291 struct cvmx_npi_port_bp_control_s cn30xx;
4292 struct cvmx_npi_port_bp_control_s cn31xx;
4293 struct cvmx_npi_port_bp_control_s cn38xx;
4294 struct cvmx_npi_port_bp_control_s cn38xxp2;
4295 struct cvmx_npi_port_bp_control_s cn50xx;
4296 struct cvmx_npi_port_bp_control_s cn58xx;
4297 struct cvmx_npi_port_bp_control_s cn58xxp1;
4299 typedef union cvmx_npi_port_bp_control cvmx_npi_port_bp_control_t;
4302 * cvmx_npi_rsl_int_blocks
4304 * RSL_INT_BLOCKS = RSL Interrupt Blocks Register
4306 * Reading this register will return a vector with a bit set '1' for a corresponding RSL block
4307 * that presently has an interrupt pending. The Field Description below supplies the name of the
4308 * register that software should read to find out why that intterupt bit is set.
4310 union cvmx_npi_rsl_int_blocks {
4312 struct cvmx_npi_rsl_int_blocks_s {
4313 #ifdef __BIG_ENDIAN_BITFIELD
4314 uint64_t reserved_32_63 : 32;
4315 uint64_t rint_31 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4316 uint64_t iob : 1; /**< IOB_INT_SUM */
4317 uint64_t reserved_28_29 : 2;
4318 uint64_t rint_27 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4319 uint64_t rint_26 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4320 uint64_t rint_25 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4321 uint64_t rint_24 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4322 uint64_t asx1 : 1; /**< ASX1_INT_REG */
4323 uint64_t asx0 : 1; /**< ASX0_INT_REG */
4324 uint64_t rint_21 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4325 uint64_t pip : 1; /**< PIP_INT_REG. */
4326 uint64_t spx1 : 1; /**< SPX1_INT_REG & STX1_INT_REG */
4327 uint64_t spx0 : 1; /**< SPX0_INT_REG & STX0_INT_REG */
4328 uint64_t lmc : 1; /**< LMC_MEM_CFG0 */
4329 uint64_t l2c : 1; /**< L2T_ERR & L2D_ERR */
4330 uint64_t rint_15 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4331 uint64_t reserved_13_14 : 2;
4332 uint64_t pow : 1; /**< POW_ECC_ERR */
4333 uint64_t tim : 1; /**< TIM_REG_ERROR */
4334 uint64_t pko : 1; /**< PKO_REG_ERROR */
4335 uint64_t ipd : 1; /**< IPD_INT_SUM */
4336 uint64_t rint_8 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4337 uint64_t zip : 1; /**< ZIP_ERROR */
4338 uint64_t dfa : 1; /**< DFA_ERR */
4339 uint64_t fpa : 1; /**< FPA_INT_SUM */
4340 uint64_t key : 1; /**< KEY_INT_SUM */
4341 uint64_t npi : 1; /**< NPI_INT_SUM */
4342 uint64_t gmx1 : 1; /**< GMX1_RX*_INT_REG & GMX1_TX_INT_REG */
4343 uint64_t gmx0 : 1; /**< GMX0_RX*_INT_REG & GMX0_TX_INT_REG */
4344 uint64_t mio : 1; /**< MIO_BOOT_ERR */
4354 uint64_t rint_8 : 1;
4359 uint64_t reserved_13_14 : 2;
4360 uint64_t rint_15 : 1;
4366 uint64_t rint_21 : 1;
4369 uint64_t rint_24 : 1;
4370 uint64_t rint_25 : 1;
4371 uint64_t rint_26 : 1;
4372 uint64_t rint_27 : 1;
4373 uint64_t reserved_28_29 : 2;
4375 uint64_t rint_31 : 1;
4376 uint64_t reserved_32_63 : 32;
4379 struct cvmx_npi_rsl_int_blocks_cn30xx {
4380 #ifdef __BIG_ENDIAN_BITFIELD
4381 uint64_t reserved_32_63 : 32;
4382 uint64_t rint_31 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4383 uint64_t iob : 1; /**< IOB_INT_SUM */
4384 uint64_t rint_29 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4385 uint64_t rint_28 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4386 uint64_t rint_27 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4387 uint64_t rint_26 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4388 uint64_t rint_25 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4389 uint64_t rint_24 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4390 uint64_t asx1 : 1; /**< ASX1_INT_REG */
4391 uint64_t asx0 : 1; /**< ASX0_INT_REG */
4392 uint64_t rint_21 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4393 uint64_t pip : 1; /**< PIP_INT_REG. */
4394 uint64_t spx1 : 1; /**< SPX1_INT_REG & STX1_INT_REG */
4395 uint64_t spx0 : 1; /**< SPX0_INT_REG & STX0_INT_REG */
4396 uint64_t lmc : 1; /**< LMC_MEM_CFG0 */
4397 uint64_t l2c : 1; /**< L2T_ERR & L2D_ERR */
4398 uint64_t rint_15 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4399 uint64_t rint_14 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4400 uint64_t usb : 1; /**< USBN_INT_SUM */
4401 uint64_t pow : 1; /**< POW_ECC_ERR */
4402 uint64_t tim : 1; /**< TIM_REG_ERROR */
4403 uint64_t pko : 1; /**< PKO_REG_ERROR */
4404 uint64_t ipd : 1; /**< IPD_INT_SUM */
4405 uint64_t rint_8 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4406 uint64_t zip : 1; /**< ZIP_ERROR */
4407 uint64_t dfa : 1; /**< DFA_ERR */
4408 uint64_t fpa : 1; /**< FPA_INT_SUM */
4409 uint64_t key : 1; /**< Set '1' when RSL bLock has an interrupt. */
4410 uint64_t npi : 1; /**< NPI_INT_SUM */
4411 uint64_t gmx1 : 1; /**< GMX1_RX*_INT_REG & GMX1_TX_INT_REG */
4412 uint64_t gmx0 : 1; /**< GMX0_RX*_INT_REG & GMX0_TX_INT_REG */
4413 uint64_t mio : 1; /**< MIO_BOOT_ERR */
4423 uint64_t rint_8 : 1;
4429 uint64_t rint_14 : 1;
4430 uint64_t rint_15 : 1;
4436 uint64_t rint_21 : 1;
4439 uint64_t rint_24 : 1;
4440 uint64_t rint_25 : 1;
4441 uint64_t rint_26 : 1;
4442 uint64_t rint_27 : 1;
4443 uint64_t rint_28 : 1;
4444 uint64_t rint_29 : 1;
4446 uint64_t rint_31 : 1;
4447 uint64_t reserved_32_63 : 32;
4450 struct cvmx_npi_rsl_int_blocks_cn30xx cn31xx;
4451 struct cvmx_npi_rsl_int_blocks_cn38xx {
4452 #ifdef __BIG_ENDIAN_BITFIELD
4453 uint64_t reserved_32_63 : 32;
4454 uint64_t rint_31 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4455 uint64_t iob : 1; /**< IOB_INT_SUM */
4456 uint64_t rint_29 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4457 uint64_t rint_28 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4458 uint64_t rint_27 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4459 uint64_t rint_26 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4460 uint64_t rint_25 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4461 uint64_t rint_24 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4462 uint64_t asx1 : 1; /**< ASX1_INT_REG */
4463 uint64_t asx0 : 1; /**< ASX0_INT_REG */
4464 uint64_t rint_21 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4465 uint64_t pip : 1; /**< PIP_INT_REG. */
4466 uint64_t spx1 : 1; /**< SPX1_INT_REG & STX1_INT_REG */
4467 uint64_t spx0 : 1; /**< SPX0_INT_REG & STX0_INT_REG */
4468 uint64_t lmc : 1; /**< LMC_MEM_CFG0 */
4469 uint64_t l2c : 1; /**< L2T_ERR & L2D_ERR */
4470 uint64_t rint_15 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4471 uint64_t rint_14 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4472 uint64_t rint_13 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4473 uint64_t pow : 1; /**< POW_ECC_ERR */
4474 uint64_t tim : 1; /**< TIM_REG_ERROR */
4475 uint64_t pko : 1; /**< PKO_REG_ERROR */
4476 uint64_t ipd : 1; /**< IPD_INT_SUM */
4477 uint64_t rint_8 : 1; /**< Set '1' when RSL bLock has an interrupt. */
4478 uint64_t zip : 1; /**< ZIP_ERROR */
4479 uint64_t dfa : 1; /**< DFA_ERR */
4480 uint64_t fpa : 1; /**< FPA_INT_SUM */
4481 uint64_t key : 1; /**< KEY_INT_SUM */
4482 uint64_t npi : 1; /**< NPI_INT_SUM */
4483 uint64_t gmx1 : 1; /**< GMX1_RX*_INT_REG & GMX1_TX_INT_REG */
4484 uint64_t gmx0 : 1; /**< GMX0_RX*_INT_REG & GMX0_TX_INT_REG */
4485 uint64_t mio : 1; /**< MIO_BOOT_ERR */
4495 uint64_t rint_8 : 1;
4500 uint64_t rint_13 : 1;
4501 uint64_t rint_14 : 1;
4502 uint64_t rint_15 : 1;
4508 uint64_t rint_21 : 1;
4511 uint64_t rint_24 : 1;
4512 uint64_t rint_25 : 1;
4513 uint64_t rint_26 : 1;
4514 uint64_t rint_27 : 1;
4515 uint64_t rint_28 : 1;
4516 uint64_t rint_29 : 1;
4518 uint64_t rint_31 : 1;
4519 uint64_t reserved_32_63 : 32;
4522 struct cvmx_npi_rsl_int_blocks_cn38xx cn38xxp2;
4523 struct cvmx_npi_rsl_int_blocks_cn50xx {
4524 #ifdef __BIG_ENDIAN_BITFIELD
4525 uint64_t reserved_31_63 : 33;
4526 uint64_t iob : 1; /**< IOB_INT_SUM */
4527 uint64_t lmc1 : 1; /**< Always reads as zero */
4528 uint64_t agl : 1; /**< Always reads as zero */
4529 uint64_t reserved_24_27 : 4;
4530 uint64_t asx1 : 1; /**< Always reads as zero */
4531 uint64_t asx0 : 1; /**< ASX0_INT_REG */
4532 uint64_t reserved_21_21 : 1;
4533 uint64_t pip : 1; /**< PIP_INT_REG. */
4534 uint64_t spx1 : 1; /**< Always reads as zero */
4535 uint64_t spx0 : 1; /**< Always reads as zero */
4536 uint64_t lmc : 1; /**< LMC_MEM_CFG0 */
4537 uint64_t l2c : 1; /**< L2T_ERR & L2D_ERR */
4538 uint64_t reserved_15_15 : 1;
4539 uint64_t rad : 1; /**< Always reads as zero */
4540 uint64_t usb : 1; /**< USBN_INT_SUM */
4541 uint64_t pow : 1; /**< POW_ECC_ERR */
4542 uint64_t tim : 1; /**< TIM_REG_ERROR */
4543 uint64_t pko : 1; /**< PKO_REG_ERROR */
4544 uint64_t ipd : 1; /**< IPD_INT_SUM */
4545 uint64_t reserved_8_8 : 1;
4546 uint64_t zip : 1; /**< Always reads as zero */
4547 uint64_t dfa : 1; /**< Always reads as zero */
4548 uint64_t fpa : 1; /**< FPA_INT_SUM */
4549 uint64_t key : 1; /**< Always reads as zero */
4550 uint64_t npi : 1; /**< NPI_INT_SUM */
4551 uint64_t gmx1 : 1; /**< Always reads as zero */
4552 uint64_t gmx0 : 1; /**< GMX0_RX*_INT_REG & GMX0_TX_INT_REG */
4553 uint64_t mio : 1; /**< MIO_BOOT_ERR */
4563 uint64_t reserved_8_8 : 1;
4570 uint64_t reserved_15_15 : 1;
4576 uint64_t reserved_21_21 : 1;
4579 uint64_t reserved_24_27 : 4;
4583 uint64_t reserved_31_63 : 33;
4586 struct cvmx_npi_rsl_int_blocks_cn38xx cn58xx;
4587 struct cvmx_npi_rsl_int_blocks_cn38xx cn58xxp1;
4589 typedef union cvmx_npi_rsl_int_blocks cvmx_npi_rsl_int_blocks_t;
4592 * cvmx_npi_size_input#
4594 * NPI_SIZE_INPUT0 = NPI's Size for Input 0 Register
4596 * The size (in instructions) of Instruction Queue-0.
4598 union cvmx_npi_size_inputx {
4600 struct cvmx_npi_size_inputx_s {
4601 #ifdef __BIG_ENDIAN_BITFIELD
4602 uint64_t reserved_32_63 : 32;
4603 uint64_t size : 32; /**< The size of the Instruction Queue used by Octane.
4604 The value [SIZE] is in Instructions.
4605 A value of 0 in this field is illegal. */
4608 uint64_t reserved_32_63 : 32;
4611 struct cvmx_npi_size_inputx_s cn30xx;
4612 struct cvmx_npi_size_inputx_s cn31xx;
4613 struct cvmx_npi_size_inputx_s cn38xx;
4614 struct cvmx_npi_size_inputx_s cn38xxp2;
4615 struct cvmx_npi_size_inputx_s cn50xx;
4616 struct cvmx_npi_size_inputx_s cn58xx;
4617 struct cvmx_npi_size_inputx_s cn58xxp1;
4619 typedef union cvmx_npi_size_inputx cvmx_npi_size_inputx_t;
4622 * cvmx_npi_win_read_to
4624 * NPI_WIN_READ_TO = NPI WINDOW READ Timeout Register
4626 * Number of core clocks to wait before timing out on a WINDOW-READ to the NCB.
4628 union cvmx_npi_win_read_to {
4630 struct cvmx_npi_win_read_to_s {
4631 #ifdef __BIG_ENDIAN_BITFIELD
4632 uint64_t reserved_32_63 : 32;
4633 uint64_t time : 32; /**< Time to wait in core clocks. A value of 0 will
4634 cause no timeouts. */
4637 uint64_t reserved_32_63 : 32;
4640 struct cvmx_npi_win_read_to_s cn30xx;
4641 struct cvmx_npi_win_read_to_s cn31xx;
4642 struct cvmx_npi_win_read_to_s cn38xx;
4643 struct cvmx_npi_win_read_to_s cn38xxp2;
4644 struct cvmx_npi_win_read_to_s cn50xx;
4645 struct cvmx_npi_win_read_to_s cn58xx;
4646 struct cvmx_npi_win_read_to_s cn58xxp1;
4648 typedef union cvmx_npi_win_read_to cvmx_npi_win_read_to_t;