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 
100 union 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 	struct cvmx_ipd_1st_mbuff_skip_s cn30xx;
112 	struct cvmx_ipd_1st_mbuff_skip_s cn31xx;
113 	struct cvmx_ipd_1st_mbuff_skip_s cn38xx;
114 	struct cvmx_ipd_1st_mbuff_skip_s cn38xxp2;
115 	struct cvmx_ipd_1st_mbuff_skip_s cn50xx;
116 	struct cvmx_ipd_1st_mbuff_skip_s cn52xx;
117 	struct cvmx_ipd_1st_mbuff_skip_s cn52xxp1;
118 	struct cvmx_ipd_1st_mbuff_skip_s cn56xx;
119 	struct cvmx_ipd_1st_mbuff_skip_s cn56xxp1;
120 	struct cvmx_ipd_1st_mbuff_skip_s cn58xx;
121 	struct cvmx_ipd_1st_mbuff_skip_s cn58xxp1;
122 	struct cvmx_ipd_1st_mbuff_skip_s cn61xx;
123 	struct cvmx_ipd_1st_mbuff_skip_s cn63xx;
124 	struct cvmx_ipd_1st_mbuff_skip_s cn63xxp1;
125 	struct cvmx_ipd_1st_mbuff_skip_s cn66xx;
126 	struct cvmx_ipd_1st_mbuff_skip_s cn68xx;
127 	struct cvmx_ipd_1st_mbuff_skip_s cn68xxp1;
128 	struct cvmx_ipd_1st_mbuff_skip_s cnf71xx;
129 };
130 
131 union cvmx_ipd_1st_next_ptr_back {
132 	uint64_t u64;
133 	struct cvmx_ipd_1st_next_ptr_back_s {
134 #ifdef __BIG_ENDIAN_BITFIELD
135 		uint64_t reserved_4_63:60;
136 		uint64_t back:4;
137 #else
138 		uint64_t back:4;
139 		uint64_t reserved_4_63:60;
140 #endif
141 	} s;
142 	struct cvmx_ipd_1st_next_ptr_back_s cn30xx;
143 	struct cvmx_ipd_1st_next_ptr_back_s cn31xx;
144 	struct cvmx_ipd_1st_next_ptr_back_s cn38xx;
145 	struct cvmx_ipd_1st_next_ptr_back_s cn38xxp2;
146 	struct cvmx_ipd_1st_next_ptr_back_s cn50xx;
147 	struct cvmx_ipd_1st_next_ptr_back_s cn52xx;
148 	struct cvmx_ipd_1st_next_ptr_back_s cn52xxp1;
149 	struct cvmx_ipd_1st_next_ptr_back_s cn56xx;
150 	struct cvmx_ipd_1st_next_ptr_back_s cn56xxp1;
151 	struct cvmx_ipd_1st_next_ptr_back_s cn58xx;
152 	struct cvmx_ipd_1st_next_ptr_back_s cn58xxp1;
153 	struct cvmx_ipd_1st_next_ptr_back_s cn61xx;
154 	struct cvmx_ipd_1st_next_ptr_back_s cn63xx;
155 	struct cvmx_ipd_1st_next_ptr_back_s cn63xxp1;
156 	struct cvmx_ipd_1st_next_ptr_back_s cn66xx;
157 	struct cvmx_ipd_1st_next_ptr_back_s cn68xx;
158 	struct cvmx_ipd_1st_next_ptr_back_s cn68xxp1;
159 	struct cvmx_ipd_1st_next_ptr_back_s cnf71xx;
160 };
161 
162 union cvmx_ipd_2nd_next_ptr_back {
163 	uint64_t u64;
164 	struct cvmx_ipd_2nd_next_ptr_back_s {
165 #ifdef __BIG_ENDIAN_BITFIELD
166 		uint64_t reserved_4_63:60;
167 		uint64_t back:4;
168 #else
169 		uint64_t back:4;
170 		uint64_t reserved_4_63:60;
171 #endif
172 	} s;
173 	struct cvmx_ipd_2nd_next_ptr_back_s cn30xx;
174 	struct cvmx_ipd_2nd_next_ptr_back_s cn31xx;
175 	struct cvmx_ipd_2nd_next_ptr_back_s cn38xx;
176 	struct cvmx_ipd_2nd_next_ptr_back_s cn38xxp2;
177 	struct cvmx_ipd_2nd_next_ptr_back_s cn50xx;
178 	struct cvmx_ipd_2nd_next_ptr_back_s cn52xx;
179 	struct cvmx_ipd_2nd_next_ptr_back_s cn52xxp1;
180 	struct cvmx_ipd_2nd_next_ptr_back_s cn56xx;
181 	struct cvmx_ipd_2nd_next_ptr_back_s cn56xxp1;
182 	struct cvmx_ipd_2nd_next_ptr_back_s cn58xx;
183 	struct cvmx_ipd_2nd_next_ptr_back_s cn58xxp1;
184 	struct cvmx_ipd_2nd_next_ptr_back_s cn61xx;
185 	struct cvmx_ipd_2nd_next_ptr_back_s cn63xx;
186 	struct cvmx_ipd_2nd_next_ptr_back_s cn63xxp1;
187 	struct cvmx_ipd_2nd_next_ptr_back_s cn66xx;
188 	struct cvmx_ipd_2nd_next_ptr_back_s cn68xx;
189 	struct cvmx_ipd_2nd_next_ptr_back_s cn68xxp1;
190 	struct cvmx_ipd_2nd_next_ptr_back_s cnf71xx;
191 };
192 
193 union cvmx_ipd_bist_status {
194 	uint64_t u64;
195 	struct cvmx_ipd_bist_status_s {
196 #ifdef __BIG_ENDIAN_BITFIELD
197 		uint64_t reserved_23_63:41;
198 		uint64_t iiwo1:1;
199 		uint64_t iiwo0:1;
200 		uint64_t iio1:1;
201 		uint64_t iio0:1;
202 		uint64_t pbm4:1;
203 		uint64_t csr_mem:1;
204 		uint64_t csr_ncmd:1;
205 		uint64_t pwq_wqed:1;
206 		uint64_t pwq_wp1:1;
207 		uint64_t pwq_pow:1;
208 		uint64_t ipq_pbe1:1;
209 		uint64_t ipq_pbe0:1;
210 		uint64_t pbm3:1;
211 		uint64_t pbm2:1;
212 		uint64_t pbm1:1;
213 		uint64_t pbm0:1;
214 		uint64_t pbm_word:1;
215 		uint64_t pwq1:1;
216 		uint64_t pwq0:1;
217 		uint64_t prc_off:1;
218 		uint64_t ipd_old:1;
219 		uint64_t ipd_new:1;
220 		uint64_t pwp:1;
221 #else
222 		uint64_t pwp:1;
223 		uint64_t ipd_new:1;
224 		uint64_t ipd_old:1;
225 		uint64_t prc_off:1;
226 		uint64_t pwq0:1;
227 		uint64_t pwq1:1;
228 		uint64_t pbm_word:1;
229 		uint64_t pbm0:1;
230 		uint64_t pbm1:1;
231 		uint64_t pbm2:1;
232 		uint64_t pbm3:1;
233 		uint64_t ipq_pbe0:1;
234 		uint64_t ipq_pbe1:1;
235 		uint64_t pwq_pow:1;
236 		uint64_t pwq_wp1:1;
237 		uint64_t pwq_wqed:1;
238 		uint64_t csr_ncmd:1;
239 		uint64_t csr_mem:1;
240 		uint64_t pbm4:1;
241 		uint64_t iio0:1;
242 		uint64_t iio1:1;
243 		uint64_t iiwo0:1;
244 		uint64_t iiwo1:1;
245 		uint64_t reserved_23_63:41;
246 #endif
247 	} s;
248 	struct cvmx_ipd_bist_status_cn30xx {
249 #ifdef __BIG_ENDIAN_BITFIELD
250 		uint64_t reserved_16_63:48;
251 		uint64_t pwq_wqed:1;
252 		uint64_t pwq_wp1:1;
253 		uint64_t pwq_pow:1;
254 		uint64_t ipq_pbe1:1;
255 		uint64_t ipq_pbe0:1;
256 		uint64_t pbm3:1;
257 		uint64_t pbm2:1;
258 		uint64_t pbm1:1;
259 		uint64_t pbm0:1;
260 		uint64_t pbm_word:1;
261 		uint64_t pwq1:1;
262 		uint64_t pwq0:1;
263 		uint64_t prc_off:1;
264 		uint64_t ipd_old:1;
265 		uint64_t ipd_new:1;
266 		uint64_t pwp:1;
267 #else
268 		uint64_t pwp:1;
269 		uint64_t ipd_new:1;
270 		uint64_t ipd_old:1;
271 		uint64_t prc_off:1;
272 		uint64_t pwq0:1;
273 		uint64_t pwq1:1;
274 		uint64_t pbm_word:1;
275 		uint64_t pbm0:1;
276 		uint64_t pbm1:1;
277 		uint64_t pbm2:1;
278 		uint64_t pbm3:1;
279 		uint64_t ipq_pbe0:1;
280 		uint64_t ipq_pbe1:1;
281 		uint64_t pwq_pow:1;
282 		uint64_t pwq_wp1:1;
283 		uint64_t pwq_wqed:1;
284 		uint64_t reserved_16_63:48;
285 #endif
286 	} cn30xx;
287 	struct cvmx_ipd_bist_status_cn30xx cn31xx;
288 	struct cvmx_ipd_bist_status_cn30xx cn38xx;
289 	struct cvmx_ipd_bist_status_cn30xx cn38xxp2;
290 	struct cvmx_ipd_bist_status_cn30xx cn50xx;
291 	struct cvmx_ipd_bist_status_cn52xx {
292 #ifdef __BIG_ENDIAN_BITFIELD
293 		uint64_t reserved_18_63:46;
294 		uint64_t csr_mem:1;
295 		uint64_t csr_ncmd:1;
296 		uint64_t pwq_wqed:1;
297 		uint64_t pwq_wp1:1;
298 		uint64_t pwq_pow:1;
299 		uint64_t ipq_pbe1:1;
300 		uint64_t ipq_pbe0:1;
301 		uint64_t pbm3:1;
302 		uint64_t pbm2:1;
303 		uint64_t pbm1:1;
304 		uint64_t pbm0:1;
305 		uint64_t pbm_word:1;
306 		uint64_t pwq1:1;
307 		uint64_t pwq0:1;
308 		uint64_t prc_off:1;
309 		uint64_t ipd_old:1;
310 		uint64_t ipd_new:1;
311 		uint64_t pwp:1;
312 #else
313 		uint64_t pwp:1;
314 		uint64_t ipd_new:1;
315 		uint64_t ipd_old:1;
316 		uint64_t prc_off:1;
317 		uint64_t pwq0:1;
318 		uint64_t pwq1:1;
319 		uint64_t pbm_word:1;
320 		uint64_t pbm0:1;
321 		uint64_t pbm1:1;
322 		uint64_t pbm2:1;
323 		uint64_t pbm3:1;
324 		uint64_t ipq_pbe0:1;
325 		uint64_t ipq_pbe1:1;
326 		uint64_t pwq_pow:1;
327 		uint64_t pwq_wp1:1;
328 		uint64_t pwq_wqed:1;
329 		uint64_t csr_ncmd:1;
330 		uint64_t csr_mem:1;
331 		uint64_t reserved_18_63:46;
332 #endif
333 	} cn52xx;
334 	struct cvmx_ipd_bist_status_cn52xx cn52xxp1;
335 	struct cvmx_ipd_bist_status_cn52xx cn56xx;
336 	struct cvmx_ipd_bist_status_cn52xx cn56xxp1;
337 	struct cvmx_ipd_bist_status_cn30xx cn58xx;
338 	struct cvmx_ipd_bist_status_cn30xx cn58xxp1;
339 	struct cvmx_ipd_bist_status_cn52xx cn61xx;
340 	struct cvmx_ipd_bist_status_cn52xx cn63xx;
341 	struct cvmx_ipd_bist_status_cn52xx cn63xxp1;
342 	struct cvmx_ipd_bist_status_cn52xx cn66xx;
343 	struct cvmx_ipd_bist_status_s cn68xx;
344 	struct cvmx_ipd_bist_status_s cn68xxp1;
345 	struct cvmx_ipd_bist_status_cn52xx cnf71xx;
346 };
347 
348 union cvmx_ipd_bp_prt_red_end {
349 	uint64_t u64;
350 	struct cvmx_ipd_bp_prt_red_end_s {
351 #ifdef __BIG_ENDIAN_BITFIELD
352 		uint64_t reserved_48_63:16;
353 		uint64_t prt_enb:48;
354 #else
355 		uint64_t prt_enb:48;
356 		uint64_t reserved_48_63:16;
357 #endif
358 	} s;
359 	struct cvmx_ipd_bp_prt_red_end_cn30xx {
360 #ifdef __BIG_ENDIAN_BITFIELD
361 		uint64_t reserved_36_63:28;
362 		uint64_t prt_enb:36;
363 #else
364 		uint64_t prt_enb:36;
365 		uint64_t reserved_36_63:28;
366 #endif
367 	} cn30xx;
368 	struct cvmx_ipd_bp_prt_red_end_cn30xx cn31xx;
369 	struct cvmx_ipd_bp_prt_red_end_cn30xx cn38xx;
370 	struct cvmx_ipd_bp_prt_red_end_cn30xx cn38xxp2;
371 	struct cvmx_ipd_bp_prt_red_end_cn30xx cn50xx;
372 	struct cvmx_ipd_bp_prt_red_end_cn52xx {
373 #ifdef __BIG_ENDIAN_BITFIELD
374 		uint64_t reserved_40_63:24;
375 		uint64_t prt_enb:40;
376 #else
377 		uint64_t prt_enb:40;
378 		uint64_t reserved_40_63:24;
379 #endif
380 	} cn52xx;
381 	struct cvmx_ipd_bp_prt_red_end_cn52xx cn52xxp1;
382 	struct cvmx_ipd_bp_prt_red_end_cn52xx cn56xx;
383 	struct cvmx_ipd_bp_prt_red_end_cn52xx cn56xxp1;
384 	struct cvmx_ipd_bp_prt_red_end_cn30xx cn58xx;
385 	struct cvmx_ipd_bp_prt_red_end_cn30xx cn58xxp1;
386 	struct cvmx_ipd_bp_prt_red_end_s cn61xx;
387 	struct cvmx_ipd_bp_prt_red_end_cn63xx {
388 #ifdef __BIG_ENDIAN_BITFIELD
389 		uint64_t reserved_44_63:20;
390 		uint64_t prt_enb:44;
391 #else
392 		uint64_t prt_enb:44;
393 		uint64_t reserved_44_63:20;
394 #endif
395 	} cn63xx;
396 	struct cvmx_ipd_bp_prt_red_end_cn63xx cn63xxp1;
397 	struct cvmx_ipd_bp_prt_red_end_s cn66xx;
398 	struct cvmx_ipd_bp_prt_red_end_s cnf71xx;
399 };
400 
401 union cvmx_ipd_bpidx_mbuf_th {
402 	uint64_t u64;
403 	struct cvmx_ipd_bpidx_mbuf_th_s {
404 #ifdef __BIG_ENDIAN_BITFIELD
405 		uint64_t reserved_18_63:46;
406 		uint64_t bp_enb:1;
407 		uint64_t page_cnt:17;
408 #else
409 		uint64_t page_cnt:17;
410 		uint64_t bp_enb:1;
411 		uint64_t reserved_18_63:46;
412 #endif
413 	} s;
414 	struct cvmx_ipd_bpidx_mbuf_th_s cn68xx;
415 	struct cvmx_ipd_bpidx_mbuf_th_s cn68xxp1;
416 };
417 
418 union cvmx_ipd_bpid_bp_counterx {
419 	uint64_t u64;
420 	struct cvmx_ipd_bpid_bp_counterx_s {
421 #ifdef __BIG_ENDIAN_BITFIELD
422 		uint64_t reserved_25_63:39;
423 		uint64_t cnt_val:25;
424 #else
425 		uint64_t cnt_val:25;
426 		uint64_t reserved_25_63:39;
427 #endif
428 	} s;
429 	struct cvmx_ipd_bpid_bp_counterx_s cn68xx;
430 	struct cvmx_ipd_bpid_bp_counterx_s cn68xxp1;
431 };
432 
433 union cvmx_ipd_clk_count {
434 	uint64_t u64;
435 	struct cvmx_ipd_clk_count_s {
436 #ifdef __BIG_ENDIAN_BITFIELD
437 		uint64_t clk_cnt:64;
438 #else
439 		uint64_t clk_cnt:64;
440 #endif
441 	} s;
442 	struct cvmx_ipd_clk_count_s cn30xx;
443 	struct cvmx_ipd_clk_count_s cn31xx;
444 	struct cvmx_ipd_clk_count_s cn38xx;
445 	struct cvmx_ipd_clk_count_s cn38xxp2;
446 	struct cvmx_ipd_clk_count_s cn50xx;
447 	struct cvmx_ipd_clk_count_s cn52xx;
448 	struct cvmx_ipd_clk_count_s cn52xxp1;
449 	struct cvmx_ipd_clk_count_s cn56xx;
450 	struct cvmx_ipd_clk_count_s cn56xxp1;
451 	struct cvmx_ipd_clk_count_s cn58xx;
452 	struct cvmx_ipd_clk_count_s cn58xxp1;
453 	struct cvmx_ipd_clk_count_s cn61xx;
454 	struct cvmx_ipd_clk_count_s cn63xx;
455 	struct cvmx_ipd_clk_count_s cn63xxp1;
456 	struct cvmx_ipd_clk_count_s cn66xx;
457 	struct cvmx_ipd_clk_count_s cn68xx;
458 	struct cvmx_ipd_clk_count_s cn68xxp1;
459 	struct cvmx_ipd_clk_count_s cnf71xx;
460 };
461 
462 union cvmx_ipd_credits {
463 	uint64_t u64;
464 	struct cvmx_ipd_credits_s {
465 #ifdef __BIG_ENDIAN_BITFIELD
466 		uint64_t reserved_16_63:48;
467 		uint64_t iob_wrc:8;
468 		uint64_t iob_wr:8;
469 #else
470 		uint64_t iob_wr:8;
471 		uint64_t iob_wrc:8;
472 		uint64_t reserved_16_63:48;
473 #endif
474 	} s;
475 	struct cvmx_ipd_credits_s cn68xx;
476 	struct cvmx_ipd_credits_s cn68xxp1;
477 };
478 
479 union cvmx_ipd_ctl_status {
480 	uint64_t u64;
481 	struct cvmx_ipd_ctl_status_s {
482 #ifdef __BIG_ENDIAN_BITFIELD
483 		uint64_t reserved_18_63:46;
484 		uint64_t use_sop:1;
485 		uint64_t rst_done:1;
486 		uint64_t clken:1;
487 		uint64_t no_wptr:1;
488 		uint64_t pq_apkt:1;
489 		uint64_t pq_nabuf:1;
490 		uint64_t ipd_full:1;
491 		uint64_t pkt_off:1;
492 		uint64_t len_m8:1;
493 		uint64_t reset:1;
494 		uint64_t addpkt:1;
495 		uint64_t naddbuf:1;
496 		uint64_t pkt_lend:1;
497 		uint64_t wqe_lend:1;
498 		uint64_t pbp_en:1;
499 		uint64_t opc_mode:2;
500 		uint64_t ipd_en:1;
501 #else
502 		uint64_t ipd_en:1;
503 		uint64_t opc_mode:2;
504 		uint64_t pbp_en:1;
505 		uint64_t wqe_lend:1;
506 		uint64_t pkt_lend:1;
507 		uint64_t naddbuf:1;
508 		uint64_t addpkt:1;
509 		uint64_t reset:1;
510 		uint64_t len_m8:1;
511 		uint64_t pkt_off:1;
512 		uint64_t ipd_full:1;
513 		uint64_t pq_nabuf:1;
514 		uint64_t pq_apkt:1;
515 		uint64_t no_wptr:1;
516 		uint64_t clken:1;
517 		uint64_t rst_done:1;
518 		uint64_t use_sop:1;
519 		uint64_t reserved_18_63:46;
520 #endif
521 	} s;
522 	struct cvmx_ipd_ctl_status_cn30xx {
523 #ifdef __BIG_ENDIAN_BITFIELD
524 		uint64_t reserved_10_63:54;
525 		uint64_t len_m8:1;
526 		uint64_t reset:1;
527 		uint64_t addpkt:1;
528 		uint64_t naddbuf:1;
529 		uint64_t pkt_lend:1;
530 		uint64_t wqe_lend:1;
531 		uint64_t pbp_en:1;
532 		uint64_t opc_mode:2;
533 		uint64_t ipd_en:1;
534 #else
535 		uint64_t ipd_en:1;
536 		uint64_t opc_mode:2;
537 		uint64_t pbp_en:1;
538 		uint64_t wqe_lend:1;
539 		uint64_t pkt_lend:1;
540 		uint64_t naddbuf:1;
541 		uint64_t addpkt:1;
542 		uint64_t reset:1;
543 		uint64_t len_m8:1;
544 		uint64_t reserved_10_63:54;
545 #endif
546 	} cn30xx;
547 	struct cvmx_ipd_ctl_status_cn30xx cn31xx;
548 	struct cvmx_ipd_ctl_status_cn30xx cn38xx;
549 	struct cvmx_ipd_ctl_status_cn38xxp2 {
550 #ifdef __BIG_ENDIAN_BITFIELD
551 		uint64_t reserved_9_63:55;
552 		uint64_t reset:1;
553 		uint64_t addpkt:1;
554 		uint64_t naddbuf:1;
555 		uint64_t pkt_lend:1;
556 		uint64_t wqe_lend:1;
557 		uint64_t pbp_en:1;
558 		uint64_t opc_mode:2;
559 		uint64_t ipd_en:1;
560 #else
561 		uint64_t ipd_en:1;
562 		uint64_t opc_mode:2;
563 		uint64_t pbp_en:1;
564 		uint64_t wqe_lend:1;
565 		uint64_t pkt_lend:1;
566 		uint64_t naddbuf:1;
567 		uint64_t addpkt:1;
568 		uint64_t reset:1;
569 		uint64_t reserved_9_63:55;
570 #endif
571 	} cn38xxp2;
572 	struct cvmx_ipd_ctl_status_cn50xx {
573 #ifdef __BIG_ENDIAN_BITFIELD
574 		uint64_t reserved_15_63:49;
575 		uint64_t no_wptr:1;
576 		uint64_t pq_apkt:1;
577 		uint64_t pq_nabuf:1;
578 		uint64_t ipd_full:1;
579 		uint64_t pkt_off:1;
580 		uint64_t len_m8:1;
581 		uint64_t reset:1;
582 		uint64_t addpkt:1;
583 		uint64_t naddbuf:1;
584 		uint64_t pkt_lend:1;
585 		uint64_t wqe_lend:1;
586 		uint64_t pbp_en:1;
587 		uint64_t opc_mode:2;
588 		uint64_t ipd_en:1;
589 #else
590 		uint64_t ipd_en:1;
591 		uint64_t opc_mode:2;
592 		uint64_t pbp_en:1;
593 		uint64_t wqe_lend:1;
594 		uint64_t pkt_lend:1;
595 		uint64_t naddbuf:1;
596 		uint64_t addpkt:1;
597 		uint64_t reset:1;
598 		uint64_t len_m8:1;
599 		uint64_t pkt_off:1;
600 		uint64_t ipd_full:1;
601 		uint64_t pq_nabuf:1;
602 		uint64_t pq_apkt:1;
603 		uint64_t no_wptr:1;
604 		uint64_t reserved_15_63:49;
605 #endif
606 	} cn50xx;
607 	struct cvmx_ipd_ctl_status_cn50xx cn52xx;
608 	struct cvmx_ipd_ctl_status_cn50xx cn52xxp1;
609 	struct cvmx_ipd_ctl_status_cn50xx cn56xx;
610 	struct cvmx_ipd_ctl_status_cn50xx cn56xxp1;
611 	struct cvmx_ipd_ctl_status_cn58xx {
612 #ifdef __BIG_ENDIAN_BITFIELD
613 		uint64_t reserved_12_63:52;
614 		uint64_t ipd_full:1;
615 		uint64_t pkt_off:1;
616 		uint64_t len_m8:1;
617 		uint64_t reset:1;
618 		uint64_t addpkt:1;
619 		uint64_t naddbuf:1;
620 		uint64_t pkt_lend:1;
621 		uint64_t wqe_lend:1;
622 		uint64_t pbp_en:1;
623 		uint64_t opc_mode:2;
624 		uint64_t ipd_en:1;
625 #else
626 		uint64_t ipd_en:1;
627 		uint64_t opc_mode:2;
628 		uint64_t pbp_en:1;
629 		uint64_t wqe_lend:1;
630 		uint64_t pkt_lend:1;
631 		uint64_t naddbuf:1;
632 		uint64_t addpkt:1;
633 		uint64_t reset:1;
634 		uint64_t len_m8:1;
635 		uint64_t pkt_off:1;
636 		uint64_t ipd_full:1;
637 		uint64_t reserved_12_63:52;
638 #endif
639 	} cn58xx;
640 	struct cvmx_ipd_ctl_status_cn58xx cn58xxp1;
641 	struct cvmx_ipd_ctl_status_s cn61xx;
642 	struct cvmx_ipd_ctl_status_s cn63xx;
643 	struct cvmx_ipd_ctl_status_cn63xxp1 {
644 #ifdef __BIG_ENDIAN_BITFIELD
645 		uint64_t reserved_16_63:48;
646 		uint64_t clken:1;
647 		uint64_t no_wptr:1;
648 		uint64_t pq_apkt:1;
649 		uint64_t pq_nabuf:1;
650 		uint64_t ipd_full:1;
651 		uint64_t pkt_off:1;
652 		uint64_t len_m8:1;
653 		uint64_t reset:1;
654 		uint64_t addpkt:1;
655 		uint64_t naddbuf:1;
656 		uint64_t pkt_lend:1;
657 		uint64_t wqe_lend:1;
658 		uint64_t pbp_en:1;
659 		uint64_t opc_mode:2;
660 		uint64_t ipd_en:1;
661 #else
662 		uint64_t ipd_en:1;
663 		uint64_t opc_mode:2;
664 		uint64_t pbp_en:1;
665 		uint64_t wqe_lend:1;
666 		uint64_t pkt_lend:1;
667 		uint64_t naddbuf:1;
668 		uint64_t addpkt:1;
669 		uint64_t reset:1;
670 		uint64_t len_m8:1;
671 		uint64_t pkt_off:1;
672 		uint64_t ipd_full:1;
673 		uint64_t pq_nabuf:1;
674 		uint64_t pq_apkt:1;
675 		uint64_t no_wptr:1;
676 		uint64_t clken:1;
677 		uint64_t reserved_16_63:48;
678 #endif
679 	} cn63xxp1;
680 	struct cvmx_ipd_ctl_status_s cn66xx;
681 	struct cvmx_ipd_ctl_status_s cn68xx;
682 	struct cvmx_ipd_ctl_status_s cn68xxp1;
683 	struct cvmx_ipd_ctl_status_s cnf71xx;
684 };
685 
686 union cvmx_ipd_ecc_ctl {
687 	uint64_t u64;
688 	struct cvmx_ipd_ecc_ctl_s {
689 #ifdef __BIG_ENDIAN_BITFIELD
690 		uint64_t reserved_8_63:56;
691 		uint64_t pm3_syn:2;
692 		uint64_t pm2_syn:2;
693 		uint64_t pm1_syn:2;
694 		uint64_t pm0_syn:2;
695 #else
696 		uint64_t pm0_syn:2;
697 		uint64_t pm1_syn:2;
698 		uint64_t pm2_syn:2;
699 		uint64_t pm3_syn:2;
700 		uint64_t reserved_8_63:56;
701 #endif
702 	} s;
703 	struct cvmx_ipd_ecc_ctl_s cn68xx;
704 	struct cvmx_ipd_ecc_ctl_s cn68xxp1;
705 };
706 
707 union cvmx_ipd_free_ptr_fifo_ctl {
708 	uint64_t u64;
709 	struct cvmx_ipd_free_ptr_fifo_ctl_s {
710 #ifdef __BIG_ENDIAN_BITFIELD
711 		uint64_t reserved_32_63:32;
712 		uint64_t max_cnts:7;
713 		uint64_t wraddr:8;
714 		uint64_t praddr:8;
715 		uint64_t cena:1;
716 		uint64_t raddr:8;
717 #else
718 		uint64_t raddr:8;
719 		uint64_t cena:1;
720 		uint64_t praddr:8;
721 		uint64_t wraddr:8;
722 		uint64_t max_cnts:7;
723 		uint64_t reserved_32_63:32;
724 #endif
725 	} s;
726 	struct cvmx_ipd_free_ptr_fifo_ctl_s cn68xx;
727 	struct cvmx_ipd_free_ptr_fifo_ctl_s cn68xxp1;
728 };
729 
730 union cvmx_ipd_free_ptr_value {
731 	uint64_t u64;
732 	struct cvmx_ipd_free_ptr_value_s {
733 #ifdef __BIG_ENDIAN_BITFIELD
734 		uint64_t reserved_33_63:31;
735 		uint64_t ptr:33;
736 #else
737 		uint64_t ptr:33;
738 		uint64_t reserved_33_63:31;
739 #endif
740 	} s;
741 	struct cvmx_ipd_free_ptr_value_s cn68xx;
742 	struct cvmx_ipd_free_ptr_value_s cn68xxp1;
743 };
744 
745 union cvmx_ipd_hold_ptr_fifo_ctl {
746 	uint64_t u64;
747 	struct cvmx_ipd_hold_ptr_fifo_ctl_s {
748 #ifdef __BIG_ENDIAN_BITFIELD
749 		uint64_t reserved_43_63:21;
750 		uint64_t ptr:33;
751 		uint64_t max_pkt:3;
752 		uint64_t praddr:3;
753 		uint64_t cena:1;
754 		uint64_t raddr:3;
755 #else
756 		uint64_t raddr:3;
757 		uint64_t cena:1;
758 		uint64_t praddr:3;
759 		uint64_t max_pkt:3;
760 		uint64_t ptr:33;
761 		uint64_t reserved_43_63:21;
762 #endif
763 	} s;
764 	struct cvmx_ipd_hold_ptr_fifo_ctl_s cn68xx;
765 	struct cvmx_ipd_hold_ptr_fifo_ctl_s cn68xxp1;
766 };
767 
768 union cvmx_ipd_int_enb {
769 	uint64_t u64;
770 	struct cvmx_ipd_int_enb_s {
771 #ifdef __BIG_ENDIAN_BITFIELD
772 		uint64_t reserved_23_63:41;
773 		uint64_t pw3_dbe:1;
774 		uint64_t pw3_sbe:1;
775 		uint64_t pw2_dbe:1;
776 		uint64_t pw2_sbe:1;
777 		uint64_t pw1_dbe:1;
778 		uint64_t pw1_sbe:1;
779 		uint64_t pw0_dbe:1;
780 		uint64_t pw0_sbe:1;
781 		uint64_t dat:1;
782 		uint64_t eop:1;
783 		uint64_t sop:1;
784 		uint64_t pq_sub:1;
785 		uint64_t pq_add:1;
786 		uint64_t bc_ovr:1;
787 		uint64_t d_coll:1;
788 		uint64_t c_coll:1;
789 		uint64_t cc_ovr:1;
790 		uint64_t dc_ovr:1;
791 		uint64_t bp_sub:1;
792 		uint64_t prc_par3:1;
793 		uint64_t prc_par2:1;
794 		uint64_t prc_par1:1;
795 		uint64_t prc_par0:1;
796 #else
797 		uint64_t prc_par0:1;
798 		uint64_t prc_par1:1;
799 		uint64_t prc_par2:1;
800 		uint64_t prc_par3:1;
801 		uint64_t bp_sub:1;
802 		uint64_t dc_ovr:1;
803 		uint64_t cc_ovr:1;
804 		uint64_t c_coll:1;
805 		uint64_t d_coll:1;
806 		uint64_t bc_ovr:1;
807 		uint64_t pq_add:1;
808 		uint64_t pq_sub:1;
809 		uint64_t sop:1;
810 		uint64_t eop:1;
811 		uint64_t dat:1;
812 		uint64_t pw0_sbe:1;
813 		uint64_t pw0_dbe:1;
814 		uint64_t pw1_sbe:1;
815 		uint64_t pw1_dbe:1;
816 		uint64_t pw2_sbe:1;
817 		uint64_t pw2_dbe:1;
818 		uint64_t pw3_sbe:1;
819 		uint64_t pw3_dbe:1;
820 		uint64_t reserved_23_63:41;
821 #endif
822 	} s;
823 	struct cvmx_ipd_int_enb_cn30xx {
824 #ifdef __BIG_ENDIAN_BITFIELD
825 		uint64_t reserved_5_63:59;
826 		uint64_t bp_sub:1;
827 		uint64_t prc_par3:1;
828 		uint64_t prc_par2:1;
829 		uint64_t prc_par1:1;
830 		uint64_t prc_par0:1;
831 #else
832 		uint64_t prc_par0:1;
833 		uint64_t prc_par1:1;
834 		uint64_t prc_par2:1;
835 		uint64_t prc_par3:1;
836 		uint64_t bp_sub:1;
837 		uint64_t reserved_5_63:59;
838 #endif
839 	} cn30xx;
840 	struct cvmx_ipd_int_enb_cn30xx cn31xx;
841 	struct cvmx_ipd_int_enb_cn38xx {
842 #ifdef __BIG_ENDIAN_BITFIELD
843 		uint64_t reserved_10_63:54;
844 		uint64_t bc_ovr:1;
845 		uint64_t d_coll:1;
846 		uint64_t c_coll:1;
847 		uint64_t cc_ovr:1;
848 		uint64_t dc_ovr:1;
849 		uint64_t bp_sub:1;
850 		uint64_t prc_par3:1;
851 		uint64_t prc_par2:1;
852 		uint64_t prc_par1:1;
853 		uint64_t prc_par0:1;
854 #else
855 		uint64_t prc_par0:1;
856 		uint64_t prc_par1:1;
857 		uint64_t prc_par2:1;
858 		uint64_t prc_par3:1;
859 		uint64_t bp_sub:1;
860 		uint64_t dc_ovr:1;
861 		uint64_t cc_ovr:1;
862 		uint64_t c_coll:1;
863 		uint64_t d_coll:1;
864 		uint64_t bc_ovr:1;
865 		uint64_t reserved_10_63:54;
866 #endif
867 	} cn38xx;
868 	struct cvmx_ipd_int_enb_cn30xx cn38xxp2;
869 	struct cvmx_ipd_int_enb_cn38xx cn50xx;
870 	struct cvmx_ipd_int_enb_cn52xx {
871 #ifdef __BIG_ENDIAN_BITFIELD
872 		uint64_t reserved_12_63:52;
873 		uint64_t pq_sub:1;
874 		uint64_t pq_add:1;
875 		uint64_t bc_ovr:1;
876 		uint64_t d_coll:1;
877 		uint64_t c_coll:1;
878 		uint64_t cc_ovr:1;
879 		uint64_t dc_ovr:1;
880 		uint64_t bp_sub:1;
881 		uint64_t prc_par3:1;
882 		uint64_t prc_par2:1;
883 		uint64_t prc_par1:1;
884 		uint64_t prc_par0:1;
885 #else
886 		uint64_t prc_par0:1;
887 		uint64_t prc_par1:1;
888 		uint64_t prc_par2:1;
889 		uint64_t prc_par3:1;
890 		uint64_t bp_sub:1;
891 		uint64_t dc_ovr:1;
892 		uint64_t cc_ovr:1;
893 		uint64_t c_coll:1;
894 		uint64_t d_coll:1;
895 		uint64_t bc_ovr:1;
896 		uint64_t pq_add:1;
897 		uint64_t pq_sub:1;
898 		uint64_t reserved_12_63:52;
899 #endif
900 	} cn52xx;
901 	struct cvmx_ipd_int_enb_cn52xx cn52xxp1;
902 	struct cvmx_ipd_int_enb_cn52xx cn56xx;
903 	struct cvmx_ipd_int_enb_cn52xx cn56xxp1;
904 	struct cvmx_ipd_int_enb_cn38xx cn58xx;
905 	struct cvmx_ipd_int_enb_cn38xx cn58xxp1;
906 	struct cvmx_ipd_int_enb_cn52xx cn61xx;
907 	struct cvmx_ipd_int_enb_cn52xx cn63xx;
908 	struct cvmx_ipd_int_enb_cn52xx cn63xxp1;
909 	struct cvmx_ipd_int_enb_cn52xx cn66xx;
910 	struct cvmx_ipd_int_enb_s cn68xx;
911 	struct cvmx_ipd_int_enb_s cn68xxp1;
912 	struct cvmx_ipd_int_enb_cn52xx cnf71xx;
913 };
914 
915 union cvmx_ipd_int_sum {
916 	uint64_t u64;
917 	struct cvmx_ipd_int_sum_s {
918 #ifdef __BIG_ENDIAN_BITFIELD
919 		uint64_t reserved_23_63:41;
920 		uint64_t pw3_dbe:1;
921 		uint64_t pw3_sbe:1;
922 		uint64_t pw2_dbe:1;
923 		uint64_t pw2_sbe:1;
924 		uint64_t pw1_dbe:1;
925 		uint64_t pw1_sbe:1;
926 		uint64_t pw0_dbe:1;
927 		uint64_t pw0_sbe:1;
928 		uint64_t dat:1;
929 		uint64_t eop:1;
930 		uint64_t sop:1;
931 		uint64_t pq_sub:1;
932 		uint64_t pq_add:1;
933 		uint64_t bc_ovr:1;
934 		uint64_t d_coll:1;
935 		uint64_t c_coll:1;
936 		uint64_t cc_ovr:1;
937 		uint64_t dc_ovr:1;
938 		uint64_t bp_sub:1;
939 		uint64_t prc_par3:1;
940 		uint64_t prc_par2:1;
941 		uint64_t prc_par1:1;
942 		uint64_t prc_par0:1;
943 #else
944 		uint64_t prc_par0:1;
945 		uint64_t prc_par1:1;
946 		uint64_t prc_par2:1;
947 		uint64_t prc_par3:1;
948 		uint64_t bp_sub:1;
949 		uint64_t dc_ovr:1;
950 		uint64_t cc_ovr:1;
951 		uint64_t c_coll:1;
952 		uint64_t d_coll:1;
953 		uint64_t bc_ovr:1;
954 		uint64_t pq_add:1;
955 		uint64_t pq_sub:1;
956 		uint64_t sop:1;
957 		uint64_t eop:1;
958 		uint64_t dat:1;
959 		uint64_t pw0_sbe:1;
960 		uint64_t pw0_dbe:1;
961 		uint64_t pw1_sbe:1;
962 		uint64_t pw1_dbe:1;
963 		uint64_t pw2_sbe:1;
964 		uint64_t pw2_dbe:1;
965 		uint64_t pw3_sbe:1;
966 		uint64_t pw3_dbe:1;
967 		uint64_t reserved_23_63:41;
968 #endif
969 	} s;
970 	struct cvmx_ipd_int_sum_cn30xx {
971 #ifdef __BIG_ENDIAN_BITFIELD
972 		uint64_t reserved_5_63:59;
973 		uint64_t bp_sub:1;
974 		uint64_t prc_par3:1;
975 		uint64_t prc_par2:1;
976 		uint64_t prc_par1:1;
977 		uint64_t prc_par0:1;
978 #else
979 		uint64_t prc_par0:1;
980 		uint64_t prc_par1:1;
981 		uint64_t prc_par2:1;
982 		uint64_t prc_par3:1;
983 		uint64_t bp_sub:1;
984 		uint64_t reserved_5_63:59;
985 #endif
986 	} cn30xx;
987 	struct cvmx_ipd_int_sum_cn30xx cn31xx;
988 	struct cvmx_ipd_int_sum_cn38xx {
989 #ifdef __BIG_ENDIAN_BITFIELD
990 		uint64_t reserved_10_63:54;
991 		uint64_t bc_ovr:1;
992 		uint64_t d_coll:1;
993 		uint64_t c_coll:1;
994 		uint64_t cc_ovr:1;
995 		uint64_t dc_ovr:1;
996 		uint64_t bp_sub:1;
997 		uint64_t prc_par3:1;
998 		uint64_t prc_par2:1;
999 		uint64_t prc_par1:1;
1000 		uint64_t prc_par0:1;
1001 #else
1002 		uint64_t prc_par0:1;
1003 		uint64_t prc_par1:1;
1004 		uint64_t prc_par2:1;
1005 		uint64_t prc_par3:1;
1006 		uint64_t bp_sub:1;
1007 		uint64_t dc_ovr:1;
1008 		uint64_t cc_ovr:1;
1009 		uint64_t c_coll:1;
1010 		uint64_t d_coll:1;
1011 		uint64_t bc_ovr:1;
1012 		uint64_t reserved_10_63:54;
1013 #endif
1014 	} cn38xx;
1015 	struct cvmx_ipd_int_sum_cn30xx cn38xxp2;
1016 	struct cvmx_ipd_int_sum_cn38xx cn50xx;
1017 	struct cvmx_ipd_int_sum_cn52xx {
1018 #ifdef __BIG_ENDIAN_BITFIELD
1019 		uint64_t reserved_12_63:52;
1020 		uint64_t pq_sub:1;
1021 		uint64_t pq_add:1;
1022 		uint64_t bc_ovr:1;
1023 		uint64_t d_coll:1;
1024 		uint64_t c_coll:1;
1025 		uint64_t cc_ovr:1;
1026 		uint64_t dc_ovr:1;
1027 		uint64_t bp_sub:1;
1028 		uint64_t prc_par3:1;
1029 		uint64_t prc_par2:1;
1030 		uint64_t prc_par1:1;
1031 		uint64_t prc_par0:1;
1032 #else
1033 		uint64_t prc_par0:1;
1034 		uint64_t prc_par1:1;
1035 		uint64_t prc_par2:1;
1036 		uint64_t prc_par3:1;
1037 		uint64_t bp_sub:1;
1038 		uint64_t dc_ovr:1;
1039 		uint64_t cc_ovr:1;
1040 		uint64_t c_coll:1;
1041 		uint64_t d_coll:1;
1042 		uint64_t bc_ovr:1;
1043 		uint64_t pq_add:1;
1044 		uint64_t pq_sub:1;
1045 		uint64_t reserved_12_63:52;
1046 #endif
1047 	} cn52xx;
1048 	struct cvmx_ipd_int_sum_cn52xx cn52xxp1;
1049 	struct cvmx_ipd_int_sum_cn52xx cn56xx;
1050 	struct cvmx_ipd_int_sum_cn52xx cn56xxp1;
1051 	struct cvmx_ipd_int_sum_cn38xx cn58xx;
1052 	struct cvmx_ipd_int_sum_cn38xx cn58xxp1;
1053 	struct cvmx_ipd_int_sum_cn52xx cn61xx;
1054 	struct cvmx_ipd_int_sum_cn52xx cn63xx;
1055 	struct cvmx_ipd_int_sum_cn52xx cn63xxp1;
1056 	struct cvmx_ipd_int_sum_cn52xx cn66xx;
1057 	struct cvmx_ipd_int_sum_s cn68xx;
1058 	struct cvmx_ipd_int_sum_s cn68xxp1;
1059 	struct cvmx_ipd_int_sum_cn52xx cnf71xx;
1060 };
1061 
1062 union cvmx_ipd_next_pkt_ptr {
1063 	uint64_t u64;
1064 	struct cvmx_ipd_next_pkt_ptr_s {
1065 #ifdef __BIG_ENDIAN_BITFIELD
1066 		uint64_t reserved_33_63:31;
1067 		uint64_t ptr:33;
1068 #else
1069 		uint64_t ptr:33;
1070 		uint64_t reserved_33_63:31;
1071 #endif
1072 	} s;
1073 	struct cvmx_ipd_next_pkt_ptr_s cn68xx;
1074 	struct cvmx_ipd_next_pkt_ptr_s cn68xxp1;
1075 };
1076 
1077 union cvmx_ipd_next_wqe_ptr {
1078 	uint64_t u64;
1079 	struct cvmx_ipd_next_wqe_ptr_s {
1080 #ifdef __BIG_ENDIAN_BITFIELD
1081 		uint64_t reserved_33_63:31;
1082 		uint64_t ptr:33;
1083 #else
1084 		uint64_t ptr:33;
1085 		uint64_t reserved_33_63:31;
1086 #endif
1087 	} s;
1088 	struct cvmx_ipd_next_wqe_ptr_s cn68xx;
1089 	struct cvmx_ipd_next_wqe_ptr_s cn68xxp1;
1090 };
1091 
1092 union cvmx_ipd_not_1st_mbuff_skip {
1093 	uint64_t u64;
1094 	struct cvmx_ipd_not_1st_mbuff_skip_s {
1095 #ifdef __BIG_ENDIAN_BITFIELD
1096 		uint64_t reserved_6_63:58;
1097 		uint64_t skip_sz:6;
1098 #else
1099 		uint64_t skip_sz:6;
1100 		uint64_t reserved_6_63:58;
1101 #endif
1102 	} s;
1103 	struct cvmx_ipd_not_1st_mbuff_skip_s cn30xx;
1104 	struct cvmx_ipd_not_1st_mbuff_skip_s cn31xx;
1105 	struct cvmx_ipd_not_1st_mbuff_skip_s cn38xx;
1106 	struct cvmx_ipd_not_1st_mbuff_skip_s cn38xxp2;
1107 	struct cvmx_ipd_not_1st_mbuff_skip_s cn50xx;
1108 	struct cvmx_ipd_not_1st_mbuff_skip_s cn52xx;
1109 	struct cvmx_ipd_not_1st_mbuff_skip_s cn52xxp1;
1110 	struct cvmx_ipd_not_1st_mbuff_skip_s cn56xx;
1111 	struct cvmx_ipd_not_1st_mbuff_skip_s cn56xxp1;
1112 	struct cvmx_ipd_not_1st_mbuff_skip_s cn58xx;
1113 	struct cvmx_ipd_not_1st_mbuff_skip_s cn58xxp1;
1114 	struct cvmx_ipd_not_1st_mbuff_skip_s cn61xx;
1115 	struct cvmx_ipd_not_1st_mbuff_skip_s cn63xx;
1116 	struct cvmx_ipd_not_1st_mbuff_skip_s cn63xxp1;
1117 	struct cvmx_ipd_not_1st_mbuff_skip_s cn66xx;
1118 	struct cvmx_ipd_not_1st_mbuff_skip_s cn68xx;
1119 	struct cvmx_ipd_not_1st_mbuff_skip_s cn68xxp1;
1120 	struct cvmx_ipd_not_1st_mbuff_skip_s cnf71xx;
1121 };
1122 
1123 union cvmx_ipd_on_bp_drop_pktx {
1124 	uint64_t u64;
1125 	struct cvmx_ipd_on_bp_drop_pktx_s {
1126 #ifdef __BIG_ENDIAN_BITFIELD
1127 		uint64_t prt_enb:64;
1128 #else
1129 		uint64_t prt_enb:64;
1130 #endif
1131 	} s;
1132 	struct cvmx_ipd_on_bp_drop_pktx_s cn68xx;
1133 	struct cvmx_ipd_on_bp_drop_pktx_s cn68xxp1;
1134 };
1135 
1136 union cvmx_ipd_packet_mbuff_size {
1137 	uint64_t u64;
1138 	struct cvmx_ipd_packet_mbuff_size_s {
1139 #ifdef __BIG_ENDIAN_BITFIELD
1140 		uint64_t reserved_12_63:52;
1141 		uint64_t mb_size:12;
1142 #else
1143 		uint64_t mb_size:12;
1144 		uint64_t reserved_12_63:52;
1145 #endif
1146 	} s;
1147 	struct cvmx_ipd_packet_mbuff_size_s cn30xx;
1148 	struct cvmx_ipd_packet_mbuff_size_s cn31xx;
1149 	struct cvmx_ipd_packet_mbuff_size_s cn38xx;
1150 	struct cvmx_ipd_packet_mbuff_size_s cn38xxp2;
1151 	struct cvmx_ipd_packet_mbuff_size_s cn50xx;
1152 	struct cvmx_ipd_packet_mbuff_size_s cn52xx;
1153 	struct cvmx_ipd_packet_mbuff_size_s cn52xxp1;
1154 	struct cvmx_ipd_packet_mbuff_size_s cn56xx;
1155 	struct cvmx_ipd_packet_mbuff_size_s cn56xxp1;
1156 	struct cvmx_ipd_packet_mbuff_size_s cn58xx;
1157 	struct cvmx_ipd_packet_mbuff_size_s cn58xxp1;
1158 	struct cvmx_ipd_packet_mbuff_size_s cn61xx;
1159 	struct cvmx_ipd_packet_mbuff_size_s cn63xx;
1160 	struct cvmx_ipd_packet_mbuff_size_s cn63xxp1;
1161 	struct cvmx_ipd_packet_mbuff_size_s cn66xx;
1162 	struct cvmx_ipd_packet_mbuff_size_s cn68xx;
1163 	struct cvmx_ipd_packet_mbuff_size_s cn68xxp1;
1164 	struct cvmx_ipd_packet_mbuff_size_s cnf71xx;
1165 };
1166 
1167 union cvmx_ipd_pkt_err {
1168 	uint64_t u64;
1169 	struct cvmx_ipd_pkt_err_s {
1170 #ifdef __BIG_ENDIAN_BITFIELD
1171 		uint64_t reserved_6_63:58;
1172 		uint64_t reasm:6;
1173 #else
1174 		uint64_t reasm:6;
1175 		uint64_t reserved_6_63:58;
1176 #endif
1177 	} s;
1178 	struct cvmx_ipd_pkt_err_s cn68xx;
1179 	struct cvmx_ipd_pkt_err_s cn68xxp1;
1180 };
1181 
1182 union cvmx_ipd_pkt_ptr_valid {
1183 	uint64_t u64;
1184 	struct cvmx_ipd_pkt_ptr_valid_s {
1185 #ifdef __BIG_ENDIAN_BITFIELD
1186 		uint64_t reserved_29_63:35;
1187 		uint64_t ptr:29;
1188 #else
1189 		uint64_t ptr:29;
1190 		uint64_t reserved_29_63:35;
1191 #endif
1192 	} s;
1193 	struct cvmx_ipd_pkt_ptr_valid_s cn30xx;
1194 	struct cvmx_ipd_pkt_ptr_valid_s cn31xx;
1195 	struct cvmx_ipd_pkt_ptr_valid_s cn38xx;
1196 	struct cvmx_ipd_pkt_ptr_valid_s cn50xx;
1197 	struct cvmx_ipd_pkt_ptr_valid_s cn52xx;
1198 	struct cvmx_ipd_pkt_ptr_valid_s cn52xxp1;
1199 	struct cvmx_ipd_pkt_ptr_valid_s cn56xx;
1200 	struct cvmx_ipd_pkt_ptr_valid_s cn56xxp1;
1201 	struct cvmx_ipd_pkt_ptr_valid_s cn58xx;
1202 	struct cvmx_ipd_pkt_ptr_valid_s cn58xxp1;
1203 	struct cvmx_ipd_pkt_ptr_valid_s cn61xx;
1204 	struct cvmx_ipd_pkt_ptr_valid_s cn63xx;
1205 	struct cvmx_ipd_pkt_ptr_valid_s cn63xxp1;
1206 	struct cvmx_ipd_pkt_ptr_valid_s cn66xx;
1207 	struct cvmx_ipd_pkt_ptr_valid_s cnf71xx;
1208 };
1209 
1210 union cvmx_ipd_portx_bp_page_cnt {
1211 	uint64_t u64;
1212 	struct cvmx_ipd_portx_bp_page_cnt_s {
1213 #ifdef __BIG_ENDIAN_BITFIELD
1214 		uint64_t reserved_18_63:46;
1215 		uint64_t bp_enb:1;
1216 		uint64_t page_cnt:17;
1217 #else
1218 		uint64_t page_cnt:17;
1219 		uint64_t bp_enb:1;
1220 		uint64_t reserved_18_63:46;
1221 #endif
1222 	} s;
1223 	struct cvmx_ipd_portx_bp_page_cnt_s cn30xx;
1224 	struct cvmx_ipd_portx_bp_page_cnt_s cn31xx;
1225 	struct cvmx_ipd_portx_bp_page_cnt_s cn38xx;
1226 	struct cvmx_ipd_portx_bp_page_cnt_s cn38xxp2;
1227 	struct cvmx_ipd_portx_bp_page_cnt_s cn50xx;
1228 	struct cvmx_ipd_portx_bp_page_cnt_s cn52xx;
1229 	struct cvmx_ipd_portx_bp_page_cnt_s cn52xxp1;
1230 	struct cvmx_ipd_portx_bp_page_cnt_s cn56xx;
1231 	struct cvmx_ipd_portx_bp_page_cnt_s cn56xxp1;
1232 	struct cvmx_ipd_portx_bp_page_cnt_s cn58xx;
1233 	struct cvmx_ipd_portx_bp_page_cnt_s cn58xxp1;
1234 	struct cvmx_ipd_portx_bp_page_cnt_s cn61xx;
1235 	struct cvmx_ipd_portx_bp_page_cnt_s cn63xx;
1236 	struct cvmx_ipd_portx_bp_page_cnt_s cn63xxp1;
1237 	struct cvmx_ipd_portx_bp_page_cnt_s cn66xx;
1238 	struct cvmx_ipd_portx_bp_page_cnt_s cnf71xx;
1239 };
1240 
1241 union cvmx_ipd_portx_bp_page_cnt2 {
1242 	uint64_t u64;
1243 	struct cvmx_ipd_portx_bp_page_cnt2_s {
1244 #ifdef __BIG_ENDIAN_BITFIELD
1245 		uint64_t reserved_18_63:46;
1246 		uint64_t bp_enb:1;
1247 		uint64_t page_cnt:17;
1248 #else
1249 		uint64_t page_cnt:17;
1250 		uint64_t bp_enb:1;
1251 		uint64_t reserved_18_63:46;
1252 #endif
1253 	} s;
1254 	struct cvmx_ipd_portx_bp_page_cnt2_s cn52xx;
1255 	struct cvmx_ipd_portx_bp_page_cnt2_s cn52xxp1;
1256 	struct cvmx_ipd_portx_bp_page_cnt2_s cn56xx;
1257 	struct cvmx_ipd_portx_bp_page_cnt2_s cn56xxp1;
1258 	struct cvmx_ipd_portx_bp_page_cnt2_s cn61xx;
1259 	struct cvmx_ipd_portx_bp_page_cnt2_s cn63xx;
1260 	struct cvmx_ipd_portx_bp_page_cnt2_s cn63xxp1;
1261 	struct cvmx_ipd_portx_bp_page_cnt2_s cn66xx;
1262 	struct cvmx_ipd_portx_bp_page_cnt2_s cnf71xx;
1263 };
1264 
1265 union cvmx_ipd_portx_bp_page_cnt3 {
1266 	uint64_t u64;
1267 	struct cvmx_ipd_portx_bp_page_cnt3_s {
1268 #ifdef __BIG_ENDIAN_BITFIELD
1269 		uint64_t reserved_18_63:46;
1270 		uint64_t bp_enb:1;
1271 		uint64_t page_cnt:17;
1272 #else
1273 		uint64_t page_cnt:17;
1274 		uint64_t bp_enb:1;
1275 		uint64_t reserved_18_63:46;
1276 #endif
1277 	} s;
1278 	struct cvmx_ipd_portx_bp_page_cnt3_s cn61xx;
1279 	struct cvmx_ipd_portx_bp_page_cnt3_s cn63xx;
1280 	struct cvmx_ipd_portx_bp_page_cnt3_s cn63xxp1;
1281 	struct cvmx_ipd_portx_bp_page_cnt3_s cn66xx;
1282 	struct cvmx_ipd_portx_bp_page_cnt3_s cnf71xx;
1283 };
1284 
1285 union cvmx_ipd_port_bp_counters2_pairx {
1286 	uint64_t u64;
1287 	struct cvmx_ipd_port_bp_counters2_pairx_s {
1288 #ifdef __BIG_ENDIAN_BITFIELD
1289 		uint64_t reserved_25_63:39;
1290 		uint64_t cnt_val:25;
1291 #else
1292 		uint64_t cnt_val:25;
1293 		uint64_t reserved_25_63:39;
1294 #endif
1295 	} s;
1296 	struct cvmx_ipd_port_bp_counters2_pairx_s cn52xx;
1297 	struct cvmx_ipd_port_bp_counters2_pairx_s cn52xxp1;
1298 	struct cvmx_ipd_port_bp_counters2_pairx_s cn56xx;
1299 	struct cvmx_ipd_port_bp_counters2_pairx_s cn56xxp1;
1300 	struct cvmx_ipd_port_bp_counters2_pairx_s cn61xx;
1301 	struct cvmx_ipd_port_bp_counters2_pairx_s cn63xx;
1302 	struct cvmx_ipd_port_bp_counters2_pairx_s cn63xxp1;
1303 	struct cvmx_ipd_port_bp_counters2_pairx_s cn66xx;
1304 	struct cvmx_ipd_port_bp_counters2_pairx_s cnf71xx;
1305 };
1306 
1307 union cvmx_ipd_port_bp_counters3_pairx {
1308 	uint64_t u64;
1309 	struct cvmx_ipd_port_bp_counters3_pairx_s {
1310 #ifdef __BIG_ENDIAN_BITFIELD
1311 		uint64_t reserved_25_63:39;
1312 		uint64_t cnt_val:25;
1313 #else
1314 		uint64_t cnt_val:25;
1315 		uint64_t reserved_25_63:39;
1316 #endif
1317 	} s;
1318 	struct cvmx_ipd_port_bp_counters3_pairx_s cn61xx;
1319 	struct cvmx_ipd_port_bp_counters3_pairx_s cn63xx;
1320 	struct cvmx_ipd_port_bp_counters3_pairx_s cn63xxp1;
1321 	struct cvmx_ipd_port_bp_counters3_pairx_s cn66xx;
1322 	struct cvmx_ipd_port_bp_counters3_pairx_s cnf71xx;
1323 };
1324 
1325 union cvmx_ipd_port_bp_counters4_pairx {
1326 	uint64_t u64;
1327 	struct cvmx_ipd_port_bp_counters4_pairx_s {
1328 #ifdef __BIG_ENDIAN_BITFIELD
1329 		uint64_t reserved_25_63:39;
1330 		uint64_t cnt_val:25;
1331 #else
1332 		uint64_t cnt_val:25;
1333 		uint64_t reserved_25_63:39;
1334 #endif
1335 	} s;
1336 	struct cvmx_ipd_port_bp_counters4_pairx_s cn61xx;
1337 	struct cvmx_ipd_port_bp_counters4_pairx_s cn66xx;
1338 	struct cvmx_ipd_port_bp_counters4_pairx_s cnf71xx;
1339 };
1340 
1341 union cvmx_ipd_port_bp_counters_pairx {
1342 	uint64_t u64;
1343 	struct cvmx_ipd_port_bp_counters_pairx_s {
1344 #ifdef __BIG_ENDIAN_BITFIELD
1345 		uint64_t reserved_25_63:39;
1346 		uint64_t cnt_val:25;
1347 #else
1348 		uint64_t cnt_val:25;
1349 		uint64_t reserved_25_63:39;
1350 #endif
1351 	} s;
1352 	struct cvmx_ipd_port_bp_counters_pairx_s cn30xx;
1353 	struct cvmx_ipd_port_bp_counters_pairx_s cn31xx;
1354 	struct cvmx_ipd_port_bp_counters_pairx_s cn38xx;
1355 	struct cvmx_ipd_port_bp_counters_pairx_s cn38xxp2;
1356 	struct cvmx_ipd_port_bp_counters_pairx_s cn50xx;
1357 	struct cvmx_ipd_port_bp_counters_pairx_s cn52xx;
1358 	struct cvmx_ipd_port_bp_counters_pairx_s cn52xxp1;
1359 	struct cvmx_ipd_port_bp_counters_pairx_s cn56xx;
1360 	struct cvmx_ipd_port_bp_counters_pairx_s cn56xxp1;
1361 	struct cvmx_ipd_port_bp_counters_pairx_s cn58xx;
1362 	struct cvmx_ipd_port_bp_counters_pairx_s cn58xxp1;
1363 	struct cvmx_ipd_port_bp_counters_pairx_s cn61xx;
1364 	struct cvmx_ipd_port_bp_counters_pairx_s cn63xx;
1365 	struct cvmx_ipd_port_bp_counters_pairx_s cn63xxp1;
1366 	struct cvmx_ipd_port_bp_counters_pairx_s cn66xx;
1367 	struct cvmx_ipd_port_bp_counters_pairx_s cnf71xx;
1368 };
1369 
1370 union cvmx_ipd_port_ptr_fifo_ctl {
1371 	uint64_t u64;
1372 	struct cvmx_ipd_port_ptr_fifo_ctl_s {
1373 #ifdef __BIG_ENDIAN_BITFIELD
1374 		uint64_t reserved_48_63:16;
1375 		uint64_t ptr:33;
1376 		uint64_t max_pkt:7;
1377 		uint64_t cena:1;
1378 		uint64_t raddr:7;
1379 #else
1380 		uint64_t raddr:7;
1381 		uint64_t cena:1;
1382 		uint64_t max_pkt:7;
1383 		uint64_t ptr:33;
1384 		uint64_t reserved_48_63:16;
1385 #endif
1386 	} s;
1387 	struct cvmx_ipd_port_ptr_fifo_ctl_s cn68xx;
1388 	struct cvmx_ipd_port_ptr_fifo_ctl_s cn68xxp1;
1389 };
1390 
1391 union cvmx_ipd_port_qos_x_cnt {
1392 	uint64_t u64;
1393 	struct cvmx_ipd_port_qos_x_cnt_s {
1394 #ifdef __BIG_ENDIAN_BITFIELD
1395 		uint64_t wmark:32;
1396 		uint64_t cnt:32;
1397 #else
1398 		uint64_t cnt:32;
1399 		uint64_t wmark:32;
1400 #endif
1401 	} s;
1402 	struct cvmx_ipd_port_qos_x_cnt_s cn52xx;
1403 	struct cvmx_ipd_port_qos_x_cnt_s cn52xxp1;
1404 	struct cvmx_ipd_port_qos_x_cnt_s cn56xx;
1405 	struct cvmx_ipd_port_qos_x_cnt_s cn56xxp1;
1406 	struct cvmx_ipd_port_qos_x_cnt_s cn61xx;
1407 	struct cvmx_ipd_port_qos_x_cnt_s cn63xx;
1408 	struct cvmx_ipd_port_qos_x_cnt_s cn63xxp1;
1409 	struct cvmx_ipd_port_qos_x_cnt_s cn66xx;
1410 	struct cvmx_ipd_port_qos_x_cnt_s cn68xx;
1411 	struct cvmx_ipd_port_qos_x_cnt_s cn68xxp1;
1412 	struct cvmx_ipd_port_qos_x_cnt_s cnf71xx;
1413 };
1414 
1415 union cvmx_ipd_port_qos_intx {
1416 	uint64_t u64;
1417 	struct cvmx_ipd_port_qos_intx_s {
1418 #ifdef __BIG_ENDIAN_BITFIELD
1419 		uint64_t intr:64;
1420 #else
1421 		uint64_t intr:64;
1422 #endif
1423 	} s;
1424 	struct cvmx_ipd_port_qos_intx_s cn52xx;
1425 	struct cvmx_ipd_port_qos_intx_s cn52xxp1;
1426 	struct cvmx_ipd_port_qos_intx_s cn56xx;
1427 	struct cvmx_ipd_port_qos_intx_s cn56xxp1;
1428 	struct cvmx_ipd_port_qos_intx_s cn61xx;
1429 	struct cvmx_ipd_port_qos_intx_s cn63xx;
1430 	struct cvmx_ipd_port_qos_intx_s cn63xxp1;
1431 	struct cvmx_ipd_port_qos_intx_s cn66xx;
1432 	struct cvmx_ipd_port_qos_intx_s cn68xx;
1433 	struct cvmx_ipd_port_qos_intx_s cn68xxp1;
1434 	struct cvmx_ipd_port_qos_intx_s cnf71xx;
1435 };
1436 
1437 union cvmx_ipd_port_qos_int_enbx {
1438 	uint64_t u64;
1439 	struct cvmx_ipd_port_qos_int_enbx_s {
1440 #ifdef __BIG_ENDIAN_BITFIELD
1441 		uint64_t enb:64;
1442 #else
1443 		uint64_t enb:64;
1444 #endif
1445 	} s;
1446 	struct cvmx_ipd_port_qos_int_enbx_s cn52xx;
1447 	struct cvmx_ipd_port_qos_int_enbx_s cn52xxp1;
1448 	struct cvmx_ipd_port_qos_int_enbx_s cn56xx;
1449 	struct cvmx_ipd_port_qos_int_enbx_s cn56xxp1;
1450 	struct cvmx_ipd_port_qos_int_enbx_s cn61xx;
1451 	struct cvmx_ipd_port_qos_int_enbx_s cn63xx;
1452 	struct cvmx_ipd_port_qos_int_enbx_s cn63xxp1;
1453 	struct cvmx_ipd_port_qos_int_enbx_s cn66xx;
1454 	struct cvmx_ipd_port_qos_int_enbx_s cn68xx;
1455 	struct cvmx_ipd_port_qos_int_enbx_s cn68xxp1;
1456 	struct cvmx_ipd_port_qos_int_enbx_s cnf71xx;
1457 };
1458 
1459 union cvmx_ipd_port_sopx {
1460 	uint64_t u64;
1461 	struct cvmx_ipd_port_sopx_s {
1462 #ifdef __BIG_ENDIAN_BITFIELD
1463 		uint64_t sop:64;
1464 #else
1465 		uint64_t sop:64;
1466 #endif
1467 	} s;
1468 	struct cvmx_ipd_port_sopx_s cn68xx;
1469 	struct cvmx_ipd_port_sopx_s cn68xxp1;
1470 };
1471 
1472 union cvmx_ipd_prc_hold_ptr_fifo_ctl {
1473 	uint64_t u64;
1474 	struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s {
1475 #ifdef __BIG_ENDIAN_BITFIELD
1476 		uint64_t reserved_39_63:25;
1477 		uint64_t max_pkt:3;
1478 		uint64_t praddr:3;
1479 		uint64_t ptr:29;
1480 		uint64_t cena:1;
1481 		uint64_t raddr:3;
1482 #else
1483 		uint64_t raddr:3;
1484 		uint64_t cena:1;
1485 		uint64_t ptr:29;
1486 		uint64_t praddr:3;
1487 		uint64_t max_pkt:3;
1488 		uint64_t reserved_39_63:25;
1489 #endif
1490 	} s;
1491 	struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn30xx;
1492 	struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn31xx;
1493 	struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn38xx;
1494 	struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn50xx;
1495 	struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn52xx;
1496 	struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn52xxp1;
1497 	struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn56xx;
1498 	struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn56xxp1;
1499 	struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn58xx;
1500 	struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn58xxp1;
1501 	struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn61xx;
1502 	struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn63xx;
1503 	struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn63xxp1;
1504 	struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn66xx;
1505 	struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cnf71xx;
1506 };
1507 
1508 union cvmx_ipd_prc_port_ptr_fifo_ctl {
1509 	uint64_t u64;
1510 	struct cvmx_ipd_prc_port_ptr_fifo_ctl_s {
1511 #ifdef __BIG_ENDIAN_BITFIELD
1512 		uint64_t reserved_44_63:20;
1513 		uint64_t max_pkt:7;
1514 		uint64_t ptr:29;
1515 		uint64_t cena:1;
1516 		uint64_t raddr:7;
1517 #else
1518 		uint64_t raddr:7;
1519 		uint64_t cena:1;
1520 		uint64_t ptr:29;
1521 		uint64_t max_pkt:7;
1522 		uint64_t reserved_44_63:20;
1523 #endif
1524 	} s;
1525 	struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn30xx;
1526 	struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn31xx;
1527 	struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn38xx;
1528 	struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn50xx;
1529 	struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn52xx;
1530 	struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn52xxp1;
1531 	struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn56xx;
1532 	struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn56xxp1;
1533 	struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn58xx;
1534 	struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn58xxp1;
1535 	struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn61xx;
1536 	struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn63xx;
1537 	struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn63xxp1;
1538 	struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn66xx;
1539 	struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cnf71xx;
1540 };
1541 
1542 union cvmx_ipd_ptr_count {
1543 	uint64_t u64;
1544 	struct cvmx_ipd_ptr_count_s {
1545 #ifdef __BIG_ENDIAN_BITFIELD
1546 		uint64_t reserved_19_63:45;
1547 		uint64_t pktv_cnt:1;
1548 		uint64_t wqev_cnt:1;
1549 		uint64_t pfif_cnt:3;
1550 		uint64_t pkt_pcnt:7;
1551 		uint64_t wqe_pcnt:7;
1552 #else
1553 		uint64_t wqe_pcnt:7;
1554 		uint64_t pkt_pcnt:7;
1555 		uint64_t pfif_cnt:3;
1556 		uint64_t wqev_cnt:1;
1557 		uint64_t pktv_cnt:1;
1558 		uint64_t reserved_19_63:45;
1559 #endif
1560 	} s;
1561 	struct cvmx_ipd_ptr_count_s cn30xx;
1562 	struct cvmx_ipd_ptr_count_s cn31xx;
1563 	struct cvmx_ipd_ptr_count_s cn38xx;
1564 	struct cvmx_ipd_ptr_count_s cn38xxp2;
1565 	struct cvmx_ipd_ptr_count_s cn50xx;
1566 	struct cvmx_ipd_ptr_count_s cn52xx;
1567 	struct cvmx_ipd_ptr_count_s cn52xxp1;
1568 	struct cvmx_ipd_ptr_count_s cn56xx;
1569 	struct cvmx_ipd_ptr_count_s cn56xxp1;
1570 	struct cvmx_ipd_ptr_count_s cn58xx;
1571 	struct cvmx_ipd_ptr_count_s cn58xxp1;
1572 	struct cvmx_ipd_ptr_count_s cn61xx;
1573 	struct cvmx_ipd_ptr_count_s cn63xx;
1574 	struct cvmx_ipd_ptr_count_s cn63xxp1;
1575 	struct cvmx_ipd_ptr_count_s cn66xx;
1576 	struct cvmx_ipd_ptr_count_s cn68xx;
1577 	struct cvmx_ipd_ptr_count_s cn68xxp1;
1578 	struct cvmx_ipd_ptr_count_s cnf71xx;
1579 };
1580 
1581 union cvmx_ipd_pwp_ptr_fifo_ctl {
1582 	uint64_t u64;
1583 	struct cvmx_ipd_pwp_ptr_fifo_ctl_s {
1584 #ifdef __BIG_ENDIAN_BITFIELD
1585 		uint64_t reserved_61_63:3;
1586 		uint64_t max_cnts:7;
1587 		uint64_t wraddr:8;
1588 		uint64_t praddr:8;
1589 		uint64_t ptr:29;
1590 		uint64_t cena:1;
1591 		uint64_t raddr:8;
1592 #else
1593 		uint64_t raddr:8;
1594 		uint64_t cena:1;
1595 		uint64_t ptr:29;
1596 		uint64_t praddr:8;
1597 		uint64_t wraddr:8;
1598 		uint64_t max_cnts:7;
1599 		uint64_t reserved_61_63:3;
1600 #endif
1601 	} s;
1602 	struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn30xx;
1603 	struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn31xx;
1604 	struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn38xx;
1605 	struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn50xx;
1606 	struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn52xx;
1607 	struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn52xxp1;
1608 	struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn56xx;
1609 	struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn56xxp1;
1610 	struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn58xx;
1611 	struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn58xxp1;
1612 	struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn61xx;
1613 	struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn63xx;
1614 	struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn63xxp1;
1615 	struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn66xx;
1616 	struct cvmx_ipd_pwp_ptr_fifo_ctl_s cnf71xx;
1617 };
1618 
1619 union cvmx_ipd_qosx_red_marks {
1620 	uint64_t u64;
1621 	struct cvmx_ipd_qosx_red_marks_s {
1622 #ifdef __BIG_ENDIAN_BITFIELD
1623 		uint64_t drop:32;
1624 		uint64_t pass:32;
1625 #else
1626 		uint64_t pass:32;
1627 		uint64_t drop:32;
1628 #endif
1629 	} s;
1630 	struct cvmx_ipd_qosx_red_marks_s cn30xx;
1631 	struct cvmx_ipd_qosx_red_marks_s cn31xx;
1632 	struct cvmx_ipd_qosx_red_marks_s cn38xx;
1633 	struct cvmx_ipd_qosx_red_marks_s cn38xxp2;
1634 	struct cvmx_ipd_qosx_red_marks_s cn50xx;
1635 	struct cvmx_ipd_qosx_red_marks_s cn52xx;
1636 	struct cvmx_ipd_qosx_red_marks_s cn52xxp1;
1637 	struct cvmx_ipd_qosx_red_marks_s cn56xx;
1638 	struct cvmx_ipd_qosx_red_marks_s cn56xxp1;
1639 	struct cvmx_ipd_qosx_red_marks_s cn58xx;
1640 	struct cvmx_ipd_qosx_red_marks_s cn58xxp1;
1641 	struct cvmx_ipd_qosx_red_marks_s cn61xx;
1642 	struct cvmx_ipd_qosx_red_marks_s cn63xx;
1643 	struct cvmx_ipd_qosx_red_marks_s cn63xxp1;
1644 	struct cvmx_ipd_qosx_red_marks_s cn66xx;
1645 	struct cvmx_ipd_qosx_red_marks_s cn68xx;
1646 	struct cvmx_ipd_qosx_red_marks_s cn68xxp1;
1647 	struct cvmx_ipd_qosx_red_marks_s cnf71xx;
1648 };
1649 
1650 union cvmx_ipd_que0_free_page_cnt {
1651 	uint64_t u64;
1652 	struct cvmx_ipd_que0_free_page_cnt_s {
1653 #ifdef __BIG_ENDIAN_BITFIELD
1654 		uint64_t reserved_32_63:32;
1655 		uint64_t q0_pcnt:32;
1656 #else
1657 		uint64_t q0_pcnt:32;
1658 		uint64_t reserved_32_63:32;
1659 #endif
1660 	} s;
1661 	struct cvmx_ipd_que0_free_page_cnt_s cn30xx;
1662 	struct cvmx_ipd_que0_free_page_cnt_s cn31xx;
1663 	struct cvmx_ipd_que0_free_page_cnt_s cn38xx;
1664 	struct cvmx_ipd_que0_free_page_cnt_s cn38xxp2;
1665 	struct cvmx_ipd_que0_free_page_cnt_s cn50xx;
1666 	struct cvmx_ipd_que0_free_page_cnt_s cn52xx;
1667 	struct cvmx_ipd_que0_free_page_cnt_s cn52xxp1;
1668 	struct cvmx_ipd_que0_free_page_cnt_s cn56xx;
1669 	struct cvmx_ipd_que0_free_page_cnt_s cn56xxp1;
1670 	struct cvmx_ipd_que0_free_page_cnt_s cn58xx;
1671 	struct cvmx_ipd_que0_free_page_cnt_s cn58xxp1;
1672 	struct cvmx_ipd_que0_free_page_cnt_s cn61xx;
1673 	struct cvmx_ipd_que0_free_page_cnt_s cn63xx;
1674 	struct cvmx_ipd_que0_free_page_cnt_s cn63xxp1;
1675 	struct cvmx_ipd_que0_free_page_cnt_s cn66xx;
1676 	struct cvmx_ipd_que0_free_page_cnt_s cn68xx;
1677 	struct cvmx_ipd_que0_free_page_cnt_s cn68xxp1;
1678 	struct cvmx_ipd_que0_free_page_cnt_s cnf71xx;
1679 };
1680 
1681 union cvmx_ipd_red_bpid_enablex {
1682 	uint64_t u64;
1683 	struct cvmx_ipd_red_bpid_enablex_s {
1684 #ifdef __BIG_ENDIAN_BITFIELD
1685 		uint64_t prt_enb:64;
1686 #else
1687 		uint64_t prt_enb:64;
1688 #endif
1689 	} s;
1690 	struct cvmx_ipd_red_bpid_enablex_s cn68xx;
1691 	struct cvmx_ipd_red_bpid_enablex_s cn68xxp1;
1692 };
1693 
1694 union cvmx_ipd_red_delay {
1695 	uint64_t u64;
1696 	struct cvmx_ipd_red_delay_s {
1697 #ifdef __BIG_ENDIAN_BITFIELD
1698 		uint64_t reserved_28_63:36;
1699 		uint64_t prb_dly:14;
1700 		uint64_t avg_dly:14;
1701 #else
1702 		uint64_t avg_dly:14;
1703 		uint64_t prb_dly:14;
1704 		uint64_t reserved_28_63:36;
1705 #endif
1706 	} s;
1707 	struct cvmx_ipd_red_delay_s cn68xx;
1708 	struct cvmx_ipd_red_delay_s cn68xxp1;
1709 };
1710 
1711 union cvmx_ipd_red_port_enable {
1712 	uint64_t u64;
1713 	struct cvmx_ipd_red_port_enable_s {
1714 #ifdef __BIG_ENDIAN_BITFIELD
1715 		uint64_t prb_dly:14;
1716 		uint64_t avg_dly:14;
1717 		uint64_t prt_enb:36;
1718 #else
1719 		uint64_t prt_enb:36;
1720 		uint64_t avg_dly:14;
1721 		uint64_t prb_dly:14;
1722 #endif
1723 	} s;
1724 	struct cvmx_ipd_red_port_enable_s cn30xx;
1725 	struct cvmx_ipd_red_port_enable_s cn31xx;
1726 	struct cvmx_ipd_red_port_enable_s cn38xx;
1727 	struct cvmx_ipd_red_port_enable_s cn38xxp2;
1728 	struct cvmx_ipd_red_port_enable_s cn50xx;
1729 	struct cvmx_ipd_red_port_enable_s cn52xx;
1730 	struct cvmx_ipd_red_port_enable_s cn52xxp1;
1731 	struct cvmx_ipd_red_port_enable_s cn56xx;
1732 	struct cvmx_ipd_red_port_enable_s cn56xxp1;
1733 	struct cvmx_ipd_red_port_enable_s cn58xx;
1734 	struct cvmx_ipd_red_port_enable_s cn58xxp1;
1735 	struct cvmx_ipd_red_port_enable_s cn61xx;
1736 	struct cvmx_ipd_red_port_enable_s cn63xx;
1737 	struct cvmx_ipd_red_port_enable_s cn63xxp1;
1738 	struct cvmx_ipd_red_port_enable_s cn66xx;
1739 	struct cvmx_ipd_red_port_enable_s cnf71xx;
1740 };
1741 
1742 union cvmx_ipd_red_port_enable2 {
1743 	uint64_t u64;
1744 	struct cvmx_ipd_red_port_enable2_s {
1745 #ifdef __BIG_ENDIAN_BITFIELD
1746 		uint64_t reserved_12_63:52;
1747 		uint64_t prt_enb:12;
1748 #else
1749 		uint64_t prt_enb:12;
1750 		uint64_t reserved_12_63:52;
1751 #endif
1752 	} s;
1753 	struct cvmx_ipd_red_port_enable2_cn52xx {
1754 #ifdef __BIG_ENDIAN_BITFIELD
1755 		uint64_t reserved_4_63:60;
1756 		uint64_t prt_enb:4;
1757 #else
1758 		uint64_t prt_enb:4;
1759 		uint64_t reserved_4_63:60;
1760 #endif
1761 	} cn52xx;
1762 	struct cvmx_ipd_red_port_enable2_cn52xx cn52xxp1;
1763 	struct cvmx_ipd_red_port_enable2_cn52xx cn56xx;
1764 	struct cvmx_ipd_red_port_enable2_cn52xx cn56xxp1;
1765 	struct cvmx_ipd_red_port_enable2_s cn61xx;
1766 	struct cvmx_ipd_red_port_enable2_cn63xx {
1767 #ifdef __BIG_ENDIAN_BITFIELD
1768 		uint64_t reserved_8_63:56;
1769 		uint64_t prt_enb:8;
1770 #else
1771 		uint64_t prt_enb:8;
1772 		uint64_t reserved_8_63:56;
1773 #endif
1774 	} cn63xx;
1775 	struct cvmx_ipd_red_port_enable2_cn63xx cn63xxp1;
1776 	struct cvmx_ipd_red_port_enable2_s cn66xx;
1777 	struct cvmx_ipd_red_port_enable2_s cnf71xx;
1778 };
1779 
1780 union cvmx_ipd_red_quex_param {
1781 	uint64_t u64;
1782 	struct cvmx_ipd_red_quex_param_s {
1783 #ifdef __BIG_ENDIAN_BITFIELD
1784 		uint64_t reserved_49_63:15;
1785 		uint64_t use_pcnt:1;
1786 		uint64_t new_con:8;
1787 		uint64_t avg_con:8;
1788 		uint64_t prb_con:32;
1789 #else
1790 		uint64_t prb_con:32;
1791 		uint64_t avg_con:8;
1792 		uint64_t new_con:8;
1793 		uint64_t use_pcnt:1;
1794 		uint64_t reserved_49_63:15;
1795 #endif
1796 	} s;
1797 	struct cvmx_ipd_red_quex_param_s cn30xx;
1798 	struct cvmx_ipd_red_quex_param_s cn31xx;
1799 	struct cvmx_ipd_red_quex_param_s cn38xx;
1800 	struct cvmx_ipd_red_quex_param_s cn38xxp2;
1801 	struct cvmx_ipd_red_quex_param_s cn50xx;
1802 	struct cvmx_ipd_red_quex_param_s cn52xx;
1803 	struct cvmx_ipd_red_quex_param_s cn52xxp1;
1804 	struct cvmx_ipd_red_quex_param_s cn56xx;
1805 	struct cvmx_ipd_red_quex_param_s cn56xxp1;
1806 	struct cvmx_ipd_red_quex_param_s cn58xx;
1807 	struct cvmx_ipd_red_quex_param_s cn58xxp1;
1808 	struct cvmx_ipd_red_quex_param_s cn61xx;
1809 	struct cvmx_ipd_red_quex_param_s cn63xx;
1810 	struct cvmx_ipd_red_quex_param_s cn63xxp1;
1811 	struct cvmx_ipd_red_quex_param_s cn66xx;
1812 	struct cvmx_ipd_red_quex_param_s cn68xx;
1813 	struct cvmx_ipd_red_quex_param_s cn68xxp1;
1814 	struct cvmx_ipd_red_quex_param_s cnf71xx;
1815 };
1816 
1817 union cvmx_ipd_req_wgt {
1818 	uint64_t u64;
1819 	struct cvmx_ipd_req_wgt_s {
1820 #ifdef __BIG_ENDIAN_BITFIELD
1821 		uint64_t wgt7:8;
1822 		uint64_t wgt6:8;
1823 		uint64_t wgt5:8;
1824 		uint64_t wgt4:8;
1825 		uint64_t wgt3:8;
1826 		uint64_t wgt2:8;
1827 		uint64_t wgt1:8;
1828 		uint64_t wgt0:8;
1829 #else
1830 		uint64_t wgt0:8;
1831 		uint64_t wgt1:8;
1832 		uint64_t wgt2:8;
1833 		uint64_t wgt3:8;
1834 		uint64_t wgt4:8;
1835 		uint64_t wgt5:8;
1836 		uint64_t wgt6:8;
1837 		uint64_t wgt7:8;
1838 #endif
1839 	} s;
1840 	struct cvmx_ipd_req_wgt_s cn68xx;
1841 };
1842 
1843 union cvmx_ipd_sub_port_bp_page_cnt {
1844 	uint64_t u64;
1845 	struct cvmx_ipd_sub_port_bp_page_cnt_s {
1846 #ifdef __BIG_ENDIAN_BITFIELD
1847 		uint64_t reserved_31_63:33;
1848 		uint64_t port:6;
1849 		uint64_t page_cnt:25;
1850 #else
1851 		uint64_t page_cnt:25;
1852 		uint64_t port:6;
1853 		uint64_t reserved_31_63:33;
1854 #endif
1855 	} s;
1856 	struct cvmx_ipd_sub_port_bp_page_cnt_s cn30xx;
1857 	struct cvmx_ipd_sub_port_bp_page_cnt_s cn31xx;
1858 	struct cvmx_ipd_sub_port_bp_page_cnt_s cn38xx;
1859 	struct cvmx_ipd_sub_port_bp_page_cnt_s cn38xxp2;
1860 	struct cvmx_ipd_sub_port_bp_page_cnt_s cn50xx;
1861 	struct cvmx_ipd_sub_port_bp_page_cnt_s cn52xx;
1862 	struct cvmx_ipd_sub_port_bp_page_cnt_s cn52xxp1;
1863 	struct cvmx_ipd_sub_port_bp_page_cnt_s cn56xx;
1864 	struct cvmx_ipd_sub_port_bp_page_cnt_s cn56xxp1;
1865 	struct cvmx_ipd_sub_port_bp_page_cnt_s cn58xx;
1866 	struct cvmx_ipd_sub_port_bp_page_cnt_s cn58xxp1;
1867 	struct cvmx_ipd_sub_port_bp_page_cnt_s cn61xx;
1868 	struct cvmx_ipd_sub_port_bp_page_cnt_s cn63xx;
1869 	struct cvmx_ipd_sub_port_bp_page_cnt_s cn63xxp1;
1870 	struct cvmx_ipd_sub_port_bp_page_cnt_s cn66xx;
1871 	struct cvmx_ipd_sub_port_bp_page_cnt_s cn68xx;
1872 	struct cvmx_ipd_sub_port_bp_page_cnt_s cn68xxp1;
1873 	struct cvmx_ipd_sub_port_bp_page_cnt_s cnf71xx;
1874 };
1875 
1876 union cvmx_ipd_sub_port_fcs {
1877 	uint64_t u64;
1878 	struct cvmx_ipd_sub_port_fcs_s {
1879 #ifdef __BIG_ENDIAN_BITFIELD
1880 		uint64_t reserved_40_63:24;
1881 		uint64_t port_bit2:4;
1882 		uint64_t reserved_32_35:4;
1883 		uint64_t port_bit:32;
1884 #else
1885 		uint64_t port_bit:32;
1886 		uint64_t reserved_32_35:4;
1887 		uint64_t port_bit2:4;
1888 		uint64_t reserved_40_63:24;
1889 #endif
1890 	} s;
1891 	struct cvmx_ipd_sub_port_fcs_cn30xx {
1892 #ifdef __BIG_ENDIAN_BITFIELD
1893 		uint64_t reserved_3_63:61;
1894 		uint64_t port_bit:3;
1895 #else
1896 		uint64_t port_bit:3;
1897 		uint64_t reserved_3_63:61;
1898 #endif
1899 	} cn30xx;
1900 	struct cvmx_ipd_sub_port_fcs_cn30xx cn31xx;
1901 	struct cvmx_ipd_sub_port_fcs_cn38xx {
1902 #ifdef __BIG_ENDIAN_BITFIELD
1903 		uint64_t reserved_32_63:32;
1904 		uint64_t port_bit:32;
1905 #else
1906 		uint64_t port_bit:32;
1907 		uint64_t reserved_32_63:32;
1908 #endif
1909 	} cn38xx;
1910 	struct cvmx_ipd_sub_port_fcs_cn38xx cn38xxp2;
1911 	struct cvmx_ipd_sub_port_fcs_cn30xx cn50xx;
1912 	struct cvmx_ipd_sub_port_fcs_s cn52xx;
1913 	struct cvmx_ipd_sub_port_fcs_s cn52xxp1;
1914 	struct cvmx_ipd_sub_port_fcs_s cn56xx;
1915 	struct cvmx_ipd_sub_port_fcs_s cn56xxp1;
1916 	struct cvmx_ipd_sub_port_fcs_cn38xx cn58xx;
1917 	struct cvmx_ipd_sub_port_fcs_cn38xx cn58xxp1;
1918 	struct cvmx_ipd_sub_port_fcs_s cn61xx;
1919 	struct cvmx_ipd_sub_port_fcs_s cn63xx;
1920 	struct cvmx_ipd_sub_port_fcs_s cn63xxp1;
1921 	struct cvmx_ipd_sub_port_fcs_s cn66xx;
1922 	struct cvmx_ipd_sub_port_fcs_s cnf71xx;
1923 };
1924 
1925 union cvmx_ipd_sub_port_qos_cnt {
1926 	uint64_t u64;
1927 	struct cvmx_ipd_sub_port_qos_cnt_s {
1928 #ifdef __BIG_ENDIAN_BITFIELD
1929 		uint64_t reserved_41_63:23;
1930 		uint64_t port_qos:9;
1931 		uint64_t cnt:32;
1932 #else
1933 		uint64_t cnt:32;
1934 		uint64_t port_qos:9;
1935 		uint64_t reserved_41_63:23;
1936 #endif
1937 	} s;
1938 	struct cvmx_ipd_sub_port_qos_cnt_s cn52xx;
1939 	struct cvmx_ipd_sub_port_qos_cnt_s cn52xxp1;
1940 	struct cvmx_ipd_sub_port_qos_cnt_s cn56xx;
1941 	struct cvmx_ipd_sub_port_qos_cnt_s cn56xxp1;
1942 	struct cvmx_ipd_sub_port_qos_cnt_s cn61xx;
1943 	struct cvmx_ipd_sub_port_qos_cnt_s cn63xx;
1944 	struct cvmx_ipd_sub_port_qos_cnt_s cn63xxp1;
1945 	struct cvmx_ipd_sub_port_qos_cnt_s cn66xx;
1946 	struct cvmx_ipd_sub_port_qos_cnt_s cn68xx;
1947 	struct cvmx_ipd_sub_port_qos_cnt_s cn68xxp1;
1948 	struct cvmx_ipd_sub_port_qos_cnt_s cnf71xx;
1949 };
1950 
1951 union cvmx_ipd_wqe_fpa_queue {
1952 	uint64_t u64;
1953 	struct cvmx_ipd_wqe_fpa_queue_s {
1954 #ifdef __BIG_ENDIAN_BITFIELD
1955 		uint64_t reserved_3_63:61;
1956 		uint64_t wqe_pool:3;
1957 #else
1958 		uint64_t wqe_pool:3;
1959 		uint64_t reserved_3_63:61;
1960 #endif
1961 	} s;
1962 	struct cvmx_ipd_wqe_fpa_queue_s cn30xx;
1963 	struct cvmx_ipd_wqe_fpa_queue_s cn31xx;
1964 	struct cvmx_ipd_wqe_fpa_queue_s cn38xx;
1965 	struct cvmx_ipd_wqe_fpa_queue_s cn38xxp2;
1966 	struct cvmx_ipd_wqe_fpa_queue_s cn50xx;
1967 	struct cvmx_ipd_wqe_fpa_queue_s cn52xx;
1968 	struct cvmx_ipd_wqe_fpa_queue_s cn52xxp1;
1969 	struct cvmx_ipd_wqe_fpa_queue_s cn56xx;
1970 	struct cvmx_ipd_wqe_fpa_queue_s cn56xxp1;
1971 	struct cvmx_ipd_wqe_fpa_queue_s cn58xx;
1972 	struct cvmx_ipd_wqe_fpa_queue_s cn58xxp1;
1973 	struct cvmx_ipd_wqe_fpa_queue_s cn61xx;
1974 	struct cvmx_ipd_wqe_fpa_queue_s cn63xx;
1975 	struct cvmx_ipd_wqe_fpa_queue_s cn63xxp1;
1976 	struct cvmx_ipd_wqe_fpa_queue_s cn66xx;
1977 	struct cvmx_ipd_wqe_fpa_queue_s cn68xx;
1978 	struct cvmx_ipd_wqe_fpa_queue_s cn68xxp1;
1979 	struct cvmx_ipd_wqe_fpa_queue_s cnf71xx;
1980 };
1981 
1982 union cvmx_ipd_wqe_ptr_valid {
1983 	uint64_t u64;
1984 	struct cvmx_ipd_wqe_ptr_valid_s {
1985 #ifdef __BIG_ENDIAN_BITFIELD
1986 		uint64_t reserved_29_63:35;
1987 		uint64_t ptr:29;
1988 #else
1989 		uint64_t ptr:29;
1990 		uint64_t reserved_29_63:35;
1991 #endif
1992 	} s;
1993 	struct cvmx_ipd_wqe_ptr_valid_s cn30xx;
1994 	struct cvmx_ipd_wqe_ptr_valid_s cn31xx;
1995 	struct cvmx_ipd_wqe_ptr_valid_s cn38xx;
1996 	struct cvmx_ipd_wqe_ptr_valid_s cn50xx;
1997 	struct cvmx_ipd_wqe_ptr_valid_s cn52xx;
1998 	struct cvmx_ipd_wqe_ptr_valid_s cn52xxp1;
1999 	struct cvmx_ipd_wqe_ptr_valid_s cn56xx;
2000 	struct cvmx_ipd_wqe_ptr_valid_s cn56xxp1;
2001 	struct cvmx_ipd_wqe_ptr_valid_s cn58xx;
2002 	struct cvmx_ipd_wqe_ptr_valid_s cn58xxp1;
2003 	struct cvmx_ipd_wqe_ptr_valid_s cn61xx;
2004 	struct cvmx_ipd_wqe_ptr_valid_s cn63xx;
2005 	struct cvmx_ipd_wqe_ptr_valid_s cn63xxp1;
2006 	struct cvmx_ipd_wqe_ptr_valid_s cn66xx;
2007 	struct cvmx_ipd_wqe_ptr_valid_s cnf71xx;
2008 };
2009 
2010 #endif
2011