Linux-libre 5.4.48-gnu
[librecmc/linux-libre.git] / arch / mips / include / asm / octeon / cvmx-pip-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-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_PIP_DEFS_H__
29 #define __CVMX_PIP_DEFS_H__
30
31 /*
32  * Enumeration representing the amount of packet processing
33  * and validation performed by the input hardware.
34  */
35 enum cvmx_pip_port_parse_mode {
36         /*
37          * Packet input doesn't perform any processing of the input
38          * packet.
39          */
40         CVMX_PIP_PORT_CFG_MODE_NONE = 0ull,
41         /*
42          * Full packet processing is performed with pointer starting
43          * at the L2 (ethernet MAC) header.
44          */
45         CVMX_PIP_PORT_CFG_MODE_SKIPL2 = 1ull,
46         /*
47          * Input packets are assumed to be IP.  Results from non IP
48          * packets is undefined. Pointers reference the beginning of
49          * the IP header.
50          */
51         CVMX_PIP_PORT_CFG_MODE_SKIPIP = 2ull
52 };
53
54 #define CVMX_PIP_ALT_SKIP_CFGX(offset) (CVMX_ADD_IO_SEG(0x00011800A0002A00ull) + ((offset) & 3) * 8)
55 #define CVMX_PIP_BCK_PRS (CVMX_ADD_IO_SEG(0x00011800A0000038ull))
56 #define CVMX_PIP_BIST_STATUS (CVMX_ADD_IO_SEG(0x00011800A0000000ull))
57 #define CVMX_PIP_BSEL_EXT_CFGX(offset) (CVMX_ADD_IO_SEG(0x00011800A0002800ull) + ((offset) & 3) * 16)
58 #define CVMX_PIP_BSEL_EXT_POSX(offset) (CVMX_ADD_IO_SEG(0x00011800A0002808ull) + ((offset) & 3) * 16)
59 #define CVMX_PIP_BSEL_TBL_ENTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0003000ull) + ((offset) & 511) * 8)
60 #define CVMX_PIP_CLKEN (CVMX_ADD_IO_SEG(0x00011800A0000040ull))
61 #define CVMX_PIP_CRC_CTLX(offset) (CVMX_ADD_IO_SEG(0x00011800A0000040ull) + ((offset) & 1) * 8)
62 #define CVMX_PIP_CRC_IVX(offset) (CVMX_ADD_IO_SEG(0x00011800A0000050ull) + ((offset) & 1) * 8)
63 #define CVMX_PIP_DEC_IPSECX(offset) (CVMX_ADD_IO_SEG(0x00011800A0000080ull) + ((offset) & 3) * 8)
64 #define CVMX_PIP_DSA_SRC_GRP (CVMX_ADD_IO_SEG(0x00011800A0000190ull))
65 #define CVMX_PIP_DSA_VID_GRP (CVMX_ADD_IO_SEG(0x00011800A0000198ull))
66 #define CVMX_PIP_FRM_LEN_CHKX(offset) (CVMX_ADD_IO_SEG(0x00011800A0000180ull) + ((offset) & 1) * 8)
67 #define CVMX_PIP_GBL_CFG (CVMX_ADD_IO_SEG(0x00011800A0000028ull))
68 #define CVMX_PIP_GBL_CTL (CVMX_ADD_IO_SEG(0x00011800A0000020ull))
69 #define CVMX_PIP_HG_PRI_QOS (CVMX_ADD_IO_SEG(0x00011800A00001A0ull))
70 #define CVMX_PIP_INT_EN (CVMX_ADD_IO_SEG(0x00011800A0000010ull))
71 #define CVMX_PIP_INT_REG (CVMX_ADD_IO_SEG(0x00011800A0000008ull))
72 #define CVMX_PIP_IP_OFFSET (CVMX_ADD_IO_SEG(0x00011800A0000060ull))
73 #define CVMX_PIP_PRI_TBLX(offset) (CVMX_ADD_IO_SEG(0x00011800A0004000ull) + ((offset) & 255) * 8)
74 #define CVMX_PIP_PRT_CFGBX(offset) (CVMX_ADD_IO_SEG(0x00011800A0008000ull) + ((offset) & 63) * 8)
75 #define CVMX_PIP_PRT_CFGX(offset) (CVMX_ADD_IO_SEG(0x00011800A0000200ull) + ((offset) & 63) * 8)
76 #define CVMX_PIP_PRT_TAGX(offset) (CVMX_ADD_IO_SEG(0x00011800A0000400ull) + ((offset) & 63) * 8)
77 #define CVMX_PIP_QOS_DIFFX(offset) (CVMX_ADD_IO_SEG(0x00011800A0000600ull) + ((offset) & 63) * 8)
78 #define CVMX_PIP_QOS_VLANX(offset) (CVMX_ADD_IO_SEG(0x00011800A00000C0ull) + ((offset) & 7) * 8)
79 #define CVMX_PIP_QOS_WATCHX(offset) (CVMX_ADD_IO_SEG(0x00011800A0000100ull) + ((offset) & 7) * 8)
80 #define CVMX_PIP_RAW_WORD (CVMX_ADD_IO_SEG(0x00011800A00000B0ull))
81 #define CVMX_PIP_SFT_RST (CVMX_ADD_IO_SEG(0x00011800A0000030ull))
82 #define CVMX_PIP_STAT0_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0000800ull) + ((offset) & 63) * 80)
83 #define CVMX_PIP_STAT0_X(offset) (CVMX_ADD_IO_SEG(0x00011800A0040000ull) + ((offset) & 63) * 128)
84 #define CVMX_PIP_STAT10_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0001480ull) + ((offset) & 63) * 16)
85 #define CVMX_PIP_STAT10_X(offset) (CVMX_ADD_IO_SEG(0x00011800A0040050ull) + ((offset) & 63) * 128)
86 #define CVMX_PIP_STAT11_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0001488ull) + ((offset) & 63) * 16)
87 #define CVMX_PIP_STAT11_X(offset) (CVMX_ADD_IO_SEG(0x00011800A0040058ull) + ((offset) & 63) * 128)
88 #define CVMX_PIP_STAT1_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0000808ull) + ((offset) & 63) * 80)
89 #define CVMX_PIP_STAT1_X(offset) (CVMX_ADD_IO_SEG(0x00011800A0040008ull) + ((offset) & 63) * 128)
90 #define CVMX_PIP_STAT2_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0000810ull) + ((offset) & 63) * 80)
91 #define CVMX_PIP_STAT2_X(offset) (CVMX_ADD_IO_SEG(0x00011800A0040010ull) + ((offset) & 63) * 128)
92 #define CVMX_PIP_STAT3_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0000818ull) + ((offset) & 63) * 80)
93 #define CVMX_PIP_STAT3_X(offset) (CVMX_ADD_IO_SEG(0x00011800A0040018ull) + ((offset) & 63) * 128)
94 #define CVMX_PIP_STAT4_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0000820ull) + ((offset) & 63) * 80)
95 #define CVMX_PIP_STAT4_X(offset) (CVMX_ADD_IO_SEG(0x00011800A0040020ull) + ((offset) & 63) * 128)
96 #define CVMX_PIP_STAT5_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0000828ull) + ((offset) & 63) * 80)
97 #define CVMX_PIP_STAT5_X(offset) (CVMX_ADD_IO_SEG(0x00011800A0040028ull) + ((offset) & 63) * 128)
98 #define CVMX_PIP_STAT6_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0000830ull) + ((offset) & 63) * 80)
99 #define CVMX_PIP_STAT6_X(offset) (CVMX_ADD_IO_SEG(0x00011800A0040030ull) + ((offset) & 63) * 128)
100 #define CVMX_PIP_STAT7_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0000838ull) + ((offset) & 63) * 80)
101 #define CVMX_PIP_STAT7_X(offset) (CVMX_ADD_IO_SEG(0x00011800A0040038ull) + ((offset) & 63) * 128)
102 #define CVMX_PIP_STAT8_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0000840ull) + ((offset) & 63) * 80)
103 #define CVMX_PIP_STAT8_X(offset) (CVMX_ADD_IO_SEG(0x00011800A0040040ull) + ((offset) & 63) * 128)
104 #define CVMX_PIP_STAT9_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0000848ull) + ((offset) & 63) * 80)
105 #define CVMX_PIP_STAT9_X(offset) (CVMX_ADD_IO_SEG(0x00011800A0040048ull) + ((offset) & 63) * 128)
106 #define CVMX_PIP_STAT_CTL (CVMX_ADD_IO_SEG(0x00011800A0000018ull))
107 #define CVMX_PIP_STAT_INB_ERRSX(offset) (CVMX_ADD_IO_SEG(0x00011800A0001A10ull) + ((offset) & 63) * 32)
108 #define CVMX_PIP_STAT_INB_ERRS_PKNDX(offset) (CVMX_ADD_IO_SEG(0x00011800A0020010ull) + ((offset) & 63) * 32)
109 #define CVMX_PIP_STAT_INB_OCTSX(offset) (CVMX_ADD_IO_SEG(0x00011800A0001A08ull) + ((offset) & 63) * 32)
110 #define CVMX_PIP_STAT_INB_OCTS_PKNDX(offset) (CVMX_ADD_IO_SEG(0x00011800A0020008ull) + ((offset) & 63) * 32)
111 #define CVMX_PIP_STAT_INB_PKTSX(offset) (CVMX_ADD_IO_SEG(0x00011800A0001A00ull) + ((offset) & 63) * 32)
112 #define CVMX_PIP_STAT_INB_PKTS_PKNDX(offset) (CVMX_ADD_IO_SEG(0x00011800A0020000ull) + ((offset) & 63) * 32)
113 #define CVMX_PIP_SUB_PKIND_FCSX(block_id) (CVMX_ADD_IO_SEG(0x00011800A0080000ull))
114 #define CVMX_PIP_TAG_INCX(offset) (CVMX_ADD_IO_SEG(0x00011800A0001800ull) + ((offset) & 63) * 8)
115 #define CVMX_PIP_TAG_MASK (CVMX_ADD_IO_SEG(0x00011800A0000070ull))
116 #define CVMX_PIP_TAG_SECRET (CVMX_ADD_IO_SEG(0x00011800A0000068ull))
117 #define CVMX_PIP_TODO_ENTRY (CVMX_ADD_IO_SEG(0x00011800A0000078ull))
118 #define CVMX_PIP_VLAN_ETYPESX(offset) (CVMX_ADD_IO_SEG(0x00011800A00001C0ull) + ((offset) & 1) * 8)
119 #define CVMX_PIP_XSTAT0_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0002000ull) + ((offset) & 63) * 80 - 80*40)
120 #define CVMX_PIP_XSTAT10_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0001700ull) + ((offset) & 63) * 16 - 16*40)
121 #define CVMX_PIP_XSTAT11_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0001708ull) + ((offset) & 63) * 16 - 16*40)
122 #define CVMX_PIP_XSTAT1_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0002008ull) + ((offset) & 63) * 80 - 80*40)
123 #define CVMX_PIP_XSTAT2_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0002010ull) + ((offset) & 63) * 80 - 80*40)
124 #define CVMX_PIP_XSTAT3_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0002018ull) + ((offset) & 63) * 80 - 80*40)
125 #define CVMX_PIP_XSTAT4_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0002020ull) + ((offset) & 63) * 80 - 80*40)
126 #define CVMX_PIP_XSTAT5_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0002028ull) + ((offset) & 63) * 80 - 80*40)
127 #define CVMX_PIP_XSTAT6_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0002030ull) + ((offset) & 63) * 80 - 80*40)
128 #define CVMX_PIP_XSTAT7_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0002038ull) + ((offset) & 63) * 80 - 80*40)
129 #define CVMX_PIP_XSTAT8_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0002040ull) + ((offset) & 63) * 80 - 80*40)
130 #define CVMX_PIP_XSTAT9_PRTX(offset) (CVMX_ADD_IO_SEG(0x00011800A0002048ull) + ((offset) & 63) * 80 - 80*40)
131
132 union cvmx_pip_alt_skip_cfgx {
133         uint64_t u64;
134         struct cvmx_pip_alt_skip_cfgx_s {
135 #ifdef __BIG_ENDIAN_BITFIELD
136                 uint64_t reserved_57_63:7;
137                 uint64_t len:1;
138                 uint64_t reserved_46_55:10;
139                 uint64_t bit1:6;
140                 uint64_t reserved_38_39:2;
141                 uint64_t bit0:6;
142                 uint64_t reserved_23_31:9;
143                 uint64_t skip3:7;
144                 uint64_t reserved_15_15:1;
145                 uint64_t skip2:7;
146                 uint64_t reserved_7_7:1;
147                 uint64_t skip1:7;
148 #else
149                 uint64_t skip1:7;
150                 uint64_t reserved_7_7:1;
151                 uint64_t skip2:7;
152                 uint64_t reserved_15_15:1;
153                 uint64_t skip3:7;
154                 uint64_t reserved_23_31:9;
155                 uint64_t bit0:6;
156                 uint64_t reserved_38_39:2;
157                 uint64_t bit1:6;
158                 uint64_t reserved_46_55:10;
159                 uint64_t len:1;
160                 uint64_t reserved_57_63:7;
161 #endif
162         } s;
163 };
164
165 union cvmx_pip_bck_prs {
166         uint64_t u64;
167         struct cvmx_pip_bck_prs_s {
168 #ifdef __BIG_ENDIAN_BITFIELD
169                 uint64_t bckprs:1;
170                 uint64_t reserved_13_62:50;
171                 uint64_t hiwater:5;
172                 uint64_t reserved_5_7:3;
173                 uint64_t lowater:5;
174 #else
175                 uint64_t lowater:5;
176                 uint64_t reserved_5_7:3;
177                 uint64_t hiwater:5;
178                 uint64_t reserved_13_62:50;
179                 uint64_t bckprs:1;
180 #endif
181         } s;
182 };
183
184 union cvmx_pip_bist_status {
185         uint64_t u64;
186         struct cvmx_pip_bist_status_s {
187 #ifdef __BIG_ENDIAN_BITFIELD
188                 uint64_t reserved_22_63:42;
189                 uint64_t bist:22;
190 #else
191                 uint64_t bist:22;
192                 uint64_t reserved_22_63:42;
193 #endif
194         } s;
195         struct cvmx_pip_bist_status_cn30xx {
196 #ifdef __BIG_ENDIAN_BITFIELD
197                 uint64_t reserved_18_63:46;
198                 uint64_t bist:18;
199 #else
200                 uint64_t bist:18;
201                 uint64_t reserved_18_63:46;
202 #endif
203         } cn30xx;
204         struct cvmx_pip_bist_status_cn50xx {
205 #ifdef __BIG_ENDIAN_BITFIELD
206                 uint64_t reserved_17_63:47;
207                 uint64_t bist:17;
208 #else
209                 uint64_t bist:17;
210                 uint64_t reserved_17_63:47;
211 #endif
212         } cn50xx;
213         struct cvmx_pip_bist_status_cn61xx {
214 #ifdef __BIG_ENDIAN_BITFIELD
215                 uint64_t reserved_20_63:44;
216                 uint64_t bist:20;
217 #else
218                 uint64_t bist:20;
219                 uint64_t reserved_20_63:44;
220 #endif
221         } cn61xx;
222 };
223
224 union cvmx_pip_bsel_ext_cfgx {
225         uint64_t u64;
226         struct cvmx_pip_bsel_ext_cfgx_s {
227 #ifdef __BIG_ENDIAN_BITFIELD
228                 uint64_t reserved_56_63:8;
229                 uint64_t upper_tag:16;
230                 uint64_t tag:8;
231                 uint64_t reserved_25_31:7;
232                 uint64_t offset:9;
233                 uint64_t reserved_7_15:9;
234                 uint64_t skip:7;
235 #else
236                 uint64_t skip:7;
237                 uint64_t reserved_7_15:9;
238                 uint64_t offset:9;
239                 uint64_t reserved_25_31:7;
240                 uint64_t tag:8;
241                 uint64_t upper_tag:16;
242                 uint64_t reserved_56_63:8;
243 #endif
244         } s;
245 };
246
247 union cvmx_pip_bsel_ext_posx {
248         uint64_t u64;
249         struct cvmx_pip_bsel_ext_posx_s {
250 #ifdef __BIG_ENDIAN_BITFIELD
251                 uint64_t pos7_val:1;
252                 uint64_t pos7:7;
253                 uint64_t pos6_val:1;
254                 uint64_t pos6:7;
255                 uint64_t pos5_val:1;
256                 uint64_t pos5:7;
257                 uint64_t pos4_val:1;
258                 uint64_t pos4:7;
259                 uint64_t pos3_val:1;
260                 uint64_t pos3:7;
261                 uint64_t pos2_val:1;
262                 uint64_t pos2:7;
263                 uint64_t pos1_val:1;
264                 uint64_t pos1:7;
265                 uint64_t pos0_val:1;
266                 uint64_t pos0:7;
267 #else
268                 uint64_t pos0:7;
269                 uint64_t pos0_val:1;
270                 uint64_t pos1:7;
271                 uint64_t pos1_val:1;
272                 uint64_t pos2:7;
273                 uint64_t pos2_val:1;
274                 uint64_t pos3:7;
275                 uint64_t pos3_val:1;
276                 uint64_t pos4:7;
277                 uint64_t pos4_val:1;
278                 uint64_t pos5:7;
279                 uint64_t pos5_val:1;
280                 uint64_t pos6:7;
281                 uint64_t pos6_val:1;
282                 uint64_t pos7:7;
283                 uint64_t pos7_val:1;
284 #endif
285         } s;
286 };
287
288 union cvmx_pip_bsel_tbl_entx {
289         uint64_t u64;
290         struct cvmx_pip_bsel_tbl_entx_s {
291 #ifdef __BIG_ENDIAN_BITFIELD
292                 uint64_t tag_en:1;
293                 uint64_t grp_en:1;
294                 uint64_t tt_en:1;
295                 uint64_t qos_en:1;
296                 uint64_t reserved_40_59:20;
297                 uint64_t tag:8;
298                 uint64_t reserved_22_31:10;
299                 uint64_t grp:6;
300                 uint64_t reserved_10_15:6;
301                 uint64_t tt:2;
302                 uint64_t reserved_3_7:5;
303                 uint64_t qos:3;
304 #else
305                 uint64_t qos:3;
306                 uint64_t reserved_3_7:5;
307                 uint64_t tt:2;
308                 uint64_t reserved_10_15:6;
309                 uint64_t grp:6;
310                 uint64_t reserved_22_31:10;
311                 uint64_t tag:8;
312                 uint64_t reserved_40_59:20;
313                 uint64_t qos_en:1;
314                 uint64_t tt_en:1;
315                 uint64_t grp_en:1;
316                 uint64_t tag_en:1;
317 #endif
318         } s;
319         struct cvmx_pip_bsel_tbl_entx_cn61xx {
320 #ifdef __BIG_ENDIAN_BITFIELD
321                 uint64_t tag_en:1;
322                 uint64_t grp_en:1;
323                 uint64_t tt_en:1;
324                 uint64_t qos_en:1;
325                 uint64_t reserved_40_59:20;
326                 uint64_t tag:8;
327                 uint64_t reserved_20_31:12;
328                 uint64_t grp:4;
329                 uint64_t reserved_10_15:6;
330                 uint64_t tt:2;
331                 uint64_t reserved_3_7:5;
332                 uint64_t qos:3;
333 #else
334                 uint64_t qos:3;
335                 uint64_t reserved_3_7:5;
336                 uint64_t tt:2;
337                 uint64_t reserved_10_15:6;
338                 uint64_t grp:4;
339                 uint64_t reserved_20_31:12;
340                 uint64_t tag:8;
341                 uint64_t reserved_40_59:20;
342                 uint64_t qos_en:1;
343                 uint64_t tt_en:1;
344                 uint64_t grp_en:1;
345                 uint64_t tag_en:1;
346 #endif
347         } cn61xx;
348 };
349
350 union cvmx_pip_clken {
351         uint64_t u64;
352         struct cvmx_pip_clken_s {
353 #ifdef __BIG_ENDIAN_BITFIELD
354                 uint64_t reserved_1_63:63;
355                 uint64_t clken:1;
356 #else
357                 uint64_t clken:1;
358                 uint64_t reserved_1_63:63;
359 #endif
360         } s;
361 };
362
363 union cvmx_pip_crc_ctlx {
364         uint64_t u64;
365         struct cvmx_pip_crc_ctlx_s {
366 #ifdef __BIG_ENDIAN_BITFIELD
367                 uint64_t reserved_2_63:62;
368                 uint64_t invres:1;
369                 uint64_t reflect:1;
370 #else
371                 uint64_t reflect:1;
372                 uint64_t invres:1;
373                 uint64_t reserved_2_63:62;
374 #endif
375         } s;
376 };
377
378 union cvmx_pip_crc_ivx {
379         uint64_t u64;
380         struct cvmx_pip_crc_ivx_s {
381 #ifdef __BIG_ENDIAN_BITFIELD
382                 uint64_t reserved_32_63:32;
383                 uint64_t iv:32;
384 #else
385                 uint64_t iv:32;
386                 uint64_t reserved_32_63:32;
387 #endif
388         } s;
389 };
390
391 union cvmx_pip_dec_ipsecx {
392         uint64_t u64;
393         struct cvmx_pip_dec_ipsecx_s {
394 #ifdef __BIG_ENDIAN_BITFIELD
395                 uint64_t reserved_18_63:46;
396                 uint64_t tcp:1;
397                 uint64_t udp:1;
398                 uint64_t dprt:16;
399 #else
400                 uint64_t dprt:16;
401                 uint64_t udp:1;
402                 uint64_t tcp:1;
403                 uint64_t reserved_18_63:46;
404 #endif
405         } s;
406 };
407
408 union cvmx_pip_dsa_src_grp {
409         uint64_t u64;
410         struct cvmx_pip_dsa_src_grp_s {
411 #ifdef __BIG_ENDIAN_BITFIELD
412                 uint64_t map15:4;
413                 uint64_t map14:4;
414                 uint64_t map13:4;
415                 uint64_t map12:4;
416                 uint64_t map11:4;
417                 uint64_t map10:4;
418                 uint64_t map9:4;
419                 uint64_t map8:4;
420                 uint64_t map7:4;
421                 uint64_t map6:4;
422                 uint64_t map5:4;
423                 uint64_t map4:4;
424                 uint64_t map3:4;
425                 uint64_t map2:4;
426                 uint64_t map1:4;
427                 uint64_t map0:4;
428 #else
429                 uint64_t map0:4;
430                 uint64_t map1:4;
431                 uint64_t map2:4;
432                 uint64_t map3:4;
433                 uint64_t map4:4;
434                 uint64_t map5:4;
435                 uint64_t map6:4;
436                 uint64_t map7:4;
437                 uint64_t map8:4;
438                 uint64_t map9:4;
439                 uint64_t map10:4;
440                 uint64_t map11:4;
441                 uint64_t map12:4;
442                 uint64_t map13:4;
443                 uint64_t map14:4;
444                 uint64_t map15:4;
445 #endif
446         } s;
447 };
448
449 union cvmx_pip_dsa_vid_grp {
450         uint64_t u64;
451         struct cvmx_pip_dsa_vid_grp_s {
452 #ifdef __BIG_ENDIAN_BITFIELD
453                 uint64_t map15:4;
454                 uint64_t map14:4;
455                 uint64_t map13:4;
456                 uint64_t map12:4;
457                 uint64_t map11:4;
458                 uint64_t map10:4;
459                 uint64_t map9:4;
460                 uint64_t map8:4;
461                 uint64_t map7:4;
462                 uint64_t map6:4;
463                 uint64_t map5:4;
464                 uint64_t map4:4;
465                 uint64_t map3:4;
466                 uint64_t map2:4;
467                 uint64_t map1:4;
468                 uint64_t map0:4;
469 #else
470                 uint64_t map0:4;
471                 uint64_t map1:4;
472                 uint64_t map2:4;
473                 uint64_t map3:4;
474                 uint64_t map4:4;
475                 uint64_t map5:4;
476                 uint64_t map6:4;
477                 uint64_t map7:4;
478                 uint64_t map8:4;
479                 uint64_t map9:4;
480                 uint64_t map10:4;
481                 uint64_t map11:4;
482                 uint64_t map12:4;
483                 uint64_t map13:4;
484                 uint64_t map14:4;
485                 uint64_t map15:4;
486 #endif
487         } s;
488 };
489
490 union cvmx_pip_frm_len_chkx {
491         uint64_t u64;
492         struct cvmx_pip_frm_len_chkx_s {
493 #ifdef __BIG_ENDIAN_BITFIELD
494                 uint64_t reserved_32_63:32;
495                 uint64_t maxlen:16;
496                 uint64_t minlen:16;
497 #else
498                 uint64_t minlen:16;
499                 uint64_t maxlen:16;
500                 uint64_t reserved_32_63:32;
501 #endif
502         } s;
503 };
504
505 union cvmx_pip_gbl_cfg {
506         uint64_t u64;
507         struct cvmx_pip_gbl_cfg_s {
508 #ifdef __BIG_ENDIAN_BITFIELD
509                 uint64_t reserved_19_63:45;
510                 uint64_t tag_syn:1;
511                 uint64_t ip6_udp:1;
512                 uint64_t max_l2:1;
513                 uint64_t reserved_11_15:5;
514                 uint64_t raw_shf:3;
515                 uint64_t reserved_3_7:5;
516                 uint64_t nip_shf:3;
517 #else
518                 uint64_t nip_shf:3;
519                 uint64_t reserved_3_7:5;
520                 uint64_t raw_shf:3;
521                 uint64_t reserved_11_15:5;
522                 uint64_t max_l2:1;
523                 uint64_t ip6_udp:1;
524                 uint64_t tag_syn:1;
525                 uint64_t reserved_19_63:45;
526 #endif
527         } s;
528 };
529
530 union cvmx_pip_gbl_ctl {
531         uint64_t u64;
532         struct cvmx_pip_gbl_ctl_s {
533 #ifdef __BIG_ENDIAN_BITFIELD
534                 uint64_t reserved_29_63:35;
535                 uint64_t egrp_dis:1;
536                 uint64_t ihmsk_dis:1;
537                 uint64_t dsa_grp_tvid:1;
538                 uint64_t dsa_grp_scmd:1;
539                 uint64_t dsa_grp_sid:1;
540                 uint64_t reserved_21_23:3;
541                 uint64_t ring_en:1;
542                 uint64_t reserved_17_19:3;
543                 uint64_t ignrs:1;
544                 uint64_t vs_wqe:1;
545                 uint64_t vs_qos:1;
546                 uint64_t l2_mal:1;
547                 uint64_t tcp_flag:1;
548                 uint64_t l4_len:1;
549                 uint64_t l4_chk:1;
550                 uint64_t l4_prt:1;
551                 uint64_t l4_mal:1;
552                 uint64_t reserved_6_7:2;
553                 uint64_t ip6_eext:2;
554                 uint64_t ip4_opts:1;
555                 uint64_t ip_hop:1;
556                 uint64_t ip_mal:1;
557                 uint64_t ip_chk:1;
558 #else
559                 uint64_t ip_chk:1;
560                 uint64_t ip_mal:1;
561                 uint64_t ip_hop:1;
562                 uint64_t ip4_opts:1;
563                 uint64_t ip6_eext:2;
564                 uint64_t reserved_6_7:2;
565                 uint64_t l4_mal:1;
566                 uint64_t l4_prt:1;
567                 uint64_t l4_chk:1;
568                 uint64_t l4_len:1;
569                 uint64_t tcp_flag:1;
570                 uint64_t l2_mal:1;
571                 uint64_t vs_qos:1;
572                 uint64_t vs_wqe:1;
573                 uint64_t ignrs:1;
574                 uint64_t reserved_17_19:3;
575                 uint64_t ring_en:1;
576                 uint64_t reserved_21_23:3;
577                 uint64_t dsa_grp_sid:1;
578                 uint64_t dsa_grp_scmd:1;
579                 uint64_t dsa_grp_tvid:1;
580                 uint64_t ihmsk_dis:1;
581                 uint64_t egrp_dis:1;
582                 uint64_t reserved_29_63:35;
583 #endif
584         } s;
585         struct cvmx_pip_gbl_ctl_cn30xx {
586 #ifdef __BIG_ENDIAN_BITFIELD
587                 uint64_t reserved_17_63:47;
588                 uint64_t ignrs:1;
589                 uint64_t vs_wqe:1;
590                 uint64_t vs_qos:1;
591                 uint64_t l2_mal:1;
592                 uint64_t tcp_flag:1;
593                 uint64_t l4_len:1;
594                 uint64_t l4_chk:1;
595                 uint64_t l4_prt:1;
596                 uint64_t l4_mal:1;
597                 uint64_t reserved_6_7:2;
598                 uint64_t ip6_eext:2;
599                 uint64_t ip4_opts:1;
600                 uint64_t ip_hop:1;
601                 uint64_t ip_mal:1;
602                 uint64_t ip_chk:1;
603 #else
604                 uint64_t ip_chk:1;
605                 uint64_t ip_mal:1;
606                 uint64_t ip_hop:1;
607                 uint64_t ip4_opts:1;
608                 uint64_t ip6_eext:2;
609                 uint64_t reserved_6_7:2;
610                 uint64_t l4_mal:1;
611                 uint64_t l4_prt:1;
612                 uint64_t l4_chk:1;
613                 uint64_t l4_len:1;
614                 uint64_t tcp_flag:1;
615                 uint64_t l2_mal:1;
616                 uint64_t vs_qos:1;
617                 uint64_t vs_wqe:1;
618                 uint64_t ignrs:1;
619                 uint64_t reserved_17_63:47;
620 #endif
621         } cn30xx;
622         struct cvmx_pip_gbl_ctl_cn52xx {
623 #ifdef __BIG_ENDIAN_BITFIELD
624                 uint64_t reserved_27_63:37;
625                 uint64_t dsa_grp_tvid:1;
626                 uint64_t dsa_grp_scmd:1;
627                 uint64_t dsa_grp_sid:1;
628                 uint64_t reserved_21_23:3;
629                 uint64_t ring_en:1;
630                 uint64_t reserved_17_19:3;
631                 uint64_t ignrs:1;
632                 uint64_t vs_wqe:1;
633                 uint64_t vs_qos:1;
634                 uint64_t l2_mal:1;
635                 uint64_t tcp_flag:1;
636                 uint64_t l4_len:1;
637                 uint64_t l4_chk:1;
638                 uint64_t l4_prt:1;
639                 uint64_t l4_mal:1;
640                 uint64_t reserved_6_7:2;
641                 uint64_t ip6_eext:2;
642                 uint64_t ip4_opts:1;
643                 uint64_t ip_hop:1;
644                 uint64_t ip_mal:1;
645                 uint64_t ip_chk:1;
646 #else
647                 uint64_t ip_chk:1;
648                 uint64_t ip_mal:1;
649                 uint64_t ip_hop:1;
650                 uint64_t ip4_opts:1;
651                 uint64_t ip6_eext:2;
652                 uint64_t reserved_6_7:2;
653                 uint64_t l4_mal:1;
654                 uint64_t l4_prt:1;
655                 uint64_t l4_chk:1;
656                 uint64_t l4_len:1;
657                 uint64_t tcp_flag:1;
658                 uint64_t l2_mal:1;
659                 uint64_t vs_qos:1;
660                 uint64_t vs_wqe:1;
661                 uint64_t ignrs:1;
662                 uint64_t reserved_17_19:3;
663                 uint64_t ring_en:1;
664                 uint64_t reserved_21_23:3;
665                 uint64_t dsa_grp_sid:1;
666                 uint64_t dsa_grp_scmd:1;
667                 uint64_t dsa_grp_tvid:1;
668                 uint64_t reserved_27_63:37;
669 #endif
670         } cn52xx;
671         struct cvmx_pip_gbl_ctl_cn56xxp1 {
672 #ifdef __BIG_ENDIAN_BITFIELD
673                 uint64_t reserved_21_63:43;
674                 uint64_t ring_en:1;
675                 uint64_t reserved_17_19:3;
676                 uint64_t ignrs:1;
677                 uint64_t vs_wqe:1;
678                 uint64_t vs_qos:1;
679                 uint64_t l2_mal:1;
680                 uint64_t tcp_flag:1;
681                 uint64_t l4_len:1;
682                 uint64_t l4_chk:1;
683                 uint64_t l4_prt:1;
684                 uint64_t l4_mal:1;
685                 uint64_t reserved_6_7:2;
686                 uint64_t ip6_eext:2;
687                 uint64_t ip4_opts:1;
688                 uint64_t ip_hop:1;
689                 uint64_t ip_mal:1;
690                 uint64_t ip_chk:1;
691 #else
692                 uint64_t ip_chk:1;
693                 uint64_t ip_mal:1;
694                 uint64_t ip_hop:1;
695                 uint64_t ip4_opts:1;
696                 uint64_t ip6_eext:2;
697                 uint64_t reserved_6_7:2;
698                 uint64_t l4_mal:1;
699                 uint64_t l4_prt:1;
700                 uint64_t l4_chk:1;
701                 uint64_t l4_len:1;
702                 uint64_t tcp_flag:1;
703                 uint64_t l2_mal:1;
704                 uint64_t vs_qos:1;
705                 uint64_t vs_wqe:1;
706                 uint64_t ignrs:1;
707                 uint64_t reserved_17_19:3;
708                 uint64_t ring_en:1;
709                 uint64_t reserved_21_63:43;
710 #endif
711         } cn56xxp1;
712         struct cvmx_pip_gbl_ctl_cn61xx {
713 #ifdef __BIG_ENDIAN_BITFIELD
714                 uint64_t reserved_28_63:36;
715                 uint64_t ihmsk_dis:1;
716                 uint64_t dsa_grp_tvid:1;
717                 uint64_t dsa_grp_scmd:1;
718                 uint64_t dsa_grp_sid:1;
719                 uint64_t reserved_21_23:3;
720                 uint64_t ring_en:1;
721                 uint64_t reserved_17_19:3;
722                 uint64_t ignrs:1;
723                 uint64_t vs_wqe:1;
724                 uint64_t vs_qos:1;
725                 uint64_t l2_mal:1;
726                 uint64_t tcp_flag:1;
727                 uint64_t l4_len:1;
728                 uint64_t l4_chk:1;
729                 uint64_t l4_prt:1;
730                 uint64_t l4_mal:1;
731                 uint64_t reserved_6_7:2;
732                 uint64_t ip6_eext:2;
733                 uint64_t ip4_opts:1;
734                 uint64_t ip_hop:1;
735                 uint64_t ip_mal:1;
736                 uint64_t ip_chk:1;
737 #else
738                 uint64_t ip_chk:1;
739                 uint64_t ip_mal:1;
740                 uint64_t ip_hop:1;
741                 uint64_t ip4_opts:1;
742                 uint64_t ip6_eext:2;
743                 uint64_t reserved_6_7:2;
744                 uint64_t l4_mal:1;
745                 uint64_t l4_prt:1;
746                 uint64_t l4_chk:1;
747                 uint64_t l4_len:1;
748                 uint64_t tcp_flag:1;
749                 uint64_t l2_mal:1;
750                 uint64_t vs_qos:1;
751                 uint64_t vs_wqe:1;
752                 uint64_t ignrs:1;
753                 uint64_t reserved_17_19:3;
754                 uint64_t ring_en:1;
755                 uint64_t reserved_21_23:3;
756                 uint64_t dsa_grp_sid:1;
757                 uint64_t dsa_grp_scmd:1;
758                 uint64_t dsa_grp_tvid:1;
759                 uint64_t ihmsk_dis:1;
760                 uint64_t reserved_28_63:36;
761 #endif
762         } cn61xx;
763         struct cvmx_pip_gbl_ctl_cn68xx {
764 #ifdef __BIG_ENDIAN_BITFIELD
765                 uint64_t reserved_29_63:35;
766                 uint64_t egrp_dis:1;
767                 uint64_t ihmsk_dis:1;
768                 uint64_t dsa_grp_tvid:1;
769                 uint64_t dsa_grp_scmd:1;
770                 uint64_t dsa_grp_sid:1;
771                 uint64_t reserved_17_23:7;
772                 uint64_t ignrs:1;
773                 uint64_t vs_wqe:1;
774                 uint64_t vs_qos:1;
775                 uint64_t l2_mal:1;
776                 uint64_t tcp_flag:1;
777                 uint64_t l4_len:1;
778                 uint64_t l4_chk:1;
779                 uint64_t l4_prt:1;
780                 uint64_t l4_mal:1;
781                 uint64_t reserved_6_7:2;
782                 uint64_t ip6_eext:2;
783                 uint64_t ip4_opts:1;
784                 uint64_t ip_hop:1;
785                 uint64_t ip_mal:1;
786                 uint64_t ip_chk:1;
787 #else
788                 uint64_t ip_chk:1;
789                 uint64_t ip_mal:1;
790                 uint64_t ip_hop:1;
791                 uint64_t ip4_opts:1;
792                 uint64_t ip6_eext:2;
793                 uint64_t reserved_6_7:2;
794                 uint64_t l4_mal:1;
795                 uint64_t l4_prt:1;
796                 uint64_t l4_chk:1;
797                 uint64_t l4_len:1;
798                 uint64_t tcp_flag:1;
799                 uint64_t l2_mal:1;
800                 uint64_t vs_qos:1;
801                 uint64_t vs_wqe:1;
802                 uint64_t ignrs:1;
803                 uint64_t reserved_17_23:7;
804                 uint64_t dsa_grp_sid:1;
805                 uint64_t dsa_grp_scmd:1;
806                 uint64_t dsa_grp_tvid:1;
807                 uint64_t ihmsk_dis:1;
808                 uint64_t egrp_dis:1;
809                 uint64_t reserved_29_63:35;
810 #endif
811         } cn68xx;
812         struct cvmx_pip_gbl_ctl_cn68xxp1 {
813 #ifdef __BIG_ENDIAN_BITFIELD
814                 uint64_t reserved_28_63:36;
815                 uint64_t ihmsk_dis:1;
816                 uint64_t dsa_grp_tvid:1;
817                 uint64_t dsa_grp_scmd:1;
818                 uint64_t dsa_grp_sid:1;
819                 uint64_t reserved_17_23:7;
820                 uint64_t ignrs:1;
821                 uint64_t vs_wqe:1;
822                 uint64_t vs_qos:1;
823                 uint64_t l2_mal:1;
824                 uint64_t tcp_flag:1;
825                 uint64_t l4_len:1;
826                 uint64_t l4_chk:1;
827                 uint64_t l4_prt:1;
828                 uint64_t l4_mal:1;
829                 uint64_t reserved_6_7:2;
830                 uint64_t ip6_eext:2;
831                 uint64_t ip4_opts:1;
832                 uint64_t ip_hop:1;
833                 uint64_t ip_mal:1;
834                 uint64_t ip_chk:1;
835 #else
836                 uint64_t ip_chk:1;
837                 uint64_t ip_mal:1;
838                 uint64_t ip_hop:1;
839                 uint64_t ip4_opts:1;
840                 uint64_t ip6_eext:2;
841                 uint64_t reserved_6_7:2;
842                 uint64_t l4_mal:1;
843                 uint64_t l4_prt:1;
844                 uint64_t l4_chk:1;
845                 uint64_t l4_len:1;
846                 uint64_t tcp_flag:1;
847                 uint64_t l2_mal:1;
848                 uint64_t vs_qos:1;
849                 uint64_t vs_wqe:1;
850                 uint64_t ignrs:1;
851                 uint64_t reserved_17_23:7;
852                 uint64_t dsa_grp_sid:1;
853                 uint64_t dsa_grp_scmd:1;
854                 uint64_t dsa_grp_tvid:1;
855                 uint64_t ihmsk_dis:1;
856                 uint64_t reserved_28_63:36;
857 #endif
858         } cn68xxp1;
859 };
860
861 union cvmx_pip_hg_pri_qos {
862         uint64_t u64;
863         struct cvmx_pip_hg_pri_qos_s {
864 #ifdef __BIG_ENDIAN_BITFIELD
865                 uint64_t reserved_13_63:51;
866                 uint64_t up_qos:1;
867                 uint64_t reserved_11_11:1;
868                 uint64_t qos:3;
869                 uint64_t reserved_6_7:2;
870                 uint64_t pri:6;
871 #else
872                 uint64_t pri:6;
873                 uint64_t reserved_6_7:2;
874                 uint64_t qos:3;
875                 uint64_t reserved_11_11:1;
876                 uint64_t up_qos:1;
877                 uint64_t reserved_13_63:51;
878 #endif
879         } s;
880 };
881
882 union cvmx_pip_int_en {
883         uint64_t u64;
884         struct cvmx_pip_int_en_s {
885 #ifdef __BIG_ENDIAN_BITFIELD
886                 uint64_t reserved_13_63:51;
887                 uint64_t punyerr:1;
888                 uint64_t lenerr:1;
889                 uint64_t maxerr:1;
890                 uint64_t minerr:1;
891                 uint64_t beperr:1;
892                 uint64_t feperr:1;
893                 uint64_t todoovr:1;
894                 uint64_t skprunt:1;
895                 uint64_t badtag:1;
896                 uint64_t prtnxa:1;
897                 uint64_t bckprs:1;
898                 uint64_t crcerr:1;
899                 uint64_t pktdrp:1;
900 #else
901                 uint64_t pktdrp:1;
902                 uint64_t crcerr:1;
903                 uint64_t bckprs:1;
904                 uint64_t prtnxa:1;
905                 uint64_t badtag:1;
906                 uint64_t skprunt:1;
907                 uint64_t todoovr:1;
908                 uint64_t feperr:1;
909                 uint64_t beperr:1;
910                 uint64_t minerr:1;
911                 uint64_t maxerr:1;
912                 uint64_t lenerr:1;
913                 uint64_t punyerr:1;
914                 uint64_t reserved_13_63:51;
915 #endif
916         } s;
917         struct cvmx_pip_int_en_cn30xx {
918 #ifdef __BIG_ENDIAN_BITFIELD
919                 uint64_t reserved_9_63:55;
920                 uint64_t beperr:1;
921                 uint64_t feperr:1;
922                 uint64_t todoovr:1;
923                 uint64_t skprunt:1;
924                 uint64_t badtag:1;
925                 uint64_t prtnxa:1;
926                 uint64_t bckprs:1;
927                 uint64_t crcerr:1;
928                 uint64_t pktdrp:1;
929 #else
930                 uint64_t pktdrp:1;
931                 uint64_t crcerr:1;
932                 uint64_t bckprs:1;
933                 uint64_t prtnxa:1;
934                 uint64_t badtag:1;
935                 uint64_t skprunt:1;
936                 uint64_t todoovr:1;
937                 uint64_t feperr:1;
938                 uint64_t beperr:1;
939                 uint64_t reserved_9_63:55;
940 #endif
941         } cn30xx;
942         struct cvmx_pip_int_en_cn50xx {
943 #ifdef __BIG_ENDIAN_BITFIELD
944                 uint64_t reserved_12_63:52;
945                 uint64_t lenerr:1;
946                 uint64_t maxerr:1;
947                 uint64_t minerr:1;
948                 uint64_t beperr:1;
949                 uint64_t feperr:1;
950                 uint64_t todoovr:1;
951                 uint64_t skprunt:1;
952                 uint64_t badtag:1;
953                 uint64_t prtnxa:1;
954                 uint64_t bckprs:1;
955                 uint64_t reserved_1_1:1;
956                 uint64_t pktdrp:1;
957 #else
958                 uint64_t pktdrp:1;
959                 uint64_t reserved_1_1:1;
960                 uint64_t bckprs:1;
961                 uint64_t prtnxa:1;
962                 uint64_t badtag:1;
963                 uint64_t skprunt:1;
964                 uint64_t todoovr:1;
965                 uint64_t feperr:1;
966                 uint64_t beperr:1;
967                 uint64_t minerr:1;
968                 uint64_t maxerr:1;
969                 uint64_t lenerr:1;
970                 uint64_t reserved_12_63:52;
971 #endif
972         } cn50xx;
973         struct cvmx_pip_int_en_cn52xx {
974 #ifdef __BIG_ENDIAN_BITFIELD
975                 uint64_t reserved_13_63:51;
976                 uint64_t punyerr:1;
977                 uint64_t lenerr:1;
978                 uint64_t maxerr:1;
979                 uint64_t minerr:1;
980                 uint64_t beperr:1;
981                 uint64_t feperr:1;
982                 uint64_t todoovr:1;
983                 uint64_t skprunt:1;
984                 uint64_t badtag:1;
985                 uint64_t prtnxa:1;
986                 uint64_t bckprs:1;
987                 uint64_t reserved_1_1:1;
988                 uint64_t pktdrp:1;
989 #else
990                 uint64_t pktdrp:1;
991                 uint64_t reserved_1_1:1;
992                 uint64_t bckprs:1;
993                 uint64_t prtnxa:1;
994                 uint64_t badtag:1;
995                 uint64_t skprunt:1;
996                 uint64_t todoovr:1;
997                 uint64_t feperr:1;
998                 uint64_t beperr:1;
999                 uint64_t minerr:1;
1000                 uint64_t maxerr:1;
1001                 uint64_t lenerr:1;
1002                 uint64_t punyerr:1;
1003                 uint64_t reserved_13_63:51;
1004 #endif
1005         } cn52xx;
1006         struct cvmx_pip_int_en_cn56xxp1 {
1007 #ifdef __BIG_ENDIAN_BITFIELD
1008                 uint64_t reserved_12_63:52;
1009                 uint64_t lenerr:1;
1010                 uint64_t maxerr:1;
1011                 uint64_t minerr:1;
1012                 uint64_t beperr:1;
1013                 uint64_t feperr:1;
1014                 uint64_t todoovr:1;
1015                 uint64_t skprunt:1;
1016                 uint64_t badtag:1;
1017                 uint64_t prtnxa:1;
1018                 uint64_t bckprs:1;
1019                 uint64_t crcerr:1;
1020                 uint64_t pktdrp:1;
1021 #else
1022                 uint64_t pktdrp:1;
1023                 uint64_t crcerr:1;
1024                 uint64_t bckprs:1;
1025                 uint64_t prtnxa:1;
1026                 uint64_t badtag:1;
1027                 uint64_t skprunt:1;
1028                 uint64_t todoovr:1;
1029                 uint64_t feperr:1;
1030                 uint64_t beperr:1;
1031                 uint64_t minerr:1;
1032                 uint64_t maxerr:1;
1033                 uint64_t lenerr:1;
1034                 uint64_t reserved_12_63:52;
1035 #endif
1036         } cn56xxp1;
1037         struct cvmx_pip_int_en_cn58xx {
1038 #ifdef __BIG_ENDIAN_BITFIELD
1039                 uint64_t reserved_13_63:51;
1040                 uint64_t punyerr:1;
1041                 uint64_t reserved_9_11:3;
1042                 uint64_t beperr:1;
1043                 uint64_t feperr:1;
1044                 uint64_t todoovr:1;
1045                 uint64_t skprunt:1;
1046                 uint64_t badtag:1;
1047                 uint64_t prtnxa:1;
1048                 uint64_t bckprs:1;
1049                 uint64_t crcerr:1;
1050                 uint64_t pktdrp:1;
1051 #else
1052                 uint64_t pktdrp:1;
1053                 uint64_t crcerr:1;
1054                 uint64_t bckprs:1;
1055                 uint64_t prtnxa:1;
1056                 uint64_t badtag:1;
1057                 uint64_t skprunt:1;
1058                 uint64_t todoovr:1;
1059                 uint64_t feperr:1;
1060                 uint64_t beperr:1;
1061                 uint64_t reserved_9_11:3;
1062                 uint64_t punyerr:1;
1063                 uint64_t reserved_13_63:51;
1064 #endif
1065         } cn58xx;
1066 };
1067
1068 union cvmx_pip_int_reg {
1069         uint64_t u64;
1070         struct cvmx_pip_int_reg_s {
1071 #ifdef __BIG_ENDIAN_BITFIELD
1072                 uint64_t reserved_13_63:51;
1073                 uint64_t punyerr:1;
1074                 uint64_t lenerr:1;
1075                 uint64_t maxerr:1;
1076                 uint64_t minerr:1;
1077                 uint64_t beperr:1;
1078                 uint64_t feperr:1;
1079                 uint64_t todoovr:1;
1080                 uint64_t skprunt:1;
1081                 uint64_t badtag:1;
1082                 uint64_t prtnxa:1;
1083                 uint64_t bckprs:1;
1084                 uint64_t crcerr:1;
1085                 uint64_t pktdrp:1;
1086 #else
1087                 uint64_t pktdrp:1;
1088                 uint64_t crcerr:1;
1089                 uint64_t bckprs:1;
1090                 uint64_t prtnxa:1;
1091                 uint64_t badtag:1;
1092                 uint64_t skprunt:1;
1093                 uint64_t todoovr:1;
1094                 uint64_t feperr:1;
1095                 uint64_t beperr:1;
1096                 uint64_t minerr:1;
1097                 uint64_t maxerr:1;
1098                 uint64_t lenerr:1;
1099                 uint64_t punyerr:1;
1100                 uint64_t reserved_13_63:51;
1101 #endif
1102         } s;
1103         struct cvmx_pip_int_reg_cn30xx {
1104 #ifdef __BIG_ENDIAN_BITFIELD
1105                 uint64_t reserved_9_63:55;
1106                 uint64_t beperr:1;
1107                 uint64_t feperr:1;
1108                 uint64_t todoovr:1;
1109                 uint64_t skprunt:1;
1110                 uint64_t badtag:1;
1111                 uint64_t prtnxa:1;
1112                 uint64_t bckprs:1;
1113                 uint64_t crcerr:1;
1114                 uint64_t pktdrp:1;
1115 #else
1116                 uint64_t pktdrp:1;
1117                 uint64_t crcerr:1;
1118                 uint64_t bckprs:1;
1119                 uint64_t prtnxa:1;
1120                 uint64_t badtag:1;
1121                 uint64_t skprunt:1;
1122                 uint64_t todoovr:1;
1123                 uint64_t feperr:1;
1124                 uint64_t beperr:1;
1125                 uint64_t reserved_9_63:55;
1126 #endif
1127         } cn30xx;
1128         struct cvmx_pip_int_reg_cn50xx {
1129 #ifdef __BIG_ENDIAN_BITFIELD
1130                 uint64_t reserved_12_63:52;
1131                 uint64_t lenerr:1;
1132                 uint64_t maxerr:1;
1133                 uint64_t minerr:1;
1134                 uint64_t beperr:1;
1135                 uint64_t feperr:1;
1136                 uint64_t todoovr:1;
1137                 uint64_t skprunt:1;
1138                 uint64_t badtag:1;
1139                 uint64_t prtnxa:1;
1140                 uint64_t bckprs:1;
1141                 uint64_t reserved_1_1:1;
1142                 uint64_t pktdrp:1;
1143 #else
1144                 uint64_t pktdrp:1;
1145                 uint64_t reserved_1_1:1;
1146                 uint64_t bckprs:1;
1147                 uint64_t prtnxa:1;
1148                 uint64_t badtag:1;
1149                 uint64_t skprunt:1;
1150                 uint64_t todoovr:1;
1151                 uint64_t feperr:1;
1152                 uint64_t beperr:1;
1153                 uint64_t minerr:1;
1154                 uint64_t maxerr:1;
1155                 uint64_t lenerr:1;
1156                 uint64_t reserved_12_63:52;
1157 #endif
1158         } cn50xx;
1159         struct cvmx_pip_int_reg_cn52xx {
1160 #ifdef __BIG_ENDIAN_BITFIELD
1161                 uint64_t reserved_13_63:51;
1162                 uint64_t punyerr:1;
1163                 uint64_t lenerr:1;
1164                 uint64_t maxerr:1;
1165                 uint64_t minerr:1;
1166                 uint64_t beperr:1;
1167                 uint64_t feperr:1;
1168                 uint64_t todoovr:1;
1169                 uint64_t skprunt:1;
1170                 uint64_t badtag:1;
1171                 uint64_t prtnxa:1;
1172                 uint64_t bckprs:1;
1173                 uint64_t reserved_1_1:1;
1174                 uint64_t pktdrp:1;
1175 #else
1176                 uint64_t pktdrp:1;
1177                 uint64_t reserved_1_1:1;
1178                 uint64_t bckprs:1;
1179                 uint64_t prtnxa:1;
1180                 uint64_t badtag:1;
1181                 uint64_t skprunt:1;
1182                 uint64_t todoovr:1;
1183                 uint64_t feperr:1;
1184                 uint64_t beperr:1;
1185                 uint64_t minerr:1;
1186                 uint64_t maxerr:1;
1187                 uint64_t lenerr:1;
1188                 uint64_t punyerr:1;
1189                 uint64_t reserved_13_63:51;
1190 #endif
1191         } cn52xx;
1192         struct cvmx_pip_int_reg_cn56xxp1 {
1193 #ifdef __BIG_ENDIAN_BITFIELD
1194                 uint64_t reserved_12_63:52;
1195                 uint64_t lenerr:1;
1196                 uint64_t maxerr:1;
1197                 uint64_t minerr:1;
1198                 uint64_t beperr:1;
1199                 uint64_t feperr:1;
1200                 uint64_t todoovr:1;
1201                 uint64_t skprunt:1;
1202                 uint64_t badtag:1;
1203                 uint64_t prtnxa:1;
1204                 uint64_t bckprs:1;
1205                 uint64_t crcerr:1;
1206                 uint64_t pktdrp:1;
1207 #else
1208                 uint64_t pktdrp:1;
1209                 uint64_t crcerr:1;
1210                 uint64_t bckprs:1;
1211                 uint64_t prtnxa:1;
1212                 uint64_t badtag:1;
1213                 uint64_t skprunt:1;
1214                 uint64_t todoovr:1;
1215                 uint64_t feperr:1;
1216                 uint64_t beperr:1;
1217                 uint64_t minerr:1;
1218                 uint64_t maxerr:1;
1219                 uint64_t lenerr:1;
1220                 uint64_t reserved_12_63:52;
1221 #endif
1222         } cn56xxp1;
1223         struct cvmx_pip_int_reg_cn58xx {
1224 #ifdef __BIG_ENDIAN_BITFIELD
1225                 uint64_t reserved_13_63:51;
1226                 uint64_t punyerr:1;
1227                 uint64_t reserved_9_11:3;
1228                 uint64_t beperr:1;
1229                 uint64_t feperr:1;
1230                 uint64_t todoovr:1;
1231                 uint64_t skprunt:1;
1232                 uint64_t badtag:1;
1233                 uint64_t prtnxa:1;
1234                 uint64_t bckprs:1;
1235                 uint64_t crcerr:1;
1236                 uint64_t pktdrp:1;
1237 #else
1238                 uint64_t pktdrp:1;
1239                 uint64_t crcerr:1;
1240                 uint64_t bckprs:1;
1241                 uint64_t prtnxa:1;
1242                 uint64_t badtag:1;
1243                 uint64_t skprunt:1;
1244                 uint64_t todoovr:1;
1245                 uint64_t feperr:1;
1246                 uint64_t beperr:1;
1247                 uint64_t reserved_9_11:3;
1248                 uint64_t punyerr:1;
1249                 uint64_t reserved_13_63:51;
1250 #endif
1251         } cn58xx;
1252 };
1253
1254 union cvmx_pip_ip_offset {
1255         uint64_t u64;
1256         struct cvmx_pip_ip_offset_s {
1257 #ifdef __BIG_ENDIAN_BITFIELD
1258                 uint64_t reserved_3_63:61;
1259                 uint64_t offset:3;
1260 #else
1261                 uint64_t offset:3;
1262                 uint64_t reserved_3_63:61;
1263 #endif
1264         } s;
1265 };
1266
1267 union cvmx_pip_pri_tblx {
1268         uint64_t u64;
1269         struct cvmx_pip_pri_tblx_s {
1270 #ifdef __BIG_ENDIAN_BITFIELD
1271                 uint64_t diff2_padd:8;
1272                 uint64_t hg2_padd:8;
1273                 uint64_t vlan2_padd:8;
1274                 uint64_t reserved_38_39:2;
1275                 uint64_t diff2_bpid:6;
1276                 uint64_t reserved_30_31:2;
1277                 uint64_t hg2_bpid:6;
1278                 uint64_t reserved_22_23:2;
1279                 uint64_t vlan2_bpid:6;
1280                 uint64_t reserved_11_15:5;
1281                 uint64_t diff2_qos:3;
1282                 uint64_t reserved_7_7:1;
1283                 uint64_t hg2_qos:3;
1284                 uint64_t reserved_3_3:1;
1285                 uint64_t vlan2_qos:3;
1286 #else
1287                 uint64_t vlan2_qos:3;
1288                 uint64_t reserved_3_3:1;
1289                 uint64_t hg2_qos:3;
1290                 uint64_t reserved_7_7:1;
1291                 uint64_t diff2_qos:3;
1292                 uint64_t reserved_11_15:5;
1293                 uint64_t vlan2_bpid:6;
1294                 uint64_t reserved_22_23:2;
1295                 uint64_t hg2_bpid:6;
1296                 uint64_t reserved_30_31:2;
1297                 uint64_t diff2_bpid:6;
1298                 uint64_t reserved_38_39:2;
1299                 uint64_t vlan2_padd:8;
1300                 uint64_t hg2_padd:8;
1301                 uint64_t diff2_padd:8;
1302 #endif
1303         } s;
1304 };
1305
1306 union cvmx_pip_prt_cfgx {
1307         uint64_t u64;
1308         struct cvmx_pip_prt_cfgx_s {
1309 #ifdef __BIG_ENDIAN_BITFIELD
1310                 uint64_t reserved_55_63:9;
1311                 uint64_t ih_pri:1;
1312                 uint64_t len_chk_sel:1;
1313                 uint64_t pad_len:1;
1314                 uint64_t vlan_len:1;
1315                 uint64_t lenerr_en:1;
1316                 uint64_t maxerr_en:1;
1317                 uint64_t minerr_en:1;
1318                 uint64_t grp_wat_47:4;
1319                 uint64_t qos_wat_47:4;
1320                 uint64_t reserved_37_39:3;
1321                 uint64_t rawdrp:1;
1322                 uint64_t tag_inc:2;
1323                 uint64_t dyn_rs:1;
1324                 uint64_t inst_hdr:1;
1325                 uint64_t grp_wat:4;
1326                 uint64_t hg_qos:1;
1327                 uint64_t qos:3;
1328                 uint64_t qos_wat:4;
1329                 uint64_t qos_vsel:1;
1330                 uint64_t qos_vod:1;
1331                 uint64_t qos_diff:1;
1332                 uint64_t qos_vlan:1;
1333                 uint64_t reserved_13_15:3;
1334                 uint64_t crc_en:1;
1335                 uint64_t higig_en:1;
1336                 uint64_t dsa_en:1;
1337                 uint64_t mode:2;
1338                 uint64_t reserved_7_7:1;
1339                 uint64_t skip:7;
1340 #else
1341                 uint64_t skip:7;
1342                 uint64_t reserved_7_7:1;
1343                 uint64_t mode:2;
1344                 uint64_t dsa_en:1;
1345                 uint64_t higig_en:1;
1346                 uint64_t crc_en:1;
1347                 uint64_t reserved_13_15:3;
1348                 uint64_t qos_vlan:1;
1349                 uint64_t qos_diff:1;
1350                 uint64_t qos_vod:1;
1351                 uint64_t qos_vsel:1;
1352                 uint64_t qos_wat:4;
1353                 uint64_t qos:3;
1354                 uint64_t hg_qos:1;
1355                 uint64_t grp_wat:4;
1356                 uint64_t inst_hdr:1;
1357                 uint64_t dyn_rs:1;
1358                 uint64_t tag_inc:2;
1359                 uint64_t rawdrp:1;
1360                 uint64_t reserved_37_39:3;
1361                 uint64_t qos_wat_47:4;
1362                 uint64_t grp_wat_47:4;
1363                 uint64_t minerr_en:1;
1364                 uint64_t maxerr_en:1;
1365                 uint64_t lenerr_en:1;
1366                 uint64_t vlan_len:1;
1367                 uint64_t pad_len:1;
1368                 uint64_t len_chk_sel:1;
1369                 uint64_t ih_pri:1;
1370                 uint64_t reserved_55_63:9;
1371 #endif
1372         } s;
1373         struct cvmx_pip_prt_cfgx_cn30xx {
1374 #ifdef __BIG_ENDIAN_BITFIELD
1375                 uint64_t reserved_37_63:27;
1376                 uint64_t rawdrp:1;
1377                 uint64_t tag_inc:2;
1378                 uint64_t dyn_rs:1;
1379                 uint64_t inst_hdr:1;
1380                 uint64_t grp_wat:4;
1381                 uint64_t reserved_27_27:1;
1382                 uint64_t qos:3;
1383                 uint64_t qos_wat:4;
1384                 uint64_t reserved_18_19:2;
1385                 uint64_t qos_diff:1;
1386                 uint64_t qos_vlan:1;
1387                 uint64_t reserved_10_15:6;
1388                 uint64_t mode:2;
1389                 uint64_t reserved_7_7:1;
1390                 uint64_t skip:7;
1391 #else
1392                 uint64_t skip:7;
1393                 uint64_t reserved_7_7:1;
1394                 uint64_t mode:2;
1395                 uint64_t reserved_10_15:6;
1396                 uint64_t qos_vlan:1;
1397                 uint64_t qos_diff:1;
1398                 uint64_t reserved_18_19:2;
1399                 uint64_t qos_wat:4;
1400                 uint64_t qos:3;
1401                 uint64_t reserved_27_27:1;
1402                 uint64_t grp_wat:4;
1403                 uint64_t inst_hdr:1;
1404                 uint64_t dyn_rs:1;
1405                 uint64_t tag_inc:2;
1406                 uint64_t rawdrp:1;
1407                 uint64_t reserved_37_63:27;
1408 #endif
1409         } cn30xx;
1410         struct cvmx_pip_prt_cfgx_cn38xx {
1411 #ifdef __BIG_ENDIAN_BITFIELD
1412                 uint64_t reserved_37_63:27;
1413                 uint64_t rawdrp:1;
1414                 uint64_t tag_inc:2;
1415                 uint64_t dyn_rs:1;
1416                 uint64_t inst_hdr:1;
1417                 uint64_t grp_wat:4;
1418                 uint64_t reserved_27_27:1;
1419                 uint64_t qos:3;
1420                 uint64_t qos_wat:4;
1421                 uint64_t reserved_18_19:2;
1422                 uint64_t qos_diff:1;
1423                 uint64_t qos_vlan:1;
1424                 uint64_t reserved_13_15:3;
1425                 uint64_t crc_en:1;
1426                 uint64_t reserved_10_11:2;
1427                 uint64_t mode:2;
1428                 uint64_t reserved_7_7:1;
1429                 uint64_t skip:7;
1430 #else
1431                 uint64_t skip:7;
1432                 uint64_t reserved_7_7:1;
1433                 uint64_t mode:2;
1434                 uint64_t reserved_10_11:2;
1435                 uint64_t crc_en:1;
1436                 uint64_t reserved_13_15:3;
1437                 uint64_t qos_vlan:1;
1438                 uint64_t qos_diff:1;
1439                 uint64_t reserved_18_19:2;
1440                 uint64_t qos_wat:4;
1441                 uint64_t qos:3;
1442                 uint64_t reserved_27_27:1;
1443                 uint64_t grp_wat:4;
1444                 uint64_t inst_hdr:1;
1445                 uint64_t dyn_rs:1;
1446                 uint64_t tag_inc:2;
1447                 uint64_t rawdrp:1;
1448                 uint64_t reserved_37_63:27;
1449 #endif
1450         } cn38xx;
1451         struct cvmx_pip_prt_cfgx_cn50xx {
1452 #ifdef __BIG_ENDIAN_BITFIELD
1453                 uint64_t reserved_53_63:11;
1454                 uint64_t pad_len:1;
1455                 uint64_t vlan_len:1;
1456                 uint64_t lenerr_en:1;
1457                 uint64_t maxerr_en:1;
1458                 uint64_t minerr_en:1;
1459                 uint64_t grp_wat_47:4;
1460                 uint64_t qos_wat_47:4;
1461                 uint64_t reserved_37_39:3;
1462                 uint64_t rawdrp:1;
1463                 uint64_t tag_inc:2;
1464                 uint64_t dyn_rs:1;
1465                 uint64_t inst_hdr:1;
1466                 uint64_t grp_wat:4;
1467                 uint64_t reserved_27_27:1;
1468                 uint64_t qos:3;
1469                 uint64_t qos_wat:4;
1470                 uint64_t reserved_19_19:1;
1471                 uint64_t qos_vod:1;
1472                 uint64_t qos_diff:1;
1473                 uint64_t qos_vlan:1;
1474                 uint64_t reserved_13_15:3;
1475                 uint64_t crc_en:1;
1476                 uint64_t reserved_10_11:2;
1477                 uint64_t mode:2;
1478                 uint64_t reserved_7_7:1;
1479                 uint64_t skip:7;
1480 #else
1481                 uint64_t skip:7;
1482                 uint64_t reserved_7_7:1;
1483                 uint64_t mode:2;
1484                 uint64_t reserved_10_11:2;
1485                 uint64_t crc_en:1;
1486                 uint64_t reserved_13_15:3;
1487                 uint64_t qos_vlan:1;
1488                 uint64_t qos_diff:1;
1489                 uint64_t qos_vod:1;
1490                 uint64_t reserved_19_19:1;
1491                 uint64_t qos_wat:4;
1492                 uint64_t qos:3;
1493                 uint64_t reserved_27_27:1;
1494                 uint64_t grp_wat:4;
1495                 uint64_t inst_hdr:1;
1496                 uint64_t dyn_rs:1;
1497                 uint64_t tag_inc:2;
1498                 uint64_t rawdrp:1;
1499                 uint64_t reserved_37_39:3;
1500                 uint64_t qos_wat_47:4;
1501                 uint64_t grp_wat_47:4;
1502                 uint64_t minerr_en:1;
1503                 uint64_t maxerr_en:1;
1504                 uint64_t lenerr_en:1;
1505                 uint64_t vlan_len:1;
1506                 uint64_t pad_len:1;
1507                 uint64_t reserved_53_63:11;
1508 #endif
1509         } cn50xx;
1510         struct cvmx_pip_prt_cfgx_cn52xx {
1511 #ifdef __BIG_ENDIAN_BITFIELD
1512                 uint64_t reserved_53_63:11;
1513                 uint64_t pad_len:1;
1514                 uint64_t vlan_len:1;
1515                 uint64_t lenerr_en:1;
1516                 uint64_t maxerr_en:1;
1517                 uint64_t minerr_en:1;
1518                 uint64_t grp_wat_47:4;
1519                 uint64_t qos_wat_47:4;
1520                 uint64_t reserved_37_39:3;
1521                 uint64_t rawdrp:1;
1522                 uint64_t tag_inc:2;
1523                 uint64_t dyn_rs:1;
1524                 uint64_t inst_hdr:1;
1525                 uint64_t grp_wat:4;
1526                 uint64_t hg_qos:1;
1527                 uint64_t qos:3;
1528                 uint64_t qos_wat:4;
1529                 uint64_t qos_vsel:1;
1530                 uint64_t qos_vod:1;
1531                 uint64_t qos_diff:1;
1532                 uint64_t qos_vlan:1;
1533                 uint64_t reserved_13_15:3;
1534                 uint64_t crc_en:1;
1535                 uint64_t higig_en:1;
1536                 uint64_t dsa_en:1;
1537                 uint64_t mode:2;
1538                 uint64_t reserved_7_7:1;
1539                 uint64_t skip:7;
1540 #else
1541                 uint64_t skip:7;
1542                 uint64_t reserved_7_7:1;
1543                 uint64_t mode:2;
1544                 uint64_t dsa_en:1;
1545                 uint64_t higig_en:1;
1546                 uint64_t crc_en:1;
1547                 uint64_t reserved_13_15:3;
1548                 uint64_t qos_vlan:1;
1549                 uint64_t qos_diff:1;
1550                 uint64_t qos_vod:1;
1551                 uint64_t qos_vsel:1;
1552                 uint64_t qos_wat:4;
1553                 uint64_t qos:3;
1554                 uint64_t hg_qos:1;
1555                 uint64_t grp_wat:4;
1556                 uint64_t inst_hdr:1;
1557                 uint64_t dyn_rs:1;
1558                 uint64_t tag_inc:2;
1559                 uint64_t rawdrp:1;
1560                 uint64_t reserved_37_39:3;
1561                 uint64_t qos_wat_47:4;
1562                 uint64_t grp_wat_47:4;
1563                 uint64_t minerr_en:1;
1564                 uint64_t maxerr_en:1;
1565                 uint64_t lenerr_en:1;
1566                 uint64_t vlan_len:1;
1567                 uint64_t pad_len:1;
1568                 uint64_t reserved_53_63:11;
1569 #endif
1570         } cn52xx;
1571         struct cvmx_pip_prt_cfgx_cn58xx {
1572 #ifdef __BIG_ENDIAN_BITFIELD
1573                 uint64_t reserved_37_63:27;
1574                 uint64_t rawdrp:1;
1575                 uint64_t tag_inc:2;
1576                 uint64_t dyn_rs:1;
1577                 uint64_t inst_hdr:1;
1578                 uint64_t grp_wat:4;
1579                 uint64_t reserved_27_27:1;
1580                 uint64_t qos:3;
1581                 uint64_t qos_wat:4;
1582                 uint64_t reserved_19_19:1;
1583                 uint64_t qos_vod:1;
1584                 uint64_t qos_diff:1;
1585                 uint64_t qos_vlan:1;
1586                 uint64_t reserved_13_15:3;
1587                 uint64_t crc_en:1;
1588                 uint64_t reserved_10_11:2;
1589                 uint64_t mode:2;
1590                 uint64_t reserved_7_7:1;
1591                 uint64_t skip:7;
1592 #else
1593                 uint64_t skip:7;
1594                 uint64_t reserved_7_7:1;
1595                 uint64_t mode:2;
1596                 uint64_t reserved_10_11:2;
1597                 uint64_t crc_en:1;
1598                 uint64_t reserved_13_15:3;
1599                 uint64_t qos_vlan:1;
1600                 uint64_t qos_diff:1;
1601                 uint64_t qos_vod:1;
1602                 uint64_t reserved_19_19:1;
1603                 uint64_t qos_wat:4;
1604                 uint64_t qos:3;
1605                 uint64_t reserved_27_27:1;
1606                 uint64_t grp_wat:4;
1607                 uint64_t inst_hdr:1;
1608                 uint64_t dyn_rs:1;
1609                 uint64_t tag_inc:2;
1610                 uint64_t rawdrp:1;
1611                 uint64_t reserved_37_63:27;
1612 #endif
1613         } cn58xx;
1614         struct cvmx_pip_prt_cfgx_cn68xx {
1615 #ifdef __BIG_ENDIAN_BITFIELD
1616                 uint64_t reserved_55_63:9;
1617                 uint64_t ih_pri:1;
1618                 uint64_t len_chk_sel:1;
1619                 uint64_t pad_len:1;
1620                 uint64_t vlan_len:1;
1621                 uint64_t lenerr_en:1;
1622                 uint64_t maxerr_en:1;
1623                 uint64_t minerr_en:1;
1624                 uint64_t grp_wat_47:4;
1625                 uint64_t qos_wat_47:4;
1626                 uint64_t reserved_37_39:3;
1627                 uint64_t rawdrp:1;
1628                 uint64_t tag_inc:2;
1629                 uint64_t dyn_rs:1;
1630                 uint64_t inst_hdr:1;
1631                 uint64_t grp_wat:4;
1632                 uint64_t hg_qos:1;
1633                 uint64_t qos:3;
1634                 uint64_t qos_wat:4;
1635                 uint64_t reserved_19_19:1;
1636                 uint64_t qos_vod:1;
1637                 uint64_t qos_diff:1;
1638                 uint64_t qos_vlan:1;
1639                 uint64_t reserved_13_15:3;
1640                 uint64_t crc_en:1;
1641                 uint64_t higig_en:1;
1642                 uint64_t dsa_en:1;
1643                 uint64_t mode:2;
1644                 uint64_t reserved_7_7:1;
1645                 uint64_t skip:7;
1646 #else
1647                 uint64_t skip:7;
1648                 uint64_t reserved_7_7:1;
1649                 uint64_t mode:2;
1650                 uint64_t dsa_en:1;
1651                 uint64_t higig_en:1;
1652                 uint64_t crc_en:1;
1653                 uint64_t reserved_13_15:3;
1654                 uint64_t qos_vlan:1;
1655                 uint64_t qos_diff:1;
1656                 uint64_t qos_vod:1;
1657                 uint64_t reserved_19_19:1;
1658                 uint64_t qos_wat:4;
1659                 uint64_t qos:3;
1660                 uint64_t hg_qos:1;
1661                 uint64_t grp_wat:4;
1662                 uint64_t inst_hdr:1;
1663                 uint64_t dyn_rs:1;
1664                 uint64_t tag_inc:2;
1665                 uint64_t rawdrp:1;
1666                 uint64_t reserved_37_39:3;
1667                 uint64_t qos_wat_47:4;
1668                 uint64_t grp_wat_47:4;
1669                 uint64_t minerr_en:1;
1670                 uint64_t maxerr_en:1;
1671                 uint64_t lenerr_en:1;
1672                 uint64_t vlan_len:1;
1673                 uint64_t pad_len:1;
1674                 uint64_t len_chk_sel:1;
1675                 uint64_t ih_pri:1;
1676                 uint64_t reserved_55_63:9;
1677 #endif
1678         } cn68xx;
1679 };
1680
1681 union cvmx_pip_prt_cfgbx {
1682         uint64_t u64;
1683         struct cvmx_pip_prt_cfgbx_s {
1684 #ifdef __BIG_ENDIAN_BITFIELD
1685                 uint64_t reserved_39_63:25;
1686                 uint64_t alt_skp_sel:2;
1687                 uint64_t alt_skp_en:1;
1688                 uint64_t reserved_35_35:1;
1689                 uint64_t bsel_num:2;
1690                 uint64_t bsel_en:1;
1691                 uint64_t reserved_24_31:8;
1692                 uint64_t base:8;
1693                 uint64_t reserved_6_15:10;
1694                 uint64_t bpid:6;
1695 #else
1696                 uint64_t bpid:6;
1697                 uint64_t reserved_6_15:10;
1698                 uint64_t base:8;
1699                 uint64_t reserved_24_31:8;
1700                 uint64_t bsel_en:1;
1701                 uint64_t bsel_num:2;
1702                 uint64_t reserved_35_35:1;
1703                 uint64_t alt_skp_en:1;
1704                 uint64_t alt_skp_sel:2;
1705                 uint64_t reserved_39_63:25;
1706 #endif
1707         } s;
1708         struct cvmx_pip_prt_cfgbx_cn61xx {
1709 #ifdef __BIG_ENDIAN_BITFIELD
1710                 uint64_t reserved_39_63:25;
1711                 uint64_t alt_skp_sel:2;
1712                 uint64_t alt_skp_en:1;
1713                 uint64_t reserved_35_35:1;
1714                 uint64_t bsel_num:2;
1715                 uint64_t bsel_en:1;
1716                 uint64_t reserved_0_31:32;
1717 #else
1718                 uint64_t reserved_0_31:32;
1719                 uint64_t bsel_en:1;
1720                 uint64_t bsel_num:2;
1721                 uint64_t reserved_35_35:1;
1722                 uint64_t alt_skp_en:1;
1723                 uint64_t alt_skp_sel:2;
1724                 uint64_t reserved_39_63:25;
1725 #endif
1726         } cn61xx;
1727         struct cvmx_pip_prt_cfgbx_cn66xx {
1728 #ifdef __BIG_ENDIAN_BITFIELD
1729                 uint64_t reserved_39_63:25;
1730                 uint64_t alt_skp_sel:2;
1731                 uint64_t alt_skp_en:1;
1732                 uint64_t reserved_0_35:36;
1733 #else
1734                 uint64_t reserved_0_35:36;
1735                 uint64_t alt_skp_en:1;
1736                 uint64_t alt_skp_sel:2;
1737                 uint64_t reserved_39_63:25;
1738 #endif
1739         } cn66xx;
1740         struct cvmx_pip_prt_cfgbx_cn68xxp1 {
1741 #ifdef __BIG_ENDIAN_BITFIELD
1742                 uint64_t reserved_24_63:40;
1743                 uint64_t base:8;
1744                 uint64_t reserved_6_15:10;
1745                 uint64_t bpid:6;
1746 #else
1747                 uint64_t bpid:6;
1748                 uint64_t reserved_6_15:10;
1749                 uint64_t base:8;
1750                 uint64_t reserved_24_63:40;
1751 #endif
1752         } cn68xxp1;
1753 };
1754
1755 union cvmx_pip_prt_tagx {
1756         uint64_t u64;
1757         struct cvmx_pip_prt_tagx_s {
1758 #ifdef __BIG_ENDIAN_BITFIELD
1759                 uint64_t reserved_54_63:10;
1760                 uint64_t portadd_en:1;
1761                 uint64_t inc_hwchk:1;
1762                 uint64_t reserved_50_51:2;
1763                 uint64_t grptagbase_msb:2;
1764                 uint64_t reserved_46_47:2;
1765                 uint64_t grptagmask_msb:2;
1766                 uint64_t reserved_42_43:2;
1767                 uint64_t grp_msb:2;
1768                 uint64_t grptagbase:4;
1769                 uint64_t grptagmask:4;
1770                 uint64_t grptag:1;
1771                 uint64_t grptag_mskip:1;
1772                 uint64_t tag_mode:2;
1773                 uint64_t inc_vs:2;
1774                 uint64_t inc_vlan:1;
1775                 uint64_t inc_prt_flag:1;
1776                 uint64_t ip6_dprt_flag:1;
1777                 uint64_t ip4_dprt_flag:1;
1778                 uint64_t ip6_sprt_flag:1;
1779                 uint64_t ip4_sprt_flag:1;
1780                 uint64_t ip6_nxth_flag:1;
1781                 uint64_t ip4_pctl_flag:1;
1782                 uint64_t ip6_dst_flag:1;
1783                 uint64_t ip4_dst_flag:1;
1784                 uint64_t ip6_src_flag:1;
1785                 uint64_t ip4_src_flag:1;
1786                 uint64_t tcp6_tag_type:2;
1787                 uint64_t tcp4_tag_type:2;
1788                 uint64_t ip6_tag_type:2;
1789                 uint64_t ip4_tag_type:2;
1790                 uint64_t non_tag_type:2;
1791                 uint64_t grp:4;
1792 #else
1793                 uint64_t grp:4;
1794                 uint64_t non_tag_type:2;
1795                 uint64_t ip4_tag_type:2;
1796                 uint64_t ip6_tag_type:2;
1797                 uint64_t tcp4_tag_type:2;
1798                 uint64_t tcp6_tag_type:2;
1799                 uint64_t ip4_src_flag:1;
1800                 uint64_t ip6_src_flag:1;
1801                 uint64_t ip4_dst_flag:1;
1802                 uint64_t ip6_dst_flag:1;
1803                 uint64_t ip4_pctl_flag:1;
1804                 uint64_t ip6_nxth_flag:1;
1805                 uint64_t ip4_sprt_flag:1;
1806                 uint64_t ip6_sprt_flag:1;
1807                 uint64_t ip4_dprt_flag:1;
1808                 uint64_t ip6_dprt_flag:1;
1809                 uint64_t inc_prt_flag:1;
1810                 uint64_t inc_vlan:1;
1811                 uint64_t inc_vs:2;
1812                 uint64_t tag_mode:2;
1813                 uint64_t grptag_mskip:1;
1814                 uint64_t grptag:1;
1815                 uint64_t grptagmask:4;
1816                 uint64_t grptagbase:4;
1817                 uint64_t grp_msb:2;
1818                 uint64_t reserved_42_43:2;
1819                 uint64_t grptagmask_msb:2;
1820                 uint64_t reserved_46_47:2;
1821                 uint64_t grptagbase_msb:2;
1822                 uint64_t reserved_50_51:2;
1823                 uint64_t inc_hwchk:1;
1824                 uint64_t portadd_en:1;
1825                 uint64_t reserved_54_63:10;
1826 #endif
1827         } s;
1828         struct cvmx_pip_prt_tagx_cn30xx {
1829 #ifdef __BIG_ENDIAN_BITFIELD
1830                 uint64_t reserved_40_63:24;
1831                 uint64_t grptagbase:4;
1832                 uint64_t grptagmask:4;
1833                 uint64_t grptag:1;
1834                 uint64_t reserved_30_30:1;
1835                 uint64_t tag_mode:2;
1836                 uint64_t inc_vs:2;
1837                 uint64_t inc_vlan:1;
1838                 uint64_t inc_prt_flag:1;
1839                 uint64_t ip6_dprt_flag:1;
1840                 uint64_t ip4_dprt_flag:1;
1841                 uint64_t ip6_sprt_flag:1;
1842                 uint64_t ip4_sprt_flag:1;
1843                 uint64_t ip6_nxth_flag:1;
1844                 uint64_t ip4_pctl_flag:1;
1845                 uint64_t ip6_dst_flag:1;
1846                 uint64_t ip4_dst_flag:1;
1847                 uint64_t ip6_src_flag:1;
1848                 uint64_t ip4_src_flag:1;
1849                 uint64_t tcp6_tag_type:2;
1850                 uint64_t tcp4_tag_type:2;
1851                 uint64_t ip6_tag_type:2;
1852                 uint64_t ip4_tag_type:2;
1853                 uint64_t non_tag_type:2;
1854                 uint64_t grp:4;
1855 #else
1856                 uint64_t grp:4;
1857                 uint64_t non_tag_type:2;
1858                 uint64_t ip4_tag_type:2;
1859                 uint64_t ip6_tag_type:2;
1860                 uint64_t tcp4_tag_type:2;
1861                 uint64_t tcp6_tag_type:2;
1862                 uint64_t ip4_src_flag:1;
1863                 uint64_t ip6_src_flag:1;
1864                 uint64_t ip4_dst_flag:1;
1865                 uint64_t ip6_dst_flag:1;
1866                 uint64_t ip4_pctl_flag:1;
1867                 uint64_t ip6_nxth_flag:1;
1868                 uint64_t ip4_sprt_flag:1;
1869                 uint64_t ip6_sprt_flag:1;
1870                 uint64_t ip4_dprt_flag:1;
1871                 uint64_t ip6_dprt_flag:1;
1872                 uint64_t inc_prt_flag:1;
1873                 uint64_t inc_vlan:1;
1874                 uint64_t inc_vs:2;
1875                 uint64_t tag_mode:2;
1876                 uint64_t reserved_30_30:1;
1877                 uint64_t grptag:1;
1878                 uint64_t grptagmask:4;
1879                 uint64_t grptagbase:4;
1880                 uint64_t reserved_40_63:24;
1881 #endif
1882         } cn30xx;
1883         struct cvmx_pip_prt_tagx_cn50xx {
1884 #ifdef __BIG_ENDIAN_BITFIELD
1885                 uint64_t reserved_40_63:24;
1886                 uint64_t grptagbase:4;
1887                 uint64_t grptagmask:4;
1888                 uint64_t grptag:1;
1889                 uint64_t grptag_mskip:1;
1890                 uint64_t tag_mode:2;
1891                 uint64_t inc_vs:2;
1892                 uint64_t inc_vlan:1;
1893                 uint64_t inc_prt_flag:1;
1894                 uint64_t ip6_dprt_flag:1;
1895                 uint64_t ip4_dprt_flag:1;
1896                 uint64_t ip6_sprt_flag:1;
1897                 uint64_t ip4_sprt_flag:1;
1898                 uint64_t ip6_nxth_flag:1;
1899                 uint64_t ip4_pctl_flag:1;
1900                 uint64_t ip6_dst_flag:1;
1901                 uint64_t ip4_dst_flag:1;
1902                 uint64_t ip6_src_flag:1;
1903                 uint64_t ip4_src_flag:1;
1904                 uint64_t tcp6_tag_type:2;
1905                 uint64_t tcp4_tag_type:2;
1906                 uint64_t ip6_tag_type:2;
1907                 uint64_t ip4_tag_type:2;
1908                 uint64_t non_tag_type:2;
1909                 uint64_t grp:4;
1910 #else
1911                 uint64_t grp:4;
1912                 uint64_t non_tag_type:2;
1913                 uint64_t ip4_tag_type:2;
1914                 uint64_t ip6_tag_type:2;
1915                 uint64_t tcp4_tag_type:2;
1916                 uint64_t tcp6_tag_type:2;
1917                 uint64_t ip4_src_flag:1;
1918                 uint64_t ip6_src_flag:1;
1919                 uint64_t ip4_dst_flag:1;
1920                 uint64_t ip6_dst_flag:1;
1921                 uint64_t ip4_pctl_flag:1;
1922                 uint64_t ip6_nxth_flag:1;
1923                 uint64_t ip4_sprt_flag:1;
1924                 uint64_t ip6_sprt_flag:1;
1925                 uint64_t ip4_dprt_flag:1;
1926                 uint64_t ip6_dprt_flag:1;
1927                 uint64_t inc_prt_flag:1;
1928                 uint64_t inc_vlan:1;
1929                 uint64_t inc_vs:2;
1930                 uint64_t tag_mode:2;
1931                 uint64_t grptag_mskip:1;
1932                 uint64_t grptag:1;
1933                 uint64_t grptagmask:4;
1934                 uint64_t grptagbase:4;
1935                 uint64_t reserved_40_63:24;
1936 #endif
1937         } cn50xx;
1938 };
1939
1940 union cvmx_pip_qos_diffx {
1941         uint64_t u64;
1942         struct cvmx_pip_qos_diffx_s {
1943 #ifdef __BIG_ENDIAN_BITFIELD
1944                 uint64_t reserved_3_63:61;
1945                 uint64_t qos:3;
1946 #else
1947                 uint64_t qos:3;
1948                 uint64_t reserved_3_63:61;
1949 #endif
1950         } s;
1951 };
1952
1953 union cvmx_pip_qos_vlanx {
1954         uint64_t u64;
1955         struct cvmx_pip_qos_vlanx_s {
1956 #ifdef __BIG_ENDIAN_BITFIELD
1957                 uint64_t reserved_7_63:57;
1958                 uint64_t qos1:3;
1959                 uint64_t reserved_3_3:1;
1960                 uint64_t qos:3;
1961 #else
1962                 uint64_t qos:3;
1963                 uint64_t reserved_3_3:1;
1964                 uint64_t qos1:3;
1965                 uint64_t reserved_7_63:57;
1966 #endif
1967         } s;
1968         struct cvmx_pip_qos_vlanx_cn30xx {
1969 #ifdef __BIG_ENDIAN_BITFIELD
1970                 uint64_t reserved_3_63:61;
1971                 uint64_t qos:3;
1972 #else
1973                 uint64_t qos:3;
1974                 uint64_t reserved_3_63:61;
1975 #endif
1976         } cn30xx;
1977 };
1978
1979 union cvmx_pip_qos_watchx {
1980         uint64_t u64;
1981         struct cvmx_pip_qos_watchx_s {
1982 #ifdef __BIG_ENDIAN_BITFIELD
1983                 uint64_t reserved_48_63:16;
1984                 uint64_t mask:16;
1985                 uint64_t reserved_30_31:2;
1986                 uint64_t grp:6;
1987                 uint64_t reserved_23_23:1;
1988                 uint64_t qos:3;
1989                 uint64_t reserved_19_19:1;
1990                 uint64_t match_type:3;
1991                 uint64_t match_value:16;
1992 #else
1993                 uint64_t match_value:16;
1994                 uint64_t match_type:3;
1995                 uint64_t reserved_19_19:1;
1996                 uint64_t qos:3;
1997                 uint64_t reserved_23_23:1;
1998                 uint64_t grp:6;
1999                 uint64_t reserved_30_31:2;
2000                 uint64_t mask:16;
2001                 uint64_t reserved_48_63:16;
2002 #endif
2003         } s;
2004         struct cvmx_pip_qos_watchx_cn30xx {
2005 #ifdef __BIG_ENDIAN_BITFIELD
2006                 uint64_t reserved_48_63:16;
2007                 uint64_t mask:16;
2008                 uint64_t reserved_28_31:4;
2009                 uint64_t grp:4;
2010                 uint64_t reserved_23_23:1;
2011                 uint64_t qos:3;
2012                 uint64_t reserved_18_19:2;
2013                 uint64_t match_type:2;
2014                 uint64_t match_value:16;
2015 #else
2016                 uint64_t match_value:16;
2017                 uint64_t match_type:2;
2018                 uint64_t reserved_18_19:2;
2019                 uint64_t qos:3;
2020                 uint64_t reserved_23_23:1;
2021                 uint64_t grp:4;
2022                 uint64_t reserved_28_31:4;
2023                 uint64_t mask:16;
2024                 uint64_t reserved_48_63:16;
2025 #endif
2026         } cn30xx;
2027         struct cvmx_pip_qos_watchx_cn50xx {
2028 #ifdef __BIG_ENDIAN_BITFIELD
2029                 uint64_t reserved_48_63:16;
2030                 uint64_t mask:16;
2031                 uint64_t reserved_28_31:4;
2032                 uint64_t grp:4;
2033                 uint64_t reserved_23_23:1;
2034                 uint64_t qos:3;
2035                 uint64_t reserved_19_19:1;
2036                 uint64_t match_type:3;
2037                 uint64_t match_value:16;
2038 #else
2039                 uint64_t match_value:16;
2040                 uint64_t match_type:3;
2041                 uint64_t reserved_19_19:1;
2042                 uint64_t qos:3;
2043                 uint64_t reserved_23_23:1;
2044                 uint64_t grp:4;
2045                 uint64_t reserved_28_31:4;
2046                 uint64_t mask:16;
2047                 uint64_t reserved_48_63:16;
2048 #endif
2049         } cn50xx;
2050 };
2051
2052 union cvmx_pip_raw_word {
2053         uint64_t u64;
2054         struct cvmx_pip_raw_word_s {
2055 #ifdef __BIG_ENDIAN_BITFIELD
2056                 uint64_t reserved_56_63:8;
2057                 uint64_t word:56;
2058 #else
2059                 uint64_t word:56;
2060                 uint64_t reserved_56_63:8;
2061 #endif
2062         } s;
2063 };
2064
2065 union cvmx_pip_sft_rst {
2066         uint64_t u64;
2067         struct cvmx_pip_sft_rst_s {
2068 #ifdef __BIG_ENDIAN_BITFIELD
2069                 uint64_t reserved_1_63:63;
2070                 uint64_t rst:1;
2071 #else
2072                 uint64_t rst:1;
2073                 uint64_t reserved_1_63:63;
2074 #endif
2075         } s;
2076 };
2077
2078 union cvmx_pip_stat0_x {
2079         uint64_t u64;
2080         struct cvmx_pip_stat0_x_s {
2081 #ifdef __BIG_ENDIAN_BITFIELD
2082                 uint64_t drp_pkts:32;
2083                 uint64_t drp_octs:32;
2084 #else
2085                 uint64_t drp_octs:32;
2086                 uint64_t drp_pkts:32;
2087 #endif
2088         } s;
2089 };
2090
2091 union cvmx_pip_stat0_prtx {
2092         uint64_t u64;
2093         struct cvmx_pip_stat0_prtx_s {
2094 #ifdef __BIG_ENDIAN_BITFIELD
2095                 uint64_t drp_pkts:32;
2096                 uint64_t drp_octs:32;
2097 #else
2098                 uint64_t drp_octs:32;
2099                 uint64_t drp_pkts:32;
2100 #endif
2101         } s;
2102 };
2103
2104 union cvmx_pip_stat10_x {
2105         uint64_t u64;
2106         struct cvmx_pip_stat10_x_s {
2107 #ifdef __BIG_ENDIAN_BITFIELD
2108                 uint64_t bcast:32;
2109                 uint64_t mcast:32;
2110 #else
2111                 uint64_t mcast:32;
2112                 uint64_t bcast:32;
2113 #endif
2114         } s;
2115 };
2116
2117 union cvmx_pip_stat10_prtx {
2118         uint64_t u64;
2119         struct cvmx_pip_stat10_prtx_s {
2120 #ifdef __BIG_ENDIAN_BITFIELD
2121                 uint64_t bcast:32;
2122                 uint64_t mcast:32;
2123 #else
2124                 uint64_t mcast:32;
2125                 uint64_t bcast:32;
2126 #endif
2127         } s;
2128 };
2129
2130 union cvmx_pip_stat11_x {
2131         uint64_t u64;
2132         struct cvmx_pip_stat11_x_s {
2133 #ifdef __BIG_ENDIAN_BITFIELD
2134                 uint64_t bcast:32;
2135                 uint64_t mcast:32;
2136 #else
2137                 uint64_t mcast:32;
2138                 uint64_t bcast:32;
2139 #endif
2140         } s;
2141 };
2142
2143 union cvmx_pip_stat11_prtx {
2144         uint64_t u64;
2145         struct cvmx_pip_stat11_prtx_s {
2146 #ifdef __BIG_ENDIAN_BITFIELD
2147                 uint64_t bcast:32;
2148                 uint64_t mcast:32;
2149 #else
2150                 uint64_t mcast:32;
2151                 uint64_t bcast:32;
2152 #endif
2153         } s;
2154 };
2155
2156 union cvmx_pip_stat1_x {
2157         uint64_t u64;
2158         struct cvmx_pip_stat1_x_s {
2159 #ifdef __BIG_ENDIAN_BITFIELD
2160                 uint64_t reserved_48_63:16;
2161                 uint64_t octs:48;
2162 #else
2163                 uint64_t octs:48;
2164                 uint64_t reserved_48_63:16;
2165 #endif
2166         } s;
2167 };
2168
2169 union cvmx_pip_stat1_prtx {
2170         uint64_t u64;
2171         struct cvmx_pip_stat1_prtx_s {
2172 #ifdef __BIG_ENDIAN_BITFIELD
2173                 uint64_t reserved_48_63:16;
2174                 uint64_t octs:48;
2175 #else
2176                 uint64_t octs:48;
2177                 uint64_t reserved_48_63:16;
2178 #endif
2179         } s;
2180 };
2181
2182 union cvmx_pip_stat2_x {
2183         uint64_t u64;
2184         struct cvmx_pip_stat2_x_s {
2185 #ifdef __BIG_ENDIAN_BITFIELD
2186                 uint64_t pkts:32;
2187                 uint64_t raw:32;
2188 #else
2189                 uint64_t raw:32;
2190                 uint64_t pkts:32;
2191 #endif
2192         } s;
2193 };
2194
2195 union cvmx_pip_stat2_prtx {
2196         uint64_t u64;
2197         struct cvmx_pip_stat2_prtx_s {
2198 #ifdef __BIG_ENDIAN_BITFIELD
2199                 uint64_t pkts:32;
2200                 uint64_t raw:32;
2201 #else
2202                 uint64_t raw:32;
2203                 uint64_t pkts:32;
2204 #endif
2205         } s;
2206 };
2207
2208 union cvmx_pip_stat3_x {
2209         uint64_t u64;
2210         struct cvmx_pip_stat3_x_s {
2211 #ifdef __BIG_ENDIAN_BITFIELD
2212                 uint64_t bcst:32;
2213                 uint64_t mcst:32;
2214 #else
2215                 uint64_t mcst:32;
2216                 uint64_t bcst:32;
2217 #endif
2218         } s;
2219 };
2220
2221 union cvmx_pip_stat3_prtx {
2222         uint64_t u64;
2223         struct cvmx_pip_stat3_prtx_s {
2224 #ifdef __BIG_ENDIAN_BITFIELD
2225                 uint64_t bcst:32;
2226                 uint64_t mcst:32;
2227 #else
2228                 uint64_t mcst:32;
2229                 uint64_t bcst:32;
2230 #endif
2231         } s;
2232 };
2233
2234 union cvmx_pip_stat4_x {
2235         uint64_t u64;
2236         struct cvmx_pip_stat4_x_s {
2237 #ifdef __BIG_ENDIAN_BITFIELD
2238                 uint64_t h65to127:32;
2239                 uint64_t h64:32;
2240 #else
2241                 uint64_t h64:32;
2242                 uint64_t h65to127:32;
2243 #endif
2244         } s;
2245 };
2246
2247 union cvmx_pip_stat4_prtx {
2248         uint64_t u64;
2249         struct cvmx_pip_stat4_prtx_s {
2250 #ifdef __BIG_ENDIAN_BITFIELD
2251                 uint64_t h65to127:32;
2252                 uint64_t h64:32;
2253 #else
2254                 uint64_t h64:32;
2255                 uint64_t h65to127:32;
2256 #endif
2257         } s;
2258 };
2259
2260 union cvmx_pip_stat5_x {
2261         uint64_t u64;
2262         struct cvmx_pip_stat5_x_s {
2263 #ifdef __BIG_ENDIAN_BITFIELD
2264                 uint64_t h256to511:32;
2265                 uint64_t h128to255:32;
2266 #else
2267                 uint64_t h128to255:32;
2268                 uint64_t h256to511:32;
2269 #endif
2270         } s;
2271 };
2272
2273 union cvmx_pip_stat5_prtx {
2274         uint64_t u64;
2275         struct cvmx_pip_stat5_prtx_s {
2276 #ifdef __BIG_ENDIAN_BITFIELD
2277                 uint64_t h256to511:32;
2278                 uint64_t h128to255:32;
2279 #else
2280                 uint64_t h128to255:32;
2281                 uint64_t h256to511:32;
2282 #endif
2283         } s;
2284 };
2285
2286 union cvmx_pip_stat6_x {
2287         uint64_t u64;
2288         struct cvmx_pip_stat6_x_s {
2289 #ifdef __BIG_ENDIAN_BITFIELD
2290                 uint64_t h1024to1518:32;
2291                 uint64_t h512to1023:32;
2292 #else
2293                 uint64_t h512to1023:32;
2294                 uint64_t h1024to1518:32;
2295 #endif
2296         } s;
2297 };
2298
2299 union cvmx_pip_stat6_prtx {
2300         uint64_t u64;
2301         struct cvmx_pip_stat6_prtx_s {
2302 #ifdef __BIG_ENDIAN_BITFIELD
2303                 uint64_t h1024to1518:32;
2304                 uint64_t h512to1023:32;
2305 #else
2306                 uint64_t h512to1023:32;
2307                 uint64_t h1024to1518:32;
2308 #endif
2309         } s;
2310 };
2311
2312 union cvmx_pip_stat7_x {
2313         uint64_t u64;
2314         struct cvmx_pip_stat7_x_s {
2315 #ifdef __BIG_ENDIAN_BITFIELD
2316                 uint64_t fcs:32;
2317                 uint64_t h1519:32;
2318 #else
2319                 uint64_t h1519:32;
2320                 uint64_t fcs:32;
2321 #endif
2322         } s;
2323 };
2324
2325 union cvmx_pip_stat7_prtx {
2326         uint64_t u64;
2327         struct cvmx_pip_stat7_prtx_s {
2328 #ifdef __BIG_ENDIAN_BITFIELD
2329                 uint64_t fcs:32;
2330                 uint64_t h1519:32;
2331 #else
2332                 uint64_t h1519:32;
2333                 uint64_t fcs:32;
2334 #endif
2335         } s;
2336 };
2337
2338 union cvmx_pip_stat8_x {
2339         uint64_t u64;
2340         struct cvmx_pip_stat8_x_s {
2341 #ifdef __BIG_ENDIAN_BITFIELD
2342                 uint64_t frag:32;
2343                 uint64_t undersz:32;
2344 #else
2345                 uint64_t undersz:32;
2346                 uint64_t frag:32;
2347 #endif
2348         } s;
2349 };
2350
2351 union cvmx_pip_stat8_prtx {
2352         uint64_t u64;
2353         struct cvmx_pip_stat8_prtx_s {
2354 #ifdef __BIG_ENDIAN_BITFIELD
2355                 uint64_t frag:32;
2356                 uint64_t undersz:32;
2357 #else
2358                 uint64_t undersz:32;
2359                 uint64_t frag:32;
2360 #endif
2361         } s;
2362 };
2363
2364 union cvmx_pip_stat9_x {
2365         uint64_t u64;
2366         struct cvmx_pip_stat9_x_s {
2367 #ifdef __BIG_ENDIAN_BITFIELD
2368                 uint64_t jabber:32;
2369                 uint64_t oversz:32;
2370 #else
2371                 uint64_t oversz:32;
2372                 uint64_t jabber:32;
2373 #endif
2374         } s;
2375 };
2376
2377 union cvmx_pip_stat9_prtx {
2378         uint64_t u64;
2379         struct cvmx_pip_stat9_prtx_s {
2380 #ifdef __BIG_ENDIAN_BITFIELD
2381                 uint64_t jabber:32;
2382                 uint64_t oversz:32;
2383 #else
2384                 uint64_t oversz:32;
2385                 uint64_t jabber:32;
2386 #endif
2387         } s;
2388 };
2389
2390 union cvmx_pip_stat_ctl {
2391         uint64_t u64;
2392         struct cvmx_pip_stat_ctl_s {
2393 #ifdef __BIG_ENDIAN_BITFIELD
2394                 uint64_t reserved_9_63:55;
2395                 uint64_t mode:1;
2396                 uint64_t reserved_1_7:7;
2397                 uint64_t rdclr:1;
2398 #else
2399                 uint64_t rdclr:1;
2400                 uint64_t reserved_1_7:7;
2401                 uint64_t mode:1;
2402                 uint64_t reserved_9_63:55;
2403 #endif
2404         } s;
2405         struct cvmx_pip_stat_ctl_cn30xx {
2406 #ifdef __BIG_ENDIAN_BITFIELD
2407                 uint64_t reserved_1_63:63;
2408                 uint64_t rdclr:1;
2409 #else
2410                 uint64_t rdclr:1;
2411                 uint64_t reserved_1_63:63;
2412 #endif
2413         } cn30xx;
2414 };
2415
2416 union cvmx_pip_stat_inb_errsx {
2417         uint64_t u64;
2418         struct cvmx_pip_stat_inb_errsx_s {
2419 #ifdef __BIG_ENDIAN_BITFIELD
2420                 uint64_t reserved_16_63:48;
2421                 uint64_t errs:16;
2422 #else
2423                 uint64_t errs:16;
2424                 uint64_t reserved_16_63:48;
2425 #endif
2426         } s;
2427 };
2428
2429 union cvmx_pip_stat_inb_errs_pkndx {
2430         uint64_t u64;
2431         struct cvmx_pip_stat_inb_errs_pkndx_s {
2432 #ifdef __BIG_ENDIAN_BITFIELD
2433                 uint64_t reserved_16_63:48;
2434                 uint64_t errs:16;
2435 #else
2436                 uint64_t errs:16;
2437                 uint64_t reserved_16_63:48;
2438 #endif
2439         } s;
2440 };
2441
2442 union cvmx_pip_stat_inb_octsx {
2443         uint64_t u64;
2444         struct cvmx_pip_stat_inb_octsx_s {
2445 #ifdef __BIG_ENDIAN_BITFIELD
2446                 uint64_t reserved_48_63:16;
2447                 uint64_t octs:48;
2448 #else
2449                 uint64_t octs:48;
2450                 uint64_t reserved_48_63:16;
2451 #endif
2452         } s;
2453 };
2454
2455 union cvmx_pip_stat_inb_octs_pkndx {
2456         uint64_t u64;
2457         struct cvmx_pip_stat_inb_octs_pkndx_s {
2458 #ifdef __BIG_ENDIAN_BITFIELD
2459                 uint64_t reserved_48_63:16;
2460                 uint64_t octs:48;
2461 #else
2462                 uint64_t octs:48;
2463                 uint64_t reserved_48_63:16;
2464 #endif
2465         } s;
2466 };
2467
2468 union cvmx_pip_stat_inb_pktsx {
2469         uint64_t u64;
2470         struct cvmx_pip_stat_inb_pktsx_s {
2471 #ifdef __BIG_ENDIAN_BITFIELD
2472                 uint64_t reserved_32_63:32;
2473                 uint64_t pkts:32;
2474 #else
2475                 uint64_t pkts:32;
2476                 uint64_t reserved_32_63:32;
2477 #endif
2478         } s;
2479 };
2480
2481 union cvmx_pip_stat_inb_pkts_pkndx {
2482         uint64_t u64;
2483         struct cvmx_pip_stat_inb_pkts_pkndx_s {
2484 #ifdef __BIG_ENDIAN_BITFIELD
2485                 uint64_t reserved_32_63:32;
2486                 uint64_t pkts:32;
2487 #else
2488                 uint64_t pkts:32;
2489                 uint64_t reserved_32_63:32;
2490 #endif
2491         } s;
2492 };
2493
2494 union cvmx_pip_sub_pkind_fcsx {
2495         uint64_t u64;
2496         struct cvmx_pip_sub_pkind_fcsx_s {
2497 #ifdef __BIG_ENDIAN_BITFIELD
2498                 uint64_t port_bit:64;
2499 #else
2500                 uint64_t port_bit:64;
2501 #endif
2502         } s;
2503 };
2504
2505 union cvmx_pip_tag_incx {
2506         uint64_t u64;
2507         struct cvmx_pip_tag_incx_s {
2508 #ifdef __BIG_ENDIAN_BITFIELD
2509                 uint64_t reserved_8_63:56;
2510                 uint64_t en:8;
2511 #else
2512                 uint64_t en:8;
2513                 uint64_t reserved_8_63:56;
2514 #endif
2515         } s;
2516 };
2517
2518 union cvmx_pip_tag_mask {
2519         uint64_t u64;
2520         struct cvmx_pip_tag_mask_s {
2521 #ifdef __BIG_ENDIAN_BITFIELD
2522                 uint64_t reserved_16_63:48;
2523                 uint64_t mask:16;
2524 #else
2525                 uint64_t mask:16;
2526                 uint64_t reserved_16_63:48;
2527 #endif
2528         } s;
2529 };
2530
2531 union cvmx_pip_tag_secret {
2532         uint64_t u64;
2533         struct cvmx_pip_tag_secret_s {
2534 #ifdef __BIG_ENDIAN_BITFIELD
2535                 uint64_t reserved_32_63:32;
2536                 uint64_t dst:16;
2537                 uint64_t src:16;
2538 #else
2539                 uint64_t src:16;
2540                 uint64_t dst:16;
2541                 uint64_t reserved_32_63:32;
2542 #endif
2543         } s;
2544 };
2545
2546 union cvmx_pip_todo_entry {
2547         uint64_t u64;
2548         struct cvmx_pip_todo_entry_s {
2549 #ifdef __BIG_ENDIAN_BITFIELD
2550                 uint64_t val:1;
2551                 uint64_t reserved_62_62:1;
2552                 uint64_t entry:62;
2553 #else
2554                 uint64_t entry:62;
2555                 uint64_t reserved_62_62:1;
2556                 uint64_t val:1;
2557 #endif
2558         } s;
2559 };
2560
2561 union cvmx_pip_vlan_etypesx {
2562         uint64_t u64;
2563         struct cvmx_pip_vlan_etypesx_s {
2564 #ifdef __BIG_ENDIAN_BITFIELD
2565                 uint64_t type3:16;
2566                 uint64_t type2:16;
2567                 uint64_t type1:16;
2568                 uint64_t type0:16;
2569 #else
2570                 uint64_t type0:16;
2571                 uint64_t type1:16;
2572                 uint64_t type2:16;
2573                 uint64_t type3:16;
2574 #endif
2575         } s;
2576 };
2577
2578 union cvmx_pip_xstat0_prtx {
2579         uint64_t u64;
2580         struct cvmx_pip_xstat0_prtx_s {
2581 #ifdef __BIG_ENDIAN_BITFIELD
2582                 uint64_t drp_pkts:32;
2583                 uint64_t drp_octs:32;
2584 #else
2585                 uint64_t drp_octs:32;
2586                 uint64_t drp_pkts:32;
2587 #endif
2588         } s;
2589 };
2590
2591 union cvmx_pip_xstat10_prtx {
2592         uint64_t u64;
2593         struct cvmx_pip_xstat10_prtx_s {
2594 #ifdef __BIG_ENDIAN_BITFIELD
2595                 uint64_t bcast:32;
2596                 uint64_t mcast:32;
2597 #else
2598                 uint64_t mcast:32;
2599                 uint64_t bcast:32;
2600 #endif
2601         } s;
2602 };
2603
2604 union cvmx_pip_xstat11_prtx {
2605         uint64_t u64;
2606         struct cvmx_pip_xstat11_prtx_s {
2607 #ifdef __BIG_ENDIAN_BITFIELD
2608                 uint64_t bcast:32;
2609                 uint64_t mcast:32;
2610 #else
2611                 uint64_t mcast:32;
2612                 uint64_t bcast:32;
2613 #endif
2614         } s;
2615 };
2616
2617 union cvmx_pip_xstat1_prtx {
2618         uint64_t u64;
2619         struct cvmx_pip_xstat1_prtx_s {
2620 #ifdef __BIG_ENDIAN_BITFIELD
2621                 uint64_t reserved_48_63:16;
2622                 uint64_t octs:48;
2623 #else
2624                 uint64_t octs:48;
2625                 uint64_t reserved_48_63:16;
2626 #endif
2627         } s;
2628 };
2629
2630 union cvmx_pip_xstat2_prtx {
2631         uint64_t u64;
2632         struct cvmx_pip_xstat2_prtx_s {
2633 #ifdef __BIG_ENDIAN_BITFIELD
2634                 uint64_t pkts:32;
2635                 uint64_t raw:32;
2636 #else
2637                 uint64_t raw:32;
2638                 uint64_t pkts:32;
2639 #endif
2640         } s;
2641 };
2642
2643 union cvmx_pip_xstat3_prtx {
2644         uint64_t u64;
2645         struct cvmx_pip_xstat3_prtx_s {
2646 #ifdef __BIG_ENDIAN_BITFIELD
2647                 uint64_t bcst:32;
2648                 uint64_t mcst:32;
2649 #else
2650                 uint64_t mcst:32;
2651                 uint64_t bcst:32;
2652 #endif
2653         } s;
2654 };
2655
2656 union cvmx_pip_xstat4_prtx {
2657         uint64_t u64;
2658         struct cvmx_pip_xstat4_prtx_s {
2659 #ifdef __BIG_ENDIAN_BITFIELD
2660                 uint64_t h65to127:32;
2661                 uint64_t h64:32;
2662 #else
2663                 uint64_t h64:32;
2664                 uint64_t h65to127:32;
2665 #endif
2666         } s;
2667 };
2668
2669 union cvmx_pip_xstat5_prtx {
2670         uint64_t u64;
2671         struct cvmx_pip_xstat5_prtx_s {
2672 #ifdef __BIG_ENDIAN_BITFIELD
2673                 uint64_t h256to511:32;
2674                 uint64_t h128to255:32;
2675 #else
2676                 uint64_t h128to255:32;
2677                 uint64_t h256to511:32;
2678 #endif
2679         } s;
2680 };
2681
2682 union cvmx_pip_xstat6_prtx {
2683         uint64_t u64;
2684         struct cvmx_pip_xstat6_prtx_s {
2685 #ifdef __BIG_ENDIAN_BITFIELD
2686                 uint64_t h1024to1518:32;
2687                 uint64_t h512to1023:32;
2688 #else
2689                 uint64_t h512to1023:32;
2690                 uint64_t h1024to1518:32;
2691 #endif
2692         } s;
2693 };
2694
2695 union cvmx_pip_xstat7_prtx {
2696         uint64_t u64;
2697         struct cvmx_pip_xstat7_prtx_s {
2698 #ifdef __BIG_ENDIAN_BITFIELD
2699                 uint64_t fcs:32;
2700                 uint64_t h1519:32;
2701 #else
2702                 uint64_t h1519:32;
2703                 uint64_t fcs:32;
2704 #endif
2705         } s;
2706 };
2707
2708 union cvmx_pip_xstat8_prtx {
2709         uint64_t u64;
2710         struct cvmx_pip_xstat8_prtx_s {
2711 #ifdef __BIG_ENDIAN_BITFIELD
2712                 uint64_t frag:32;
2713                 uint64_t undersz:32;
2714 #else
2715                 uint64_t undersz:32;
2716                 uint64_t frag:32;
2717 #endif
2718         } s;
2719 };
2720
2721 union cvmx_pip_xstat9_prtx {
2722         uint64_t u64;
2723         struct cvmx_pip_xstat9_prtx_s {
2724 #ifdef __BIG_ENDIAN_BITFIELD
2725                 uint64_t jabber:32;
2726                 uint64_t oversz:32;
2727 #else
2728                 uint64_t oversz:32;
2729                 uint64_t jabber:32;
2730 #endif
2731         } s;
2732 };
2733
2734 #endif