1/***********************license start***************
2 * Author: Cavium Networks
3 *
4 * Contact: support@caviumnetworks.com
5 * This file is part of the OCTEON SDK
6 *
7 * Copyright (c) 2003-2012 Cavium Networks
8 *
9 * This file is free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License, Version 2, as
11 * published by the Free Software Foundation.
12 *
13 * This file is distributed in the hope that it will be useful, but
14 * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
15 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
16 * NONINFRINGEMENT.  See the GNU General Public License for more
17 * details.
18 *
19 * You should have received a copy of the GNU General Public License
20 * along with this file; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22 * or visit http://www.gnu.org/licenses/.
23 *
24 * This file may also be available under a different license from Cavium.
25 * Contact Cavium Networks for more information
26 ***********************license end**************************************/
27
28#ifndef __CVMX_PCSX_DEFS_H__
29#define __CVMX_PCSX_DEFS_H__
30
31static inline uint64_t CVMX_PCSX_ANX_ADV_REG(unsigned long offset, unsigned long block_id)
32{
33	switch (cvmx_get_octeon_family()) {
34	case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
35		return CVMX_ADD_IO_SEG(0x00011800B0001010ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
36	case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
37	case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
38		return CVMX_ADD_IO_SEG(0x00011800B0001010ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
39	case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
40	case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
41	case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
42		return CVMX_ADD_IO_SEG(0x00011800B0001010ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
43	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
44		return CVMX_ADD_IO_SEG(0x00011800B0001010ull) + ((offset) + (block_id) * 0x4000ull) * 1024;
45	}
46	return CVMX_ADD_IO_SEG(0x00011800B0001010ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
47}
48
49static inline uint64_t CVMX_PCSX_ANX_EXT_ST_REG(unsigned long offset, unsigned long block_id)
50{
51	switch (cvmx_get_octeon_family()) {
52	case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
53		return CVMX_ADD_IO_SEG(0x00011800B0001028ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
54	case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
55	case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
56		return CVMX_ADD_IO_SEG(0x00011800B0001028ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
57	case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
58	case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
59	case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
60		return CVMX_ADD_IO_SEG(0x00011800B0001028ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
61	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
62		return CVMX_ADD_IO_SEG(0x00011800B0001028ull) + ((offset) + (block_id) * 0x4000ull) * 1024;
63	}
64	return CVMX_ADD_IO_SEG(0x00011800B0001028ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
65}
66
67static inline uint64_t CVMX_PCSX_ANX_LP_ABIL_REG(unsigned long offset, unsigned long block_id)
68{
69	switch (cvmx_get_octeon_family()) {
70	case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
71		return CVMX_ADD_IO_SEG(0x00011800B0001018ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
72	case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
73	case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
74		return CVMX_ADD_IO_SEG(0x00011800B0001018ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
75	case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
76	case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
77	case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
78		return CVMX_ADD_IO_SEG(0x00011800B0001018ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
79	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
80		return CVMX_ADD_IO_SEG(0x00011800B0001018ull) + ((offset) + (block_id) * 0x4000ull) * 1024;
81	}
82	return CVMX_ADD_IO_SEG(0x00011800B0001018ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
83}
84
85static inline uint64_t CVMX_PCSX_ANX_RESULTS_REG(unsigned long offset, unsigned long block_id)
86{
87	switch (cvmx_get_octeon_family()) {
88	case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
89		return CVMX_ADD_IO_SEG(0x00011800B0001020ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
90	case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
91	case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
92		return CVMX_ADD_IO_SEG(0x00011800B0001020ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
93	case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
94	case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
95	case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
96		return CVMX_ADD_IO_SEG(0x00011800B0001020ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
97	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
98		return CVMX_ADD_IO_SEG(0x00011800B0001020ull) + ((offset) + (block_id) * 0x4000ull) * 1024;
99	}
100	return CVMX_ADD_IO_SEG(0x00011800B0001020ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
101}
102
103static inline uint64_t CVMX_PCSX_INTX_EN_REG(unsigned long offset, unsigned long block_id)
104{
105	switch (cvmx_get_octeon_family()) {
106	case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
107		return CVMX_ADD_IO_SEG(0x00011800B0001088ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
108	case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
109	case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
110		return CVMX_ADD_IO_SEG(0x00011800B0001088ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
111	case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
112	case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
113	case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
114		return CVMX_ADD_IO_SEG(0x00011800B0001088ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
115	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
116		return CVMX_ADD_IO_SEG(0x00011800B0001088ull) + ((offset) + (block_id) * 0x4000ull) * 1024;
117	}
118	return CVMX_ADD_IO_SEG(0x00011800B0001088ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
119}
120
121static inline uint64_t CVMX_PCSX_INTX_REG(unsigned long offset, unsigned long block_id)
122{
123	switch (cvmx_get_octeon_family()) {
124	case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
125		return CVMX_ADD_IO_SEG(0x00011800B0001080ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
126	case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
127	case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
128		return CVMX_ADD_IO_SEG(0x00011800B0001080ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
129	case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
130	case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
131	case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
132		return CVMX_ADD_IO_SEG(0x00011800B0001080ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
133	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
134		return CVMX_ADD_IO_SEG(0x00011800B0001080ull) + ((offset) + (block_id) * 0x4000ull) * 1024;
135	}
136	return CVMX_ADD_IO_SEG(0x00011800B0001080ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
137}
138
139static inline uint64_t CVMX_PCSX_LINKX_TIMER_COUNT_REG(unsigned long offset, unsigned long block_id)
140{
141	switch (cvmx_get_octeon_family()) {
142	case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
143		return CVMX_ADD_IO_SEG(0x00011800B0001040ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
144	case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
145	case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
146		return CVMX_ADD_IO_SEG(0x00011800B0001040ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
147	case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
148	case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
149	case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
150		return CVMX_ADD_IO_SEG(0x00011800B0001040ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
151	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
152		return CVMX_ADD_IO_SEG(0x00011800B0001040ull) + ((offset) + (block_id) * 0x4000ull) * 1024;
153	}
154	return CVMX_ADD_IO_SEG(0x00011800B0001040ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
155}
156
157static inline uint64_t CVMX_PCSX_LOG_ANLX_REG(unsigned long offset, unsigned long block_id)
158{
159	switch (cvmx_get_octeon_family()) {
160	case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
161		return CVMX_ADD_IO_SEG(0x00011800B0001090ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
162	case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
163	case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
164		return CVMX_ADD_IO_SEG(0x00011800B0001090ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
165	case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
166	case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
167	case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
168		return CVMX_ADD_IO_SEG(0x00011800B0001090ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
169	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
170		return CVMX_ADD_IO_SEG(0x00011800B0001090ull) + ((offset) + (block_id) * 0x4000ull) * 1024;
171	}
172	return CVMX_ADD_IO_SEG(0x00011800B0001090ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
173}
174
175static inline uint64_t CVMX_PCSX_MISCX_CTL_REG(unsigned long offset, unsigned long block_id)
176{
177	switch (cvmx_get_octeon_family()) {
178	case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
179		return CVMX_ADD_IO_SEG(0x00011800B0001078ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
180	case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
181	case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
182		return CVMX_ADD_IO_SEG(0x00011800B0001078ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
183	case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
184	case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
185	case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
186		return CVMX_ADD_IO_SEG(0x00011800B0001078ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
187	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
188		return CVMX_ADD_IO_SEG(0x00011800B0001078ull) + ((offset) + (block_id) * 0x4000ull) * 1024;
189	}
190	return CVMX_ADD_IO_SEG(0x00011800B0001078ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
191}
192
193static inline uint64_t CVMX_PCSX_MRX_CONTROL_REG(unsigned long offset, unsigned long block_id)
194{
195	switch (cvmx_get_octeon_family()) {
196	case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
197		return CVMX_ADD_IO_SEG(0x00011800B0001000ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
198	case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
199	case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
200		return CVMX_ADD_IO_SEG(0x00011800B0001000ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
201	case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
202	case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
203	case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
204		return CVMX_ADD_IO_SEG(0x00011800B0001000ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
205	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
206		return CVMX_ADD_IO_SEG(0x00011800B0001000ull) + ((offset) + (block_id) * 0x4000ull) * 1024;
207	}
208	return CVMX_ADD_IO_SEG(0x00011800B0001000ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
209}
210
211static inline uint64_t CVMX_PCSX_MRX_STATUS_REG(unsigned long offset, unsigned long block_id)
212{
213	switch (cvmx_get_octeon_family()) {
214	case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
215		return CVMX_ADD_IO_SEG(0x00011800B0001008ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
216	case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
217	case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
218		return CVMX_ADD_IO_SEG(0x00011800B0001008ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
219	case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
220	case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
221	case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
222		return CVMX_ADD_IO_SEG(0x00011800B0001008ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
223	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
224		return CVMX_ADD_IO_SEG(0x00011800B0001008ull) + ((offset) + (block_id) * 0x4000ull) * 1024;
225	}
226	return CVMX_ADD_IO_SEG(0x00011800B0001008ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
227}
228
229static inline uint64_t CVMX_PCSX_RXX_STATES_REG(unsigned long offset, unsigned long block_id)
230{
231	switch (cvmx_get_octeon_family()) {
232	case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
233		return CVMX_ADD_IO_SEG(0x00011800B0001058ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
234	case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
235	case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
236		return CVMX_ADD_IO_SEG(0x00011800B0001058ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
237	case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
238	case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
239	case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
240		return CVMX_ADD_IO_SEG(0x00011800B0001058ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
241	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
242		return CVMX_ADD_IO_SEG(0x00011800B0001058ull) + ((offset) + (block_id) * 0x4000ull) * 1024;
243	}
244	return CVMX_ADD_IO_SEG(0x00011800B0001058ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
245}
246
247static inline uint64_t CVMX_PCSX_RXX_SYNC_REG(unsigned long offset, unsigned long block_id)
248{
249	switch (cvmx_get_octeon_family()) {
250	case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
251		return CVMX_ADD_IO_SEG(0x00011800B0001050ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
252	case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
253	case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
254		return CVMX_ADD_IO_SEG(0x00011800B0001050ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
255	case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
256	case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
257	case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
258		return CVMX_ADD_IO_SEG(0x00011800B0001050ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
259	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
260		return CVMX_ADD_IO_SEG(0x00011800B0001050ull) + ((offset) + (block_id) * 0x4000ull) * 1024;
261	}
262	return CVMX_ADD_IO_SEG(0x00011800B0001050ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
263}
264
265static inline uint64_t CVMX_PCSX_SGMX_AN_ADV_REG(unsigned long offset, unsigned long block_id)
266{
267	switch (cvmx_get_octeon_family()) {
268	case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
269		return CVMX_ADD_IO_SEG(0x00011800B0001068ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
270	case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
271	case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
272		return CVMX_ADD_IO_SEG(0x00011800B0001068ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
273	case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
274	case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
275	case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
276		return CVMX_ADD_IO_SEG(0x00011800B0001068ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
277	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
278		return CVMX_ADD_IO_SEG(0x00011800B0001068ull) + ((offset) + (block_id) * 0x4000ull) * 1024;
279	}
280	return CVMX_ADD_IO_SEG(0x00011800B0001068ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
281}
282
283static inline uint64_t CVMX_PCSX_SGMX_LP_ADV_REG(unsigned long offset, unsigned long block_id)
284{
285	switch (cvmx_get_octeon_family()) {
286	case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
287		return CVMX_ADD_IO_SEG(0x00011800B0001070ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
288	case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
289	case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
290		return CVMX_ADD_IO_SEG(0x00011800B0001070ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
291	case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
292	case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
293	case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
294		return CVMX_ADD_IO_SEG(0x00011800B0001070ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
295	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
296		return CVMX_ADD_IO_SEG(0x00011800B0001070ull) + ((offset) + (block_id) * 0x4000ull) * 1024;
297	}
298	return CVMX_ADD_IO_SEG(0x00011800B0001070ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
299}
300
301static inline uint64_t CVMX_PCSX_TXX_STATES_REG(unsigned long offset, unsigned long block_id)
302{
303	switch (cvmx_get_octeon_family()) {
304	case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
305		return CVMX_ADD_IO_SEG(0x00011800B0001060ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
306	case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
307	case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
308		return CVMX_ADD_IO_SEG(0x00011800B0001060ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
309	case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
310	case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
311	case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
312		return CVMX_ADD_IO_SEG(0x00011800B0001060ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
313	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
314		return CVMX_ADD_IO_SEG(0x00011800B0001060ull) + ((offset) + (block_id) * 0x4000ull) * 1024;
315	}
316	return CVMX_ADD_IO_SEG(0x00011800B0001060ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
317}
318
319static inline uint64_t CVMX_PCSX_TX_RXX_POLARITY_REG(unsigned long offset, unsigned long block_id)
320{
321	switch (cvmx_get_octeon_family()) {
322	case OCTEON_CNF71XX & OCTEON_FAMILY_MASK:
323		return CVMX_ADD_IO_SEG(0x00011800B0001048ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
324	case OCTEON_CN63XX & OCTEON_FAMILY_MASK:
325	case OCTEON_CN52XX & OCTEON_FAMILY_MASK:
326		return CVMX_ADD_IO_SEG(0x00011800B0001048ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
327	case OCTEON_CN56XX & OCTEON_FAMILY_MASK:
328	case OCTEON_CN66XX & OCTEON_FAMILY_MASK:
329	case OCTEON_CN61XX & OCTEON_FAMILY_MASK:
330		return CVMX_ADD_IO_SEG(0x00011800B0001048ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
331	case OCTEON_CN68XX & OCTEON_FAMILY_MASK:
332		return CVMX_ADD_IO_SEG(0x00011800B0001048ull) + ((offset) + (block_id) * 0x4000ull) * 1024;
333	}
334	return CVMX_ADD_IO_SEG(0x00011800B0001048ull) + ((offset) + (block_id) * 0x20000ull) * 1024;
335}
336
337union cvmx_pcsx_anx_adv_reg {
338	uint64_t u64;
339	struct cvmx_pcsx_anx_adv_reg_s {
340#ifdef __BIG_ENDIAN_BITFIELD
341		uint64_t reserved_16_63:48;
342		uint64_t np:1;
343		uint64_t reserved_14_14:1;
344		uint64_t rem_flt:2;
345		uint64_t reserved_9_11:3;
346		uint64_t pause:2;
347		uint64_t hfd:1;
348		uint64_t fd:1;
349		uint64_t reserved_0_4:5;
350#else
351		uint64_t reserved_0_4:5;
352		uint64_t fd:1;
353		uint64_t hfd:1;
354		uint64_t pause:2;
355		uint64_t reserved_9_11:3;
356		uint64_t rem_flt:2;
357		uint64_t reserved_14_14:1;
358		uint64_t np:1;
359		uint64_t reserved_16_63:48;
360#endif
361	} s;
362	struct cvmx_pcsx_anx_adv_reg_s cn52xx;
363	struct cvmx_pcsx_anx_adv_reg_s cn52xxp1;
364	struct cvmx_pcsx_anx_adv_reg_s cn56xx;
365	struct cvmx_pcsx_anx_adv_reg_s cn56xxp1;
366	struct cvmx_pcsx_anx_adv_reg_s cn61xx;
367	struct cvmx_pcsx_anx_adv_reg_s cn63xx;
368	struct cvmx_pcsx_anx_adv_reg_s cn63xxp1;
369	struct cvmx_pcsx_anx_adv_reg_s cn66xx;
370	struct cvmx_pcsx_anx_adv_reg_s cn68xx;
371	struct cvmx_pcsx_anx_adv_reg_s cn68xxp1;
372	struct cvmx_pcsx_anx_adv_reg_s cnf71xx;
373};
374
375union cvmx_pcsx_anx_ext_st_reg {
376	uint64_t u64;
377	struct cvmx_pcsx_anx_ext_st_reg_s {
378#ifdef __BIG_ENDIAN_BITFIELD
379		uint64_t reserved_16_63:48;
380		uint64_t thou_xfd:1;
381		uint64_t thou_xhd:1;
382		uint64_t thou_tfd:1;
383		uint64_t thou_thd:1;
384		uint64_t reserved_0_11:12;
385#else
386		uint64_t reserved_0_11:12;
387		uint64_t thou_thd:1;
388		uint64_t thou_tfd:1;
389		uint64_t thou_xhd:1;
390		uint64_t thou_xfd:1;
391		uint64_t reserved_16_63:48;
392#endif
393	} s;
394	struct cvmx_pcsx_anx_ext_st_reg_s cn52xx;
395	struct cvmx_pcsx_anx_ext_st_reg_s cn52xxp1;
396	struct cvmx_pcsx_anx_ext_st_reg_s cn56xx;
397	struct cvmx_pcsx_anx_ext_st_reg_s cn56xxp1;
398	struct cvmx_pcsx_anx_ext_st_reg_s cn61xx;
399	struct cvmx_pcsx_anx_ext_st_reg_s cn63xx;
400	struct cvmx_pcsx_anx_ext_st_reg_s cn63xxp1;
401	struct cvmx_pcsx_anx_ext_st_reg_s cn66xx;
402	struct cvmx_pcsx_anx_ext_st_reg_s cn68xx;
403	struct cvmx_pcsx_anx_ext_st_reg_s cn68xxp1;
404	struct cvmx_pcsx_anx_ext_st_reg_s cnf71xx;
405};
406
407union cvmx_pcsx_anx_lp_abil_reg {
408	uint64_t u64;
409	struct cvmx_pcsx_anx_lp_abil_reg_s {
410#ifdef __BIG_ENDIAN_BITFIELD
411		uint64_t reserved_16_63:48;
412		uint64_t np:1;
413		uint64_t ack:1;
414		uint64_t rem_flt:2;
415		uint64_t reserved_9_11:3;
416		uint64_t pause:2;
417		uint64_t hfd:1;
418		uint64_t fd:1;
419		uint64_t reserved_0_4:5;
420#else
421		uint64_t reserved_0_4:5;
422		uint64_t fd:1;
423		uint64_t hfd:1;
424		uint64_t pause:2;
425		uint64_t reserved_9_11:3;
426		uint64_t rem_flt:2;
427		uint64_t ack:1;
428		uint64_t np:1;
429		uint64_t reserved_16_63:48;
430#endif
431	} s;
432	struct cvmx_pcsx_anx_lp_abil_reg_s cn52xx;
433	struct cvmx_pcsx_anx_lp_abil_reg_s cn52xxp1;
434	struct cvmx_pcsx_anx_lp_abil_reg_s cn56xx;
435	struct cvmx_pcsx_anx_lp_abil_reg_s cn56xxp1;
436	struct cvmx_pcsx_anx_lp_abil_reg_s cn61xx;
437	struct cvmx_pcsx_anx_lp_abil_reg_s cn63xx;
438	struct cvmx_pcsx_anx_lp_abil_reg_s cn63xxp1;
439	struct cvmx_pcsx_anx_lp_abil_reg_s cn66xx;
440	struct cvmx_pcsx_anx_lp_abil_reg_s cn68xx;
441	struct cvmx_pcsx_anx_lp_abil_reg_s cn68xxp1;
442	struct cvmx_pcsx_anx_lp_abil_reg_s cnf71xx;
443};
444
445union cvmx_pcsx_anx_results_reg {
446	uint64_t u64;
447	struct cvmx_pcsx_anx_results_reg_s {
448#ifdef __BIG_ENDIAN_BITFIELD
449		uint64_t reserved_7_63:57;
450		uint64_t pause:2;
451		uint64_t spd:2;
452		uint64_t an_cpt:1;
453		uint64_t dup:1;
454		uint64_t link_ok:1;
455#else
456		uint64_t link_ok:1;
457		uint64_t dup:1;
458		uint64_t an_cpt:1;
459		uint64_t spd:2;
460		uint64_t pause:2;
461		uint64_t reserved_7_63:57;
462#endif
463	} s;
464	struct cvmx_pcsx_anx_results_reg_s cn52xx;
465	struct cvmx_pcsx_anx_results_reg_s cn52xxp1;
466	struct cvmx_pcsx_anx_results_reg_s cn56xx;
467	struct cvmx_pcsx_anx_results_reg_s cn56xxp1;
468	struct cvmx_pcsx_anx_results_reg_s cn61xx;
469	struct cvmx_pcsx_anx_results_reg_s cn63xx;
470	struct cvmx_pcsx_anx_results_reg_s cn63xxp1;
471	struct cvmx_pcsx_anx_results_reg_s cn66xx;
472	struct cvmx_pcsx_anx_results_reg_s cn68xx;
473	struct cvmx_pcsx_anx_results_reg_s cn68xxp1;
474	struct cvmx_pcsx_anx_results_reg_s cnf71xx;
475};
476
477union cvmx_pcsx_intx_en_reg {
478	uint64_t u64;
479	struct cvmx_pcsx_intx_en_reg_s {
480#ifdef __BIG_ENDIAN_BITFIELD
481		uint64_t reserved_13_63:51;
482		uint64_t dbg_sync_en:1;
483		uint64_t dup:1;
484		uint64_t sync_bad_en:1;
485		uint64_t an_bad_en:1;
486		uint64_t rxlock_en:1;
487		uint64_t rxbad_en:1;
488		uint64_t rxerr_en:1;
489		uint64_t txbad_en:1;
490		uint64_t txfifo_en:1;
491		uint64_t txfifu_en:1;
492		uint64_t an_err_en:1;
493		uint64_t xmit_en:1;
494		uint64_t lnkspd_en:1;
495#else
496		uint64_t lnkspd_en:1;
497		uint64_t xmit_en:1;
498		uint64_t an_err_en:1;
499		uint64_t txfifu_en:1;
500		uint64_t txfifo_en:1;
501		uint64_t txbad_en:1;
502		uint64_t rxerr_en:1;
503		uint64_t rxbad_en:1;
504		uint64_t rxlock_en:1;
505		uint64_t an_bad_en:1;
506		uint64_t sync_bad_en:1;
507		uint64_t dup:1;
508		uint64_t dbg_sync_en:1;
509		uint64_t reserved_13_63:51;
510#endif
511	} s;
512	struct cvmx_pcsx_intx_en_reg_cn52xx {
513#ifdef __BIG_ENDIAN_BITFIELD
514		uint64_t reserved_12_63:52;
515		uint64_t dup:1;
516		uint64_t sync_bad_en:1;
517		uint64_t an_bad_en:1;
518		uint64_t rxlock_en:1;
519		uint64_t rxbad_en:1;
520		uint64_t rxerr_en:1;
521		uint64_t txbad_en:1;
522		uint64_t txfifo_en:1;
523		uint64_t txfifu_en:1;
524		uint64_t an_err_en:1;
525		uint64_t xmit_en:1;
526		uint64_t lnkspd_en:1;
527#else
528		uint64_t lnkspd_en:1;
529		uint64_t xmit_en:1;
530		uint64_t an_err_en:1;
531		uint64_t txfifu_en:1;
532		uint64_t txfifo_en:1;
533		uint64_t txbad_en:1;
534		uint64_t rxerr_en:1;
535		uint64_t rxbad_en:1;
536		uint64_t rxlock_en:1;
537		uint64_t an_bad_en:1;
538		uint64_t sync_bad_en:1;
539		uint64_t dup:1;
540		uint64_t reserved_12_63:52;
541#endif
542	} cn52xx;
543	struct cvmx_pcsx_intx_en_reg_cn52xx cn52xxp1;
544	struct cvmx_pcsx_intx_en_reg_cn52xx cn56xx;
545	struct cvmx_pcsx_intx_en_reg_cn52xx cn56xxp1;
546	struct cvmx_pcsx_intx_en_reg_s cn61xx;
547	struct cvmx_pcsx_intx_en_reg_s cn63xx;
548	struct cvmx_pcsx_intx_en_reg_s cn63xxp1;
549	struct cvmx_pcsx_intx_en_reg_s cn66xx;
550	struct cvmx_pcsx_intx_en_reg_s cn68xx;
551	struct cvmx_pcsx_intx_en_reg_s cn68xxp1;
552	struct cvmx_pcsx_intx_en_reg_s cnf71xx;
553};
554
555union cvmx_pcsx_intx_reg {
556	uint64_t u64;
557	struct cvmx_pcsx_intx_reg_s {
558#ifdef __BIG_ENDIAN_BITFIELD
559		uint64_t reserved_13_63:51;
560		uint64_t dbg_sync:1;
561		uint64_t dup:1;
562		uint64_t sync_bad:1;
563		uint64_t an_bad:1;
564		uint64_t rxlock:1;
565		uint64_t rxbad:1;
566		uint64_t rxerr:1;
567		uint64_t txbad:1;
568		uint64_t txfifo:1;
569		uint64_t txfifu:1;
570		uint64_t an_err:1;
571		uint64_t xmit:1;
572		uint64_t lnkspd:1;
573#else
574		uint64_t lnkspd:1;
575		uint64_t xmit:1;
576		uint64_t an_err:1;
577		uint64_t txfifu:1;
578		uint64_t txfifo:1;
579		uint64_t txbad:1;
580		uint64_t rxerr:1;
581		uint64_t rxbad:1;
582		uint64_t rxlock:1;
583		uint64_t an_bad:1;
584		uint64_t sync_bad:1;
585		uint64_t dup:1;
586		uint64_t dbg_sync:1;
587		uint64_t reserved_13_63:51;
588#endif
589	} s;
590	struct cvmx_pcsx_intx_reg_cn52xx {
591#ifdef __BIG_ENDIAN_BITFIELD
592		uint64_t reserved_12_63:52;
593		uint64_t dup:1;
594		uint64_t sync_bad:1;
595		uint64_t an_bad:1;
596		uint64_t rxlock:1;
597		uint64_t rxbad:1;
598		uint64_t rxerr:1;
599		uint64_t txbad:1;
600		uint64_t txfifo:1;
601		uint64_t txfifu:1;
602		uint64_t an_err:1;
603		uint64_t xmit:1;
604		uint64_t lnkspd:1;
605#else
606		uint64_t lnkspd:1;
607		uint64_t xmit:1;
608		uint64_t an_err:1;
609		uint64_t txfifu:1;
610		uint64_t txfifo:1;
611		uint64_t txbad:1;
612		uint64_t rxerr:1;
613		uint64_t rxbad:1;
614		uint64_t rxlock:1;
615		uint64_t an_bad:1;
616		uint64_t sync_bad:1;
617		uint64_t dup:1;
618		uint64_t reserved_12_63:52;
619#endif
620	} cn52xx;
621	struct cvmx_pcsx_intx_reg_cn52xx cn52xxp1;
622	struct cvmx_pcsx_intx_reg_cn52xx cn56xx;
623	struct cvmx_pcsx_intx_reg_cn52xx cn56xxp1;
624	struct cvmx_pcsx_intx_reg_s cn61xx;
625	struct cvmx_pcsx_intx_reg_s cn63xx;
626	struct cvmx_pcsx_intx_reg_s cn63xxp1;
627	struct cvmx_pcsx_intx_reg_s cn66xx;
628	struct cvmx_pcsx_intx_reg_s cn68xx;
629	struct cvmx_pcsx_intx_reg_s cn68xxp1;
630	struct cvmx_pcsx_intx_reg_s cnf71xx;
631};
632
633union cvmx_pcsx_linkx_timer_count_reg {
634	uint64_t u64;
635	struct cvmx_pcsx_linkx_timer_count_reg_s {
636#ifdef __BIG_ENDIAN_BITFIELD
637		uint64_t reserved_16_63:48;
638		uint64_t count:16;
639#else
640		uint64_t count:16;
641		uint64_t reserved_16_63:48;
642#endif
643	} s;
644	struct cvmx_pcsx_linkx_timer_count_reg_s cn52xx;
645	struct cvmx_pcsx_linkx_timer_count_reg_s cn52xxp1;
646	struct cvmx_pcsx_linkx_timer_count_reg_s cn56xx;
647	struct cvmx_pcsx_linkx_timer_count_reg_s cn56xxp1;
648	struct cvmx_pcsx_linkx_timer_count_reg_s cn61xx;
649	struct cvmx_pcsx_linkx_timer_count_reg_s cn63xx;
650	struct cvmx_pcsx_linkx_timer_count_reg_s cn63xxp1;
651	struct cvmx_pcsx_linkx_timer_count_reg_s cn66xx;
652	struct cvmx_pcsx_linkx_timer_count_reg_s cn68xx;
653	struct cvmx_pcsx_linkx_timer_count_reg_s cn68xxp1;
654	struct cvmx_pcsx_linkx_timer_count_reg_s cnf71xx;
655};
656
657union cvmx_pcsx_log_anlx_reg {
658	uint64_t u64;
659	struct cvmx_pcsx_log_anlx_reg_s {
660#ifdef __BIG_ENDIAN_BITFIELD
661		uint64_t reserved_4_63:60;
662		uint64_t lafifovfl:1;
663		uint64_t la_en:1;
664		uint64_t pkt_sz:2;
665#else
666		uint64_t pkt_sz:2;
667		uint64_t la_en:1;
668		uint64_t lafifovfl:1;
669		uint64_t reserved_4_63:60;
670#endif
671	} s;
672	struct cvmx_pcsx_log_anlx_reg_s cn52xx;
673	struct cvmx_pcsx_log_anlx_reg_s cn52xxp1;
674	struct cvmx_pcsx_log_anlx_reg_s cn56xx;
675	struct cvmx_pcsx_log_anlx_reg_s cn56xxp1;
676	struct cvmx_pcsx_log_anlx_reg_s cn61xx;
677	struct cvmx_pcsx_log_anlx_reg_s cn63xx;
678	struct cvmx_pcsx_log_anlx_reg_s cn63xxp1;
679	struct cvmx_pcsx_log_anlx_reg_s cn66xx;
680	struct cvmx_pcsx_log_anlx_reg_s cn68xx;
681	struct cvmx_pcsx_log_anlx_reg_s cn68xxp1;
682	struct cvmx_pcsx_log_anlx_reg_s cnf71xx;
683};
684
685union cvmx_pcsx_miscx_ctl_reg {
686	uint64_t u64;
687	struct cvmx_pcsx_miscx_ctl_reg_s {
688#ifdef __BIG_ENDIAN_BITFIELD
689		uint64_t reserved_13_63:51;
690		uint64_t sgmii:1;
691		uint64_t gmxeno:1;
692		uint64_t loopbck2:1;
693		uint64_t mac_phy:1;
694		uint64_t mode:1;
695		uint64_t an_ovrd:1;
696		uint64_t samp_pt:7;
697#else
698		uint64_t samp_pt:7;
699		uint64_t an_ovrd:1;
700		uint64_t mode:1;
701		uint64_t mac_phy:1;
702		uint64_t loopbck2:1;
703		uint64_t gmxeno:1;
704		uint64_t sgmii:1;
705		uint64_t reserved_13_63:51;
706#endif
707	} s;
708	struct cvmx_pcsx_miscx_ctl_reg_s cn52xx;
709	struct cvmx_pcsx_miscx_ctl_reg_s cn52xxp1;
710	struct cvmx_pcsx_miscx_ctl_reg_s cn56xx;
711	struct cvmx_pcsx_miscx_ctl_reg_s cn56xxp1;
712	struct cvmx_pcsx_miscx_ctl_reg_s cn61xx;
713	struct cvmx_pcsx_miscx_ctl_reg_s cn63xx;
714	struct cvmx_pcsx_miscx_ctl_reg_s cn63xxp1;
715	struct cvmx_pcsx_miscx_ctl_reg_s cn66xx;
716	struct cvmx_pcsx_miscx_ctl_reg_s cn68xx;
717	struct cvmx_pcsx_miscx_ctl_reg_s cn68xxp1;
718	struct cvmx_pcsx_miscx_ctl_reg_s cnf71xx;
719};
720
721union cvmx_pcsx_mrx_control_reg {
722	uint64_t u64;
723	struct cvmx_pcsx_mrx_control_reg_s {
724#ifdef __BIG_ENDIAN_BITFIELD
725		uint64_t reserved_16_63:48;
726		uint64_t reset:1;
727		uint64_t loopbck1:1;
728		uint64_t spdlsb:1;
729		uint64_t an_en:1;
730		uint64_t pwr_dn:1;
731		uint64_t reserved_10_10:1;
732		uint64_t rst_an:1;
733		uint64_t dup:1;
734		uint64_t coltst:1;
735		uint64_t spdmsb:1;
736		uint64_t uni:1;
737		uint64_t reserved_0_4:5;
738#else
739		uint64_t reserved_0_4:5;
740		uint64_t uni:1;
741		uint64_t spdmsb:1;
742		uint64_t coltst:1;
743		uint64_t dup:1;
744		uint64_t rst_an:1;
745		uint64_t reserved_10_10:1;
746		uint64_t pwr_dn:1;
747		uint64_t an_en:1;
748		uint64_t spdlsb:1;
749		uint64_t loopbck1:1;
750		uint64_t reset:1;
751		uint64_t reserved_16_63:48;
752#endif
753	} s;
754	struct cvmx_pcsx_mrx_control_reg_s cn52xx;
755	struct cvmx_pcsx_mrx_control_reg_s cn52xxp1;
756	struct cvmx_pcsx_mrx_control_reg_s cn56xx;
757	struct cvmx_pcsx_mrx_control_reg_s cn56xxp1;
758	struct cvmx_pcsx_mrx_control_reg_s cn61xx;
759	struct cvmx_pcsx_mrx_control_reg_s cn63xx;
760	struct cvmx_pcsx_mrx_control_reg_s cn63xxp1;
761	struct cvmx_pcsx_mrx_control_reg_s cn66xx;
762	struct cvmx_pcsx_mrx_control_reg_s cn68xx;
763	struct cvmx_pcsx_mrx_control_reg_s cn68xxp1;
764	struct cvmx_pcsx_mrx_control_reg_s cnf71xx;
765};
766
767union cvmx_pcsx_mrx_status_reg {
768	uint64_t u64;
769	struct cvmx_pcsx_mrx_status_reg_s {
770#ifdef __BIG_ENDIAN_BITFIELD
771		uint64_t reserved_16_63:48;
772		uint64_t hun_t4:1;
773		uint64_t hun_xfd:1;
774		uint64_t hun_xhd:1;
775		uint64_t ten_fd:1;
776		uint64_t ten_hd:1;
777		uint64_t hun_t2fd:1;
778		uint64_t hun_t2hd:1;
779		uint64_t ext_st:1;
780		uint64_t reserved_7_7:1;
781		uint64_t prb_sup:1;
782		uint64_t an_cpt:1;
783		uint64_t rm_flt:1;
784		uint64_t an_abil:1;
785		uint64_t lnk_st:1;
786		uint64_t reserved_1_1:1;
787		uint64_t extnd:1;
788#else
789		uint64_t extnd:1;
790		uint64_t reserved_1_1:1;
791		uint64_t lnk_st:1;
792		uint64_t an_abil:1;
793		uint64_t rm_flt:1;
794		uint64_t an_cpt:1;
795		uint64_t prb_sup:1;
796		uint64_t reserved_7_7:1;
797		uint64_t ext_st:1;
798		uint64_t hun_t2hd:1;
799		uint64_t hun_t2fd:1;
800		uint64_t ten_hd:1;
801		uint64_t ten_fd:1;
802		uint64_t hun_xhd:1;
803		uint64_t hun_xfd:1;
804		uint64_t hun_t4:1;
805		uint64_t reserved_16_63:48;
806#endif
807	} s;
808	struct cvmx_pcsx_mrx_status_reg_s cn52xx;
809	struct cvmx_pcsx_mrx_status_reg_s cn52xxp1;
810	struct cvmx_pcsx_mrx_status_reg_s cn56xx;
811	struct cvmx_pcsx_mrx_status_reg_s cn56xxp1;
812	struct cvmx_pcsx_mrx_status_reg_s cn61xx;
813	struct cvmx_pcsx_mrx_status_reg_s cn63xx;
814	struct cvmx_pcsx_mrx_status_reg_s cn63xxp1;
815	struct cvmx_pcsx_mrx_status_reg_s cn66xx;
816	struct cvmx_pcsx_mrx_status_reg_s cn68xx;
817	struct cvmx_pcsx_mrx_status_reg_s cn68xxp1;
818	struct cvmx_pcsx_mrx_status_reg_s cnf71xx;
819};
820
821union cvmx_pcsx_rxx_states_reg {
822	uint64_t u64;
823	struct cvmx_pcsx_rxx_states_reg_s {
824#ifdef __BIG_ENDIAN_BITFIELD
825		uint64_t reserved_16_63:48;
826		uint64_t rx_bad:1;
827		uint64_t rx_st:5;
828		uint64_t sync_bad:1;
829		uint64_t sync:4;
830		uint64_t an_bad:1;
831		uint64_t an_st:4;
832#else
833		uint64_t an_st:4;
834		uint64_t an_bad:1;
835		uint64_t sync:4;
836		uint64_t sync_bad:1;
837		uint64_t rx_st:5;
838		uint64_t rx_bad:1;
839		uint64_t reserved_16_63:48;
840#endif
841	} s;
842	struct cvmx_pcsx_rxx_states_reg_s cn52xx;
843	struct cvmx_pcsx_rxx_states_reg_s cn52xxp1;
844	struct cvmx_pcsx_rxx_states_reg_s cn56xx;
845	struct cvmx_pcsx_rxx_states_reg_s cn56xxp1;
846	struct cvmx_pcsx_rxx_states_reg_s cn61xx;
847	struct cvmx_pcsx_rxx_states_reg_s cn63xx;
848	struct cvmx_pcsx_rxx_states_reg_s cn63xxp1;
849	struct cvmx_pcsx_rxx_states_reg_s cn66xx;
850	struct cvmx_pcsx_rxx_states_reg_s cn68xx;
851	struct cvmx_pcsx_rxx_states_reg_s cn68xxp1;
852	struct cvmx_pcsx_rxx_states_reg_s cnf71xx;
853};
854
855union cvmx_pcsx_rxx_sync_reg {
856	uint64_t u64;
857	struct cvmx_pcsx_rxx_sync_reg_s {
858#ifdef __BIG_ENDIAN_BITFIELD
859		uint64_t reserved_2_63:62;
860		uint64_t sync:1;
861		uint64_t bit_lock:1;
862#else
863		uint64_t bit_lock:1;
864		uint64_t sync:1;
865		uint64_t reserved_2_63:62;
866#endif
867	} s;
868	struct cvmx_pcsx_rxx_sync_reg_s cn52xx;
869	struct cvmx_pcsx_rxx_sync_reg_s cn52xxp1;
870	struct cvmx_pcsx_rxx_sync_reg_s cn56xx;
871	struct cvmx_pcsx_rxx_sync_reg_s cn56xxp1;
872	struct cvmx_pcsx_rxx_sync_reg_s cn61xx;
873	struct cvmx_pcsx_rxx_sync_reg_s cn63xx;
874	struct cvmx_pcsx_rxx_sync_reg_s cn63xxp1;
875	struct cvmx_pcsx_rxx_sync_reg_s cn66xx;
876	struct cvmx_pcsx_rxx_sync_reg_s cn68xx;
877	struct cvmx_pcsx_rxx_sync_reg_s cn68xxp1;
878	struct cvmx_pcsx_rxx_sync_reg_s cnf71xx;
879};
880
881union cvmx_pcsx_sgmx_an_adv_reg {
882	uint64_t u64;
883	struct cvmx_pcsx_sgmx_an_adv_reg_s {
884#ifdef __BIG_ENDIAN_BITFIELD
885		uint64_t reserved_16_63:48;
886		uint64_t link:1;
887		uint64_t ack:1;
888		uint64_t reserved_13_13:1;
889		uint64_t dup:1;
890		uint64_t speed:2;
891		uint64_t reserved_1_9:9;
892		uint64_t one:1;
893#else
894		uint64_t one:1;
895		uint64_t reserved_1_9:9;
896		uint64_t speed:2;
897		uint64_t dup:1;
898		uint64_t reserved_13_13:1;
899		uint64_t ack:1;
900		uint64_t link:1;
901		uint64_t reserved_16_63:48;
902#endif
903	} s;
904	struct cvmx_pcsx_sgmx_an_adv_reg_s cn52xx;
905	struct cvmx_pcsx_sgmx_an_adv_reg_s cn52xxp1;
906	struct cvmx_pcsx_sgmx_an_adv_reg_s cn56xx;
907	struct cvmx_pcsx_sgmx_an_adv_reg_s cn56xxp1;
908	struct cvmx_pcsx_sgmx_an_adv_reg_s cn61xx;
909	struct cvmx_pcsx_sgmx_an_adv_reg_s cn63xx;
910	struct cvmx_pcsx_sgmx_an_adv_reg_s cn63xxp1;
911	struct cvmx_pcsx_sgmx_an_adv_reg_s cn66xx;
912	struct cvmx_pcsx_sgmx_an_adv_reg_s cn68xx;
913	struct cvmx_pcsx_sgmx_an_adv_reg_s cn68xxp1;
914	struct cvmx_pcsx_sgmx_an_adv_reg_s cnf71xx;
915};
916
917union cvmx_pcsx_sgmx_lp_adv_reg {
918	uint64_t u64;
919	struct cvmx_pcsx_sgmx_lp_adv_reg_s {
920#ifdef __BIG_ENDIAN_BITFIELD
921		uint64_t reserved_16_63:48;
922		uint64_t link:1;
923		uint64_t reserved_13_14:2;
924		uint64_t dup:1;
925		uint64_t speed:2;
926		uint64_t reserved_1_9:9;
927		uint64_t one:1;
928#else
929		uint64_t one:1;
930		uint64_t reserved_1_9:9;
931		uint64_t speed:2;
932		uint64_t dup:1;
933		uint64_t reserved_13_14:2;
934		uint64_t link:1;
935		uint64_t reserved_16_63:48;
936#endif
937	} s;
938	struct cvmx_pcsx_sgmx_lp_adv_reg_s cn52xx;
939	struct cvmx_pcsx_sgmx_lp_adv_reg_s cn52xxp1;
940	struct cvmx_pcsx_sgmx_lp_adv_reg_s cn56xx;
941	struct cvmx_pcsx_sgmx_lp_adv_reg_s cn56xxp1;
942	struct cvmx_pcsx_sgmx_lp_adv_reg_s cn61xx;
943	struct cvmx_pcsx_sgmx_lp_adv_reg_s cn63xx;
944	struct cvmx_pcsx_sgmx_lp_adv_reg_s cn63xxp1;
945	struct cvmx_pcsx_sgmx_lp_adv_reg_s cn66xx;
946	struct cvmx_pcsx_sgmx_lp_adv_reg_s cn68xx;
947	struct cvmx_pcsx_sgmx_lp_adv_reg_s cn68xxp1;
948	struct cvmx_pcsx_sgmx_lp_adv_reg_s cnf71xx;
949};
950
951union cvmx_pcsx_txx_states_reg {
952	uint64_t u64;
953	struct cvmx_pcsx_txx_states_reg_s {
954#ifdef __BIG_ENDIAN_BITFIELD
955		uint64_t reserved_7_63:57;
956		uint64_t xmit:2;
957		uint64_t tx_bad:1;
958		uint64_t ord_st:4;
959#else
960		uint64_t ord_st:4;
961		uint64_t tx_bad:1;
962		uint64_t xmit:2;
963		uint64_t reserved_7_63:57;
964#endif
965	} s;
966	struct cvmx_pcsx_txx_states_reg_s cn52xx;
967	struct cvmx_pcsx_txx_states_reg_s cn52xxp1;
968	struct cvmx_pcsx_txx_states_reg_s cn56xx;
969	struct cvmx_pcsx_txx_states_reg_s cn56xxp1;
970	struct cvmx_pcsx_txx_states_reg_s cn61xx;
971	struct cvmx_pcsx_txx_states_reg_s cn63xx;
972	struct cvmx_pcsx_txx_states_reg_s cn63xxp1;
973	struct cvmx_pcsx_txx_states_reg_s cn66xx;
974	struct cvmx_pcsx_txx_states_reg_s cn68xx;
975	struct cvmx_pcsx_txx_states_reg_s cn68xxp1;
976	struct cvmx_pcsx_txx_states_reg_s cnf71xx;
977};
978
979union cvmx_pcsx_tx_rxx_polarity_reg {
980	uint64_t u64;
981	struct cvmx_pcsx_tx_rxx_polarity_reg_s {
982#ifdef __BIG_ENDIAN_BITFIELD
983		uint64_t reserved_4_63:60;
984		uint64_t rxovrd:1;
985		uint64_t autorxpl:1;
986		uint64_t rxplrt:1;
987		uint64_t txplrt:1;
988#else
989		uint64_t txplrt:1;
990		uint64_t rxplrt:1;
991		uint64_t autorxpl:1;
992		uint64_t rxovrd:1;
993		uint64_t reserved_4_63:60;
994#endif
995	} s;
996	struct cvmx_pcsx_tx_rxx_polarity_reg_s cn52xx;
997	struct cvmx_pcsx_tx_rxx_polarity_reg_s cn52xxp1;
998	struct cvmx_pcsx_tx_rxx_polarity_reg_s cn56xx;
999	struct cvmx_pcsx_tx_rxx_polarity_reg_s cn56xxp1;
1000	struct cvmx_pcsx_tx_rxx_polarity_reg_s cn61xx;
1001	struct cvmx_pcsx_tx_rxx_polarity_reg_s cn63xx;
1002	struct cvmx_pcsx_tx_rxx_polarity_reg_s cn63xxp1;
1003	struct cvmx_pcsx_tx_rxx_polarity_reg_s cn66xx;
1004	struct cvmx_pcsx_tx_rxx_polarity_reg_s cn68xx;
1005	struct cvmx_pcsx_tx_rxx_polarity_reg_s cn68xxp1;
1006	struct cvmx_pcsx_tx_rxx_polarity_reg_s cnf71xx;
1007};
1008
1009#endif
1010