linux/drivers/staging/octeon/cvmx-gmxx-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_GMXX_DEFS_H__
  29#define __CVMX_GMXX_DEFS_H__
  30
  31#define CVMX_GMXX_BAD_REG(block_id) \
  32         CVMX_ADD_IO_SEG(0x0001180008000518ull + (((block_id) & 1) * 0x8000000ull))
  33#define CVMX_GMXX_BIST(block_id) \
  34         CVMX_ADD_IO_SEG(0x0001180008000400ull + (((block_id) & 1) * 0x8000000ull))
  35#define CVMX_GMXX_CLK_EN(block_id) \
  36         CVMX_ADD_IO_SEG(0x00011800080007F0ull + (((block_id) & 1) * 0x8000000ull))
  37#define CVMX_GMXX_HG2_CONTROL(block_id) \
  38         CVMX_ADD_IO_SEG(0x0001180008000550ull + (((block_id) & 1) * 0x8000000ull))
  39#define CVMX_GMXX_INF_MODE(block_id) \
  40         CVMX_ADD_IO_SEG(0x00011800080007F8ull + (((block_id) & 1) * 0x8000000ull))
  41#define CVMX_GMXX_NXA_ADR(block_id) \
  42         CVMX_ADD_IO_SEG(0x0001180008000510ull + (((block_id) & 1) * 0x8000000ull))
  43#define CVMX_GMXX_PRTX_CBFC_CTL(offset, block_id) \
  44         CVMX_ADD_IO_SEG(0x0001180008000580ull + (((offset) & 0) * 8) + (((block_id) & 1) * 0x8000000ull))
  45#define CVMX_GMXX_PRTX_CFG(offset, block_id) \
  46         CVMX_ADD_IO_SEG(0x0001180008000010ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  47#define CVMX_GMXX_RXX_ADR_CAM0(offset, block_id) \
  48         CVMX_ADD_IO_SEG(0x0001180008000180ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  49#define CVMX_GMXX_RXX_ADR_CAM1(offset, block_id) \
  50         CVMX_ADD_IO_SEG(0x0001180008000188ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  51#define CVMX_GMXX_RXX_ADR_CAM2(offset, block_id) \
  52         CVMX_ADD_IO_SEG(0x0001180008000190ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  53#define CVMX_GMXX_RXX_ADR_CAM3(offset, block_id) \
  54         CVMX_ADD_IO_SEG(0x0001180008000198ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  55#define CVMX_GMXX_RXX_ADR_CAM4(offset, block_id) \
  56         CVMX_ADD_IO_SEG(0x00011800080001A0ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  57#define CVMX_GMXX_RXX_ADR_CAM5(offset, block_id) \
  58         CVMX_ADD_IO_SEG(0x00011800080001A8ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  59#define CVMX_GMXX_RXX_ADR_CAM_EN(offset, block_id) \
  60         CVMX_ADD_IO_SEG(0x0001180008000108ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  61#define CVMX_GMXX_RXX_ADR_CTL(offset, block_id) \
  62         CVMX_ADD_IO_SEG(0x0001180008000100ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  63#define CVMX_GMXX_RXX_DECISION(offset, block_id) \
  64         CVMX_ADD_IO_SEG(0x0001180008000040ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  65#define CVMX_GMXX_RXX_FRM_CHK(offset, block_id) \
  66         CVMX_ADD_IO_SEG(0x0001180008000020ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  67#define CVMX_GMXX_RXX_FRM_CTL(offset, block_id) \
  68         CVMX_ADD_IO_SEG(0x0001180008000018ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  69#define CVMX_GMXX_RXX_FRM_MAX(offset, block_id) \
  70         CVMX_ADD_IO_SEG(0x0001180008000030ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  71#define CVMX_GMXX_RXX_FRM_MIN(offset, block_id) \
  72         CVMX_ADD_IO_SEG(0x0001180008000028ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  73#define CVMX_GMXX_RXX_IFG(offset, block_id) \
  74         CVMX_ADD_IO_SEG(0x0001180008000058ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  75#define CVMX_GMXX_RXX_INT_EN(offset, block_id) \
  76         CVMX_ADD_IO_SEG(0x0001180008000008ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  77#define CVMX_GMXX_RXX_INT_REG(offset, block_id) \
  78         CVMX_ADD_IO_SEG(0x0001180008000000ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  79#define CVMX_GMXX_RXX_JABBER(offset, block_id) \
  80         CVMX_ADD_IO_SEG(0x0001180008000038ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  81#define CVMX_GMXX_RXX_PAUSE_DROP_TIME(offset, block_id) \
  82         CVMX_ADD_IO_SEG(0x0001180008000068ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  83#define CVMX_GMXX_RXX_RX_INBND(offset, block_id) \
  84         CVMX_ADD_IO_SEG(0x0001180008000060ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  85#define CVMX_GMXX_RXX_STATS_CTL(offset, block_id) \
  86         CVMX_ADD_IO_SEG(0x0001180008000050ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  87#define CVMX_GMXX_RXX_STATS_OCTS(offset, block_id) \
  88         CVMX_ADD_IO_SEG(0x0001180008000088ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  89#define CVMX_GMXX_RXX_STATS_OCTS_CTL(offset, block_id) \
  90         CVMX_ADD_IO_SEG(0x0001180008000098ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  91#define CVMX_GMXX_RXX_STATS_OCTS_DMAC(offset, block_id) \
  92         CVMX_ADD_IO_SEG(0x00011800080000A8ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  93#define CVMX_GMXX_RXX_STATS_OCTS_DRP(offset, block_id) \
  94         CVMX_ADD_IO_SEG(0x00011800080000B8ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  95#define CVMX_GMXX_RXX_STATS_PKTS(offset, block_id) \
  96         CVMX_ADD_IO_SEG(0x0001180008000080ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  97#define CVMX_GMXX_RXX_STATS_PKTS_BAD(offset, block_id) \
  98         CVMX_ADD_IO_SEG(0x00011800080000C0ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
  99#define CVMX_GMXX_RXX_STATS_PKTS_CTL(offset, block_id) \
 100         CVMX_ADD_IO_SEG(0x0001180008000090ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 101#define CVMX_GMXX_RXX_STATS_PKTS_DMAC(offset, block_id) \
 102         CVMX_ADD_IO_SEG(0x00011800080000A0ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 103#define CVMX_GMXX_RXX_STATS_PKTS_DRP(offset, block_id) \
 104         CVMX_ADD_IO_SEG(0x00011800080000B0ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 105#define CVMX_GMXX_RXX_UDD_SKP(offset, block_id) \
 106         CVMX_ADD_IO_SEG(0x0001180008000048ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 107#define CVMX_GMXX_RX_BP_DROPX(offset, block_id) \
 108         CVMX_ADD_IO_SEG(0x0001180008000420ull + (((offset) & 3) * 8) + (((block_id) & 1) * 0x8000000ull))
 109#define CVMX_GMXX_RX_BP_OFFX(offset, block_id) \
 110         CVMX_ADD_IO_SEG(0x0001180008000460ull + (((offset) & 3) * 8) + (((block_id) & 1) * 0x8000000ull))
 111#define CVMX_GMXX_RX_BP_ONX(offset, block_id) \
 112         CVMX_ADD_IO_SEG(0x0001180008000440ull + (((offset) & 3) * 8) + (((block_id) & 1) * 0x8000000ull))
 113#define CVMX_GMXX_RX_HG2_STATUS(block_id) \
 114         CVMX_ADD_IO_SEG(0x0001180008000548ull + (((block_id) & 1) * 0x8000000ull))
 115#define CVMX_GMXX_RX_PASS_EN(block_id) \
 116         CVMX_ADD_IO_SEG(0x00011800080005F8ull + (((block_id) & 1) * 0x8000000ull))
 117#define CVMX_GMXX_RX_PASS_MAPX(offset, block_id) \
 118         CVMX_ADD_IO_SEG(0x0001180008000600ull + (((offset) & 15) * 8) + (((block_id) & 1) * 0x8000000ull))
 119#define CVMX_GMXX_RX_PRTS(block_id) \
 120         CVMX_ADD_IO_SEG(0x0001180008000410ull + (((block_id) & 1) * 0x8000000ull))
 121#define CVMX_GMXX_RX_PRT_INFO(block_id) \
 122         CVMX_ADD_IO_SEG(0x00011800080004E8ull + (((block_id) & 1) * 0x8000000ull))
 123#define CVMX_GMXX_RX_TX_STATUS(block_id) \
 124         CVMX_ADD_IO_SEG(0x00011800080007E8ull + (((block_id) & 0) * 0x8000000ull))
 125#define CVMX_GMXX_RX_XAUI_BAD_COL(block_id) \
 126         CVMX_ADD_IO_SEG(0x0001180008000538ull + (((block_id) & 1) * 0x8000000ull))
 127#define CVMX_GMXX_RX_XAUI_CTL(block_id) \
 128         CVMX_ADD_IO_SEG(0x0001180008000530ull + (((block_id) & 1) * 0x8000000ull))
 129#define CVMX_GMXX_SMACX(offset, block_id) \
 130         CVMX_ADD_IO_SEG(0x0001180008000230ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 131#define CVMX_GMXX_STAT_BP(block_id) \
 132         CVMX_ADD_IO_SEG(0x0001180008000520ull + (((block_id) & 1) * 0x8000000ull))
 133#define CVMX_GMXX_TXX_APPEND(offset, block_id) \
 134         CVMX_ADD_IO_SEG(0x0001180008000218ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 135#define CVMX_GMXX_TXX_BURST(offset, block_id) \
 136         CVMX_ADD_IO_SEG(0x0001180008000228ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 137#define CVMX_GMXX_TXX_CBFC_XOFF(offset, block_id) \
 138         CVMX_ADD_IO_SEG(0x00011800080005A0ull + (((offset) & 0) * 8) + (((block_id) & 1) * 0x8000000ull))
 139#define CVMX_GMXX_TXX_CBFC_XON(offset, block_id) \
 140         CVMX_ADD_IO_SEG(0x00011800080005C0ull + (((offset) & 0) * 8) + (((block_id) & 1) * 0x8000000ull))
 141#define CVMX_GMXX_TXX_CLK(offset, block_id) \
 142         CVMX_ADD_IO_SEG(0x0001180008000208ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 143#define CVMX_GMXX_TXX_CTL(offset, block_id) \
 144         CVMX_ADD_IO_SEG(0x0001180008000270ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 145#define CVMX_GMXX_TXX_MIN_PKT(offset, block_id) \
 146         CVMX_ADD_IO_SEG(0x0001180008000240ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 147#define CVMX_GMXX_TXX_PAUSE_PKT_INTERVAL(offset, block_id) \
 148         CVMX_ADD_IO_SEG(0x0001180008000248ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 149#define CVMX_GMXX_TXX_PAUSE_PKT_TIME(offset, block_id) \
 150         CVMX_ADD_IO_SEG(0x0001180008000238ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 151#define CVMX_GMXX_TXX_PAUSE_TOGO(offset, block_id) \
 152         CVMX_ADD_IO_SEG(0x0001180008000258ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 153#define CVMX_GMXX_TXX_PAUSE_ZERO(offset, block_id) \
 154         CVMX_ADD_IO_SEG(0x0001180008000260ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 155#define CVMX_GMXX_TXX_SGMII_CTL(offset, block_id) \
 156         CVMX_ADD_IO_SEG(0x0001180008000300ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 157#define CVMX_GMXX_TXX_SLOT(offset, block_id) \
 158         CVMX_ADD_IO_SEG(0x0001180008000220ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 159#define CVMX_GMXX_TXX_SOFT_PAUSE(offset, block_id) \
 160         CVMX_ADD_IO_SEG(0x0001180008000250ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 161#define CVMX_GMXX_TXX_STAT0(offset, block_id) \
 162         CVMX_ADD_IO_SEG(0x0001180008000280ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 163#define CVMX_GMXX_TXX_STAT1(offset, block_id) \
 164         CVMX_ADD_IO_SEG(0x0001180008000288ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 165#define CVMX_GMXX_TXX_STAT2(offset, block_id) \
 166         CVMX_ADD_IO_SEG(0x0001180008000290ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 167#define CVMX_GMXX_TXX_STAT3(offset, block_id) \
 168         CVMX_ADD_IO_SEG(0x0001180008000298ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 169#define CVMX_GMXX_TXX_STAT4(offset, block_id) \
 170         CVMX_ADD_IO_SEG(0x00011800080002A0ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 171#define CVMX_GMXX_TXX_STAT5(offset, block_id) \
 172         CVMX_ADD_IO_SEG(0x00011800080002A8ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 173#define CVMX_GMXX_TXX_STAT6(offset, block_id) \
 174         CVMX_ADD_IO_SEG(0x00011800080002B0ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 175#define CVMX_GMXX_TXX_STAT7(offset, block_id) \
 176         CVMX_ADD_IO_SEG(0x00011800080002B8ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 177#define CVMX_GMXX_TXX_STAT8(offset, block_id) \
 178         CVMX_ADD_IO_SEG(0x00011800080002C0ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 179#define CVMX_GMXX_TXX_STAT9(offset, block_id) \
 180         CVMX_ADD_IO_SEG(0x00011800080002C8ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 181#define CVMX_GMXX_TXX_STATS_CTL(offset, block_id) \
 182         CVMX_ADD_IO_SEG(0x0001180008000268ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 183#define CVMX_GMXX_TXX_THRESH(offset, block_id) \
 184         CVMX_ADD_IO_SEG(0x0001180008000210ull + (((offset) & 3) * 2048) + (((block_id) & 1) * 0x8000000ull))
 185#define CVMX_GMXX_TX_BP(block_id) \
 186         CVMX_ADD_IO_SEG(0x00011800080004D0ull + (((block_id) & 1) * 0x8000000ull))
 187#define CVMX_GMXX_TX_CLK_MSKX(offset, block_id) \
 188         CVMX_ADD_IO_SEG(0x0001180008000780ull + (((offset) & 1) * 8) + (((block_id) & 0) * 0x0ull))
 189#define CVMX_GMXX_TX_COL_ATTEMPT(block_id) \
 190         CVMX_ADD_IO_SEG(0x0001180008000498ull + (((block_id) & 1) * 0x8000000ull))
 191#define CVMX_GMXX_TX_CORRUPT(block_id) \
 192         CVMX_ADD_IO_SEG(0x00011800080004D8ull + (((block_id) & 1) * 0x8000000ull))
 193#define CVMX_GMXX_TX_HG2_REG1(block_id) \
 194         CVMX_ADD_IO_SEG(0x0001180008000558ull + (((block_id) & 1) * 0x8000000ull))
 195#define CVMX_GMXX_TX_HG2_REG2(block_id) \
 196         CVMX_ADD_IO_SEG(0x0001180008000560ull + (((block_id) & 1) * 0x8000000ull))
 197#define CVMX_GMXX_TX_IFG(block_id) \
 198         CVMX_ADD_IO_SEG(0x0001180008000488ull + (((block_id) & 1) * 0x8000000ull))
 199#define CVMX_GMXX_TX_INT_EN(block_id) \
 200         CVMX_ADD_IO_SEG(0x0001180008000508ull + (((block_id) & 1) * 0x8000000ull))
 201#define CVMX_GMXX_TX_INT_REG(block_id) \
 202         CVMX_ADD_IO_SEG(0x0001180008000500ull + (((block_id) & 1) * 0x8000000ull))
 203#define CVMX_GMXX_TX_JAM(block_id) \
 204         CVMX_ADD_IO_SEG(0x0001180008000490ull + (((block_id) & 1) * 0x8000000ull))
 205#define CVMX_GMXX_TX_LFSR(block_id) \
 206         CVMX_ADD_IO_SEG(0x00011800080004F8ull + (((block_id) & 1) * 0x8000000ull))
 207#define CVMX_GMXX_TX_OVR_BP(block_id) \
 208         CVMX_ADD_IO_SEG(0x00011800080004C8ull + (((block_id) & 1) * 0x8000000ull))
 209#define CVMX_GMXX_TX_PAUSE_PKT_DMAC(block_id) \
 210         CVMX_ADD_IO_SEG(0x00011800080004A0ull + (((block_id) & 1) * 0x8000000ull))
 211#define CVMX_GMXX_TX_PAUSE_PKT_TYPE(block_id) \
 212         CVMX_ADD_IO_SEG(0x00011800080004A8ull + (((block_id) & 1) * 0x8000000ull))
 213#define CVMX_GMXX_TX_PRTS(block_id) \
 214         CVMX_ADD_IO_SEG(0x0001180008000480ull + (((block_id) & 1) * 0x8000000ull))
 215#define CVMX_GMXX_TX_SPI_CTL(block_id) \
 216         CVMX_ADD_IO_SEG(0x00011800080004C0ull + (((block_id) & 1) * 0x8000000ull))
 217#define CVMX_GMXX_TX_SPI_DRAIN(block_id) \
 218         CVMX_ADD_IO_SEG(0x00011800080004E0ull + (((block_id) & 1) * 0x8000000ull))
 219#define CVMX_GMXX_TX_SPI_MAX(block_id) \
 220         CVMX_ADD_IO_SEG(0x00011800080004B0ull + (((block_id) & 1) * 0x8000000ull))
 221#define CVMX_GMXX_TX_SPI_ROUNDX(offset, block_id) \
 222         CVMX_ADD_IO_SEG(0x0001180008000680ull + (((offset) & 31) * 8) + (((block_id) & 1) * 0x8000000ull))
 223#define CVMX_GMXX_TX_SPI_THRESH(block_id) \
 224         CVMX_ADD_IO_SEG(0x00011800080004B8ull + (((block_id) & 1) * 0x8000000ull))
 225#define CVMX_GMXX_TX_XAUI_CTL(block_id) \
 226         CVMX_ADD_IO_SEG(0x0001180008000528ull + (((block_id) & 1) * 0x8000000ull))
 227#define CVMX_GMXX_XAUI_EXT_LOOPBACK(block_id) \
 228         CVMX_ADD_IO_SEG(0x0001180008000540ull + (((block_id) & 1) * 0x8000000ull))
 229
 230union cvmx_gmxx_bad_reg {
 231        uint64_t u64;
 232        struct cvmx_gmxx_bad_reg_s {
 233                uint64_t reserved_31_63:33;
 234                uint64_t inb_nxa:4;
 235                uint64_t statovr:1;
 236                uint64_t loststat:4;
 237                uint64_t reserved_18_21:4;
 238                uint64_t out_ovr:16;
 239                uint64_t ncb_ovr:1;
 240                uint64_t out_col:1;
 241        } s;
 242        struct cvmx_gmxx_bad_reg_cn30xx {
 243                uint64_t reserved_31_63:33;
 244                uint64_t inb_nxa:4;
 245                uint64_t statovr:1;
 246                uint64_t reserved_25_25:1;
 247                uint64_t loststat:3;
 248                uint64_t reserved_5_21:17;
 249                uint64_t out_ovr:3;
 250                uint64_t reserved_0_1:2;
 251        } cn30xx;
 252        struct cvmx_gmxx_bad_reg_cn30xx cn31xx;
 253        struct cvmx_gmxx_bad_reg_s cn38xx;
 254        struct cvmx_gmxx_bad_reg_s cn38xxp2;
 255        struct cvmx_gmxx_bad_reg_cn30xx cn50xx;
 256        struct cvmx_gmxx_bad_reg_cn52xx {
 257                uint64_t reserved_31_63:33;
 258                uint64_t inb_nxa:4;
 259                uint64_t statovr:1;
 260                uint64_t loststat:4;
 261                uint64_t reserved_6_21:16;
 262                uint64_t out_ovr:4;
 263                uint64_t reserved_0_1:2;
 264        } cn52xx;
 265        struct cvmx_gmxx_bad_reg_cn52xx cn52xxp1;
 266        struct cvmx_gmxx_bad_reg_cn52xx cn56xx;
 267        struct cvmx_gmxx_bad_reg_cn52xx cn56xxp1;
 268        struct cvmx_gmxx_bad_reg_s cn58xx;
 269        struct cvmx_gmxx_bad_reg_s cn58xxp1;
 270};
 271
 272union cvmx_gmxx_bist {
 273        uint64_t u64;
 274        struct cvmx_gmxx_bist_s {
 275                uint64_t reserved_17_63:47;
 276                uint64_t status:17;
 277        } s;
 278        struct cvmx_gmxx_bist_cn30xx {
 279                uint64_t reserved_10_63:54;
 280                uint64_t status:10;
 281        } cn30xx;
 282        struct cvmx_gmxx_bist_cn30xx cn31xx;
 283        struct cvmx_gmxx_bist_cn30xx cn38xx;
 284        struct cvmx_gmxx_bist_cn30xx cn38xxp2;
 285        struct cvmx_gmxx_bist_cn50xx {
 286                uint64_t reserved_12_63:52;
 287                uint64_t status:12;
 288        } cn50xx;
 289        struct cvmx_gmxx_bist_cn52xx {
 290                uint64_t reserved_16_63:48;
 291                uint64_t status:16;
 292        } cn52xx;
 293        struct cvmx_gmxx_bist_cn52xx cn52xxp1;
 294        struct cvmx_gmxx_bist_cn52xx cn56xx;
 295        struct cvmx_gmxx_bist_cn52xx cn56xxp1;
 296        struct cvmx_gmxx_bist_s cn58xx;
 297        struct cvmx_gmxx_bist_s cn58xxp1;
 298};
 299
 300union cvmx_gmxx_clk_en {
 301        uint64_t u64;
 302        struct cvmx_gmxx_clk_en_s {
 303                uint64_t reserved_1_63:63;
 304                uint64_t clk_en:1;
 305        } s;
 306        struct cvmx_gmxx_clk_en_s cn52xx;
 307        struct cvmx_gmxx_clk_en_s cn52xxp1;
 308        struct cvmx_gmxx_clk_en_s cn56xx;
 309        struct cvmx_gmxx_clk_en_s cn56xxp1;
 310};
 311
 312union cvmx_gmxx_hg2_control {
 313        uint64_t u64;
 314        struct cvmx_gmxx_hg2_control_s {
 315                uint64_t reserved_19_63:45;
 316                uint64_t hg2tx_en:1;
 317                uint64_t hg2rx_en:1;
 318                uint64_t phys_en:1;
 319                uint64_t logl_en:16;
 320        } s;
 321        struct cvmx_gmxx_hg2_control_s cn52xx;
 322        struct cvmx_gmxx_hg2_control_s cn52xxp1;
 323        struct cvmx_gmxx_hg2_control_s cn56xx;
 324};
 325
 326union cvmx_gmxx_inf_mode {
 327        uint64_t u64;
 328        struct cvmx_gmxx_inf_mode_s {
 329                uint64_t reserved_10_63:54;
 330                uint64_t speed:2;
 331                uint64_t reserved_6_7:2;
 332                uint64_t mode:2;
 333                uint64_t reserved_3_3:1;
 334                uint64_t p0mii:1;
 335                uint64_t en:1;
 336                uint64_t type:1;
 337        } s;
 338        struct cvmx_gmxx_inf_mode_cn30xx {
 339                uint64_t reserved_3_63:61;
 340                uint64_t p0mii:1;
 341                uint64_t en:1;
 342                uint64_t type:1;
 343        } cn30xx;
 344        struct cvmx_gmxx_inf_mode_cn31xx {
 345                uint64_t reserved_2_63:62;
 346                uint64_t en:1;
 347                uint64_t type:1;
 348        } cn31xx;
 349        struct cvmx_gmxx_inf_mode_cn31xx cn38xx;
 350        struct cvmx_gmxx_inf_mode_cn31xx cn38xxp2;
 351        struct cvmx_gmxx_inf_mode_cn30xx cn50xx;
 352        struct cvmx_gmxx_inf_mode_cn52xx {
 353                uint64_t reserved_10_63:54;
 354                uint64_t speed:2;
 355                uint64_t reserved_6_7:2;
 356                uint64_t mode:2;
 357                uint64_t reserved_2_3:2;
 358                uint64_t en:1;
 359                uint64_t type:1;
 360        } cn52xx;
 361        struct cvmx_gmxx_inf_mode_cn52xx cn52xxp1;
 362        struct cvmx_gmxx_inf_mode_cn52xx cn56xx;
 363        struct cvmx_gmxx_inf_mode_cn52xx cn56xxp1;
 364        struct cvmx_gmxx_inf_mode_cn31xx cn58xx;
 365        struct cvmx_gmxx_inf_mode_cn31xx cn58xxp1;
 366};
 367
 368union cvmx_gmxx_nxa_adr {
 369        uint64_t u64;
 370        struct cvmx_gmxx_nxa_adr_s {
 371                uint64_t reserved_6_63:58;
 372                uint64_t prt:6;
 373        } s;
 374        struct cvmx_gmxx_nxa_adr_s cn30xx;
 375        struct cvmx_gmxx_nxa_adr_s cn31xx;
 376        struct cvmx_gmxx_nxa_adr_s cn38xx;
 377        struct cvmx_gmxx_nxa_adr_s cn38xxp2;
 378        struct cvmx_gmxx_nxa_adr_s cn50xx;
 379        struct cvmx_gmxx_nxa_adr_s cn52xx;
 380        struct cvmx_gmxx_nxa_adr_s cn52xxp1;
 381        struct cvmx_gmxx_nxa_adr_s cn56xx;
 382        struct cvmx_gmxx_nxa_adr_s cn56xxp1;
 383        struct cvmx_gmxx_nxa_adr_s cn58xx;
 384        struct cvmx_gmxx_nxa_adr_s cn58xxp1;
 385};
 386
 387union cvmx_gmxx_prtx_cbfc_ctl {
 388        uint64_t u64;
 389        struct cvmx_gmxx_prtx_cbfc_ctl_s {
 390                uint64_t phys_en:16;
 391                uint64_t logl_en:16;
 392                uint64_t phys_bp:16;
 393                uint64_t reserved_4_15:12;
 394                uint64_t bck_en:1;
 395                uint64_t drp_en:1;
 396                uint64_t tx_en:1;
 397                uint64_t rx_en:1;
 398        } s;
 399        struct cvmx_gmxx_prtx_cbfc_ctl_s cn52xx;
 400        struct cvmx_gmxx_prtx_cbfc_ctl_s cn56xx;
 401};
 402
 403union cvmx_gmxx_prtx_cfg {
 404        uint64_t u64;
 405        struct cvmx_gmxx_prtx_cfg_s {
 406                uint64_t reserved_14_63:50;
 407                uint64_t tx_idle:1;
 408                uint64_t rx_idle:1;
 409                uint64_t reserved_9_11:3;
 410                uint64_t speed_msb:1;
 411                uint64_t reserved_4_7:4;
 412                uint64_t slottime:1;
 413                uint64_t duplex:1;
 414                uint64_t speed:1;
 415                uint64_t en:1;
 416        } s;
 417        struct cvmx_gmxx_prtx_cfg_cn30xx {
 418                uint64_t reserved_4_63:60;
 419                uint64_t slottime:1;
 420                uint64_t duplex:1;
 421                uint64_t speed:1;
 422                uint64_t en:1;
 423        } cn30xx;
 424        struct cvmx_gmxx_prtx_cfg_cn30xx cn31xx;
 425        struct cvmx_gmxx_prtx_cfg_cn30xx cn38xx;
 426        struct cvmx_gmxx_prtx_cfg_cn30xx cn38xxp2;
 427        struct cvmx_gmxx_prtx_cfg_cn30xx cn50xx;
 428        struct cvmx_gmxx_prtx_cfg_s cn52xx;
 429        struct cvmx_gmxx_prtx_cfg_s cn52xxp1;
 430        struct cvmx_gmxx_prtx_cfg_s cn56xx;
 431        struct cvmx_gmxx_prtx_cfg_s cn56xxp1;
 432        struct cvmx_gmxx_prtx_cfg_cn30xx cn58xx;
 433        struct cvmx_gmxx_prtx_cfg_cn30xx cn58xxp1;
 434};
 435
 436union cvmx_gmxx_rxx_adr_cam0 {
 437        uint64_t u64;
 438        struct cvmx_gmxx_rxx_adr_cam0_s {
 439                uint64_t adr:64;
 440        } s;
 441        struct cvmx_gmxx_rxx_adr_cam0_s cn30xx;
 442        struct cvmx_gmxx_rxx_adr_cam0_s cn31xx;
 443        struct cvmx_gmxx_rxx_adr_cam0_s cn38xx;
 444        struct cvmx_gmxx_rxx_adr_cam0_s cn38xxp2;
 445        struct cvmx_gmxx_rxx_adr_cam0_s cn50xx;
 446        struct cvmx_gmxx_rxx_adr_cam0_s cn52xx;
 447        struct cvmx_gmxx_rxx_adr_cam0_s cn52xxp1;
 448        struct cvmx_gmxx_rxx_adr_cam0_s cn56xx;
 449        struct cvmx_gmxx_rxx_adr_cam0_s cn56xxp1;
 450        struct cvmx_gmxx_rxx_adr_cam0_s cn58xx;
 451        struct cvmx_gmxx_rxx_adr_cam0_s cn58xxp1;
 452};
 453
 454union cvmx_gmxx_rxx_adr_cam1 {
 455        uint64_t u64;
 456        struct cvmx_gmxx_rxx_adr_cam1_s {
 457                uint64_t adr:64;
 458        } s;
 459        struct cvmx_gmxx_rxx_adr_cam1_s cn30xx;
 460        struct cvmx_gmxx_rxx_adr_cam1_s cn31xx;
 461        struct cvmx_gmxx_rxx_adr_cam1_s cn38xx;
 462        struct cvmx_gmxx_rxx_adr_cam1_s cn38xxp2;
 463        struct cvmx_gmxx_rxx_adr_cam1_s cn50xx;
 464        struct cvmx_gmxx_rxx_adr_cam1_s cn52xx;
 465        struct cvmx_gmxx_rxx_adr_cam1_s cn52xxp1;
 466        struct cvmx_gmxx_rxx_adr_cam1_s cn56xx;
 467        struct cvmx_gmxx_rxx_adr_cam1_s cn56xxp1;
 468        struct cvmx_gmxx_rxx_adr_cam1_s cn58xx;
 469        struct cvmx_gmxx_rxx_adr_cam1_s cn58xxp1;
 470};
 471
 472union cvmx_gmxx_rxx_adr_cam2 {
 473        uint64_t u64;
 474        struct cvmx_gmxx_rxx_adr_cam2_s {
 475                uint64_t adr:64;
 476        } s;
 477        struct cvmx_gmxx_rxx_adr_cam2_s cn30xx;
 478        struct cvmx_gmxx_rxx_adr_cam2_s cn31xx;
 479        struct cvmx_gmxx_rxx_adr_cam2_s cn38xx;
 480        struct cvmx_gmxx_rxx_adr_cam2_s cn38xxp2;
 481        struct cvmx_gmxx_rxx_adr_cam2_s cn50xx;
 482        struct cvmx_gmxx_rxx_adr_cam2_s cn52xx;
 483        struct cvmx_gmxx_rxx_adr_cam2_s cn52xxp1;
 484        struct cvmx_gmxx_rxx_adr_cam2_s cn56xx;
 485        struct cvmx_gmxx_rxx_adr_cam2_s cn56xxp1;
 486        struct cvmx_gmxx_rxx_adr_cam2_s cn58xx;
 487        struct cvmx_gmxx_rxx_adr_cam2_s cn58xxp1;
 488};
 489
 490union cvmx_gmxx_rxx_adr_cam3 {
 491        uint64_t u64;
 492        struct cvmx_gmxx_rxx_adr_cam3_s {
 493                uint64_t adr:64;
 494        } s;
 495        struct cvmx_gmxx_rxx_adr_cam3_s cn30xx;
 496        struct cvmx_gmxx_rxx_adr_cam3_s cn31xx;
 497        struct cvmx_gmxx_rxx_adr_cam3_s cn38xx;
 498        struct cvmx_gmxx_rxx_adr_cam3_s cn38xxp2;
 499        struct cvmx_gmxx_rxx_adr_cam3_s cn50xx;
 500        struct cvmx_gmxx_rxx_adr_cam3_s cn52xx;
 501        struct cvmx_gmxx_rxx_adr_cam3_s cn52xxp1;
 502        struct cvmx_gmxx_rxx_adr_cam3_s cn56xx;
 503        struct cvmx_gmxx_rxx_adr_cam3_s cn56xxp1;
 504        struct cvmx_gmxx_rxx_adr_cam3_s cn58xx;
 505        struct cvmx_gmxx_rxx_adr_cam3_s cn58xxp1;
 506};
 507
 508union cvmx_gmxx_rxx_adr_cam4 {
 509        uint64_t u64;
 510        struct cvmx_gmxx_rxx_adr_cam4_s {
 511                uint64_t adr:64;
 512        } s;
 513        struct cvmx_gmxx_rxx_adr_cam4_s cn30xx;
 514        struct cvmx_gmxx_rxx_adr_cam4_s cn31xx;
 515        struct cvmx_gmxx_rxx_adr_cam4_s cn38xx;
 516        struct cvmx_gmxx_rxx_adr_cam4_s cn38xxp2;
 517        struct cvmx_gmxx_rxx_adr_cam4_s cn50xx;
 518        struct cvmx_gmxx_rxx_adr_cam4_s cn52xx;
 519        struct cvmx_gmxx_rxx_adr_cam4_s cn52xxp1;
 520        struct cvmx_gmxx_rxx_adr_cam4_s cn56xx;
 521        struct cvmx_gmxx_rxx_adr_cam4_s cn56xxp1;
 522        struct cvmx_gmxx_rxx_adr_cam4_s cn58xx;
 523        struct cvmx_gmxx_rxx_adr_cam4_s cn58xxp1;
 524};
 525
 526union cvmx_gmxx_rxx_adr_cam5 {
 527        uint64_t u64;
 528        struct cvmx_gmxx_rxx_adr_cam5_s {
 529                uint64_t adr:64;
 530        } s;
 531        struct cvmx_gmxx_rxx_adr_cam5_s cn30xx;
 532        struct cvmx_gmxx_rxx_adr_cam5_s cn31xx;
 533        struct cvmx_gmxx_rxx_adr_cam5_s cn38xx;
 534        struct cvmx_gmxx_rxx_adr_cam5_s cn38xxp2;
 535        struct cvmx_gmxx_rxx_adr_cam5_s cn50xx;
 536        struct cvmx_gmxx_rxx_adr_cam5_s cn52xx;
 537        struct cvmx_gmxx_rxx_adr_cam5_s cn52xxp1;
 538        struct cvmx_gmxx_rxx_adr_cam5_s cn56xx;
 539        struct cvmx_gmxx_rxx_adr_cam5_s cn56xxp1;
 540        struct cvmx_gmxx_rxx_adr_cam5_s cn58xx;
 541        struct cvmx_gmxx_rxx_adr_cam5_s cn58xxp1;
 542};
 543
 544union cvmx_gmxx_rxx_adr_cam_en {
 545        uint64_t u64;
 546        struct cvmx_gmxx_rxx_adr_cam_en_s {
 547                uint64_t reserved_8_63:56;
 548                uint64_t en:8;
 549        } s;
 550        struct cvmx_gmxx_rxx_adr_cam_en_s cn30xx;
 551        struct cvmx_gmxx_rxx_adr_cam_en_s cn31xx;
 552        struct cvmx_gmxx_rxx_adr_cam_en_s cn38xx;
 553        struct cvmx_gmxx_rxx_adr_cam_en_s cn38xxp2;
 554        struct cvmx_gmxx_rxx_adr_cam_en_s cn50xx;
 555        struct cvmx_gmxx_rxx_adr_cam_en_s cn52xx;
 556        struct cvmx_gmxx_rxx_adr_cam_en_s cn52xxp1;
 557        struct cvmx_gmxx_rxx_adr_cam_en_s cn56xx;
 558        struct cvmx_gmxx_rxx_adr_cam_en_s cn56xxp1;
 559        struct cvmx_gmxx_rxx_adr_cam_en_s cn58xx;
 560        struct cvmx_gmxx_rxx_adr_cam_en_s cn58xxp1;
 561};
 562
 563union cvmx_gmxx_rxx_adr_ctl {
 564        uint64_t u64;
 565        struct cvmx_gmxx_rxx_adr_ctl_s {
 566                uint64_t reserved_4_63:60;
 567                uint64_t cam_mode:1;
 568                uint64_t mcst:2;
 569                uint64_t bcst:1;
 570        } s;
 571        struct cvmx_gmxx_rxx_adr_ctl_s cn30xx;
 572        struct cvmx_gmxx_rxx_adr_ctl_s cn31xx;
 573        struct cvmx_gmxx_rxx_adr_ctl_s cn38xx;
 574        struct cvmx_gmxx_rxx_adr_ctl_s cn38xxp2;
 575        struct cvmx_gmxx_rxx_adr_ctl_s cn50xx;
 576        struct cvmx_gmxx_rxx_adr_ctl_s cn52xx;
 577        struct cvmx_gmxx_rxx_adr_ctl_s cn52xxp1;
 578        struct cvmx_gmxx_rxx_adr_ctl_s cn56xx;
 579        struct cvmx_gmxx_rxx_adr_ctl_s cn56xxp1;
 580        struct cvmx_gmxx_rxx_adr_ctl_s cn58xx;
 581        struct cvmx_gmxx_rxx_adr_ctl_s cn58xxp1;
 582};
 583
 584union cvmx_gmxx_rxx_decision {
 585        uint64_t u64;
 586        struct cvmx_gmxx_rxx_decision_s {
 587                uint64_t reserved_5_63:59;
 588                uint64_t cnt:5;
 589        } s;
 590        struct cvmx_gmxx_rxx_decision_s cn30xx;
 591        struct cvmx_gmxx_rxx_decision_s cn31xx;
 592        struct cvmx_gmxx_rxx_decision_s cn38xx;
 593        struct cvmx_gmxx_rxx_decision_s cn38xxp2;
 594        struct cvmx_gmxx_rxx_decision_s cn50xx;
 595        struct cvmx_gmxx_rxx_decision_s cn52xx;
 596        struct cvmx_gmxx_rxx_decision_s cn52xxp1;
 597        struct cvmx_gmxx_rxx_decision_s cn56xx;
 598        struct cvmx_gmxx_rxx_decision_s cn56xxp1;
 599        struct cvmx_gmxx_rxx_decision_s cn58xx;
 600        struct cvmx_gmxx_rxx_decision_s cn58xxp1;
 601};
 602
 603union cvmx_gmxx_rxx_frm_chk {
 604        uint64_t u64;
 605        struct cvmx_gmxx_rxx_frm_chk_s {
 606                uint64_t reserved_10_63:54;
 607                uint64_t niberr:1;
 608                uint64_t skperr:1;
 609                uint64_t rcverr:1;
 610                uint64_t lenerr:1;
 611                uint64_t alnerr:1;
 612                uint64_t fcserr:1;
 613                uint64_t jabber:1;
 614                uint64_t maxerr:1;
 615                uint64_t carext:1;
 616                uint64_t minerr:1;
 617        } s;
 618        struct cvmx_gmxx_rxx_frm_chk_s cn30xx;
 619        struct cvmx_gmxx_rxx_frm_chk_s cn31xx;
 620        struct cvmx_gmxx_rxx_frm_chk_s cn38xx;
 621        struct cvmx_gmxx_rxx_frm_chk_s cn38xxp2;
 622        struct cvmx_gmxx_rxx_frm_chk_cn50xx {
 623                uint64_t reserved_10_63:54;
 624                uint64_t niberr:1;
 625                uint64_t skperr:1;
 626                uint64_t rcverr:1;
 627                uint64_t reserved_6_6:1;
 628                uint64_t alnerr:1;
 629                uint64_t fcserr:1;
 630                uint64_t jabber:1;
 631                uint64_t reserved_2_2:1;
 632                uint64_t carext:1;
 633                uint64_t reserved_0_0:1;
 634        } cn50xx;
 635        struct cvmx_gmxx_rxx_frm_chk_cn52xx {
 636                uint64_t reserved_9_63:55;
 637                uint64_t skperr:1;
 638                uint64_t rcverr:1;
 639                uint64_t reserved_5_6:2;
 640                uint64_t fcserr:1;
 641                uint64_t jabber:1;
 642                uint64_t reserved_2_2:1;
 643                uint64_t carext:1;
 644                uint64_t reserved_0_0:1;
 645        } cn52xx;
 646        struct cvmx_gmxx_rxx_frm_chk_cn52xx cn52xxp1;
 647        struct cvmx_gmxx_rxx_frm_chk_cn52xx cn56xx;
 648        struct cvmx_gmxx_rxx_frm_chk_cn52xx cn56xxp1;
 649        struct cvmx_gmxx_rxx_frm_chk_s cn58xx;
 650        struct cvmx_gmxx_rxx_frm_chk_s cn58xxp1;
 651};
 652
 653union cvmx_gmxx_rxx_frm_ctl {
 654        uint64_t u64;
 655        struct cvmx_gmxx_rxx_frm_ctl_s {
 656                uint64_t reserved_11_63:53;
 657                uint64_t null_dis:1;
 658                uint64_t pre_align:1;
 659                uint64_t pad_len:1;
 660                uint64_t vlan_len:1;
 661                uint64_t pre_free:1;
 662                uint64_t ctl_smac:1;
 663                uint64_t ctl_mcst:1;
 664                uint64_t ctl_bck:1;
 665                uint64_t ctl_drp:1;
 666                uint64_t pre_strp:1;
 667                uint64_t pre_chk:1;
 668        } s;
 669        struct cvmx_gmxx_rxx_frm_ctl_cn30xx {
 670                uint64_t reserved_9_63:55;
 671                uint64_t pad_len:1;
 672                uint64_t vlan_len:1;
 673                uint64_t pre_free:1;
 674                uint64_t ctl_smac:1;
 675                uint64_t ctl_mcst:1;
 676                uint64_t ctl_bck:1;
 677                uint64_t ctl_drp:1;
 678                uint64_t pre_strp:1;
 679                uint64_t pre_chk:1;
 680        } cn30xx;
 681        struct cvmx_gmxx_rxx_frm_ctl_cn31xx {
 682                uint64_t reserved_8_63:56;
 683                uint64_t vlan_len:1;
 684                uint64_t pre_free:1;
 685                uint64_t ctl_smac:1;
 686                uint64_t ctl_mcst:1;
 687                uint64_t ctl_bck:1;
 688                uint64_t ctl_drp:1;
 689                uint64_t pre_strp:1;
 690                uint64_t pre_chk:1;
 691        } cn31xx;
 692        struct cvmx_gmxx_rxx_frm_ctl_cn30xx cn38xx;
 693        struct cvmx_gmxx_rxx_frm_ctl_cn31xx cn38xxp2;
 694        struct cvmx_gmxx_rxx_frm_ctl_cn50xx {
 695                uint64_t reserved_11_63:53;
 696                uint64_t null_dis:1;
 697                uint64_t pre_align:1;
 698                uint64_t reserved_7_8:2;
 699                uint64_t pre_free:1;
 700                uint64_t ctl_smac:1;
 701                uint64_t ctl_mcst:1;
 702                uint64_t ctl_bck:1;
 703                uint64_t ctl_drp:1;
 704                uint64_t pre_strp:1;
 705                uint64_t pre_chk:1;
 706        } cn50xx;
 707        struct cvmx_gmxx_rxx_frm_ctl_cn50xx cn52xx;
 708        struct cvmx_gmxx_rxx_frm_ctl_cn50xx cn52xxp1;
 709        struct cvmx_gmxx_rxx_frm_ctl_cn50xx cn56xx;
 710        struct cvmx_gmxx_rxx_frm_ctl_cn56xxp1 {
 711                uint64_t reserved_10_63:54;
 712                uint64_t pre_align:1;
 713                uint64_t reserved_7_8:2;
 714                uint64_t pre_free:1;
 715                uint64_t ctl_smac:1;
 716                uint64_t ctl_mcst:1;
 717                uint64_t ctl_bck:1;
 718                uint64_t ctl_drp:1;
 719                uint64_t pre_strp:1;
 720                uint64_t pre_chk:1;
 721        } cn56xxp1;
 722        struct cvmx_gmxx_rxx_frm_ctl_s cn58xx;
 723        struct cvmx_gmxx_rxx_frm_ctl_cn30xx cn58xxp1;
 724};
 725
 726union cvmx_gmxx_rxx_frm_max {
 727        uint64_t u64;
 728        struct cvmx_gmxx_rxx_frm_max_s {
 729                uint64_t reserved_16_63:48;
 730                uint64_t len:16;
 731        } s;
 732        struct cvmx_gmxx_rxx_frm_max_s cn30xx;
 733        struct cvmx_gmxx_rxx_frm_max_s cn31xx;
 734        struct cvmx_gmxx_rxx_frm_max_s cn38xx;
 735        struct cvmx_gmxx_rxx_frm_max_s cn38xxp2;
 736        struct cvmx_gmxx_rxx_frm_max_s cn58xx;
 737        struct cvmx_gmxx_rxx_frm_max_s cn58xxp1;
 738};
 739
 740union cvmx_gmxx_rxx_frm_min {
 741        uint64_t u64;
 742        struct cvmx_gmxx_rxx_frm_min_s {
 743                uint64_t reserved_16_63:48;
 744                uint64_t len:16;
 745        } s;
 746        struct cvmx_gmxx_rxx_frm_min_s cn30xx;
 747        struct cvmx_gmxx_rxx_frm_min_s cn31xx;
 748        struct cvmx_gmxx_rxx_frm_min_s cn38xx;
 749        struct cvmx_gmxx_rxx_frm_min_s cn38xxp2;
 750        struct cvmx_gmxx_rxx_frm_min_s cn58xx;
 751        struct cvmx_gmxx_rxx_frm_min_s cn58xxp1;
 752};
 753
 754union cvmx_gmxx_rxx_ifg {
 755        uint64_t u64;
 756        struct cvmx_gmxx_rxx_ifg_s {
 757                uint64_t reserved_4_63:60;
 758                uint64_t ifg:4;
 759        } s;
 760        struct cvmx_gmxx_rxx_ifg_s cn30xx;
 761        struct cvmx_gmxx_rxx_ifg_s cn31xx;
 762        struct cvmx_gmxx_rxx_ifg_s cn38xx;
 763        struct cvmx_gmxx_rxx_ifg_s cn38xxp2;
 764        struct cvmx_gmxx_rxx_ifg_s cn50xx;
 765        struct cvmx_gmxx_rxx_ifg_s cn52xx;
 766        struct cvmx_gmxx_rxx_ifg_s cn52xxp1;
 767        struct cvmx_gmxx_rxx_ifg_s cn56xx;
 768        struct cvmx_gmxx_rxx_ifg_s cn56xxp1;
 769        struct cvmx_gmxx_rxx_ifg_s cn58xx;
 770        struct cvmx_gmxx_rxx_ifg_s cn58xxp1;
 771};
 772
 773union cvmx_gmxx_rxx_int_en {
 774        uint64_t u64;
 775        struct cvmx_gmxx_rxx_int_en_s {
 776                uint64_t reserved_29_63:35;
 777                uint64_t hg2cc:1;
 778                uint64_t hg2fld:1;
 779                uint64_t undat:1;
 780                uint64_t uneop:1;
 781                uint64_t unsop:1;
 782                uint64_t bad_term:1;
 783                uint64_t bad_seq:1;
 784                uint64_t rem_fault:1;
 785                uint64_t loc_fault:1;
 786                uint64_t pause_drp:1;
 787                uint64_t phy_dupx:1;
 788                uint64_t phy_spd:1;
 789                uint64_t phy_link:1;
 790                uint64_t ifgerr:1;
 791                uint64_t coldet:1;
 792                uint64_t falerr:1;
 793                uint64_t rsverr:1;
 794                uint64_t pcterr:1;
 795                uint64_t ovrerr:1;
 796                uint64_t niberr:1;
 797                uint64_t skperr:1;
 798                uint64_t rcverr:1;
 799                uint64_t lenerr:1;
 800                uint64_t alnerr:1;
 801                uint64_t fcserr:1;
 802                uint64_t jabber:1;
 803                uint64_t maxerr:1;
 804                uint64_t carext:1;
 805                uint64_t minerr:1;
 806        } s;
 807        struct cvmx_gmxx_rxx_int_en_cn30xx {
 808                uint64_t reserved_19_63:45;
 809                uint64_t phy_dupx:1;
 810                uint64_t phy_spd:1;
 811                uint64_t phy_link:1;
 812                uint64_t ifgerr:1;
 813                uint64_t coldet:1;
 814                uint64_t falerr:1;
 815                uint64_t rsverr:1;
 816                uint64_t pcterr:1;
 817                uint64_t ovrerr:1;
 818                uint64_t niberr:1;
 819                uint64_t skperr:1;
 820                uint64_t rcverr:1;
 821                uint64_t lenerr:1;
 822                uint64_t alnerr:1;
 823                uint64_t fcserr:1;
 824                uint64_t jabber:1;
 825                uint64_t maxerr:1;
 826                uint64_t carext:1;
 827                uint64_t minerr:1;
 828        } cn30xx;
 829        struct cvmx_gmxx_rxx_int_en_cn30xx cn31xx;
 830        struct cvmx_gmxx_rxx_int_en_cn30xx cn38xx;
 831        struct cvmx_gmxx_rxx_int_en_cn30xx cn38xxp2;
 832        struct cvmx_gmxx_rxx_int_en_cn50xx {
 833                uint64_t reserved_20_63:44;
 834                uint64_t pause_drp:1;
 835                uint64_t phy_dupx:1;
 836                uint64_t phy_spd:1;
 837                uint64_t phy_link:1;
 838                uint64_t ifgerr:1;
 839                uint64_t coldet:1;
 840                uint64_t falerr:1;
 841                uint64_t rsverr:1;
 842                uint64_t pcterr:1;
 843                uint64_t ovrerr:1;
 844                uint64_t niberr:1;
 845                uint64_t skperr:1;
 846                uint64_t rcverr:1;
 847                uint64_t reserved_6_6:1;
 848                uint64_t alnerr:1;
 849                uint64_t fcserr:1;
 850                uint64_t jabber:1;
 851                uint64_t reserved_2_2:1;
 852                uint64_t carext:1;
 853                uint64_t reserved_0_0:1;
 854        } cn50xx;
 855        struct cvmx_gmxx_rxx_int_en_cn52xx {
 856                uint64_t reserved_29_63:35;
 857                uint64_t hg2cc:1;
 858                uint64_t hg2fld:1;
 859                uint64_t undat:1;
 860                uint64_t uneop:1;
 861                uint64_t unsop:1;
 862                uint64_t bad_term:1;
 863                uint64_t bad_seq:1;
 864                uint64_t rem_fault:1;
 865                uint64_t loc_fault:1;
 866                uint64_t pause_drp:1;
 867                uint64_t reserved_16_18:3;
 868                uint64_t ifgerr:1;
 869                uint64_t coldet:1;
 870                uint64_t falerr:1;
 871                uint64_t rsverr:1;
 872                uint64_t pcterr:1;
 873                uint64_t ovrerr:1;
 874                uint64_t reserved_9_9:1;
 875                uint64_t skperr:1;
 876                uint64_t rcverr:1;
 877                uint64_t reserved_5_6:2;
 878                uint64_t fcserr:1;
 879                uint64_t jabber:1;
 880                uint64_t reserved_2_2:1;
 881                uint64_t carext:1;
 882                uint64_t reserved_0_0:1;
 883        } cn52xx;
 884        struct cvmx_gmxx_rxx_int_en_cn52xx cn52xxp1;
 885        struct cvmx_gmxx_rxx_int_en_cn52xx cn56xx;
 886        struct cvmx_gmxx_rxx_int_en_cn56xxp1 {
 887                uint64_t reserved_27_63:37;
 888                uint64_t undat:1;
 889                uint64_t uneop:1;
 890                uint64_t unsop:1;
 891                uint64_t bad_term:1;
 892                uint64_t bad_seq:1;
 893                uint64_t rem_fault:1;
 894                uint64_t loc_fault:1;
 895                uint64_t pause_drp:1;
 896                uint64_t reserved_16_18:3;
 897                uint64_t ifgerr:1;
 898                uint64_t coldet:1;
 899                uint64_t falerr:1;
 900                uint64_t rsverr:1;
 901                uint64_t pcterr:1;
 902                uint64_t ovrerr:1;
 903                uint64_t reserved_9_9:1;
 904                uint64_t skperr:1;
 905                uint64_t rcverr:1;
 906                uint64_t reserved_5_6:2;
 907                uint64_t fcserr:1;
 908                uint64_t jabber:1;
 909                uint64_t reserved_2_2:1;
 910                uint64_t carext:1;
 911                uint64_t reserved_0_0:1;
 912        } cn56xxp1;
 913        struct cvmx_gmxx_rxx_int_en_cn58xx {
 914                uint64_t reserved_20_63:44;
 915                uint64_t pause_drp:1;
 916                uint64_t phy_dupx:1;
 917                uint64_t phy_spd:1;
 918                uint64_t phy_link:1;
 919                uint64_t ifgerr:1;
 920                uint64_t coldet:1;
 921                uint64_t falerr:1;
 922                uint64_t rsverr:1;
 923                uint64_t pcterr:1;
 924                uint64_t ovrerr:1;
 925                uint64_t niberr:1;
 926                uint64_t skperr:1;
 927                uint64_t rcverr:1;
 928                uint64_t lenerr:1;
 929                uint64_t alnerr:1;
 930                uint64_t fcserr:1;
 931                uint64_t jabber:1;
 932                uint64_t maxerr:1;
 933                uint64_t carext:1;
 934                uint64_t minerr:1;
 935        } cn58xx;
 936        struct cvmx_gmxx_rxx_int_en_cn58xx cn58xxp1;
 937};
 938
 939union cvmx_gmxx_rxx_int_reg {
 940        uint64_t u64;
 941        struct cvmx_gmxx_rxx_int_reg_s {
 942                uint64_t reserved_29_63:35;
 943                uint64_t hg2cc:1;
 944                uint64_t hg2fld:1;
 945                uint64_t undat:1;
 946                uint64_t uneop:1;
 947                uint64_t unsop:1;
 948                uint64_t bad_term:1;
 949                uint64_t bad_seq:1;
 950                uint64_t rem_fault:1;
 951                uint64_t loc_fault:1;
 952                uint64_t pause_drp:1;
 953                uint64_t phy_dupx:1;
 954                uint64_t phy_spd:1;
 955                uint64_t phy_link:1;
 956                uint64_t ifgerr:1;
 957                uint64_t coldet:1;
 958                uint64_t falerr:1;
 959                uint64_t rsverr:1;
 960                uint64_t pcterr:1;
 961                uint64_t ovrerr:1;
 962                uint64_t niberr:1;
 963                uint64_t skperr:1;
 964                uint64_t rcverr:1;
 965                uint64_t lenerr:1;
 966                uint64_t alnerr:1;
 967                uint64_t fcserr:1;
 968                uint64_t jabber:1;
 969                uint64_t maxerr:1;
 970                uint64_t carext:1;
 971                uint64_t minerr:1;
 972        } s;
 973        struct cvmx_gmxx_rxx_int_reg_cn30xx {
 974                uint64_t reserved_19_63:45;
 975                uint64_t phy_dupx:1;
 976                uint64_t phy_spd:1;
 977                uint64_t phy_link:1;
 978                uint64_t ifgerr:1;
 979                uint64_t coldet:1;
 980                uint64_t falerr:1;
 981                uint64_t rsverr:1;
 982                uint64_t pcterr:1;
 983                uint64_t ovrerr:1;
 984                uint64_t niberr:1;
 985                uint64_t skperr:1;
 986                uint64_t rcverr:1;
 987                uint64_t lenerr:1;
 988                uint64_t alnerr:1;
 989                uint64_t fcserr:1;
 990                uint64_t jabber:1;
 991                uint64_t maxerr:1;
 992                uint64_t carext:1;
 993                uint64_t minerr:1;
 994        } cn30xx;
 995        struct cvmx_gmxx_rxx_int_reg_cn30xx cn31xx;
 996        struct cvmx_gmxx_rxx_int_reg_cn30xx cn38xx;
 997        struct cvmx_gmxx_rxx_int_reg_cn30xx cn38xxp2;
 998        struct cvmx_gmxx_rxx_int_reg_cn50xx {
 999                uint64_t reserved_20_63:44;
1000                uint64_t pause_drp:1;
1001                uint64_t phy_dupx:1;
1002                uint64_t phy_spd:1;
1003                uint64_t phy_link:1;
1004                uint64_t ifgerr:1;
1005                uint64_t coldet:1;
1006                uint64_t falerr:1;
1007                uint64_t rsverr:1;
1008                uint64_t pcterr:1;
1009                uint64_t ovrerr:1;
1010                uint64_t niberr:1;
1011                uint64_t skperr:1;
1012                uint64_t rcverr:1;
1013                uint64_t reserved_6_6:1;
1014                uint64_t alnerr:1;
1015                uint64_t fcserr:1;
1016                uint64_t jabber:1;
1017                uint64_t reserved_2_2:1;
1018                uint64_t carext:1;
1019                uint64_t reserved_0_0:1;
1020        } cn50xx;
1021        struct cvmx_gmxx_rxx_int_reg_cn52xx {
1022                uint64_t reserved_29_63:35;
1023                uint64_t hg2cc:1;
1024                uint64_t hg2fld:1;
1025                uint64_t undat:1;
1026                uint64_t uneop:1;
1027                uint64_t unsop:1;
1028                uint64_t bad_term:1;
1029                uint64_t bad_seq:1;
1030                uint64_t rem_fault:1;
1031                uint64_t loc_fault:1;
1032                uint64_t pause_drp:1;
1033                uint64_t reserved_16_18:3;
1034                uint64_t ifgerr:1;
1035                uint64_t coldet:1;
1036                uint64_t falerr:1;
1037                uint64_t rsverr:1;
1038                uint64_t pcterr:1;
1039                uint64_t ovrerr:1;
1040                uint64_t reserved_9_9:1;
1041                uint64_t skperr:1;
1042                uint64_t rcverr:1;
1043                uint64_t reserved_5_6:2;
1044                uint64_t fcserr:1;
1045                uint64_t jabber:1;
1046                uint64_t reserved_2_2:1;
1047                uint64_t carext:1;
1048                uint64_t reserved_0_0:1;
1049        } cn52xx;
1050        struct cvmx_gmxx_rxx_int_reg_cn52xx cn52xxp1;
1051        struct cvmx_gmxx_rxx_int_reg_cn52xx cn56xx;
1052        struct cvmx_gmxx_rxx_int_reg_cn56xxp1 {
1053                uint64_t reserved_27_63:37;
1054                uint64_t undat:1;
1055                uint64_t uneop:1;
1056                uint64_t unsop:1;
1057                uint64_t bad_term:1;
1058                uint64_t bad_seq:1;
1059                uint64_t rem_fault:1;
1060                uint64_t loc_fault:1;
1061                uint64_t pause_drp:1;
1062                uint64_t reserved_16_18:3;
1063                uint64_t ifgerr:1;
1064                uint64_t coldet:1;
1065                uint64_t falerr:1;
1066                uint64_t rsverr:1;
1067                uint64_t pcterr:1;
1068                uint64_t ovrerr:1;
1069                uint64_t reserved_9_9:1;
1070                uint64_t skperr:1;
1071                uint64_t rcverr:1;
1072                uint64_t reserved_5_6:2;
1073                uint64_t fcserr:1;
1074                uint64_t jabber:1;
1075                uint64_t reserved_2_2:1;
1076                uint64_t carext:1;
1077                uint64_t reserved_0_0:1;
1078        } cn56xxp1;
1079        struct cvmx_gmxx_rxx_int_reg_cn58xx {
1080                uint64_t reserved_20_63:44;
1081                uint64_t pause_drp:1;
1082                uint64_t phy_dupx:1;
1083                uint64_t phy_spd:1;
1084                uint64_t phy_link:1;
1085                uint64_t ifgerr:1;
1086                uint64_t coldet:1;
1087                uint64_t falerr:1;
1088                uint64_t rsverr:1;
1089                uint64_t pcterr:1;
1090                uint64_t ovrerr:1;
1091                uint64_t niberr:1;
1092                uint64_t skperr:1;
1093                uint64_t rcverr:1;
1094                uint64_t lenerr:1;
1095                uint64_t alnerr:1;
1096                uint64_t fcserr:1;
1097                uint64_t jabber:1;
1098                uint64_t maxerr:1;
1099                uint64_t carext:1;
1100                uint64_t minerr:1;
1101        } cn58xx;
1102        struct cvmx_gmxx_rxx_int_reg_cn58xx cn58xxp1;
1103};
1104
1105union cvmx_gmxx_rxx_jabber {
1106        uint64_t u64;
1107        struct cvmx_gmxx_rxx_jabber_s {
1108                uint64_t reserved_16_63:48;
1109                uint64_t cnt:16;
1110        } s;
1111        struct cvmx_gmxx_rxx_jabber_s cn30xx;
1112        struct cvmx_gmxx_rxx_jabber_s cn31xx;
1113        struct cvmx_gmxx_rxx_jabber_s cn38xx;
1114        struct cvmx_gmxx_rxx_jabber_s cn38xxp2;
1115        struct cvmx_gmxx_rxx_jabber_s cn50xx;
1116        struct cvmx_gmxx_rxx_jabber_s cn52xx;
1117        struct cvmx_gmxx_rxx_jabber_s cn52xxp1;
1118        struct cvmx_gmxx_rxx_jabber_s cn56xx;
1119        struct cvmx_gmxx_rxx_jabber_s cn56xxp1;
1120        struct cvmx_gmxx_rxx_jabber_s cn58xx;
1121        struct cvmx_gmxx_rxx_jabber_s cn58xxp1;
1122};
1123
1124union cvmx_gmxx_rxx_pause_drop_time {
1125        uint64_t u64;
1126        struct cvmx_gmxx_rxx_pause_drop_time_s {
1127                uint64_t reserved_16_63:48;
1128                uint64_t status:16;
1129        } s;
1130        struct cvmx_gmxx_rxx_pause_drop_time_s cn50xx;
1131        struct cvmx_gmxx_rxx_pause_drop_time_s cn52xx;
1132        struct cvmx_gmxx_rxx_pause_drop_time_s cn52xxp1;
1133        struct cvmx_gmxx_rxx_pause_drop_time_s cn56xx;
1134        struct cvmx_gmxx_rxx_pause_drop_time_s cn56xxp1;
1135        struct cvmx_gmxx_rxx_pause_drop_time_s cn58xx;
1136        struct cvmx_gmxx_rxx_pause_drop_time_s cn58xxp1;
1137};
1138
1139union cvmx_gmxx_rxx_rx_inbnd {
1140        uint64_t u64;
1141        struct cvmx_gmxx_rxx_rx_inbnd_s {
1142                uint64_t reserved_4_63:60;
1143                uint64_t duplex:1;
1144                uint64_t speed:2;
1145                uint64_t status:1;
1146        } s;
1147        struct cvmx_gmxx_rxx_rx_inbnd_s cn30xx;
1148        struct cvmx_gmxx_rxx_rx_inbnd_s cn31xx;
1149        struct cvmx_gmxx_rxx_rx_inbnd_s cn38xx;
1150        struct cvmx_gmxx_rxx_rx_inbnd_s cn38xxp2;
1151        struct cvmx_gmxx_rxx_rx_inbnd_s cn50xx;
1152        struct cvmx_gmxx_rxx_rx_inbnd_s cn58xx;
1153        struct cvmx_gmxx_rxx_rx_inbnd_s cn58xxp1;
1154};
1155
1156union cvmx_gmxx_rxx_stats_ctl {
1157        uint64_t u64;
1158        struct cvmx_gmxx_rxx_stats_ctl_s {
1159                uint64_t reserved_1_63:63;
1160                uint64_t rd_clr:1;
1161        } s;
1162        struct cvmx_gmxx_rxx_stats_ctl_s cn30xx;
1163        struct cvmx_gmxx_rxx_stats_ctl_s cn31xx;
1164        struct cvmx_gmxx_rxx_stats_ctl_s cn38xx;
1165        struct cvmx_gmxx_rxx_stats_ctl_s cn38xxp2;
1166        struct cvmx_gmxx_rxx_stats_ctl_s cn50xx;
1167        struct cvmx_gmxx_rxx_stats_ctl_s cn52xx;
1168        struct cvmx_gmxx_rxx_stats_ctl_s cn52xxp1;
1169        struct cvmx_gmxx_rxx_stats_ctl_s cn56xx;
1170        struct cvmx_gmxx_rxx_stats_ctl_s cn56xxp1;
1171        struct cvmx_gmxx_rxx_stats_ctl_s cn58xx;
1172        struct cvmx_gmxx_rxx_stats_ctl_s cn58xxp1;
1173};
1174
1175union cvmx_gmxx_rxx_stats_octs {
1176        uint64_t u64;
1177        struct cvmx_gmxx_rxx_stats_octs_s {
1178                uint64_t reserved_48_63:16;
1179                uint64_t cnt:48;
1180        } s;
1181        struct cvmx_gmxx_rxx_stats_octs_s cn30xx;
1182        struct cvmx_gmxx_rxx_stats_octs_s cn31xx;
1183        struct cvmx_gmxx_rxx_stats_octs_s cn38xx;
1184        struct cvmx_gmxx_rxx_stats_octs_s cn38xxp2;
1185        struct cvmx_gmxx_rxx_stats_octs_s cn50xx;
1186        struct cvmx_gmxx_rxx_stats_octs_s cn52xx;
1187        struct cvmx_gmxx_rxx_stats_octs_s cn52xxp1;
1188        struct cvmx_gmxx_rxx_stats_octs_s cn56xx;
1189        struct cvmx_gmxx_rxx_stats_octs_s cn56xxp1;
1190        struct cvmx_gmxx_rxx_stats_octs_s cn58xx;
1191        struct cvmx_gmxx_rxx_stats_octs_s cn58xxp1;
1192};
1193
1194union cvmx_gmxx_rxx_stats_octs_ctl {
1195        uint64_t u64;
1196        struct cvmx_gmxx_rxx_stats_octs_ctl_s {
1197                uint64_t reserved_48_63:16;
1198                uint64_t cnt:48;
1199        } s;
1200        struct cvmx_gmxx_rxx_stats_octs_ctl_s cn30xx;
1201        struct cvmx_gmxx_rxx_stats_octs_ctl_s cn31xx;
1202        struct cvmx_gmxx_rxx_stats_octs_ctl_s cn38xx;
1203        struct cvmx_gmxx_rxx_stats_octs_ctl_s cn38xxp2;
1204        struct cvmx_gmxx_rxx_stats_octs_ctl_s cn50xx;
1205        struct cvmx_gmxx_rxx_stats_octs_ctl_s cn52xx;
1206        struct cvmx_gmxx_rxx_stats_octs_ctl_s cn52xxp1;
1207        struct cvmx_gmxx_rxx_stats_octs_ctl_s cn56xx;
1208        struct cvmx_gmxx_rxx_stats_octs_ctl_s cn56xxp1;
1209        struct cvmx_gmxx_rxx_stats_octs_ctl_s cn58xx;
1210        struct cvmx_gmxx_rxx_stats_octs_ctl_s cn58xxp1;
1211};
1212
1213union cvmx_gmxx_rxx_stats_octs_dmac {
1214        uint64_t u64;
1215        struct cvmx_gmxx_rxx_stats_octs_dmac_s {
1216                uint64_t reserved_48_63:16;
1217                uint64_t cnt:48;
1218        } s;
1219        struct cvmx_gmxx_rxx_stats_octs_dmac_s cn30xx;
1220        struct cvmx_gmxx_rxx_stats_octs_dmac_s cn31xx;
1221        struct cvmx_gmxx_rxx_stats_octs_dmac_s cn38xx;
1222        struct cvmx_gmxx_rxx_stats_octs_dmac_s cn38xxp2;
1223        struct cvmx_gmxx_rxx_stats_octs_dmac_s cn50xx;
1224        struct cvmx_gmxx_rxx_stats_octs_dmac_s cn52xx;
1225        struct cvmx_gmxx_rxx_stats_octs_dmac_s cn52xxp1;
1226        struct cvmx_gmxx_rxx_stats_octs_dmac_s cn56xx;
1227        struct cvmx_gmxx_rxx_stats_octs_dmac_s cn56xxp1;
1228        struct cvmx_gmxx_rxx_stats_octs_dmac_s cn58xx;
1229        struct cvmx_gmxx_rxx_stats_octs_dmac_s cn58xxp1;
1230};
1231
1232union cvmx_gmxx_rxx_stats_octs_drp {
1233        uint64_t u64;
1234        struct cvmx_gmxx_rxx_stats_octs_drp_s {
1235                uint64_t reserved_48_63:16;
1236                uint64_t cnt:48;
1237        } s;
1238        struct cvmx_gmxx_rxx_stats_octs_drp_s cn30xx;
1239        struct cvmx_gmxx_rxx_stats_octs_drp_s cn31xx;
1240        struct cvmx_gmxx_rxx_stats_octs_drp_s cn38xx;
1241        struct cvmx_gmxx_rxx_stats_octs_drp_s cn38xxp2;
1242        struct cvmx_gmxx_rxx_stats_octs_drp_s cn50xx;
1243        struct cvmx_gmxx_rxx_stats_octs_drp_s cn52xx;
1244        struct cvmx_gmxx_rxx_stats_octs_drp_s cn52xxp1;
1245        struct cvmx_gmxx_rxx_stats_octs_drp_s cn56xx;
1246        struct cvmx_gmxx_rxx_stats_octs_drp_s cn56xxp1;
1247        struct cvmx_gmxx_rxx_stats_octs_drp_s cn58xx;
1248        struct cvmx_gmxx_rxx_stats_octs_drp_s cn58xxp1;
1249};
1250
1251union cvmx_gmxx_rxx_stats_pkts {
1252        uint64_t u64;
1253        struct cvmx_gmxx_rxx_stats_pkts_s {
1254                uint64_t reserved_32_63:32;
1255                uint64_t cnt:32;
1256        } s;
1257        struct cvmx_gmxx_rxx_stats_pkts_s cn30xx;
1258        struct cvmx_gmxx_rxx_stats_pkts_s cn31xx;
1259        struct cvmx_gmxx_rxx_stats_pkts_s cn38xx;
1260        struct cvmx_gmxx_rxx_stats_pkts_s cn38xxp2;
1261        struct cvmx_gmxx_rxx_stats_pkts_s cn50xx;
1262        struct cvmx_gmxx_rxx_stats_pkts_s cn52xx;
1263        struct cvmx_gmxx_rxx_stats_pkts_s cn52xxp1;
1264        struct cvmx_gmxx_rxx_stats_pkts_s cn56xx;
1265        struct cvmx_gmxx_rxx_stats_pkts_s cn56xxp1;
1266        struct cvmx_gmxx_rxx_stats_pkts_s cn58xx;
1267        struct cvmx_gmxx_rxx_stats_pkts_s cn58xxp1;
1268};
1269
1270union cvmx_gmxx_rxx_stats_pkts_bad {
1271        uint64_t u64;
1272        struct cvmx_gmxx_rxx_stats_pkts_bad_s {
1273                uint64_t reserved_32_63:32;
1274                uint64_t cnt:32;
1275        } s;
1276        struct cvmx_gmxx_rxx_stats_pkts_bad_s cn30xx;
1277        struct cvmx_gmxx_rxx_stats_pkts_bad_s cn31xx;
1278        struct cvmx_gmxx_rxx_stats_pkts_bad_s cn38xx;
1279        struct cvmx_gmxx_rxx_stats_pkts_bad_s cn38xxp2;
1280        struct cvmx_gmxx_rxx_stats_pkts_bad_s cn50xx;
1281        struct cvmx_gmxx_rxx_stats_pkts_bad_s cn52xx;
1282        struct cvmx_gmxx_rxx_stats_pkts_bad_s cn52xxp1;
1283        struct cvmx_gmxx_rxx_stats_pkts_bad_s cn56xx;
1284        struct cvmx_gmxx_rxx_stats_pkts_bad_s cn56xxp1;
1285        struct cvmx_gmxx_rxx_stats_pkts_bad_s cn58xx;
1286        struct cvmx_gmxx_rxx_stats_pkts_bad_s cn58xxp1;
1287};
1288
1289union cvmx_gmxx_rxx_stats_pkts_ctl {
1290        uint64_t u64;
1291        struct cvmx_gmxx_rxx_stats_pkts_ctl_s {
1292                uint64_t reserved_32_63:32;
1293                uint64_t cnt:32;
1294        } s;
1295        struct cvmx_gmxx_rxx_stats_pkts_ctl_s cn30xx;
1296        struct cvmx_gmxx_rxx_stats_pkts_ctl_s cn31xx;
1297        struct cvmx_gmxx_rxx_stats_pkts_ctl_s cn38xx;
1298        struct cvmx_gmxx_rxx_stats_pkts_ctl_s cn38xxp2;
1299        struct cvmx_gmxx_rxx_stats_pkts_ctl_s cn50xx;
1300        struct cvmx_gmxx_rxx_stats_pkts_ctl_s cn52xx;
1301        struct cvmx_gmxx_rxx_stats_pkts_ctl_s cn52xxp1;
1302        struct cvmx_gmxx_rxx_stats_pkts_ctl_s cn56xx;
1303        struct cvmx_gmxx_rxx_stats_pkts_ctl_s cn56xxp1;
1304        struct cvmx_gmxx_rxx_stats_pkts_ctl_s cn58xx;
1305        struct cvmx_gmxx_rxx_stats_pkts_ctl_s cn58xxp1;
1306};
1307
1308union cvmx_gmxx_rxx_stats_pkts_dmac {
1309        uint64_t u64;
1310        struct cvmx_gmxx_rxx_stats_pkts_dmac_s {
1311                uint64_t reserved_32_63:32;
1312                uint64_t cnt:32;
1313        } s;
1314        struct cvmx_gmxx_rxx_stats_pkts_dmac_s cn30xx;
1315        struct cvmx_gmxx_rxx_stats_pkts_dmac_s cn31xx;
1316        struct cvmx_gmxx_rxx_stats_pkts_dmac_s cn38xx;
1317        struct cvmx_gmxx_rxx_stats_pkts_dmac_s cn38xxp2;
1318        struct cvmx_gmxx_rxx_stats_pkts_dmac_s cn50xx;
1319        struct cvmx_gmxx_rxx_stats_pkts_dmac_s cn52xx;
1320        struct cvmx_gmxx_rxx_stats_pkts_dmac_s cn52xxp1;
1321        struct cvmx_gmxx_rxx_stats_pkts_dmac_s cn56xx;
1322        struct cvmx_gmxx_rxx_stats_pkts_dmac_s cn56xxp1;
1323        struct cvmx_gmxx_rxx_stats_pkts_dmac_s cn58xx;
1324        struct cvmx_gmxx_rxx_stats_pkts_dmac_s cn58xxp1;
1325};
1326
1327union cvmx_gmxx_rxx_stats_pkts_drp {
1328        uint64_t u64;
1329        struct cvmx_gmxx_rxx_stats_pkts_drp_s {
1330                uint64_t reserved_32_63:32;
1331                uint64_t cnt:32;
1332        } s;
1333        struct cvmx_gmxx_rxx_stats_pkts_drp_s cn30xx;
1334        struct cvmx_gmxx_rxx_stats_pkts_drp_s cn31xx;
1335        struct cvmx_gmxx_rxx_stats_pkts_drp_s cn38xx;
1336        struct cvmx_gmxx_rxx_stats_pkts_drp_s cn38xxp2;
1337        struct cvmx_gmxx_rxx_stats_pkts_drp_s cn50xx;
1338        struct cvmx_gmxx_rxx_stats_pkts_drp_s cn52xx;
1339        struct cvmx_gmxx_rxx_stats_pkts_drp_s cn52xxp1;
1340        struct cvmx_gmxx_rxx_stats_pkts_drp_s cn56xx;
1341        struct cvmx_gmxx_rxx_stats_pkts_drp_s cn56xxp1;
1342        struct cvmx_gmxx_rxx_stats_pkts_drp_s cn58xx;
1343        struct cvmx_gmxx_rxx_stats_pkts_drp_s cn58xxp1;
1344};
1345
1346union cvmx_gmxx_rxx_udd_skp {
1347        uint64_t u64;
1348        struct cvmx_gmxx_rxx_udd_skp_s {
1349                uint64_t reserved_9_63:55;
1350                uint64_t fcssel:1;
1351                uint64_t reserved_7_7:1;
1352                uint64_t len:7;
1353        } s;
1354        struct cvmx_gmxx_rxx_udd_skp_s cn30xx;
1355        struct cvmx_gmxx_rxx_udd_skp_s cn31xx;
1356        struct cvmx_gmxx_rxx_udd_skp_s cn38xx;
1357        struct cvmx_gmxx_rxx_udd_skp_s cn38xxp2;
1358        struct cvmx_gmxx_rxx_udd_skp_s cn50xx;
1359        struct cvmx_gmxx_rxx_udd_skp_s cn52xx;
1360        struct cvmx_gmxx_rxx_udd_skp_s cn52xxp1;
1361        struct cvmx_gmxx_rxx_udd_skp_s cn56xx;
1362        struct cvmx_gmxx_rxx_udd_skp_s cn56xxp1;
1363        struct cvmx_gmxx_rxx_udd_skp_s cn58xx;
1364        struct cvmx_gmxx_rxx_udd_skp_s cn58xxp1;
1365};
1366
1367union cvmx_gmxx_rx_bp_dropx {
1368        uint64_t u64;
1369        struct cvmx_gmxx_rx_bp_dropx_s {
1370                uint64_t reserved_6_63:58;
1371                uint64_t mark:6;
1372        } s;
1373        struct cvmx_gmxx_rx_bp_dropx_s cn30xx;
1374        struct cvmx_gmxx_rx_bp_dropx_s cn31xx;
1375        struct cvmx_gmxx_rx_bp_dropx_s cn38xx;
1376        struct cvmx_gmxx_rx_bp_dropx_s cn38xxp2;
1377        struct cvmx_gmxx_rx_bp_dropx_s cn50xx;
1378        struct cvmx_gmxx_rx_bp_dropx_s cn52xx;
1379        struct cvmx_gmxx_rx_bp_dropx_s cn52xxp1;
1380        struct cvmx_gmxx_rx_bp_dropx_s cn56xx;
1381        struct cvmx_gmxx_rx_bp_dropx_s cn56xxp1;
1382        struct cvmx_gmxx_rx_bp_dropx_s cn58xx;
1383        struct cvmx_gmxx_rx_bp_dropx_s cn58xxp1;
1384};
1385
1386union cvmx_gmxx_rx_bp_offx {
1387        uint64_t u64;
1388        struct cvmx_gmxx_rx_bp_offx_s {
1389                uint64_t reserved_6_63:58;
1390                uint64_t mark:6;
1391        } s;
1392        struct cvmx_gmxx_rx_bp_offx_s cn30xx;
1393        struct cvmx_gmxx_rx_bp_offx_s cn31xx;
1394        struct cvmx_gmxx_rx_bp_offx_s cn38xx;
1395        struct cvmx_gmxx_rx_bp_offx_s cn38xxp2;
1396        struct cvmx_gmxx_rx_bp_offx_s cn50xx;
1397        struct cvmx_gmxx_rx_bp_offx_s cn52xx;
1398        struct cvmx_gmxx_rx_bp_offx_s cn52xxp1;
1399        struct cvmx_gmxx_rx_bp_offx_s cn56xx;
1400        struct cvmx_gmxx_rx_bp_offx_s cn56xxp1;
1401        struct cvmx_gmxx_rx_bp_offx_s cn58xx;
1402        struct cvmx_gmxx_rx_bp_offx_s cn58xxp1;
1403};
1404
1405union cvmx_gmxx_rx_bp_onx {
1406        uint64_t u64;
1407        struct cvmx_gmxx_rx_bp_onx_s {
1408                uint64_t reserved_9_63:55;
1409                uint64_t mark:9;
1410        } s;
1411        struct cvmx_gmxx_rx_bp_onx_s cn30xx;
1412        struct cvmx_gmxx_rx_bp_onx_s cn31xx;
1413        struct cvmx_gmxx_rx_bp_onx_s cn38xx;
1414        struct cvmx_gmxx_rx_bp_onx_s cn38xxp2;
1415        struct cvmx_gmxx_rx_bp_onx_s cn50xx;
1416        struct cvmx_gmxx_rx_bp_onx_s cn52xx;
1417        struct cvmx_gmxx_rx_bp_onx_s cn52xxp1;
1418        struct cvmx_gmxx_rx_bp_onx_s cn56xx;
1419        struct cvmx_gmxx_rx_bp_onx_s cn56xxp1;
1420        struct cvmx_gmxx_rx_bp_onx_s cn58xx;
1421        struct cvmx_gmxx_rx_bp_onx_s cn58xxp1;
1422};
1423
1424union cvmx_gmxx_rx_hg2_status {
1425        uint64_t u64;
1426        struct cvmx_gmxx_rx_hg2_status_s {
1427                uint64_t reserved_48_63:16;
1428                uint64_t phtim2go:16;
1429                uint64_t xof:16;
1430                uint64_t lgtim2go:16;
1431        } s;
1432        struct cvmx_gmxx_rx_hg2_status_s cn52xx;
1433        struct cvmx_gmxx_rx_hg2_status_s cn52xxp1;
1434        struct cvmx_gmxx_rx_hg2_status_s cn56xx;
1435};
1436
1437union cvmx_gmxx_rx_pass_en {
1438        uint64_t u64;
1439        struct cvmx_gmxx_rx_pass_en_s {
1440                uint64_t reserved_16_63:48;
1441                uint64_t en:16;
1442        } s;
1443        struct cvmx_gmxx_rx_pass_en_s cn38xx;
1444        struct cvmx_gmxx_rx_pass_en_s cn38xxp2;
1445        struct cvmx_gmxx_rx_pass_en_s cn58xx;
1446        struct cvmx_gmxx_rx_pass_en_s cn58xxp1;
1447};
1448
1449union cvmx_gmxx_rx_pass_mapx {
1450        uint64_t u64;
1451        struct cvmx_gmxx_rx_pass_mapx_s {
1452                uint64_t reserved_4_63:60;
1453                uint64_t dprt:4;
1454        } s;
1455        struct cvmx_gmxx_rx_pass_mapx_s cn38xx;
1456        struct cvmx_gmxx_rx_pass_mapx_s cn38xxp2;
1457        struct cvmx_gmxx_rx_pass_mapx_s cn58xx;
1458        struct cvmx_gmxx_rx_pass_mapx_s cn58xxp1;
1459};
1460
1461union cvmx_gmxx_rx_prt_info {
1462        uint64_t u64;
1463        struct cvmx_gmxx_rx_prt_info_s {
1464                uint64_t reserved_32_63:32;
1465                uint64_t drop:16;
1466                uint64_t commit:16;
1467        } s;
1468        struct cvmx_gmxx_rx_prt_info_cn30xx {
1469                uint64_t reserved_19_63:45;
1470                uint64_t drop:3;
1471                uint64_t reserved_3_15:13;
1472                uint64_t commit:3;
1473        } cn30xx;
1474        struct cvmx_gmxx_rx_prt_info_cn30xx cn31xx;
1475        struct cvmx_gmxx_rx_prt_info_s cn38xx;
1476        struct cvmx_gmxx_rx_prt_info_cn30xx cn50xx;
1477        struct cvmx_gmxx_rx_prt_info_cn52xx {
1478                uint64_t reserved_20_63:44;
1479                uint64_t drop:4;
1480                uint64_t reserved_4_15:12;
1481                uint64_t commit:4;
1482        } cn52xx;
1483        struct cvmx_gmxx_rx_prt_info_cn52xx cn52xxp1;
1484        struct cvmx_gmxx_rx_prt_info_cn52xx cn56xx;
1485        struct cvmx_gmxx_rx_prt_info_cn52xx cn56xxp1;
1486        struct cvmx_gmxx_rx_prt_info_s cn58xx;
1487        struct cvmx_gmxx_rx_prt_info_s cn58xxp1;
1488};
1489
1490union cvmx_gmxx_rx_prts {
1491        uint64_t u64;
1492        struct cvmx_gmxx_rx_prts_s {
1493                uint64_t reserved_3_63:61;
1494                uint64_t prts:3;
1495        } s;
1496        struct cvmx_gmxx_rx_prts_s cn30xx;
1497        struct cvmx_gmxx_rx_prts_s cn31xx;
1498        struct cvmx_gmxx_rx_prts_s cn38xx;
1499        struct cvmx_gmxx_rx_prts_s cn38xxp2;
1500        struct cvmx_gmxx_rx_prts_s cn50xx;
1501        struct cvmx_gmxx_rx_prts_s cn52xx;
1502        struct cvmx_gmxx_rx_prts_s cn52xxp1;
1503        struct cvmx_gmxx_rx_prts_s cn56xx;
1504        struct cvmx_gmxx_rx_prts_s cn56xxp1;
1505        struct cvmx_gmxx_rx_prts_s cn58xx;
1506        struct cvmx_gmxx_rx_prts_s cn58xxp1;
1507};
1508
1509union cvmx_gmxx_rx_tx_status {
1510        uint64_t u64;
1511        struct cvmx_gmxx_rx_tx_status_s {
1512                uint64_t reserved_7_63:57;
1513                uint64_t tx:3;
1514                uint64_t reserved_3_3:1;
1515                uint64_t rx:3;
1516        } s;
1517        struct cvmx_gmxx_rx_tx_status_s cn30xx;
1518        struct cvmx_gmxx_rx_tx_status_s cn31xx;
1519        struct cvmx_gmxx_rx_tx_status_s cn50xx;
1520};
1521
1522union cvmx_gmxx_rx_xaui_bad_col {
1523        uint64_t u64;
1524        struct cvmx_gmxx_rx_xaui_bad_col_s {
1525                uint64_t reserved_40_63:24;
1526                uint64_t val:1;
1527                uint64_t state:3;
1528                uint64_t lane_rxc:4;
1529                uint64_t lane_rxd:32;
1530        } s;
1531        struct cvmx_gmxx_rx_xaui_bad_col_s cn52xx;
1532        struct cvmx_gmxx_rx_xaui_bad_col_s cn52xxp1;
1533        struct cvmx_gmxx_rx_xaui_bad_col_s cn56xx;
1534        struct cvmx_gmxx_rx_xaui_bad_col_s cn56xxp1;
1535};
1536
1537union cvmx_gmxx_rx_xaui_ctl {
1538        uint64_t u64;
1539        struct cvmx_gmxx_rx_xaui_ctl_s {
1540                uint64_t reserved_2_63:62;
1541                uint64_t status:2;
1542        } s;
1543        struct cvmx_gmxx_rx_xaui_ctl_s cn52xx;
1544        struct cvmx_gmxx_rx_xaui_ctl_s cn52xxp1;
1545        struct cvmx_gmxx_rx_xaui_ctl_s cn56xx;
1546        struct cvmx_gmxx_rx_xaui_ctl_s cn56xxp1;
1547};
1548
1549union cvmx_gmxx_smacx {
1550        uint64_t u64;
1551        struct cvmx_gmxx_smacx_s {
1552                uint64_t reserved_48_63:16;
1553                uint64_t smac:48;
1554        } s;
1555        struct cvmx_gmxx_smacx_s cn30xx;
1556        struct cvmx_gmxx_smacx_s cn31xx;
1557        struct cvmx_gmxx_smacx_s cn38xx;
1558        struct cvmx_gmxx_smacx_s cn38xxp2;
1559        struct cvmx_gmxx_smacx_s cn50xx;
1560        struct cvmx_gmxx_smacx_s cn52xx;
1561        struct cvmx_gmxx_smacx_s cn52xxp1;
1562        struct cvmx_gmxx_smacx_s cn56xx;
1563        struct cvmx_gmxx_smacx_s cn56xxp1;
1564        struct cvmx_gmxx_smacx_s cn58xx;
1565        struct cvmx_gmxx_smacx_s cn58xxp1;
1566};
1567
1568union cvmx_gmxx_stat_bp {
1569        uint64_t u64;
1570        struct cvmx_gmxx_stat_bp_s {
1571                uint64_t reserved_17_63:47;
1572                uint64_t bp:1;
1573                uint64_t cnt:16;
1574        } s;
1575        struct cvmx_gmxx_stat_bp_s cn30xx;
1576        struct cvmx_gmxx_stat_bp_s cn31xx;
1577        struct cvmx_gmxx_stat_bp_s cn38xx;
1578        struct cvmx_gmxx_stat_bp_s cn38xxp2;
1579        struct cvmx_gmxx_stat_bp_s cn50xx;
1580        struct cvmx_gmxx_stat_bp_s cn52xx;
1581        struct cvmx_gmxx_stat_bp_s cn52xxp1;
1582        struct cvmx_gmxx_stat_bp_s cn56xx;
1583        struct cvmx_gmxx_stat_bp_s cn56xxp1;
1584        struct cvmx_gmxx_stat_bp_s cn58xx;
1585        struct cvmx_gmxx_stat_bp_s cn58xxp1;
1586};
1587
1588union cvmx_gmxx_txx_append {
1589        uint64_t u64;
1590        struct cvmx_gmxx_txx_append_s {
1591                uint64_t reserved_4_63:60;
1592                uint64_t force_fcs:1;
1593                uint64_t fcs:1;
1594                uint64_t pad:1;
1595                uint64_t preamble:1;
1596        } s;
1597        struct cvmx_gmxx_txx_append_s cn30xx;
1598        struct cvmx_gmxx_txx_append_s cn31xx;
1599        struct cvmx_gmxx_txx_append_s cn38xx;
1600        struct cvmx_gmxx_txx_append_s cn38xxp2;
1601        struct cvmx_gmxx_txx_append_s cn50xx;
1602        struct cvmx_gmxx_txx_append_s cn52xx;
1603        struct cvmx_gmxx_txx_append_s cn52xxp1;
1604        struct cvmx_gmxx_txx_append_s cn56xx;
1605        struct cvmx_gmxx_txx_append_s cn56xxp1;
1606        struct cvmx_gmxx_txx_append_s cn58xx;
1607        struct cvmx_gmxx_txx_append_s cn58xxp1;
1608};
1609
1610union cvmx_gmxx_txx_burst {
1611        uint64_t u64;
1612        struct cvmx_gmxx_txx_burst_s {
1613                uint64_t reserved_16_63:48;
1614                uint64_t burst:16;
1615        } s;
1616        struct cvmx_gmxx_txx_burst_s cn30xx;
1617        struct cvmx_gmxx_txx_burst_s cn31xx;
1618        struct cvmx_gmxx_txx_burst_s cn38xx;
1619        struct cvmx_gmxx_txx_burst_s cn38xxp2;
1620        struct cvmx_gmxx_txx_burst_s cn50xx;
1621        struct cvmx_gmxx_txx_burst_s cn52xx;
1622        struct cvmx_gmxx_txx_burst_s cn52xxp1;
1623        struct cvmx_gmxx_txx_burst_s cn56xx;
1624        struct cvmx_gmxx_txx_burst_s cn56xxp1;
1625        struct cvmx_gmxx_txx_burst_s cn58xx;
1626        struct cvmx_gmxx_txx_burst_s cn58xxp1;
1627};
1628
1629union cvmx_gmxx_txx_cbfc_xoff {
1630        uint64_t u64;
1631        struct cvmx_gmxx_txx_cbfc_xoff_s {
1632                uint64_t reserved_16_63:48;
1633                uint64_t xoff:16;
1634        } s;
1635        struct cvmx_gmxx_txx_cbfc_xoff_s cn52xx;
1636        struct cvmx_gmxx_txx_cbfc_xoff_s cn56xx;
1637};
1638
1639union cvmx_gmxx_txx_cbfc_xon {
1640        uint64_t u64;
1641        struct cvmx_gmxx_txx_cbfc_xon_s {
1642                uint64_t reserved_16_63:48;
1643                uint64_t xon:16;
1644        } s;
1645        struct cvmx_gmxx_txx_cbfc_xon_s cn52xx;
1646        struct cvmx_gmxx_txx_cbfc_xon_s cn56xx;
1647};
1648
1649union cvmx_gmxx_txx_clk {
1650        uint64_t u64;
1651        struct cvmx_gmxx_txx_clk_s {
1652                uint64_t reserved_6_63:58;
1653                uint64_t clk_cnt:6;
1654        } s;
1655        struct cvmx_gmxx_txx_clk_s cn30xx;
1656        struct cvmx_gmxx_txx_clk_s cn31xx;
1657        struct cvmx_gmxx_txx_clk_s cn38xx;
1658        struct cvmx_gmxx_txx_clk_s cn38xxp2;
1659        struct cvmx_gmxx_txx_clk_s cn50xx;
1660        struct cvmx_gmxx_txx_clk_s cn58xx;
1661        struct cvmx_gmxx_txx_clk_s cn58xxp1;
1662};
1663
1664union cvmx_gmxx_txx_ctl {
1665        uint64_t u64;
1666        struct cvmx_gmxx_txx_ctl_s {
1667                uint64_t reserved_2_63:62;
1668                uint64_t xsdef_en:1;
1669                uint64_t xscol_en:1;
1670        } s;
1671        struct cvmx_gmxx_txx_ctl_s cn30xx;
1672        struct cvmx_gmxx_txx_ctl_s cn31xx;
1673        struct cvmx_gmxx_txx_ctl_s cn38xx;
1674        struct cvmx_gmxx_txx_ctl_s cn38xxp2;
1675        struct cvmx_gmxx_txx_ctl_s cn50xx;
1676        struct cvmx_gmxx_txx_ctl_s cn52xx;
1677        struct cvmx_gmxx_txx_ctl_s cn52xxp1;
1678        struct cvmx_gmxx_txx_ctl_s cn56xx;
1679        struct cvmx_gmxx_txx_ctl_s cn56xxp1;
1680        struct cvmx_gmxx_txx_ctl_s cn58xx;
1681        struct cvmx_gmxx_txx_ctl_s cn58xxp1;
1682};
1683
1684union cvmx_gmxx_txx_min_pkt {
1685        uint64_t u64;
1686        struct cvmx_gmxx_txx_min_pkt_s {
1687                uint64_t reserved_8_63:56;
1688                uint64_t min_size:8;
1689        } s;
1690        struct cvmx_gmxx_txx_min_pkt_s cn30xx;
1691        struct cvmx_gmxx_txx_min_pkt_s cn31xx;
1692        struct cvmx_gmxx_txx_min_pkt_s cn38xx;
1693        struct cvmx_gmxx_txx_min_pkt_s cn38xxp2;
1694        struct cvmx_gmxx_txx_min_pkt_s cn50xx;
1695        struct cvmx_gmxx_txx_min_pkt_s cn52xx;
1696        struct cvmx_gmxx_txx_min_pkt_s cn52xxp1;
1697        struct cvmx_gmxx_txx_min_pkt_s cn56xx;
1698        struct cvmx_gmxx_txx_min_pkt_s cn56xxp1;
1699        struct cvmx_gmxx_txx_min_pkt_s cn58xx;
1700        struct cvmx_gmxx_txx_min_pkt_s cn58xxp1;
1701};
1702
1703union cvmx_gmxx_txx_pause_pkt_interval {
1704        uint64_t u64;
1705        struct cvmx_gmxx_txx_pause_pkt_interval_s {
1706                uint64_t reserved_16_63:48;
1707                uint64_t interval:16;
1708        } s;
1709        struct cvmx_gmxx_txx_pause_pkt_interval_s cn30xx;
1710        struct cvmx_gmxx_txx_pause_pkt_interval_s cn31xx;
1711        struct cvmx_gmxx_txx_pause_pkt_interval_s cn38xx;
1712        struct cvmx_gmxx_txx_pause_pkt_interval_s cn38xxp2;
1713        struct cvmx_gmxx_txx_pause_pkt_interval_s cn50xx;
1714        struct cvmx_gmxx_txx_pause_pkt_interval_s cn52xx;
1715        struct cvmx_gmxx_txx_pause_pkt_interval_s cn52xxp1;
1716        struct cvmx_gmxx_txx_pause_pkt_interval_s cn56xx;
1717        struct cvmx_gmxx_txx_pause_pkt_interval_s cn56xxp1;
1718        struct cvmx_gmxx_txx_pause_pkt_interval_s cn58xx;
1719        struct cvmx_gmxx_txx_pause_pkt_interval_s cn58xxp1;
1720};
1721
1722union cvmx_gmxx_txx_pause_pkt_time {
1723        uint64_t u64;
1724        struct cvmx_gmxx_txx_pause_pkt_time_s {
1725                uint64_t reserved_16_63:48;
1726                uint64_t time:16;
1727        } s;
1728        struct cvmx_gmxx_txx_pause_pkt_time_s cn30xx;
1729        struct cvmx_gmxx_txx_pause_pkt_time_s cn31xx;
1730        struct cvmx_gmxx_txx_pause_pkt_time_s cn38xx;
1731        struct cvmx_gmxx_txx_pause_pkt_time_s cn38xxp2;
1732        struct cvmx_gmxx_txx_pause_pkt_time_s cn50xx;
1733        struct cvmx_gmxx_txx_pause_pkt_time_s cn52xx;
1734        struct cvmx_gmxx_txx_pause_pkt_time_s cn52xxp1;
1735        struct cvmx_gmxx_txx_pause_pkt_time_s cn56xx;
1736        struct cvmx_gmxx_txx_pause_pkt_time_s cn56xxp1;
1737        struct cvmx_gmxx_txx_pause_pkt_time_s cn58xx;
1738        struct cvmx_gmxx_txx_pause_pkt_time_s cn58xxp1;
1739};
1740
1741union cvmx_gmxx_txx_pause_togo {
1742        uint64_t u64;
1743        struct cvmx_gmxx_txx_pause_togo_s {
1744                uint64_t reserved_32_63:32;
1745                uint64_t msg_time:16;
1746                uint64_t time:16;
1747        } s;
1748        struct cvmx_gmxx_txx_pause_togo_cn30xx {
1749                uint64_t reserved_16_63:48;
1750                uint64_t time:16;
1751        } cn30xx;
1752        struct cvmx_gmxx_txx_pause_togo_cn30xx cn31xx;
1753        struct cvmx_gmxx_txx_pause_togo_cn30xx cn38xx;
1754        struct cvmx_gmxx_txx_pause_togo_cn30xx cn38xxp2;
1755        struct cvmx_gmxx_txx_pause_togo_cn30xx cn50xx;
1756        struct cvmx_gmxx_txx_pause_togo_s cn52xx;
1757        struct cvmx_gmxx_txx_pause_togo_s cn52xxp1;
1758        struct cvmx_gmxx_txx_pause_togo_s cn56xx;
1759        struct cvmx_gmxx_txx_pause_togo_cn30xx cn56xxp1;
1760        struct cvmx_gmxx_txx_pause_togo_cn30xx cn58xx;
1761        struct cvmx_gmxx_txx_pause_togo_cn30xx cn58xxp1;
1762};
1763
1764union cvmx_gmxx_txx_pause_zero {
1765        uint64_t u64;
1766        struct cvmx_gmxx_txx_pause_zero_s {
1767                uint64_t reserved_1_63:63;
1768                uint64_t send:1;
1769        } s;
1770        struct cvmx_gmxx_txx_pause_zero_s cn30xx;
1771        struct cvmx_gmxx_txx_pause_zero_s cn31xx;
1772        struct cvmx_gmxx_txx_pause_zero_s cn38xx;
1773        struct cvmx_gmxx_txx_pause_zero_s cn38xxp2;
1774        struct cvmx_gmxx_txx_pause_zero_s cn50xx;
1775        struct cvmx_gmxx_txx_pause_zero_s cn52xx;
1776        struct cvmx_gmxx_txx_pause_zero_s cn52xxp1;
1777        struct cvmx_gmxx_txx_pause_zero_s cn56xx;
1778        struct cvmx_gmxx_txx_pause_zero_s cn56xxp1;
1779        struct cvmx_gmxx_txx_pause_zero_s cn58xx;
1780        struct cvmx_gmxx_txx_pause_zero_s cn58xxp1;
1781};
1782
1783union cvmx_gmxx_txx_sgmii_ctl {
1784        uint64_t u64;
1785        struct cvmx_gmxx_txx_sgmii_ctl_s {
1786                uint64_t reserved_1_63:63;
1787                uint64_t align:1;
1788        } s;
1789        struct cvmx_gmxx_txx_sgmii_ctl_s cn52xx;
1790        struct cvmx_gmxx_txx_sgmii_ctl_s cn52xxp1;
1791        struct cvmx_gmxx_txx_sgmii_ctl_s cn56xx;
1792        struct cvmx_gmxx_txx_sgmii_ctl_s cn56xxp1;
1793};
1794
1795union cvmx_gmxx_txx_slot {
1796        uint64_t u64;
1797        struct cvmx_gmxx_txx_slot_s {
1798                uint64_t reserved_10_63:54;
1799                uint64_t slot:10;
1800        } s;
1801        struct cvmx_gmxx_txx_slot_s cn30xx;
1802        struct cvmx_gmxx_txx_slot_s cn31xx;
1803        struct cvmx_gmxx_txx_slot_s cn38xx;
1804        struct cvmx_gmxx_txx_slot_s cn38xxp2;
1805        struct cvmx_gmxx_txx_slot_s cn50xx;
1806        struct cvmx_gmxx_txx_slot_s cn52xx;
1807        struct cvmx_gmxx_txx_slot_s cn52xxp1;
1808        struct cvmx_gmxx_txx_slot_s cn56xx;
1809        struct cvmx_gmxx_txx_slot_s cn56xxp1;
1810        struct cvmx_gmxx_txx_slot_s cn58xx;
1811        struct cvmx_gmxx_txx_slot_s cn58xxp1;
1812};
1813
1814union cvmx_gmxx_txx_soft_pause {
1815        uint64_t u64;
1816        struct cvmx_gmxx_txx_soft_pause_s {
1817                uint64_t reserved_16_63:48;
1818                uint64_t time:16;
1819        } s;
1820        struct cvmx_gmxx_txx_soft_pause_s cn30xx;
1821        struct cvmx_gmxx_txx_soft_pause_s cn31xx;
1822        struct cvmx_gmxx_txx_soft_pause_s cn38xx;
1823        struct cvmx_gmxx_txx_soft_pause_s cn38xxp2;
1824        struct cvmx_gmxx_txx_soft_pause_s cn50xx;
1825        struct cvmx_gmxx_txx_soft_pause_s cn52xx;
1826        struct cvmx_gmxx_txx_soft_pause_s cn52xxp1;
1827        struct cvmx_gmxx_txx_soft_pause_s cn56xx;
1828        struct cvmx_gmxx_txx_soft_pause_s cn56xxp1;
1829        struct cvmx_gmxx_txx_soft_pause_s cn58xx;
1830        struct cvmx_gmxx_txx_soft_pause_s cn58xxp1;
1831};
1832
1833union cvmx_gmxx_txx_stat0 {
1834        uint64_t u64;
1835        struct cvmx_gmxx_txx_stat0_s {
1836                uint64_t xsdef:32;
1837                uint64_t xscol:32;
1838        } s;
1839        struct cvmx_gmxx_txx_stat0_s cn30xx;
1840        struct cvmx_gmxx_txx_stat0_s cn31xx;
1841        struct cvmx_gmxx_txx_stat0_s cn38xx;
1842        struct cvmx_gmxx_txx_stat0_s cn38xxp2;
1843        struct cvmx_gmxx_txx_stat0_s cn50xx;
1844        struct cvmx_gmxx_txx_stat0_s cn52xx;
1845        struct cvmx_gmxx_txx_stat0_s cn52xxp1;
1846        struct cvmx_gmxx_txx_stat0_s cn56xx;
1847        struct cvmx_gmxx_txx_stat0_s cn56xxp1;
1848        struct cvmx_gmxx_txx_stat0_s cn58xx;
1849        struct cvmx_gmxx_txx_stat0_s cn58xxp1;
1850};
1851
1852union cvmx_gmxx_txx_stat1 {
1853        uint64_t u64;
1854        struct cvmx_gmxx_txx_stat1_s {
1855                uint64_t scol:32;
1856                uint64_t mcol:32;
1857        } s;
1858        struct cvmx_gmxx_txx_stat1_s cn30xx;
1859        struct cvmx_gmxx_txx_stat1_s cn31xx;
1860        struct cvmx_gmxx_txx_stat1_s cn38xx;
1861        struct cvmx_gmxx_txx_stat1_s cn38xxp2;
1862        struct cvmx_gmxx_txx_stat1_s cn50xx;
1863        struct cvmx_gmxx_txx_stat1_s cn52xx;
1864        struct cvmx_gmxx_txx_stat1_s cn52xxp1;
1865        struct cvmx_gmxx_txx_stat1_s cn56xx;
1866        struct cvmx_gmxx_txx_stat1_s cn56xxp1;
1867        struct cvmx_gmxx_txx_stat1_s cn58xx;
1868        struct cvmx_gmxx_txx_stat1_s cn58xxp1;
1869};
1870
1871union cvmx_gmxx_txx_stat2 {
1872        uint64_t u64;
1873        struct cvmx_gmxx_txx_stat2_s {
1874                uint64_t reserved_48_63:16;
1875                uint64_t octs:48;
1876        } s;
1877        struct cvmx_gmxx_txx_stat2_s cn30xx;
1878        struct cvmx_gmxx_txx_stat2_s cn31xx;
1879        struct cvmx_gmxx_txx_stat2_s cn38xx;
1880        struct cvmx_gmxx_txx_stat2_s cn38xxp2;
1881        struct cvmx_gmxx_txx_stat2_s cn50xx;
1882        struct cvmx_gmxx_txx_stat2_s cn52xx;
1883        struct cvmx_gmxx_txx_stat2_s cn52xxp1;
1884        struct cvmx_gmxx_txx_stat2_s cn56xx;
1885        struct cvmx_gmxx_txx_stat2_s cn56xxp1;
1886        struct cvmx_gmxx_txx_stat2_s cn58xx;
1887        struct cvmx_gmxx_txx_stat2_s cn58xxp1;
1888};
1889
1890union cvmx_gmxx_txx_stat3 {
1891        uint64_t u64;
1892        struct cvmx_gmxx_txx_stat3_s {
1893                uint64_t reserved_32_63:32;
1894                uint64_t pkts:32;
1895        } s;
1896        struct cvmx_gmxx_txx_stat3_s cn30xx;
1897        struct cvmx_gmxx_txx_stat3_s cn31xx;
1898        struct cvmx_gmxx_txx_stat3_s cn38xx;
1899        struct cvmx_gmxx_txx_stat3_s cn38xxp2;
1900        struct cvmx_gmxx_txx_stat3_s cn50xx;
1901        struct cvmx_gmxx_txx_stat3_s cn52xx;
1902        struct cvmx_gmxx_txx_stat3_s cn52xxp1;
1903        struct cvmx_gmxx_txx_stat3_s cn56xx;
1904        struct cvmx_gmxx_txx_stat3_s cn56xxp1;
1905        struct cvmx_gmxx_txx_stat3_s cn58xx;
1906        struct cvmx_gmxx_txx_stat3_s cn58xxp1;
1907};
1908
1909union cvmx_gmxx_txx_stat4 {
1910        uint64_t u64;
1911        struct cvmx_gmxx_txx_stat4_s {
1912                uint64_t hist1:32;
1913                uint64_t hist0:32;
1914        } s;
1915        struct cvmx_gmxx_txx_stat4_s cn30xx;
1916        struct cvmx_gmxx_txx_stat4_s cn31xx;
1917        struct cvmx_gmxx_txx_stat4_s cn38xx;
1918        struct cvmx_gmxx_txx_stat4_s cn38xxp2;
1919        struct cvmx_gmxx_txx_stat4_s cn50xx;
1920        struct cvmx_gmxx_txx_stat4_s cn52xx;
1921        struct cvmx_gmxx_txx_stat4_s cn52xxp1;
1922        struct cvmx_gmxx_txx_stat4_s cn56xx;
1923        struct cvmx_gmxx_txx_stat4_s cn56xxp1;
1924        struct cvmx_gmxx_txx_stat4_s cn58xx;
1925        struct cvmx_gmxx_txx_stat4_s cn58xxp1;
1926};
1927
1928union cvmx_gmxx_txx_stat5 {
1929        uint64_t u64;
1930        struct cvmx_gmxx_txx_stat5_s {
1931                uint64_t hist3:32;
1932                uint64_t hist2:32;
1933        } s;
1934        struct cvmx_gmxx_txx_stat5_s cn30xx;
1935        struct cvmx_gmxx_txx_stat5_s cn31xx;
1936        struct cvmx_gmxx_txx_stat5_s cn38xx;
1937        struct cvmx_gmxx_txx_stat5_s cn38xxp2;
1938        struct cvmx_gmxx_txx_stat5_s cn50xx;
1939        struct cvmx_gmxx_txx_stat5_s cn52xx;
1940        struct cvmx_gmxx_txx_stat5_s cn52xxp1;
1941        struct cvmx_gmxx_txx_stat5_s cn56xx;
1942        struct cvmx_gmxx_txx_stat5_s cn56xxp1;
1943        struct cvmx_gmxx_txx_stat5_s cn58xx;
1944        struct cvmx_gmxx_txx_stat5_s cn58xxp1;
1945};
1946
1947union cvmx_gmxx_txx_stat6 {
1948        uint64_t u64;
1949        struct cvmx_gmxx_txx_stat6_s {
1950                uint64_t hist5:32;
1951                uint64_t hist4:32;
1952        } s;
1953        struct cvmx_gmxx_txx_stat6_s cn30xx;
1954        struct cvmx_gmxx_txx_stat6_s cn31xx;
1955        struct cvmx_gmxx_txx_stat6_s cn38xx;
1956        struct cvmx_gmxx_txx_stat6_s cn38xxp2;
1957        struct cvmx_gmxx_txx_stat6_s cn50xx;
1958        struct cvmx_gmxx_txx_stat6_s cn52xx;
1959        struct cvmx_gmxx_txx_stat6_s cn52xxp1;
1960        struct cvmx_gmxx_txx_stat6_s cn56xx;
1961        struct cvmx_gmxx_txx_stat6_s cn56xxp1;
1962        struct cvmx_gmxx_txx_stat6_s cn58xx;
1963        struct cvmx_gmxx_txx_stat6_s cn58xxp1;
1964};
1965
1966union cvmx_gmxx_txx_stat7 {
1967        uint64_t u64;
1968        struct cvmx_gmxx_txx_stat7_s {
1969                uint64_t hist7:32;
1970                uint64_t hist6:32;
1971        } s;
1972        struct cvmx_gmxx_txx_stat7_s cn30xx;
1973        struct cvmx_gmxx_txx_stat7_s cn31xx;
1974        struct cvmx_gmxx_txx_stat7_s cn38xx;
1975        struct cvmx_gmxx_txx_stat7_s cn38xxp2;
1976        struct cvmx_gmxx_txx_stat7_s cn50xx;
1977        struct cvmx_gmxx_txx_stat7_s cn52xx;
1978        struct cvmx_gmxx_txx_stat7_s cn52xxp1;
1979        struct cvmx_gmxx_txx_stat7_s cn56xx;
1980        struct cvmx_gmxx_txx_stat7_s cn56xxp1;
1981        struct cvmx_gmxx_txx_stat7_s cn58xx;
1982        struct cvmx_gmxx_txx_stat7_s cn58xxp1;
1983};
1984
1985union cvmx_gmxx_txx_stat8 {
1986        uint64_t u64;
1987        struct cvmx_gmxx_txx_stat8_s {
1988                uint64_t mcst:32;
1989                uint64_t bcst:32;
1990        } s;
1991        struct cvmx_gmxx_txx_stat8_s cn30xx;
1992        struct cvmx_gmxx_txx_stat8_s cn31xx;
1993        struct cvmx_gmxx_txx_stat8_s cn38xx;
1994        struct cvmx_gmxx_txx_stat8_s cn38xxp2;
1995        struct cvmx_gmxx_txx_stat8_s cn50xx;
1996        struct cvmx_gmxx_txx_stat8_s cn52xx;
1997        struct cvmx_gmxx_txx_stat8_s cn52xxp1;
1998        struct cvmx_gmxx_txx_stat8_s cn56xx;
1999        struct cvmx_gmxx_txx_stat8_s cn56xxp1;
2000        struct cvmx_gmxx_txx_stat8_s cn58xx;
2001        struct cvmx_gmxx_txx_stat8_s cn58xxp1;
2002};
2003
2004union cvmx_gmxx_txx_stat9 {
2005        uint64_t u64;
2006        struct cvmx_gmxx_txx_stat9_s {
2007                uint64_t undflw:32;
2008                uint64_t ctl:32;
2009        } s;
2010        struct cvmx_gmxx_txx_stat9_s cn30xx;
2011        struct cvmx_gmxx_txx_stat9_s cn31xx;
2012        struct cvmx_gmxx_txx_stat9_s cn38xx;
2013        struct cvmx_gmxx_txx_stat9_s cn38xxp2;
2014        struct cvmx_gmxx_txx_stat9_s cn50xx;
2015        struct cvmx_gmxx_txx_stat9_s cn52xx;
2016        struct cvmx_gmxx_txx_stat9_s cn52xxp1;
2017        struct cvmx_gmxx_txx_stat9_s cn56xx;
2018        struct cvmx_gmxx_txx_stat9_s cn56xxp1;
2019        struct cvmx_gmxx_txx_stat9_s cn58xx;
2020        struct cvmx_gmxx_txx_stat9_s cn58xxp1;
2021};
2022
2023union cvmx_gmxx_txx_stats_ctl {
2024        uint64_t u64;
2025        struct cvmx_gmxx_txx_stats_ctl_s {
2026                uint64_t reserved_1_63:63;
2027                uint64_t rd_clr:1;
2028        } s;
2029        struct cvmx_gmxx_txx_stats_ctl_s cn30xx;
2030        struct cvmx_gmxx_txx_stats_ctl_s cn31xx;
2031        struct cvmx_gmxx_txx_stats_ctl_s cn38xx;
2032        struct cvmx_gmxx_txx_stats_ctl_s cn38xxp2;
2033        struct cvmx_gmxx_txx_stats_ctl_s cn50xx;
2034        struct cvmx_gmxx_txx_stats_ctl_s cn52xx;
2035        struct cvmx_gmxx_txx_stats_ctl_s cn52xxp1;
2036        struct cvmx_gmxx_txx_stats_ctl_s cn56xx;
2037        struct cvmx_gmxx_txx_stats_ctl_s cn56xxp1;
2038        struct cvmx_gmxx_txx_stats_ctl_s cn58xx;
2039        struct cvmx_gmxx_txx_stats_ctl_s cn58xxp1;
2040};
2041
2042union cvmx_gmxx_txx_thresh {
2043        uint64_t u64;
2044        struct cvmx_gmxx_txx_thresh_s {
2045                uint64_t reserved_9_63:55;
2046                uint64_t cnt:9;
2047        } s;
2048        struct cvmx_gmxx_txx_thresh_cn30xx {
2049                uint64_t reserved_7_63:57;
2050                uint64_t cnt:7;
2051        } cn30xx;
2052        struct cvmx_gmxx_txx_thresh_cn30xx cn31xx;
2053        struct cvmx_gmxx_txx_thresh_s cn38xx;
2054        struct cvmx_gmxx_txx_thresh_s cn38xxp2;
2055        struct cvmx_gmxx_txx_thresh_cn30xx cn50xx;
2056        struct cvmx_gmxx_txx_thresh_s cn52xx;
2057        struct cvmx_gmxx_txx_thresh_s cn52xxp1;
2058        struct cvmx_gmxx_txx_thresh_s cn56xx;
2059        struct cvmx_gmxx_txx_thresh_s cn56xxp1;
2060        struct cvmx_gmxx_txx_thresh_s cn58xx;
2061        struct cvmx_gmxx_txx_thresh_s cn58xxp1;
2062};
2063
2064union cvmx_gmxx_tx_bp {
2065        uint64_t u64;
2066        struct cvmx_gmxx_tx_bp_s {
2067                uint64_t reserved_4_63:60;
2068                uint64_t bp:4;
2069        } s;
2070        struct cvmx_gmxx_tx_bp_cn30xx {
2071                uint64_t reserved_3_63:61;
2072                uint64_t bp:3;
2073        } cn30xx;
2074        struct cvmx_gmxx_tx_bp_cn30xx cn31xx;
2075        struct cvmx_gmxx_tx_bp_s cn38xx;
2076        struct cvmx_gmxx_tx_bp_s cn38xxp2;
2077        struct cvmx_gmxx_tx_bp_cn30xx cn50xx;
2078        struct cvmx_gmxx_tx_bp_s cn52xx;
2079        struct cvmx_gmxx_tx_bp_s cn52xxp1;
2080        struct cvmx_gmxx_tx_bp_s cn56xx;
2081        struct cvmx_gmxx_tx_bp_s cn56xxp1;
2082        struct cvmx_gmxx_tx_bp_s cn58xx;
2083        struct cvmx_gmxx_tx_bp_s cn58xxp1;
2084};
2085
2086union cvmx_gmxx_tx_clk_mskx {
2087        uint64_t u64;
2088        struct cvmx_gmxx_tx_clk_mskx_s {
2089                uint64_t reserved_1_63:63;
2090                uint64_t msk:1;
2091        } s;
2092        struct cvmx_gmxx_tx_clk_mskx_s cn30xx;
2093        struct cvmx_gmxx_tx_clk_mskx_s cn50xx;
2094};
2095
2096union cvmx_gmxx_tx_col_attempt {
2097        uint64_t u64;
2098        struct cvmx_gmxx_tx_col_attempt_s {
2099                uint64_t reserved_5_63:59;
2100                uint64_t limit:5;
2101        } s;
2102        struct cvmx_gmxx_tx_col_attempt_s cn30xx;
2103        struct cvmx_gmxx_tx_col_attempt_s cn31xx;
2104        struct cvmx_gmxx_tx_col_attempt_s cn38xx;
2105        struct cvmx_gmxx_tx_col_attempt_s cn38xxp2;
2106        struct cvmx_gmxx_tx_col_attempt_s cn50xx;
2107        struct cvmx_gmxx_tx_col_attempt_s cn52xx;
2108        struct cvmx_gmxx_tx_col_attempt_s cn52xxp1;
2109        struct cvmx_gmxx_tx_col_attempt_s cn56xx;
2110        struct cvmx_gmxx_tx_col_attempt_s cn56xxp1;
2111        struct cvmx_gmxx_tx_col_attempt_s cn58xx;
2112        struct cvmx_gmxx_tx_col_attempt_s cn58xxp1;
2113};
2114
2115union cvmx_gmxx_tx_corrupt {
2116        uint64_t u64;
2117        struct cvmx_gmxx_tx_corrupt_s {
2118                uint64_t reserved_4_63:60;
2119                uint64_t corrupt:4;
2120        } s;
2121        struct cvmx_gmxx_tx_corrupt_cn30xx {
2122                uint64_t reserved_3_63:61;
2123                uint64_t corrupt:3;
2124        } cn30xx;
2125        struct cvmx_gmxx_tx_corrupt_cn30xx cn31xx;
2126        struct cvmx_gmxx_tx_corrupt_s cn38xx;
2127        struct cvmx_gmxx_tx_corrupt_s cn38xxp2;
2128        struct cvmx_gmxx_tx_corrupt_cn30xx cn50xx;
2129        struct cvmx_gmxx_tx_corrupt_s cn52xx;
2130        struct cvmx_gmxx_tx_corrupt_s cn52xxp1;
2131        struct cvmx_gmxx_tx_corrupt_s cn56xx;
2132        struct cvmx_gmxx_tx_corrupt_s cn56xxp1;
2133        struct cvmx_gmxx_tx_corrupt_s cn58xx;
2134        struct cvmx_gmxx_tx_corrupt_s cn58xxp1;
2135};
2136
2137union cvmx_gmxx_tx_hg2_reg1 {
2138        uint64_t u64;
2139        struct cvmx_gmxx_tx_hg2_reg1_s {
2140                uint64_t reserved_16_63:48;
2141                uint64_t tx_xof:16;
2142        } s;
2143        struct cvmx_gmxx_tx_hg2_reg1_s cn52xx;
2144        struct cvmx_gmxx_tx_hg2_reg1_s cn52xxp1;
2145        struct cvmx_gmxx_tx_hg2_reg1_s cn56xx;
2146};
2147
2148union cvmx_gmxx_tx_hg2_reg2 {
2149        uint64_t u64;
2150        struct cvmx_gmxx_tx_hg2_reg2_s {
2151                uint64_t reserved_16_63:48;
2152                uint64_t tx_xon:16;
2153        } s;
2154        struct cvmx_gmxx_tx_hg2_reg2_s cn52xx;
2155        struct cvmx_gmxx_tx_hg2_reg2_s cn52xxp1;
2156        struct cvmx_gmxx_tx_hg2_reg2_s cn56xx;
2157};
2158
2159union cvmx_gmxx_tx_ifg {
2160        uint64_t u64;
2161        struct cvmx_gmxx_tx_ifg_s {
2162                uint64_t reserved_8_63:56;
2163                uint64_t ifg2:4;
2164                uint64_t ifg1:4;
2165        } s;
2166        struct cvmx_gmxx_tx_ifg_s cn30xx;
2167        struct cvmx_gmxx_tx_ifg_s cn31xx;
2168        struct cvmx_gmxx_tx_ifg_s cn38xx;
2169        struct cvmx_gmxx_tx_ifg_s cn38xxp2;
2170        struct cvmx_gmxx_tx_ifg_s cn50xx;
2171        struct cvmx_gmxx_tx_ifg_s cn52xx;
2172        struct cvmx_gmxx_tx_ifg_s cn52xxp1;
2173        struct cvmx_gmxx_tx_ifg_s cn56xx;
2174        struct cvmx_gmxx_tx_ifg_s cn56xxp1;
2175        struct cvmx_gmxx_tx_ifg_s cn58xx;
2176        struct cvmx_gmxx_tx_ifg_s cn58xxp1;
2177};
2178
2179union cvmx_gmxx_tx_int_en {
2180        uint64_t u64;
2181        struct cvmx_gmxx_tx_int_en_s {
2182                uint64_t reserved_20_63:44;
2183                uint64_t late_col:4;
2184                uint64_t xsdef:4;
2185                uint64_t xscol:4;
2186                uint64_t reserved_6_7:2;
2187                uint64_t undflw:4;
2188                uint64_t ncb_nxa:1;
2189                uint64_t pko_nxa:1;
2190        } s;
2191        struct cvmx_gmxx_tx_int_en_cn30xx {
2192                uint64_t reserved_19_63:45;
2193                uint64_t late_col:3;
2194                uint64_t reserved_15_15:1;
2195                uint64_t xsdef:3;
2196                uint64_t reserved_11_11:1;
2197                uint64_t xscol:3;
2198                uint64_t reserved_5_7:3;
2199                uint64_t undflw:3;
2200                uint64_t reserved_1_1:1;
2201                uint64_t pko_nxa:1;
2202        } cn30xx;
2203        struct cvmx_gmxx_tx_int_en_cn31xx {
2204                uint64_t reserved_15_63:49;
2205                uint64_t xsdef:3;
2206                uint64_t reserved_11_11:1;
2207                uint64_t xscol:3;
2208                uint64_t reserved_5_7:3;
2209                uint64_t undflw:3;
2210                uint64_t reserved_1_1:1;
2211                uint64_t pko_nxa:1;
2212        } cn31xx;
2213        struct cvmx_gmxx_tx_int_en_s cn38xx;
2214        struct cvmx_gmxx_tx_int_en_cn38xxp2 {
2215                uint64_t reserved_16_63:48;
2216                uint64_t xsdef:4;
2217                uint64_t xscol:4;
2218                uint64_t reserved_6_7:2;
2219                uint64_t undflw:4;
2220                uint64_t ncb_nxa:1;
2221                uint64_t pko_nxa:1;
2222        } cn38xxp2;
2223        struct cvmx_gmxx_tx_int_en_cn30xx cn50xx;
2224        struct cvmx_gmxx_tx_int_en_cn52xx {
2225                uint64_t reserved_20_63:44;
2226                uint64_t late_col:4;
2227                uint64_t xsdef:4;
2228                uint64_t xscol:4;
2229                uint64_t reserved_6_7:2;
2230                uint64_t undflw:4;
2231                uint64_t reserved_1_1:1;
2232                uint64_t pko_nxa:1;
2233        } cn52xx;
2234        struct cvmx_gmxx_tx_int_en_cn52xx cn52xxp1;
2235        struct cvmx_gmxx_tx_int_en_cn52xx cn56xx;
2236        struct cvmx_gmxx_tx_int_en_cn52xx cn56xxp1;
2237        struct cvmx_gmxx_tx_int_en_s cn58xx;
2238        struct cvmx_gmxx_tx_int_en_s cn58xxp1;
2239};
2240
2241union cvmx_gmxx_tx_int_reg {
2242        uint64_t u64;
2243        struct cvmx_gmxx_tx_int_reg_s {
2244                uint64_t reserved_20_63:44;
2245                uint64_t late_col:4;
2246                uint64_t xsdef:4;
2247                uint64_t xscol:4;
2248                uint64_t reserved_6_7:2;
2249                uint64_t undflw:4;
2250                uint64_t ncb_nxa:1;
2251                uint64_t pko_nxa:1;
2252        } s;
2253        struct cvmx_gmxx_tx_int_reg_cn30xx {
2254                uint64_t reserved_19_63:45;
2255                uint64_t late_col:3;
2256                uint64_t reserved_15_15:1;
2257                uint64_t xsdef:3;
2258                uint64_t reserved_11_11:1;
2259                uint64_t xscol:3;
2260                uint64_t reserved_5_7:3;
2261                uint64_t undflw:3;
2262                uint64_t reserved_1_1:1;
2263                uint64_t pko_nxa:1;
2264        } cn30xx;
2265        struct cvmx_gmxx_tx_int_reg_cn31xx {
2266                uint64_t reserved_15_63:49;
2267                uint64_t xsdef:3;
2268                uint64_t reserved_11_11:1;
2269                uint64_t xscol:3;
2270                uint64_t reserved_5_7:3;
2271                uint64_t undflw:3;
2272                uint64_t reserved_1_1:1;
2273                uint64_t pko_nxa:1;
2274        } cn31xx;
2275        struct cvmx_gmxx_tx_int_reg_s cn38xx;
2276        struct cvmx_gmxx_tx_int_reg_cn38xxp2 {
2277                uint64_t reserved_16_63:48;
2278                uint64_t xsdef:4;
2279                uint64_t xscol:4;
2280                uint64_t reserved_6_7:2;
2281                uint64_t undflw:4;
2282                uint64_t ncb_nxa:1;
2283                uint64_t pko_nxa:1;
2284        } cn38xxp2;
2285        struct cvmx_gmxx_tx_int_reg_cn30xx cn50xx;
2286        struct cvmx_gmxx_tx_int_reg_cn52xx {
2287                uint64_t reserved_20_63:44;
2288                uint64_t late_col:4;
2289                uint64_t xsdef:4;
2290                uint64_t xscol:4;
2291                uint64_t reserved_6_7:2;
2292                uint64_t undflw:4;
2293                uint64_t reserved_1_1:1;
2294                uint64_t pko_nxa:1;
2295        } cn52xx;
2296        struct cvmx_gmxx_tx_int_reg_cn52xx cn52xxp1;
2297        struct cvmx_gmxx_tx_int_reg_cn52xx cn56xx;
2298        struct cvmx_gmxx_tx_int_reg_cn52xx cn56xxp1;
2299        struct cvmx_gmxx_tx_int_reg_s cn58xx;
2300        struct cvmx_gmxx_tx_int_reg_s cn58xxp1;
2301};
2302
2303union cvmx_gmxx_tx_jam {
2304        uint64_t u64;
2305        struct cvmx_gmxx_tx_jam_s {
2306                uint64_t reserved_8_63:56;
2307                uint64_t jam:8;
2308        } s;
2309        struct cvmx_gmxx_tx_jam_s cn30xx;
2310        struct cvmx_gmxx_tx_jam_s cn31xx;
2311        struct cvmx_gmxx_tx_jam_s cn38xx;
2312        struct cvmx_gmxx_tx_jam_s cn38xxp2;
2313        struct cvmx_gmxx_tx_jam_s cn50xx;
2314        struct cvmx_gmxx_tx_jam_s cn52xx;
2315        struct cvmx_gmxx_tx_jam_s cn52xxp1;
2316        struct cvmx_gmxx_tx_jam_s cn56xx;
2317        struct cvmx_gmxx_tx_jam_s cn56xxp1;
2318        struct cvmx_gmxx_tx_jam_s cn58xx;
2319        struct cvmx_gmxx_tx_jam_s cn58xxp1;
2320};
2321
2322union cvmx_gmxx_tx_lfsr {
2323        uint64_t u64;
2324        struct cvmx_gmxx_tx_lfsr_s {
2325                uint64_t reserved_16_63:48;
2326                uint64_t lfsr:16;
2327        } s;
2328        struct cvmx_gmxx_tx_lfsr_s cn30xx;
2329        struct cvmx_gmxx_tx_lfsr_s cn31xx;
2330        struct cvmx_gmxx_tx_lfsr_s cn38xx;
2331        struct cvmx_gmxx_tx_lfsr_s cn38xxp2;
2332        struct cvmx_gmxx_tx_lfsr_s cn50xx;
2333        struct cvmx_gmxx_tx_lfsr_s cn52xx;
2334        struct cvmx_gmxx_tx_lfsr_s cn52xxp1;
2335        struct cvmx_gmxx_tx_lfsr_s cn56xx;
2336        struct cvmx_gmxx_tx_lfsr_s cn56xxp1;
2337        struct cvmx_gmxx_tx_lfsr_s cn58xx;
2338        struct cvmx_gmxx_tx_lfsr_s cn58xxp1;
2339};
2340
2341union cvmx_gmxx_tx_ovr_bp {
2342        uint64_t u64;
2343        struct cvmx_gmxx_tx_ovr_bp_s {
2344                uint64_t reserved_48_63:16;
2345                uint64_t tx_prt_bp:16;
2346                uint64_t reserved_12_31:20;
2347                uint64_t en:4;
2348                uint64_t bp:4;
2349                uint64_t ign_full:4;
2350        } s;
2351        struct cvmx_gmxx_tx_ovr_bp_cn30xx {
2352                uint64_t reserved_11_63:53;
2353                uint64_t en:3;
2354                uint64_t reserved_7_7:1;
2355                uint64_t bp:3;
2356                uint64_t reserved_3_3:1;
2357                uint64_t ign_full:3;
2358        } cn30xx;
2359        struct cvmx_gmxx_tx_ovr_bp_cn30xx cn31xx;
2360        struct cvmx_gmxx_tx_ovr_bp_cn38xx {
2361                uint64_t reserved_12_63:52;
2362                uint64_t en:4;
2363                uint64_t bp:4;
2364                uint64_t ign_full:4;
2365        } cn38xx;
2366        struct cvmx_gmxx_tx_ovr_bp_cn38xx cn38xxp2;
2367        struct cvmx_gmxx_tx_ovr_bp_cn30xx cn50xx;
2368        struct cvmx_gmxx_tx_ovr_bp_s cn52xx;
2369        struct cvmx_gmxx_tx_ovr_bp_s cn52xxp1;
2370        struct cvmx_gmxx_tx_ovr_bp_s cn56xx;
2371        struct cvmx_gmxx_tx_ovr_bp_s cn56xxp1;
2372        struct cvmx_gmxx_tx_ovr_bp_cn38xx cn58xx;
2373        struct cvmx_gmxx_tx_ovr_bp_cn38xx cn58xxp1;
2374};
2375
2376union cvmx_gmxx_tx_pause_pkt_dmac {
2377        uint64_t u64;
2378        struct cvmx_gmxx_tx_pause_pkt_dmac_s {
2379                uint64_t reserved_48_63:16;
2380                uint64_t dmac:48;
2381        } s;
2382        struct cvmx_gmxx_tx_pause_pkt_dmac_s cn30xx;
2383        struct cvmx_gmxx_tx_pause_pkt_dmac_s cn31xx;
2384        struct cvmx_gmxx_tx_pause_pkt_dmac_s cn38xx;
2385        struct cvmx_gmxx_tx_pause_pkt_dmac_s cn38xxp2;
2386        struct cvmx_gmxx_tx_pause_pkt_dmac_s cn50xx;
2387        struct cvmx_gmxx_tx_pause_pkt_dmac_s cn52xx;
2388        struct cvmx_gmxx_tx_pause_pkt_dmac_s cn52xxp1;
2389        struct cvmx_gmxx_tx_pause_pkt_dmac_s cn56xx;
2390        struct cvmx_gmxx_tx_pause_pkt_dmac_s cn56xxp1;
2391        struct cvmx_gmxx_tx_pause_pkt_dmac_s cn58xx;
2392        struct cvmx_gmxx_tx_pause_pkt_dmac_s cn58xxp1;
2393};
2394
2395union cvmx_gmxx_tx_pause_pkt_type {
2396        uint64_t u64;
2397        struct cvmx_gmxx_tx_pause_pkt_type_s {
2398                uint64_t reserved_16_63:48;
2399                uint64_t type:16;
2400        } s;
2401        struct cvmx_gmxx_tx_pause_pkt_type_s cn30xx;
2402        struct cvmx_gmxx_tx_pause_pkt_type_s cn31xx;
2403        struct cvmx_gmxx_tx_pause_pkt_type_s cn38xx;
2404        struct cvmx_gmxx_tx_pause_pkt_type_s cn38xxp2;
2405        struct cvmx_gmxx_tx_pause_pkt_type_s cn50xx;
2406        struct cvmx_gmxx_tx_pause_pkt_type_s cn52xx;
2407        struct cvmx_gmxx_tx_pause_pkt_type_s cn52xxp1;
2408        struct cvmx_gmxx_tx_pause_pkt_type_s cn56xx;
2409        struct cvmx_gmxx_tx_pause_pkt_type_s cn56xxp1;
2410        struct cvmx_gmxx_tx_pause_pkt_type_s cn58xx;
2411        struct cvmx_gmxx_tx_pause_pkt_type_s cn58xxp1;
2412};
2413
2414union cvmx_gmxx_tx_prts {
2415        uint64_t u64;
2416        struct cvmx_gmxx_tx_prts_s {
2417                uint64_t reserved_5_63:59;
2418                uint64_t prts:5;
2419        } s;
2420        struct cvmx_gmxx_tx_prts_s cn30xx;
2421        struct cvmx_gmxx_tx_prts_s cn31xx;
2422        struct cvmx_gmxx_tx_prts_s cn38xx;
2423        struct cvmx_gmxx_tx_prts_s cn38xxp2;
2424        struct cvmx_gmxx_tx_prts_s cn50xx;
2425        struct cvmx_gmxx_tx_prts_s cn52xx;
2426        struct cvmx_gmxx_tx_prts_s cn52xxp1;
2427        struct cvmx_gmxx_tx_prts_s cn56xx;
2428        struct cvmx_gmxx_tx_prts_s cn56xxp1;
2429        struct cvmx_gmxx_tx_prts_s cn58xx;
2430        struct cvmx_gmxx_tx_prts_s cn58xxp1;
2431};
2432
2433union cvmx_gmxx_tx_spi_ctl {
2434        uint64_t u64;
2435        struct cvmx_gmxx_tx_spi_ctl_s {
2436                uint64_t reserved_2_63:62;
2437                uint64_t tpa_clr:1;
2438                uint64_t cont_pkt:1;
2439        } s;
2440        struct cvmx_gmxx_tx_spi_ctl_s cn38xx;
2441        struct cvmx_gmxx_tx_spi_ctl_s cn38xxp2;
2442        struct cvmx_gmxx_tx_spi_ctl_s cn58xx;
2443        struct cvmx_gmxx_tx_spi_ctl_s cn58xxp1;
2444};
2445
2446union cvmx_gmxx_tx_spi_drain {
2447        uint64_t u64;
2448        struct cvmx_gmxx_tx_spi_drain_s {
2449                uint64_t reserved_16_63:48;
2450                uint64_t drain:16;
2451        } s;
2452        struct cvmx_gmxx_tx_spi_drain_s cn38xx;
2453        struct cvmx_gmxx_tx_spi_drain_s cn58xx;
2454        struct cvmx_gmxx_tx_spi_drain_s cn58xxp1;
2455};
2456
2457union cvmx_gmxx_tx_spi_max {
2458        uint64_t u64;
2459        struct cvmx_gmxx_tx_spi_max_s {
2460                uint64_t reserved_23_63:41;
2461                uint64_t slice:7;
2462                uint64_t max2:8;
2463                uint64_t max1:8;
2464        } s;
2465        struct cvmx_gmxx_tx_spi_max_cn38xx {
2466                uint64_t reserved_16_63:48;
2467                uint64_t max2:8;
2468                uint64_t max1:8;
2469        } cn38xx;
2470        struct cvmx_gmxx_tx_spi_max_cn38xx cn38xxp2;
2471        struct cvmx_gmxx_tx_spi_max_s cn58xx;
2472        struct cvmx_gmxx_tx_spi_max_s cn58xxp1;
2473};
2474
2475union cvmx_gmxx_tx_spi_roundx {
2476        uint64_t u64;
2477        struct cvmx_gmxx_tx_spi_roundx_s {
2478                uint64_t reserved_16_63:48;
2479                uint64_t round:16;
2480        } s;
2481        struct cvmx_gmxx_tx_spi_roundx_s cn58xx;
2482        struct cvmx_gmxx_tx_spi_roundx_s cn58xxp1;
2483};
2484
2485union cvmx_gmxx_tx_spi_thresh {
2486        uint64_t u64;
2487        struct cvmx_gmxx_tx_spi_thresh_s {
2488                uint64_t reserved_6_63:58;
2489                uint64_t thresh:6;
2490        } s;
2491        struct cvmx_gmxx_tx_spi_thresh_s cn38xx;
2492        struct cvmx_gmxx_tx_spi_thresh_s cn38xxp2;
2493        struct cvmx_gmxx_tx_spi_thresh_s cn58xx;
2494        struct cvmx_gmxx_tx_spi_thresh_s cn58xxp1;
2495};
2496
2497union cvmx_gmxx_tx_xaui_ctl {
2498        uint64_t u64;
2499        struct cvmx_gmxx_tx_xaui_ctl_s {
2500                uint64_t reserved_11_63:53;
2501                uint64_t hg_pause_hgi:2;
2502                uint64_t hg_en:1;
2503                uint64_t reserved_7_7:1;
2504                uint64_t ls_byp:1;
2505                uint64_t ls:2;
2506                uint64_t reserved_2_3:2;
2507                uint64_t uni_en:1;
2508                uint64_t dic_en:1;
2509        } s;
2510        struct cvmx_gmxx_tx_xaui_ctl_s cn52xx;
2511        struct cvmx_gmxx_tx_xaui_ctl_s cn52xxp1;
2512        struct cvmx_gmxx_tx_xaui_ctl_s cn56xx;
2513        struct cvmx_gmxx_tx_xaui_ctl_s cn56xxp1;
2514};
2515
2516union cvmx_gmxx_xaui_ext_loopback {
2517        uint64_t u64;
2518        struct cvmx_gmxx_xaui_ext_loopback_s {
2519                uint64_t reserved_5_63:59;
2520                uint64_t en:1;
2521                uint64_t thresh:4;
2522        } s;
2523        struct cvmx_gmxx_xaui_ext_loopback_s cn52xx;
2524        struct cvmx_gmxx_xaui_ext_loopback_s cn52xxp1;
2525        struct cvmx_gmxx_xaui_ext_loopback_s cn56xx;
2526        struct cvmx_gmxx_xaui_ext_loopback_s cn56xxp1;
2527};
2528
2529#endif
2530