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-2018 Cavium, Inc.
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
31static inline uint64_t CVMX_GMXX_HG2_CONTROL(unsigned long block_id)
32{
33	switch (cvmx_get_octeon_family()) {
34	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
35		return CVMX_ADD_IO_SEG(0x0001180008000550ull) + (block_id) * 0x1000000ull;
36	}
37	return CVMX_ADD_IO_SEG(0x0001180008000550ull) + (block_id) * 0x8000000ull;
38}
39
40static inline uint64_t CVMX_GMXX_INF_MODE(unsigned long block_id)
41{
42	switch (cvmx_get_octeon_family()) {
43	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
44		return CVMX_ADD_IO_SEG(0x00011800080007F8ull) + (block_id) * 0x1000000ull;
45	}
46	return CVMX_ADD_IO_SEG(0x00011800080007F8ull) + (block_id) * 0x8000000ull;
47}
48
49static inline uint64_t CVMX_GMXX_PRTX_CFG(unsigned long offset, unsigned long block_id)
50{
51	switch (cvmx_get_octeon_family()) {
52	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
53		return CVMX_ADD_IO_SEG(0x0001180008000010ull) + ((offset) + (block_id) * 0x0ull) * 2048;
54	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
55		return CVMX_ADD_IO_SEG(0x0001180008000010ull) + ((offset) + (block_id) * 0x2000ull) * 2048;
56	}
57	return CVMX_ADD_IO_SEG(0x0001180008000010ull) + ((offset) + (block_id) * 0x10000ull) * 2048;
58}
59
60static inline uint64_t CVMX_GMXX_RXX_ADR_CAM0(unsigned long offset, unsigned long block_id)
61{
62	switch (cvmx_get_octeon_family()) {
63	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
64		return CVMX_ADD_IO_SEG(0x0001180008000180ull) + ((offset) + (block_id) * 0x0ull) * 2048;
65	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
66		return CVMX_ADD_IO_SEG(0x0001180008000180ull) + ((offset) + (block_id) * 0x2000ull) * 2048;
67	}
68	return CVMX_ADD_IO_SEG(0x0001180008000180ull) + ((offset) + (block_id) * 0x10000ull) * 2048;
69}
70
71static inline uint64_t CVMX_GMXX_RXX_ADR_CAM1(unsigned long offset, unsigned long block_id)
72{
73	switch (cvmx_get_octeon_family()) {
74	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
75		return CVMX_ADD_IO_SEG(0x0001180008000188ull) + ((offset) + (block_id) * 0x0ull) * 2048;
76	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
77		return CVMX_ADD_IO_SEG(0x0001180008000188ull) + ((offset) + (block_id) * 0x2000ull) * 2048;
78	}
79	return CVMX_ADD_IO_SEG(0x0001180008000188ull) + ((offset) + (block_id) * 0x10000ull) * 2048;
80}
81
82static inline uint64_t CVMX_GMXX_RXX_ADR_CAM2(unsigned long offset, unsigned long block_id)
83{
84	switch (cvmx_get_octeon_family()) {
85	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
86		return CVMX_ADD_IO_SEG(0x0001180008000190ull) + ((offset) + (block_id) * 0x0ull) * 2048;
87	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
88		return CVMX_ADD_IO_SEG(0x0001180008000190ull) + ((offset) + (block_id) * 0x2000ull) * 2048;
89	}
90	return CVMX_ADD_IO_SEG(0x0001180008000190ull) + ((offset) + (block_id) * 0x10000ull) * 2048;
91}
92
93static inline uint64_t CVMX_GMXX_RXX_ADR_CAM3(unsigned long offset, unsigned long block_id)
94{
95	switch (cvmx_get_octeon_family()) {
96	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
97		return CVMX_ADD_IO_SEG(0x0001180008000198ull) + ((offset) + (block_id) * 0x0ull) * 2048;
98	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
99		return CVMX_ADD_IO_SEG(0x0001180008000198ull) + ((offset) + (block_id) * 0x2000ull) * 2048;
100	}
101	return CVMX_ADD_IO_SEG(0x0001180008000198ull) + ((offset) + (block_id) * 0x10000ull) * 2048;
102}
103
104static inline uint64_t CVMX_GMXX_RXX_ADR_CAM4(unsigned long offset, unsigned long block_id)
105{
106	switch (cvmx_get_octeon_family()) {
107	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
108		return CVMX_ADD_IO_SEG(0x00011800080001A0ull) + ((offset) + (block_id) * 0x0ull) * 2048;
109	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
110		return CVMX_ADD_IO_SEG(0x00011800080001A0ull) + ((offset) + (block_id) * 0x2000ull) * 2048;
111	}
112	return CVMX_ADD_IO_SEG(0x00011800080001A0ull) + ((offset) + (block_id) * 0x10000ull) * 2048;
113}
114
115static inline uint64_t CVMX_GMXX_RXX_ADR_CAM5(unsigned long offset, unsigned long block_id)
116{
117	switch (cvmx_get_octeon_family()) {
118	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
119		return CVMX_ADD_IO_SEG(0x00011800080001A8ull) + ((offset) + (block_id) * 0x0ull) * 2048;
120	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
121		return CVMX_ADD_IO_SEG(0x00011800080001A8ull) + ((offset) + (block_id) * 0x2000ull) * 2048;
122	}
123	return CVMX_ADD_IO_SEG(0x00011800080001A8ull) + ((offset) + (block_id) * 0x10000ull) * 2048;
124}
125
126static inline uint64_t CVMX_GMXX_RXX_ADR_CAM_EN(unsigned long offset, unsigned long block_id)
127{
128	switch (cvmx_get_octeon_family()) {
129	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
130		return CVMX_ADD_IO_SEG(0x0001180008000108ull) + ((offset) + (block_id) * 0x0ull) * 2048;
131	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
132		return CVMX_ADD_IO_SEG(0x0001180008000108ull) + ((offset) + (block_id) * 0x2000ull) * 2048;
133	}
134	return CVMX_ADD_IO_SEG(0x0001180008000108ull) + ((offset) + (block_id) * 0x10000ull) * 2048;
135}
136
137static inline uint64_t CVMX_GMXX_RXX_ADR_CTL(unsigned long offset, unsigned long block_id)
138{
139	switch (cvmx_get_octeon_family()) {
140	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
141		return CVMX_ADD_IO_SEG(0x0001180008000100ull) + ((offset) + (block_id) * 0x0ull) * 2048;
142	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
143		return CVMX_ADD_IO_SEG(0x0001180008000100ull) + ((offset) + (block_id) * 0x2000ull) * 2048;
144	}
145	return CVMX_ADD_IO_SEG(0x0001180008000100ull) + ((offset) + (block_id) * 0x10000ull) * 2048;
146}
147
148static inline uint64_t CVMX_GMXX_RXX_FRM_CTL(unsigned long offset, unsigned long block_id)
149{
150	switch (cvmx_get_octeon_family()) {
151	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
152		return CVMX_ADD_IO_SEG(0x0001180008000018ull) + ((offset) + (block_id) * 0x0ull) * 2048;
153	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
154		return CVMX_ADD_IO_SEG(0x0001180008000018ull) + ((offset) + (block_id) * 0x2000ull) * 2048;
155	}
156	return CVMX_ADD_IO_SEG(0x0001180008000018ull) + ((offset) + (block_id) * 0x10000ull) * 2048;
157}
158
159#define CVMX_GMXX_RXX_FRM_MAX(offset, block_id) (CVMX_ADD_IO_SEG(0x0001180008000030ull) + (((offset) & 3) + ((block_id) & 1) * 0x10000ull) * 2048)
160#define CVMX_GMXX_RXX_FRM_MIN(offset, block_id) (CVMX_ADD_IO_SEG(0x0001180008000028ull) + (((offset) & 3) + ((block_id) & 1) * 0x10000ull) * 2048)
161
162static inline uint64_t CVMX_GMXX_RXX_INT_EN(unsigned long offset, unsigned long block_id)
163{
164	switch (cvmx_get_octeon_family()) {
165	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
166		return CVMX_ADD_IO_SEG(0x0001180008000008ull) + ((offset) + (block_id) * 0x0ull) * 2048;
167	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
168		return CVMX_ADD_IO_SEG(0x0001180008000008ull) + ((offset) + (block_id) * 0x2000ull) * 2048;
169	}
170	return CVMX_ADD_IO_SEG(0x0001180008000008ull) + ((offset) + (block_id) * 0x10000ull) * 2048;
171}
172
173static inline uint64_t CVMX_GMXX_RXX_INT_REG(unsigned long offset, unsigned long block_id)
174{
175	switch (cvmx_get_octeon_family()) {
176	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
177		return CVMX_ADD_IO_SEG(0x0001180008000000ull) + ((offset) + (block_id) * 0x0ull) * 2048;
178	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
179		return CVMX_ADD_IO_SEG(0x0001180008000000ull) + ((offset) + (block_id) * 0x2000ull) * 2048;
180	}
181	return CVMX_ADD_IO_SEG(0x0001180008000000ull) + ((offset) + (block_id) * 0x10000ull) * 2048;
182}
183
184static inline uint64_t CVMX_GMXX_RXX_JABBER(unsigned long offset, unsigned long block_id)
185{
186	switch (cvmx_get_octeon_family()) {
187	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
188		return CVMX_ADD_IO_SEG(0x0001180008000038ull) + ((offset) + (block_id) * 0x0ull) * 2048;
189	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
190		return CVMX_ADD_IO_SEG(0x0001180008000038ull) + ((offset) + (block_id) * 0x2000ull) * 2048;
191	}
192	return CVMX_ADD_IO_SEG(0x0001180008000038ull) + ((offset) + (block_id) * 0x10000ull) * 2048;
193}
194
195#define CVMX_GMXX_RXX_RX_INBND(offset, block_id) (CVMX_ADD_IO_SEG(0x0001180008000060ull) + (((offset) & 3) + ((block_id) & 1) * 0x10000ull) * 2048)
196
197static inline uint64_t CVMX_GMXX_RX_PRTS(unsigned long block_id)
198{
199	switch (cvmx_get_octeon_family()) {
200	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
201		return CVMX_ADD_IO_SEG(0x0001180008000410ull) + (block_id) * 0x1000000ull;
202	}
203	return CVMX_ADD_IO_SEG(0x0001180008000410ull) + (block_id) * 0x8000000ull;
204}
205
206static inline uint64_t CVMX_GMXX_RX_XAUI_CTL(unsigned long block_id)
207{
208	switch (cvmx_get_octeon_family()) {
209	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
210		return CVMX_ADD_IO_SEG(0x0001180008000530ull) + (block_id) * 0x1000000ull;
211	}
212	return CVMX_ADD_IO_SEG(0x0001180008000530ull) + (block_id) * 0x8000000ull;
213}
214
215static inline uint64_t CVMX_GMXX_SMACX(unsigned long offset, unsigned long block_id)
216{
217	switch (cvmx_get_octeon_family()) {
218	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
219		return CVMX_ADD_IO_SEG(0x0001180008000230ull) + ((offset) + (block_id) * 0x0ull) * 2048;
220	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
221		return CVMX_ADD_IO_SEG(0x0001180008000230ull) + ((offset) + (block_id) * 0x2000ull) * 2048;
222	}
223	return CVMX_ADD_IO_SEG(0x0001180008000230ull) + ((offset) + (block_id) * 0x10000ull) * 2048;
224}
225
226static inline uint64_t CVMX_GMXX_TXX_BURST(unsigned long offset, unsigned long block_id)
227{
228	switch (cvmx_get_octeon_family()) {
229	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
230		return CVMX_ADD_IO_SEG(0x0001180008000228ull) + ((offset) + (block_id) * 0x0ull) * 2048;
231	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
232		return CVMX_ADD_IO_SEG(0x0001180008000228ull) + ((offset) + (block_id) * 0x2000ull) * 2048;
233	}
234	return CVMX_ADD_IO_SEG(0x0001180008000228ull) + ((offset) + (block_id) * 0x10000ull) * 2048;
235}
236
237#define CVMX_GMXX_TXX_CLK(offset, block_id) (CVMX_ADD_IO_SEG(0x0001180008000208ull) + (((offset) & 3) + ((block_id) & 1) * 0x10000ull) * 2048)
238static inline uint64_t CVMX_GMXX_TXX_CTL(unsigned long offset, unsigned long block_id)
239{
240	switch (cvmx_get_octeon_family()) {
241	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
242		return CVMX_ADD_IO_SEG(0x0001180008000270ull) + ((offset) + (block_id) * 0x0ull) * 2048;
243	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
244		return CVMX_ADD_IO_SEG(0x0001180008000270ull) + ((offset) + (block_id) * 0x2000ull) * 2048;
245	}
246	return CVMX_ADD_IO_SEG(0x0001180008000270ull) + ((offset) + (block_id) * 0x10000ull) * 2048;
247}
248
249static inline uint64_t CVMX_GMXX_TXX_PAUSE_PKT_INTERVAL(unsigned long offset, unsigned long block_id)
250{
251	switch (cvmx_get_octeon_family()) {
252	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
253		return CVMX_ADD_IO_SEG(0x0001180008000248ull) + ((offset) + (block_id) * 0x0ull) * 2048;
254	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
255		return CVMX_ADD_IO_SEG(0x0001180008000248ull) + ((offset) + (block_id) * 0x2000ull) * 2048;
256	}
257	return CVMX_ADD_IO_SEG(0x0001180008000248ull) + ((offset) + (block_id) * 0x10000ull) * 2048;
258}
259
260static inline uint64_t CVMX_GMXX_TXX_PAUSE_PKT_TIME(unsigned long offset, unsigned long block_id)
261{
262	switch (cvmx_get_octeon_family()) {
263	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
264		return CVMX_ADD_IO_SEG(0x0001180008000238ull) + ((offset) + (block_id) * 0x0ull) * 2048;
265	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
266		return CVMX_ADD_IO_SEG(0x0001180008000238ull) + ((offset) + (block_id) * 0x2000ull) * 2048;
267	}
268	return CVMX_ADD_IO_SEG(0x0001180008000238ull) + ((offset) + (block_id) * 0x10000ull) * 2048;
269}
270
271static inline uint64_t CVMX_GMXX_TXX_SLOT(unsigned long offset, unsigned long block_id)
272{
273	switch (cvmx_get_octeon_family()) {
274	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
275		return CVMX_ADD_IO_SEG(0x0001180008000220ull) + ((offset) + (block_id) * 0x0ull) * 2048;
276	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
277		return CVMX_ADD_IO_SEG(0x0001180008000220ull) + ((offset) + (block_id) * 0x2000ull) * 2048;
278	}
279	return CVMX_ADD_IO_SEG(0x0001180008000220ull) + ((offset) + (block_id) * 0x10000ull) * 2048;
280}
281
282static inline uint64_t CVMX_GMXX_TXX_THRESH(unsigned long offset, unsigned long block_id)
283{
284	switch (cvmx_get_octeon_family()) {
285	case OCTEON_CN31XX & OCTEON_FAMILY_MASK:
286		return CVMX_ADD_IO_SEG(0x0001180008000210ull) + ((offset) + (block_id) * 0x0ull) * 2048;
287	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
288		return CVMX_ADD_IO_SEG(0x0001180008000210ull) + ((offset) + (block_id) * 0x2000ull) * 2048;
289	}
290	return CVMX_ADD_IO_SEG(0x0001180008000210ull) + ((offset) + (block_id) * 0x10000ull) * 2048;
291}
292
293static inline uint64_t CVMX_GMXX_TX_INT_EN(unsigned long block_id)
294{
295	switch (cvmx_get_octeon_family()) {
296	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
297		return CVMX_ADD_IO_SEG(0x0001180008000508ull) + (block_id) * 0x1000000ull;
298	}
299	return CVMX_ADD_IO_SEG(0x0001180008000508ull) + (block_id) * 0x8000000ull;
300}
301
302static inline uint64_t CVMX_GMXX_TX_INT_REG(unsigned long block_id)
303{
304	switch (cvmx_get_octeon_family()) {
305	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
306		return CVMX_ADD_IO_SEG(0x0001180008000500ull) + (block_id) * 0x1000000ull;
307	}
308	return CVMX_ADD_IO_SEG(0x0001180008000500ull) + (block_id) * 0x8000000ull;
309}
310
311static inline uint64_t CVMX_GMXX_TX_OVR_BP(unsigned long block_id)
312{
313	switch (cvmx_get_octeon_family()) {
314	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
315		return CVMX_ADD_IO_SEG(0x00011800080004C8ull) + (block_id) * 0x1000000ull;
316	}
317	return CVMX_ADD_IO_SEG(0x00011800080004C8ull) + (block_id) * 0x8000000ull;
318}
319
320static inline uint64_t CVMX_GMXX_TX_PRTS(unsigned long block_id)
321{
322	switch (cvmx_get_octeon_family()) {
323	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
324		return CVMX_ADD_IO_SEG(0x0001180008000480ull) + (block_id) * 0x1000000ull;
325	}
326	return CVMX_ADD_IO_SEG(0x0001180008000480ull) + (block_id) * 0x8000000ull;
327}
328
329#define CVMX_GMXX_TX_SPI_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800080004C0ull) + ((block_id) & 1) * 0x8000000ull)
330#define CVMX_GMXX_TX_SPI_MAX(block_id) (CVMX_ADD_IO_SEG(0x00011800080004B0ull) + ((block_id) & 1) * 0x8000000ull)
331#define CVMX_GMXX_TX_SPI_THRESH(block_id) (CVMX_ADD_IO_SEG(0x00011800080004B8ull) + ((block_id) & 1) * 0x8000000ull)
332static inline uint64_t CVMX_GMXX_TX_XAUI_CTL(unsigned long block_id)
333{
334	switch (cvmx_get_octeon_family()) {
335	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
336		return CVMX_ADD_IO_SEG(0x0001180008000528ull) + (block_id) * 0x1000000ull;
337	}
338	return CVMX_ADD_IO_SEG(0x0001180008000528ull) + (block_id) * 0x8000000ull;
339}
340
341void __cvmx_interrupt_gmxx_enable(int interface);
342
343union cvmx_gmxx_hg2_control {
344	uint64_t u64;
345	struct cvmx_gmxx_hg2_control_s {
346#ifdef __BIG_ENDIAN_BITFIELD
347		uint64_t reserved_19_63:45;
348		uint64_t hg2tx_en:1;
349		uint64_t hg2rx_en:1;
350		uint64_t phys_en:1;
351		uint64_t logl_en:16;
352#else
353		uint64_t logl_en:16;
354		uint64_t phys_en:1;
355		uint64_t hg2rx_en:1;
356		uint64_t hg2tx_en:1;
357		uint64_t reserved_19_63:45;
358#endif
359	} s;
360};
361
362union cvmx_gmxx_inf_mode {
363	uint64_t u64;
364	struct cvmx_gmxx_inf_mode_s {
365#ifdef __BIG_ENDIAN_BITFIELD
366		uint64_t reserved_20_63:44;
367		uint64_t rate:4;
368		uint64_t reserved_12_15:4;
369		uint64_t speed:4;
370		uint64_t reserved_7_7:1;
371		uint64_t mode:3;
372		uint64_t reserved_3_3:1;
373		uint64_t p0mii:1;
374		uint64_t en:1;
375		uint64_t type:1;
376#else
377		uint64_t type:1;
378		uint64_t en:1;
379		uint64_t p0mii:1;
380		uint64_t reserved_3_3:1;
381		uint64_t mode:3;
382		uint64_t reserved_7_7:1;
383		uint64_t speed:4;
384		uint64_t reserved_12_15:4;
385		uint64_t rate:4;
386		uint64_t reserved_20_63:44;
387#endif
388	} s;
389	struct cvmx_gmxx_inf_mode_cn30xx {
390#ifdef __BIG_ENDIAN_BITFIELD
391		uint64_t reserved_3_63:61;
392		uint64_t p0mii:1;
393		uint64_t en:1;
394		uint64_t type:1;
395#else
396		uint64_t type:1;
397		uint64_t en:1;
398		uint64_t p0mii:1;
399		uint64_t reserved_3_63:61;
400#endif
401	} cn30xx;
402	struct cvmx_gmxx_inf_mode_cn31xx {
403#ifdef __BIG_ENDIAN_BITFIELD
404		uint64_t reserved_2_63:62;
405		uint64_t en:1;
406		uint64_t type:1;
407#else
408		uint64_t type:1;
409		uint64_t en:1;
410		uint64_t reserved_2_63:62;
411#endif
412	} cn31xx;
413	struct cvmx_gmxx_inf_mode_cn52xx {
414#ifdef __BIG_ENDIAN_BITFIELD
415		uint64_t reserved_10_63:54;
416		uint64_t speed:2;
417		uint64_t reserved_6_7:2;
418		uint64_t mode:2;
419		uint64_t reserved_2_3:2;
420		uint64_t en:1;
421		uint64_t type:1;
422#else
423		uint64_t type:1;
424		uint64_t en:1;
425		uint64_t reserved_2_3:2;
426		uint64_t mode:2;
427		uint64_t reserved_6_7:2;
428		uint64_t speed:2;
429		uint64_t reserved_10_63:54;
430#endif
431	} cn52xx;
432	struct cvmx_gmxx_inf_mode_cn61xx {
433#ifdef __BIG_ENDIAN_BITFIELD
434		uint64_t reserved_12_63:52;
435		uint64_t speed:4;
436		uint64_t reserved_5_7:3;
437		uint64_t mode:1;
438		uint64_t reserved_2_3:2;
439		uint64_t en:1;
440		uint64_t type:1;
441#else
442		uint64_t type:1;
443		uint64_t en:1;
444		uint64_t reserved_2_3:2;
445		uint64_t mode:1;
446		uint64_t reserved_5_7:3;
447		uint64_t speed:4;
448		uint64_t reserved_12_63:52;
449#endif
450	} cn61xx;
451	struct cvmx_gmxx_inf_mode_cn66xx {
452#ifdef __BIG_ENDIAN_BITFIELD
453		uint64_t reserved_20_63:44;
454		uint64_t rate:4;
455		uint64_t reserved_12_15:4;
456		uint64_t speed:4;
457		uint64_t reserved_5_7:3;
458		uint64_t mode:1;
459		uint64_t reserved_2_3:2;
460		uint64_t en:1;
461		uint64_t type:1;
462#else
463		uint64_t type:1;
464		uint64_t en:1;
465		uint64_t reserved_2_3:2;
466		uint64_t mode:1;
467		uint64_t reserved_5_7:3;
468		uint64_t speed:4;
469		uint64_t reserved_12_15:4;
470		uint64_t rate:4;
471		uint64_t reserved_20_63:44;
472#endif
473	} cn66xx;
474	struct cvmx_gmxx_inf_mode_cn68xx {
475#ifdef __BIG_ENDIAN_BITFIELD
476		uint64_t reserved_12_63:52;
477		uint64_t speed:4;
478		uint64_t reserved_7_7:1;
479		uint64_t mode:3;
480		uint64_t reserved_2_3:2;
481		uint64_t en:1;
482		uint64_t type:1;
483#else
484		uint64_t type:1;
485		uint64_t en:1;
486		uint64_t reserved_2_3:2;
487		uint64_t mode:3;
488		uint64_t reserved_7_7:1;
489		uint64_t speed:4;
490		uint64_t reserved_12_63:52;
491#endif
492	} cn68xx;
493};
494
495union cvmx_gmxx_prtx_cfg {
496	uint64_t u64;
497	struct cvmx_gmxx_prtx_cfg_s {
498#ifdef __BIG_ENDIAN_BITFIELD
499		uint64_t reserved_22_63:42;
500		uint64_t pknd:6;
501		uint64_t reserved_14_15:2;
502		uint64_t tx_idle:1;
503		uint64_t rx_idle:1;
504		uint64_t reserved_9_11:3;
505		uint64_t speed_msb:1;
506		uint64_t reserved_4_7:4;
507		uint64_t slottime:1;
508		uint64_t duplex:1;
509		uint64_t speed:1;
510		uint64_t en:1;
511#else
512		uint64_t en:1;
513		uint64_t speed:1;
514		uint64_t duplex:1;
515		uint64_t slottime:1;
516		uint64_t reserved_4_7:4;
517		uint64_t speed_msb:1;
518		uint64_t reserved_9_11:3;
519		uint64_t rx_idle:1;
520		uint64_t tx_idle:1;
521		uint64_t reserved_14_15:2;
522		uint64_t pknd:6;
523		uint64_t reserved_22_63:42;
524#endif
525	} s;
526	struct cvmx_gmxx_prtx_cfg_cn30xx {
527#ifdef __BIG_ENDIAN_BITFIELD
528		uint64_t reserved_4_63:60;
529		uint64_t slottime:1;
530		uint64_t duplex:1;
531		uint64_t speed:1;
532		uint64_t en:1;
533#else
534		uint64_t en:1;
535		uint64_t speed:1;
536		uint64_t duplex:1;
537		uint64_t slottime:1;
538		uint64_t reserved_4_63:60;
539#endif
540	} cn30xx;
541	struct cvmx_gmxx_prtx_cfg_cn52xx {
542#ifdef __BIG_ENDIAN_BITFIELD
543		uint64_t reserved_14_63:50;
544		uint64_t tx_idle:1;
545		uint64_t rx_idle:1;
546		uint64_t reserved_9_11:3;
547		uint64_t speed_msb:1;
548		uint64_t reserved_4_7:4;
549		uint64_t slottime:1;
550		uint64_t duplex:1;
551		uint64_t speed:1;
552		uint64_t en:1;
553#else
554		uint64_t en:1;
555		uint64_t speed:1;
556		uint64_t duplex:1;
557		uint64_t slottime:1;
558		uint64_t reserved_4_7:4;
559		uint64_t speed_msb:1;
560		uint64_t reserved_9_11:3;
561		uint64_t rx_idle:1;
562		uint64_t tx_idle:1;
563		uint64_t reserved_14_63:50;
564#endif
565	} cn52xx;
566};
567
568union cvmx_gmxx_rxx_adr_ctl {
569	uint64_t u64;
570	struct cvmx_gmxx_rxx_adr_ctl_s {
571#ifdef __BIG_ENDIAN_BITFIELD
572		uint64_t reserved_4_63:60;
573		uint64_t cam_mode:1;
574		uint64_t mcst:2;
575		uint64_t bcst:1;
576#else
577		uint64_t bcst:1;
578		uint64_t mcst:2;
579		uint64_t cam_mode:1;
580		uint64_t reserved_4_63:60;
581#endif
582	} s;
583};
584
585union cvmx_gmxx_rxx_frm_ctl {
586	uint64_t u64;
587	struct cvmx_gmxx_rxx_frm_ctl_s {
588#ifdef __BIG_ENDIAN_BITFIELD
589		uint64_t reserved_13_63:51;
590		uint64_t ptp_mode:1;
591		uint64_t reserved_11_11:1;
592		uint64_t null_dis:1;
593		uint64_t pre_align:1;
594		uint64_t pad_len:1;
595		uint64_t vlan_len:1;
596		uint64_t pre_free:1;
597		uint64_t ctl_smac:1;
598		uint64_t ctl_mcst:1;
599		uint64_t ctl_bck:1;
600		uint64_t ctl_drp:1;
601		uint64_t pre_strp:1;
602		uint64_t pre_chk:1;
603#else
604		uint64_t pre_chk:1;
605		uint64_t pre_strp:1;
606		uint64_t ctl_drp:1;
607		uint64_t ctl_bck:1;
608		uint64_t ctl_mcst:1;
609		uint64_t ctl_smac:1;
610		uint64_t pre_free:1;
611		uint64_t vlan_len:1;
612		uint64_t pad_len:1;
613		uint64_t pre_align:1;
614		uint64_t null_dis:1;
615		uint64_t reserved_11_11:1;
616		uint64_t ptp_mode:1;
617		uint64_t reserved_13_63:51;
618#endif
619	} s;
620	struct cvmx_gmxx_rxx_frm_ctl_cn30xx {
621#ifdef __BIG_ENDIAN_BITFIELD
622		uint64_t reserved_9_63:55;
623		uint64_t pad_len:1;
624		uint64_t vlan_len:1;
625		uint64_t pre_free:1;
626		uint64_t ctl_smac:1;
627		uint64_t ctl_mcst:1;
628		uint64_t ctl_bck:1;
629		uint64_t ctl_drp:1;
630		uint64_t pre_strp:1;
631		uint64_t pre_chk:1;
632#else
633		uint64_t pre_chk:1;
634		uint64_t pre_strp:1;
635		uint64_t ctl_drp:1;
636		uint64_t ctl_bck:1;
637		uint64_t ctl_mcst:1;
638		uint64_t ctl_smac:1;
639		uint64_t pre_free:1;
640		uint64_t vlan_len:1;
641		uint64_t pad_len:1;
642		uint64_t reserved_9_63:55;
643#endif
644	} cn30xx;
645	struct cvmx_gmxx_rxx_frm_ctl_cn31xx {
646#ifdef __BIG_ENDIAN_BITFIELD
647		uint64_t reserved_8_63:56;
648		uint64_t vlan_len:1;
649		uint64_t pre_free:1;
650		uint64_t ctl_smac:1;
651		uint64_t ctl_mcst:1;
652		uint64_t ctl_bck:1;
653		uint64_t ctl_drp:1;
654		uint64_t pre_strp:1;
655		uint64_t pre_chk:1;
656#else
657		uint64_t pre_chk:1;
658		uint64_t pre_strp:1;
659		uint64_t ctl_drp:1;
660		uint64_t ctl_bck:1;
661		uint64_t ctl_mcst:1;
662		uint64_t ctl_smac:1;
663		uint64_t pre_free:1;
664		uint64_t vlan_len:1;
665		uint64_t reserved_8_63:56;
666#endif
667	} cn31xx;
668	struct cvmx_gmxx_rxx_frm_ctl_cn50xx {
669#ifdef __BIG_ENDIAN_BITFIELD
670		uint64_t reserved_11_63:53;
671		uint64_t null_dis:1;
672		uint64_t pre_align:1;
673		uint64_t reserved_7_8:2;
674		uint64_t pre_free:1;
675		uint64_t ctl_smac:1;
676		uint64_t ctl_mcst:1;
677		uint64_t ctl_bck:1;
678		uint64_t ctl_drp:1;
679		uint64_t pre_strp:1;
680		uint64_t pre_chk:1;
681#else
682		uint64_t pre_chk:1;
683		uint64_t pre_strp:1;
684		uint64_t ctl_drp:1;
685		uint64_t ctl_bck:1;
686		uint64_t ctl_mcst:1;
687		uint64_t ctl_smac:1;
688		uint64_t pre_free:1;
689		uint64_t reserved_7_8:2;
690		uint64_t pre_align:1;
691		uint64_t null_dis:1;
692		uint64_t reserved_11_63:53;
693#endif
694	} cn50xx;
695	struct cvmx_gmxx_rxx_frm_ctl_cn56xxp1 {
696#ifdef __BIG_ENDIAN_BITFIELD
697		uint64_t reserved_10_63:54;
698		uint64_t pre_align:1;
699		uint64_t reserved_7_8:2;
700		uint64_t pre_free:1;
701		uint64_t ctl_smac:1;
702		uint64_t ctl_mcst:1;
703		uint64_t ctl_bck:1;
704		uint64_t ctl_drp:1;
705		uint64_t pre_strp:1;
706		uint64_t pre_chk:1;
707#else
708		uint64_t pre_chk:1;
709		uint64_t pre_strp:1;
710		uint64_t ctl_drp:1;
711		uint64_t ctl_bck:1;
712		uint64_t ctl_mcst:1;
713		uint64_t ctl_smac:1;
714		uint64_t pre_free:1;
715		uint64_t reserved_7_8:2;
716		uint64_t pre_align:1;
717		uint64_t reserved_10_63:54;
718#endif
719	} cn56xxp1;
720	struct cvmx_gmxx_rxx_frm_ctl_cn58xx {
721#ifdef __BIG_ENDIAN_BITFIELD
722		uint64_t reserved_11_63:53;
723		uint64_t null_dis:1;
724		uint64_t pre_align:1;
725		uint64_t pad_len:1;
726		uint64_t vlan_len:1;
727		uint64_t pre_free:1;
728		uint64_t ctl_smac:1;
729		uint64_t ctl_mcst:1;
730		uint64_t ctl_bck:1;
731		uint64_t ctl_drp:1;
732		uint64_t pre_strp:1;
733		uint64_t pre_chk:1;
734#else
735		uint64_t pre_chk:1;
736		uint64_t pre_strp:1;
737		uint64_t ctl_drp:1;
738		uint64_t ctl_bck:1;
739		uint64_t ctl_mcst:1;
740		uint64_t ctl_smac:1;
741		uint64_t pre_free:1;
742		uint64_t vlan_len:1;
743		uint64_t pad_len:1;
744		uint64_t pre_align:1;
745		uint64_t null_dis:1;
746		uint64_t reserved_11_63:53;
747#endif
748	} cn58xx;
749	struct cvmx_gmxx_rxx_frm_ctl_cn61xx {
750#ifdef __BIG_ENDIAN_BITFIELD
751		uint64_t reserved_13_63:51;
752		uint64_t ptp_mode:1;
753		uint64_t reserved_11_11:1;
754		uint64_t null_dis:1;
755		uint64_t pre_align:1;
756		uint64_t reserved_7_8:2;
757		uint64_t pre_free:1;
758		uint64_t ctl_smac:1;
759		uint64_t ctl_mcst:1;
760		uint64_t ctl_bck:1;
761		uint64_t ctl_drp:1;
762		uint64_t pre_strp:1;
763		uint64_t pre_chk:1;
764#else
765		uint64_t pre_chk:1;
766		uint64_t pre_strp:1;
767		uint64_t ctl_drp:1;
768		uint64_t ctl_bck:1;
769		uint64_t ctl_mcst:1;
770		uint64_t ctl_smac:1;
771		uint64_t pre_free:1;
772		uint64_t reserved_7_8:2;
773		uint64_t pre_align:1;
774		uint64_t null_dis:1;
775		uint64_t reserved_11_11:1;
776		uint64_t ptp_mode:1;
777		uint64_t reserved_13_63:51;
778#endif
779	} cn61xx;
780};
781
782union cvmx_gmxx_rxx_frm_max {
783	uint64_t u64;
784	struct cvmx_gmxx_rxx_frm_max_s {
785#ifdef __BIG_ENDIAN_BITFIELD
786		uint64_t reserved_16_63:48;
787		uint64_t len:16;
788#else
789		uint64_t len:16;
790		uint64_t reserved_16_63:48;
791#endif
792	} s;
793};
794
795union cvmx_gmxx_rxx_frm_min {
796	uint64_t u64;
797	struct cvmx_gmxx_rxx_frm_min_s {
798#ifdef __BIG_ENDIAN_BITFIELD
799		uint64_t reserved_16_63:48;
800		uint64_t len:16;
801#else
802		uint64_t len:16;
803		uint64_t reserved_16_63:48;
804#endif
805	} s;
806};
807
808union cvmx_gmxx_rxx_int_en {
809	uint64_t u64;
810	struct cvmx_gmxx_rxx_int_en_s {
811#ifdef __BIG_ENDIAN_BITFIELD
812		uint64_t reserved_29_63:35;
813		uint64_t hg2cc:1;
814		uint64_t hg2fld:1;
815		uint64_t undat:1;
816		uint64_t uneop:1;
817		uint64_t unsop:1;
818		uint64_t bad_term:1;
819		uint64_t bad_seq:1;
820		uint64_t rem_fault:1;
821		uint64_t loc_fault:1;
822		uint64_t pause_drp:1;
823		uint64_t phy_dupx:1;
824		uint64_t phy_spd:1;
825		uint64_t phy_link:1;
826		uint64_t ifgerr:1;
827		uint64_t coldet:1;
828		uint64_t falerr:1;
829		uint64_t rsverr:1;
830		uint64_t pcterr:1;
831		uint64_t ovrerr:1;
832		uint64_t niberr:1;
833		uint64_t skperr:1;
834		uint64_t rcverr:1;
835		uint64_t lenerr:1;
836		uint64_t alnerr:1;
837		uint64_t fcserr:1;
838		uint64_t jabber:1;
839		uint64_t maxerr:1;
840		uint64_t carext:1;
841		uint64_t minerr:1;
842#else
843		uint64_t minerr:1;
844		uint64_t carext:1;
845		uint64_t maxerr:1;
846		uint64_t jabber:1;
847		uint64_t fcserr:1;
848		uint64_t alnerr:1;
849		uint64_t lenerr:1;
850		uint64_t rcverr:1;
851		uint64_t skperr:1;
852		uint64_t niberr:1;
853		uint64_t ovrerr:1;
854		uint64_t pcterr:1;
855		uint64_t rsverr:1;
856		uint64_t falerr:1;
857		uint64_t coldet:1;
858		uint64_t ifgerr:1;
859		uint64_t phy_link:1;
860		uint64_t phy_spd:1;
861		uint64_t phy_dupx:1;
862		uint64_t pause_drp:1;
863		uint64_t loc_fault:1;
864		uint64_t rem_fault:1;
865		uint64_t bad_seq:1;
866		uint64_t bad_term:1;
867		uint64_t unsop:1;
868		uint64_t uneop:1;
869		uint64_t undat:1;
870		uint64_t hg2fld:1;
871		uint64_t hg2cc:1;
872		uint64_t reserved_29_63:35;
873#endif
874	} s;
875	struct cvmx_gmxx_rxx_int_en_cn30xx {
876#ifdef __BIG_ENDIAN_BITFIELD
877		uint64_t reserved_19_63:45;
878		uint64_t phy_dupx:1;
879		uint64_t phy_spd:1;
880		uint64_t phy_link:1;
881		uint64_t ifgerr:1;
882		uint64_t coldet:1;
883		uint64_t falerr:1;
884		uint64_t rsverr:1;
885		uint64_t pcterr:1;
886		uint64_t ovrerr:1;
887		uint64_t niberr:1;
888		uint64_t skperr:1;
889		uint64_t rcverr:1;
890		uint64_t lenerr:1;
891		uint64_t alnerr:1;
892		uint64_t fcserr:1;
893		uint64_t jabber:1;
894		uint64_t maxerr:1;
895		uint64_t carext:1;
896		uint64_t minerr:1;
897#else
898		uint64_t minerr:1;
899		uint64_t carext:1;
900		uint64_t maxerr:1;
901		uint64_t jabber:1;
902		uint64_t fcserr:1;
903		uint64_t alnerr:1;
904		uint64_t lenerr:1;
905		uint64_t rcverr:1;
906		uint64_t skperr:1;
907		uint64_t niberr:1;
908		uint64_t ovrerr:1;
909		uint64_t pcterr:1;
910		uint64_t rsverr:1;
911		uint64_t falerr:1;
912		uint64_t coldet:1;
913		uint64_t ifgerr:1;
914		uint64_t phy_link:1;
915		uint64_t phy_spd:1;
916		uint64_t phy_dupx:1;
917		uint64_t reserved_19_63:45;
918#endif
919	} cn30xx;
920	struct cvmx_gmxx_rxx_int_en_cn50xx {
921#ifdef __BIG_ENDIAN_BITFIELD
922		uint64_t reserved_20_63:44;
923		uint64_t pause_drp:1;
924		uint64_t phy_dupx:1;
925		uint64_t phy_spd:1;
926		uint64_t phy_link:1;
927		uint64_t ifgerr:1;
928		uint64_t coldet:1;
929		uint64_t falerr:1;
930		uint64_t rsverr:1;
931		uint64_t pcterr:1;
932		uint64_t ovrerr:1;
933		uint64_t niberr:1;
934		uint64_t skperr:1;
935		uint64_t rcverr:1;
936		uint64_t reserved_6_6:1;
937		uint64_t alnerr:1;
938		uint64_t fcserr:1;
939		uint64_t jabber:1;
940		uint64_t reserved_2_2:1;
941		uint64_t carext:1;
942		uint64_t reserved_0_0:1;
943#else
944		uint64_t reserved_0_0:1;
945		uint64_t carext:1;
946		uint64_t reserved_2_2:1;
947		uint64_t jabber:1;
948		uint64_t fcserr:1;
949		uint64_t alnerr:1;
950		uint64_t reserved_6_6:1;
951		uint64_t rcverr:1;
952		uint64_t skperr:1;
953		uint64_t niberr:1;
954		uint64_t ovrerr:1;
955		uint64_t pcterr:1;
956		uint64_t rsverr:1;
957		uint64_t falerr:1;
958		uint64_t coldet:1;
959		uint64_t ifgerr:1;
960		uint64_t phy_link:1;
961		uint64_t phy_spd:1;
962		uint64_t phy_dupx:1;
963		uint64_t pause_drp:1;
964		uint64_t reserved_20_63:44;
965#endif
966	} cn50xx;
967	struct cvmx_gmxx_rxx_int_en_cn52xx {
968#ifdef __BIG_ENDIAN_BITFIELD
969		uint64_t reserved_29_63:35;
970		uint64_t hg2cc:1;
971		uint64_t hg2fld:1;
972		uint64_t undat:1;
973		uint64_t uneop:1;
974		uint64_t unsop:1;
975		uint64_t bad_term:1;
976		uint64_t bad_seq:1;
977		uint64_t rem_fault:1;
978		uint64_t loc_fault:1;
979		uint64_t pause_drp:1;
980		uint64_t reserved_16_18:3;
981		uint64_t ifgerr:1;
982		uint64_t coldet:1;
983		uint64_t falerr:1;
984		uint64_t rsverr:1;
985		uint64_t pcterr:1;
986		uint64_t ovrerr:1;
987		uint64_t reserved_9_9:1;
988		uint64_t skperr:1;
989		uint64_t rcverr:1;
990		uint64_t reserved_5_6:2;
991		uint64_t fcserr:1;
992		uint64_t jabber:1;
993		uint64_t reserved_2_2:1;
994		uint64_t carext:1;
995		uint64_t reserved_0_0:1;
996#else
997		uint64_t reserved_0_0:1;
998		uint64_t carext:1;
999		uint64_t reserved_2_2:1;
1000		uint64_t jabber:1;
1001		uint64_t fcserr:1;
1002		uint64_t reserved_5_6:2;
1003		uint64_t rcverr:1;
1004		uint64_t skperr:1;
1005		uint64_t reserved_9_9:1;
1006		uint64_t ovrerr:1;
1007		uint64_t pcterr:1;
1008		uint64_t rsverr:1;
1009		uint64_t falerr:1;
1010		uint64_t coldet:1;
1011		uint64_t ifgerr:1;
1012		uint64_t reserved_16_18:3;
1013		uint64_t pause_drp:1;
1014		uint64_t loc_fault:1;
1015		uint64_t rem_fault:1;
1016		uint64_t bad_seq:1;
1017		uint64_t bad_term:1;
1018		uint64_t unsop:1;
1019		uint64_t uneop:1;
1020		uint64_t undat:1;
1021		uint64_t hg2fld:1;
1022		uint64_t hg2cc:1;
1023		uint64_t reserved_29_63:35;
1024#endif
1025	} cn52xx;
1026	struct cvmx_gmxx_rxx_int_en_cn56xxp1 {
1027#ifdef __BIG_ENDIAN_BITFIELD
1028		uint64_t reserved_27_63:37;
1029		uint64_t undat:1;
1030		uint64_t uneop:1;
1031		uint64_t unsop:1;
1032		uint64_t bad_term:1;
1033		uint64_t bad_seq:1;
1034		uint64_t rem_fault:1;
1035		uint64_t loc_fault:1;
1036		uint64_t pause_drp:1;
1037		uint64_t reserved_16_18:3;
1038		uint64_t ifgerr:1;
1039		uint64_t coldet:1;
1040		uint64_t falerr:1;
1041		uint64_t rsverr:1;
1042		uint64_t pcterr:1;
1043		uint64_t ovrerr:1;
1044		uint64_t reserved_9_9:1;
1045		uint64_t skperr:1;
1046		uint64_t rcverr:1;
1047		uint64_t reserved_5_6:2;
1048		uint64_t fcserr:1;
1049		uint64_t jabber:1;
1050		uint64_t reserved_2_2:1;
1051		uint64_t carext:1;
1052		uint64_t reserved_0_0:1;
1053#else
1054		uint64_t reserved_0_0:1;
1055		uint64_t carext:1;
1056		uint64_t reserved_2_2:1;
1057		uint64_t jabber:1;
1058		uint64_t fcserr:1;
1059		uint64_t reserved_5_6:2;
1060		uint64_t rcverr:1;
1061		uint64_t skperr:1;
1062		uint64_t reserved_9_9:1;
1063		uint64_t ovrerr:1;
1064		uint64_t pcterr:1;
1065		uint64_t rsverr:1;
1066		uint64_t falerr:1;
1067		uint64_t coldet:1;
1068		uint64_t ifgerr:1;
1069		uint64_t reserved_16_18:3;
1070		uint64_t pause_drp:1;
1071		uint64_t loc_fault:1;
1072		uint64_t rem_fault:1;
1073		uint64_t bad_seq:1;
1074		uint64_t bad_term:1;
1075		uint64_t unsop:1;
1076		uint64_t uneop:1;
1077		uint64_t undat:1;
1078		uint64_t reserved_27_63:37;
1079#endif
1080	} cn56xxp1;
1081	struct cvmx_gmxx_rxx_int_en_cn58xx {
1082#ifdef __BIG_ENDIAN_BITFIELD
1083		uint64_t reserved_20_63:44;
1084		uint64_t pause_drp:1;
1085		uint64_t phy_dupx:1;
1086		uint64_t phy_spd:1;
1087		uint64_t phy_link:1;
1088		uint64_t ifgerr:1;
1089		uint64_t coldet:1;
1090		uint64_t falerr:1;
1091		uint64_t rsverr:1;
1092		uint64_t pcterr:1;
1093		uint64_t ovrerr:1;
1094		uint64_t niberr:1;
1095		uint64_t skperr:1;
1096		uint64_t rcverr:1;
1097		uint64_t lenerr:1;
1098		uint64_t alnerr:1;
1099		uint64_t fcserr:1;
1100		uint64_t jabber:1;
1101		uint64_t maxerr:1;
1102		uint64_t carext:1;
1103		uint64_t minerr:1;
1104#else
1105		uint64_t minerr:1;
1106		uint64_t carext:1;
1107		uint64_t maxerr:1;
1108		uint64_t jabber:1;
1109		uint64_t fcserr:1;
1110		uint64_t alnerr:1;
1111		uint64_t lenerr:1;
1112		uint64_t rcverr:1;
1113		uint64_t skperr:1;
1114		uint64_t niberr:1;
1115		uint64_t ovrerr:1;
1116		uint64_t pcterr:1;
1117		uint64_t rsverr:1;
1118		uint64_t falerr:1;
1119		uint64_t coldet:1;
1120		uint64_t ifgerr:1;
1121		uint64_t phy_link:1;
1122		uint64_t phy_spd:1;
1123		uint64_t phy_dupx:1;
1124		uint64_t pause_drp:1;
1125		uint64_t reserved_20_63:44;
1126#endif
1127	} cn58xx;
1128	struct cvmx_gmxx_rxx_int_en_cn61xx {
1129#ifdef __BIG_ENDIAN_BITFIELD
1130		uint64_t reserved_29_63:35;
1131		uint64_t hg2cc:1;
1132		uint64_t hg2fld:1;
1133		uint64_t undat:1;
1134		uint64_t uneop:1;
1135		uint64_t unsop:1;
1136		uint64_t bad_term:1;
1137		uint64_t bad_seq:1;
1138		uint64_t rem_fault:1;
1139		uint64_t loc_fault:1;
1140		uint64_t pause_drp:1;
1141		uint64_t reserved_16_18:3;
1142		uint64_t ifgerr:1;
1143		uint64_t coldet:1;
1144		uint64_t falerr:1;
1145		uint64_t rsverr:1;
1146		uint64_t pcterr:1;
1147		uint64_t ovrerr:1;
1148		uint64_t reserved_9_9:1;
1149		uint64_t skperr:1;
1150		uint64_t rcverr:1;
1151		uint64_t reserved_5_6:2;
1152		uint64_t fcserr:1;
1153		uint64_t jabber:1;
1154		uint64_t reserved_2_2:1;
1155		uint64_t carext:1;
1156		uint64_t minerr:1;
1157#else
1158		uint64_t minerr:1;
1159		uint64_t carext:1;
1160		uint64_t reserved_2_2:1;
1161		uint64_t jabber:1;
1162		uint64_t fcserr:1;
1163		uint64_t reserved_5_6:2;
1164		uint64_t rcverr:1;
1165		uint64_t skperr:1;
1166		uint64_t reserved_9_9:1;
1167		uint64_t ovrerr:1;
1168		uint64_t pcterr:1;
1169		uint64_t rsverr:1;
1170		uint64_t falerr:1;
1171		uint64_t coldet:1;
1172		uint64_t ifgerr:1;
1173		uint64_t reserved_16_18:3;
1174		uint64_t pause_drp:1;
1175		uint64_t loc_fault:1;
1176		uint64_t rem_fault:1;
1177		uint64_t bad_seq:1;
1178		uint64_t bad_term:1;
1179		uint64_t unsop:1;
1180		uint64_t uneop:1;
1181		uint64_t undat:1;
1182		uint64_t hg2fld:1;
1183		uint64_t hg2cc:1;
1184		uint64_t reserved_29_63:35;
1185#endif
1186	} cn61xx;
1187};
1188
1189union cvmx_gmxx_rxx_int_reg {
1190	uint64_t u64;
1191	struct cvmx_gmxx_rxx_int_reg_s {
1192#ifdef __BIG_ENDIAN_BITFIELD
1193		uint64_t reserved_29_63:35;
1194		uint64_t hg2cc:1;
1195		uint64_t hg2fld:1;
1196		uint64_t undat:1;
1197		uint64_t uneop:1;
1198		uint64_t unsop:1;
1199		uint64_t bad_term:1;
1200		uint64_t bad_seq:1;
1201		uint64_t rem_fault:1;
1202		uint64_t loc_fault:1;
1203		uint64_t pause_drp:1;
1204		uint64_t phy_dupx:1;
1205		uint64_t phy_spd:1;
1206		uint64_t phy_link:1;
1207		uint64_t ifgerr:1;
1208		uint64_t coldet:1;
1209		uint64_t falerr:1;
1210		uint64_t rsverr:1;
1211		uint64_t pcterr:1;
1212		uint64_t ovrerr:1;
1213		uint64_t niberr:1;
1214		uint64_t skperr:1;
1215		uint64_t rcverr:1;
1216		uint64_t lenerr:1;
1217		uint64_t alnerr:1;
1218		uint64_t fcserr:1;
1219		uint64_t jabber:1;
1220		uint64_t maxerr:1;
1221		uint64_t carext:1;
1222		uint64_t minerr:1;
1223#else
1224		uint64_t minerr:1;
1225		uint64_t carext:1;
1226		uint64_t maxerr:1;
1227		uint64_t jabber:1;
1228		uint64_t fcserr:1;
1229		uint64_t alnerr:1;
1230		uint64_t lenerr:1;
1231		uint64_t rcverr:1;
1232		uint64_t skperr:1;
1233		uint64_t niberr:1;
1234		uint64_t ovrerr:1;
1235		uint64_t pcterr:1;
1236		uint64_t rsverr:1;
1237		uint64_t falerr:1;
1238		uint64_t coldet:1;
1239		uint64_t ifgerr:1;
1240		uint64_t phy_link:1;
1241		uint64_t phy_spd:1;
1242		uint64_t phy_dupx:1;
1243		uint64_t pause_drp:1;
1244		uint64_t loc_fault:1;
1245		uint64_t rem_fault:1;
1246		uint64_t bad_seq:1;
1247		uint64_t bad_term:1;
1248		uint64_t unsop:1;
1249		uint64_t uneop:1;
1250		uint64_t undat:1;
1251		uint64_t hg2fld:1;
1252		uint64_t hg2cc:1;
1253		uint64_t reserved_29_63:35;
1254#endif
1255	} s;
1256	struct cvmx_gmxx_rxx_int_reg_cn30xx {
1257#ifdef __BIG_ENDIAN_BITFIELD
1258		uint64_t reserved_19_63:45;
1259		uint64_t phy_dupx:1;
1260		uint64_t phy_spd:1;
1261		uint64_t phy_link:1;
1262		uint64_t ifgerr:1;
1263		uint64_t coldet:1;
1264		uint64_t falerr:1;
1265		uint64_t rsverr:1;
1266		uint64_t pcterr:1;
1267		uint64_t ovrerr:1;
1268		uint64_t niberr:1;
1269		uint64_t skperr:1;
1270		uint64_t rcverr:1;
1271		uint64_t lenerr:1;
1272		uint64_t alnerr:1;
1273		uint64_t fcserr:1;
1274		uint64_t jabber:1;
1275		uint64_t maxerr:1;
1276		uint64_t carext:1;
1277		uint64_t minerr:1;
1278#else
1279		uint64_t minerr:1;
1280		uint64_t carext:1;
1281		uint64_t maxerr:1;
1282		uint64_t jabber:1;
1283		uint64_t fcserr:1;
1284		uint64_t alnerr:1;
1285		uint64_t lenerr:1;
1286		uint64_t rcverr:1;
1287		uint64_t skperr:1;
1288		uint64_t niberr:1;
1289		uint64_t ovrerr:1;
1290		uint64_t pcterr:1;
1291		uint64_t rsverr:1;
1292		uint64_t falerr:1;
1293		uint64_t coldet:1;
1294		uint64_t ifgerr:1;
1295		uint64_t phy_link:1;
1296		uint64_t phy_spd:1;
1297		uint64_t phy_dupx:1;
1298		uint64_t reserved_19_63:45;
1299#endif
1300	} cn30xx;
1301	struct cvmx_gmxx_rxx_int_reg_cn50xx {
1302#ifdef __BIG_ENDIAN_BITFIELD
1303		uint64_t reserved_20_63:44;
1304		uint64_t pause_drp:1;
1305		uint64_t phy_dupx:1;
1306		uint64_t phy_spd:1;
1307		uint64_t phy_link:1;
1308		uint64_t ifgerr:1;
1309		uint64_t coldet:1;
1310		uint64_t falerr:1;
1311		uint64_t rsverr:1;
1312		uint64_t pcterr:1;
1313		uint64_t ovrerr:1;
1314		uint64_t niberr:1;
1315		uint64_t skperr:1;
1316		uint64_t rcverr:1;
1317		uint64_t reserved_6_6:1;
1318		uint64_t alnerr:1;
1319		uint64_t fcserr:1;
1320		uint64_t jabber:1;
1321		uint64_t reserved_2_2:1;
1322		uint64_t carext:1;
1323		uint64_t reserved_0_0:1;
1324#else
1325		uint64_t reserved_0_0:1;
1326		uint64_t carext:1;
1327		uint64_t reserved_2_2:1;
1328		uint64_t jabber:1;
1329		uint64_t fcserr:1;
1330		uint64_t alnerr:1;
1331		uint64_t reserved_6_6:1;
1332		uint64_t rcverr:1;
1333		uint64_t skperr:1;
1334		uint64_t niberr:1;
1335		uint64_t ovrerr:1;
1336		uint64_t pcterr:1;
1337		uint64_t rsverr:1;
1338		uint64_t falerr:1;
1339		uint64_t coldet:1;
1340		uint64_t ifgerr:1;
1341		uint64_t phy_link:1;
1342		uint64_t phy_spd:1;
1343		uint64_t phy_dupx:1;
1344		uint64_t pause_drp:1;
1345		uint64_t reserved_20_63:44;
1346#endif
1347	} cn50xx;
1348	struct cvmx_gmxx_rxx_int_reg_cn52xx {
1349#ifdef __BIG_ENDIAN_BITFIELD
1350		uint64_t reserved_29_63:35;
1351		uint64_t hg2cc:1;
1352		uint64_t hg2fld:1;
1353		uint64_t undat:1;
1354		uint64_t uneop:1;
1355		uint64_t unsop:1;
1356		uint64_t bad_term:1;
1357		uint64_t bad_seq:1;
1358		uint64_t rem_fault:1;
1359		uint64_t loc_fault:1;
1360		uint64_t pause_drp:1;
1361		uint64_t reserved_16_18:3;
1362		uint64_t ifgerr:1;
1363		uint64_t coldet:1;
1364		uint64_t falerr:1;
1365		uint64_t rsverr:1;
1366		uint64_t pcterr:1;
1367		uint64_t ovrerr:1;
1368		uint64_t reserved_9_9:1;
1369		uint64_t skperr:1;
1370		uint64_t rcverr:1;
1371		uint64_t reserved_5_6:2;
1372		uint64_t fcserr:1;
1373		uint64_t jabber:1;
1374		uint64_t reserved_2_2:1;
1375		uint64_t carext:1;
1376		uint64_t reserved_0_0:1;
1377#else
1378		uint64_t reserved_0_0:1;
1379		uint64_t carext:1;
1380		uint64_t reserved_2_2:1;
1381		uint64_t jabber:1;
1382		uint64_t fcserr:1;
1383		uint64_t reserved_5_6:2;
1384		uint64_t rcverr:1;
1385		uint64_t skperr:1;
1386		uint64_t reserved_9_9:1;
1387		uint64_t ovrerr:1;
1388		uint64_t pcterr:1;
1389		uint64_t rsverr:1;
1390		uint64_t falerr:1;
1391		uint64_t coldet:1;
1392		uint64_t ifgerr:1;
1393		uint64_t reserved_16_18:3;
1394		uint64_t pause_drp:1;
1395		uint64_t loc_fault:1;
1396		uint64_t rem_fault:1;
1397		uint64_t bad_seq:1;
1398		uint64_t bad_term:1;
1399		uint64_t unsop:1;
1400		uint64_t uneop:1;
1401		uint64_t undat:1;
1402		uint64_t hg2fld:1;
1403		uint64_t hg2cc:1;
1404		uint64_t reserved_29_63:35;
1405#endif
1406	} cn52xx;
1407	struct cvmx_gmxx_rxx_int_reg_cn56xxp1 {
1408#ifdef __BIG_ENDIAN_BITFIELD
1409		uint64_t reserved_27_63:37;
1410		uint64_t undat:1;
1411		uint64_t uneop:1;
1412		uint64_t unsop:1;
1413		uint64_t bad_term:1;
1414		uint64_t bad_seq:1;
1415		uint64_t rem_fault:1;
1416		uint64_t loc_fault:1;
1417		uint64_t pause_drp:1;
1418		uint64_t reserved_16_18:3;
1419		uint64_t ifgerr:1;
1420		uint64_t coldet:1;
1421		uint64_t falerr:1;
1422		uint64_t rsverr:1;
1423		uint64_t pcterr:1;
1424		uint64_t ovrerr:1;
1425		uint64_t reserved_9_9:1;
1426		uint64_t skperr:1;
1427		uint64_t rcverr:1;
1428		uint64_t reserved_5_6:2;
1429		uint64_t fcserr:1;
1430		uint64_t jabber:1;
1431		uint64_t reserved_2_2:1;
1432		uint64_t carext:1;
1433		uint64_t reserved_0_0:1;
1434#else
1435		uint64_t reserved_0_0:1;
1436		uint64_t carext:1;
1437		uint64_t reserved_2_2:1;
1438		uint64_t jabber:1;
1439		uint64_t fcserr:1;
1440		uint64_t reserved_5_6:2;
1441		uint64_t rcverr:1;
1442		uint64_t skperr:1;
1443		uint64_t reserved_9_9:1;
1444		uint64_t ovrerr:1;
1445		uint64_t pcterr:1;
1446		uint64_t rsverr:1;
1447		uint64_t falerr:1;
1448		uint64_t coldet:1;
1449		uint64_t ifgerr:1;
1450		uint64_t reserved_16_18:3;
1451		uint64_t pause_drp:1;
1452		uint64_t loc_fault:1;
1453		uint64_t rem_fault:1;
1454		uint64_t bad_seq:1;
1455		uint64_t bad_term:1;
1456		uint64_t unsop:1;
1457		uint64_t uneop:1;
1458		uint64_t undat:1;
1459		uint64_t reserved_27_63:37;
1460#endif
1461	} cn56xxp1;
1462	struct cvmx_gmxx_rxx_int_reg_cn58xx {
1463#ifdef __BIG_ENDIAN_BITFIELD
1464		uint64_t reserved_20_63:44;
1465		uint64_t pause_drp:1;
1466		uint64_t phy_dupx:1;
1467		uint64_t phy_spd:1;
1468		uint64_t phy_link:1;
1469		uint64_t ifgerr:1;
1470		uint64_t coldet:1;
1471		uint64_t falerr:1;
1472		uint64_t rsverr:1;
1473		uint64_t pcterr:1;
1474		uint64_t ovrerr:1;
1475		uint64_t niberr:1;
1476		uint64_t skperr:1;
1477		uint64_t rcverr:1;
1478		uint64_t lenerr:1;
1479		uint64_t alnerr:1;
1480		uint64_t fcserr:1;
1481		uint64_t jabber:1;
1482		uint64_t maxerr:1;
1483		uint64_t carext:1;
1484		uint64_t minerr:1;
1485#else
1486		uint64_t minerr:1;
1487		uint64_t carext:1;
1488		uint64_t maxerr:1;
1489		uint64_t jabber:1;
1490		uint64_t fcserr:1;
1491		uint64_t alnerr:1;
1492		uint64_t lenerr:1;
1493		uint64_t rcverr:1;
1494		uint64_t skperr:1;
1495		uint64_t niberr:1;
1496		uint64_t ovrerr:1;
1497		uint64_t pcterr:1;
1498		uint64_t rsverr:1;
1499		uint64_t falerr:1;
1500		uint64_t coldet:1;
1501		uint64_t ifgerr:1;
1502		uint64_t phy_link:1;
1503		uint64_t phy_spd:1;
1504		uint64_t phy_dupx:1;
1505		uint64_t pause_drp:1;
1506		uint64_t reserved_20_63:44;
1507#endif
1508	} cn58xx;
1509	struct cvmx_gmxx_rxx_int_reg_cn61xx {
1510#ifdef __BIG_ENDIAN_BITFIELD
1511		uint64_t reserved_29_63:35;
1512		uint64_t hg2cc:1;
1513		uint64_t hg2fld:1;
1514		uint64_t undat:1;
1515		uint64_t uneop:1;
1516		uint64_t unsop:1;
1517		uint64_t bad_term:1;
1518		uint64_t bad_seq:1;
1519		uint64_t rem_fault:1;
1520		uint64_t loc_fault:1;
1521		uint64_t pause_drp:1;
1522		uint64_t reserved_16_18:3;
1523		uint64_t ifgerr:1;
1524		uint64_t coldet:1;
1525		uint64_t falerr:1;
1526		uint64_t rsverr:1;
1527		uint64_t pcterr:1;
1528		uint64_t ovrerr:1;
1529		uint64_t reserved_9_9:1;
1530		uint64_t skperr:1;
1531		uint64_t rcverr:1;
1532		uint64_t reserved_5_6:2;
1533		uint64_t fcserr:1;
1534		uint64_t jabber:1;
1535		uint64_t reserved_2_2:1;
1536		uint64_t carext:1;
1537		uint64_t minerr:1;
1538#else
1539		uint64_t minerr:1;
1540		uint64_t carext:1;
1541		uint64_t reserved_2_2:1;
1542		uint64_t jabber:1;
1543		uint64_t fcserr:1;
1544		uint64_t reserved_5_6:2;
1545		uint64_t rcverr:1;
1546		uint64_t skperr:1;
1547		uint64_t reserved_9_9:1;
1548		uint64_t ovrerr:1;
1549		uint64_t pcterr:1;
1550		uint64_t rsverr:1;
1551		uint64_t falerr:1;
1552		uint64_t coldet:1;
1553		uint64_t ifgerr:1;
1554		uint64_t reserved_16_18:3;
1555		uint64_t pause_drp:1;
1556		uint64_t loc_fault:1;
1557		uint64_t rem_fault:1;
1558		uint64_t bad_seq:1;
1559		uint64_t bad_term:1;
1560		uint64_t unsop:1;
1561		uint64_t uneop:1;
1562		uint64_t undat:1;
1563		uint64_t hg2fld:1;
1564		uint64_t hg2cc:1;
1565		uint64_t reserved_29_63:35;
1566#endif
1567	} cn61xx;
1568};
1569
1570union cvmx_gmxx_rxx_jabber {
1571	uint64_t u64;
1572	struct cvmx_gmxx_rxx_jabber_s {
1573#ifdef __BIG_ENDIAN_BITFIELD
1574		uint64_t reserved_16_63:48;
1575		uint64_t cnt:16;
1576#else
1577		uint64_t cnt:16;
1578		uint64_t reserved_16_63:48;
1579#endif
1580	} s;
1581};
1582
1583union cvmx_gmxx_rxx_rx_inbnd {
1584	uint64_t u64;
1585	struct cvmx_gmxx_rxx_rx_inbnd_s {
1586#ifdef __BIG_ENDIAN_BITFIELD
1587		uint64_t reserved_4_63:60;
1588		uint64_t duplex:1;
1589		uint64_t speed:2;
1590		uint64_t status:1;
1591#else
1592		uint64_t status:1;
1593		uint64_t speed:2;
1594		uint64_t duplex:1;
1595		uint64_t reserved_4_63:60;
1596#endif
1597	} s;
1598};
1599
1600union cvmx_gmxx_rx_prts {
1601	uint64_t u64;
1602	struct cvmx_gmxx_rx_prts_s {
1603#ifdef __BIG_ENDIAN_BITFIELD
1604		uint64_t reserved_3_63:61;
1605		uint64_t prts:3;
1606#else
1607		uint64_t prts:3;
1608		uint64_t reserved_3_63:61;
1609#endif
1610	} s;
1611};
1612
1613union cvmx_gmxx_rx_xaui_ctl {
1614	uint64_t u64;
1615	struct cvmx_gmxx_rx_xaui_ctl_s {
1616#ifdef __BIG_ENDIAN_BITFIELD
1617		uint64_t reserved_2_63:62;
1618		uint64_t status:2;
1619#else
1620		uint64_t status:2;
1621		uint64_t reserved_2_63:62;
1622#endif
1623	} s;
1624};
1625
1626union cvmx_gmxx_txx_thresh {
1627	uint64_t u64;
1628	struct cvmx_gmxx_txx_thresh_s {
1629#ifdef __BIG_ENDIAN_BITFIELD
1630		uint64_t reserved_10_63:54;
1631		uint64_t cnt:10;
1632#else
1633		uint64_t cnt:10;
1634		uint64_t reserved_10_63:54;
1635#endif
1636	} s;
1637	struct cvmx_gmxx_txx_thresh_cn30xx {
1638#ifdef __BIG_ENDIAN_BITFIELD
1639		uint64_t reserved_7_63:57;
1640		uint64_t cnt:7;
1641#else
1642		uint64_t cnt:7;
1643		uint64_t reserved_7_63:57;
1644#endif
1645	} cn30xx;
1646	struct cvmx_gmxx_txx_thresh_cn38xx {
1647#ifdef __BIG_ENDIAN_BITFIELD
1648		uint64_t reserved_9_63:55;
1649		uint64_t cnt:9;
1650#else
1651		uint64_t cnt:9;
1652		uint64_t reserved_9_63:55;
1653#endif
1654	} cn38xx;
1655};
1656
1657union cvmx_gmxx_tx_int_en {
1658	uint64_t u64;
1659	struct cvmx_gmxx_tx_int_en_s {
1660#ifdef __BIG_ENDIAN_BITFIELD
1661		uint64_t reserved_25_63:39;
1662		uint64_t xchange:1;
1663		uint64_t ptp_lost:4;
1664		uint64_t late_col:4;
1665		uint64_t xsdef:4;
1666		uint64_t xscol:4;
1667		uint64_t reserved_6_7:2;
1668		uint64_t undflw:4;
1669		uint64_t reserved_1_1:1;
1670		uint64_t pko_nxa:1;
1671#else
1672		uint64_t pko_nxa:1;
1673		uint64_t reserved_1_1:1;
1674		uint64_t undflw:4;
1675		uint64_t reserved_6_7:2;
1676		uint64_t xscol:4;
1677		uint64_t xsdef:4;
1678		uint64_t late_col:4;
1679		uint64_t ptp_lost:4;
1680		uint64_t xchange:1;
1681		uint64_t reserved_25_63:39;
1682#endif
1683	} s;
1684	struct cvmx_gmxx_tx_int_en_cn30xx {
1685#ifdef __BIG_ENDIAN_BITFIELD
1686		uint64_t reserved_19_63:45;
1687		uint64_t late_col:3;
1688		uint64_t reserved_15_15:1;
1689		uint64_t xsdef:3;
1690		uint64_t reserved_11_11:1;
1691		uint64_t xscol:3;
1692		uint64_t reserved_5_7:3;
1693		uint64_t undflw:3;
1694		uint64_t reserved_1_1:1;
1695		uint64_t pko_nxa:1;
1696#else
1697		uint64_t pko_nxa:1;
1698		uint64_t reserved_1_1:1;
1699		uint64_t undflw:3;
1700		uint64_t reserved_5_7:3;
1701		uint64_t xscol:3;
1702		uint64_t reserved_11_11:1;
1703		uint64_t xsdef:3;
1704		uint64_t reserved_15_15:1;
1705		uint64_t late_col:3;
1706		uint64_t reserved_19_63:45;
1707#endif
1708	} cn30xx;
1709	struct cvmx_gmxx_tx_int_en_cn31xx {
1710#ifdef __BIG_ENDIAN_BITFIELD
1711		uint64_t reserved_15_63:49;
1712		uint64_t xsdef:3;
1713		uint64_t reserved_11_11:1;
1714		uint64_t xscol:3;
1715		uint64_t reserved_5_7:3;
1716		uint64_t undflw:3;
1717		uint64_t reserved_1_1:1;
1718		uint64_t pko_nxa:1;
1719#else
1720		uint64_t pko_nxa:1;
1721		uint64_t reserved_1_1:1;
1722		uint64_t undflw:3;
1723		uint64_t reserved_5_7:3;
1724		uint64_t xscol:3;
1725		uint64_t reserved_11_11:1;
1726		uint64_t xsdef:3;
1727		uint64_t reserved_15_63:49;
1728#endif
1729	} cn31xx;
1730	struct cvmx_gmxx_tx_int_en_cn38xx {
1731#ifdef __BIG_ENDIAN_BITFIELD
1732		uint64_t reserved_20_63:44;
1733		uint64_t late_col:4;
1734		uint64_t xsdef:4;
1735		uint64_t xscol:4;
1736		uint64_t reserved_6_7:2;
1737		uint64_t undflw:4;
1738		uint64_t ncb_nxa:1;
1739		uint64_t pko_nxa:1;
1740#else
1741		uint64_t pko_nxa:1;
1742		uint64_t ncb_nxa:1;
1743		uint64_t undflw:4;
1744		uint64_t reserved_6_7:2;
1745		uint64_t xscol:4;
1746		uint64_t xsdef:4;
1747		uint64_t late_col:4;
1748		uint64_t reserved_20_63:44;
1749#endif
1750	} cn38xx;
1751	struct cvmx_gmxx_tx_int_en_cn38xxp2 {
1752#ifdef __BIG_ENDIAN_BITFIELD
1753		uint64_t reserved_16_63:48;
1754		uint64_t xsdef:4;
1755		uint64_t xscol:4;
1756		uint64_t reserved_6_7:2;
1757		uint64_t undflw:4;
1758		uint64_t ncb_nxa:1;
1759		uint64_t pko_nxa:1;
1760#else
1761		uint64_t pko_nxa:1;
1762		uint64_t ncb_nxa:1;
1763		uint64_t undflw:4;
1764		uint64_t reserved_6_7:2;
1765		uint64_t xscol:4;
1766		uint64_t xsdef:4;
1767		uint64_t reserved_16_63:48;
1768#endif
1769	} cn38xxp2;
1770	struct cvmx_gmxx_tx_int_en_cn52xx {
1771#ifdef __BIG_ENDIAN_BITFIELD
1772		uint64_t reserved_20_63:44;
1773		uint64_t late_col:4;
1774		uint64_t xsdef:4;
1775		uint64_t xscol:4;
1776		uint64_t reserved_6_7:2;
1777		uint64_t undflw:4;
1778		uint64_t reserved_1_1:1;
1779		uint64_t pko_nxa:1;
1780#else
1781		uint64_t pko_nxa:1;
1782		uint64_t reserved_1_1:1;
1783		uint64_t undflw:4;
1784		uint64_t reserved_6_7:2;
1785		uint64_t xscol:4;
1786		uint64_t xsdef:4;
1787		uint64_t late_col:4;
1788		uint64_t reserved_20_63:44;
1789#endif
1790	} cn52xx;
1791	struct cvmx_gmxx_tx_int_en_cn63xx {
1792#ifdef __BIG_ENDIAN_BITFIELD
1793		uint64_t reserved_24_63:40;
1794		uint64_t ptp_lost:4;
1795		uint64_t late_col:4;
1796		uint64_t xsdef:4;
1797		uint64_t xscol:4;
1798		uint64_t reserved_6_7:2;
1799		uint64_t undflw:4;
1800		uint64_t reserved_1_1:1;
1801		uint64_t pko_nxa:1;
1802#else
1803		uint64_t pko_nxa:1;
1804		uint64_t reserved_1_1:1;
1805		uint64_t undflw:4;
1806		uint64_t reserved_6_7:2;
1807		uint64_t xscol:4;
1808		uint64_t xsdef:4;
1809		uint64_t late_col:4;
1810		uint64_t ptp_lost:4;
1811		uint64_t reserved_24_63:40;
1812#endif
1813	} cn63xx;
1814	struct cvmx_gmxx_tx_int_en_cn68xx {
1815#ifdef __BIG_ENDIAN_BITFIELD
1816		uint64_t reserved_25_63:39;
1817		uint64_t xchange:1;
1818		uint64_t ptp_lost:4;
1819		uint64_t late_col:4;
1820		uint64_t xsdef:4;
1821		uint64_t xscol:4;
1822		uint64_t reserved_6_7:2;
1823		uint64_t undflw:4;
1824		uint64_t pko_nxp:1;
1825		uint64_t pko_nxa:1;
1826#else
1827		uint64_t pko_nxa:1;
1828		uint64_t pko_nxp:1;
1829		uint64_t undflw:4;
1830		uint64_t reserved_6_7:2;
1831		uint64_t xscol:4;
1832		uint64_t xsdef:4;
1833		uint64_t late_col:4;
1834		uint64_t ptp_lost:4;
1835		uint64_t xchange:1;
1836		uint64_t reserved_25_63:39;
1837#endif
1838	} cn68xx;
1839	struct cvmx_gmxx_tx_int_en_cnf71xx {
1840#ifdef __BIG_ENDIAN_BITFIELD
1841		uint64_t reserved_25_63:39;
1842		uint64_t xchange:1;
1843		uint64_t reserved_22_23:2;
1844		uint64_t ptp_lost:2;
1845		uint64_t reserved_18_19:2;
1846		uint64_t late_col:2;
1847		uint64_t reserved_14_15:2;
1848		uint64_t xsdef:2;
1849		uint64_t reserved_10_11:2;
1850		uint64_t xscol:2;
1851		uint64_t reserved_4_7:4;
1852		uint64_t undflw:2;
1853		uint64_t reserved_1_1:1;
1854		uint64_t pko_nxa:1;
1855#else
1856		uint64_t pko_nxa:1;
1857		uint64_t reserved_1_1:1;
1858		uint64_t undflw:2;
1859		uint64_t reserved_4_7:4;
1860		uint64_t xscol:2;
1861		uint64_t reserved_10_11:2;
1862		uint64_t xsdef:2;
1863		uint64_t reserved_14_15:2;
1864		uint64_t late_col:2;
1865		uint64_t reserved_18_19:2;
1866		uint64_t ptp_lost:2;
1867		uint64_t reserved_22_23:2;
1868		uint64_t xchange:1;
1869		uint64_t reserved_25_63:39;
1870#endif
1871	} cnf71xx;
1872};
1873
1874union cvmx_gmxx_tx_int_reg {
1875	uint64_t u64;
1876	struct cvmx_gmxx_tx_int_reg_s {
1877#ifdef __BIG_ENDIAN_BITFIELD
1878		uint64_t reserved_25_63:39;
1879		uint64_t xchange:1;
1880		uint64_t ptp_lost:4;
1881		uint64_t late_col:4;
1882		uint64_t xsdef:4;
1883		uint64_t xscol:4;
1884		uint64_t reserved_6_7:2;
1885		uint64_t undflw:4;
1886		uint64_t reserved_1_1:1;
1887		uint64_t pko_nxa:1;
1888#else
1889		uint64_t pko_nxa:1;
1890		uint64_t reserved_1_1:1;
1891		uint64_t undflw:4;
1892		uint64_t reserved_6_7:2;
1893		uint64_t xscol:4;
1894		uint64_t xsdef:4;
1895		uint64_t late_col:4;
1896		uint64_t ptp_lost:4;
1897		uint64_t xchange:1;
1898		uint64_t reserved_25_63:39;
1899#endif
1900	} s;
1901	struct cvmx_gmxx_tx_int_reg_cn30xx {
1902#ifdef __BIG_ENDIAN_BITFIELD
1903		uint64_t reserved_19_63:45;
1904		uint64_t late_col:3;
1905		uint64_t reserved_15_15:1;
1906		uint64_t xsdef:3;
1907		uint64_t reserved_11_11:1;
1908		uint64_t xscol:3;
1909		uint64_t reserved_5_7:3;
1910		uint64_t undflw:3;
1911		uint64_t reserved_1_1:1;
1912		uint64_t pko_nxa:1;
1913#else
1914		uint64_t pko_nxa:1;
1915		uint64_t reserved_1_1:1;
1916		uint64_t undflw:3;
1917		uint64_t reserved_5_7:3;
1918		uint64_t xscol:3;
1919		uint64_t reserved_11_11:1;
1920		uint64_t xsdef:3;
1921		uint64_t reserved_15_15:1;
1922		uint64_t late_col:3;
1923		uint64_t reserved_19_63:45;
1924#endif
1925	} cn30xx;
1926	struct cvmx_gmxx_tx_int_reg_cn31xx {
1927#ifdef __BIG_ENDIAN_BITFIELD
1928		uint64_t reserved_15_63:49;
1929		uint64_t xsdef:3;
1930		uint64_t reserved_11_11:1;
1931		uint64_t xscol:3;
1932		uint64_t reserved_5_7:3;
1933		uint64_t undflw:3;
1934		uint64_t reserved_1_1:1;
1935		uint64_t pko_nxa:1;
1936#else
1937		uint64_t pko_nxa:1;
1938		uint64_t reserved_1_1:1;
1939		uint64_t undflw:3;
1940		uint64_t reserved_5_7:3;
1941		uint64_t xscol:3;
1942		uint64_t reserved_11_11:1;
1943		uint64_t xsdef:3;
1944		uint64_t reserved_15_63:49;
1945#endif
1946	} cn31xx;
1947	struct cvmx_gmxx_tx_int_reg_cn38xx {
1948#ifdef __BIG_ENDIAN_BITFIELD
1949		uint64_t reserved_20_63:44;
1950		uint64_t late_col:4;
1951		uint64_t xsdef:4;
1952		uint64_t xscol:4;
1953		uint64_t reserved_6_7:2;
1954		uint64_t undflw:4;
1955		uint64_t ncb_nxa:1;
1956		uint64_t pko_nxa:1;
1957#else
1958		uint64_t pko_nxa:1;
1959		uint64_t ncb_nxa:1;
1960		uint64_t undflw:4;
1961		uint64_t reserved_6_7:2;
1962		uint64_t xscol:4;
1963		uint64_t xsdef:4;
1964		uint64_t late_col:4;
1965		uint64_t reserved_20_63:44;
1966#endif
1967	} cn38xx;
1968	struct cvmx_gmxx_tx_int_reg_cn38xxp2 {
1969#ifdef __BIG_ENDIAN_BITFIELD
1970		uint64_t reserved_16_63:48;
1971		uint64_t xsdef:4;
1972		uint64_t xscol:4;
1973		uint64_t reserved_6_7:2;
1974		uint64_t undflw:4;
1975		uint64_t ncb_nxa:1;
1976		uint64_t pko_nxa:1;
1977#else
1978		uint64_t pko_nxa:1;
1979		uint64_t ncb_nxa:1;
1980		uint64_t undflw:4;
1981		uint64_t reserved_6_7:2;
1982		uint64_t xscol:4;
1983		uint64_t xsdef:4;
1984		uint64_t reserved_16_63:48;
1985#endif
1986	} cn38xxp2;
1987	struct cvmx_gmxx_tx_int_reg_cn52xx {
1988#ifdef __BIG_ENDIAN_BITFIELD
1989		uint64_t reserved_20_63:44;
1990		uint64_t late_col:4;
1991		uint64_t xsdef:4;
1992		uint64_t xscol:4;
1993		uint64_t reserved_6_7:2;
1994		uint64_t undflw:4;
1995		uint64_t reserved_1_1:1;
1996		uint64_t pko_nxa:1;
1997#else
1998		uint64_t pko_nxa:1;
1999		uint64_t reserved_1_1:1;
2000		uint64_t undflw:4;
2001		uint64_t reserved_6_7:2;
2002		uint64_t xscol:4;
2003		uint64_t xsdef:4;
2004		uint64_t late_col:4;
2005		uint64_t reserved_20_63:44;
2006#endif
2007	} cn52xx;
2008	struct cvmx_gmxx_tx_int_reg_cn63xx {
2009#ifdef __BIG_ENDIAN_BITFIELD
2010		uint64_t reserved_24_63:40;
2011		uint64_t ptp_lost:4;
2012		uint64_t late_col:4;
2013		uint64_t xsdef:4;
2014		uint64_t xscol:4;
2015		uint64_t reserved_6_7:2;
2016		uint64_t undflw:4;
2017		uint64_t reserved_1_1:1;
2018		uint64_t pko_nxa:1;
2019#else
2020		uint64_t pko_nxa:1;
2021		uint64_t reserved_1_1:1;
2022		uint64_t undflw:4;
2023		uint64_t reserved_6_7:2;
2024		uint64_t xscol:4;
2025		uint64_t xsdef:4;
2026		uint64_t late_col:4;
2027		uint64_t ptp_lost:4;
2028		uint64_t reserved_24_63:40;
2029#endif
2030	} cn63xx;
2031	struct cvmx_gmxx_tx_int_reg_cn68xx {
2032#ifdef __BIG_ENDIAN_BITFIELD
2033		uint64_t reserved_25_63:39;
2034		uint64_t xchange:1;
2035		uint64_t ptp_lost:4;
2036		uint64_t late_col:4;
2037		uint64_t xsdef:4;
2038		uint64_t xscol:4;
2039		uint64_t reserved_6_7:2;
2040		uint64_t undflw:4;
2041		uint64_t pko_nxp:1;
2042		uint64_t pko_nxa:1;
2043#else
2044		uint64_t pko_nxa:1;
2045		uint64_t pko_nxp:1;
2046		uint64_t undflw:4;
2047		uint64_t reserved_6_7:2;
2048		uint64_t xscol:4;
2049		uint64_t xsdef:4;
2050		uint64_t late_col:4;
2051		uint64_t ptp_lost:4;
2052		uint64_t xchange:1;
2053		uint64_t reserved_25_63:39;
2054#endif
2055	} cn68xx;
2056	struct cvmx_gmxx_tx_int_reg_cnf71xx {
2057#ifdef __BIG_ENDIAN_BITFIELD
2058		uint64_t reserved_25_63:39;
2059		uint64_t xchange:1;
2060		uint64_t reserved_22_23:2;
2061		uint64_t ptp_lost:2;
2062		uint64_t reserved_18_19:2;
2063		uint64_t late_col:2;
2064		uint64_t reserved_14_15:2;
2065		uint64_t xsdef:2;
2066		uint64_t reserved_10_11:2;
2067		uint64_t xscol:2;
2068		uint64_t reserved_4_7:4;
2069		uint64_t undflw:2;
2070		uint64_t reserved_1_1:1;
2071		uint64_t pko_nxa:1;
2072#else
2073		uint64_t pko_nxa:1;
2074		uint64_t reserved_1_1:1;
2075		uint64_t undflw:2;
2076		uint64_t reserved_4_7:4;
2077		uint64_t xscol:2;
2078		uint64_t reserved_10_11:2;
2079		uint64_t xsdef:2;
2080		uint64_t reserved_14_15:2;
2081		uint64_t late_col:2;
2082		uint64_t reserved_18_19:2;
2083		uint64_t ptp_lost:2;
2084		uint64_t reserved_22_23:2;
2085		uint64_t xchange:1;
2086		uint64_t reserved_25_63:39;
2087#endif
2088	} cnf71xx;
2089};
2090
2091union cvmx_gmxx_tx_ovr_bp {
2092	uint64_t u64;
2093	struct cvmx_gmxx_tx_ovr_bp_s {
2094#ifdef __BIG_ENDIAN_BITFIELD
2095		uint64_t reserved_48_63:16;
2096		uint64_t tx_prt_bp:16;
2097		uint64_t reserved_12_31:20;
2098		uint64_t en:4;
2099		uint64_t bp:4;
2100		uint64_t ign_full:4;
2101#else
2102		uint64_t ign_full:4;
2103		uint64_t bp:4;
2104		uint64_t en:4;
2105		uint64_t reserved_12_31:20;
2106		uint64_t tx_prt_bp:16;
2107		uint64_t reserved_48_63:16;
2108#endif
2109	} s;
2110	struct cvmx_gmxx_tx_ovr_bp_cn30xx {
2111#ifdef __BIG_ENDIAN_BITFIELD
2112		uint64_t reserved_11_63:53;
2113		uint64_t en:3;
2114		uint64_t reserved_7_7:1;
2115		uint64_t bp:3;
2116		uint64_t reserved_3_3:1;
2117		uint64_t ign_full:3;
2118#else
2119		uint64_t ign_full:3;
2120		uint64_t reserved_3_3:1;
2121		uint64_t bp:3;
2122		uint64_t reserved_7_7:1;
2123		uint64_t en:3;
2124		uint64_t reserved_11_63:53;
2125#endif
2126	} cn30xx;
2127	struct cvmx_gmxx_tx_ovr_bp_cn38xx {
2128#ifdef __BIG_ENDIAN_BITFIELD
2129		uint64_t reserved_12_63:52;
2130		uint64_t en:4;
2131		uint64_t bp:4;
2132		uint64_t ign_full:4;
2133#else
2134		uint64_t ign_full:4;
2135		uint64_t bp:4;
2136		uint64_t en:4;
2137		uint64_t reserved_12_63:52;
2138#endif
2139	} cn38xx;
2140	struct cvmx_gmxx_tx_ovr_bp_cnf71xx {
2141#ifdef __BIG_ENDIAN_BITFIELD
2142		uint64_t reserved_48_63:16;
2143		uint64_t tx_prt_bp:16;
2144		uint64_t reserved_10_31:22;
2145		uint64_t en:2;
2146		uint64_t reserved_6_7:2;
2147		uint64_t bp:2;
2148		uint64_t reserved_2_3:2;
2149		uint64_t ign_full:2;
2150#else
2151		uint64_t ign_full:2;
2152		uint64_t reserved_2_3:2;
2153		uint64_t bp:2;
2154		uint64_t reserved_6_7:2;
2155		uint64_t en:2;
2156		uint64_t reserved_10_31:22;
2157		uint64_t tx_prt_bp:16;
2158		uint64_t reserved_48_63:16;
2159#endif
2160	} cnf71xx;
2161};
2162
2163union cvmx_gmxx_tx_prts {
2164	uint64_t u64;
2165	struct cvmx_gmxx_tx_prts_s {
2166#ifdef __BIG_ENDIAN_BITFIELD
2167		uint64_t reserved_5_63:59;
2168		uint64_t prts:5;
2169#else
2170		uint64_t prts:5;
2171		uint64_t reserved_5_63:59;
2172#endif
2173	} s;
2174};
2175
2176union cvmx_gmxx_tx_spi_ctl {
2177	uint64_t u64;
2178	struct cvmx_gmxx_tx_spi_ctl_s {
2179#ifdef __BIG_ENDIAN_BITFIELD
2180		uint64_t reserved_2_63:62;
2181		uint64_t tpa_clr:1;
2182		uint64_t cont_pkt:1;
2183#else
2184		uint64_t cont_pkt:1;
2185		uint64_t tpa_clr:1;
2186		uint64_t reserved_2_63:62;
2187#endif
2188	} s;
2189};
2190
2191union cvmx_gmxx_tx_spi_max {
2192	uint64_t u64;
2193	struct cvmx_gmxx_tx_spi_max_s {
2194#ifdef __BIG_ENDIAN_BITFIELD
2195		uint64_t reserved_23_63:41;
2196		uint64_t slice:7;
2197		uint64_t max2:8;
2198		uint64_t max1:8;
2199#else
2200		uint64_t max1:8;
2201		uint64_t max2:8;
2202		uint64_t slice:7;
2203		uint64_t reserved_23_63:41;
2204#endif
2205	} s;
2206	struct cvmx_gmxx_tx_spi_max_cn38xx {
2207#ifdef __BIG_ENDIAN_BITFIELD
2208		uint64_t reserved_16_63:48;
2209		uint64_t max2:8;
2210		uint64_t max1:8;
2211#else
2212		uint64_t max1:8;
2213		uint64_t max2:8;
2214		uint64_t reserved_16_63:48;
2215#endif
2216	} cn38xx;
2217};
2218
2219union cvmx_gmxx_tx_spi_thresh {
2220	uint64_t u64;
2221	struct cvmx_gmxx_tx_spi_thresh_s {
2222#ifdef __BIG_ENDIAN_BITFIELD
2223		uint64_t reserved_6_63:58;
2224		uint64_t thresh:6;
2225#else
2226		uint64_t thresh:6;
2227		uint64_t reserved_6_63:58;
2228#endif
2229	} s;
2230};
2231
2232union cvmx_gmxx_tx_xaui_ctl {
2233	uint64_t u64;
2234	struct cvmx_gmxx_tx_xaui_ctl_s {
2235#ifdef __BIG_ENDIAN_BITFIELD
2236		uint64_t reserved_11_63:53;
2237		uint64_t hg_pause_hgi:2;
2238		uint64_t hg_en:1;
2239		uint64_t reserved_7_7:1;
2240		uint64_t ls_byp:1;
2241		uint64_t ls:2;
2242		uint64_t reserved_2_3:2;
2243		uint64_t uni_en:1;
2244		uint64_t dic_en:1;
2245#else
2246		uint64_t dic_en:1;
2247		uint64_t uni_en:1;
2248		uint64_t reserved_2_3:2;
2249		uint64_t ls:2;
2250		uint64_t ls_byp:1;
2251		uint64_t reserved_7_7:1;
2252		uint64_t hg_en:1;
2253		uint64_t hg_pause_hgi:2;
2254		uint64_t reserved_11_63:53;
2255#endif
2256	} s;
2257};
2258
2259#endif
2260