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 230 union 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 272 union 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 300 union 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 312 union 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 326 union 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 368 union 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 387 union 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 403 union 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 436 union 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 454 union 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 472 union 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 490 union 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 508 union 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 526 union 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 544 union 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 563 union 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 584 union 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 603 union 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 653 union 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 726 union 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 740 union 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 754 union 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 773 union 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 939 union 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 1105 union 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 1124 union 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 1139 union 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 1156 union 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 1175 union 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 1194 union 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 1213 union 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 1232 union 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 1251 union 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 1270 union 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 1289 union 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 1308 union 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 1327 union 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 1346 union 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 1367 union 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 1386 union 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 1405 union 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 1424 union 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 1437 union 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 1449 union 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 1461 union 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 1490 union 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 1509 union 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 1522 union 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 1537 union 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 1549 union 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 1568 union 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 1588 union 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 1610 union 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 1629 union 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 1639 union 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 1649 union 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 1664 union 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 1684 union 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 1703 union 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 1722 union 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 1741 union 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 1764 union 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 1783 union 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 1795 union 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 1814 union 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 1833 union 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 1852 union 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 1871 union 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 1890 union 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 1909 union 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 1928 union 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 1947 union 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 1966 union 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 1985 union 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 2004 union 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 2023 union 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 2042 union 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 2064 union 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 2086 union 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 2096 union 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 2115 union 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 2137 union 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 2148 union 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 2159 union 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 2179 union 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 2241 union 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 2303 union 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 2322 union 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 2341 union 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 2376 union 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 2395 union 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 2414 union 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 2433 union 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 2446 union 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 2457 union 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 2475 union 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 2485 union 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 2497 union 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 2516 union 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