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