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