• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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   */
35  enum cvmx_pip_port_parse_mode {
36  	/*
37  	 * Packet input doesn't perform any processing of the input
38  	 * packet.
39  	 */
40  	CVMX_PIP_PORT_CFG_MODE_NONE = 0ull,
41  	/*
42  	 * Full packet processing is performed with pointer starting
43  	 * at the L2 (ethernet MAC) header.
44  	 */
45  	CVMX_PIP_PORT_CFG_MODE_SKIPL2 = 1ull,
46  	/*
47  	 * Input packets are assumed to be IP.  Results from non IP
48  	 * packets is undefined. Pointers reference the beginning of
49  	 * the IP header.
50  	 */
51  	CVMX_PIP_PORT_CFG_MODE_SKIPIP = 2ull
52  };
53  
54  #define CVMX_PIP_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  
133  union 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  
150  union 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  
172  union 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  
185  union 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  
197  union 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  
218  union 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  
243  union 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  
268  union 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  
282  union 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  
307  union 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  
382  union 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  
395  union 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  
493  union 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  
591  union 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  
610  union 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  
739  union 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  
807  union 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  
826  union 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  
850  union 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  
886  union 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  
905  union 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  
923  union 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  
942  union 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  
961  union 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  
980  union 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  
999  union 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  
1018  union 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  
1037  union 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  
1056  union 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  
1075  union 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  
1094  union 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  
1113  union 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  
1132  union 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  
1151  union 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  
1170  union 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  
1189  union 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  
1208  union 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  
1227  union 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  
1247  union 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