Merge branches 'irq-core-for-linus' and 'core-locking-for-linus' of git://git.kernel...
[pandora-kernel.git] / arch / mips / include / asm / octeon / cvmx-ipd-defs.h
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-2010 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_BP_PRT_RED_END (CVMX_ADD_IO_SEG(0x00014F0000000328ull))
36 #define CVMX_IPD_CLK_COUNT (CVMX_ADD_IO_SEG(0x00014F0000000338ull))
37 #define CVMX_IPD_CTL_STATUS (CVMX_ADD_IO_SEG(0x00014F0000000018ull))
38 #define CVMX_IPD_INT_ENB (CVMX_ADD_IO_SEG(0x00014F0000000160ull))
39 #define CVMX_IPD_INT_SUM (CVMX_ADD_IO_SEG(0x00014F0000000168ull))
40 #define CVMX_IPD_NOT_1ST_MBUFF_SKIP (CVMX_ADD_IO_SEG(0x00014F0000000008ull))
41 #define CVMX_IPD_PACKET_MBUFF_SIZE (CVMX_ADD_IO_SEG(0x00014F0000000010ull))
42 #define CVMX_IPD_PKT_PTR_VALID (CVMX_ADD_IO_SEG(0x00014F0000000358ull))
43 #define CVMX_IPD_PORTX_BP_PAGE_CNT(offset) (CVMX_ADD_IO_SEG(0x00014F0000000028ull) + ((offset) & 63) * 8)
44 #define CVMX_IPD_PORTX_BP_PAGE_CNT2(offset) (CVMX_ADD_IO_SEG(0x00014F0000000368ull) + ((offset) & 63) * 8 - 8*36)
45 #define CVMX_IPD_PORTX_BP_PAGE_CNT3(offset) (CVMX_ADD_IO_SEG(0x00014F00000003D0ull) + ((offset) & 63) * 8 - 8*40)
46 #define CVMX_IPD_PORT_BP_COUNTERS2_PAIRX(offset) (CVMX_ADD_IO_SEG(0x00014F0000000388ull) + ((offset) & 63) * 8 - 8*36)
47 #define CVMX_IPD_PORT_BP_COUNTERS3_PAIRX(offset) (CVMX_ADD_IO_SEG(0x00014F00000003B0ull) + ((offset) & 63) * 8 - 8*40)
48 #define CVMX_IPD_PORT_BP_COUNTERS_PAIRX(offset) (CVMX_ADD_IO_SEG(0x00014F00000001B8ull) + ((offset) & 63) * 8)
49 #define CVMX_IPD_PORT_QOS_INTX(offset) (CVMX_ADD_IO_SEG(0x00014F0000000808ull) + ((offset) & 7) * 8)
50 #define CVMX_IPD_PORT_QOS_INT_ENBX(offset) (CVMX_ADD_IO_SEG(0x00014F0000000848ull) + ((offset) & 7) * 8)
51 #define CVMX_IPD_PORT_QOS_X_CNT(offset) (CVMX_ADD_IO_SEG(0x00014F0000000888ull) + ((offset) & 511) * 8)
52 #define CVMX_IPD_PRC_HOLD_PTR_FIFO_CTL (CVMX_ADD_IO_SEG(0x00014F0000000348ull))
53 #define CVMX_IPD_PRC_PORT_PTR_FIFO_CTL (CVMX_ADD_IO_SEG(0x00014F0000000350ull))
54 #define CVMX_IPD_PTR_COUNT (CVMX_ADD_IO_SEG(0x00014F0000000320ull))
55 #define CVMX_IPD_PWP_PTR_FIFO_CTL (CVMX_ADD_IO_SEG(0x00014F0000000340ull))
56 #define CVMX_IPD_QOS0_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(0)
57 #define CVMX_IPD_QOS1_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(1)
58 #define CVMX_IPD_QOS2_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(2)
59 #define CVMX_IPD_QOS3_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(3)
60 #define CVMX_IPD_QOS4_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(4)
61 #define CVMX_IPD_QOS5_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(5)
62 #define CVMX_IPD_QOS6_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(6)
63 #define CVMX_IPD_QOS7_RED_MARKS CVMX_IPD_QOSX_RED_MARKS(7)
64 #define CVMX_IPD_QOSX_RED_MARKS(offset) (CVMX_ADD_IO_SEG(0x00014F0000000178ull) + ((offset) & 7) * 8)
65 #define CVMX_IPD_QUE0_FREE_PAGE_CNT (CVMX_ADD_IO_SEG(0x00014F0000000330ull))
66 #define CVMX_IPD_RED_PORT_ENABLE (CVMX_ADD_IO_SEG(0x00014F00000002D8ull))
67 #define CVMX_IPD_RED_PORT_ENABLE2 (CVMX_ADD_IO_SEG(0x00014F00000003A8ull))
68 #define CVMX_IPD_RED_QUE0_PARAM CVMX_IPD_RED_QUEX_PARAM(0)
69 #define CVMX_IPD_RED_QUE1_PARAM CVMX_IPD_RED_QUEX_PARAM(1)
70 #define CVMX_IPD_RED_QUE2_PARAM CVMX_IPD_RED_QUEX_PARAM(2)
71 #define CVMX_IPD_RED_QUE3_PARAM CVMX_IPD_RED_QUEX_PARAM(3)
72 #define CVMX_IPD_RED_QUE4_PARAM CVMX_IPD_RED_QUEX_PARAM(4)
73 #define CVMX_IPD_RED_QUE5_PARAM CVMX_IPD_RED_QUEX_PARAM(5)
74 #define CVMX_IPD_RED_QUE6_PARAM CVMX_IPD_RED_QUEX_PARAM(6)
75 #define CVMX_IPD_RED_QUE7_PARAM CVMX_IPD_RED_QUEX_PARAM(7)
76 #define CVMX_IPD_RED_QUEX_PARAM(offset) (CVMX_ADD_IO_SEG(0x00014F00000002E0ull) + ((offset) & 7) * 8)
77 #define CVMX_IPD_SUB_PORT_BP_PAGE_CNT (CVMX_ADD_IO_SEG(0x00014F0000000148ull))
78 #define CVMX_IPD_SUB_PORT_FCS (CVMX_ADD_IO_SEG(0x00014F0000000170ull))
79 #define CVMX_IPD_SUB_PORT_QOS_CNT (CVMX_ADD_IO_SEG(0x00014F0000000800ull))
80 #define CVMX_IPD_WQE_FPA_QUEUE (CVMX_ADD_IO_SEG(0x00014F0000000020ull))
81 #define CVMX_IPD_WQE_PTR_VALID (CVMX_ADD_IO_SEG(0x00014F0000000360ull))
82
83 union cvmx_ipd_1st_mbuff_skip {
84         uint64_t u64;
85         struct cvmx_ipd_1st_mbuff_skip_s {
86                 uint64_t reserved_6_63:58;
87                 uint64_t skip_sz:6;
88         } s;
89         struct cvmx_ipd_1st_mbuff_skip_s cn30xx;
90         struct cvmx_ipd_1st_mbuff_skip_s cn31xx;
91         struct cvmx_ipd_1st_mbuff_skip_s cn38xx;
92         struct cvmx_ipd_1st_mbuff_skip_s cn38xxp2;
93         struct cvmx_ipd_1st_mbuff_skip_s cn50xx;
94         struct cvmx_ipd_1st_mbuff_skip_s cn52xx;
95         struct cvmx_ipd_1st_mbuff_skip_s cn52xxp1;
96         struct cvmx_ipd_1st_mbuff_skip_s cn56xx;
97         struct cvmx_ipd_1st_mbuff_skip_s cn56xxp1;
98         struct cvmx_ipd_1st_mbuff_skip_s cn58xx;
99         struct cvmx_ipd_1st_mbuff_skip_s cn58xxp1;
100         struct cvmx_ipd_1st_mbuff_skip_s cn63xx;
101         struct cvmx_ipd_1st_mbuff_skip_s cn63xxp1;
102 };
103
104 union cvmx_ipd_1st_next_ptr_back {
105         uint64_t u64;
106         struct cvmx_ipd_1st_next_ptr_back_s {
107                 uint64_t reserved_4_63:60;
108                 uint64_t back:4;
109         } s;
110         struct cvmx_ipd_1st_next_ptr_back_s cn30xx;
111         struct cvmx_ipd_1st_next_ptr_back_s cn31xx;
112         struct cvmx_ipd_1st_next_ptr_back_s cn38xx;
113         struct cvmx_ipd_1st_next_ptr_back_s cn38xxp2;
114         struct cvmx_ipd_1st_next_ptr_back_s cn50xx;
115         struct cvmx_ipd_1st_next_ptr_back_s cn52xx;
116         struct cvmx_ipd_1st_next_ptr_back_s cn52xxp1;
117         struct cvmx_ipd_1st_next_ptr_back_s cn56xx;
118         struct cvmx_ipd_1st_next_ptr_back_s cn56xxp1;
119         struct cvmx_ipd_1st_next_ptr_back_s cn58xx;
120         struct cvmx_ipd_1st_next_ptr_back_s cn58xxp1;
121         struct cvmx_ipd_1st_next_ptr_back_s cn63xx;
122         struct cvmx_ipd_1st_next_ptr_back_s cn63xxp1;
123 };
124
125 union cvmx_ipd_2nd_next_ptr_back {
126         uint64_t u64;
127         struct cvmx_ipd_2nd_next_ptr_back_s {
128                 uint64_t reserved_4_63:60;
129                 uint64_t back:4;
130         } s;
131         struct cvmx_ipd_2nd_next_ptr_back_s cn30xx;
132         struct cvmx_ipd_2nd_next_ptr_back_s cn31xx;
133         struct cvmx_ipd_2nd_next_ptr_back_s cn38xx;
134         struct cvmx_ipd_2nd_next_ptr_back_s cn38xxp2;
135         struct cvmx_ipd_2nd_next_ptr_back_s cn50xx;
136         struct cvmx_ipd_2nd_next_ptr_back_s cn52xx;
137         struct cvmx_ipd_2nd_next_ptr_back_s cn52xxp1;
138         struct cvmx_ipd_2nd_next_ptr_back_s cn56xx;
139         struct cvmx_ipd_2nd_next_ptr_back_s cn56xxp1;
140         struct cvmx_ipd_2nd_next_ptr_back_s cn58xx;
141         struct cvmx_ipd_2nd_next_ptr_back_s cn58xxp1;
142         struct cvmx_ipd_2nd_next_ptr_back_s cn63xx;
143         struct cvmx_ipd_2nd_next_ptr_back_s cn63xxp1;
144 };
145
146 union cvmx_ipd_bist_status {
147         uint64_t u64;
148         struct cvmx_ipd_bist_status_s {
149                 uint64_t reserved_18_63:46;
150                 uint64_t csr_mem:1;
151                 uint64_t csr_ncmd:1;
152                 uint64_t pwq_wqed:1;
153                 uint64_t pwq_wp1:1;
154                 uint64_t pwq_pow:1;
155                 uint64_t ipq_pbe1:1;
156                 uint64_t ipq_pbe0:1;
157                 uint64_t pbm3:1;
158                 uint64_t pbm2:1;
159                 uint64_t pbm1:1;
160                 uint64_t pbm0:1;
161                 uint64_t pbm_word:1;
162                 uint64_t pwq1:1;
163                 uint64_t pwq0:1;
164                 uint64_t prc_off:1;
165                 uint64_t ipd_old:1;
166                 uint64_t ipd_new:1;
167                 uint64_t pwp:1;
168         } s;
169         struct cvmx_ipd_bist_status_cn30xx {
170                 uint64_t reserved_16_63:48;
171                 uint64_t pwq_wqed:1;
172                 uint64_t pwq_wp1:1;
173                 uint64_t pwq_pow:1;
174                 uint64_t ipq_pbe1:1;
175                 uint64_t ipq_pbe0:1;
176                 uint64_t pbm3:1;
177                 uint64_t pbm2:1;
178                 uint64_t pbm1:1;
179                 uint64_t pbm0:1;
180                 uint64_t pbm_word:1;
181                 uint64_t pwq1:1;
182                 uint64_t pwq0:1;
183                 uint64_t prc_off:1;
184                 uint64_t ipd_old:1;
185                 uint64_t ipd_new:1;
186                 uint64_t pwp:1;
187         } cn30xx;
188         struct cvmx_ipd_bist_status_cn30xx cn31xx;
189         struct cvmx_ipd_bist_status_cn30xx cn38xx;
190         struct cvmx_ipd_bist_status_cn30xx cn38xxp2;
191         struct cvmx_ipd_bist_status_cn30xx cn50xx;
192         struct cvmx_ipd_bist_status_s cn52xx;
193         struct cvmx_ipd_bist_status_s cn52xxp1;
194         struct cvmx_ipd_bist_status_s cn56xx;
195         struct cvmx_ipd_bist_status_s cn56xxp1;
196         struct cvmx_ipd_bist_status_cn30xx cn58xx;
197         struct cvmx_ipd_bist_status_cn30xx cn58xxp1;
198         struct cvmx_ipd_bist_status_s cn63xx;
199         struct cvmx_ipd_bist_status_s cn63xxp1;
200 };
201
202 union cvmx_ipd_bp_prt_red_end {
203         uint64_t u64;
204         struct cvmx_ipd_bp_prt_red_end_s {
205                 uint64_t reserved_44_63:20;
206                 uint64_t prt_enb:44;
207         } s;
208         struct cvmx_ipd_bp_prt_red_end_cn30xx {
209                 uint64_t reserved_36_63:28;
210                 uint64_t prt_enb:36;
211         } cn30xx;
212         struct cvmx_ipd_bp_prt_red_end_cn30xx cn31xx;
213         struct cvmx_ipd_bp_prt_red_end_cn30xx cn38xx;
214         struct cvmx_ipd_bp_prt_red_end_cn30xx cn38xxp2;
215         struct cvmx_ipd_bp_prt_red_end_cn30xx cn50xx;
216         struct cvmx_ipd_bp_prt_red_end_cn52xx {
217                 uint64_t reserved_40_63:24;
218                 uint64_t prt_enb:40;
219         } cn52xx;
220         struct cvmx_ipd_bp_prt_red_end_cn52xx cn52xxp1;
221         struct cvmx_ipd_bp_prt_red_end_cn52xx cn56xx;
222         struct cvmx_ipd_bp_prt_red_end_cn52xx cn56xxp1;
223         struct cvmx_ipd_bp_prt_red_end_cn30xx cn58xx;
224         struct cvmx_ipd_bp_prt_red_end_cn30xx cn58xxp1;
225         struct cvmx_ipd_bp_prt_red_end_s cn63xx;
226         struct cvmx_ipd_bp_prt_red_end_s cn63xxp1;
227 };
228
229 union cvmx_ipd_clk_count {
230         uint64_t u64;
231         struct cvmx_ipd_clk_count_s {
232                 uint64_t clk_cnt:64;
233         } s;
234         struct cvmx_ipd_clk_count_s cn30xx;
235         struct cvmx_ipd_clk_count_s cn31xx;
236         struct cvmx_ipd_clk_count_s cn38xx;
237         struct cvmx_ipd_clk_count_s cn38xxp2;
238         struct cvmx_ipd_clk_count_s cn50xx;
239         struct cvmx_ipd_clk_count_s cn52xx;
240         struct cvmx_ipd_clk_count_s cn52xxp1;
241         struct cvmx_ipd_clk_count_s cn56xx;
242         struct cvmx_ipd_clk_count_s cn56xxp1;
243         struct cvmx_ipd_clk_count_s cn58xx;
244         struct cvmx_ipd_clk_count_s cn58xxp1;
245         struct cvmx_ipd_clk_count_s cn63xx;
246         struct cvmx_ipd_clk_count_s cn63xxp1;
247 };
248
249 union cvmx_ipd_ctl_status {
250         uint64_t u64;
251         struct cvmx_ipd_ctl_status_s {
252                 uint64_t reserved_18_63:46;
253                 uint64_t use_sop:1;
254                 uint64_t rst_done:1;
255                 uint64_t clken:1;
256                 uint64_t no_wptr:1;
257                 uint64_t pq_apkt:1;
258                 uint64_t pq_nabuf:1;
259                 uint64_t ipd_full:1;
260                 uint64_t pkt_off:1;
261                 uint64_t len_m8:1;
262                 uint64_t reset:1;
263                 uint64_t addpkt:1;
264                 uint64_t naddbuf:1;
265                 uint64_t pkt_lend:1;
266                 uint64_t wqe_lend:1;
267                 uint64_t pbp_en:1;
268                 uint64_t opc_mode:2;
269                 uint64_t ipd_en:1;
270         } s;
271         struct cvmx_ipd_ctl_status_cn30xx {
272                 uint64_t reserved_10_63:54;
273                 uint64_t len_m8:1;
274                 uint64_t reset:1;
275                 uint64_t addpkt:1;
276                 uint64_t naddbuf:1;
277                 uint64_t pkt_lend:1;
278                 uint64_t wqe_lend:1;
279                 uint64_t pbp_en:1;
280                 uint64_t opc_mode:2;
281                 uint64_t ipd_en:1;
282         } cn30xx;
283         struct cvmx_ipd_ctl_status_cn30xx cn31xx;
284         struct cvmx_ipd_ctl_status_cn30xx cn38xx;
285         struct cvmx_ipd_ctl_status_cn38xxp2 {
286                 uint64_t reserved_9_63:55;
287                 uint64_t reset:1;
288                 uint64_t addpkt:1;
289                 uint64_t naddbuf:1;
290                 uint64_t pkt_lend:1;
291                 uint64_t wqe_lend:1;
292                 uint64_t pbp_en:1;
293                 uint64_t opc_mode:2;
294                 uint64_t ipd_en:1;
295         } cn38xxp2;
296         struct cvmx_ipd_ctl_status_cn50xx {
297                 uint64_t reserved_15_63:49;
298                 uint64_t no_wptr:1;
299                 uint64_t pq_apkt:1;
300                 uint64_t pq_nabuf:1;
301                 uint64_t ipd_full:1;
302                 uint64_t pkt_off:1;
303                 uint64_t len_m8:1;
304                 uint64_t reset:1;
305                 uint64_t addpkt:1;
306                 uint64_t naddbuf:1;
307                 uint64_t pkt_lend:1;
308                 uint64_t wqe_lend:1;
309                 uint64_t pbp_en:1;
310                 uint64_t opc_mode:2;
311                 uint64_t ipd_en:1;
312         } cn50xx;
313         struct cvmx_ipd_ctl_status_cn50xx cn52xx;
314         struct cvmx_ipd_ctl_status_cn50xx cn52xxp1;
315         struct cvmx_ipd_ctl_status_cn50xx cn56xx;
316         struct cvmx_ipd_ctl_status_cn50xx cn56xxp1;
317         struct cvmx_ipd_ctl_status_cn58xx {
318                 uint64_t reserved_12_63:52;
319                 uint64_t ipd_full:1;
320                 uint64_t pkt_off:1;
321                 uint64_t len_m8:1;
322                 uint64_t reset:1;
323                 uint64_t addpkt:1;
324                 uint64_t naddbuf:1;
325                 uint64_t pkt_lend:1;
326                 uint64_t wqe_lend:1;
327                 uint64_t pbp_en:1;
328                 uint64_t opc_mode:2;
329                 uint64_t ipd_en:1;
330         } cn58xx;
331         struct cvmx_ipd_ctl_status_cn58xx cn58xxp1;
332         struct cvmx_ipd_ctl_status_s cn63xx;
333         struct cvmx_ipd_ctl_status_cn63xxp1 {
334                 uint64_t reserved_16_63:48;
335                 uint64_t clken:1;
336                 uint64_t no_wptr:1;
337                 uint64_t pq_apkt:1;
338                 uint64_t pq_nabuf:1;
339                 uint64_t ipd_full:1;
340                 uint64_t pkt_off:1;
341                 uint64_t len_m8:1;
342                 uint64_t reset:1;
343                 uint64_t addpkt:1;
344                 uint64_t naddbuf:1;
345                 uint64_t pkt_lend:1;
346                 uint64_t wqe_lend:1;
347                 uint64_t pbp_en:1;
348                 uint64_t opc_mode:2;
349                 uint64_t ipd_en:1;
350         } cn63xxp1;
351 };
352
353 union cvmx_ipd_int_enb {
354         uint64_t u64;
355         struct cvmx_ipd_int_enb_s {
356                 uint64_t reserved_12_63:52;
357                 uint64_t pq_sub:1;
358                 uint64_t pq_add:1;
359                 uint64_t bc_ovr:1;
360                 uint64_t d_coll:1;
361                 uint64_t c_coll:1;
362                 uint64_t cc_ovr:1;
363                 uint64_t dc_ovr:1;
364                 uint64_t bp_sub:1;
365                 uint64_t prc_par3:1;
366                 uint64_t prc_par2:1;
367                 uint64_t prc_par1:1;
368                 uint64_t prc_par0:1;
369         } s;
370         struct cvmx_ipd_int_enb_cn30xx {
371                 uint64_t reserved_5_63:59;
372                 uint64_t bp_sub:1;
373                 uint64_t prc_par3:1;
374                 uint64_t prc_par2:1;
375                 uint64_t prc_par1:1;
376                 uint64_t prc_par0:1;
377         } cn30xx;
378         struct cvmx_ipd_int_enb_cn30xx cn31xx;
379         struct cvmx_ipd_int_enb_cn38xx {
380                 uint64_t reserved_10_63:54;
381                 uint64_t bc_ovr:1;
382                 uint64_t d_coll:1;
383                 uint64_t c_coll:1;
384                 uint64_t cc_ovr:1;
385                 uint64_t dc_ovr:1;
386                 uint64_t bp_sub:1;
387                 uint64_t prc_par3:1;
388                 uint64_t prc_par2:1;
389                 uint64_t prc_par1:1;
390                 uint64_t prc_par0:1;
391         } cn38xx;
392         struct cvmx_ipd_int_enb_cn30xx cn38xxp2;
393         struct cvmx_ipd_int_enb_cn38xx cn50xx;
394         struct cvmx_ipd_int_enb_s cn52xx;
395         struct cvmx_ipd_int_enb_s cn52xxp1;
396         struct cvmx_ipd_int_enb_s cn56xx;
397         struct cvmx_ipd_int_enb_s cn56xxp1;
398         struct cvmx_ipd_int_enb_cn38xx cn58xx;
399         struct cvmx_ipd_int_enb_cn38xx cn58xxp1;
400         struct cvmx_ipd_int_enb_s cn63xx;
401         struct cvmx_ipd_int_enb_s cn63xxp1;
402 };
403
404 union cvmx_ipd_int_sum {
405         uint64_t u64;
406         struct cvmx_ipd_int_sum_s {
407                 uint64_t reserved_12_63:52;
408                 uint64_t pq_sub:1;
409                 uint64_t pq_add:1;
410                 uint64_t bc_ovr:1;
411                 uint64_t d_coll:1;
412                 uint64_t c_coll:1;
413                 uint64_t cc_ovr:1;
414                 uint64_t dc_ovr:1;
415                 uint64_t bp_sub:1;
416                 uint64_t prc_par3:1;
417                 uint64_t prc_par2:1;
418                 uint64_t prc_par1:1;
419                 uint64_t prc_par0:1;
420         } s;
421         struct cvmx_ipd_int_sum_cn30xx {
422                 uint64_t reserved_5_63:59;
423                 uint64_t bp_sub:1;
424                 uint64_t prc_par3:1;
425                 uint64_t prc_par2:1;
426                 uint64_t prc_par1:1;
427                 uint64_t prc_par0:1;
428         } cn30xx;
429         struct cvmx_ipd_int_sum_cn30xx cn31xx;
430         struct cvmx_ipd_int_sum_cn38xx {
431                 uint64_t reserved_10_63:54;
432                 uint64_t bc_ovr:1;
433                 uint64_t d_coll:1;
434                 uint64_t c_coll:1;
435                 uint64_t cc_ovr:1;
436                 uint64_t dc_ovr:1;
437                 uint64_t bp_sub:1;
438                 uint64_t prc_par3:1;
439                 uint64_t prc_par2:1;
440                 uint64_t prc_par1:1;
441                 uint64_t prc_par0:1;
442         } cn38xx;
443         struct cvmx_ipd_int_sum_cn30xx cn38xxp2;
444         struct cvmx_ipd_int_sum_cn38xx cn50xx;
445         struct cvmx_ipd_int_sum_s cn52xx;
446         struct cvmx_ipd_int_sum_s cn52xxp1;
447         struct cvmx_ipd_int_sum_s cn56xx;
448         struct cvmx_ipd_int_sum_s cn56xxp1;
449         struct cvmx_ipd_int_sum_cn38xx cn58xx;
450         struct cvmx_ipd_int_sum_cn38xx cn58xxp1;
451         struct cvmx_ipd_int_sum_s cn63xx;
452         struct cvmx_ipd_int_sum_s cn63xxp1;
453 };
454
455 union cvmx_ipd_not_1st_mbuff_skip {
456         uint64_t u64;
457         struct cvmx_ipd_not_1st_mbuff_skip_s {
458                 uint64_t reserved_6_63:58;
459                 uint64_t skip_sz:6;
460         } s;
461         struct cvmx_ipd_not_1st_mbuff_skip_s cn30xx;
462         struct cvmx_ipd_not_1st_mbuff_skip_s cn31xx;
463         struct cvmx_ipd_not_1st_mbuff_skip_s cn38xx;
464         struct cvmx_ipd_not_1st_mbuff_skip_s cn38xxp2;
465         struct cvmx_ipd_not_1st_mbuff_skip_s cn50xx;
466         struct cvmx_ipd_not_1st_mbuff_skip_s cn52xx;
467         struct cvmx_ipd_not_1st_mbuff_skip_s cn52xxp1;
468         struct cvmx_ipd_not_1st_mbuff_skip_s cn56xx;
469         struct cvmx_ipd_not_1st_mbuff_skip_s cn56xxp1;
470         struct cvmx_ipd_not_1st_mbuff_skip_s cn58xx;
471         struct cvmx_ipd_not_1st_mbuff_skip_s cn58xxp1;
472         struct cvmx_ipd_not_1st_mbuff_skip_s cn63xx;
473         struct cvmx_ipd_not_1st_mbuff_skip_s cn63xxp1;
474 };
475
476 union cvmx_ipd_packet_mbuff_size {
477         uint64_t u64;
478         struct cvmx_ipd_packet_mbuff_size_s {
479                 uint64_t reserved_12_63:52;
480                 uint64_t mb_size:12;
481         } s;
482         struct cvmx_ipd_packet_mbuff_size_s cn30xx;
483         struct cvmx_ipd_packet_mbuff_size_s cn31xx;
484         struct cvmx_ipd_packet_mbuff_size_s cn38xx;
485         struct cvmx_ipd_packet_mbuff_size_s cn38xxp2;
486         struct cvmx_ipd_packet_mbuff_size_s cn50xx;
487         struct cvmx_ipd_packet_mbuff_size_s cn52xx;
488         struct cvmx_ipd_packet_mbuff_size_s cn52xxp1;
489         struct cvmx_ipd_packet_mbuff_size_s cn56xx;
490         struct cvmx_ipd_packet_mbuff_size_s cn56xxp1;
491         struct cvmx_ipd_packet_mbuff_size_s cn58xx;
492         struct cvmx_ipd_packet_mbuff_size_s cn58xxp1;
493         struct cvmx_ipd_packet_mbuff_size_s cn63xx;
494         struct cvmx_ipd_packet_mbuff_size_s cn63xxp1;
495 };
496
497 union cvmx_ipd_pkt_ptr_valid {
498         uint64_t u64;
499         struct cvmx_ipd_pkt_ptr_valid_s {
500                 uint64_t reserved_29_63:35;
501                 uint64_t ptr:29;
502         } s;
503         struct cvmx_ipd_pkt_ptr_valid_s cn30xx;
504         struct cvmx_ipd_pkt_ptr_valid_s cn31xx;
505         struct cvmx_ipd_pkt_ptr_valid_s cn38xx;
506         struct cvmx_ipd_pkt_ptr_valid_s cn50xx;
507         struct cvmx_ipd_pkt_ptr_valid_s cn52xx;
508         struct cvmx_ipd_pkt_ptr_valid_s cn52xxp1;
509         struct cvmx_ipd_pkt_ptr_valid_s cn56xx;
510         struct cvmx_ipd_pkt_ptr_valid_s cn56xxp1;
511         struct cvmx_ipd_pkt_ptr_valid_s cn58xx;
512         struct cvmx_ipd_pkt_ptr_valid_s cn58xxp1;
513         struct cvmx_ipd_pkt_ptr_valid_s cn63xx;
514         struct cvmx_ipd_pkt_ptr_valid_s cn63xxp1;
515 };
516
517 union cvmx_ipd_portx_bp_page_cnt {
518         uint64_t u64;
519         struct cvmx_ipd_portx_bp_page_cnt_s {
520                 uint64_t reserved_18_63:46;
521                 uint64_t bp_enb:1;
522                 uint64_t page_cnt:17;
523         } s;
524         struct cvmx_ipd_portx_bp_page_cnt_s cn30xx;
525         struct cvmx_ipd_portx_bp_page_cnt_s cn31xx;
526         struct cvmx_ipd_portx_bp_page_cnt_s cn38xx;
527         struct cvmx_ipd_portx_bp_page_cnt_s cn38xxp2;
528         struct cvmx_ipd_portx_bp_page_cnt_s cn50xx;
529         struct cvmx_ipd_portx_bp_page_cnt_s cn52xx;
530         struct cvmx_ipd_portx_bp_page_cnt_s cn52xxp1;
531         struct cvmx_ipd_portx_bp_page_cnt_s cn56xx;
532         struct cvmx_ipd_portx_bp_page_cnt_s cn56xxp1;
533         struct cvmx_ipd_portx_bp_page_cnt_s cn58xx;
534         struct cvmx_ipd_portx_bp_page_cnt_s cn58xxp1;
535         struct cvmx_ipd_portx_bp_page_cnt_s cn63xx;
536         struct cvmx_ipd_portx_bp_page_cnt_s cn63xxp1;
537 };
538
539 union cvmx_ipd_portx_bp_page_cnt2 {
540         uint64_t u64;
541         struct cvmx_ipd_portx_bp_page_cnt2_s {
542                 uint64_t reserved_18_63:46;
543                 uint64_t bp_enb:1;
544                 uint64_t page_cnt:17;
545         } s;
546         struct cvmx_ipd_portx_bp_page_cnt2_s cn52xx;
547         struct cvmx_ipd_portx_bp_page_cnt2_s cn52xxp1;
548         struct cvmx_ipd_portx_bp_page_cnt2_s cn56xx;
549         struct cvmx_ipd_portx_bp_page_cnt2_s cn56xxp1;
550         struct cvmx_ipd_portx_bp_page_cnt2_s cn63xx;
551         struct cvmx_ipd_portx_bp_page_cnt2_s cn63xxp1;
552 };
553
554 union cvmx_ipd_portx_bp_page_cnt3 {
555         uint64_t u64;
556         struct cvmx_ipd_portx_bp_page_cnt3_s {
557                 uint64_t reserved_18_63:46;
558                 uint64_t bp_enb:1;
559                 uint64_t page_cnt:17;
560         } s;
561         struct cvmx_ipd_portx_bp_page_cnt3_s cn63xx;
562         struct cvmx_ipd_portx_bp_page_cnt3_s cn63xxp1;
563 };
564
565 union cvmx_ipd_port_bp_counters2_pairx {
566         uint64_t u64;
567         struct cvmx_ipd_port_bp_counters2_pairx_s {
568                 uint64_t reserved_25_63:39;
569                 uint64_t cnt_val:25;
570         } s;
571         struct cvmx_ipd_port_bp_counters2_pairx_s cn52xx;
572         struct cvmx_ipd_port_bp_counters2_pairx_s cn52xxp1;
573         struct cvmx_ipd_port_bp_counters2_pairx_s cn56xx;
574         struct cvmx_ipd_port_bp_counters2_pairx_s cn56xxp1;
575         struct cvmx_ipd_port_bp_counters2_pairx_s cn63xx;
576         struct cvmx_ipd_port_bp_counters2_pairx_s cn63xxp1;
577 };
578
579 union cvmx_ipd_port_bp_counters3_pairx {
580         uint64_t u64;
581         struct cvmx_ipd_port_bp_counters3_pairx_s {
582                 uint64_t reserved_25_63:39;
583                 uint64_t cnt_val:25;
584         } s;
585         struct cvmx_ipd_port_bp_counters3_pairx_s cn63xx;
586         struct cvmx_ipd_port_bp_counters3_pairx_s cn63xxp1;
587 };
588
589 union cvmx_ipd_port_bp_counters_pairx {
590         uint64_t u64;
591         struct cvmx_ipd_port_bp_counters_pairx_s {
592                 uint64_t reserved_25_63:39;
593                 uint64_t cnt_val:25;
594         } s;
595         struct cvmx_ipd_port_bp_counters_pairx_s cn30xx;
596         struct cvmx_ipd_port_bp_counters_pairx_s cn31xx;
597         struct cvmx_ipd_port_bp_counters_pairx_s cn38xx;
598         struct cvmx_ipd_port_bp_counters_pairx_s cn38xxp2;
599         struct cvmx_ipd_port_bp_counters_pairx_s cn50xx;
600         struct cvmx_ipd_port_bp_counters_pairx_s cn52xx;
601         struct cvmx_ipd_port_bp_counters_pairx_s cn52xxp1;
602         struct cvmx_ipd_port_bp_counters_pairx_s cn56xx;
603         struct cvmx_ipd_port_bp_counters_pairx_s cn56xxp1;
604         struct cvmx_ipd_port_bp_counters_pairx_s cn58xx;
605         struct cvmx_ipd_port_bp_counters_pairx_s cn58xxp1;
606         struct cvmx_ipd_port_bp_counters_pairx_s cn63xx;
607         struct cvmx_ipd_port_bp_counters_pairx_s cn63xxp1;
608 };
609
610 union cvmx_ipd_port_qos_x_cnt {
611         uint64_t u64;
612         struct cvmx_ipd_port_qos_x_cnt_s {
613                 uint64_t wmark:32;
614                 uint64_t cnt:32;
615         } s;
616         struct cvmx_ipd_port_qos_x_cnt_s cn52xx;
617         struct cvmx_ipd_port_qos_x_cnt_s cn52xxp1;
618         struct cvmx_ipd_port_qos_x_cnt_s cn56xx;
619         struct cvmx_ipd_port_qos_x_cnt_s cn56xxp1;
620         struct cvmx_ipd_port_qos_x_cnt_s cn63xx;
621         struct cvmx_ipd_port_qos_x_cnt_s cn63xxp1;
622 };
623
624 union cvmx_ipd_port_qos_intx {
625         uint64_t u64;
626         struct cvmx_ipd_port_qos_intx_s {
627                 uint64_t intr:64;
628         } s;
629         struct cvmx_ipd_port_qos_intx_s cn52xx;
630         struct cvmx_ipd_port_qos_intx_s cn52xxp1;
631         struct cvmx_ipd_port_qos_intx_s cn56xx;
632         struct cvmx_ipd_port_qos_intx_s cn56xxp1;
633         struct cvmx_ipd_port_qos_intx_s cn63xx;
634         struct cvmx_ipd_port_qos_intx_s cn63xxp1;
635 };
636
637 union cvmx_ipd_port_qos_int_enbx {
638         uint64_t u64;
639         struct cvmx_ipd_port_qos_int_enbx_s {
640                 uint64_t enb:64;
641         } s;
642         struct cvmx_ipd_port_qos_int_enbx_s cn52xx;
643         struct cvmx_ipd_port_qos_int_enbx_s cn52xxp1;
644         struct cvmx_ipd_port_qos_int_enbx_s cn56xx;
645         struct cvmx_ipd_port_qos_int_enbx_s cn56xxp1;
646         struct cvmx_ipd_port_qos_int_enbx_s cn63xx;
647         struct cvmx_ipd_port_qos_int_enbx_s cn63xxp1;
648 };
649
650 union cvmx_ipd_prc_hold_ptr_fifo_ctl {
651         uint64_t u64;
652         struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s {
653                 uint64_t reserved_39_63:25;
654                 uint64_t max_pkt:3;
655                 uint64_t praddr:3;
656                 uint64_t ptr:29;
657                 uint64_t cena:1;
658                 uint64_t raddr:3;
659         } s;
660         struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn30xx;
661         struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn31xx;
662         struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn38xx;
663         struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn50xx;
664         struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn52xx;
665         struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn52xxp1;
666         struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn56xx;
667         struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn56xxp1;
668         struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn58xx;
669         struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn58xxp1;
670         struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn63xx;
671         struct cvmx_ipd_prc_hold_ptr_fifo_ctl_s cn63xxp1;
672 };
673
674 union cvmx_ipd_prc_port_ptr_fifo_ctl {
675         uint64_t u64;
676         struct cvmx_ipd_prc_port_ptr_fifo_ctl_s {
677                 uint64_t reserved_44_63:20;
678                 uint64_t max_pkt:7;
679                 uint64_t ptr:29;
680                 uint64_t cena:1;
681                 uint64_t raddr:7;
682         } s;
683         struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn30xx;
684         struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn31xx;
685         struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn38xx;
686         struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn50xx;
687         struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn52xx;
688         struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn52xxp1;
689         struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn56xx;
690         struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn56xxp1;
691         struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn58xx;
692         struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn58xxp1;
693         struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn63xx;
694         struct cvmx_ipd_prc_port_ptr_fifo_ctl_s cn63xxp1;
695 };
696
697 union cvmx_ipd_ptr_count {
698         uint64_t u64;
699         struct cvmx_ipd_ptr_count_s {
700                 uint64_t reserved_19_63:45;
701                 uint64_t pktv_cnt:1;
702                 uint64_t wqev_cnt:1;
703                 uint64_t pfif_cnt:3;
704                 uint64_t pkt_pcnt:7;
705                 uint64_t wqe_pcnt:7;
706         } s;
707         struct cvmx_ipd_ptr_count_s cn30xx;
708         struct cvmx_ipd_ptr_count_s cn31xx;
709         struct cvmx_ipd_ptr_count_s cn38xx;
710         struct cvmx_ipd_ptr_count_s cn38xxp2;
711         struct cvmx_ipd_ptr_count_s cn50xx;
712         struct cvmx_ipd_ptr_count_s cn52xx;
713         struct cvmx_ipd_ptr_count_s cn52xxp1;
714         struct cvmx_ipd_ptr_count_s cn56xx;
715         struct cvmx_ipd_ptr_count_s cn56xxp1;
716         struct cvmx_ipd_ptr_count_s cn58xx;
717         struct cvmx_ipd_ptr_count_s cn58xxp1;
718         struct cvmx_ipd_ptr_count_s cn63xx;
719         struct cvmx_ipd_ptr_count_s cn63xxp1;
720 };
721
722 union cvmx_ipd_pwp_ptr_fifo_ctl {
723         uint64_t u64;
724         struct cvmx_ipd_pwp_ptr_fifo_ctl_s {
725                 uint64_t reserved_61_63:3;
726                 uint64_t max_cnts:7;
727                 uint64_t wraddr:8;
728                 uint64_t praddr:8;
729                 uint64_t ptr:29;
730                 uint64_t cena:1;
731                 uint64_t raddr:8;
732         } s;
733         struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn30xx;
734         struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn31xx;
735         struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn38xx;
736         struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn50xx;
737         struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn52xx;
738         struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn52xxp1;
739         struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn56xx;
740         struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn56xxp1;
741         struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn58xx;
742         struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn58xxp1;
743         struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn63xx;
744         struct cvmx_ipd_pwp_ptr_fifo_ctl_s cn63xxp1;
745 };
746
747 union cvmx_ipd_qosx_red_marks {
748         uint64_t u64;
749         struct cvmx_ipd_qosx_red_marks_s {
750                 uint64_t drop:32;
751                 uint64_t pass:32;
752         } s;
753         struct cvmx_ipd_qosx_red_marks_s cn30xx;
754         struct cvmx_ipd_qosx_red_marks_s cn31xx;
755         struct cvmx_ipd_qosx_red_marks_s cn38xx;
756         struct cvmx_ipd_qosx_red_marks_s cn38xxp2;
757         struct cvmx_ipd_qosx_red_marks_s cn50xx;
758         struct cvmx_ipd_qosx_red_marks_s cn52xx;
759         struct cvmx_ipd_qosx_red_marks_s cn52xxp1;
760         struct cvmx_ipd_qosx_red_marks_s cn56xx;
761         struct cvmx_ipd_qosx_red_marks_s cn56xxp1;
762         struct cvmx_ipd_qosx_red_marks_s cn58xx;
763         struct cvmx_ipd_qosx_red_marks_s cn58xxp1;
764         struct cvmx_ipd_qosx_red_marks_s cn63xx;
765         struct cvmx_ipd_qosx_red_marks_s cn63xxp1;
766 };
767
768 union cvmx_ipd_que0_free_page_cnt {
769         uint64_t u64;
770         struct cvmx_ipd_que0_free_page_cnt_s {
771                 uint64_t reserved_32_63:32;
772                 uint64_t q0_pcnt:32;
773         } s;
774         struct cvmx_ipd_que0_free_page_cnt_s cn30xx;
775         struct cvmx_ipd_que0_free_page_cnt_s cn31xx;
776         struct cvmx_ipd_que0_free_page_cnt_s cn38xx;
777         struct cvmx_ipd_que0_free_page_cnt_s cn38xxp2;
778         struct cvmx_ipd_que0_free_page_cnt_s cn50xx;
779         struct cvmx_ipd_que0_free_page_cnt_s cn52xx;
780         struct cvmx_ipd_que0_free_page_cnt_s cn52xxp1;
781         struct cvmx_ipd_que0_free_page_cnt_s cn56xx;
782         struct cvmx_ipd_que0_free_page_cnt_s cn56xxp1;
783         struct cvmx_ipd_que0_free_page_cnt_s cn58xx;
784         struct cvmx_ipd_que0_free_page_cnt_s cn58xxp1;
785         struct cvmx_ipd_que0_free_page_cnt_s cn63xx;
786         struct cvmx_ipd_que0_free_page_cnt_s cn63xxp1;
787 };
788
789 union cvmx_ipd_red_port_enable {
790         uint64_t u64;
791         struct cvmx_ipd_red_port_enable_s {
792                 uint64_t prb_dly:14;
793                 uint64_t avg_dly:14;
794                 uint64_t prt_enb:36;
795         } s;
796         struct cvmx_ipd_red_port_enable_s cn30xx;
797         struct cvmx_ipd_red_port_enable_s cn31xx;
798         struct cvmx_ipd_red_port_enable_s cn38xx;
799         struct cvmx_ipd_red_port_enable_s cn38xxp2;
800         struct cvmx_ipd_red_port_enable_s cn50xx;
801         struct cvmx_ipd_red_port_enable_s cn52xx;
802         struct cvmx_ipd_red_port_enable_s cn52xxp1;
803         struct cvmx_ipd_red_port_enable_s cn56xx;
804         struct cvmx_ipd_red_port_enable_s cn56xxp1;
805         struct cvmx_ipd_red_port_enable_s cn58xx;
806         struct cvmx_ipd_red_port_enable_s cn58xxp1;
807         struct cvmx_ipd_red_port_enable_s cn63xx;
808         struct cvmx_ipd_red_port_enable_s cn63xxp1;
809 };
810
811 union cvmx_ipd_red_port_enable2 {
812         uint64_t u64;
813         struct cvmx_ipd_red_port_enable2_s {
814                 uint64_t reserved_8_63:56;
815                 uint64_t prt_enb:8;
816         } s;
817         struct cvmx_ipd_red_port_enable2_cn52xx {
818                 uint64_t reserved_4_63:60;
819                 uint64_t prt_enb:4;
820         } cn52xx;
821         struct cvmx_ipd_red_port_enable2_cn52xx cn52xxp1;
822         struct cvmx_ipd_red_port_enable2_cn52xx cn56xx;
823         struct cvmx_ipd_red_port_enable2_cn52xx cn56xxp1;
824         struct cvmx_ipd_red_port_enable2_s cn63xx;
825         struct cvmx_ipd_red_port_enable2_s cn63xxp1;
826 };
827
828 union cvmx_ipd_red_quex_param {
829         uint64_t u64;
830         struct cvmx_ipd_red_quex_param_s {
831                 uint64_t reserved_49_63:15;
832                 uint64_t use_pcnt:1;
833                 uint64_t new_con:8;
834                 uint64_t avg_con:8;
835                 uint64_t prb_con:32;
836         } s;
837         struct cvmx_ipd_red_quex_param_s cn30xx;
838         struct cvmx_ipd_red_quex_param_s cn31xx;
839         struct cvmx_ipd_red_quex_param_s cn38xx;
840         struct cvmx_ipd_red_quex_param_s cn38xxp2;
841         struct cvmx_ipd_red_quex_param_s cn50xx;
842         struct cvmx_ipd_red_quex_param_s cn52xx;
843         struct cvmx_ipd_red_quex_param_s cn52xxp1;
844         struct cvmx_ipd_red_quex_param_s cn56xx;
845         struct cvmx_ipd_red_quex_param_s cn56xxp1;
846         struct cvmx_ipd_red_quex_param_s cn58xx;
847         struct cvmx_ipd_red_quex_param_s cn58xxp1;
848         struct cvmx_ipd_red_quex_param_s cn63xx;
849         struct cvmx_ipd_red_quex_param_s cn63xxp1;
850 };
851
852 union cvmx_ipd_sub_port_bp_page_cnt {
853         uint64_t u64;
854         struct cvmx_ipd_sub_port_bp_page_cnt_s {
855                 uint64_t reserved_31_63:33;
856                 uint64_t port:6;
857                 uint64_t page_cnt:25;
858         } s;
859         struct cvmx_ipd_sub_port_bp_page_cnt_s cn30xx;
860         struct cvmx_ipd_sub_port_bp_page_cnt_s cn31xx;
861         struct cvmx_ipd_sub_port_bp_page_cnt_s cn38xx;
862         struct cvmx_ipd_sub_port_bp_page_cnt_s cn38xxp2;
863         struct cvmx_ipd_sub_port_bp_page_cnt_s cn50xx;
864         struct cvmx_ipd_sub_port_bp_page_cnt_s cn52xx;
865         struct cvmx_ipd_sub_port_bp_page_cnt_s cn52xxp1;
866         struct cvmx_ipd_sub_port_bp_page_cnt_s cn56xx;
867         struct cvmx_ipd_sub_port_bp_page_cnt_s cn56xxp1;
868         struct cvmx_ipd_sub_port_bp_page_cnt_s cn58xx;
869         struct cvmx_ipd_sub_port_bp_page_cnt_s cn58xxp1;
870         struct cvmx_ipd_sub_port_bp_page_cnt_s cn63xx;
871         struct cvmx_ipd_sub_port_bp_page_cnt_s cn63xxp1;
872 };
873
874 union cvmx_ipd_sub_port_fcs {
875         uint64_t u64;
876         struct cvmx_ipd_sub_port_fcs_s {
877                 uint64_t reserved_40_63:24;
878                 uint64_t port_bit2:4;
879                 uint64_t reserved_32_35:4;
880                 uint64_t port_bit:32;
881         } s;
882         struct cvmx_ipd_sub_port_fcs_cn30xx {
883                 uint64_t reserved_3_63:61;
884                 uint64_t port_bit:3;
885         } cn30xx;
886         struct cvmx_ipd_sub_port_fcs_cn30xx cn31xx;
887         struct cvmx_ipd_sub_port_fcs_cn38xx {
888                 uint64_t reserved_32_63:32;
889                 uint64_t port_bit:32;
890         } cn38xx;
891         struct cvmx_ipd_sub_port_fcs_cn38xx cn38xxp2;
892         struct cvmx_ipd_sub_port_fcs_cn30xx cn50xx;
893         struct cvmx_ipd_sub_port_fcs_s cn52xx;
894         struct cvmx_ipd_sub_port_fcs_s cn52xxp1;
895         struct cvmx_ipd_sub_port_fcs_s cn56xx;
896         struct cvmx_ipd_sub_port_fcs_s cn56xxp1;
897         struct cvmx_ipd_sub_port_fcs_cn38xx cn58xx;
898         struct cvmx_ipd_sub_port_fcs_cn38xx cn58xxp1;
899         struct cvmx_ipd_sub_port_fcs_s cn63xx;
900         struct cvmx_ipd_sub_port_fcs_s cn63xxp1;
901 };
902
903 union cvmx_ipd_sub_port_qos_cnt {
904         uint64_t u64;
905         struct cvmx_ipd_sub_port_qos_cnt_s {
906                 uint64_t reserved_41_63:23;
907                 uint64_t port_qos:9;
908                 uint64_t cnt:32;
909         } s;
910         struct cvmx_ipd_sub_port_qos_cnt_s cn52xx;
911         struct cvmx_ipd_sub_port_qos_cnt_s cn52xxp1;
912         struct cvmx_ipd_sub_port_qos_cnt_s cn56xx;
913         struct cvmx_ipd_sub_port_qos_cnt_s cn56xxp1;
914         struct cvmx_ipd_sub_port_qos_cnt_s cn63xx;
915         struct cvmx_ipd_sub_port_qos_cnt_s cn63xxp1;
916 };
917
918 union cvmx_ipd_wqe_fpa_queue {
919         uint64_t u64;
920         struct cvmx_ipd_wqe_fpa_queue_s {
921                 uint64_t reserved_3_63:61;
922                 uint64_t wqe_pool:3;
923         } s;
924         struct cvmx_ipd_wqe_fpa_queue_s cn30xx;
925         struct cvmx_ipd_wqe_fpa_queue_s cn31xx;
926         struct cvmx_ipd_wqe_fpa_queue_s cn38xx;
927         struct cvmx_ipd_wqe_fpa_queue_s cn38xxp2;
928         struct cvmx_ipd_wqe_fpa_queue_s cn50xx;
929         struct cvmx_ipd_wqe_fpa_queue_s cn52xx;
930         struct cvmx_ipd_wqe_fpa_queue_s cn52xxp1;
931         struct cvmx_ipd_wqe_fpa_queue_s cn56xx;
932         struct cvmx_ipd_wqe_fpa_queue_s cn56xxp1;
933         struct cvmx_ipd_wqe_fpa_queue_s cn58xx;
934         struct cvmx_ipd_wqe_fpa_queue_s cn58xxp1;
935         struct cvmx_ipd_wqe_fpa_queue_s cn63xx;
936         struct cvmx_ipd_wqe_fpa_queue_s cn63xxp1;
937 };
938
939 union cvmx_ipd_wqe_ptr_valid {
940         uint64_t u64;
941         struct cvmx_ipd_wqe_ptr_valid_s {
942                 uint64_t reserved_29_63:35;
943                 uint64_t ptr:29;
944         } s;
945         struct cvmx_ipd_wqe_ptr_valid_s cn30xx;
946         struct cvmx_ipd_wqe_ptr_valid_s cn31xx;
947         struct cvmx_ipd_wqe_ptr_valid_s cn38xx;
948         struct cvmx_ipd_wqe_ptr_valid_s cn50xx;
949         struct cvmx_ipd_wqe_ptr_valid_s cn52xx;
950         struct cvmx_ipd_wqe_ptr_valid_s cn52xxp1;
951         struct cvmx_ipd_wqe_ptr_valid_s cn56xx;
952         struct cvmx_ipd_wqe_ptr_valid_s cn56xxp1;
953         struct cvmx_ipd_wqe_ptr_valid_s cn58xx;
954         struct cvmx_ipd_wqe_ptr_valid_s cn58xxp1;
955         struct cvmx_ipd_wqe_ptr_valid_s cn63xx;
956         struct cvmx_ipd_wqe_ptr_valid_s cn63xxp1;
957 };
958
959 #endif