linux/drivers/staging/octeon/cvmx-pip-defs.h
<<
>>
Prefs
   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