• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-R7000-V1.0.7.12_1.2.5/components/opensource/linux/linux-2.6.36/drivers/staging/octeon/
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-2008 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_BCK_PRS \
55	 CVMX_ADD_IO_SEG(0x00011800A0000038ull)
56#define CVMX_PIP_BIST_STATUS \
57	 CVMX_ADD_IO_SEG(0x00011800A0000000ull)
58#define CVMX_PIP_CRC_CTLX(offset) \
59	 CVMX_ADD_IO_SEG(0x00011800A0000040ull + (((offset) & 1) * 8))
60#define CVMX_PIP_CRC_IVX(offset) \
61	 CVMX_ADD_IO_SEG(0x00011800A0000050ull + (((offset) & 1) * 8))
62#define CVMX_PIP_DEC_IPSECX(offset) \
63	 CVMX_ADD_IO_SEG(0x00011800A0000080ull + (((offset) & 3) * 8))
64#define CVMX_PIP_DSA_SRC_GRP \
65	 CVMX_ADD_IO_SEG(0x00011800A0000190ull)
66#define CVMX_PIP_DSA_VID_GRP \
67	 CVMX_ADD_IO_SEG(0x00011800A0000198ull)
68#define CVMX_PIP_FRM_LEN_CHKX(offset) \
69	 CVMX_ADD_IO_SEG(0x00011800A0000180ull + (((offset) & 1) * 8))
70#define CVMX_PIP_GBL_CFG \
71	 CVMX_ADD_IO_SEG(0x00011800A0000028ull)
72#define CVMX_PIP_GBL_CTL \
73	 CVMX_ADD_IO_SEG(0x00011800A0000020ull)
74#define CVMX_PIP_HG_PRI_QOS \
75	 CVMX_ADD_IO_SEG(0x00011800A00001A0ull)
76#define CVMX_PIP_INT_EN \
77	 CVMX_ADD_IO_SEG(0x00011800A0000010ull)
78#define CVMX_PIP_INT_REG \
79	 CVMX_ADD_IO_SEG(0x00011800A0000008ull)
80#define CVMX_PIP_IP_OFFSET \
81	 CVMX_ADD_IO_SEG(0x00011800A0000060ull)
82#define CVMX_PIP_PRT_CFGX(offset) \
83	 CVMX_ADD_IO_SEG(0x00011800A0000200ull + (((offset) & 63) * 8))
84#define CVMX_PIP_PRT_TAGX(offset) \
85	 CVMX_ADD_IO_SEG(0x00011800A0000400ull + (((offset) & 63) * 8))
86#define CVMX_PIP_QOS_DIFFX(offset) \
87	 CVMX_ADD_IO_SEG(0x00011800A0000600ull + (((offset) & 63) * 8))
88#define CVMX_PIP_QOS_VLANX(offset) \
89	 CVMX_ADD_IO_SEG(0x00011800A00000C0ull + (((offset) & 7) * 8))
90#define CVMX_PIP_QOS_WATCHX(offset) \
91	 CVMX_ADD_IO_SEG(0x00011800A0000100ull + (((offset) & 7) * 8))
92#define CVMX_PIP_RAW_WORD \
93	 CVMX_ADD_IO_SEG(0x00011800A00000B0ull)
94#define CVMX_PIP_SFT_RST \
95	 CVMX_ADD_IO_SEG(0x00011800A0000030ull)
96#define CVMX_PIP_STAT0_PRTX(offset) \
97	 CVMX_ADD_IO_SEG(0x00011800A0000800ull + (((offset) & 63) * 80))
98#define CVMX_PIP_STAT1_PRTX(offset) \
99	 CVMX_ADD_IO_SEG(0x00011800A0000808ull + (((offset) & 63) * 80))
100#define CVMX_PIP_STAT2_PRTX(offset) \
101	 CVMX_ADD_IO_SEG(0x00011800A0000810ull + (((offset) & 63) * 80))
102#define CVMX_PIP_STAT3_PRTX(offset) \
103	 CVMX_ADD_IO_SEG(0x00011800A0000818ull + (((offset) & 63) * 80))
104#define CVMX_PIP_STAT4_PRTX(offset) \
105	 CVMX_ADD_IO_SEG(0x00011800A0000820ull + (((offset) & 63) * 80))
106#define CVMX_PIP_STAT5_PRTX(offset) \
107	 CVMX_ADD_IO_SEG(0x00011800A0000828ull + (((offset) & 63) * 80))
108#define CVMX_PIP_STAT6_PRTX(offset) \
109	 CVMX_ADD_IO_SEG(0x00011800A0000830ull + (((offset) & 63) * 80))
110#define CVMX_PIP_STAT7_PRTX(offset) \
111	 CVMX_ADD_IO_SEG(0x00011800A0000838ull + (((offset) & 63) * 80))
112#define CVMX_PIP_STAT8_PRTX(offset) \
113	 CVMX_ADD_IO_SEG(0x00011800A0000840ull + (((offset) & 63) * 80))
114#define CVMX_PIP_STAT9_PRTX(offset) \
115	 CVMX_ADD_IO_SEG(0x00011800A0000848ull + (((offset) & 63) * 80))
116#define CVMX_PIP_STAT_CTL \
117	 CVMX_ADD_IO_SEG(0x00011800A0000018ull)
118#define CVMX_PIP_STAT_INB_ERRSX(offset) \
119	 CVMX_ADD_IO_SEG(0x00011800A0001A10ull + (((offset) & 63) * 32))
120#define CVMX_PIP_STAT_INB_OCTSX(offset) \
121	 CVMX_ADD_IO_SEG(0x00011800A0001A08ull + (((offset) & 63) * 32))
122#define CVMX_PIP_STAT_INB_PKTSX(offset) \
123	 CVMX_ADD_IO_SEG(0x00011800A0001A00ull + (((offset) & 63) * 32))
124#define CVMX_PIP_TAG_INCX(offset) \
125	 CVMX_ADD_IO_SEG(0x00011800A0001800ull + (((offset) & 63) * 8))
126#define CVMX_PIP_TAG_MASK \
127	 CVMX_ADD_IO_SEG(0x00011800A0000070ull)
128#define CVMX_PIP_TAG_SECRET \
129	 CVMX_ADD_IO_SEG(0x00011800A0000068ull)
130#define CVMX_PIP_TODO_ENTRY \
131	 CVMX_ADD_IO_SEG(0x00011800A0000078ull)
132
133union cvmx_pip_bck_prs {
134	uint64_t u64;
135	struct cvmx_pip_bck_prs_s {
136		uint64_t bckprs:1;
137		uint64_t reserved_13_62:50;
138		uint64_t hiwater:5;
139		uint64_t reserved_5_7:3;
140		uint64_t lowater:5;
141	} s;
142	struct cvmx_pip_bck_prs_s cn38xx;
143	struct cvmx_pip_bck_prs_s cn38xxp2;
144	struct cvmx_pip_bck_prs_s cn56xx;
145	struct cvmx_pip_bck_prs_s cn56xxp1;
146	struct cvmx_pip_bck_prs_s cn58xx;
147	struct cvmx_pip_bck_prs_s cn58xxp1;
148};
149
150union cvmx_pip_bist_status {
151	uint64_t u64;
152	struct cvmx_pip_bist_status_s {
153		uint64_t reserved_18_63:46;
154		uint64_t bist:18;
155	} s;
156	struct cvmx_pip_bist_status_s cn30xx;
157	struct cvmx_pip_bist_status_s cn31xx;
158	struct cvmx_pip_bist_status_s cn38xx;
159	struct cvmx_pip_bist_status_s cn38xxp2;
160	struct cvmx_pip_bist_status_cn50xx {
161		uint64_t reserved_17_63:47;
162		uint64_t bist:17;
163	} cn50xx;
164	struct cvmx_pip_bist_status_s cn52xx;
165	struct cvmx_pip_bist_status_s cn52xxp1;
166	struct cvmx_pip_bist_status_s cn56xx;
167	struct cvmx_pip_bist_status_s cn56xxp1;
168	struct cvmx_pip_bist_status_s cn58xx;
169	struct cvmx_pip_bist_status_s cn58xxp1;
170};
171
172union cvmx_pip_crc_ctlx {
173	uint64_t u64;
174	struct cvmx_pip_crc_ctlx_s {
175		uint64_t reserved_2_63:62;
176		uint64_t invres:1;
177		uint64_t reflect:1;
178	} s;
179	struct cvmx_pip_crc_ctlx_s cn38xx;
180	struct cvmx_pip_crc_ctlx_s cn38xxp2;
181	struct cvmx_pip_crc_ctlx_s cn58xx;
182	struct cvmx_pip_crc_ctlx_s cn58xxp1;
183};
184
185union cvmx_pip_crc_ivx {
186	uint64_t u64;
187	struct cvmx_pip_crc_ivx_s {
188		uint64_t reserved_32_63:32;
189		uint64_t iv:32;
190	} s;
191	struct cvmx_pip_crc_ivx_s cn38xx;
192	struct cvmx_pip_crc_ivx_s cn38xxp2;
193	struct cvmx_pip_crc_ivx_s cn58xx;
194	struct cvmx_pip_crc_ivx_s cn58xxp1;
195};
196
197union cvmx_pip_dec_ipsecx {
198	uint64_t u64;
199	struct cvmx_pip_dec_ipsecx_s {
200		uint64_t reserved_18_63:46;
201		uint64_t tcp:1;
202		uint64_t udp:1;
203		uint64_t dprt:16;
204	} s;
205	struct cvmx_pip_dec_ipsecx_s cn30xx;
206	struct cvmx_pip_dec_ipsecx_s cn31xx;
207	struct cvmx_pip_dec_ipsecx_s cn38xx;
208	struct cvmx_pip_dec_ipsecx_s cn38xxp2;
209	struct cvmx_pip_dec_ipsecx_s cn50xx;
210	struct cvmx_pip_dec_ipsecx_s cn52xx;
211	struct cvmx_pip_dec_ipsecx_s cn52xxp1;
212	struct cvmx_pip_dec_ipsecx_s cn56xx;
213	struct cvmx_pip_dec_ipsecx_s cn56xxp1;
214	struct cvmx_pip_dec_ipsecx_s cn58xx;
215	struct cvmx_pip_dec_ipsecx_s cn58xxp1;
216};
217
218union cvmx_pip_dsa_src_grp {
219	uint64_t u64;
220	struct cvmx_pip_dsa_src_grp_s {
221		uint64_t map15:4;
222		uint64_t map14:4;
223		uint64_t map13:4;
224		uint64_t map12:4;
225		uint64_t map11:4;
226		uint64_t map10:4;
227		uint64_t map9:4;
228		uint64_t map8:4;
229		uint64_t map7:4;
230		uint64_t map6:4;
231		uint64_t map5:4;
232		uint64_t map4:4;
233		uint64_t map3:4;
234		uint64_t map2:4;
235		uint64_t map1:4;
236		uint64_t map0:4;
237	} s;
238	struct cvmx_pip_dsa_src_grp_s cn52xx;
239	struct cvmx_pip_dsa_src_grp_s cn52xxp1;
240	struct cvmx_pip_dsa_src_grp_s cn56xx;
241};
242
243union cvmx_pip_dsa_vid_grp {
244	uint64_t u64;
245	struct cvmx_pip_dsa_vid_grp_s {
246		uint64_t map15:4;
247		uint64_t map14:4;
248		uint64_t map13:4;
249		uint64_t map12:4;
250		uint64_t map11:4;
251		uint64_t map10:4;
252		uint64_t map9:4;
253		uint64_t map8:4;
254		uint64_t map7:4;
255		uint64_t map6:4;
256		uint64_t map5:4;
257		uint64_t map4:4;
258		uint64_t map3:4;
259		uint64_t map2:4;
260		uint64_t map1:4;
261		uint64_t map0:4;
262	} s;
263	struct cvmx_pip_dsa_vid_grp_s cn52xx;
264	struct cvmx_pip_dsa_vid_grp_s cn52xxp1;
265	struct cvmx_pip_dsa_vid_grp_s cn56xx;
266};
267
268union cvmx_pip_frm_len_chkx {
269	uint64_t u64;
270	struct cvmx_pip_frm_len_chkx_s {
271		uint64_t reserved_32_63:32;
272		uint64_t maxlen:16;
273		uint64_t minlen:16;
274	} s;
275	struct cvmx_pip_frm_len_chkx_s cn50xx;
276	struct cvmx_pip_frm_len_chkx_s cn52xx;
277	struct cvmx_pip_frm_len_chkx_s cn52xxp1;
278	struct cvmx_pip_frm_len_chkx_s cn56xx;
279	struct cvmx_pip_frm_len_chkx_s cn56xxp1;
280};
281
282union cvmx_pip_gbl_cfg {
283	uint64_t u64;
284	struct cvmx_pip_gbl_cfg_s {
285		uint64_t reserved_19_63:45;
286		uint64_t tag_syn:1;
287		uint64_t ip6_udp:1;
288		uint64_t max_l2:1;
289		uint64_t reserved_11_15:5;
290		uint64_t raw_shf:3;
291		uint64_t reserved_3_7:5;
292		uint64_t nip_shf:3;
293	} s;
294	struct cvmx_pip_gbl_cfg_s cn30xx;
295	struct cvmx_pip_gbl_cfg_s cn31xx;
296	struct cvmx_pip_gbl_cfg_s cn38xx;
297	struct cvmx_pip_gbl_cfg_s cn38xxp2;
298	struct cvmx_pip_gbl_cfg_s cn50xx;
299	struct cvmx_pip_gbl_cfg_s cn52xx;
300	struct cvmx_pip_gbl_cfg_s cn52xxp1;
301	struct cvmx_pip_gbl_cfg_s cn56xx;
302	struct cvmx_pip_gbl_cfg_s cn56xxp1;
303	struct cvmx_pip_gbl_cfg_s cn58xx;
304	struct cvmx_pip_gbl_cfg_s cn58xxp1;
305};
306
307union cvmx_pip_gbl_ctl {
308	uint64_t u64;
309	struct cvmx_pip_gbl_ctl_s {
310		uint64_t reserved_27_63:37;
311		uint64_t dsa_grp_tvid:1;
312		uint64_t dsa_grp_scmd:1;
313		uint64_t dsa_grp_sid:1;
314		uint64_t reserved_21_23:3;
315		uint64_t ring_en:1;
316		uint64_t reserved_17_19:3;
317		uint64_t ignrs:1;
318		uint64_t vs_wqe:1;
319		uint64_t vs_qos:1;
320		uint64_t l2_mal:1;
321		uint64_t tcp_flag:1;
322		uint64_t l4_len:1;
323		uint64_t l4_chk:1;
324		uint64_t l4_prt:1;
325		uint64_t l4_mal:1;
326		uint64_t reserved_6_7:2;
327		uint64_t ip6_eext:2;
328		uint64_t ip4_opts:1;
329		uint64_t ip_hop:1;
330		uint64_t ip_mal:1;
331		uint64_t ip_chk:1;
332	} s;
333	struct cvmx_pip_gbl_ctl_cn30xx {
334		uint64_t reserved_17_63:47;
335		uint64_t ignrs:1;
336		uint64_t vs_wqe:1;
337		uint64_t vs_qos:1;
338		uint64_t l2_mal:1;
339		uint64_t tcp_flag:1;
340		uint64_t l4_len:1;
341		uint64_t l4_chk:1;
342		uint64_t l4_prt:1;
343		uint64_t l4_mal:1;
344		uint64_t reserved_6_7:2;
345		uint64_t ip6_eext:2;
346		uint64_t ip4_opts:1;
347		uint64_t ip_hop:1;
348		uint64_t ip_mal:1;
349		uint64_t ip_chk:1;
350	} cn30xx;
351	struct cvmx_pip_gbl_ctl_cn30xx cn31xx;
352	struct cvmx_pip_gbl_ctl_cn30xx cn38xx;
353	struct cvmx_pip_gbl_ctl_cn30xx cn38xxp2;
354	struct cvmx_pip_gbl_ctl_cn30xx cn50xx;
355	struct cvmx_pip_gbl_ctl_s cn52xx;
356	struct cvmx_pip_gbl_ctl_s cn52xxp1;
357	struct cvmx_pip_gbl_ctl_s cn56xx;
358	struct cvmx_pip_gbl_ctl_cn56xxp1 {
359		uint64_t reserved_21_63:43;
360		uint64_t ring_en:1;
361		uint64_t reserved_17_19:3;
362		uint64_t ignrs:1;
363		uint64_t vs_wqe:1;
364		uint64_t vs_qos:1;
365		uint64_t l2_mal:1;
366		uint64_t tcp_flag:1;
367		uint64_t l4_len:1;
368		uint64_t l4_chk:1;
369		uint64_t l4_prt:1;
370		uint64_t l4_mal:1;
371		uint64_t reserved_6_7:2;
372		uint64_t ip6_eext:2;
373		uint64_t ip4_opts:1;
374		uint64_t ip_hop:1;
375		uint64_t ip_mal:1;
376		uint64_t ip_chk:1;
377	} cn56xxp1;
378	struct cvmx_pip_gbl_ctl_cn30xx cn58xx;
379	struct cvmx_pip_gbl_ctl_cn30xx cn58xxp1;
380};
381
382union cvmx_pip_hg_pri_qos {
383	uint64_t u64;
384	struct cvmx_pip_hg_pri_qos_s {
385		uint64_t reserved_11_63:53;
386		uint64_t qos:3;
387		uint64_t reserved_6_7:2;
388		uint64_t pri:6;
389	} s;
390	struct cvmx_pip_hg_pri_qos_s cn52xx;
391	struct cvmx_pip_hg_pri_qos_s cn52xxp1;
392	struct cvmx_pip_hg_pri_qos_s cn56xx;
393};
394
395union cvmx_pip_int_en {
396	uint64_t u64;
397	struct cvmx_pip_int_en_s {
398		uint64_t reserved_13_63:51;
399		uint64_t punyerr:1;
400		uint64_t lenerr:1;
401		uint64_t maxerr:1;
402		uint64_t minerr:1;
403		uint64_t beperr:1;
404		uint64_t feperr:1;
405		uint64_t todoovr:1;
406		uint64_t skprunt:1;
407		uint64_t badtag:1;
408		uint64_t prtnxa:1;
409		uint64_t bckprs:1;
410		uint64_t crcerr:1;
411		uint64_t pktdrp:1;
412	} s;
413	struct cvmx_pip_int_en_cn30xx {
414		uint64_t reserved_9_63:55;
415		uint64_t beperr:1;
416		uint64_t feperr:1;
417		uint64_t todoovr:1;
418		uint64_t skprunt:1;
419		uint64_t badtag:1;
420		uint64_t prtnxa:1;
421		uint64_t bckprs:1;
422		uint64_t crcerr:1;
423		uint64_t pktdrp:1;
424	} cn30xx;
425	struct cvmx_pip_int_en_cn30xx cn31xx;
426	struct cvmx_pip_int_en_cn30xx cn38xx;
427	struct cvmx_pip_int_en_cn30xx cn38xxp2;
428	struct cvmx_pip_int_en_cn50xx {
429		uint64_t reserved_12_63:52;
430		uint64_t lenerr:1;
431		uint64_t maxerr:1;
432		uint64_t minerr:1;
433		uint64_t beperr:1;
434		uint64_t feperr:1;
435		uint64_t todoovr:1;
436		uint64_t skprunt:1;
437		uint64_t badtag:1;
438		uint64_t prtnxa:1;
439		uint64_t bckprs:1;
440		uint64_t reserved_1_1:1;
441		uint64_t pktdrp:1;
442	} cn50xx;
443	struct cvmx_pip_int_en_cn52xx {
444		uint64_t reserved_13_63:51;
445		uint64_t punyerr:1;
446		uint64_t lenerr:1;
447		uint64_t maxerr:1;
448		uint64_t minerr:1;
449		uint64_t beperr:1;
450		uint64_t feperr:1;
451		uint64_t todoovr:1;
452		uint64_t skprunt:1;
453		uint64_t badtag:1;
454		uint64_t prtnxa:1;
455		uint64_t bckprs:1;
456		uint64_t reserved_1_1:1;
457		uint64_t pktdrp:1;
458	} cn52xx;
459	struct cvmx_pip_int_en_cn52xx cn52xxp1;
460	struct cvmx_pip_int_en_s cn56xx;
461	struct cvmx_pip_int_en_cn56xxp1 {
462		uint64_t reserved_12_63:52;
463		uint64_t lenerr:1;
464		uint64_t maxerr:1;
465		uint64_t minerr:1;
466		uint64_t beperr:1;
467		uint64_t feperr:1;
468		uint64_t todoovr:1;
469		uint64_t skprunt:1;
470		uint64_t badtag:1;
471		uint64_t prtnxa:1;
472		uint64_t bckprs:1;
473		uint64_t crcerr:1;
474		uint64_t pktdrp:1;
475	} cn56xxp1;
476	struct cvmx_pip_int_en_cn58xx {
477		uint64_t reserved_13_63:51;
478		uint64_t punyerr:1;
479		uint64_t reserved_9_11:3;
480		uint64_t beperr:1;
481		uint64_t feperr:1;
482		uint64_t todoovr:1;
483		uint64_t skprunt:1;
484		uint64_t badtag:1;
485		uint64_t prtnxa:1;
486		uint64_t bckprs:1;
487		uint64_t crcerr:1;
488		uint64_t pktdrp:1;
489	} cn58xx;
490	struct cvmx_pip_int_en_cn30xx cn58xxp1;
491};
492
493union cvmx_pip_int_reg {
494	uint64_t u64;
495	struct cvmx_pip_int_reg_s {
496		uint64_t reserved_13_63:51;
497		uint64_t punyerr:1;
498		uint64_t lenerr:1;
499		uint64_t maxerr:1;
500		uint64_t minerr:1;
501		uint64_t beperr:1;
502		uint64_t feperr:1;
503		uint64_t todoovr:1;
504		uint64_t skprunt:1;
505		uint64_t badtag:1;
506		uint64_t prtnxa:1;
507		uint64_t bckprs:1;
508		uint64_t crcerr:1;
509		uint64_t pktdrp:1;
510	} s;
511	struct cvmx_pip_int_reg_cn30xx {
512		uint64_t reserved_9_63:55;
513		uint64_t beperr:1;
514		uint64_t feperr:1;
515		uint64_t todoovr:1;
516		uint64_t skprunt:1;
517		uint64_t badtag:1;
518		uint64_t prtnxa:1;
519		uint64_t bckprs:1;
520		uint64_t crcerr:1;
521		uint64_t pktdrp:1;
522	} cn30xx;
523	struct cvmx_pip_int_reg_cn30xx cn31xx;
524	struct cvmx_pip_int_reg_cn30xx cn38xx;
525	struct cvmx_pip_int_reg_cn30xx cn38xxp2;
526	struct cvmx_pip_int_reg_cn50xx {
527		uint64_t reserved_12_63:52;
528		uint64_t lenerr:1;
529		uint64_t maxerr:1;
530		uint64_t minerr:1;
531		uint64_t beperr:1;
532		uint64_t feperr:1;
533		uint64_t todoovr:1;
534		uint64_t skprunt:1;
535		uint64_t badtag:1;
536		uint64_t prtnxa:1;
537		uint64_t bckprs:1;
538		uint64_t reserved_1_1:1;
539		uint64_t pktdrp:1;
540	} cn50xx;
541	struct cvmx_pip_int_reg_cn52xx {
542		uint64_t reserved_13_63:51;
543		uint64_t punyerr:1;
544		uint64_t lenerr:1;
545		uint64_t maxerr:1;
546		uint64_t minerr:1;
547		uint64_t beperr:1;
548		uint64_t feperr:1;
549		uint64_t todoovr:1;
550		uint64_t skprunt:1;
551		uint64_t badtag:1;
552		uint64_t prtnxa:1;
553		uint64_t bckprs:1;
554		uint64_t reserved_1_1:1;
555		uint64_t pktdrp:1;
556	} cn52xx;
557	struct cvmx_pip_int_reg_cn52xx cn52xxp1;
558	struct cvmx_pip_int_reg_s cn56xx;
559	struct cvmx_pip_int_reg_cn56xxp1 {
560		uint64_t reserved_12_63:52;
561		uint64_t lenerr:1;
562		uint64_t maxerr:1;
563		uint64_t minerr:1;
564		uint64_t beperr:1;
565		uint64_t feperr:1;
566		uint64_t todoovr:1;
567		uint64_t skprunt:1;
568		uint64_t badtag:1;
569		uint64_t prtnxa:1;
570		uint64_t bckprs:1;
571		uint64_t crcerr:1;
572		uint64_t pktdrp:1;
573	} cn56xxp1;
574	struct cvmx_pip_int_reg_cn58xx {
575		uint64_t reserved_13_63:51;
576		uint64_t punyerr:1;
577		uint64_t reserved_9_11:3;
578		uint64_t beperr:1;
579		uint64_t feperr:1;
580		uint64_t todoovr:1;
581		uint64_t skprunt:1;
582		uint64_t badtag:1;
583		uint64_t prtnxa:1;
584		uint64_t bckprs:1;
585		uint64_t crcerr:1;
586		uint64_t pktdrp:1;
587	} cn58xx;
588	struct cvmx_pip_int_reg_cn30xx cn58xxp1;
589};
590
591union cvmx_pip_ip_offset {
592	uint64_t u64;
593	struct cvmx_pip_ip_offset_s {
594		uint64_t reserved_3_63:61;
595		uint64_t offset:3;
596	} s;
597	struct cvmx_pip_ip_offset_s cn30xx;
598	struct cvmx_pip_ip_offset_s cn31xx;
599	struct cvmx_pip_ip_offset_s cn38xx;
600	struct cvmx_pip_ip_offset_s cn38xxp2;
601	struct cvmx_pip_ip_offset_s cn50xx;
602	struct cvmx_pip_ip_offset_s cn52xx;
603	struct cvmx_pip_ip_offset_s cn52xxp1;
604	struct cvmx_pip_ip_offset_s cn56xx;
605	struct cvmx_pip_ip_offset_s cn56xxp1;
606	struct cvmx_pip_ip_offset_s cn58xx;
607	struct cvmx_pip_ip_offset_s cn58xxp1;
608};
609
610union cvmx_pip_prt_cfgx {
611	uint64_t u64;
612	struct cvmx_pip_prt_cfgx_s {
613		uint64_t reserved_53_63:11;
614		uint64_t pad_len:1;
615		uint64_t vlan_len:1;
616		uint64_t lenerr_en:1;
617		uint64_t maxerr_en:1;
618		uint64_t minerr_en:1;
619		uint64_t grp_wat_47:4;
620		uint64_t qos_wat_47:4;
621		uint64_t reserved_37_39:3;
622		uint64_t rawdrp:1;
623		uint64_t tag_inc:2;
624		uint64_t dyn_rs:1;
625		uint64_t inst_hdr:1;
626		uint64_t grp_wat:4;
627		uint64_t hg_qos:1;
628		uint64_t qos:3;
629		uint64_t qos_wat:4;
630		uint64_t qos_vsel:1;
631		uint64_t qos_vod:1;
632		uint64_t qos_diff:1;
633		uint64_t qos_vlan:1;
634		uint64_t reserved_13_15:3;
635		uint64_t crc_en:1;
636		uint64_t higig_en:1;
637		uint64_t dsa_en:1;
638		uint64_t mode:2;
639		uint64_t reserved_7_7:1;
640		uint64_t skip:7;
641	} s;
642	struct cvmx_pip_prt_cfgx_cn30xx {
643		uint64_t reserved_37_63:27;
644		uint64_t rawdrp:1;
645		uint64_t tag_inc:2;
646		uint64_t dyn_rs:1;
647		uint64_t inst_hdr:1;
648		uint64_t grp_wat:4;
649		uint64_t reserved_27_27:1;
650		uint64_t qos:3;
651		uint64_t qos_wat:4;
652		uint64_t reserved_18_19:2;
653		uint64_t qos_diff:1;
654		uint64_t qos_vlan:1;
655		uint64_t reserved_10_15:6;
656		uint64_t mode:2;
657		uint64_t reserved_7_7:1;
658		uint64_t skip:7;
659	} cn30xx;
660	struct cvmx_pip_prt_cfgx_cn30xx cn31xx;
661	struct cvmx_pip_prt_cfgx_cn38xx {
662		uint64_t reserved_37_63:27;
663		uint64_t rawdrp:1;
664		uint64_t tag_inc:2;
665		uint64_t dyn_rs:1;
666		uint64_t inst_hdr:1;
667		uint64_t grp_wat:4;
668		uint64_t reserved_27_27:1;
669		uint64_t qos:3;
670		uint64_t qos_wat:4;
671		uint64_t reserved_18_19:2;
672		uint64_t qos_diff:1;
673		uint64_t qos_vlan:1;
674		uint64_t reserved_13_15:3;
675		uint64_t crc_en:1;
676		uint64_t reserved_10_11:2;
677		uint64_t mode:2;
678		uint64_t reserved_7_7:1;
679		uint64_t skip:7;
680	} cn38xx;
681	struct cvmx_pip_prt_cfgx_cn38xx cn38xxp2;
682	struct cvmx_pip_prt_cfgx_cn50xx {
683		uint64_t reserved_53_63:11;
684		uint64_t pad_len:1;
685		uint64_t vlan_len:1;
686		uint64_t lenerr_en:1;
687		uint64_t maxerr_en:1;
688		uint64_t minerr_en:1;
689		uint64_t grp_wat_47:4;
690		uint64_t qos_wat_47:4;
691		uint64_t reserved_37_39:3;
692		uint64_t rawdrp:1;
693		uint64_t tag_inc:2;
694		uint64_t dyn_rs:1;
695		uint64_t inst_hdr:1;
696		uint64_t grp_wat:4;
697		uint64_t reserved_27_27:1;
698		uint64_t qos:3;
699		uint64_t qos_wat:4;
700		uint64_t reserved_19_19:1;
701		uint64_t qos_vod:1;
702		uint64_t qos_diff:1;
703		uint64_t qos_vlan:1;
704		uint64_t reserved_13_15:3;
705		uint64_t crc_en:1;
706		uint64_t reserved_10_11:2;
707		uint64_t mode:2;
708		uint64_t reserved_7_7:1;
709		uint64_t skip:7;
710	} cn50xx;
711	struct cvmx_pip_prt_cfgx_s cn52xx;
712	struct cvmx_pip_prt_cfgx_s cn52xxp1;
713	struct cvmx_pip_prt_cfgx_s cn56xx;
714	struct cvmx_pip_prt_cfgx_cn50xx cn56xxp1;
715	struct cvmx_pip_prt_cfgx_cn58xx {
716		uint64_t reserved_37_63:27;
717		uint64_t rawdrp:1;
718		uint64_t tag_inc:2;
719		uint64_t dyn_rs:1;
720		uint64_t inst_hdr:1;
721		uint64_t grp_wat:4;
722		uint64_t reserved_27_27:1;
723		uint64_t qos:3;
724		uint64_t qos_wat:4;
725		uint64_t reserved_19_19:1;
726		uint64_t qos_vod:1;
727		uint64_t qos_diff:1;
728		uint64_t qos_vlan:1;
729		uint64_t reserved_13_15:3;
730		uint64_t crc_en:1;
731		uint64_t reserved_10_11:2;
732		uint64_t mode:2;
733		uint64_t reserved_7_7:1;
734		uint64_t skip:7;
735	} cn58xx;
736	struct cvmx_pip_prt_cfgx_cn58xx cn58xxp1;
737};
738
739union cvmx_pip_prt_tagx {
740	uint64_t u64;
741	struct cvmx_pip_prt_tagx_s {
742		uint64_t reserved_40_63:24;
743		uint64_t grptagbase:4;
744		uint64_t grptagmask:4;
745		uint64_t grptag:1;
746		uint64_t grptag_mskip:1;
747		uint64_t tag_mode:2;
748		uint64_t inc_vs:2;
749		uint64_t inc_vlan:1;
750		uint64_t inc_prt_flag:1;
751		uint64_t ip6_dprt_flag:1;
752		uint64_t ip4_dprt_flag:1;
753		uint64_t ip6_sprt_flag:1;
754		uint64_t ip4_sprt_flag:1;
755		uint64_t ip6_nxth_flag:1;
756		uint64_t ip4_pctl_flag:1;
757		uint64_t ip6_dst_flag:1;
758		uint64_t ip4_dst_flag:1;
759		uint64_t ip6_src_flag:1;
760		uint64_t ip4_src_flag:1;
761		uint64_t tcp6_tag_type:2;
762		uint64_t tcp4_tag_type:2;
763		uint64_t ip6_tag_type:2;
764		uint64_t ip4_tag_type:2;
765		uint64_t non_tag_type:2;
766		uint64_t grp:4;
767	} s;
768	struct cvmx_pip_prt_tagx_cn30xx {
769		uint64_t reserved_40_63:24;
770		uint64_t grptagbase:4;
771		uint64_t grptagmask:4;
772		uint64_t grptag:1;
773		uint64_t reserved_30_30:1;
774		uint64_t tag_mode:2;
775		uint64_t inc_vs:2;
776		uint64_t inc_vlan:1;
777		uint64_t inc_prt_flag:1;
778		uint64_t ip6_dprt_flag:1;
779		uint64_t ip4_dprt_flag:1;
780		uint64_t ip6_sprt_flag:1;
781		uint64_t ip4_sprt_flag:1;
782		uint64_t ip6_nxth_flag:1;
783		uint64_t ip4_pctl_flag:1;
784		uint64_t ip6_dst_flag:1;
785		uint64_t ip4_dst_flag:1;
786		uint64_t ip6_src_flag:1;
787		uint64_t ip4_src_flag:1;
788		uint64_t tcp6_tag_type:2;
789		uint64_t tcp4_tag_type:2;
790		uint64_t ip6_tag_type:2;
791		uint64_t ip4_tag_type:2;
792		uint64_t non_tag_type:2;
793		uint64_t grp:4;
794	} cn30xx;
795	struct cvmx_pip_prt_tagx_cn30xx cn31xx;
796	struct cvmx_pip_prt_tagx_cn30xx cn38xx;
797	struct cvmx_pip_prt_tagx_cn30xx cn38xxp2;
798	struct cvmx_pip_prt_tagx_s cn50xx;
799	struct cvmx_pip_prt_tagx_s cn52xx;
800	struct cvmx_pip_prt_tagx_s cn52xxp1;
801	struct cvmx_pip_prt_tagx_s cn56xx;
802	struct cvmx_pip_prt_tagx_s cn56xxp1;
803	struct cvmx_pip_prt_tagx_cn30xx cn58xx;
804	struct cvmx_pip_prt_tagx_cn30xx cn58xxp1;
805};
806
807union cvmx_pip_qos_diffx {
808	uint64_t u64;
809	struct cvmx_pip_qos_diffx_s {
810		uint64_t reserved_3_63:61;
811		uint64_t qos:3;
812	} s;
813	struct cvmx_pip_qos_diffx_s cn30xx;
814	struct cvmx_pip_qos_diffx_s cn31xx;
815	struct cvmx_pip_qos_diffx_s cn38xx;
816	struct cvmx_pip_qos_diffx_s cn38xxp2;
817	struct cvmx_pip_qos_diffx_s cn50xx;
818	struct cvmx_pip_qos_diffx_s cn52xx;
819	struct cvmx_pip_qos_diffx_s cn52xxp1;
820	struct cvmx_pip_qos_diffx_s cn56xx;
821	struct cvmx_pip_qos_diffx_s cn56xxp1;
822	struct cvmx_pip_qos_diffx_s cn58xx;
823	struct cvmx_pip_qos_diffx_s cn58xxp1;
824};
825
826union cvmx_pip_qos_vlanx {
827	uint64_t u64;
828	struct cvmx_pip_qos_vlanx_s {
829		uint64_t reserved_7_63:57;
830		uint64_t qos1:3;
831		uint64_t reserved_3_3:1;
832		uint64_t qos:3;
833	} s;
834	struct cvmx_pip_qos_vlanx_cn30xx {
835		uint64_t reserved_3_63:61;
836		uint64_t qos:3;
837	} cn30xx;
838	struct cvmx_pip_qos_vlanx_cn30xx cn31xx;
839	struct cvmx_pip_qos_vlanx_cn30xx cn38xx;
840	struct cvmx_pip_qos_vlanx_cn30xx cn38xxp2;
841	struct cvmx_pip_qos_vlanx_cn30xx cn50xx;
842	struct cvmx_pip_qos_vlanx_s cn52xx;
843	struct cvmx_pip_qos_vlanx_s cn52xxp1;
844	struct cvmx_pip_qos_vlanx_s cn56xx;
845	struct cvmx_pip_qos_vlanx_cn30xx cn56xxp1;
846	struct cvmx_pip_qos_vlanx_cn30xx cn58xx;
847	struct cvmx_pip_qos_vlanx_cn30xx cn58xxp1;
848};
849
850union cvmx_pip_qos_watchx {
851	uint64_t u64;
852	struct cvmx_pip_qos_watchx_s {
853		uint64_t reserved_48_63:16;
854		uint64_t mask:16;
855		uint64_t reserved_28_31:4;
856		uint64_t grp:4;
857		uint64_t reserved_23_23:1;
858		uint64_t qos:3;
859		uint64_t reserved_19_19:1;
860		uint64_t match_type:3;
861		uint64_t match_value:16;
862	} s;
863	struct cvmx_pip_qos_watchx_cn30xx {
864		uint64_t reserved_48_63:16;
865		uint64_t mask:16;
866		uint64_t reserved_28_31:4;
867		uint64_t grp:4;
868		uint64_t reserved_23_23:1;
869		uint64_t qos:3;
870		uint64_t reserved_18_19:2;
871		uint64_t match_type:2;
872		uint64_t match_value:16;
873	} cn30xx;
874	struct cvmx_pip_qos_watchx_cn30xx cn31xx;
875	struct cvmx_pip_qos_watchx_cn30xx cn38xx;
876	struct cvmx_pip_qos_watchx_cn30xx cn38xxp2;
877	struct cvmx_pip_qos_watchx_s cn50xx;
878	struct cvmx_pip_qos_watchx_s cn52xx;
879	struct cvmx_pip_qos_watchx_s cn52xxp1;
880	struct cvmx_pip_qos_watchx_s cn56xx;
881	struct cvmx_pip_qos_watchx_s cn56xxp1;
882	struct cvmx_pip_qos_watchx_cn30xx cn58xx;
883	struct cvmx_pip_qos_watchx_cn30xx cn58xxp1;
884};
885
886union cvmx_pip_raw_word {
887	uint64_t u64;
888	struct cvmx_pip_raw_word_s {
889		uint64_t reserved_56_63:8;
890		uint64_t word:56;
891	} s;
892	struct cvmx_pip_raw_word_s cn30xx;
893	struct cvmx_pip_raw_word_s cn31xx;
894	struct cvmx_pip_raw_word_s cn38xx;
895	struct cvmx_pip_raw_word_s cn38xxp2;
896	struct cvmx_pip_raw_word_s cn50xx;
897	struct cvmx_pip_raw_word_s cn52xx;
898	struct cvmx_pip_raw_word_s cn52xxp1;
899	struct cvmx_pip_raw_word_s cn56xx;
900	struct cvmx_pip_raw_word_s cn56xxp1;
901	struct cvmx_pip_raw_word_s cn58xx;
902	struct cvmx_pip_raw_word_s cn58xxp1;
903};
904
905union cvmx_pip_sft_rst {
906	uint64_t u64;
907	struct cvmx_pip_sft_rst_s {
908		uint64_t reserved_1_63:63;
909		uint64_t rst:1;
910	} s;
911	struct cvmx_pip_sft_rst_s cn30xx;
912	struct cvmx_pip_sft_rst_s cn31xx;
913	struct cvmx_pip_sft_rst_s cn38xx;
914	struct cvmx_pip_sft_rst_s cn50xx;
915	struct cvmx_pip_sft_rst_s cn52xx;
916	struct cvmx_pip_sft_rst_s cn52xxp1;
917	struct cvmx_pip_sft_rst_s cn56xx;
918	struct cvmx_pip_sft_rst_s cn56xxp1;
919	struct cvmx_pip_sft_rst_s cn58xx;
920	struct cvmx_pip_sft_rst_s cn58xxp1;
921};
922
923union cvmx_pip_stat0_prtx {
924	uint64_t u64;
925	struct cvmx_pip_stat0_prtx_s {
926		uint64_t drp_pkts:32;
927		uint64_t drp_octs:32;
928	} s;
929	struct cvmx_pip_stat0_prtx_s cn30xx;
930	struct cvmx_pip_stat0_prtx_s cn31xx;
931	struct cvmx_pip_stat0_prtx_s cn38xx;
932	struct cvmx_pip_stat0_prtx_s cn38xxp2;
933	struct cvmx_pip_stat0_prtx_s cn50xx;
934	struct cvmx_pip_stat0_prtx_s cn52xx;
935	struct cvmx_pip_stat0_prtx_s cn52xxp1;
936	struct cvmx_pip_stat0_prtx_s cn56xx;
937	struct cvmx_pip_stat0_prtx_s cn56xxp1;
938	struct cvmx_pip_stat0_prtx_s cn58xx;
939	struct cvmx_pip_stat0_prtx_s cn58xxp1;
940};
941
942union cvmx_pip_stat1_prtx {
943	uint64_t u64;
944	struct cvmx_pip_stat1_prtx_s {
945		uint64_t reserved_48_63:16;
946		uint64_t octs:48;
947	} s;
948	struct cvmx_pip_stat1_prtx_s cn30xx;
949	struct cvmx_pip_stat1_prtx_s cn31xx;
950	struct cvmx_pip_stat1_prtx_s cn38xx;
951	struct cvmx_pip_stat1_prtx_s cn38xxp2;
952	struct cvmx_pip_stat1_prtx_s cn50xx;
953	struct cvmx_pip_stat1_prtx_s cn52xx;
954	struct cvmx_pip_stat1_prtx_s cn52xxp1;
955	struct cvmx_pip_stat1_prtx_s cn56xx;
956	struct cvmx_pip_stat1_prtx_s cn56xxp1;
957	struct cvmx_pip_stat1_prtx_s cn58xx;
958	struct cvmx_pip_stat1_prtx_s cn58xxp1;
959};
960
961union cvmx_pip_stat2_prtx {
962	uint64_t u64;
963	struct cvmx_pip_stat2_prtx_s {
964		uint64_t pkts:32;
965		uint64_t raw:32;
966	} s;
967	struct cvmx_pip_stat2_prtx_s cn30xx;
968	struct cvmx_pip_stat2_prtx_s cn31xx;
969	struct cvmx_pip_stat2_prtx_s cn38xx;
970	struct cvmx_pip_stat2_prtx_s cn38xxp2;
971	struct cvmx_pip_stat2_prtx_s cn50xx;
972	struct cvmx_pip_stat2_prtx_s cn52xx;
973	struct cvmx_pip_stat2_prtx_s cn52xxp1;
974	struct cvmx_pip_stat2_prtx_s cn56xx;
975	struct cvmx_pip_stat2_prtx_s cn56xxp1;
976	struct cvmx_pip_stat2_prtx_s cn58xx;
977	struct cvmx_pip_stat2_prtx_s cn58xxp1;
978};
979
980union cvmx_pip_stat3_prtx {
981	uint64_t u64;
982	struct cvmx_pip_stat3_prtx_s {
983		uint64_t bcst:32;
984		uint64_t mcst:32;
985	} s;
986	struct cvmx_pip_stat3_prtx_s cn30xx;
987	struct cvmx_pip_stat3_prtx_s cn31xx;
988	struct cvmx_pip_stat3_prtx_s cn38xx;
989	struct cvmx_pip_stat3_prtx_s cn38xxp2;
990	struct cvmx_pip_stat3_prtx_s cn50xx;
991	struct cvmx_pip_stat3_prtx_s cn52xx;
992	struct cvmx_pip_stat3_prtx_s cn52xxp1;
993	struct cvmx_pip_stat3_prtx_s cn56xx;
994	struct cvmx_pip_stat3_prtx_s cn56xxp1;
995	struct cvmx_pip_stat3_prtx_s cn58xx;
996	struct cvmx_pip_stat3_prtx_s cn58xxp1;
997};
998
999union cvmx_pip_stat4_prtx {
1000	uint64_t u64;
1001	struct cvmx_pip_stat4_prtx_s {
1002		uint64_t h65to127:32;
1003		uint64_t h64:32;
1004	} s;
1005	struct cvmx_pip_stat4_prtx_s cn30xx;
1006	struct cvmx_pip_stat4_prtx_s cn31xx;
1007	struct cvmx_pip_stat4_prtx_s cn38xx;
1008	struct cvmx_pip_stat4_prtx_s cn38xxp2;
1009	struct cvmx_pip_stat4_prtx_s cn50xx;
1010	struct cvmx_pip_stat4_prtx_s cn52xx;
1011	struct cvmx_pip_stat4_prtx_s cn52xxp1;
1012	struct cvmx_pip_stat4_prtx_s cn56xx;
1013	struct cvmx_pip_stat4_prtx_s cn56xxp1;
1014	struct cvmx_pip_stat4_prtx_s cn58xx;
1015	struct cvmx_pip_stat4_prtx_s cn58xxp1;
1016};
1017
1018union cvmx_pip_stat5_prtx {
1019	uint64_t u64;
1020	struct cvmx_pip_stat5_prtx_s {
1021		uint64_t h256to511:32;
1022		uint64_t h128to255:32;
1023	} s;
1024	struct cvmx_pip_stat5_prtx_s cn30xx;
1025	struct cvmx_pip_stat5_prtx_s cn31xx;
1026	struct cvmx_pip_stat5_prtx_s cn38xx;
1027	struct cvmx_pip_stat5_prtx_s cn38xxp2;
1028	struct cvmx_pip_stat5_prtx_s cn50xx;
1029	struct cvmx_pip_stat5_prtx_s cn52xx;
1030	struct cvmx_pip_stat5_prtx_s cn52xxp1;
1031	struct cvmx_pip_stat5_prtx_s cn56xx;
1032	struct cvmx_pip_stat5_prtx_s cn56xxp1;
1033	struct cvmx_pip_stat5_prtx_s cn58xx;
1034	struct cvmx_pip_stat5_prtx_s cn58xxp1;
1035};
1036
1037union cvmx_pip_stat6_prtx {
1038	uint64_t u64;
1039	struct cvmx_pip_stat6_prtx_s {
1040		uint64_t h1024to1518:32;
1041		uint64_t h512to1023:32;
1042	} s;
1043	struct cvmx_pip_stat6_prtx_s cn30xx;
1044	struct cvmx_pip_stat6_prtx_s cn31xx;
1045	struct cvmx_pip_stat6_prtx_s cn38xx;
1046	struct cvmx_pip_stat6_prtx_s cn38xxp2;
1047	struct cvmx_pip_stat6_prtx_s cn50xx;
1048	struct cvmx_pip_stat6_prtx_s cn52xx;
1049	struct cvmx_pip_stat6_prtx_s cn52xxp1;
1050	struct cvmx_pip_stat6_prtx_s cn56xx;
1051	struct cvmx_pip_stat6_prtx_s cn56xxp1;
1052	struct cvmx_pip_stat6_prtx_s cn58xx;
1053	struct cvmx_pip_stat6_prtx_s cn58xxp1;
1054};
1055
1056union cvmx_pip_stat7_prtx {
1057	uint64_t u64;
1058	struct cvmx_pip_stat7_prtx_s {
1059		uint64_t fcs:32;
1060		uint64_t h1519:32;
1061	} s;
1062	struct cvmx_pip_stat7_prtx_s cn30xx;
1063	struct cvmx_pip_stat7_prtx_s cn31xx;
1064	struct cvmx_pip_stat7_prtx_s cn38xx;
1065	struct cvmx_pip_stat7_prtx_s cn38xxp2;
1066	struct cvmx_pip_stat7_prtx_s cn50xx;
1067	struct cvmx_pip_stat7_prtx_s cn52xx;
1068	struct cvmx_pip_stat7_prtx_s cn52xxp1;
1069	struct cvmx_pip_stat7_prtx_s cn56xx;
1070	struct cvmx_pip_stat7_prtx_s cn56xxp1;
1071	struct cvmx_pip_stat7_prtx_s cn58xx;
1072	struct cvmx_pip_stat7_prtx_s cn58xxp1;
1073};
1074
1075union cvmx_pip_stat8_prtx {
1076	uint64_t u64;
1077	struct cvmx_pip_stat8_prtx_s {
1078		uint64_t frag:32;
1079		uint64_t undersz:32;
1080	} s;
1081	struct cvmx_pip_stat8_prtx_s cn30xx;
1082	struct cvmx_pip_stat8_prtx_s cn31xx;
1083	struct cvmx_pip_stat8_prtx_s cn38xx;
1084	struct cvmx_pip_stat8_prtx_s cn38xxp2;
1085	struct cvmx_pip_stat8_prtx_s cn50xx;
1086	struct cvmx_pip_stat8_prtx_s cn52xx;
1087	struct cvmx_pip_stat8_prtx_s cn52xxp1;
1088	struct cvmx_pip_stat8_prtx_s cn56xx;
1089	struct cvmx_pip_stat8_prtx_s cn56xxp1;
1090	struct cvmx_pip_stat8_prtx_s cn58xx;
1091	struct cvmx_pip_stat8_prtx_s cn58xxp1;
1092};
1093
1094union cvmx_pip_stat9_prtx {
1095	uint64_t u64;
1096	struct cvmx_pip_stat9_prtx_s {
1097		uint64_t jabber:32;
1098		uint64_t oversz:32;
1099	} s;
1100	struct cvmx_pip_stat9_prtx_s cn30xx;
1101	struct cvmx_pip_stat9_prtx_s cn31xx;
1102	struct cvmx_pip_stat9_prtx_s cn38xx;
1103	struct cvmx_pip_stat9_prtx_s cn38xxp2;
1104	struct cvmx_pip_stat9_prtx_s cn50xx;
1105	struct cvmx_pip_stat9_prtx_s cn52xx;
1106	struct cvmx_pip_stat9_prtx_s cn52xxp1;
1107	struct cvmx_pip_stat9_prtx_s cn56xx;
1108	struct cvmx_pip_stat9_prtx_s cn56xxp1;
1109	struct cvmx_pip_stat9_prtx_s cn58xx;
1110	struct cvmx_pip_stat9_prtx_s cn58xxp1;
1111};
1112
1113union cvmx_pip_stat_ctl {
1114	uint64_t u64;
1115	struct cvmx_pip_stat_ctl_s {
1116		uint64_t reserved_1_63:63;
1117		uint64_t rdclr:1;
1118	} s;
1119	struct cvmx_pip_stat_ctl_s cn30xx;
1120	struct cvmx_pip_stat_ctl_s cn31xx;
1121	struct cvmx_pip_stat_ctl_s cn38xx;
1122	struct cvmx_pip_stat_ctl_s cn38xxp2;
1123	struct cvmx_pip_stat_ctl_s cn50xx;
1124	struct cvmx_pip_stat_ctl_s cn52xx;
1125	struct cvmx_pip_stat_ctl_s cn52xxp1;
1126	struct cvmx_pip_stat_ctl_s cn56xx;
1127	struct cvmx_pip_stat_ctl_s cn56xxp1;
1128	struct cvmx_pip_stat_ctl_s cn58xx;
1129	struct cvmx_pip_stat_ctl_s cn58xxp1;
1130};
1131
1132union cvmx_pip_stat_inb_errsx {
1133	uint64_t u64;
1134	struct cvmx_pip_stat_inb_errsx_s {
1135		uint64_t reserved_16_63:48;
1136		uint64_t errs:16;
1137	} s;
1138	struct cvmx_pip_stat_inb_errsx_s cn30xx;
1139	struct cvmx_pip_stat_inb_errsx_s cn31xx;
1140	struct cvmx_pip_stat_inb_errsx_s cn38xx;
1141	struct cvmx_pip_stat_inb_errsx_s cn38xxp2;
1142	struct cvmx_pip_stat_inb_errsx_s cn50xx;
1143	struct cvmx_pip_stat_inb_errsx_s cn52xx;
1144	struct cvmx_pip_stat_inb_errsx_s cn52xxp1;
1145	struct cvmx_pip_stat_inb_errsx_s cn56xx;
1146	struct cvmx_pip_stat_inb_errsx_s cn56xxp1;
1147	struct cvmx_pip_stat_inb_errsx_s cn58xx;
1148	struct cvmx_pip_stat_inb_errsx_s cn58xxp1;
1149};
1150
1151union cvmx_pip_stat_inb_octsx {
1152	uint64_t u64;
1153	struct cvmx_pip_stat_inb_octsx_s {
1154		uint64_t reserved_48_63:16;
1155		uint64_t octs:48;
1156	} s;
1157	struct cvmx_pip_stat_inb_octsx_s cn30xx;
1158	struct cvmx_pip_stat_inb_octsx_s cn31xx;
1159	struct cvmx_pip_stat_inb_octsx_s cn38xx;
1160	struct cvmx_pip_stat_inb_octsx_s cn38xxp2;
1161	struct cvmx_pip_stat_inb_octsx_s cn50xx;
1162	struct cvmx_pip_stat_inb_octsx_s cn52xx;
1163	struct cvmx_pip_stat_inb_octsx_s cn52xxp1;
1164	struct cvmx_pip_stat_inb_octsx_s cn56xx;
1165	struct cvmx_pip_stat_inb_octsx_s cn56xxp1;
1166	struct cvmx_pip_stat_inb_octsx_s cn58xx;
1167	struct cvmx_pip_stat_inb_octsx_s cn58xxp1;
1168};
1169
1170union cvmx_pip_stat_inb_pktsx {
1171	uint64_t u64;
1172	struct cvmx_pip_stat_inb_pktsx_s {
1173		uint64_t reserved_32_63:32;
1174		uint64_t pkts:32;
1175	} s;
1176	struct cvmx_pip_stat_inb_pktsx_s cn30xx;
1177	struct cvmx_pip_stat_inb_pktsx_s cn31xx;
1178	struct cvmx_pip_stat_inb_pktsx_s cn38xx;
1179	struct cvmx_pip_stat_inb_pktsx_s cn38xxp2;
1180	struct cvmx_pip_stat_inb_pktsx_s cn50xx;
1181	struct cvmx_pip_stat_inb_pktsx_s cn52xx;
1182	struct cvmx_pip_stat_inb_pktsx_s cn52xxp1;
1183	struct cvmx_pip_stat_inb_pktsx_s cn56xx;
1184	struct cvmx_pip_stat_inb_pktsx_s cn56xxp1;
1185	struct cvmx_pip_stat_inb_pktsx_s cn58xx;
1186	struct cvmx_pip_stat_inb_pktsx_s cn58xxp1;
1187};
1188
1189union cvmx_pip_tag_incx {
1190	uint64_t u64;
1191	struct cvmx_pip_tag_incx_s {
1192		uint64_t reserved_8_63:56;
1193		uint64_t en:8;
1194	} s;
1195	struct cvmx_pip_tag_incx_s cn30xx;
1196	struct cvmx_pip_tag_incx_s cn31xx;
1197	struct cvmx_pip_tag_incx_s cn38xx;
1198	struct cvmx_pip_tag_incx_s cn38xxp2;
1199	struct cvmx_pip_tag_incx_s cn50xx;
1200	struct cvmx_pip_tag_incx_s cn52xx;
1201	struct cvmx_pip_tag_incx_s cn52xxp1;
1202	struct cvmx_pip_tag_incx_s cn56xx;
1203	struct cvmx_pip_tag_incx_s cn56xxp1;
1204	struct cvmx_pip_tag_incx_s cn58xx;
1205	struct cvmx_pip_tag_incx_s cn58xxp1;
1206};
1207
1208union cvmx_pip_tag_mask {
1209	uint64_t u64;
1210	struct cvmx_pip_tag_mask_s {
1211		uint64_t reserved_16_63:48;
1212		uint64_t mask:16;
1213	} s;
1214	struct cvmx_pip_tag_mask_s cn30xx;
1215	struct cvmx_pip_tag_mask_s cn31xx;
1216	struct cvmx_pip_tag_mask_s cn38xx;
1217	struct cvmx_pip_tag_mask_s cn38xxp2;
1218	struct cvmx_pip_tag_mask_s cn50xx;
1219	struct cvmx_pip_tag_mask_s cn52xx;
1220	struct cvmx_pip_tag_mask_s cn52xxp1;
1221	struct cvmx_pip_tag_mask_s cn56xx;
1222	struct cvmx_pip_tag_mask_s cn56xxp1;
1223	struct cvmx_pip_tag_mask_s cn58xx;
1224	struct cvmx_pip_tag_mask_s cn58xxp1;
1225};
1226
1227union cvmx_pip_tag_secret {
1228	uint64_t u64;
1229	struct cvmx_pip_tag_secret_s {
1230		uint64_t reserved_32_63:32;
1231		uint64_t dst:16;
1232		uint64_t src:16;
1233	} s;
1234	struct cvmx_pip_tag_secret_s cn30xx;
1235	struct cvmx_pip_tag_secret_s cn31xx;
1236	struct cvmx_pip_tag_secret_s cn38xx;
1237	struct cvmx_pip_tag_secret_s cn38xxp2;
1238	struct cvmx_pip_tag_secret_s cn50xx;
1239	struct cvmx_pip_tag_secret_s cn52xx;
1240	struct cvmx_pip_tag_secret_s cn52xxp1;
1241	struct cvmx_pip_tag_secret_s cn56xx;
1242	struct cvmx_pip_tag_secret_s cn56xxp1;
1243	struct cvmx_pip_tag_secret_s cn58xx;
1244	struct cvmx_pip_tag_secret_s cn58xxp1;
1245};
1246
1247union cvmx_pip_todo_entry {
1248	uint64_t u64;
1249	struct cvmx_pip_todo_entry_s {
1250		uint64_t val:1;
1251		uint64_t reserved_62_62:1;
1252		uint64_t entry:62;
1253	} s;
1254	struct cvmx_pip_todo_entry_s cn30xx;
1255	struct cvmx_pip_todo_entry_s cn31xx;
1256	struct cvmx_pip_todo_entry_s cn38xx;
1257	struct cvmx_pip_todo_entry_s cn38xxp2;
1258	struct cvmx_pip_todo_entry_s cn50xx;
1259	struct cvmx_pip_todo_entry_s cn52xx;
1260	struct cvmx_pip_todo_entry_s cn52xxp1;
1261	struct cvmx_pip_todo_entry_s cn56xx;
1262	struct cvmx_pip_todo_entry_s cn56xxp1;
1263	struct cvmx_pip_todo_entry_s cn58xx;
1264	struct cvmx_pip_todo_entry_s cn58xxp1;
1265};
1266
1267#endif
1268