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