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)
58static 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
81union 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
112union 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
136union 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
151union 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
164union 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
177union 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
217union 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
230union 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
252union 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
263union 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
274union 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
405union 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
418union 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
431union 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
461union 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
491union 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
569union 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
647union 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
660union 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
677union 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
690union 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
703union 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
716union 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
729union 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
742union 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
759union 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
772union 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
840union 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
853union 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