1af866496SDavid Daney /***********************license start***************
2af866496SDavid Daney  * Author: Cavium Networks
3af866496SDavid Daney  *
4af866496SDavid Daney  * Contact: support@caviumnetworks.com
5af866496SDavid Daney  * This file is part of the OCTEON SDK
6af866496SDavid Daney  *
7*840267e4SSteven J. Hill  * Copyright (C) 2003-2018 Cavium, Inc.
8af866496SDavid Daney  *
9af866496SDavid Daney  * This file is free software; you can redistribute it and/or modify
10af866496SDavid Daney  * it under the terms of the GNU General Public License, Version 2, as
11af866496SDavid Daney  * published by the Free Software Foundation.
12af866496SDavid Daney  *
13af866496SDavid Daney  * This file is distributed in the hope that it will be useful, but
14af866496SDavid Daney  * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
15af866496SDavid Daney  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
16af866496SDavid Daney  * NONINFRINGEMENT.  See the GNU General Public License for more
17af866496SDavid Daney  * details.
18af866496SDavid Daney  *
19af866496SDavid Daney  * You should have received a copy of the GNU General Public License
20af866496SDavid Daney  * along with this file; if not, write to the Free Software
21af866496SDavid Daney  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22af866496SDavid Daney  * or visit http://www.gnu.org/licenses/.
23af866496SDavid Daney  *
24af866496SDavid Daney  * This file may also be available under a different license from Cavium.
25af866496SDavid Daney  * Contact Cavium Networks for more information
26af866496SDavid Daney  ***********************license end**************************************/
27af866496SDavid Daney 
28af866496SDavid Daney #ifndef __CVMX_PCSX_DEFS_H__
29af866496SDavid Daney #define __CVMX_PCSX_DEFS_H__
30af866496SDavid Daney 
CVMX_PCSX_ANX_ADV_REG(unsigned long offset,unsigned long block_id)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 
CVMX_PCSX_ANX_EXT_ST_REG(unsigned long offset,unsigned long block_id)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 
CVMX_PCSX_ANX_LP_ABIL_REG(unsigned long offset,unsigned long block_id)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 
CVMX_PCSX_ANX_RESULTS_REG(unsigned long offset,unsigned long block_id)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 
CVMX_PCSX_INTX_EN_REG(unsigned long offset,unsigned long block_id)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 
CVMX_PCSX_INTX_REG(unsigned long offset,unsigned long block_id)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 
CVMX_PCSX_LINKX_TIMER_COUNT_REG(unsigned long offset,unsigned long block_id)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 
CVMX_PCSX_LOG_ANLX_REG(unsigned long offset,unsigned long block_id)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 
CVMX_PCSX_MISCX_CTL_REG(unsigned long offset,unsigned long block_id)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 
CVMX_PCSX_MRX_CONTROL_REG(unsigned long offset,unsigned long block_id)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 
CVMX_PCSX_MRX_STATUS_REG(unsigned long offset,unsigned long block_id)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 
CVMX_PCSX_RXX_STATES_REG(unsigned long offset,unsigned long block_id)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 
CVMX_PCSX_RXX_SYNC_REG(unsigned long offset,unsigned long block_id)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 
CVMX_PCSX_SGMX_AN_ADV_REG(unsigned long offset,unsigned long block_id)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 
CVMX_PCSX_SGMX_LP_ADV_REG(unsigned long offset,unsigned long block_id)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 
CVMX_PCSX_TXX_STATES_REG(unsigned long offset,unsigned long block_id)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 
CVMX_PCSX_TX_RXX_POLARITY_REG(unsigned long offset,unsigned long block_id)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 
337*840267e4SSteven J. Hill void __cvmx_interrupt_pcsx_intx_en_reg_enable(int index, int block);
338*840267e4SSteven 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 };
365af866496SDavid Daney 
366af866496SDavid Daney union cvmx_pcsx_anx_ext_st_reg {
367af866496SDavid Daney 	uint64_t u64;
368af866496SDavid Daney 	struct cvmx_pcsx_anx_ext_st_reg_s {
369c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
370af866496SDavid Daney 		uint64_t reserved_16_63:48;
371af866496SDavid Daney 		uint64_t thou_xfd:1;
372af866496SDavid Daney 		uint64_t thou_xhd:1;
373af866496SDavid Daney 		uint64_t thou_tfd:1;
374af866496SDavid Daney 		uint64_t thou_thd:1;
375af866496SDavid Daney 		uint64_t reserved_0_11:12;
376c5aa59e8SDavid Daney #else
377c5aa59e8SDavid Daney 		uint64_t reserved_0_11:12;
378c5aa59e8SDavid Daney 		uint64_t thou_thd:1;
379c5aa59e8SDavid Daney 		uint64_t thou_tfd:1;
380c5aa59e8SDavid Daney 		uint64_t thou_xhd:1;
381c5aa59e8SDavid Daney 		uint64_t thou_xfd:1;
382c5aa59e8SDavid Daney 		uint64_t reserved_16_63:48;
383c5aa59e8SDavid Daney #endif
384af866496SDavid Daney 	} s;
385af866496SDavid Daney };
386af866496SDavid Daney 
387af866496SDavid Daney union cvmx_pcsx_anx_lp_abil_reg {
388af866496SDavid Daney 	uint64_t u64;
389af866496SDavid Daney 	struct cvmx_pcsx_anx_lp_abil_reg_s {
390c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
391af866496SDavid Daney 		uint64_t reserved_16_63:48;
392af866496SDavid Daney 		uint64_t np:1;
393af866496SDavid Daney 		uint64_t ack:1;
394af866496SDavid Daney 		uint64_t rem_flt:2;
395af866496SDavid Daney 		uint64_t reserved_9_11:3;
396af866496SDavid Daney 		uint64_t pause:2;
397af866496SDavid Daney 		uint64_t hfd:1;
398af866496SDavid Daney 		uint64_t fd:1;
399af866496SDavid Daney 		uint64_t reserved_0_4:5;
400c5aa59e8SDavid Daney #else
401c5aa59e8SDavid Daney 		uint64_t reserved_0_4:5;
402c5aa59e8SDavid Daney 		uint64_t fd:1;
403c5aa59e8SDavid Daney 		uint64_t hfd:1;
404c5aa59e8SDavid Daney 		uint64_t pause:2;
405c5aa59e8SDavid Daney 		uint64_t reserved_9_11:3;
406c5aa59e8SDavid Daney 		uint64_t rem_flt:2;
407c5aa59e8SDavid Daney 		uint64_t ack:1;
408c5aa59e8SDavid Daney 		uint64_t np:1;
409c5aa59e8SDavid Daney 		uint64_t reserved_16_63:48;
410c5aa59e8SDavid Daney #endif
411af866496SDavid Daney 	} s;
412af866496SDavid Daney };
413af866496SDavid Daney 
414af866496SDavid Daney union cvmx_pcsx_anx_results_reg {
415af866496SDavid Daney 	uint64_t u64;
416af866496SDavid Daney 	struct cvmx_pcsx_anx_results_reg_s {
417c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
418af866496SDavid Daney 		uint64_t reserved_7_63:57;
419af866496SDavid Daney 		uint64_t pause:2;
420af866496SDavid Daney 		uint64_t spd:2;
421af866496SDavid Daney 		uint64_t an_cpt:1;
422af866496SDavid Daney 		uint64_t dup:1;
423af866496SDavid Daney 		uint64_t link_ok:1;
424c5aa59e8SDavid Daney #else
425c5aa59e8SDavid Daney 		uint64_t link_ok:1;
426c5aa59e8SDavid Daney 		uint64_t dup:1;
427c5aa59e8SDavid Daney 		uint64_t an_cpt:1;
428c5aa59e8SDavid Daney 		uint64_t spd:2;
429c5aa59e8SDavid Daney 		uint64_t pause:2;
430c5aa59e8SDavid Daney 		uint64_t reserved_7_63:57;
431c5aa59e8SDavid Daney #endif
432af866496SDavid Daney 	} s;
433af866496SDavid Daney };
434af866496SDavid Daney 
435af866496SDavid Daney union cvmx_pcsx_intx_en_reg {
436af866496SDavid Daney 	uint64_t u64;
437af866496SDavid Daney 	struct cvmx_pcsx_intx_en_reg_s {
438c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
439c5aa59e8SDavid Daney 		uint64_t reserved_13_63:51;
440c5aa59e8SDavid Daney 		uint64_t dbg_sync_en:1;
441c5aa59e8SDavid Daney 		uint64_t dup:1;
442c5aa59e8SDavid Daney 		uint64_t sync_bad_en:1;
443c5aa59e8SDavid Daney 		uint64_t an_bad_en:1;
444c5aa59e8SDavid Daney 		uint64_t rxlock_en:1;
445c5aa59e8SDavid Daney 		uint64_t rxbad_en:1;
446c5aa59e8SDavid Daney 		uint64_t rxerr_en:1;
447c5aa59e8SDavid Daney 		uint64_t txbad_en:1;
448c5aa59e8SDavid Daney 		uint64_t txfifo_en:1;
449c5aa59e8SDavid Daney 		uint64_t txfifu_en:1;
450c5aa59e8SDavid Daney 		uint64_t an_err_en:1;
451c5aa59e8SDavid Daney 		uint64_t xmit_en:1;
452c5aa59e8SDavid Daney 		uint64_t lnkspd_en:1;
453c5aa59e8SDavid Daney #else
454c5aa59e8SDavid Daney 		uint64_t lnkspd_en:1;
455c5aa59e8SDavid Daney 		uint64_t xmit_en:1;
456c5aa59e8SDavid Daney 		uint64_t an_err_en:1;
457c5aa59e8SDavid Daney 		uint64_t txfifu_en:1;
458c5aa59e8SDavid Daney 		uint64_t txfifo_en:1;
459c5aa59e8SDavid Daney 		uint64_t txbad_en:1;
460c5aa59e8SDavid Daney 		uint64_t rxerr_en:1;
461c5aa59e8SDavid Daney 		uint64_t rxbad_en:1;
462c5aa59e8SDavid Daney 		uint64_t rxlock_en:1;
463c5aa59e8SDavid Daney 		uint64_t an_bad_en:1;
464c5aa59e8SDavid Daney 		uint64_t sync_bad_en:1;
465c5aa59e8SDavid Daney 		uint64_t dup:1;
466c5aa59e8SDavid Daney 		uint64_t dbg_sync_en:1;
467c5aa59e8SDavid Daney 		uint64_t reserved_13_63:51;
468c5aa59e8SDavid Daney #endif
469c5aa59e8SDavid Daney 	} s;
470c5aa59e8SDavid Daney 	struct cvmx_pcsx_intx_en_reg_cn52xx {
471c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
472af866496SDavid Daney 		uint64_t reserved_12_63:52;
473af866496SDavid Daney 		uint64_t dup:1;
474af866496SDavid Daney 		uint64_t sync_bad_en:1;
475af866496SDavid Daney 		uint64_t an_bad_en:1;
476af866496SDavid Daney 		uint64_t rxlock_en:1;
477af866496SDavid Daney 		uint64_t rxbad_en:1;
478af866496SDavid Daney 		uint64_t rxerr_en:1;
479af866496SDavid Daney 		uint64_t txbad_en:1;
480af866496SDavid Daney 		uint64_t txfifo_en:1;
481af866496SDavid Daney 		uint64_t txfifu_en:1;
482af866496SDavid Daney 		uint64_t an_err_en:1;
483af866496SDavid Daney 		uint64_t xmit_en:1;
484af866496SDavid Daney 		uint64_t lnkspd_en:1;
485c5aa59e8SDavid Daney #else
486c5aa59e8SDavid Daney 		uint64_t lnkspd_en:1;
487c5aa59e8SDavid Daney 		uint64_t xmit_en:1;
488c5aa59e8SDavid Daney 		uint64_t an_err_en:1;
489c5aa59e8SDavid Daney 		uint64_t txfifu_en:1;
490c5aa59e8SDavid Daney 		uint64_t txfifo_en:1;
491c5aa59e8SDavid Daney 		uint64_t txbad_en:1;
492c5aa59e8SDavid Daney 		uint64_t rxerr_en:1;
493c5aa59e8SDavid Daney 		uint64_t rxbad_en:1;
494c5aa59e8SDavid Daney 		uint64_t rxlock_en:1;
495c5aa59e8SDavid Daney 		uint64_t an_bad_en:1;
496c5aa59e8SDavid Daney 		uint64_t sync_bad_en:1;
497c5aa59e8SDavid Daney 		uint64_t dup:1;
498c5aa59e8SDavid Daney 		uint64_t reserved_12_63:52;
499c5aa59e8SDavid Daney #endif
500c5aa59e8SDavid Daney 	} cn52xx;
501af866496SDavid Daney };
502af866496SDavid Daney 
503af866496SDavid Daney union cvmx_pcsx_intx_reg {
504af866496SDavid Daney 	uint64_t u64;
505af866496SDavid Daney 	struct cvmx_pcsx_intx_reg_s {
506c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
507c5aa59e8SDavid Daney 		uint64_t reserved_13_63:51;
508c5aa59e8SDavid Daney 		uint64_t dbg_sync:1;
509c5aa59e8SDavid Daney 		uint64_t dup:1;
510c5aa59e8SDavid Daney 		uint64_t sync_bad:1;
511c5aa59e8SDavid Daney 		uint64_t an_bad:1;
512c5aa59e8SDavid Daney 		uint64_t rxlock:1;
513c5aa59e8SDavid Daney 		uint64_t rxbad:1;
514c5aa59e8SDavid Daney 		uint64_t rxerr:1;
515c5aa59e8SDavid Daney 		uint64_t txbad:1;
516c5aa59e8SDavid Daney 		uint64_t txfifo:1;
517c5aa59e8SDavid Daney 		uint64_t txfifu:1;
518c5aa59e8SDavid Daney 		uint64_t an_err:1;
519c5aa59e8SDavid Daney 		uint64_t xmit:1;
520c5aa59e8SDavid Daney 		uint64_t lnkspd:1;
521c5aa59e8SDavid Daney #else
522c5aa59e8SDavid Daney 		uint64_t lnkspd:1;
523c5aa59e8SDavid Daney 		uint64_t xmit:1;
524c5aa59e8SDavid Daney 		uint64_t an_err:1;
525c5aa59e8SDavid Daney 		uint64_t txfifu:1;
526c5aa59e8SDavid Daney 		uint64_t txfifo:1;
527c5aa59e8SDavid Daney 		uint64_t txbad:1;
528c5aa59e8SDavid Daney 		uint64_t rxerr:1;
529c5aa59e8SDavid Daney 		uint64_t rxbad:1;
530c5aa59e8SDavid Daney 		uint64_t rxlock:1;
531c5aa59e8SDavid Daney 		uint64_t an_bad:1;
532c5aa59e8SDavid Daney 		uint64_t sync_bad:1;
533c5aa59e8SDavid Daney 		uint64_t dup:1;
534c5aa59e8SDavid Daney 		uint64_t dbg_sync:1;
535c5aa59e8SDavid Daney 		uint64_t reserved_13_63:51;
536c5aa59e8SDavid Daney #endif
537c5aa59e8SDavid Daney 	} s;
538c5aa59e8SDavid Daney 	struct cvmx_pcsx_intx_reg_cn52xx {
539c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
540af866496SDavid Daney 		uint64_t reserved_12_63:52;
541af866496SDavid Daney 		uint64_t dup:1;
542af866496SDavid Daney 		uint64_t sync_bad:1;
543af866496SDavid Daney 		uint64_t an_bad:1;
544af866496SDavid Daney 		uint64_t rxlock:1;
545af866496SDavid Daney 		uint64_t rxbad:1;
546af866496SDavid Daney 		uint64_t rxerr:1;
547af866496SDavid Daney 		uint64_t txbad:1;
548af866496SDavid Daney 		uint64_t txfifo:1;
549af866496SDavid Daney 		uint64_t txfifu:1;
550af866496SDavid Daney 		uint64_t an_err:1;
551af866496SDavid Daney 		uint64_t xmit:1;
552af866496SDavid Daney 		uint64_t lnkspd:1;
553c5aa59e8SDavid Daney #else
554c5aa59e8SDavid Daney 		uint64_t lnkspd:1;
555c5aa59e8SDavid Daney 		uint64_t xmit:1;
556c5aa59e8SDavid Daney 		uint64_t an_err:1;
557c5aa59e8SDavid Daney 		uint64_t txfifu:1;
558c5aa59e8SDavid Daney 		uint64_t txfifo:1;
559c5aa59e8SDavid Daney 		uint64_t txbad:1;
560c5aa59e8SDavid Daney 		uint64_t rxerr:1;
561c5aa59e8SDavid Daney 		uint64_t rxbad:1;
562c5aa59e8SDavid Daney 		uint64_t rxlock:1;
563c5aa59e8SDavid Daney 		uint64_t an_bad:1;
564c5aa59e8SDavid Daney 		uint64_t sync_bad:1;
565c5aa59e8SDavid Daney 		uint64_t dup:1;
566c5aa59e8SDavid Daney 		uint64_t reserved_12_63:52;
567c5aa59e8SDavid Daney #endif
568c5aa59e8SDavid Daney 	} cn52xx;
569af866496SDavid Daney };
570af866496SDavid Daney 
571af866496SDavid Daney union cvmx_pcsx_linkx_timer_count_reg {
572af866496SDavid Daney 	uint64_t u64;
573af866496SDavid Daney 	struct cvmx_pcsx_linkx_timer_count_reg_s {
574c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
575af866496SDavid Daney 		uint64_t reserved_16_63:48;
576af866496SDavid Daney 		uint64_t count:16;
577c5aa59e8SDavid Daney #else
578c5aa59e8SDavid Daney 		uint64_t count:16;
579c5aa59e8SDavid Daney 		uint64_t reserved_16_63:48;
580c5aa59e8SDavid Daney #endif
581af866496SDavid Daney 	} s;
582af866496SDavid Daney };
583af866496SDavid Daney 
584af866496SDavid Daney union cvmx_pcsx_log_anlx_reg {
585af866496SDavid Daney 	uint64_t u64;
586af866496SDavid Daney 	struct cvmx_pcsx_log_anlx_reg_s {
587c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
588af866496SDavid Daney 		uint64_t reserved_4_63:60;
589af866496SDavid Daney 		uint64_t lafifovfl:1;
590af866496SDavid Daney 		uint64_t la_en:1;
591af866496SDavid Daney 		uint64_t pkt_sz:2;
592c5aa59e8SDavid Daney #else
593c5aa59e8SDavid Daney 		uint64_t pkt_sz:2;
594c5aa59e8SDavid Daney 		uint64_t la_en:1;
595c5aa59e8SDavid Daney 		uint64_t lafifovfl:1;
596c5aa59e8SDavid Daney 		uint64_t reserved_4_63:60;
597c5aa59e8SDavid Daney #endif
598af866496SDavid Daney 	} s;
599af866496SDavid Daney };
600af866496SDavid Daney 
601af866496SDavid Daney union cvmx_pcsx_miscx_ctl_reg {
602af866496SDavid Daney 	uint64_t u64;
603af866496SDavid Daney 	struct cvmx_pcsx_miscx_ctl_reg_s {
604c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
605af866496SDavid Daney 		uint64_t reserved_13_63:51;
606af866496SDavid Daney 		uint64_t sgmii:1;
607af866496SDavid Daney 		uint64_t gmxeno:1;
608af866496SDavid Daney 		uint64_t loopbck2:1;
609af866496SDavid Daney 		uint64_t mac_phy:1;
610af866496SDavid Daney 		uint64_t mode:1;
611af866496SDavid Daney 		uint64_t an_ovrd:1;
612af866496SDavid Daney 		uint64_t samp_pt:7;
613c5aa59e8SDavid Daney #else
614c5aa59e8SDavid Daney 		uint64_t samp_pt:7;
615c5aa59e8SDavid Daney 		uint64_t an_ovrd:1;
616c5aa59e8SDavid Daney 		uint64_t mode:1;
617c5aa59e8SDavid Daney 		uint64_t mac_phy:1;
618c5aa59e8SDavid Daney 		uint64_t loopbck2:1;
619c5aa59e8SDavid Daney 		uint64_t gmxeno:1;
620c5aa59e8SDavid Daney 		uint64_t sgmii:1;
621c5aa59e8SDavid Daney 		uint64_t reserved_13_63:51;
622c5aa59e8SDavid Daney #endif
623af866496SDavid Daney 	} s;
624af866496SDavid Daney };
625af866496SDavid Daney 
626af866496SDavid Daney union cvmx_pcsx_mrx_control_reg {
627af866496SDavid Daney 	uint64_t u64;
628af866496SDavid Daney 	struct cvmx_pcsx_mrx_control_reg_s {
629c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
630af866496SDavid Daney 		uint64_t reserved_16_63:48;
631af866496SDavid Daney 		uint64_t reset:1;
632af866496SDavid Daney 		uint64_t loopbck1:1;
633af866496SDavid Daney 		uint64_t spdlsb:1;
634af866496SDavid Daney 		uint64_t an_en:1;
635af866496SDavid Daney 		uint64_t pwr_dn:1;
636af866496SDavid Daney 		uint64_t reserved_10_10:1;
637af866496SDavid Daney 		uint64_t rst_an:1;
638af866496SDavid Daney 		uint64_t dup:1;
639af866496SDavid Daney 		uint64_t coltst:1;
640af866496SDavid Daney 		uint64_t spdmsb:1;
641af866496SDavid Daney 		uint64_t uni:1;
642af866496SDavid Daney 		uint64_t reserved_0_4:5;
643c5aa59e8SDavid Daney #else
644c5aa59e8SDavid Daney 		uint64_t reserved_0_4:5;
645c5aa59e8SDavid Daney 		uint64_t uni:1;
646c5aa59e8SDavid Daney 		uint64_t spdmsb:1;
647c5aa59e8SDavid Daney 		uint64_t coltst:1;
648c5aa59e8SDavid Daney 		uint64_t dup:1;
649c5aa59e8SDavid Daney 		uint64_t rst_an:1;
650c5aa59e8SDavid Daney 		uint64_t reserved_10_10:1;
651c5aa59e8SDavid Daney 		uint64_t pwr_dn:1;
652c5aa59e8SDavid Daney 		uint64_t an_en:1;
653c5aa59e8SDavid Daney 		uint64_t spdlsb:1;
654c5aa59e8SDavid Daney 		uint64_t loopbck1:1;
655c5aa59e8SDavid Daney 		uint64_t reset:1;
656c5aa59e8SDavid Daney 		uint64_t reserved_16_63:48;
657c5aa59e8SDavid Daney #endif
658af866496SDavid Daney 	} s;
659af866496SDavid Daney };
660af866496SDavid Daney 
661af866496SDavid Daney union cvmx_pcsx_mrx_status_reg {
662af866496SDavid Daney 	uint64_t u64;
663af866496SDavid Daney 	struct cvmx_pcsx_mrx_status_reg_s {
664c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
665af866496SDavid Daney 		uint64_t reserved_16_63:48;
666af866496SDavid Daney 		uint64_t hun_t4:1;
667af866496SDavid Daney 		uint64_t hun_xfd:1;
668af866496SDavid Daney 		uint64_t hun_xhd:1;
669af866496SDavid Daney 		uint64_t ten_fd:1;
670af866496SDavid Daney 		uint64_t ten_hd:1;
671af866496SDavid Daney 		uint64_t hun_t2fd:1;
672af866496SDavid Daney 		uint64_t hun_t2hd:1;
673af866496SDavid Daney 		uint64_t ext_st:1;
674af866496SDavid Daney 		uint64_t reserved_7_7:1;
675af866496SDavid Daney 		uint64_t prb_sup:1;
676af866496SDavid Daney 		uint64_t an_cpt:1;
677af866496SDavid Daney 		uint64_t rm_flt:1;
678af866496SDavid Daney 		uint64_t an_abil:1;
679af866496SDavid Daney 		uint64_t lnk_st:1;
680af866496SDavid Daney 		uint64_t reserved_1_1:1;
681af866496SDavid Daney 		uint64_t extnd:1;
682c5aa59e8SDavid Daney #else
683c5aa59e8SDavid Daney 		uint64_t extnd:1;
684c5aa59e8SDavid Daney 		uint64_t reserved_1_1:1;
685c5aa59e8SDavid Daney 		uint64_t lnk_st:1;
686c5aa59e8SDavid Daney 		uint64_t an_abil:1;
687c5aa59e8SDavid Daney 		uint64_t rm_flt:1;
688c5aa59e8SDavid Daney 		uint64_t an_cpt:1;
689c5aa59e8SDavid Daney 		uint64_t prb_sup:1;
690c5aa59e8SDavid Daney 		uint64_t reserved_7_7:1;
691c5aa59e8SDavid Daney 		uint64_t ext_st:1;
692c5aa59e8SDavid Daney 		uint64_t hun_t2hd:1;
693c5aa59e8SDavid Daney 		uint64_t hun_t2fd:1;
694c5aa59e8SDavid Daney 		uint64_t ten_hd:1;
695c5aa59e8SDavid Daney 		uint64_t ten_fd:1;
696c5aa59e8SDavid Daney 		uint64_t hun_xhd:1;
697c5aa59e8SDavid Daney 		uint64_t hun_xfd:1;
698c5aa59e8SDavid Daney 		uint64_t hun_t4:1;
699c5aa59e8SDavid Daney 		uint64_t reserved_16_63:48;
700c5aa59e8SDavid Daney #endif
701af866496SDavid Daney 	} s;
702af866496SDavid Daney };
703af866496SDavid Daney 
704af866496SDavid Daney union cvmx_pcsx_rxx_states_reg {
705af866496SDavid Daney 	uint64_t u64;
706af866496SDavid Daney 	struct cvmx_pcsx_rxx_states_reg_s {
707c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
708af866496SDavid Daney 		uint64_t reserved_16_63:48;
709af866496SDavid Daney 		uint64_t rx_bad:1;
710af866496SDavid Daney 		uint64_t rx_st:5;
711af866496SDavid Daney 		uint64_t sync_bad:1;
712af866496SDavid Daney 		uint64_t sync:4;
713af866496SDavid Daney 		uint64_t an_bad:1;
714af866496SDavid Daney 		uint64_t an_st:4;
715c5aa59e8SDavid Daney #else
716c5aa59e8SDavid Daney 		uint64_t an_st:4;
717c5aa59e8SDavid Daney 		uint64_t an_bad:1;
718c5aa59e8SDavid Daney 		uint64_t sync:4;
719c5aa59e8SDavid Daney 		uint64_t sync_bad:1;
720c5aa59e8SDavid Daney 		uint64_t rx_st:5;
721c5aa59e8SDavid Daney 		uint64_t rx_bad:1;
722c5aa59e8SDavid Daney 		uint64_t reserved_16_63:48;
723c5aa59e8SDavid Daney #endif
724af866496SDavid Daney 	} s;
725af866496SDavid Daney };
726af866496SDavid Daney 
727af866496SDavid Daney union cvmx_pcsx_rxx_sync_reg {
728af866496SDavid Daney 	uint64_t u64;
729af866496SDavid Daney 	struct cvmx_pcsx_rxx_sync_reg_s {
730c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
731af866496SDavid Daney 		uint64_t reserved_2_63:62;
732af866496SDavid Daney 		uint64_t sync:1;
733af866496SDavid Daney 		uint64_t bit_lock:1;
734c5aa59e8SDavid Daney #else
735c5aa59e8SDavid Daney 		uint64_t bit_lock:1;
736c5aa59e8SDavid Daney 		uint64_t sync:1;
737c5aa59e8SDavid Daney 		uint64_t reserved_2_63:62;
738c5aa59e8SDavid Daney #endif
739af866496SDavid Daney 	} s;
740af866496SDavid Daney };
741af866496SDavid Daney 
742af866496SDavid Daney union cvmx_pcsx_sgmx_an_adv_reg {
743af866496SDavid Daney 	uint64_t u64;
744af866496SDavid Daney 	struct cvmx_pcsx_sgmx_an_adv_reg_s {
745c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
746af866496SDavid Daney 		uint64_t reserved_16_63:48;
747af866496SDavid Daney 		uint64_t link:1;
748af866496SDavid Daney 		uint64_t ack:1;
749af866496SDavid Daney 		uint64_t reserved_13_13:1;
750af866496SDavid Daney 		uint64_t dup:1;
751af866496SDavid Daney 		uint64_t speed:2;
752af866496SDavid Daney 		uint64_t reserved_1_9:9;
753af866496SDavid Daney 		uint64_t one:1;
754c5aa59e8SDavid Daney #else
755c5aa59e8SDavid Daney 		uint64_t one:1;
756c5aa59e8SDavid Daney 		uint64_t reserved_1_9:9;
757c5aa59e8SDavid Daney 		uint64_t speed:2;
758c5aa59e8SDavid Daney 		uint64_t dup:1;
759c5aa59e8SDavid Daney 		uint64_t reserved_13_13:1;
760c5aa59e8SDavid Daney 		uint64_t ack:1;
761c5aa59e8SDavid Daney 		uint64_t link:1;
762c5aa59e8SDavid Daney 		uint64_t reserved_16_63:48;
763c5aa59e8SDavid Daney #endif
764af866496SDavid Daney 	} s;
765af866496SDavid Daney };
766af866496SDavid Daney 
767af866496SDavid Daney union cvmx_pcsx_sgmx_lp_adv_reg {
768af866496SDavid Daney 	uint64_t u64;
769af866496SDavid Daney 	struct cvmx_pcsx_sgmx_lp_adv_reg_s {
770c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
771af866496SDavid Daney 		uint64_t reserved_16_63:48;
772af866496SDavid Daney 		uint64_t link:1;
773af866496SDavid Daney 		uint64_t reserved_13_14:2;
774af866496SDavid Daney 		uint64_t dup:1;
775af866496SDavid Daney 		uint64_t speed:2;
776af866496SDavid Daney 		uint64_t reserved_1_9:9;
777af866496SDavid Daney 		uint64_t one:1;
778c5aa59e8SDavid Daney #else
779c5aa59e8SDavid Daney 		uint64_t one:1;
780c5aa59e8SDavid Daney 		uint64_t reserved_1_9:9;
781c5aa59e8SDavid Daney 		uint64_t speed:2;
782c5aa59e8SDavid Daney 		uint64_t dup:1;
783c5aa59e8SDavid Daney 		uint64_t reserved_13_14:2;
784c5aa59e8SDavid Daney 		uint64_t link:1;
785c5aa59e8SDavid Daney 		uint64_t reserved_16_63:48;
786c5aa59e8SDavid Daney #endif
787af866496SDavid Daney 	} s;
788af866496SDavid Daney };
789af866496SDavid Daney 
790af866496SDavid Daney union cvmx_pcsx_txx_states_reg {
791af866496SDavid Daney 	uint64_t u64;
792af866496SDavid Daney 	struct cvmx_pcsx_txx_states_reg_s {
793c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
794af866496SDavid Daney 		uint64_t reserved_7_63:57;
795af866496SDavid Daney 		uint64_t xmit:2;
796af866496SDavid Daney 		uint64_t tx_bad:1;
797af866496SDavid Daney 		uint64_t ord_st:4;
798c5aa59e8SDavid Daney #else
799c5aa59e8SDavid Daney 		uint64_t ord_st:4;
800c5aa59e8SDavid Daney 		uint64_t tx_bad:1;
801c5aa59e8SDavid Daney 		uint64_t xmit:2;
802c5aa59e8SDavid Daney 		uint64_t reserved_7_63:57;
803c5aa59e8SDavid Daney #endif
804af866496SDavid Daney 	} s;
805af866496SDavid Daney };
806af866496SDavid Daney 
807af866496SDavid Daney union cvmx_pcsx_tx_rxx_polarity_reg {
808af866496SDavid Daney 	uint64_t u64;
809af866496SDavid Daney 	struct cvmx_pcsx_tx_rxx_polarity_reg_s {
810c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
811af866496SDavid Daney 		uint64_t reserved_4_63:60;
812af866496SDavid Daney 		uint64_t rxovrd:1;
813af866496SDavid Daney 		uint64_t autorxpl:1;
814af866496SDavid Daney 		uint64_t rxplrt:1;
815af866496SDavid Daney 		uint64_t txplrt:1;
816c5aa59e8SDavid Daney #else
817c5aa59e8SDavid Daney 		uint64_t txplrt:1;
818c5aa59e8SDavid Daney 		uint64_t rxplrt:1;
819c5aa59e8SDavid Daney 		uint64_t autorxpl:1;
820c5aa59e8SDavid Daney 		uint64_t rxovrd:1;
821c5aa59e8SDavid Daney 		uint64_t reserved_4_63:60;
822c5aa59e8SDavid Daney #endif
823af866496SDavid Daney 	} s;
824af866496SDavid Daney };
825af866496SDavid Daney 
826af866496SDavid Daney #endif
827