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 */
35enum 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
132union 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
165union 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
184union 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
224union 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
247union 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
288union 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
350union 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
363union 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
378union 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
391union 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
408union 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
449union 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
490union 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
505union 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
530union 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
861union 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
882union 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
1068union 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
1254union 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
1267union 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
1306union 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
1681union 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
1755union 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
1940union 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
1953union 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
1979union 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
2052union 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
2065union 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
2078union 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
2091union 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
2104union 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
2117union 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
2130union 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
2143union 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
2156union 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
2169union 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
2182union 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
2195union 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
2208union 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
2221union 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
2234union 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
2247union 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
2260union 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
2273union 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
2286union 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
2299union 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
2312union 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
2325union 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
2338union 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
2351union 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
2364union 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
2377union 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
2390union 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
2416union 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
2429union 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
2442union 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
2455union 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
2468union 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
2481union 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
2494union 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
2505union 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
2518union 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
2531union 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
2546union 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
2561union 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
2578union 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
2591union 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
2604union 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
2617union 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
2630union 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
2643union 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
2656union 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
2669union 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
2682union 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
2695union 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
2708union 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
2721union 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
2735