Linux Audio

Check our new training course

Loading...
Note: File does not exist in v3.1.
   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