Merge branches 'at91', 'dcache', 'ftrace', 'hwbpt', 'misc', 'mmci', 's3c', 'st-ux...
[pandora-kernel.git] / drivers / staging / octeon / cvmx-gmxx-defs.h
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