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