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_IPD_DEFS_H__
29#define __CVMX_IPD_DEFS_H__
30
31#define CVMX_IPD_1ST_MBUFF_SKIP (CVMX_ADD_IO_SEG(0x00014F0000000000ull))
32#define CVMX_IPD_1st_NEXT_PTR_BACK (CVMX_ADD_IO_SEG(0x00014F0000000150ull))
33#define CVMX_IPD_2nd_NEXT_PTR_BACK (CVMX_ADD_IO_SEG(0x00014F0000000158ull))
34#define CVMX_IPD_BIST_STATUS (CVMX_ADD_IO_SEG(0x00014F00000007F8ull))
35#define CVMX_IPD_BPIDX_MBUF_TH(offset) (CVMX_ADD_IO_SEG(0x00014F0000002000ull) + ((offset) & 63) * 8)
36#define CVMX_IPD_BPID_BP_COUNTERX(offset) (CVMX_ADD_IO_SEG(0x00014F0000003000ull) + ((offset) & 63) * 8)
37#define CVMX_IPD_BP_PRT_RED_END (CVMX_ADD_IO_SEG(0x00014F0000000328ull))
38#define CVMX_IPD_CLK_COUNT (CVMX_ADD_IO_SEG(0x00014F0000000338ull))
39#define CVMX_IPD_CREDITS (CVMX_ADD_IO_SEG(0x00014F0000004410ull))
40#define CVMX_IPD_CTL_STATUS (CVMX_ADD_IO_SEG(0x00014F0000000018ull))
41#define CVMX_IPD_ECC_CTL (CVMX_ADD_IO_SEG(0x00014F0000004408ull))
42#define CVMX_IPD_FREE_PTR_FIFO_CTL (CVMX_ADD_IO_SEG(0x00014F0000000780ull))
43#define CVMX_IPD_FREE_PTR_VALUE (CVMX_ADD_IO_SEG(0x00014F0000000788ull))
44#define CVMX_IPD_HOLD_PTR_FIFO_CTL (CVMX_ADD_IO_SEG(0x00014F0000000790ull))
45#define CVMX_IPD_INT_ENB (CVMX_ADD_IO_SEG(0x00014F0000000160ull))
46#define CVMX_IPD_INT_SUM (CVMX_ADD_IO_SEG(0x00014F0000000168ull))
47#define CVMX_IPD_NEXT_PKT_PTR (CVMX_ADD_IO_SEG(0x00014F00000007A0ull))
48#define CVMX_IPD_NEXT_WQE_PTR (CVMX_ADD_IO_SEG(0x00014F00000007A8ull))
49#define CVMX_IPD_NOT_1ST_MBUFF_SKIP (CVMX_ADD_IO_SEG(0x00014F0000000008ull))
50#define CVMX_IPD_ON_BP_DROP_PKTX(block_id) (CVMX_ADD_IO_SEG(0x00014F0000004100ull))
51#define CVMX_IPD_PACKET_MBUFF_SIZE (CVMX_ADD_IO_SEG(0x00014F0000000010ull))
52#define CVMX_IPD_PKT_ERR (CVMX_ADD_IO_SEG(0x00014F00000003F0ull))
53#define CVMX_IPD_PKT_PTR_VALID (CVMX_ADD_IO_SEG(0x00014F0000000358ull))
54#define CVMX_IPD_PORTX_BP_PAGE_CNT(offset) (CVMX_ADD_IO_SEG(0x00014F0000000028ull) + ((offset) & 63) * 8)
55#define CVMX_IPD_PORTX_BP_PAGE_CNT2(offset) (CVMX_ADD_IO_SEG(0x00014F0000000368ull) + ((offset) & 63) * 8 - 8*36)
56#define CVMX_IPD_PORTX_BP_PAGE_CNT3(offset) (CVMX_ADD_IO_SEG(0x00014F00000003D0ull) + ((offset) & 63) * 8 - 8*40)
57#define CVMX_IPD_PORT_BP_COUNTERS2_PAIRX(offset) (CVMX_ADD_IO_SEG(0x00014F0000000388ull) + ((offset) & 63) * 8 - 8*36)
58#define CVMX_IPD_PORT_BP_COUNTERS3_PAIRX(offset) (CVMX_ADD_IO_SEG(0x00014F00000003B0ull) + ((offset) & 63) * 8 - 8*40)
59#define CVMX_IPD_PORT_BP_COUNTERS4_PAIRX(offset) (CVMX_ADD_IO_SEG(0x00014F0000000410ull) + ((offset) & 63) * 8 - 8*44)
60#define CVMX_IPD_PORT_BP_COUNTERS_PAIRX(offset) (CVMX_ADD_IO_SEG(0x00014F00000001B8ull) + ((offset) & 63) * 8)
61#define CVMX_IPD_PORT_PTR_FIFO_CTL (CVMX_ADD_IO_SEG(0x00014F0000000798ull))
62#define CVMX_IPD_PORT_QOS_INTX(offset) (CVMX_ADD_IO_SEG(0x00014F0000000808ull) + ((offset) & 7) * 8)
63#define CVMX_IPD_PORT_QOS_INT_ENBX(offset) (CVMX_ADD_IO_SEG(0x00014F0000000848ull) + ((offset) & 7) * 8)
64#define CVMX_IPD_PORT_QOS_X_CNT(offset) (CVMX_ADD_IO_SEG(0x00014F0000000888ull) + ((offset) & 511) * 8)
65#define CVMX_IPD_PORT_SOPX(block_id) (CVMX_ADD_IO_SEG(0x00014F0000004400ull))
66#define CVMX_IPD_PRC_HOLD_PTR_FIFO_CTL (CVMX_ADD_IO_SEG(0x00014F0000000348ull))
67#define CVMX_IPD_PRC_PORT_PTR_FIFO_CTL (CVMX_ADD_IO_SEG(0x00014F0000000350ull))
68#define CVMX_IPD_PTR_COUNT (CVMX_ADD_IO_SEG(0x00014F0000000320ull))
69#define CVMX_IPD_PWP_PTR_FIFO_CTL (CVMX_ADD_IO_SEG(0x00014F0000000340ull))
70#define CVMX_IPD_QOS0_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(0)
71#define CVMX_IPD_QOS1_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(1)
72#define CVMX_IPD_QOS2_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(2)
73#define CVMX_IPD_QOS3_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(3)
74#define CVMX_IPD_QOS4_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(4)
75#define CVMX_IPD_QOS5_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(5)
76#define CVMX_IPD_QOS6_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(6)
77#define CVMX_IPD_QOS7_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(7)
78#define CVMX_IPD_QOSX_RED_MARKS(offset) (CVMX_ADD_IO_SEG(0x00014F0000000178ull) + ((offset) & 7) * 8)
79#define CVMX_IPD_QUE0_FREE_PAGE_CNT (CVMX_ADD_IO_SEG(0x00014F0000000330ull))
80#define CVMX_IPD_RED_BPID_ENABLEX(block_id) (CVMX_ADD_IO_SEG(0x00014F0000004200ull))
81#define CVMX_IPD_RED_DELAY (CVMX_ADD_IO_SEG(0x00014F0000004300ull))
82#define CVMX_IPD_RED_PORT_ENABLE (CVMX_ADD_IO_SEG(0x00014F00000002D8ull))
83#define CVMX_IPD_RED_PORT_ENABLE2 (CVMX_ADD_IO_SEG(0x00014F00000003A8ull))
84#define CVMX_IPD_RED_QUE0_PARAM CVMX_IPD_RED_QUEX_PARAM(0)
85#define CVMX_IPD_RED_QUE1_PARAM CVMX_IPD_RED_QUEX_PARAM(1)
86#define CVMX_IPD_RED_QUE2_PARAM CVMX_IPD_RED_QUEX_PARAM(2)
87#define CVMX_IPD_RED_QUE3_PARAM CVMX_IPD_RED_QUEX_PARAM(3)
88#define CVMX_IPD_RED_QUE4_PARAM CVMX_IPD_RED_QUEX_PARAM(4)
89#define CVMX_IPD_RED_QUE5_PARAM CVMX_IPD_RED_QUEX_PARAM(5)
90#define CVMX_IPD_RED_QUE6_PARAM CVMX_IPD_RED_QUEX_PARAM(6)
91#define CVMX_IPD_RED_QUE7_PARAM CVMX_IPD_RED_QUEX_PARAM(7)
92#define CVMX_IPD_RED_QUEX_PARAM(offset) (CVMX_ADD_IO_SEG(0x00014F00000002E0ull) + ((offset) & 7) * 8)
93#define CVMX_IPD_REQ_WGT (CVMX_ADD_IO_SEG(0x00014F0000004418ull))
94#define CVMX_IPD_SUB_PORT_BP_PAGE_CNT (CVMX_ADD_IO_SEG(0x00014F0000000148ull))
95#define CVMX_IPD_SUB_PORT_FCS (CVMX_ADD_IO_SEG(0x00014F0000000170ull))
96#define CVMX_IPD_SUB_PORT_QOS_CNT (CVMX_ADD_IO_SEG(0x00014F0000000800ull))
97#define CVMX_IPD_WQE_FPA_QUEUE (CVMX_ADD_IO_SEG(0x00014F0000000020ull))
98#define CVMX_IPD_WQE_PTR_VALID (CVMX_ADD_IO_SEG(0x00014F0000000360ull))
99
100union cvmx_ipd_1st_mbuff_skip {
101	uint64_t u64;
102	struct cvmx_ipd_1st_mbuff_skip_s {
103#ifdef __BIG_ENDIAN_BITFIELD
104		uint64_t reserved_6_63:58;
105		uint64_t skip_sz:6;
106#else
107		uint64_t skip_sz:6;
108		uint64_t reserved_6_63:58;
109#endif
110	} s;
111};
112
113union cvmx_ipd_1st_next_ptr_back {
114	uint64_t u64;
115	struct cvmx_ipd_1st_next_ptr_back_s {
116#ifdef __BIG_ENDIAN_BITFIELD
117		uint64_t reserved_4_63:60;
118		uint64_t back:4;
119#else
120		uint64_t back:4;
121		uint64_t reserved_4_63:60;
122#endif
123	} s;
124};
125
126union cvmx_ipd_2nd_next_ptr_back {
127	uint64_t u64;
128	struct cvmx_ipd_2nd_next_ptr_back_s {
129#ifdef __BIG_ENDIAN_BITFIELD
130		uint64_t reserved_4_63:60;
131		uint64_t back:4;
132#else
133		uint64_t back:4;
134		uint64_t reserved_4_63:60;
135#endif
136	} s;
137};
138
139union cvmx_ipd_bist_status {
140	uint64_t u64;
141	struct cvmx_ipd_bist_status_s {
142#ifdef __BIG_ENDIAN_BITFIELD
143		uint64_t reserved_23_63:41;
144		uint64_t iiwo1:1;
145		uint64_t iiwo0:1;
146		uint64_t iio1:1;
147		uint64_t iio0:1;
148		uint64_t pbm4:1;
149		uint64_t csr_mem:1;
150		uint64_t csr_ncmd:1;
151		uint64_t pwq_wqed:1;
152		uint64_t pwq_wp1:1;
153		uint64_t pwq_pow:1;
154		uint64_t ipq_pbe1:1;
155		uint64_t ipq_pbe0:1;
156		uint64_t pbm3:1;
157		uint64_t pbm2:1;
158		uint64_t pbm1:1;
159		uint64_t pbm0:1;
160		uint64_t pbm_word:1;
161		uint64_t pwq1:1;
162		uint64_t pwq0:1;
163		uint64_t prc_off:1;
164		uint64_t ipd_old:1;
165		uint64_t ipd_new:1;
166		uint64_t pwp:1;
167#else
168		uint64_t pwp:1;
169		uint64_t ipd_new:1;
170		uint64_t ipd_old:1;
171		uint64_t prc_off:1;
172		uint64_t pwq0:1;
173		uint64_t pwq1:1;
174		uint64_t pbm_word:1;
175		uint64_t pbm0:1;
176		uint64_t pbm1:1;
177		uint64_t pbm2:1;
178		uint64_t pbm3:1;
179		uint64_t ipq_pbe0:1;
180		uint64_t ipq_pbe1:1;
181		uint64_t pwq_pow:1;
182		uint64_t pwq_wp1:1;
183		uint64_t pwq_wqed:1;
184		uint64_t csr_ncmd:1;
185		uint64_t csr_mem:1;
186		uint64_t pbm4:1;
187		uint64_t iio0:1;
188		uint64_t iio1:1;
189		uint64_t iiwo0:1;
190		uint64_t iiwo1:1;
191		uint64_t reserved_23_63:41;
192#endif
193	} s;
194	struct cvmx_ipd_bist_status_cn30xx {
195#ifdef __BIG_ENDIAN_BITFIELD
196		uint64_t reserved_16_63:48;
197		uint64_t pwq_wqed:1;
198		uint64_t pwq_wp1:1;
199		uint64_t pwq_pow:1;
200		uint64_t ipq_pbe1:1;
201		uint64_t ipq_pbe0:1;
202		uint64_t pbm3:1;
203		uint64_t pbm2:1;
204		uint64_t pbm1:1;
205		uint64_t pbm0:1;
206		uint64_t pbm_word:1;
207		uint64_t pwq1:1;
208		uint64_t pwq0:1;
209		uint64_t prc_off:1;
210		uint64_t ipd_old:1;
211		uint64_t ipd_new:1;
212		uint64_t pwp:1;
213#else
214		uint64_t pwp:1;
215		uint64_t ipd_new:1;
216		uint64_t ipd_old:1;
217		uint64_t prc_off:1;
218		uint64_t pwq0:1;
219		uint64_t pwq1:1;
220		uint64_t pbm_word:1;
221		uint64_t pbm0:1;
222		uint64_t pbm1:1;
223		uint64_t pbm2:1;
224		uint64_t pbm3:1;
225		uint64_t ipq_pbe0:1;
226		uint64_t ipq_pbe1:1;
227		uint64_t pwq_pow:1;
228		uint64_t pwq_wp1:1;
229		uint64_t pwq_wqed:1;
230		uint64_t reserved_16_63:48;
231#endif
232	} cn30xx;
233	struct cvmx_ipd_bist_status_cn52xx {
234#ifdef __BIG_ENDIAN_BITFIELD
235		uint64_t reserved_18_63:46;
236		uint64_t csr_mem:1;
237		uint64_t csr_ncmd:1;
238		uint64_t pwq_wqed:1;
239		uint64_t pwq_wp1:1;
240		uint64_t pwq_pow:1;
241		uint64_t ipq_pbe1:1;
242		uint64_t ipq_pbe0:1;
243		uint64_t pbm3:1;
244		uint64_t pbm2:1;
245		uint64_t pbm1:1;
246		uint64_t pbm0:1;
247		uint64_t pbm_word:1;
248		uint64_t pwq1:1;
249		uint64_t pwq0:1;
250		uint64_t prc_off:1;
251		uint64_t ipd_old:1;
252		uint64_t ipd_new:1;
253		uint64_t pwp:1;
254#else
255		uint64_t pwp:1;
256		uint64_t ipd_new:1;
257		uint64_t ipd_old:1;
258		uint64_t prc_off:1;
259		uint64_t pwq0:1;
260		uint64_t pwq1:1;
261		uint64_t pbm_word:1;
262		uint64_t pbm0:1;
263		uint64_t pbm1:1;
264		uint64_t pbm2:1;
265		uint64_t pbm3:1;
266		uint64_t ipq_pbe0:1;
267		uint64_t ipq_pbe1:1;
268		uint64_t pwq_pow:1;
269		uint64_t pwq_wp1:1;
270		uint64_t pwq_wqed:1;
271		uint64_t csr_ncmd:1;
272		uint64_t csr_mem:1;
273		uint64_t reserved_18_63:46;
274#endif
275	} cn52xx;
276};
277
278union cvmx_ipd_bp_prt_red_end {
279	uint64_t u64;
280	struct cvmx_ipd_bp_prt_red_end_s {
281#ifdef __BIG_ENDIAN_BITFIELD
282		uint64_t reserved_48_63:16;
283		uint64_t prt_enb:48;
284#else
285		uint64_t prt_enb:48;
286		uint64_t reserved_48_63:16;
287#endif
288	} s;
289	struct cvmx_ipd_bp_prt_red_end_cn30xx {
290#ifdef __BIG_ENDIAN_BITFIELD
291		uint64_t reserved_36_63:28;
292		uint64_t prt_enb:36;
293#else
294		uint64_t prt_enb:36;
295		uint64_t reserved_36_63:28;
296#endif
297	} cn30xx;
298	struct cvmx_ipd_bp_prt_red_end_cn52xx {
299#ifdef __BIG_ENDIAN_BITFIELD
300		uint64_t reserved_40_63:24;
301		uint64_t prt_enb:40;
302#else
303		uint64_t prt_enb:40;
304		uint64_t reserved_40_63:24;
305#endif
306	} cn52xx;
307	struct cvmx_ipd_bp_prt_red_end_cn63xx {
308#ifdef __BIG_ENDIAN_BITFIELD
309		uint64_t reserved_44_63:20;
310		uint64_t prt_enb:44;
311#else
312		uint64_t prt_enb:44;
313		uint64_t reserved_44_63:20;
314#endif
315	} cn63xx;
316};
317
318union cvmx_ipd_bpidx_mbuf_th {
319	uint64_t u64;
320	struct cvmx_ipd_bpidx_mbuf_th_s {
321#ifdef __BIG_ENDIAN_BITFIELD
322		uint64_t reserved_18_63:46;
323		uint64_t bp_enb:1;
324		uint64_t page_cnt:17;
325#else
326		uint64_t page_cnt:17;
327		uint64_t bp_enb:1;
328		uint64_t reserved_18_63:46;
329#endif
330	} s;
331};
332
333union cvmx_ipd_bpid_bp_counterx {
334	uint64_t u64;
335	struct cvmx_ipd_bpid_bp_counterx_s {
336#ifdef __BIG_ENDIAN_BITFIELD
337		uint64_t reserved_25_63:39;
338		uint64_t cnt_val:25;
339#else
340		uint64_t cnt_val:25;
341		uint64_t reserved_25_63:39;
342#endif
343	} s;
344};
345
346union cvmx_ipd_clk_count {
347	uint64_t u64;
348	struct cvmx_ipd_clk_count_s {
349#ifdef __BIG_ENDIAN_BITFIELD
350		uint64_t clk_cnt:64;
351#else
352		uint64_t clk_cnt:64;
353#endif
354	} s;
355};
356
357union cvmx_ipd_credits {
358	uint64_t u64;
359	struct cvmx_ipd_credits_s {
360#ifdef __BIG_ENDIAN_BITFIELD
361		uint64_t reserved_16_63:48;
362		uint64_t iob_wrc:8;
363		uint64_t iob_wr:8;
364#else
365		uint64_t iob_wr:8;
366		uint64_t iob_wrc:8;
367		uint64_t reserved_16_63:48;
368#endif
369	} s;
370};
371
372union cvmx_ipd_ctl_status {
373	uint64_t u64;
374	struct cvmx_ipd_ctl_status_s {
375#ifdef __BIG_ENDIAN_BITFIELD
376		uint64_t reserved_18_63:46;
377		uint64_t use_sop:1;
378		uint64_t rst_done:1;
379		uint64_t clken:1;
380		uint64_t no_wptr:1;
381		uint64_t pq_apkt:1;
382		uint64_t pq_nabuf:1;
383		uint64_t ipd_full:1;
384		uint64_t pkt_off:1;
385		uint64_t len_m8:1;
386		uint64_t reset:1;
387		uint64_t addpkt:1;
388		uint64_t naddbuf:1;
389		uint64_t pkt_lend:1;
390		uint64_t wqe_lend:1;
391		uint64_t pbp_en:1;
392		uint64_t opc_mode:2;
393		uint64_t ipd_en:1;
394#else
395		uint64_t ipd_en:1;
396		uint64_t opc_mode:2;
397		uint64_t pbp_en:1;
398		uint64_t wqe_lend:1;
399		uint64_t pkt_lend:1;
400		uint64_t naddbuf:1;
401		uint64_t addpkt:1;
402		uint64_t reset:1;
403		uint64_t len_m8:1;
404		uint64_t pkt_off:1;
405		uint64_t ipd_full:1;
406		uint64_t pq_nabuf:1;
407		uint64_t pq_apkt:1;
408		uint64_t no_wptr:1;
409		uint64_t clken:1;
410		uint64_t rst_done:1;
411		uint64_t use_sop:1;
412		uint64_t reserved_18_63:46;
413#endif
414	} s;
415	struct cvmx_ipd_ctl_status_cn30xx {
416#ifdef __BIG_ENDIAN_BITFIELD
417		uint64_t reserved_10_63:54;
418		uint64_t len_m8:1;
419		uint64_t reset:1;
420		uint64_t addpkt:1;
421		uint64_t naddbuf:1;
422		uint64_t pkt_lend:1;
423		uint64_t wqe_lend:1;
424		uint64_t pbp_en:1;
425		uint64_t opc_mode:2;
426		uint64_t ipd_en:1;
427#else
428		uint64_t ipd_en:1;
429		uint64_t opc_mode:2;
430		uint64_t pbp_en:1;
431		uint64_t wqe_lend:1;
432		uint64_t pkt_lend:1;
433		uint64_t naddbuf:1;
434		uint64_t addpkt:1;
435		uint64_t reset:1;
436		uint64_t len_m8:1;
437		uint64_t reserved_10_63:54;
438#endif
439	} cn30xx;
440	struct cvmx_ipd_ctl_status_cn38xxp2 {
441#ifdef __BIG_ENDIAN_BITFIELD
442		uint64_t reserved_9_63:55;
443		uint64_t reset:1;
444		uint64_t addpkt:1;
445		uint64_t naddbuf:1;
446		uint64_t pkt_lend:1;
447		uint64_t wqe_lend:1;
448		uint64_t pbp_en:1;
449		uint64_t opc_mode:2;
450		uint64_t ipd_en:1;
451#else
452		uint64_t ipd_en:1;
453		uint64_t opc_mode:2;
454		uint64_t pbp_en:1;
455		uint64_t wqe_lend:1;
456		uint64_t pkt_lend:1;
457		uint64_t naddbuf:1;
458		uint64_t addpkt:1;
459		uint64_t reset:1;
460		uint64_t reserved_9_63:55;
461#endif
462	} cn38xxp2;
463	struct cvmx_ipd_ctl_status_cn50xx {
464#ifdef __BIG_ENDIAN_BITFIELD
465		uint64_t reserved_15_63:49;
466		uint64_t no_wptr:1;
467		uint64_t pq_apkt:1;
468		uint64_t pq_nabuf:1;
469		uint64_t ipd_full:1;
470		uint64_t pkt_off:1;
471		uint64_t len_m8:1;
472		uint64_t reset:1;
473		uint64_t addpkt:1;
474		uint64_t naddbuf:1;
475		uint64_t pkt_lend:1;
476		uint64_t wqe_lend:1;
477		uint64_t pbp_en:1;
478		uint64_t opc_mode:2;
479		uint64_t ipd_en:1;
480#else
481		uint64_t ipd_en:1;
482		uint64_t opc_mode:2;
483		uint64_t pbp_en:1;
484		uint64_t wqe_lend:1;
485		uint64_t pkt_lend:1;
486		uint64_t naddbuf:1;
487		uint64_t addpkt:1;
488		uint64_t reset:1;
489		uint64_t len_m8:1;
490		uint64_t pkt_off:1;
491		uint64_t ipd_full:1;
492		uint64_t pq_nabuf:1;
493		uint64_t pq_apkt:1;
494		uint64_t no_wptr:1;
495		uint64_t reserved_15_63:49;
496#endif
497	} cn50xx;
498	struct cvmx_ipd_ctl_status_cn58xx {
499#ifdef __BIG_ENDIAN_BITFIELD
500		uint64_t reserved_12_63:52;
501		uint64_t ipd_full:1;
502		uint64_t pkt_off:1;
503		uint64_t len_m8:1;
504		uint64_t reset:1;
505		uint64_t addpkt:1;
506		uint64_t naddbuf:1;
507		uint64_t pkt_lend:1;
508		uint64_t wqe_lend:1;
509		uint64_t pbp_en:1;
510		uint64_t opc_mode:2;
511		uint64_t ipd_en:1;
512#else
513		uint64_t ipd_en:1;
514		uint64_t opc_mode:2;
515		uint64_t pbp_en:1;
516		uint64_t wqe_lend:1;
517		uint64_t pkt_lend:1;
518		uint64_t naddbuf:1;
519		uint64_t addpkt:1;
520		uint64_t reset:1;
521		uint64_t len_m8:1;
522		uint64_t pkt_off:1;
523		uint64_t ipd_full:1;
524		uint64_t reserved_12_63:52;
525#endif
526	} cn58xx;
527	struct cvmx_ipd_ctl_status_cn63xxp1 {
528#ifdef __BIG_ENDIAN_BITFIELD
529		uint64_t reserved_16_63:48;
530		uint64_t clken:1;
531		uint64_t no_wptr:1;
532		uint64_t pq_apkt:1;
533		uint64_t pq_nabuf:1;
534		uint64_t ipd_full:1;
535		uint64_t pkt_off:1;
536		uint64_t len_m8:1;
537		uint64_t reset:1;
538		uint64_t addpkt:1;
539		uint64_t naddbuf:1;
540		uint64_t pkt_lend:1;
541		uint64_t wqe_lend:1;
542		uint64_t pbp_en:1;
543		uint64_t opc_mode:2;
544		uint64_t ipd_en:1;
545#else
546		uint64_t ipd_en:1;
547		uint64_t opc_mode:2;
548		uint64_t pbp_en:1;
549		uint64_t wqe_lend:1;
550		uint64_t pkt_lend:1;
551		uint64_t naddbuf:1;
552		uint64_t addpkt:1;
553		uint64_t reset:1;
554		uint64_t len_m8:1;
555		uint64_t pkt_off:1;
556		uint64_t ipd_full:1;
557		uint64_t pq_nabuf:1;
558		uint64_t pq_apkt:1;
559		uint64_t no_wptr:1;
560		uint64_t clken:1;
561		uint64_t reserved_16_63:48;
562#endif
563	} cn63xxp1;
564};
565
566union cvmx_ipd_ecc_ctl {
567	uint64_t u64;
568	struct cvmx_ipd_ecc_ctl_s {
569#ifdef __BIG_ENDIAN_BITFIELD
570		uint64_t reserved_8_63:56;
571		uint64_t pm3_syn:2;
572		uint64_t pm2_syn:2;
573		uint64_t pm1_syn:2;
574		uint64_t pm0_syn:2;
575#else
576		uint64_t pm0_syn:2;
577		uint64_t pm1_syn:2;
578		uint64_t pm2_syn:2;
579		uint64_t pm3_syn:2;
580		uint64_t reserved_8_63:56;
581#endif
582	} s;
583};
584
585union cvmx_ipd_free_ptr_fifo_ctl {
586	uint64_t u64;
587	struct cvmx_ipd_free_ptr_fifo_ctl_s {
588#ifdef __BIG_ENDIAN_BITFIELD
589		uint64_t reserved_32_63:32;
590		uint64_t max_cnts:7;
591		uint64_t wraddr:8;
592		uint64_t praddr:8;
593		uint64_t cena:1;
594		uint64_t raddr:8;
595#else
596		uint64_t raddr:8;
597		uint64_t cena:1;
598		uint64_t praddr:8;
599		uint64_t wraddr:8;
600		uint64_t max_cnts:7;
601		uint64_t reserved_32_63:32;
602#endif
603	} s;
604};
605
606union cvmx_ipd_free_ptr_value {
607	uint64_t u64;
608	struct cvmx_ipd_free_ptr_value_s {
609#ifdef __BIG_ENDIAN_BITFIELD
610		uint64_t reserved_33_63:31;
611		uint64_t ptr:33;
612#else
613		uint64_t ptr:33;
614		uint64_t reserved_33_63:31;
615#endif
616	} s;
617};
618
619union cvmx_ipd_hold_ptr_fifo_ctl {
620	uint64_t u64;
621	struct cvmx_ipd_hold_ptr_fifo_ctl_s {
622#ifdef __BIG_ENDIAN_BITFIELD
623		uint64_t reserved_43_63:21;
624		uint64_t ptr:33;
625		uint64_t max_pkt:3;
626		uint64_t praddr:3;
627		uint64_t cena:1;
628		uint64_t raddr:3;
629#else
630		uint64_t raddr:3;
631		uint64_t cena:1;
632		uint64_t praddr:3;
633		uint64_t max_pkt:3;
634		uint64_t ptr:33;
635		uint64_t reserved_43_63:21;
636#endif
637	} s;
638};
639
640union cvmx_ipd_int_enb {
641	uint64_t u64;
642	struct cvmx_ipd_int_enb_s {
643#ifdef __BIG_ENDIAN_BITFIELD
644		uint64_t reserved_23_63:41;
645		uint64_t pw3_dbe:1;
646		uint64_t pw3_sbe:1;
647		uint64_t pw2_dbe:1;
648		uint64_t pw2_sbe:1;
649		uint64_t pw1_dbe:1;
650		uint64_t pw1_sbe:1;
651		uint64_t pw0_dbe:1;
652		uint64_t pw0_sbe:1;
653		uint64_t dat:1;
654		uint64_t eop:1;
655		uint64_t sop:1;
656		uint64_t pq_sub:1;
657		uint64_t pq_add:1;
658		uint64_t bc_ovr:1;
659		uint64_t d_coll:1;
660		uint64_t c_coll:1;
661		uint64_t cc_ovr:1;
662		uint64_t dc_ovr:1;
663		uint64_t bp_sub:1;
664		uint64_t prc_par3:1;
665		uint64_t prc_par2:1;
666		uint64_t prc_par1:1;
667		uint64_t prc_par0:1;
668#else
669		uint64_t prc_par0:1;
670		uint64_t prc_par1:1;
671		uint64_t prc_par2:1;
672		uint64_t prc_par3:1;
673		uint64_t bp_sub:1;
674		uint64_t dc_ovr:1;
675		uint64_t cc_ovr:1;
676		uint64_t c_coll:1;
677		uint64_t d_coll:1;
678		uint64_t bc_ovr:1;
679		uint64_t pq_add:1;
680		uint64_t pq_sub:1;
681		uint64_t sop:1;
682		uint64_t eop:1;
683		uint64_t dat:1;
684		uint64_t pw0_sbe:1;
685		uint64_t pw0_dbe:1;
686		uint64_t pw1_sbe:1;
687		uint64_t pw1_dbe:1;
688		uint64_t pw2_sbe:1;
689		uint64_t pw2_dbe:1;
690		uint64_t pw3_sbe:1;
691		uint64_t pw3_dbe:1;
692		uint64_t reserved_23_63:41;
693#endif
694	} s;
695	struct cvmx_ipd_int_enb_cn30xx {
696#ifdef __BIG_ENDIAN_BITFIELD
697		uint64_t reserved_5_63:59;
698		uint64_t bp_sub:1;
699		uint64_t prc_par3:1;
700		uint64_t prc_par2:1;
701		uint64_t prc_par1:1;
702		uint64_t prc_par0:1;
703#else
704		uint64_t prc_par0:1;
705		uint64_t prc_par1:1;
706		uint64_t prc_par2:1;
707		uint64_t prc_par3:1;
708		uint64_t bp_sub:1;
709		uint64_t reserved_5_63:59;
710#endif
711	} cn30xx;
712	struct cvmx_ipd_int_enb_cn38xx {
713#ifdef __BIG_ENDIAN_BITFIELD
714		uint64_t reserved_10_63:54;
715		uint64_t bc_ovr:1;
716		uint64_t d_coll:1;
717		uint64_t c_coll:1;
718		uint64_t cc_ovr:1;
719		uint64_t dc_ovr:1;
720		uint64_t bp_sub:1;
721		uint64_t prc_par3:1;
722		uint64_t prc_par2:1;
723		uint64_t prc_par1:1;
724		uint64_t prc_par0:1;
725#else
726		uint64_t prc_par0:1;
727		uint64_t prc_par1:1;
728		uint64_t prc_par2:1;
729		uint64_t prc_par3:1;
730		uint64_t bp_sub:1;
731		uint64_t dc_ovr:1;
732		uint64_t cc_ovr:1;
733		uint64_t c_coll:1;
734		uint64_t d_coll:1;
735		uint64_t bc_ovr:1;
736		uint64_t reserved_10_63:54;
737#endif
738	} cn38xx;
739	struct cvmx_ipd_int_enb_cn52xx {
740#ifdef __BIG_ENDIAN_BITFIELD
741		uint64_t reserved_12_63:52;
742		uint64_t pq_sub:1;
743		uint64_t pq_add:1;
744		uint64_t bc_ovr:1;
745		uint64_t d_coll:1;
746		uint64_t c_coll:1;
747		uint64_t cc_ovr:1;
748		uint64_t dc_ovr:1;
749		uint64_t bp_sub:1;
750		uint64_t prc_par3:1;
751		uint64_t prc_par2:1;
752		uint64_t prc_par1:1;
753		uint64_t prc_par0:1;
754#else
755		uint64_t prc_par0:1;
756		uint64_t prc_par1:1;
757		uint64_t prc_par2:1;
758		uint64_t prc_par3:1;
759		uint64_t bp_sub:1;
760		uint64_t dc_ovr:1;
761		uint64_t cc_ovr:1;
762		uint64_t c_coll:1;
763		uint64_t d_coll:1;
764		uint64_t bc_ovr:1;
765		uint64_t pq_add:1;
766		uint64_t pq_sub:1;
767		uint64_t reserved_12_63:52;
768#endif
769	} cn52xx;
770};
771
772union cvmx_ipd_int_sum {
773	uint64_t u64;
774	struct cvmx_ipd_int_sum_s {
775#ifdef __BIG_ENDIAN_BITFIELD
776		uint64_t reserved_23_63:41;
777		uint64_t pw3_dbe:1;
778		uint64_t pw3_sbe:1;
779		uint64_t pw2_dbe:1;
780		uint64_t pw2_sbe:1;
781		uint64_t pw1_dbe:1;
782		uint64_t pw1_sbe:1;
783		uint64_t pw0_dbe:1;
784		uint64_t pw0_sbe:1;
785		uint64_t dat:1;
786		uint64_t eop:1;
787		uint64_t sop:1;
788		uint64_t pq_sub:1;
789		uint64_t pq_add:1;
790		uint64_t bc_ovr:1;
791		uint64_t d_coll:1;
792		uint64_t c_coll:1;
793		uint64_t cc_ovr:1;
794		uint64_t dc_ovr:1;
795		uint64_t bp_sub:1;
796		uint64_t prc_par3:1;
797		uint64_t prc_par2:1;
798		uint64_t prc_par1:1;
799		uint64_t prc_par0:1;
800#else
801		uint64_t prc_par0:1;
802		uint64_t prc_par1:1;
803		uint64_t prc_par2:1;
804		uint64_t prc_par3:1;
805		uint64_t bp_sub:1;
806		uint64_t dc_ovr:1;
807		uint64_t cc_ovr:1;
808		uint64_t c_coll:1;
809		uint64_t d_coll:1;
810		uint64_t bc_ovr:1;
811		uint64_t pq_add:1;
812		uint64_t pq_sub:1;
813		uint64_t sop:1;
814		uint64_t eop:1;
815		uint64_t dat:1;
816		uint64_t pw0_sbe:1;
817		uint64_t pw0_dbe:1;
818		uint64_t pw1_sbe:1;
819		uint64_t pw1_dbe:1;
820		uint64_t pw2_sbe:1;
821		uint64_t pw2_dbe:1;
822		uint64_t pw3_sbe:1;
823		uint64_t pw3_dbe:1;
824		uint64_t reserved_23_63:41;
825#endif
826	} s;
827	struct cvmx_ipd_int_sum_cn30xx {
828#ifdef __BIG_ENDIAN_BITFIELD
829		uint64_t reserved_5_63:59;
830		uint64_t bp_sub:1;
831		uint64_t prc_par3:1;
832		uint64_t prc_par2:1;
833		uint64_t prc_par1:1;
834		uint64_t prc_par0:1;
835#else
836		uint64_t prc_par0:1;
837		uint64_t prc_par1:1;
838		uint64_t prc_par2:1;
839		uint64_t prc_par3:1;
840		uint64_t bp_sub:1;
841		uint64_t reserved_5_63:59;
842#endif
843	} cn30xx;
844	struct cvmx_ipd_int_sum_cn38xx {
845#ifdef __BIG_ENDIAN_BITFIELD
846		uint64_t reserved_10_63:54;
847		uint64_t bc_ovr:1;
848		uint64_t d_coll:1;
849		uint64_t c_coll:1;
850		uint64_t cc_ovr:1;
851		uint64_t dc_ovr:1;
852		uint64_t bp_sub:1;
853		uint64_t prc_par3:1;
854		uint64_t prc_par2:1;
855		uint64_t prc_par1:1;
856		uint64_t prc_par0:1;
857#else
858		uint64_t prc_par0:1;
859		uint64_t prc_par1:1;
860		uint64_t prc_par2:1;
861		uint64_t prc_par3:1;
862		uint64_t bp_sub:1;
863		uint64_t dc_ovr:1;
864		uint64_t cc_ovr:1;
865		uint64_t c_coll:1;
866		uint64_t d_coll:1;
867		uint64_t bc_ovr:1;
868		uint64_t reserved_10_63:54;
869#endif
870	} cn38xx;
871	struct cvmx_ipd_int_sum_cn52xx {
872#ifdef __BIG_ENDIAN_BITFIELD
873		uint64_t reserved_12_63:52;
874		uint64_t pq_sub:1;
875		uint64_t pq_add:1;
876		uint64_t bc_ovr:1;
877		uint64_t d_coll:1;
878		uint64_t c_coll:1;
879		uint64_t cc_ovr:1;
880		uint64_t dc_ovr:1;
881		uint64_t bp_sub:1;
882		uint64_t prc_par3:1;
883		uint64_t prc_par2:1;
884		uint64_t prc_par1:1;
885		uint64_t prc_par0:1;
886#else
887		uint64_t prc_par0:1;
888		uint64_t prc_par1:1;
889		uint64_t prc_par2:1;
890		uint64_t prc_par3:1;
891		uint64_t bp_sub:1;
892		uint64_t dc_ovr:1;
893		uint64_t cc_ovr:1;
894		uint64_t c_coll:1;
895		uint64_t d_coll:1;
896		uint64_t bc_ovr:1;
897		uint64_t pq_add:1;
898		uint64_t pq_sub:1;
899		uint64_t reserved_12_63:52;
900#endif
901	} cn52xx;
902};
903
904union cvmx_ipd_next_pkt_ptr {
905	uint64_t u64;
906	struct cvmx_ipd_next_pkt_ptr_s {
907#ifdef __BIG_ENDIAN_BITFIELD
908		uint64_t reserved_33_63:31;
909		uint64_t ptr:33;
910#else
911		uint64_t ptr:33;
912		uint64_t reserved_33_63:31;
913#endif
914	} s;
915};
916
917union cvmx_ipd_next_wqe_ptr {
918	uint64_t u64;
919	struct cvmx_ipd_next_wqe_ptr_s {
920#ifdef __BIG_ENDIAN_BITFIELD
921		uint64_t reserved_33_63:31;
922		uint64_t ptr:33;
923#else
924		uint64_t ptr:33;
925		uint64_t reserved_33_63:31;
926#endif
927	} s;
928};
929
930union cvmx_ipd_not_1st_mbuff_skip {
931	uint64_t u64;
932	struct cvmx_ipd_not_1st_mbuff_skip_s {
933#ifdef __BIG_ENDIAN_BITFIELD
934		uint64_t reserved_6_63:58;
935		uint64_t skip_sz:6;
936#else
937		uint64_t skip_sz:6;
938		uint64_t reserved_6_63:58;
939#endif
940	} s;
941};
942
943union cvmx_ipd_on_bp_drop_pktx {
944	uint64_t u64;
945	struct cvmx_ipd_on_bp_drop_pktx_s {
946#ifdef __BIG_ENDIAN_BITFIELD
947		uint64_t prt_enb:64;
948#else
949		uint64_t prt_enb:64;
950#endif
951	} s;
952};
953
954union cvmx_ipd_packet_mbuff_size {
955	uint64_t u64;
956	struct cvmx_ipd_packet_mbuff_size_s {
957#ifdef __BIG_ENDIAN_BITFIELD
958		uint64_t reserved_12_63:52;
959		uint64_t mb_size:12;
960#else
961		uint64_t mb_size:12;
962		uint64_t reserved_12_63:52;
963#endif
964	} s;
965};
966
967union cvmx_ipd_pkt_err {
968	uint64_t u64;
969	struct cvmx_ipd_pkt_err_s {
970#ifdef __BIG_ENDIAN_BITFIELD
971		uint64_t reserved_6_63:58;
972		uint64_t reasm:6;
973#else
974		uint64_t reasm:6;
975		uint64_t reserved_6_63:58;
976#endif
977	} s;
978};
979
980union cvmx_ipd_pkt_ptr_valid {
981	uint64_t u64;
982	struct cvmx_ipd_pkt_ptr_valid_s {
983#ifdef __BIG_ENDIAN_BITFIELD
984		uint64_t reserved_29_63:35;
985		uint64_t ptr:29;
986#else
987		uint64_t ptr:29;
988		uint64_t reserved_29_63:35;
989#endif
990	} s;
991};
992
993union cvmx_ipd_portx_bp_page_cnt {
994	uint64_t u64;
995	struct cvmx_ipd_portx_bp_page_cnt_s {
996#ifdef __BIG_ENDIAN_BITFIELD
997		uint64_t reserved_18_63:46;
998		uint64_t bp_enb:1;
999		uint64_t page_cnt:17;
1000#else
1001		uint64_t page_cnt:17;
1002		uint64_t bp_enb:1;
1003		uint64_t reserved_18_63:46;
1004#endif
1005	} s;
1006};
1007
1008union cvmx_ipd_portx_bp_page_cnt2 {
1009	uint64_t u64;
1010	struct cvmx_ipd_portx_bp_page_cnt2_s {
1011#ifdef __BIG_ENDIAN_BITFIELD
1012		uint64_t reserved_18_63:46;
1013		uint64_t bp_enb:1;
1014		uint64_t page_cnt:17;
1015#else
1016		uint64_t page_cnt:17;
1017		uint64_t bp_enb:1;
1018		uint64_t reserved_18_63:46;
1019#endif
1020	} s;
1021};
1022
1023union cvmx_ipd_portx_bp_page_cnt3 {
1024	uint64_t u64;
1025	struct cvmx_ipd_portx_bp_page_cnt3_s {
1026#ifdef __BIG_ENDIAN_BITFIELD
1027		uint64_t reserved_18_63:46;
1028		uint64_t bp_enb:1;
1029		uint64_t page_cnt:17;
1030#else
1031		uint64_t page_cnt:17;
1032		uint64_t bp_enb:1;
1033		uint64_t reserved_18_63:46;
1034#endif
1035	} s;
1036};
1037
1038union cvmx_ipd_port_bp_counters2_pairx {
1039	uint64_t u64;
1040	struct cvmx_ipd_port_bp_counters2_pairx_s {
1041#ifdef __BIG_ENDIAN_BITFIELD
1042		uint64_t reserved_25_63:39;
1043		uint64_t cnt_val:25;
1044#else
1045		uint64_t cnt_val:25;
1046		uint64_t reserved_25_63:39;
1047#endif
1048	} s;
1049};
1050
1051union cvmx_ipd_port_bp_counters3_pairx {
1052	uint64_t u64;
1053	struct cvmx_ipd_port_bp_counters3_pairx_s {
1054#ifdef __BIG_ENDIAN_BITFIELD
1055		uint64_t reserved_25_63:39;
1056		uint64_t cnt_val:25;
1057#else
1058		uint64_t cnt_val:25;
1059		uint64_t reserved_25_63:39;
1060#endif
1061	} s;
1062};
1063
1064union cvmx_ipd_port_bp_counters4_pairx {
1065	uint64_t u64;
1066	struct cvmx_ipd_port_bp_counters4_pairx_s {
1067#ifdef __BIG_ENDIAN_BITFIELD
1068		uint64_t reserved_25_63:39;
1069		uint64_t cnt_val:25;
1070#else
1071		uint64_t cnt_val:25;
1072		uint64_t reserved_25_63:39;
1073#endif
1074	} s;
1075};
1076
1077union cvmx_ipd_port_bp_counters_pairx {
1078	uint64_t u64;
1079	struct cvmx_ipd_port_bp_counters_pairx_s {
1080#ifdef __BIG_ENDIAN_BITFIELD
1081		uint64_t reserved_25_63:39;
1082		uint64_t cnt_val:25;
1083#else
1084		uint64_t cnt_val:25;
1085		uint64_t reserved_25_63:39;
1086#endif
1087	} s;
1088};
1089
1090union cvmx_ipd_port_ptr_fifo_ctl {
1091	uint64_t u64;
1092	struct cvmx_ipd_port_ptr_fifo_ctl_s {
1093#ifdef __BIG_ENDIAN_BITFIELD
1094		uint64_t reserved_48_63:16;
1095		uint64_t ptr:33;
1096		uint64_t max_pkt:7;
1097		uint64_t cena:1;
1098		uint64_t raddr:7;
1099#else
1100		uint64_t raddr:7;
1101		uint64_t cena:1;
1102		uint64_t max_pkt:7;
1103		uint64_t ptr:33;
1104		uint64_t reserved_48_63:16;
1105#endif
1106	} s;
1107};
1108
1109union cvmx_ipd_port_qos_x_cnt {
1110	uint64_t u64;
1111	struct cvmx_ipd_port_qos_x_cnt_s {
1112#ifdef __BIG_ENDIAN_BITFIELD
1113		uint64_t wmark:32;
1114		uint64_t cnt:32;
1115#else
1116		uint64_t cnt:32;
1117		uint64_t wmark:32;
1118#endif
1119	} s;
1120};
1121
1122union cvmx_ipd_port_qos_intx {
1123	uint64_t u64;
1124	struct cvmx_ipd_port_qos_intx_s {
1125#ifdef __BIG_ENDIAN_BITFIELD
1126		uint64_t intr:64;
1127#else
1128		uint64_t intr:64;
1129#endif
1130	} s;
1131};
1132
1133union cvmx_ipd_port_qos_int_enbx {
1134	uint64_t u64;
1135	struct cvmx_ipd_port_qos_int_enbx_s {
1136#ifdef __BIG_ENDIAN_BITFIELD
1137		uint64_t enb:64;
1138#else
1139		uint64_t enb:64;
1140#endif
1141	} s;
1142};
1143
1144union cvmx_ipd_port_sopx {
1145	uint64_t u64;
1146	struct cvmx_ipd_port_sopx_s {
1147#ifdef __BIG_ENDIAN_BITFIELD
1148		uint64_t sop:64;
1149#else
1150		uint64_t sop:64;
1151#endif
1152	} s;
1153};
1154
1155union cvmx_ipd_prc_hold_ptr_fifo_ctl {
1156	uint64_t u64;
1157	struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s {
1158#ifdef __BIG_ENDIAN_BITFIELD
1159		uint64_t reserved_39_63:25;
1160		uint64_t max_pkt:3;
1161		uint64_t praddr:3;
1162		uint64_t ptr:29;
1163		uint64_t cena:1;
1164		uint64_t raddr:3;
1165#else
1166		uint64_t raddr:3;
1167		uint64_t cena:1;
1168		uint64_t ptr:29;
1169		uint64_t praddr:3;
1170		uint64_t max_pkt:3;
1171		uint64_t reserved_39_63:25;
1172#endif
1173	} s;
1174};
1175
1176union cvmx_ipd_prc_port_ptr_fifo_ctl {
1177	uint64_t u64;
1178	struct cvmx_ipd_prc_port_ptr_fifo_ctl_s {
1179#ifdef __BIG_ENDIAN_BITFIELD
1180		uint64_t reserved_44_63:20;
1181		uint64_t max_pkt:7;
1182		uint64_t ptr:29;
1183		uint64_t cena:1;
1184		uint64_t raddr:7;
1185#else
1186		uint64_t raddr:7;
1187		uint64_t cena:1;
1188		uint64_t ptr:29;
1189		uint64_t max_pkt:7;
1190		uint64_t reserved_44_63:20;
1191#endif
1192	} s;
1193};
1194
1195union cvmx_ipd_ptr_count {
1196	uint64_t u64;
1197	struct cvmx_ipd_ptr_count_s {
1198#ifdef __BIG_ENDIAN_BITFIELD
1199		uint64_t reserved_19_63:45;
1200		uint64_t pktv_cnt:1;
1201		uint64_t wqev_cnt:1;
1202		uint64_t pfif_cnt:3;
1203		uint64_t pkt_pcnt:7;
1204		uint64_t wqe_pcnt:7;
1205#else
1206		uint64_t wqe_pcnt:7;
1207		uint64_t pkt_pcnt:7;
1208		uint64_t pfif_cnt:3;
1209		uint64_t wqev_cnt:1;
1210		uint64_t pktv_cnt:1;
1211		uint64_t reserved_19_63:45;
1212#endif
1213	} s;
1214};
1215
1216union cvmx_ipd_pwp_ptr_fifo_ctl {
1217	uint64_t u64;
1218	struct cvmx_ipd_pwp_ptr_fifo_ctl_s {
1219#ifdef __BIG_ENDIAN_BITFIELD
1220		uint64_t reserved_61_63:3;
1221		uint64_t max_cnts:7;
1222		uint64_t wraddr:8;
1223		uint64_t praddr:8;
1224		uint64_t ptr:29;
1225		uint64_t cena:1;
1226		uint64_t raddr:8;
1227#else
1228		uint64_t raddr:8;
1229		uint64_t cena:1;
1230		uint64_t ptr:29;
1231		uint64_t praddr:8;
1232		uint64_t wraddr:8;
1233		uint64_t max_cnts:7;
1234		uint64_t reserved_61_63:3;
1235#endif
1236	} s;
1237};
1238
1239union cvmx_ipd_qosx_red_marks {
1240	uint64_t u64;
1241	struct cvmx_ipd_qosx_red_marks_s {
1242#ifdef __BIG_ENDIAN_BITFIELD
1243		uint64_t drop:32;
1244		uint64_t pass:32;
1245#else
1246		uint64_t pass:32;
1247		uint64_t drop:32;
1248#endif
1249	} s;
1250};
1251
1252union cvmx_ipd_que0_free_page_cnt {
1253	uint64_t u64;
1254	struct cvmx_ipd_que0_free_page_cnt_s {
1255#ifdef __BIG_ENDIAN_BITFIELD
1256		uint64_t reserved_32_63:32;
1257		uint64_t q0_pcnt:32;
1258#else
1259		uint64_t q0_pcnt:32;
1260		uint64_t reserved_32_63:32;
1261#endif
1262	} s;
1263};
1264
1265union cvmx_ipd_red_bpid_enablex {
1266	uint64_t u64;
1267	struct cvmx_ipd_red_bpid_enablex_s {
1268#ifdef __BIG_ENDIAN_BITFIELD
1269		uint64_t prt_enb:64;
1270#else
1271		uint64_t prt_enb:64;
1272#endif
1273	} s;
1274};
1275
1276union cvmx_ipd_red_delay {
1277	uint64_t u64;
1278	struct cvmx_ipd_red_delay_s {
1279#ifdef __BIG_ENDIAN_BITFIELD
1280		uint64_t reserved_28_63:36;
1281		uint64_t prb_dly:14;
1282		uint64_t avg_dly:14;
1283#else
1284		uint64_t avg_dly:14;
1285		uint64_t prb_dly:14;
1286		uint64_t reserved_28_63:36;
1287#endif
1288	} s;
1289};
1290
1291union cvmx_ipd_red_port_enable {
1292	uint64_t u64;
1293	struct cvmx_ipd_red_port_enable_s {
1294#ifdef __BIG_ENDIAN_BITFIELD
1295		uint64_t prb_dly:14;
1296		uint64_t avg_dly:14;
1297		uint64_t prt_enb:36;
1298#else
1299		uint64_t prt_enb:36;
1300		uint64_t avg_dly:14;
1301		uint64_t prb_dly:14;
1302#endif
1303	} s;
1304};
1305
1306union cvmx_ipd_red_port_enable2 {
1307	uint64_t u64;
1308	struct cvmx_ipd_red_port_enable2_s {
1309#ifdef __BIG_ENDIAN_BITFIELD
1310		uint64_t reserved_12_63:52;
1311		uint64_t prt_enb:12;
1312#else
1313		uint64_t prt_enb:12;
1314		uint64_t reserved_12_63:52;
1315#endif
1316	} s;
1317	struct cvmx_ipd_red_port_enable2_cn52xx {
1318#ifdef __BIG_ENDIAN_BITFIELD
1319		uint64_t reserved_4_63:60;
1320		uint64_t prt_enb:4;
1321#else
1322		uint64_t prt_enb:4;
1323		uint64_t reserved_4_63:60;
1324#endif
1325	} cn52xx;
1326	struct cvmx_ipd_red_port_enable2_cn63xx {
1327#ifdef __BIG_ENDIAN_BITFIELD
1328		uint64_t reserved_8_63:56;
1329		uint64_t prt_enb:8;
1330#else
1331		uint64_t prt_enb:8;
1332		uint64_t reserved_8_63:56;
1333#endif
1334	} cn63xx;
1335};
1336
1337union cvmx_ipd_red_quex_param {
1338	uint64_t u64;
1339	struct cvmx_ipd_red_quex_param_s {
1340#ifdef __BIG_ENDIAN_BITFIELD
1341		uint64_t reserved_49_63:15;
1342		uint64_t use_pcnt:1;
1343		uint64_t new_con:8;
1344		uint64_t avg_con:8;
1345		uint64_t prb_con:32;
1346#else
1347		uint64_t prb_con:32;
1348		uint64_t avg_con:8;
1349		uint64_t new_con:8;
1350		uint64_t use_pcnt:1;
1351		uint64_t reserved_49_63:15;
1352#endif
1353	} s;
1354};
1355
1356union cvmx_ipd_req_wgt {
1357	uint64_t u64;
1358	struct cvmx_ipd_req_wgt_s {
1359#ifdef __BIG_ENDIAN_BITFIELD
1360		uint64_t wgt7:8;
1361		uint64_t wgt6:8;
1362		uint64_t wgt5:8;
1363		uint64_t wgt4:8;
1364		uint64_t wgt3:8;
1365		uint64_t wgt2:8;
1366		uint64_t wgt1:8;
1367		uint64_t wgt0:8;
1368#else
1369		uint64_t wgt0:8;
1370		uint64_t wgt1:8;
1371		uint64_t wgt2:8;
1372		uint64_t wgt3:8;
1373		uint64_t wgt4:8;
1374		uint64_t wgt5:8;
1375		uint64_t wgt6:8;
1376		uint64_t wgt7:8;
1377#endif
1378	} s;
1379};
1380
1381union cvmx_ipd_sub_port_bp_page_cnt {
1382	uint64_t u64;
1383	struct cvmx_ipd_sub_port_bp_page_cnt_s {
1384#ifdef __BIG_ENDIAN_BITFIELD
1385		uint64_t reserved_31_63:33;
1386		uint64_t port:6;
1387		uint64_t page_cnt:25;
1388#else
1389		uint64_t page_cnt:25;
1390		uint64_t port:6;
1391		uint64_t reserved_31_63:33;
1392#endif
1393	} s;
1394};
1395
1396union cvmx_ipd_sub_port_fcs {
1397	uint64_t u64;
1398	struct cvmx_ipd_sub_port_fcs_s {
1399#ifdef __BIG_ENDIAN_BITFIELD
1400		uint64_t reserved_40_63:24;
1401		uint64_t port_bit2:4;
1402		uint64_t reserved_32_35:4;
1403		uint64_t port_bit:32;
1404#else
1405		uint64_t port_bit:32;
1406		uint64_t reserved_32_35:4;
1407		uint64_t port_bit2:4;
1408		uint64_t reserved_40_63:24;
1409#endif
1410	} s;
1411	struct cvmx_ipd_sub_port_fcs_cn30xx {
1412#ifdef __BIG_ENDIAN_BITFIELD
1413		uint64_t reserved_3_63:61;
1414		uint64_t port_bit:3;
1415#else
1416		uint64_t port_bit:3;
1417		uint64_t reserved_3_63:61;
1418#endif
1419	} cn30xx;
1420	struct cvmx_ipd_sub_port_fcs_cn38xx {
1421#ifdef __BIG_ENDIAN_BITFIELD
1422		uint64_t reserved_32_63:32;
1423		uint64_t port_bit:32;
1424#else
1425		uint64_t port_bit:32;
1426		uint64_t reserved_32_63:32;
1427#endif
1428	} cn38xx;
1429};
1430
1431union cvmx_ipd_sub_port_qos_cnt {
1432	uint64_t u64;
1433	struct cvmx_ipd_sub_port_qos_cnt_s {
1434#ifdef __BIG_ENDIAN_BITFIELD
1435		uint64_t reserved_41_63:23;
1436		uint64_t port_qos:9;
1437		uint64_t cnt:32;
1438#else
1439		uint64_t cnt:32;
1440		uint64_t port_qos:9;
1441		uint64_t reserved_41_63:23;
1442#endif
1443	} s;
1444};
1445
1446union cvmx_ipd_wqe_fpa_queue {
1447	uint64_t u64;
1448	struct cvmx_ipd_wqe_fpa_queue_s {
1449#ifdef __BIG_ENDIAN_BITFIELD
1450		uint64_t reserved_3_63:61;
1451		uint64_t wqe_pool:3;
1452#else
1453		uint64_t wqe_pool:3;
1454		uint64_t reserved_3_63:61;
1455#endif
1456	} s;
1457};
1458
1459union cvmx_ipd_wqe_ptr_valid {
1460	uint64_t u64;
1461	struct cvmx_ipd_wqe_ptr_valid_s {
1462#ifdef __BIG_ENDIAN_BITFIELD
1463		uint64_t reserved_29_63:35;
1464		uint64_t ptr:29;
1465#else
1466		uint64_t ptr:29;
1467		uint64_t reserved_29_63:35;
1468#endif
1469	} s;
1470};
1471
1472#endif
1473