1 /***********************license start***************
2 * Author: Cavium Networks
3 *
4 * Contact: support@caviumnetworks.com
5 * This file is part of the OCTEON SDK
6 *
7 * Copyright (c) 2003-2012 Cavium Networks
8 *
9 * This file is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License, Version 2, as
11 * published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful, but
14 * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
16 * NONINFRINGEMENT. See the GNU General Public License for more
17 * details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this file; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22 * or visit http://www.gnu.org/licenses/.
23 *
24 * This file may also be available under a different license from Cavium.
25 * Contact Cavium Networks for more information
26 ***********************license end**************************************/
27
28 #ifndef __CVMX_DPI_DEFS_H__
29 #define __CVMX_DPI_DEFS_H__
30
31 #define CVMX_DPI_BIST_STATUS (CVMX_ADD_IO_SEG(0x0001DF0000000000ull))
32 #define CVMX_DPI_CTL (CVMX_ADD_IO_SEG(0x0001DF0000000040ull))
33 #define CVMX_DPI_DMAX_COUNTS(offset) (CVMX_ADD_IO_SEG(0x0001DF0000000300ull) + ((offset) & 7) * 8)
34 #define CVMX_DPI_DMAX_DBELL(offset) (CVMX_ADD_IO_SEG(0x0001DF0000000200ull) + ((offset) & 7) * 8)
35 #define CVMX_DPI_DMAX_ERR_RSP_STATUS(offset) (CVMX_ADD_IO_SEG(0x0001DF0000000A80ull) + ((offset) & 7) * 8)
36 #define CVMX_DPI_DMAX_IBUFF_SADDR(offset) (CVMX_ADD_IO_SEG(0x0001DF0000000280ull) + ((offset) & 7) * 8)
37 #define CVMX_DPI_DMAX_IFLIGHT(offset) (CVMX_ADD_IO_SEG(0x0001DF0000000A00ull) + ((offset) & 7) * 8)
38 #define CVMX_DPI_DMAX_NADDR(offset) (CVMX_ADD_IO_SEG(0x0001DF0000000380ull) + ((offset) & 7) * 8)
39 #define CVMX_DPI_DMAX_REQBNK0(offset) (CVMX_ADD_IO_SEG(0x0001DF0000000400ull) + ((offset) & 7) * 8)
40 #define CVMX_DPI_DMAX_REQBNK1(offset) (CVMX_ADD_IO_SEG(0x0001DF0000000480ull) + ((offset) & 7) * 8)
41 #define CVMX_DPI_DMA_CONTROL (CVMX_ADD_IO_SEG(0x0001DF0000000048ull))
42 #define CVMX_DPI_DMA_ENGX_EN(offset) (CVMX_ADD_IO_SEG(0x0001DF0000000080ull) + ((offset) & 7) * 8)
43 #define CVMX_DPI_DMA_PPX_CNT(offset) (CVMX_ADD_IO_SEG(0x0001DF0000000B00ull) + ((offset) & 31) * 8)
44 #define CVMX_DPI_ENGX_BUF(offset) (CVMX_ADD_IO_SEG(0x0001DF0000000880ull) + ((offset) & 7) * 8)
45 #define CVMX_DPI_INFO_REG (CVMX_ADD_IO_SEG(0x0001DF0000000980ull))
46 #define CVMX_DPI_INT_EN (CVMX_ADD_IO_SEG(0x0001DF0000000010ull))
47 #define CVMX_DPI_INT_REG (CVMX_ADD_IO_SEG(0x0001DF0000000008ull))
48 #define CVMX_DPI_NCBX_CFG(block_id) (CVMX_ADD_IO_SEG(0x0001DF0000000800ull))
49 #define CVMX_DPI_PINT_INFO (CVMX_ADD_IO_SEG(0x0001DF0000000830ull))
50 #define CVMX_DPI_PKT_ERR_RSP (CVMX_ADD_IO_SEG(0x0001DF0000000078ull))
51 #define CVMX_DPI_REQ_ERR_RSP (CVMX_ADD_IO_SEG(0x0001DF0000000058ull))
52 #define CVMX_DPI_REQ_ERR_RSP_EN (CVMX_ADD_IO_SEG(0x0001DF0000000068ull))
53 #define CVMX_DPI_REQ_ERR_RST (CVMX_ADD_IO_SEG(0x0001DF0000000060ull))
54 #define CVMX_DPI_REQ_ERR_RST_EN (CVMX_ADD_IO_SEG(0x0001DF0000000070ull))
55 #define CVMX_DPI_REQ_ERR_SKIP_COMP (CVMX_ADD_IO_SEG(0x0001DF0000000838ull))
56 #define CVMX_DPI_REQ_GBL_EN (CVMX_ADD_IO_SEG(0x0001DF0000000050ull))
57 #define CVMX_DPI_SLI_PRTX_CFG(offset) (CVMX_ADD_IO_SEG(0x0001DF0000000900ull) + ((offset) & 3) * 8)
CVMX_DPI_SLI_PRTX_ERR(unsigned long offset)58 static inline uint64_t CVMX_DPI_SLI_PRTX_ERR(unsigned long offset)
59 {
60 switch (cvmx_get_octeon_family()) {
61 case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
62 return CVMX_ADD_IO_SEG(0x0001DF0000000920ull) + (offset) * 8;
63 case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
64 case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
65 case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
66
67 if (OCTEON_IS_MODEL(OCTEON_CN68XX_PASS1))
68 return CVMX_ADD_IO_SEG(0x0001DF0000000928ull) + (offset) * 8;
69
70 if (OCTEON_IS_MODEL(OCTEON_CN68XX_PASS2))
71 return CVMX_ADD_IO_SEG(0x0001DF0000000920ull) + (offset) * 8;
72 return CVMX_ADD_IO_SEG(0x0001DF0000000920ull) + (offset) * 8;
73 case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
74 return CVMX_ADD_IO_SEG(0x0001DF0000000928ull) + (offset) * 8;
75 }
76 return CVMX_ADD_IO_SEG(0x0001DF0000000920ull) + (offset) * 8;
77 }
78
79 #define CVMX_DPI_SLI_PRTX_ERR_INFO(offset) (CVMX_ADD_IO_SEG(0x0001DF0000000940ull) + ((offset) & 3) * 8)
80
81 union cvmx_dpi_bist_status {
82 uint64_t u64;
83 struct cvmx_dpi_bist_status_s {
84 #ifdef __BIG_ENDIAN_BITFIELD
85 uint64_t reserved_47_63:17;
86 uint64_t bist:47;
87 #else
88 uint64_t bist:47;
89 uint64_t reserved_47_63:17;
90 #endif
91 } s;
92 struct cvmx_dpi_bist_status_cn63xx {
93 #ifdef __BIG_ENDIAN_BITFIELD
94 uint64_t reserved_45_63:19;
95 uint64_t bist:45;
96 #else
97 uint64_t bist:45;
98 uint64_t reserved_45_63:19;
99 #endif
100 } cn63xx;
101 struct cvmx_dpi_bist_status_cn63xxp1 {
102 #ifdef __BIG_ENDIAN_BITFIELD
103 uint64_t reserved_37_63:27;
104 uint64_t bist:37;
105 #else
106 uint64_t bist:37;
107 uint64_t reserved_37_63:27;
108 #endif
109 } cn63xxp1;
110 };
111
112 union cvmx_dpi_ctl {
113 uint64_t u64;
114 struct cvmx_dpi_ctl_s {
115 #ifdef __BIG_ENDIAN_BITFIELD
116 uint64_t reserved_2_63:62;
117 uint64_t clk:1;
118 uint64_t en:1;
119 #else
120 uint64_t en:1;
121 uint64_t clk:1;
122 uint64_t reserved_2_63:62;
123 #endif
124 } s;
125 struct cvmx_dpi_ctl_cn61xx {
126 #ifdef __BIG_ENDIAN_BITFIELD
127 uint64_t reserved_1_63:63;
128 uint64_t en:1;
129 #else
130 uint64_t en:1;
131 uint64_t reserved_1_63:63;
132 #endif
133 } cn61xx;
134 };
135
136 union cvmx_dpi_dmax_counts {
137 uint64_t u64;
138 struct cvmx_dpi_dmax_counts_s {
139 #ifdef __BIG_ENDIAN_BITFIELD
140 uint64_t reserved_39_63:25;
141 uint64_t fcnt:7;
142 uint64_t dbell:32;
143 #else
144 uint64_t dbell:32;
145 uint64_t fcnt:7;
146 uint64_t reserved_39_63:25;
147 #endif
148 } s;
149 };
150
151 union cvmx_dpi_dmax_dbell {
152 uint64_t u64;
153 struct cvmx_dpi_dmax_dbell_s {
154 #ifdef __BIG_ENDIAN_BITFIELD
155 uint64_t reserved_16_63:48;
156 uint64_t dbell:16;
157 #else
158 uint64_t dbell:16;
159 uint64_t reserved_16_63:48;
160 #endif
161 } s;
162 };
163
164 union cvmx_dpi_dmax_err_rsp_status {
165 uint64_t u64;
166 struct cvmx_dpi_dmax_err_rsp_status_s {
167 #ifdef __BIG_ENDIAN_BITFIELD
168 uint64_t reserved_6_63:58;
169 uint64_t status:6;
170 #else
171 uint64_t status:6;
172 uint64_t reserved_6_63:58;
173 #endif
174 } s;
175 };
176
177 union cvmx_dpi_dmax_ibuff_saddr {
178 uint64_t u64;
179 struct cvmx_dpi_dmax_ibuff_saddr_s {
180 #ifdef __BIG_ENDIAN_BITFIELD
181 uint64_t reserved_62_63:2;
182 uint64_t csize:14;
183 uint64_t reserved_41_47:7;
184 uint64_t idle:1;
185 uint64_t saddr:33;
186 uint64_t reserved_0_6:7;
187 #else
188 uint64_t reserved_0_6:7;
189 uint64_t saddr:33;
190 uint64_t idle:1;
191 uint64_t reserved_41_47:7;
192 uint64_t csize:14;
193 uint64_t reserved_62_63:2;
194 #endif
195 } s;
196 struct cvmx_dpi_dmax_ibuff_saddr_cn61xx {
197 #ifdef __BIG_ENDIAN_BITFIELD
198 uint64_t reserved_62_63:2;
199 uint64_t csize:14;
200 uint64_t reserved_41_47:7;
201 uint64_t idle:1;
202 uint64_t reserved_36_39:4;
203 uint64_t saddr:29;
204 uint64_t reserved_0_6:7;
205 #else
206 uint64_t reserved_0_6:7;
207 uint64_t saddr:29;
208 uint64_t reserved_36_39:4;
209 uint64_t idle:1;
210 uint64_t reserved_41_47:7;
211 uint64_t csize:14;
212 uint64_t reserved_62_63:2;
213 #endif
214 } cn61xx;
215 };
216
217 union cvmx_dpi_dmax_iflight {
218 uint64_t u64;
219 struct cvmx_dpi_dmax_iflight_s {
220 #ifdef __BIG_ENDIAN_BITFIELD
221 uint64_t reserved_3_63:61;
222 uint64_t cnt:3;
223 #else
224 uint64_t cnt:3;
225 uint64_t reserved_3_63:61;
226 #endif
227 } s;
228 };
229
230 union cvmx_dpi_dmax_naddr {
231 uint64_t u64;
232 struct cvmx_dpi_dmax_naddr_s {
233 #ifdef __BIG_ENDIAN_BITFIELD
234 uint64_t reserved_40_63:24;
235 uint64_t addr:40;
236 #else
237 uint64_t addr:40;
238 uint64_t reserved_40_63:24;
239 #endif
240 } s;
241 struct cvmx_dpi_dmax_naddr_cn61xx {
242 #ifdef __BIG_ENDIAN_BITFIELD
243 uint64_t reserved_36_63:28;
244 uint64_t addr:36;
245 #else
246 uint64_t addr:36;
247 uint64_t reserved_36_63:28;
248 #endif
249 } cn61xx;
250 };
251
252 union cvmx_dpi_dmax_reqbnk0 {
253 uint64_t u64;
254 struct cvmx_dpi_dmax_reqbnk0_s {
255 #ifdef __BIG_ENDIAN_BITFIELD
256 uint64_t state:64;
257 #else
258 uint64_t state:64;
259 #endif
260 } s;
261 };
262
263 union cvmx_dpi_dmax_reqbnk1 {
264 uint64_t u64;
265 struct cvmx_dpi_dmax_reqbnk1_s {
266 #ifdef __BIG_ENDIAN_BITFIELD
267 uint64_t state:64;
268 #else
269 uint64_t state:64;
270 #endif
271 } s;
272 };
273
274 union cvmx_dpi_dma_control {
275 uint64_t u64;
276 struct cvmx_dpi_dma_control_s {
277 #ifdef __BIG_ENDIAN_BITFIELD
278 uint64_t reserved_62_63:2;
279 uint64_t dici_mode:1;
280 uint64_t pkt_en1:1;
281 uint64_t ffp_dis:1;
282 uint64_t commit_mode:1;
283 uint64_t pkt_hp:1;
284 uint64_t pkt_en:1;
285 uint64_t reserved_54_55:2;
286 uint64_t dma_enb:6;
287 uint64_t reserved_34_47:14;
288 uint64_t b0_lend:1;
289 uint64_t dwb_denb:1;
290 uint64_t dwb_ichk:9;
291 uint64_t fpa_que:3;
292 uint64_t o_add1:1;
293 uint64_t o_ro:1;
294 uint64_t o_ns:1;
295 uint64_t o_es:2;
296 uint64_t o_mode:1;
297 uint64_t reserved_0_13:14;
298 #else
299 uint64_t reserved_0_13:14;
300 uint64_t o_mode:1;
301 uint64_t o_es:2;
302 uint64_t o_ns:1;
303 uint64_t o_ro:1;
304 uint64_t o_add1:1;
305 uint64_t fpa_que:3;
306 uint64_t dwb_ichk:9;
307 uint64_t dwb_denb:1;
308 uint64_t b0_lend:1;
309 uint64_t reserved_34_47:14;
310 uint64_t dma_enb:6;
311 uint64_t reserved_54_55:2;
312 uint64_t pkt_en:1;
313 uint64_t pkt_hp:1;
314 uint64_t commit_mode:1;
315 uint64_t ffp_dis:1;
316 uint64_t pkt_en1:1;
317 uint64_t dici_mode:1;
318 uint64_t reserved_62_63:2;
319 #endif
320 } s;
321 struct cvmx_dpi_dma_control_cn63xx {
322 #ifdef __BIG_ENDIAN_BITFIELD
323 uint64_t reserved_61_63:3;
324 uint64_t pkt_en1:1;
325 uint64_t ffp_dis:1;
326 uint64_t commit_mode:1;
327 uint64_t pkt_hp:1;
328 uint64_t pkt_en:1;
329 uint64_t reserved_54_55:2;
330 uint64_t dma_enb:6;
331 uint64_t reserved_34_47:14;
332 uint64_t b0_lend:1;
333 uint64_t dwb_denb:1;
334 uint64_t dwb_ichk:9;
335 uint64_t fpa_que:3;
336 uint64_t o_add1:1;
337 uint64_t o_ro:1;
338 uint64_t o_ns:1;
339 uint64_t o_es:2;
340 uint64_t o_mode:1;
341 uint64_t reserved_0_13:14;
342 #else
343 uint64_t reserved_0_13:14;
344 uint64_t o_mode:1;
345 uint64_t o_es:2;
346 uint64_t o_ns:1;
347 uint64_t o_ro:1;
348 uint64_t o_add1:1;
349 uint64_t fpa_que:3;
350 uint64_t dwb_ichk:9;
351 uint64_t dwb_denb:1;
352 uint64_t b0_lend:1;
353 uint64_t reserved_34_47:14;
354 uint64_t dma_enb:6;
355 uint64_t reserved_54_55:2;
356 uint64_t pkt_en:1;
357 uint64_t pkt_hp:1;
358 uint64_t commit_mode:1;
359 uint64_t ffp_dis:1;
360 uint64_t pkt_en1:1;
361 uint64_t reserved_61_63:3;
362 #endif
363 } cn63xx;
364 struct cvmx_dpi_dma_control_cn63xxp1 {
365 #ifdef __BIG_ENDIAN_BITFIELD
366 uint64_t reserved_59_63:5;
367 uint64_t commit_mode:1;
368 uint64_t pkt_hp:1;
369 uint64_t pkt_en:1;
370 uint64_t reserved_54_55:2;
371 uint64_t dma_enb:6;
372 uint64_t reserved_34_47:14;
373 uint64_t b0_lend:1;
374 uint64_t dwb_denb:1;
375 uint64_t dwb_ichk:9;
376 uint64_t fpa_que:3;
377 uint64_t o_add1:1;
378 uint64_t o_ro:1;
379 uint64_t o_ns:1;
380 uint64_t o_es:2;
381 uint64_t o_mode:1;
382 uint64_t reserved_0_13:14;
383 #else
384 uint64_t reserved_0_13:14;
385 uint64_t o_mode:1;
386 uint64_t o_es:2;
387 uint64_t o_ns:1;
388 uint64_t o_ro:1;
389 uint64_t o_add1:1;
390 uint64_t fpa_que:3;
391 uint64_t dwb_ichk:9;
392 uint64_t dwb_denb:1;
393 uint64_t b0_lend:1;
394 uint64_t reserved_34_47:14;
395 uint64_t dma_enb:6;
396 uint64_t reserved_54_55:2;
397 uint64_t pkt_en:1;
398 uint64_t pkt_hp:1;
399 uint64_t commit_mode:1;
400 uint64_t reserved_59_63:5;
401 #endif
402 } cn63xxp1;
403 };
404
405 union cvmx_dpi_dma_engx_en {
406 uint64_t u64;
407 struct cvmx_dpi_dma_engx_en_s {
408 #ifdef __BIG_ENDIAN_BITFIELD
409 uint64_t reserved_8_63:56;
410 uint64_t qen:8;
411 #else
412 uint64_t qen:8;
413 uint64_t reserved_8_63:56;
414 #endif
415 } s;
416 };
417
418 union cvmx_dpi_dma_ppx_cnt {
419 uint64_t u64;
420 struct cvmx_dpi_dma_ppx_cnt_s {
421 #ifdef __BIG_ENDIAN_BITFIELD
422 uint64_t reserved_16_63:48;
423 uint64_t cnt:16;
424 #else
425 uint64_t cnt:16;
426 uint64_t reserved_16_63:48;
427 #endif
428 } s;
429 };
430
431 union cvmx_dpi_engx_buf {
432 uint64_t u64;
433 struct cvmx_dpi_engx_buf_s {
434 #ifdef __BIG_ENDIAN_BITFIELD
435 uint64_t reserved_37_63:27;
436 uint64_t compblks:5;
437 uint64_t reserved_9_31:23;
438 uint64_t base:5;
439 uint64_t blks:4;
440 #else
441 uint64_t blks:4;
442 uint64_t base:5;
443 uint64_t reserved_9_31:23;
444 uint64_t compblks:5;
445 uint64_t reserved_37_63:27;
446 #endif
447 } s;
448 struct cvmx_dpi_engx_buf_cn63xx {
449 #ifdef __BIG_ENDIAN_BITFIELD
450 uint64_t reserved_8_63:56;
451 uint64_t base:4;
452 uint64_t blks:4;
453 #else
454 uint64_t blks:4;
455 uint64_t base:4;
456 uint64_t reserved_8_63:56;
457 #endif
458 } cn63xx;
459 };
460
461 union cvmx_dpi_info_reg {
462 uint64_t u64;
463 struct cvmx_dpi_info_reg_s {
464 #ifdef __BIG_ENDIAN_BITFIELD
465 uint64_t reserved_8_63:56;
466 uint64_t ffp:4;
467 uint64_t reserved_2_3:2;
468 uint64_t ncb:1;
469 uint64_t rsl:1;
470 #else
471 uint64_t rsl:1;
472 uint64_t ncb:1;
473 uint64_t reserved_2_3:2;
474 uint64_t ffp:4;
475 uint64_t reserved_8_63:56;
476 #endif
477 } s;
478 struct cvmx_dpi_info_reg_cn63xxp1 {
479 #ifdef __BIG_ENDIAN_BITFIELD
480 uint64_t reserved_2_63:62;
481 uint64_t ncb:1;
482 uint64_t rsl:1;
483 #else
484 uint64_t rsl:1;
485 uint64_t ncb:1;
486 uint64_t reserved_2_63:62;
487 #endif
488 } cn63xxp1;
489 };
490
491 union cvmx_dpi_int_en {
492 uint64_t u64;
493 struct cvmx_dpi_int_en_s {
494 #ifdef __BIG_ENDIAN_BITFIELD
495 uint64_t reserved_28_63:36;
496 uint64_t sprt3_rst:1;
497 uint64_t sprt2_rst:1;
498 uint64_t sprt1_rst:1;
499 uint64_t sprt0_rst:1;
500 uint64_t reserved_23_23:1;
501 uint64_t req_badfil:1;
502 uint64_t req_inull:1;
503 uint64_t req_anull:1;
504 uint64_t req_undflw:1;
505 uint64_t req_ovrflw:1;
506 uint64_t req_badlen:1;
507 uint64_t req_badadr:1;
508 uint64_t dmadbo:8;
509 uint64_t reserved_2_7:6;
510 uint64_t nfovr:1;
511 uint64_t nderr:1;
512 #else
513 uint64_t nderr:1;
514 uint64_t nfovr:1;
515 uint64_t reserved_2_7:6;
516 uint64_t dmadbo:8;
517 uint64_t req_badadr:1;
518 uint64_t req_badlen:1;
519 uint64_t req_ovrflw:1;
520 uint64_t req_undflw:1;
521 uint64_t req_anull:1;
522 uint64_t req_inull:1;
523 uint64_t req_badfil:1;
524 uint64_t reserved_23_23:1;
525 uint64_t sprt0_rst:1;
526 uint64_t sprt1_rst:1;
527 uint64_t sprt2_rst:1;
528 uint64_t sprt3_rst:1;
529 uint64_t reserved_28_63:36;
530 #endif
531 } s;
532 struct cvmx_dpi_int_en_cn63xx {
533 #ifdef __BIG_ENDIAN_BITFIELD
534 uint64_t reserved_26_63:38;
535 uint64_t sprt1_rst:1;
536 uint64_t sprt0_rst:1;
537 uint64_t reserved_23_23:1;
538 uint64_t req_badfil:1;
539 uint64_t req_inull:1;
540 uint64_t req_anull:1;
541 uint64_t req_undflw:1;
542 uint64_t req_ovrflw:1;
543 uint64_t req_badlen:1;
544 uint64_t req_badadr:1;
545 uint64_t dmadbo:8;
546 uint64_t reserved_2_7:6;
547 uint64_t nfovr:1;
548 uint64_t nderr:1;
549 #else
550 uint64_t nderr:1;
551 uint64_t nfovr:1;
552 uint64_t reserved_2_7:6;
553 uint64_t dmadbo:8;
554 uint64_t req_badadr:1;
555 uint64_t req_badlen:1;
556 uint64_t req_ovrflw:1;
557 uint64_t req_undflw:1;
558 uint64_t req_anull:1;
559 uint64_t req_inull:1;
560 uint64_t req_badfil:1;
561 uint64_t reserved_23_23:1;
562 uint64_t sprt0_rst:1;
563 uint64_t sprt1_rst:1;
564 uint64_t reserved_26_63:38;
565 #endif
566 } cn63xx;
567 };
568
569 union cvmx_dpi_int_reg {
570 uint64_t u64;
571 struct cvmx_dpi_int_reg_s {
572 #ifdef __BIG_ENDIAN_BITFIELD
573 uint64_t reserved_28_63:36;
574 uint64_t sprt3_rst:1;
575 uint64_t sprt2_rst:1;
576 uint64_t sprt1_rst:1;
577 uint64_t sprt0_rst:1;
578 uint64_t reserved_23_23:1;
579 uint64_t req_badfil:1;
580 uint64_t req_inull:1;
581 uint64_t req_anull:1;
582 uint64_t req_undflw:1;
583 uint64_t req_ovrflw:1;
584 uint64_t req_badlen:1;
585 uint64_t req_badadr:1;
586 uint64_t dmadbo:8;
587 uint64_t reserved_2_7:6;
588 uint64_t nfovr:1;
589 uint64_t nderr:1;
590 #else
591 uint64_t nderr:1;
592 uint64_t nfovr:1;
593 uint64_t reserved_2_7:6;
594 uint64_t dmadbo:8;
595 uint64_t req_badadr:1;
596 uint64_t req_badlen:1;
597 uint64_t req_ovrflw:1;
598 uint64_t req_undflw:1;
599 uint64_t req_anull:1;
600 uint64_t req_inull:1;
601 uint64_t req_badfil:1;
602 uint64_t reserved_23_23:1;
603 uint64_t sprt0_rst:1;
604 uint64_t sprt1_rst:1;
605 uint64_t sprt2_rst:1;
606 uint64_t sprt3_rst:1;
607 uint64_t reserved_28_63:36;
608 #endif
609 } s;
610 struct cvmx_dpi_int_reg_cn63xx {
611 #ifdef __BIG_ENDIAN_BITFIELD
612 uint64_t reserved_26_63:38;
613 uint64_t sprt1_rst:1;
614 uint64_t sprt0_rst:1;
615 uint64_t reserved_23_23:1;
616 uint64_t req_badfil:1;
617 uint64_t req_inull:1;
618 uint64_t req_anull:1;
619 uint64_t req_undflw:1;
620 uint64_t req_ovrflw:1;
621 uint64_t req_badlen:1;
622 uint64_t req_badadr:1;
623 uint64_t dmadbo:8;
624 uint64_t reserved_2_7:6;
625 uint64_t nfovr:1;
626 uint64_t nderr:1;
627 #else
628 uint64_t nderr:1;
629 uint64_t nfovr:1;
630 uint64_t reserved_2_7:6;
631 uint64_t dmadbo:8;
632 uint64_t req_badadr:1;
633 uint64_t req_badlen:1;
634 uint64_t req_ovrflw:1;
635 uint64_t req_undflw:1;
636 uint64_t req_anull:1;
637 uint64_t req_inull:1;
638 uint64_t req_badfil:1;
639 uint64_t reserved_23_23:1;
640 uint64_t sprt0_rst:1;
641 uint64_t sprt1_rst:1;
642 uint64_t reserved_26_63:38;
643 #endif
644 } cn63xx;
645 };
646
647 union cvmx_dpi_ncbx_cfg {
648 uint64_t u64;
649 struct cvmx_dpi_ncbx_cfg_s {
650 #ifdef __BIG_ENDIAN_BITFIELD
651 uint64_t reserved_6_63:58;
652 uint64_t molr:6;
653 #else
654 uint64_t molr:6;
655 uint64_t reserved_6_63:58;
656 #endif
657 } s;
658 };
659
660 union cvmx_dpi_pint_info {
661 uint64_t u64;
662 struct cvmx_dpi_pint_info_s {
663 #ifdef __BIG_ENDIAN_BITFIELD
664 uint64_t reserved_14_63:50;
665 uint64_t iinfo:6;
666 uint64_t reserved_6_7:2;
667 uint64_t sinfo:6;
668 #else
669 uint64_t sinfo:6;
670 uint64_t reserved_6_7:2;
671 uint64_t iinfo:6;
672 uint64_t reserved_14_63:50;
673 #endif
674 } s;
675 };
676
677 union cvmx_dpi_pkt_err_rsp {
678 uint64_t u64;
679 struct cvmx_dpi_pkt_err_rsp_s {
680 #ifdef __BIG_ENDIAN_BITFIELD
681 uint64_t reserved_1_63:63;
682 uint64_t pkterr:1;
683 #else
684 uint64_t pkterr:1;
685 uint64_t reserved_1_63:63;
686 #endif
687 } s;
688 };
689
690 union cvmx_dpi_req_err_rsp {
691 uint64_t u64;
692 struct cvmx_dpi_req_err_rsp_s {
693 #ifdef __BIG_ENDIAN_BITFIELD
694 uint64_t reserved_8_63:56;
695 uint64_t qerr:8;
696 #else
697 uint64_t qerr:8;
698 uint64_t reserved_8_63:56;
699 #endif
700 } s;
701 };
702
703 union cvmx_dpi_req_err_rsp_en {
704 uint64_t u64;
705 struct cvmx_dpi_req_err_rsp_en_s {
706 #ifdef __BIG_ENDIAN_BITFIELD
707 uint64_t reserved_8_63:56;
708 uint64_t en:8;
709 #else
710 uint64_t en:8;
711 uint64_t reserved_8_63:56;
712 #endif
713 } s;
714 };
715
716 union cvmx_dpi_req_err_rst {
717 uint64_t u64;
718 struct cvmx_dpi_req_err_rst_s {
719 #ifdef __BIG_ENDIAN_BITFIELD
720 uint64_t reserved_8_63:56;
721 uint64_t qerr:8;
722 #else
723 uint64_t qerr:8;
724 uint64_t reserved_8_63:56;
725 #endif
726 } s;
727 };
728
729 union cvmx_dpi_req_err_rst_en {
730 uint64_t u64;
731 struct cvmx_dpi_req_err_rst_en_s {
732 #ifdef __BIG_ENDIAN_BITFIELD
733 uint64_t reserved_8_63:56;
734 uint64_t en:8;
735 #else
736 uint64_t en:8;
737 uint64_t reserved_8_63:56;
738 #endif
739 } s;
740 };
741
742 union cvmx_dpi_req_err_skip_comp {
743 uint64_t u64;
744 struct cvmx_dpi_req_err_skip_comp_s {
745 #ifdef __BIG_ENDIAN_BITFIELD
746 uint64_t reserved_24_63:40;
747 uint64_t en_rst:8;
748 uint64_t reserved_8_15:8;
749 uint64_t en_rsp:8;
750 #else
751 uint64_t en_rsp:8;
752 uint64_t reserved_8_15:8;
753 uint64_t en_rst:8;
754 uint64_t reserved_24_63:40;
755 #endif
756 } s;
757 };
758
759 union cvmx_dpi_req_gbl_en {
760 uint64_t u64;
761 struct cvmx_dpi_req_gbl_en_s {
762 #ifdef __BIG_ENDIAN_BITFIELD
763 uint64_t reserved_8_63:56;
764 uint64_t qen:8;
765 #else
766 uint64_t qen:8;
767 uint64_t reserved_8_63:56;
768 #endif
769 } s;
770 };
771
772 union cvmx_dpi_sli_prtx_cfg {
773 uint64_t u64;
774 struct cvmx_dpi_sli_prtx_cfg_s {
775 #ifdef __BIG_ENDIAN_BITFIELD
776 uint64_t reserved_25_63:39;
777 uint64_t halt:1;
778 uint64_t qlm_cfg:4;
779 uint64_t reserved_17_19:3;
780 uint64_t rd_mode:1;
781 uint64_t reserved_14_15:2;
782 uint64_t molr:6;
783 uint64_t mps_lim:1;
784 uint64_t reserved_5_6:2;
785 uint64_t mps:1;
786 uint64_t mrrs_lim:1;
787 uint64_t reserved_2_2:1;
788 uint64_t mrrs:2;
789 #else
790 uint64_t mrrs:2;
791 uint64_t reserved_2_2:1;
792 uint64_t mrrs_lim:1;
793 uint64_t mps:1;
794 uint64_t reserved_5_6:2;
795 uint64_t mps_lim:1;
796 uint64_t molr:6;
797 uint64_t reserved_14_15:2;
798 uint64_t rd_mode:1;
799 uint64_t reserved_17_19:3;
800 uint64_t qlm_cfg:4;
801 uint64_t halt:1;
802 uint64_t reserved_25_63:39;
803 #endif
804 } s;
805 struct cvmx_dpi_sli_prtx_cfg_cn63xx {
806 #ifdef __BIG_ENDIAN_BITFIELD
807 uint64_t reserved_25_63:39;
808 uint64_t halt:1;
809 uint64_t reserved_21_23:3;
810 uint64_t qlm_cfg:1;
811 uint64_t reserved_17_19:3;
812 uint64_t rd_mode:1;
813 uint64_t reserved_14_15:2;
814 uint64_t molr:6;
815 uint64_t mps_lim:1;
816 uint64_t reserved_5_6:2;
817 uint64_t mps:1;
818 uint64_t mrrs_lim:1;
819 uint64_t reserved_2_2:1;
820 uint64_t mrrs:2;
821 #else
822 uint64_t mrrs:2;
823 uint64_t reserved_2_2:1;
824 uint64_t mrrs_lim:1;
825 uint64_t mps:1;
826 uint64_t reserved_5_6:2;
827 uint64_t mps_lim:1;
828 uint64_t molr:6;
829 uint64_t reserved_14_15:2;
830 uint64_t rd_mode:1;
831 uint64_t reserved_17_19:3;
832 uint64_t qlm_cfg:1;
833 uint64_t reserved_21_23:3;
834 uint64_t halt:1;
835 uint64_t reserved_25_63:39;
836 #endif
837 } cn63xx;
838 };
839
840 union cvmx_dpi_sli_prtx_err {
841 uint64_t u64;
842 struct cvmx_dpi_sli_prtx_err_s {
843 #ifdef __BIG_ENDIAN_BITFIELD
844 uint64_t addr:61;
845 uint64_t reserved_0_2:3;
846 #else
847 uint64_t reserved_0_2:3;
848 uint64_t addr:61;
849 #endif
850 } s;
851 };
852
853 union cvmx_dpi_sli_prtx_err_info {
854 uint64_t u64;
855 struct cvmx_dpi_sli_prtx_err_info_s {
856 #ifdef __BIG_ENDIAN_BITFIELD
857 uint64_t reserved_9_63:55;
858 uint64_t lock:1;
859 uint64_t reserved_5_7:3;
860 uint64_t type:1;
861 uint64_t reserved_3_3:1;
862 uint64_t reqq:3;
863 #else
864 uint64_t reqq:3;
865 uint64_t reserved_3_3:1;
866 uint64_t type:1;
867 uint64_t reserved_5_7:3;
868 uint64_t lock:1;
869 uint64_t reserved_9_63:55;
870 #endif
871 } s;
872 };
873
874 #endif
875