xref: /OK3568_Linux_fs/kernel/arch/mips/include/asm/octeon/cvmx-asxx-defs.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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_ASXX_DEFS_H__
29*4882a593Smuzhiyun #define __CVMX_ASXX_DEFS_H__
30*4882a593Smuzhiyun 
31*4882a593Smuzhiyun #define CVMX_ASXX_GMII_RX_CLK_SET(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000180ull))
32*4882a593Smuzhiyun #define CVMX_ASXX_GMII_RX_DAT_SET(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000188ull))
33*4882a593Smuzhiyun #define CVMX_ASXX_INT_EN(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000018ull) + ((block_id) & 1) * 0x8000000ull)
34*4882a593Smuzhiyun #define CVMX_ASXX_INT_REG(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000010ull) + ((block_id) & 1) * 0x8000000ull)
35*4882a593Smuzhiyun #define CVMX_ASXX_MII_RX_DAT_SET(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000190ull))
36*4882a593Smuzhiyun #define CVMX_ASXX_PRT_LOOP(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000040ull) + ((block_id) & 1) * 0x8000000ull)
37*4882a593Smuzhiyun #define CVMX_ASXX_RLD_BYPASS(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000248ull) + ((block_id) & 1) * 0x8000000ull)
38*4882a593Smuzhiyun #define CVMX_ASXX_RLD_BYPASS_SETTING(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000250ull) + ((block_id) & 1) * 0x8000000ull)
39*4882a593Smuzhiyun #define CVMX_ASXX_RLD_COMP(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000220ull) + ((block_id) & 1) * 0x8000000ull)
40*4882a593Smuzhiyun #define CVMX_ASXX_RLD_DATA_DRV(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000218ull) + ((block_id) & 1) * 0x8000000ull)
41*4882a593Smuzhiyun #define CVMX_ASXX_RLD_FCRAM_MODE(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000210ull) + ((block_id) & 1) * 0x8000000ull)
42*4882a593Smuzhiyun #define CVMX_ASXX_RLD_NCTL_STRONG(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000230ull) + ((block_id) & 1) * 0x8000000ull)
43*4882a593Smuzhiyun #define CVMX_ASXX_RLD_NCTL_WEAK(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000240ull) + ((block_id) & 1) * 0x8000000ull)
44*4882a593Smuzhiyun #define CVMX_ASXX_RLD_PCTL_STRONG(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000228ull) + ((block_id) & 1) * 0x8000000ull)
45*4882a593Smuzhiyun #define CVMX_ASXX_RLD_PCTL_WEAK(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000238ull) + ((block_id) & 1) * 0x8000000ull)
46*4882a593Smuzhiyun #define CVMX_ASXX_RLD_SETTING(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000258ull) + ((block_id) & 1) * 0x8000000ull)
47*4882a593Smuzhiyun #define CVMX_ASXX_RX_CLK_SETX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800B0000020ull) + (((offset) & 3) + ((block_id) & 1) * 0x1000000ull) * 8)
48*4882a593Smuzhiyun #define CVMX_ASXX_RX_PRT_EN(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000000ull) + ((block_id) & 1) * 0x8000000ull)
49*4882a593Smuzhiyun #define CVMX_ASXX_RX_WOL(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000100ull) + ((block_id) & 1) * 0x8000000ull)
50*4882a593Smuzhiyun #define CVMX_ASXX_RX_WOL_MSK(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000108ull) + ((block_id) & 1) * 0x8000000ull)
51*4882a593Smuzhiyun #define CVMX_ASXX_RX_WOL_POWOK(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000118ull) + ((block_id) & 1) * 0x8000000ull)
52*4882a593Smuzhiyun #define CVMX_ASXX_RX_WOL_SIG(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000110ull) + ((block_id) & 1) * 0x8000000ull)
53*4882a593Smuzhiyun #define CVMX_ASXX_TX_CLK_SETX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800B0000048ull) + (((offset) & 3) + ((block_id) & 1) * 0x1000000ull) * 8)
54*4882a593Smuzhiyun #define CVMX_ASXX_TX_COMP_BYP(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000068ull) + ((block_id) & 1) * 0x8000000ull)
55*4882a593Smuzhiyun #define CVMX_ASXX_TX_HI_WATERX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800B0000080ull) + (((offset) & 3) + ((block_id) & 1) * 0x1000000ull) * 8)
56*4882a593Smuzhiyun #define CVMX_ASXX_TX_PRT_EN(block_id) (CVMX_ADD_IO_SEG(0x00011800B0000008ull) + ((block_id) & 1) * 0x8000000ull)
57*4882a593Smuzhiyun 
58*4882a593Smuzhiyun void __cvmx_interrupt_asxx_enable(int block);
59*4882a593Smuzhiyun 
60*4882a593Smuzhiyun union cvmx_asxx_gmii_rx_clk_set {
61*4882a593Smuzhiyun 	uint64_t u64;
62*4882a593Smuzhiyun 	struct cvmx_asxx_gmii_rx_clk_set_s {
63*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
64*4882a593Smuzhiyun 		uint64_t reserved_5_63:59;
65*4882a593Smuzhiyun 		uint64_t setting:5;
66*4882a593Smuzhiyun #else
67*4882a593Smuzhiyun 		uint64_t setting:5;
68*4882a593Smuzhiyun 		uint64_t reserved_5_63:59;
69*4882a593Smuzhiyun #endif
70*4882a593Smuzhiyun 	} s;
71*4882a593Smuzhiyun };
72*4882a593Smuzhiyun 
73*4882a593Smuzhiyun union cvmx_asxx_gmii_rx_dat_set {
74*4882a593Smuzhiyun 	uint64_t u64;
75*4882a593Smuzhiyun 	struct cvmx_asxx_gmii_rx_dat_set_s {
76*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
77*4882a593Smuzhiyun 		uint64_t reserved_5_63:59;
78*4882a593Smuzhiyun 		uint64_t setting:5;
79*4882a593Smuzhiyun #else
80*4882a593Smuzhiyun 		uint64_t setting:5;
81*4882a593Smuzhiyun 		uint64_t reserved_5_63:59;
82*4882a593Smuzhiyun #endif
83*4882a593Smuzhiyun 	} s;
84*4882a593Smuzhiyun };
85*4882a593Smuzhiyun 
86*4882a593Smuzhiyun union cvmx_asxx_int_en {
87*4882a593Smuzhiyun 	uint64_t u64;
88*4882a593Smuzhiyun 	struct cvmx_asxx_int_en_s {
89*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
90*4882a593Smuzhiyun 		uint64_t reserved_12_63:52;
91*4882a593Smuzhiyun 		uint64_t txpsh:4;
92*4882a593Smuzhiyun 		uint64_t txpop:4;
93*4882a593Smuzhiyun 		uint64_t ovrflw:4;
94*4882a593Smuzhiyun #else
95*4882a593Smuzhiyun 		uint64_t ovrflw:4;
96*4882a593Smuzhiyun 		uint64_t txpop:4;
97*4882a593Smuzhiyun 		uint64_t txpsh:4;
98*4882a593Smuzhiyun 		uint64_t reserved_12_63:52;
99*4882a593Smuzhiyun #endif
100*4882a593Smuzhiyun 	} s;
101*4882a593Smuzhiyun 	struct cvmx_asxx_int_en_cn30xx {
102*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
103*4882a593Smuzhiyun 		uint64_t reserved_11_63:53;
104*4882a593Smuzhiyun 		uint64_t txpsh:3;
105*4882a593Smuzhiyun 		uint64_t reserved_7_7:1;
106*4882a593Smuzhiyun 		uint64_t txpop:3;
107*4882a593Smuzhiyun 		uint64_t reserved_3_3:1;
108*4882a593Smuzhiyun 		uint64_t ovrflw:3;
109*4882a593Smuzhiyun #else
110*4882a593Smuzhiyun 		uint64_t ovrflw:3;
111*4882a593Smuzhiyun 		uint64_t reserved_3_3:1;
112*4882a593Smuzhiyun 		uint64_t txpop:3;
113*4882a593Smuzhiyun 		uint64_t reserved_7_7:1;
114*4882a593Smuzhiyun 		uint64_t txpsh:3;
115*4882a593Smuzhiyun 		uint64_t reserved_11_63:53;
116*4882a593Smuzhiyun #endif
117*4882a593Smuzhiyun 	} cn30xx;
118*4882a593Smuzhiyun };
119*4882a593Smuzhiyun 
120*4882a593Smuzhiyun union cvmx_asxx_int_reg {
121*4882a593Smuzhiyun 	uint64_t u64;
122*4882a593Smuzhiyun 	struct cvmx_asxx_int_reg_s {
123*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
124*4882a593Smuzhiyun 		uint64_t reserved_12_63:52;
125*4882a593Smuzhiyun 		uint64_t txpsh:4;
126*4882a593Smuzhiyun 		uint64_t txpop:4;
127*4882a593Smuzhiyun 		uint64_t ovrflw:4;
128*4882a593Smuzhiyun #else
129*4882a593Smuzhiyun 		uint64_t ovrflw:4;
130*4882a593Smuzhiyun 		uint64_t txpop:4;
131*4882a593Smuzhiyun 		uint64_t txpsh:4;
132*4882a593Smuzhiyun 		uint64_t reserved_12_63:52;
133*4882a593Smuzhiyun #endif
134*4882a593Smuzhiyun 	} s;
135*4882a593Smuzhiyun 	struct cvmx_asxx_int_reg_cn30xx {
136*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
137*4882a593Smuzhiyun 		uint64_t reserved_11_63:53;
138*4882a593Smuzhiyun 		uint64_t txpsh:3;
139*4882a593Smuzhiyun 		uint64_t reserved_7_7:1;
140*4882a593Smuzhiyun 		uint64_t txpop:3;
141*4882a593Smuzhiyun 		uint64_t reserved_3_3:1;
142*4882a593Smuzhiyun 		uint64_t ovrflw:3;
143*4882a593Smuzhiyun #else
144*4882a593Smuzhiyun 		uint64_t ovrflw:3;
145*4882a593Smuzhiyun 		uint64_t reserved_3_3:1;
146*4882a593Smuzhiyun 		uint64_t txpop:3;
147*4882a593Smuzhiyun 		uint64_t reserved_7_7:1;
148*4882a593Smuzhiyun 		uint64_t txpsh:3;
149*4882a593Smuzhiyun 		uint64_t reserved_11_63:53;
150*4882a593Smuzhiyun #endif
151*4882a593Smuzhiyun 	} cn30xx;
152*4882a593Smuzhiyun };
153*4882a593Smuzhiyun 
154*4882a593Smuzhiyun union cvmx_asxx_mii_rx_dat_set {
155*4882a593Smuzhiyun 	uint64_t u64;
156*4882a593Smuzhiyun 	struct cvmx_asxx_mii_rx_dat_set_s {
157*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
158*4882a593Smuzhiyun 		uint64_t reserved_5_63:59;
159*4882a593Smuzhiyun 		uint64_t setting:5;
160*4882a593Smuzhiyun #else
161*4882a593Smuzhiyun 		uint64_t setting:5;
162*4882a593Smuzhiyun 		uint64_t reserved_5_63:59;
163*4882a593Smuzhiyun #endif
164*4882a593Smuzhiyun 	} s;
165*4882a593Smuzhiyun };
166*4882a593Smuzhiyun 
167*4882a593Smuzhiyun union cvmx_asxx_prt_loop {
168*4882a593Smuzhiyun 	uint64_t u64;
169*4882a593Smuzhiyun 	struct cvmx_asxx_prt_loop_s {
170*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
171*4882a593Smuzhiyun 		uint64_t reserved_8_63:56;
172*4882a593Smuzhiyun 		uint64_t ext_loop:4;
173*4882a593Smuzhiyun 		uint64_t int_loop:4;
174*4882a593Smuzhiyun #else
175*4882a593Smuzhiyun 		uint64_t int_loop:4;
176*4882a593Smuzhiyun 		uint64_t ext_loop:4;
177*4882a593Smuzhiyun 		uint64_t reserved_8_63:56;
178*4882a593Smuzhiyun #endif
179*4882a593Smuzhiyun 	} s;
180*4882a593Smuzhiyun 	struct cvmx_asxx_prt_loop_cn30xx {
181*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
182*4882a593Smuzhiyun 		uint64_t reserved_7_63:57;
183*4882a593Smuzhiyun 		uint64_t ext_loop:3;
184*4882a593Smuzhiyun 		uint64_t reserved_3_3:1;
185*4882a593Smuzhiyun 		uint64_t int_loop:3;
186*4882a593Smuzhiyun #else
187*4882a593Smuzhiyun 		uint64_t int_loop:3;
188*4882a593Smuzhiyun 		uint64_t reserved_3_3:1;
189*4882a593Smuzhiyun 		uint64_t ext_loop:3;
190*4882a593Smuzhiyun 		uint64_t reserved_7_63:57;
191*4882a593Smuzhiyun #endif
192*4882a593Smuzhiyun 	} cn30xx;
193*4882a593Smuzhiyun };
194*4882a593Smuzhiyun 
195*4882a593Smuzhiyun union cvmx_asxx_rld_bypass {
196*4882a593Smuzhiyun 	uint64_t u64;
197*4882a593Smuzhiyun 	struct cvmx_asxx_rld_bypass_s {
198*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
199*4882a593Smuzhiyun 		uint64_t reserved_1_63:63;
200*4882a593Smuzhiyun 		uint64_t bypass:1;
201*4882a593Smuzhiyun #else
202*4882a593Smuzhiyun 		uint64_t bypass:1;
203*4882a593Smuzhiyun 		uint64_t reserved_1_63:63;
204*4882a593Smuzhiyun #endif
205*4882a593Smuzhiyun 	} s;
206*4882a593Smuzhiyun };
207*4882a593Smuzhiyun 
208*4882a593Smuzhiyun union cvmx_asxx_rld_bypass_setting {
209*4882a593Smuzhiyun 	uint64_t u64;
210*4882a593Smuzhiyun 	struct cvmx_asxx_rld_bypass_setting_s {
211*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
212*4882a593Smuzhiyun 		uint64_t reserved_5_63:59;
213*4882a593Smuzhiyun 		uint64_t setting:5;
214*4882a593Smuzhiyun #else
215*4882a593Smuzhiyun 		uint64_t setting:5;
216*4882a593Smuzhiyun 		uint64_t reserved_5_63:59;
217*4882a593Smuzhiyun #endif
218*4882a593Smuzhiyun 	} s;
219*4882a593Smuzhiyun };
220*4882a593Smuzhiyun 
221*4882a593Smuzhiyun union cvmx_asxx_rld_comp {
222*4882a593Smuzhiyun 	uint64_t u64;
223*4882a593Smuzhiyun 	struct cvmx_asxx_rld_comp_s {
224*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
225*4882a593Smuzhiyun 		uint64_t reserved_9_63:55;
226*4882a593Smuzhiyun 		uint64_t pctl:5;
227*4882a593Smuzhiyun 		uint64_t nctl:4;
228*4882a593Smuzhiyun #else
229*4882a593Smuzhiyun 		uint64_t nctl:4;
230*4882a593Smuzhiyun 		uint64_t pctl:5;
231*4882a593Smuzhiyun 		uint64_t reserved_9_63:55;
232*4882a593Smuzhiyun #endif
233*4882a593Smuzhiyun 	} s;
234*4882a593Smuzhiyun 	struct cvmx_asxx_rld_comp_cn38xx {
235*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
236*4882a593Smuzhiyun 		uint64_t reserved_8_63:56;
237*4882a593Smuzhiyun 		uint64_t pctl:4;
238*4882a593Smuzhiyun 		uint64_t nctl:4;
239*4882a593Smuzhiyun #else
240*4882a593Smuzhiyun 		uint64_t nctl:4;
241*4882a593Smuzhiyun 		uint64_t pctl:4;
242*4882a593Smuzhiyun 		uint64_t reserved_8_63:56;
243*4882a593Smuzhiyun #endif
244*4882a593Smuzhiyun 	} cn38xx;
245*4882a593Smuzhiyun };
246*4882a593Smuzhiyun 
247*4882a593Smuzhiyun union cvmx_asxx_rld_data_drv {
248*4882a593Smuzhiyun 	uint64_t u64;
249*4882a593Smuzhiyun 	struct cvmx_asxx_rld_data_drv_s {
250*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
251*4882a593Smuzhiyun 		uint64_t reserved_8_63:56;
252*4882a593Smuzhiyun 		uint64_t pctl:4;
253*4882a593Smuzhiyun 		uint64_t nctl:4;
254*4882a593Smuzhiyun #else
255*4882a593Smuzhiyun 		uint64_t nctl:4;
256*4882a593Smuzhiyun 		uint64_t pctl:4;
257*4882a593Smuzhiyun 		uint64_t reserved_8_63:56;
258*4882a593Smuzhiyun #endif
259*4882a593Smuzhiyun 	} s;
260*4882a593Smuzhiyun };
261*4882a593Smuzhiyun 
262*4882a593Smuzhiyun union cvmx_asxx_rld_fcram_mode {
263*4882a593Smuzhiyun 	uint64_t u64;
264*4882a593Smuzhiyun 	struct cvmx_asxx_rld_fcram_mode_s {
265*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
266*4882a593Smuzhiyun 		uint64_t reserved_1_63:63;
267*4882a593Smuzhiyun 		uint64_t mode:1;
268*4882a593Smuzhiyun #else
269*4882a593Smuzhiyun 		uint64_t mode:1;
270*4882a593Smuzhiyun 		uint64_t reserved_1_63:63;
271*4882a593Smuzhiyun #endif
272*4882a593Smuzhiyun 	} s;
273*4882a593Smuzhiyun };
274*4882a593Smuzhiyun 
275*4882a593Smuzhiyun union cvmx_asxx_rld_nctl_strong {
276*4882a593Smuzhiyun 	uint64_t u64;
277*4882a593Smuzhiyun 	struct cvmx_asxx_rld_nctl_strong_s {
278*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
279*4882a593Smuzhiyun 		uint64_t reserved_5_63:59;
280*4882a593Smuzhiyun 		uint64_t nctl:5;
281*4882a593Smuzhiyun #else
282*4882a593Smuzhiyun 		uint64_t nctl:5;
283*4882a593Smuzhiyun 		uint64_t reserved_5_63:59;
284*4882a593Smuzhiyun #endif
285*4882a593Smuzhiyun 	} s;
286*4882a593Smuzhiyun };
287*4882a593Smuzhiyun 
288*4882a593Smuzhiyun union cvmx_asxx_rld_nctl_weak {
289*4882a593Smuzhiyun 	uint64_t u64;
290*4882a593Smuzhiyun 	struct cvmx_asxx_rld_nctl_weak_s {
291*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
292*4882a593Smuzhiyun 		uint64_t reserved_5_63:59;
293*4882a593Smuzhiyun 		uint64_t nctl:5;
294*4882a593Smuzhiyun #else
295*4882a593Smuzhiyun 		uint64_t nctl:5;
296*4882a593Smuzhiyun 		uint64_t reserved_5_63:59;
297*4882a593Smuzhiyun #endif
298*4882a593Smuzhiyun 	} s;
299*4882a593Smuzhiyun };
300*4882a593Smuzhiyun 
301*4882a593Smuzhiyun union cvmx_asxx_rld_pctl_strong {
302*4882a593Smuzhiyun 	uint64_t u64;
303*4882a593Smuzhiyun 	struct cvmx_asxx_rld_pctl_strong_s {
304*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
305*4882a593Smuzhiyun 		uint64_t reserved_5_63:59;
306*4882a593Smuzhiyun 		uint64_t pctl:5;
307*4882a593Smuzhiyun #else
308*4882a593Smuzhiyun 		uint64_t pctl:5;
309*4882a593Smuzhiyun 		uint64_t reserved_5_63:59;
310*4882a593Smuzhiyun #endif
311*4882a593Smuzhiyun 	} s;
312*4882a593Smuzhiyun };
313*4882a593Smuzhiyun 
314*4882a593Smuzhiyun union cvmx_asxx_rld_pctl_weak {
315*4882a593Smuzhiyun 	uint64_t u64;
316*4882a593Smuzhiyun 	struct cvmx_asxx_rld_pctl_weak_s {
317*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
318*4882a593Smuzhiyun 		uint64_t reserved_5_63:59;
319*4882a593Smuzhiyun 		uint64_t pctl:5;
320*4882a593Smuzhiyun #else
321*4882a593Smuzhiyun 		uint64_t pctl:5;
322*4882a593Smuzhiyun 		uint64_t reserved_5_63:59;
323*4882a593Smuzhiyun #endif
324*4882a593Smuzhiyun 	} s;
325*4882a593Smuzhiyun };
326*4882a593Smuzhiyun 
327*4882a593Smuzhiyun union cvmx_asxx_rld_setting {
328*4882a593Smuzhiyun 	uint64_t u64;
329*4882a593Smuzhiyun 	struct cvmx_asxx_rld_setting_s {
330*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
331*4882a593Smuzhiyun 		uint64_t reserved_13_63:51;
332*4882a593Smuzhiyun 		uint64_t dfaset:5;
333*4882a593Smuzhiyun 		uint64_t dfalag:1;
334*4882a593Smuzhiyun 		uint64_t dfalead:1;
335*4882a593Smuzhiyun 		uint64_t dfalock:1;
336*4882a593Smuzhiyun 		uint64_t setting:5;
337*4882a593Smuzhiyun #else
338*4882a593Smuzhiyun 		uint64_t setting:5;
339*4882a593Smuzhiyun 		uint64_t dfalock:1;
340*4882a593Smuzhiyun 		uint64_t dfalead:1;
341*4882a593Smuzhiyun 		uint64_t dfalag:1;
342*4882a593Smuzhiyun 		uint64_t dfaset:5;
343*4882a593Smuzhiyun 		uint64_t reserved_13_63:51;
344*4882a593Smuzhiyun #endif
345*4882a593Smuzhiyun 	} s;
346*4882a593Smuzhiyun 	struct cvmx_asxx_rld_setting_cn38xx {
347*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
348*4882a593Smuzhiyun 		uint64_t reserved_5_63:59;
349*4882a593Smuzhiyun 		uint64_t setting:5;
350*4882a593Smuzhiyun #else
351*4882a593Smuzhiyun 		uint64_t setting:5;
352*4882a593Smuzhiyun 		uint64_t reserved_5_63:59;
353*4882a593Smuzhiyun #endif
354*4882a593Smuzhiyun 	} cn38xx;
355*4882a593Smuzhiyun };
356*4882a593Smuzhiyun 
357*4882a593Smuzhiyun union cvmx_asxx_rx_clk_setx {
358*4882a593Smuzhiyun 	uint64_t u64;
359*4882a593Smuzhiyun 	struct cvmx_asxx_rx_clk_setx_s {
360*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
361*4882a593Smuzhiyun 		uint64_t reserved_5_63:59;
362*4882a593Smuzhiyun 		uint64_t setting:5;
363*4882a593Smuzhiyun #else
364*4882a593Smuzhiyun 		uint64_t setting:5;
365*4882a593Smuzhiyun 		uint64_t reserved_5_63:59;
366*4882a593Smuzhiyun #endif
367*4882a593Smuzhiyun 	} s;
368*4882a593Smuzhiyun };
369*4882a593Smuzhiyun 
370*4882a593Smuzhiyun union cvmx_asxx_rx_prt_en {
371*4882a593Smuzhiyun 	uint64_t u64;
372*4882a593Smuzhiyun 	struct cvmx_asxx_rx_prt_en_s {
373*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
374*4882a593Smuzhiyun 		uint64_t reserved_4_63:60;
375*4882a593Smuzhiyun 		uint64_t prt_en:4;
376*4882a593Smuzhiyun #else
377*4882a593Smuzhiyun 		uint64_t prt_en:4;
378*4882a593Smuzhiyun 		uint64_t reserved_4_63:60;
379*4882a593Smuzhiyun #endif
380*4882a593Smuzhiyun 	} s;
381*4882a593Smuzhiyun 	struct cvmx_asxx_rx_prt_en_cn30xx {
382*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
383*4882a593Smuzhiyun 		uint64_t reserved_3_63:61;
384*4882a593Smuzhiyun 		uint64_t prt_en:3;
385*4882a593Smuzhiyun #else
386*4882a593Smuzhiyun 		uint64_t prt_en:3;
387*4882a593Smuzhiyun 		uint64_t reserved_3_63:61;
388*4882a593Smuzhiyun #endif
389*4882a593Smuzhiyun 	} cn30xx;
390*4882a593Smuzhiyun };
391*4882a593Smuzhiyun 
392*4882a593Smuzhiyun union cvmx_asxx_rx_wol {
393*4882a593Smuzhiyun 	uint64_t u64;
394*4882a593Smuzhiyun 	struct cvmx_asxx_rx_wol_s {
395*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
396*4882a593Smuzhiyun 		uint64_t reserved_2_63:62;
397*4882a593Smuzhiyun 		uint64_t status:1;
398*4882a593Smuzhiyun 		uint64_t enable:1;
399*4882a593Smuzhiyun #else
400*4882a593Smuzhiyun 		uint64_t enable:1;
401*4882a593Smuzhiyun 		uint64_t status:1;
402*4882a593Smuzhiyun 		uint64_t reserved_2_63:62;
403*4882a593Smuzhiyun #endif
404*4882a593Smuzhiyun 	} s;
405*4882a593Smuzhiyun };
406*4882a593Smuzhiyun 
407*4882a593Smuzhiyun union cvmx_asxx_rx_wol_msk {
408*4882a593Smuzhiyun 	uint64_t u64;
409*4882a593Smuzhiyun 	struct cvmx_asxx_rx_wol_msk_s {
410*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
411*4882a593Smuzhiyun 		uint64_t msk:64;
412*4882a593Smuzhiyun #else
413*4882a593Smuzhiyun 		uint64_t msk:64;
414*4882a593Smuzhiyun #endif
415*4882a593Smuzhiyun 	} s;
416*4882a593Smuzhiyun };
417*4882a593Smuzhiyun 
418*4882a593Smuzhiyun union cvmx_asxx_rx_wol_powok {
419*4882a593Smuzhiyun 	uint64_t u64;
420*4882a593Smuzhiyun 	struct cvmx_asxx_rx_wol_powok_s {
421*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
422*4882a593Smuzhiyun 		uint64_t reserved_1_63:63;
423*4882a593Smuzhiyun 		uint64_t powerok:1;
424*4882a593Smuzhiyun #else
425*4882a593Smuzhiyun 		uint64_t powerok:1;
426*4882a593Smuzhiyun 		uint64_t reserved_1_63:63;
427*4882a593Smuzhiyun #endif
428*4882a593Smuzhiyun 	} s;
429*4882a593Smuzhiyun };
430*4882a593Smuzhiyun 
431*4882a593Smuzhiyun union cvmx_asxx_rx_wol_sig {
432*4882a593Smuzhiyun 	uint64_t u64;
433*4882a593Smuzhiyun 	struct cvmx_asxx_rx_wol_sig_s {
434*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
435*4882a593Smuzhiyun 		uint64_t reserved_32_63:32;
436*4882a593Smuzhiyun 		uint64_t sig:32;
437*4882a593Smuzhiyun #else
438*4882a593Smuzhiyun 		uint64_t sig:32;
439*4882a593Smuzhiyun 		uint64_t reserved_32_63:32;
440*4882a593Smuzhiyun #endif
441*4882a593Smuzhiyun 	} s;
442*4882a593Smuzhiyun };
443*4882a593Smuzhiyun 
444*4882a593Smuzhiyun union cvmx_asxx_tx_clk_setx {
445*4882a593Smuzhiyun 	uint64_t u64;
446*4882a593Smuzhiyun 	struct cvmx_asxx_tx_clk_setx_s {
447*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
448*4882a593Smuzhiyun 		uint64_t reserved_5_63:59;
449*4882a593Smuzhiyun 		uint64_t setting:5;
450*4882a593Smuzhiyun #else
451*4882a593Smuzhiyun 		uint64_t setting:5;
452*4882a593Smuzhiyun 		uint64_t reserved_5_63:59;
453*4882a593Smuzhiyun #endif
454*4882a593Smuzhiyun 	} s;
455*4882a593Smuzhiyun };
456*4882a593Smuzhiyun 
457*4882a593Smuzhiyun union cvmx_asxx_tx_comp_byp {
458*4882a593Smuzhiyun 	uint64_t u64;
459*4882a593Smuzhiyun 	struct cvmx_asxx_tx_comp_byp_s {
460*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
461*4882a593Smuzhiyun 		uint64_t reserved_0_63:64;
462*4882a593Smuzhiyun #else
463*4882a593Smuzhiyun 		uint64_t reserved_0_63:64;
464*4882a593Smuzhiyun #endif
465*4882a593Smuzhiyun 	} s;
466*4882a593Smuzhiyun 	struct cvmx_asxx_tx_comp_byp_cn30xx {
467*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
468*4882a593Smuzhiyun 		uint64_t reserved_9_63:55;
469*4882a593Smuzhiyun 		uint64_t bypass:1;
470*4882a593Smuzhiyun 		uint64_t pctl:4;
471*4882a593Smuzhiyun 		uint64_t nctl:4;
472*4882a593Smuzhiyun #else
473*4882a593Smuzhiyun 		uint64_t nctl:4;
474*4882a593Smuzhiyun 		uint64_t pctl:4;
475*4882a593Smuzhiyun 		uint64_t bypass:1;
476*4882a593Smuzhiyun 		uint64_t reserved_9_63:55;
477*4882a593Smuzhiyun #endif
478*4882a593Smuzhiyun 	} cn30xx;
479*4882a593Smuzhiyun 	struct cvmx_asxx_tx_comp_byp_cn38xx {
480*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
481*4882a593Smuzhiyun 		uint64_t reserved_8_63:56;
482*4882a593Smuzhiyun 		uint64_t pctl:4;
483*4882a593Smuzhiyun 		uint64_t nctl:4;
484*4882a593Smuzhiyun #else
485*4882a593Smuzhiyun 		uint64_t nctl:4;
486*4882a593Smuzhiyun 		uint64_t pctl:4;
487*4882a593Smuzhiyun 		uint64_t reserved_8_63:56;
488*4882a593Smuzhiyun #endif
489*4882a593Smuzhiyun 	} cn38xx;
490*4882a593Smuzhiyun 	struct cvmx_asxx_tx_comp_byp_cn50xx {
491*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
492*4882a593Smuzhiyun 		uint64_t reserved_17_63:47;
493*4882a593Smuzhiyun 		uint64_t bypass:1;
494*4882a593Smuzhiyun 		uint64_t reserved_13_15:3;
495*4882a593Smuzhiyun 		uint64_t pctl:5;
496*4882a593Smuzhiyun 		uint64_t reserved_5_7:3;
497*4882a593Smuzhiyun 		uint64_t nctl:5;
498*4882a593Smuzhiyun #else
499*4882a593Smuzhiyun 		uint64_t nctl:5;
500*4882a593Smuzhiyun 		uint64_t reserved_5_7:3;
501*4882a593Smuzhiyun 		uint64_t pctl:5;
502*4882a593Smuzhiyun 		uint64_t reserved_13_15:3;
503*4882a593Smuzhiyun 		uint64_t bypass:1;
504*4882a593Smuzhiyun 		uint64_t reserved_17_63:47;
505*4882a593Smuzhiyun #endif
506*4882a593Smuzhiyun 	} cn50xx;
507*4882a593Smuzhiyun 	struct cvmx_asxx_tx_comp_byp_cn58xx {
508*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
509*4882a593Smuzhiyun 		uint64_t reserved_13_63:51;
510*4882a593Smuzhiyun 		uint64_t pctl:5;
511*4882a593Smuzhiyun 		uint64_t reserved_5_7:3;
512*4882a593Smuzhiyun 		uint64_t nctl:5;
513*4882a593Smuzhiyun #else
514*4882a593Smuzhiyun 		uint64_t nctl:5;
515*4882a593Smuzhiyun 		uint64_t reserved_5_7:3;
516*4882a593Smuzhiyun 		uint64_t pctl:5;
517*4882a593Smuzhiyun 		uint64_t reserved_13_63:51;
518*4882a593Smuzhiyun #endif
519*4882a593Smuzhiyun 	} cn58xx;
520*4882a593Smuzhiyun };
521*4882a593Smuzhiyun 
522*4882a593Smuzhiyun union cvmx_asxx_tx_hi_waterx {
523*4882a593Smuzhiyun 	uint64_t u64;
524*4882a593Smuzhiyun 	struct cvmx_asxx_tx_hi_waterx_s {
525*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
526*4882a593Smuzhiyun 		uint64_t reserved_4_63:60;
527*4882a593Smuzhiyun 		uint64_t mark:4;
528*4882a593Smuzhiyun #else
529*4882a593Smuzhiyun 		uint64_t mark:4;
530*4882a593Smuzhiyun 		uint64_t reserved_4_63:60;
531*4882a593Smuzhiyun #endif
532*4882a593Smuzhiyun 	} s;
533*4882a593Smuzhiyun 	struct cvmx_asxx_tx_hi_waterx_cn30xx {
534*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
535*4882a593Smuzhiyun 		uint64_t reserved_3_63:61;
536*4882a593Smuzhiyun 		uint64_t mark:3;
537*4882a593Smuzhiyun #else
538*4882a593Smuzhiyun 		uint64_t mark:3;
539*4882a593Smuzhiyun 		uint64_t reserved_3_63:61;
540*4882a593Smuzhiyun #endif
541*4882a593Smuzhiyun 	} cn30xx;
542*4882a593Smuzhiyun };
543*4882a593Smuzhiyun 
544*4882a593Smuzhiyun union cvmx_asxx_tx_prt_en {
545*4882a593Smuzhiyun 	uint64_t u64;
546*4882a593Smuzhiyun 	struct cvmx_asxx_tx_prt_en_s {
547*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
548*4882a593Smuzhiyun 		uint64_t reserved_4_63:60;
549*4882a593Smuzhiyun 		uint64_t prt_en:4;
550*4882a593Smuzhiyun #else
551*4882a593Smuzhiyun 		uint64_t prt_en:4;
552*4882a593Smuzhiyun 		uint64_t reserved_4_63:60;
553*4882a593Smuzhiyun #endif
554*4882a593Smuzhiyun 	} s;
555*4882a593Smuzhiyun 	struct cvmx_asxx_tx_prt_en_cn30xx {
556*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
557*4882a593Smuzhiyun 		uint64_t reserved_3_63:61;
558*4882a593Smuzhiyun 		uint64_t prt_en:3;
559*4882a593Smuzhiyun #else
560*4882a593Smuzhiyun 		uint64_t prt_en:3;
561*4882a593Smuzhiyun 		uint64_t reserved_3_63:61;
562*4882a593Smuzhiyun #endif
563*4882a593Smuzhiyun 	} cn30xx;
564*4882a593Smuzhiyun };
565*4882a593Smuzhiyun 
566*4882a593Smuzhiyun #endif
567