xref: /OK3568_Linux_fs/kernel/arch/mips/include/asm/octeon/cvmx-pescx-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-2012 Cavium Networks
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_PESCX_DEFS_H__
29*4882a593Smuzhiyun #define __CVMX_PESCX_DEFS_H__
30*4882a593Smuzhiyun 
31*4882a593Smuzhiyun #define CVMX_PESCX_BIST_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000018ull) + ((block_id) & 1) * 0x8000000ull)
32*4882a593Smuzhiyun #define CVMX_PESCX_BIST_STATUS2(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000418ull) + ((block_id) & 1) * 0x8000000ull)
33*4882a593Smuzhiyun #define CVMX_PESCX_CFG_RD(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000030ull) + ((block_id) & 1) * 0x8000000ull)
34*4882a593Smuzhiyun #define CVMX_PESCX_CFG_WR(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000028ull) + ((block_id) & 1) * 0x8000000ull)
35*4882a593Smuzhiyun #define CVMX_PESCX_CPL_LUT_VALID(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000098ull) + ((block_id) & 1) * 0x8000000ull)
36*4882a593Smuzhiyun #define CVMX_PESCX_CTL_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000000ull) + ((block_id) & 1) * 0x8000000ull)
37*4882a593Smuzhiyun #define CVMX_PESCX_CTL_STATUS2(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000400ull) + ((block_id) & 1) * 0x8000000ull)
38*4882a593Smuzhiyun #define CVMX_PESCX_DBG_INFO(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000008ull) + ((block_id) & 1) * 0x8000000ull)
39*4882a593Smuzhiyun #define CVMX_PESCX_DBG_INFO_EN(block_id) (CVMX_ADD_IO_SEG(0x00011800C80000A0ull) + ((block_id) & 1) * 0x8000000ull)
40*4882a593Smuzhiyun #define CVMX_PESCX_DIAG_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000020ull) + ((block_id) & 1) * 0x8000000ull)
41*4882a593Smuzhiyun #define CVMX_PESCX_P2N_BAR0_START(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000080ull) + ((block_id) & 1) * 0x8000000ull)
42*4882a593Smuzhiyun #define CVMX_PESCX_P2N_BAR1_START(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000088ull) + ((block_id) & 1) * 0x8000000ull)
43*4882a593Smuzhiyun #define CVMX_PESCX_P2N_BAR2_START(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000090ull) + ((block_id) & 1) * 0x8000000ull)
44*4882a593Smuzhiyun #define CVMX_PESCX_P2P_BARX_END(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C8000048ull) + (((offset) & 3) + ((block_id) & 1) * 0x800000ull) * 16)
45*4882a593Smuzhiyun #define CVMX_PESCX_P2P_BARX_START(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C8000040ull) + (((offset) & 3) + ((block_id) & 1) * 0x800000ull) * 16)
46*4882a593Smuzhiyun #define CVMX_PESCX_TLP_CREDITS(block_id) (CVMX_ADD_IO_SEG(0x00011800C8000038ull) + ((block_id) & 1) * 0x8000000ull)
47*4882a593Smuzhiyun 
48*4882a593Smuzhiyun union cvmx_pescx_bist_status {
49*4882a593Smuzhiyun 	uint64_t u64;
50*4882a593Smuzhiyun 	struct cvmx_pescx_bist_status_s {
51*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
52*4882a593Smuzhiyun 		uint64_t reserved_13_63:51;
53*4882a593Smuzhiyun 		uint64_t rqdata5:1;
54*4882a593Smuzhiyun 		uint64_t ctlp_or:1;
55*4882a593Smuzhiyun 		uint64_t ntlp_or:1;
56*4882a593Smuzhiyun 		uint64_t ptlp_or:1;
57*4882a593Smuzhiyun 		uint64_t retry:1;
58*4882a593Smuzhiyun 		uint64_t rqdata0:1;
59*4882a593Smuzhiyun 		uint64_t rqdata1:1;
60*4882a593Smuzhiyun 		uint64_t rqdata2:1;
61*4882a593Smuzhiyun 		uint64_t rqdata3:1;
62*4882a593Smuzhiyun 		uint64_t rqdata4:1;
63*4882a593Smuzhiyun 		uint64_t rqhdr1:1;
64*4882a593Smuzhiyun 		uint64_t rqhdr0:1;
65*4882a593Smuzhiyun 		uint64_t sot:1;
66*4882a593Smuzhiyun #else
67*4882a593Smuzhiyun 		uint64_t sot:1;
68*4882a593Smuzhiyun 		uint64_t rqhdr0:1;
69*4882a593Smuzhiyun 		uint64_t rqhdr1:1;
70*4882a593Smuzhiyun 		uint64_t rqdata4:1;
71*4882a593Smuzhiyun 		uint64_t rqdata3:1;
72*4882a593Smuzhiyun 		uint64_t rqdata2:1;
73*4882a593Smuzhiyun 		uint64_t rqdata1:1;
74*4882a593Smuzhiyun 		uint64_t rqdata0:1;
75*4882a593Smuzhiyun 		uint64_t retry:1;
76*4882a593Smuzhiyun 		uint64_t ptlp_or:1;
77*4882a593Smuzhiyun 		uint64_t ntlp_or:1;
78*4882a593Smuzhiyun 		uint64_t ctlp_or:1;
79*4882a593Smuzhiyun 		uint64_t rqdata5:1;
80*4882a593Smuzhiyun 		uint64_t reserved_13_63:51;
81*4882a593Smuzhiyun #endif
82*4882a593Smuzhiyun 	} s;
83*4882a593Smuzhiyun 	struct cvmx_pescx_bist_status_cn52xxp1 {
84*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
85*4882a593Smuzhiyun 		uint64_t reserved_12_63:52;
86*4882a593Smuzhiyun 		uint64_t ctlp_or:1;
87*4882a593Smuzhiyun 		uint64_t ntlp_or:1;
88*4882a593Smuzhiyun 		uint64_t ptlp_or:1;
89*4882a593Smuzhiyun 		uint64_t retry:1;
90*4882a593Smuzhiyun 		uint64_t rqdata0:1;
91*4882a593Smuzhiyun 		uint64_t rqdata1:1;
92*4882a593Smuzhiyun 		uint64_t rqdata2:1;
93*4882a593Smuzhiyun 		uint64_t rqdata3:1;
94*4882a593Smuzhiyun 		uint64_t rqdata4:1;
95*4882a593Smuzhiyun 		uint64_t rqhdr1:1;
96*4882a593Smuzhiyun 		uint64_t rqhdr0:1;
97*4882a593Smuzhiyun 		uint64_t sot:1;
98*4882a593Smuzhiyun #else
99*4882a593Smuzhiyun 		uint64_t sot:1;
100*4882a593Smuzhiyun 		uint64_t rqhdr0:1;
101*4882a593Smuzhiyun 		uint64_t rqhdr1:1;
102*4882a593Smuzhiyun 		uint64_t rqdata4:1;
103*4882a593Smuzhiyun 		uint64_t rqdata3:1;
104*4882a593Smuzhiyun 		uint64_t rqdata2:1;
105*4882a593Smuzhiyun 		uint64_t rqdata1:1;
106*4882a593Smuzhiyun 		uint64_t rqdata0:1;
107*4882a593Smuzhiyun 		uint64_t retry:1;
108*4882a593Smuzhiyun 		uint64_t ptlp_or:1;
109*4882a593Smuzhiyun 		uint64_t ntlp_or:1;
110*4882a593Smuzhiyun 		uint64_t ctlp_or:1;
111*4882a593Smuzhiyun 		uint64_t reserved_12_63:52;
112*4882a593Smuzhiyun #endif
113*4882a593Smuzhiyun 	} cn52xxp1;
114*4882a593Smuzhiyun };
115*4882a593Smuzhiyun 
116*4882a593Smuzhiyun union cvmx_pescx_bist_status2 {
117*4882a593Smuzhiyun 	uint64_t u64;
118*4882a593Smuzhiyun 	struct cvmx_pescx_bist_status2_s {
119*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
120*4882a593Smuzhiyun 		uint64_t reserved_14_63:50;
121*4882a593Smuzhiyun 		uint64_t cto_p2e:1;
122*4882a593Smuzhiyun 		uint64_t e2p_cpl:1;
123*4882a593Smuzhiyun 		uint64_t e2p_n:1;
124*4882a593Smuzhiyun 		uint64_t e2p_p:1;
125*4882a593Smuzhiyun 		uint64_t e2p_rsl:1;
126*4882a593Smuzhiyun 		uint64_t dbg_p2e:1;
127*4882a593Smuzhiyun 		uint64_t peai_p2e:1;
128*4882a593Smuzhiyun 		uint64_t rsl_p2e:1;
129*4882a593Smuzhiyun 		uint64_t pef_tpf1:1;
130*4882a593Smuzhiyun 		uint64_t pef_tpf0:1;
131*4882a593Smuzhiyun 		uint64_t pef_tnf:1;
132*4882a593Smuzhiyun 		uint64_t pef_tcf1:1;
133*4882a593Smuzhiyun 		uint64_t pef_tc0:1;
134*4882a593Smuzhiyun 		uint64_t ppf:1;
135*4882a593Smuzhiyun #else
136*4882a593Smuzhiyun 		uint64_t ppf:1;
137*4882a593Smuzhiyun 		uint64_t pef_tc0:1;
138*4882a593Smuzhiyun 		uint64_t pef_tcf1:1;
139*4882a593Smuzhiyun 		uint64_t pef_tnf:1;
140*4882a593Smuzhiyun 		uint64_t pef_tpf0:1;
141*4882a593Smuzhiyun 		uint64_t pef_tpf1:1;
142*4882a593Smuzhiyun 		uint64_t rsl_p2e:1;
143*4882a593Smuzhiyun 		uint64_t peai_p2e:1;
144*4882a593Smuzhiyun 		uint64_t dbg_p2e:1;
145*4882a593Smuzhiyun 		uint64_t e2p_rsl:1;
146*4882a593Smuzhiyun 		uint64_t e2p_p:1;
147*4882a593Smuzhiyun 		uint64_t e2p_n:1;
148*4882a593Smuzhiyun 		uint64_t e2p_cpl:1;
149*4882a593Smuzhiyun 		uint64_t cto_p2e:1;
150*4882a593Smuzhiyun 		uint64_t reserved_14_63:50;
151*4882a593Smuzhiyun #endif
152*4882a593Smuzhiyun 	} s;
153*4882a593Smuzhiyun };
154*4882a593Smuzhiyun 
155*4882a593Smuzhiyun union cvmx_pescx_cfg_rd {
156*4882a593Smuzhiyun 	uint64_t u64;
157*4882a593Smuzhiyun 	struct cvmx_pescx_cfg_rd_s {
158*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
159*4882a593Smuzhiyun 		uint64_t data:32;
160*4882a593Smuzhiyun 		uint64_t addr:32;
161*4882a593Smuzhiyun #else
162*4882a593Smuzhiyun 		uint64_t addr:32;
163*4882a593Smuzhiyun 		uint64_t data:32;
164*4882a593Smuzhiyun #endif
165*4882a593Smuzhiyun 	} s;
166*4882a593Smuzhiyun };
167*4882a593Smuzhiyun 
168*4882a593Smuzhiyun union cvmx_pescx_cfg_wr {
169*4882a593Smuzhiyun 	uint64_t u64;
170*4882a593Smuzhiyun 	struct cvmx_pescx_cfg_wr_s {
171*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
172*4882a593Smuzhiyun 		uint64_t data:32;
173*4882a593Smuzhiyun 		uint64_t addr:32;
174*4882a593Smuzhiyun #else
175*4882a593Smuzhiyun 		uint64_t addr:32;
176*4882a593Smuzhiyun 		uint64_t data:32;
177*4882a593Smuzhiyun #endif
178*4882a593Smuzhiyun 	} s;
179*4882a593Smuzhiyun };
180*4882a593Smuzhiyun 
181*4882a593Smuzhiyun union cvmx_pescx_cpl_lut_valid {
182*4882a593Smuzhiyun 	uint64_t u64;
183*4882a593Smuzhiyun 	struct cvmx_pescx_cpl_lut_valid_s {
184*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
185*4882a593Smuzhiyun 		uint64_t reserved_32_63:32;
186*4882a593Smuzhiyun 		uint64_t tag:32;
187*4882a593Smuzhiyun #else
188*4882a593Smuzhiyun 		uint64_t tag:32;
189*4882a593Smuzhiyun 		uint64_t reserved_32_63:32;
190*4882a593Smuzhiyun #endif
191*4882a593Smuzhiyun 	} s;
192*4882a593Smuzhiyun };
193*4882a593Smuzhiyun 
194*4882a593Smuzhiyun union cvmx_pescx_ctl_status {
195*4882a593Smuzhiyun 	uint64_t u64;
196*4882a593Smuzhiyun 	struct cvmx_pescx_ctl_status_s {
197*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
198*4882a593Smuzhiyun 		uint64_t reserved_28_63:36;
199*4882a593Smuzhiyun 		uint64_t dnum:5;
200*4882a593Smuzhiyun 		uint64_t pbus:8;
201*4882a593Smuzhiyun 		uint64_t qlm_cfg:2;
202*4882a593Smuzhiyun 		uint64_t lane_swp:1;
203*4882a593Smuzhiyun 		uint64_t pm_xtoff:1;
204*4882a593Smuzhiyun 		uint64_t pm_xpme:1;
205*4882a593Smuzhiyun 		uint64_t ob_p_cmd:1;
206*4882a593Smuzhiyun 		uint64_t reserved_7_8:2;
207*4882a593Smuzhiyun 		uint64_t nf_ecrc:1;
208*4882a593Smuzhiyun 		uint64_t dly_one:1;
209*4882a593Smuzhiyun 		uint64_t lnk_enb:1;
210*4882a593Smuzhiyun 		uint64_t ro_ctlp:1;
211*4882a593Smuzhiyun 		uint64_t reserved_2_2:1;
212*4882a593Smuzhiyun 		uint64_t inv_ecrc:1;
213*4882a593Smuzhiyun 		uint64_t inv_lcrc:1;
214*4882a593Smuzhiyun #else
215*4882a593Smuzhiyun 		uint64_t inv_lcrc:1;
216*4882a593Smuzhiyun 		uint64_t inv_ecrc:1;
217*4882a593Smuzhiyun 		uint64_t reserved_2_2:1;
218*4882a593Smuzhiyun 		uint64_t ro_ctlp:1;
219*4882a593Smuzhiyun 		uint64_t lnk_enb:1;
220*4882a593Smuzhiyun 		uint64_t dly_one:1;
221*4882a593Smuzhiyun 		uint64_t nf_ecrc:1;
222*4882a593Smuzhiyun 		uint64_t reserved_7_8:2;
223*4882a593Smuzhiyun 		uint64_t ob_p_cmd:1;
224*4882a593Smuzhiyun 		uint64_t pm_xpme:1;
225*4882a593Smuzhiyun 		uint64_t pm_xtoff:1;
226*4882a593Smuzhiyun 		uint64_t lane_swp:1;
227*4882a593Smuzhiyun 		uint64_t qlm_cfg:2;
228*4882a593Smuzhiyun 		uint64_t pbus:8;
229*4882a593Smuzhiyun 		uint64_t dnum:5;
230*4882a593Smuzhiyun 		uint64_t reserved_28_63:36;
231*4882a593Smuzhiyun #endif
232*4882a593Smuzhiyun 	} s;
233*4882a593Smuzhiyun 	struct cvmx_pescx_ctl_status_cn56xx {
234*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
235*4882a593Smuzhiyun 		uint64_t reserved_28_63:36;
236*4882a593Smuzhiyun 		uint64_t dnum:5;
237*4882a593Smuzhiyun 		uint64_t pbus:8;
238*4882a593Smuzhiyun 		uint64_t qlm_cfg:2;
239*4882a593Smuzhiyun 		uint64_t reserved_12_12:1;
240*4882a593Smuzhiyun 		uint64_t pm_xtoff:1;
241*4882a593Smuzhiyun 		uint64_t pm_xpme:1;
242*4882a593Smuzhiyun 		uint64_t ob_p_cmd:1;
243*4882a593Smuzhiyun 		uint64_t reserved_7_8:2;
244*4882a593Smuzhiyun 		uint64_t nf_ecrc:1;
245*4882a593Smuzhiyun 		uint64_t dly_one:1;
246*4882a593Smuzhiyun 		uint64_t lnk_enb:1;
247*4882a593Smuzhiyun 		uint64_t ro_ctlp:1;
248*4882a593Smuzhiyun 		uint64_t reserved_2_2:1;
249*4882a593Smuzhiyun 		uint64_t inv_ecrc:1;
250*4882a593Smuzhiyun 		uint64_t inv_lcrc:1;
251*4882a593Smuzhiyun #else
252*4882a593Smuzhiyun 		uint64_t inv_lcrc:1;
253*4882a593Smuzhiyun 		uint64_t inv_ecrc:1;
254*4882a593Smuzhiyun 		uint64_t reserved_2_2:1;
255*4882a593Smuzhiyun 		uint64_t ro_ctlp:1;
256*4882a593Smuzhiyun 		uint64_t lnk_enb:1;
257*4882a593Smuzhiyun 		uint64_t dly_one:1;
258*4882a593Smuzhiyun 		uint64_t nf_ecrc:1;
259*4882a593Smuzhiyun 		uint64_t reserved_7_8:2;
260*4882a593Smuzhiyun 		uint64_t ob_p_cmd:1;
261*4882a593Smuzhiyun 		uint64_t pm_xpme:1;
262*4882a593Smuzhiyun 		uint64_t pm_xtoff:1;
263*4882a593Smuzhiyun 		uint64_t reserved_12_12:1;
264*4882a593Smuzhiyun 		uint64_t qlm_cfg:2;
265*4882a593Smuzhiyun 		uint64_t pbus:8;
266*4882a593Smuzhiyun 		uint64_t dnum:5;
267*4882a593Smuzhiyun 		uint64_t reserved_28_63:36;
268*4882a593Smuzhiyun #endif
269*4882a593Smuzhiyun 	} cn56xx;
270*4882a593Smuzhiyun };
271*4882a593Smuzhiyun 
272*4882a593Smuzhiyun union cvmx_pescx_ctl_status2 {
273*4882a593Smuzhiyun 	uint64_t u64;
274*4882a593Smuzhiyun 	struct cvmx_pescx_ctl_status2_s {
275*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
276*4882a593Smuzhiyun 		uint64_t reserved_2_63:62;
277*4882a593Smuzhiyun 		uint64_t pclk_run:1;
278*4882a593Smuzhiyun 		uint64_t pcierst:1;
279*4882a593Smuzhiyun #else
280*4882a593Smuzhiyun 		uint64_t pcierst:1;
281*4882a593Smuzhiyun 		uint64_t pclk_run:1;
282*4882a593Smuzhiyun 		uint64_t reserved_2_63:62;
283*4882a593Smuzhiyun #endif
284*4882a593Smuzhiyun 	} s;
285*4882a593Smuzhiyun 	struct cvmx_pescx_ctl_status2_cn52xxp1 {
286*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
287*4882a593Smuzhiyun 		uint64_t reserved_1_63:63;
288*4882a593Smuzhiyun 		uint64_t pcierst:1;
289*4882a593Smuzhiyun #else
290*4882a593Smuzhiyun 		uint64_t pcierst:1;
291*4882a593Smuzhiyun 		uint64_t reserved_1_63:63;
292*4882a593Smuzhiyun #endif
293*4882a593Smuzhiyun 	} cn52xxp1;
294*4882a593Smuzhiyun };
295*4882a593Smuzhiyun 
296*4882a593Smuzhiyun union cvmx_pescx_dbg_info {
297*4882a593Smuzhiyun 	uint64_t u64;
298*4882a593Smuzhiyun 	struct cvmx_pescx_dbg_info_s {
299*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
300*4882a593Smuzhiyun 		uint64_t reserved_31_63:33;
301*4882a593Smuzhiyun 		uint64_t ecrc_e:1;
302*4882a593Smuzhiyun 		uint64_t rawwpp:1;
303*4882a593Smuzhiyun 		uint64_t racpp:1;
304*4882a593Smuzhiyun 		uint64_t ramtlp:1;
305*4882a593Smuzhiyun 		uint64_t rarwdns:1;
306*4882a593Smuzhiyun 		uint64_t caar:1;
307*4882a593Smuzhiyun 		uint64_t racca:1;
308*4882a593Smuzhiyun 		uint64_t racur:1;
309*4882a593Smuzhiyun 		uint64_t rauc:1;
310*4882a593Smuzhiyun 		uint64_t rqo:1;
311*4882a593Smuzhiyun 		uint64_t fcuv:1;
312*4882a593Smuzhiyun 		uint64_t rpe:1;
313*4882a593Smuzhiyun 		uint64_t fcpvwt:1;
314*4882a593Smuzhiyun 		uint64_t dpeoosd:1;
315*4882a593Smuzhiyun 		uint64_t rtwdle:1;
316*4882a593Smuzhiyun 		uint64_t rdwdle:1;
317*4882a593Smuzhiyun 		uint64_t mre:1;
318*4882a593Smuzhiyun 		uint64_t rte:1;
319*4882a593Smuzhiyun 		uint64_t acto:1;
320*4882a593Smuzhiyun 		uint64_t rvdm:1;
321*4882a593Smuzhiyun 		uint64_t rumep:1;
322*4882a593Smuzhiyun 		uint64_t rptamrc:1;
323*4882a593Smuzhiyun 		uint64_t rpmerc:1;
324*4882a593Smuzhiyun 		uint64_t rfemrc:1;
325*4882a593Smuzhiyun 		uint64_t rnfemrc:1;
326*4882a593Smuzhiyun 		uint64_t rcemrc:1;
327*4882a593Smuzhiyun 		uint64_t rpoison:1;
328*4882a593Smuzhiyun 		uint64_t recrce:1;
329*4882a593Smuzhiyun 		uint64_t rtlplle:1;
330*4882a593Smuzhiyun 		uint64_t rtlpmal:1;
331*4882a593Smuzhiyun 		uint64_t spoison:1;
332*4882a593Smuzhiyun #else
333*4882a593Smuzhiyun 		uint64_t spoison:1;
334*4882a593Smuzhiyun 		uint64_t rtlpmal:1;
335*4882a593Smuzhiyun 		uint64_t rtlplle:1;
336*4882a593Smuzhiyun 		uint64_t recrce:1;
337*4882a593Smuzhiyun 		uint64_t rpoison:1;
338*4882a593Smuzhiyun 		uint64_t rcemrc:1;
339*4882a593Smuzhiyun 		uint64_t rnfemrc:1;
340*4882a593Smuzhiyun 		uint64_t rfemrc:1;
341*4882a593Smuzhiyun 		uint64_t rpmerc:1;
342*4882a593Smuzhiyun 		uint64_t rptamrc:1;
343*4882a593Smuzhiyun 		uint64_t rumep:1;
344*4882a593Smuzhiyun 		uint64_t rvdm:1;
345*4882a593Smuzhiyun 		uint64_t acto:1;
346*4882a593Smuzhiyun 		uint64_t rte:1;
347*4882a593Smuzhiyun 		uint64_t mre:1;
348*4882a593Smuzhiyun 		uint64_t rdwdle:1;
349*4882a593Smuzhiyun 		uint64_t rtwdle:1;
350*4882a593Smuzhiyun 		uint64_t dpeoosd:1;
351*4882a593Smuzhiyun 		uint64_t fcpvwt:1;
352*4882a593Smuzhiyun 		uint64_t rpe:1;
353*4882a593Smuzhiyun 		uint64_t fcuv:1;
354*4882a593Smuzhiyun 		uint64_t rqo:1;
355*4882a593Smuzhiyun 		uint64_t rauc:1;
356*4882a593Smuzhiyun 		uint64_t racur:1;
357*4882a593Smuzhiyun 		uint64_t racca:1;
358*4882a593Smuzhiyun 		uint64_t caar:1;
359*4882a593Smuzhiyun 		uint64_t rarwdns:1;
360*4882a593Smuzhiyun 		uint64_t ramtlp:1;
361*4882a593Smuzhiyun 		uint64_t racpp:1;
362*4882a593Smuzhiyun 		uint64_t rawwpp:1;
363*4882a593Smuzhiyun 		uint64_t ecrc_e:1;
364*4882a593Smuzhiyun 		uint64_t reserved_31_63:33;
365*4882a593Smuzhiyun #endif
366*4882a593Smuzhiyun 	} s;
367*4882a593Smuzhiyun };
368*4882a593Smuzhiyun 
369*4882a593Smuzhiyun union cvmx_pescx_dbg_info_en {
370*4882a593Smuzhiyun 	uint64_t u64;
371*4882a593Smuzhiyun 	struct cvmx_pescx_dbg_info_en_s {
372*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
373*4882a593Smuzhiyun 		uint64_t reserved_31_63:33;
374*4882a593Smuzhiyun 		uint64_t ecrc_e:1;
375*4882a593Smuzhiyun 		uint64_t rawwpp:1;
376*4882a593Smuzhiyun 		uint64_t racpp:1;
377*4882a593Smuzhiyun 		uint64_t ramtlp:1;
378*4882a593Smuzhiyun 		uint64_t rarwdns:1;
379*4882a593Smuzhiyun 		uint64_t caar:1;
380*4882a593Smuzhiyun 		uint64_t racca:1;
381*4882a593Smuzhiyun 		uint64_t racur:1;
382*4882a593Smuzhiyun 		uint64_t rauc:1;
383*4882a593Smuzhiyun 		uint64_t rqo:1;
384*4882a593Smuzhiyun 		uint64_t fcuv:1;
385*4882a593Smuzhiyun 		uint64_t rpe:1;
386*4882a593Smuzhiyun 		uint64_t fcpvwt:1;
387*4882a593Smuzhiyun 		uint64_t dpeoosd:1;
388*4882a593Smuzhiyun 		uint64_t rtwdle:1;
389*4882a593Smuzhiyun 		uint64_t rdwdle:1;
390*4882a593Smuzhiyun 		uint64_t mre:1;
391*4882a593Smuzhiyun 		uint64_t rte:1;
392*4882a593Smuzhiyun 		uint64_t acto:1;
393*4882a593Smuzhiyun 		uint64_t rvdm:1;
394*4882a593Smuzhiyun 		uint64_t rumep:1;
395*4882a593Smuzhiyun 		uint64_t rptamrc:1;
396*4882a593Smuzhiyun 		uint64_t rpmerc:1;
397*4882a593Smuzhiyun 		uint64_t rfemrc:1;
398*4882a593Smuzhiyun 		uint64_t rnfemrc:1;
399*4882a593Smuzhiyun 		uint64_t rcemrc:1;
400*4882a593Smuzhiyun 		uint64_t rpoison:1;
401*4882a593Smuzhiyun 		uint64_t recrce:1;
402*4882a593Smuzhiyun 		uint64_t rtlplle:1;
403*4882a593Smuzhiyun 		uint64_t rtlpmal:1;
404*4882a593Smuzhiyun 		uint64_t spoison:1;
405*4882a593Smuzhiyun #else
406*4882a593Smuzhiyun 		uint64_t spoison:1;
407*4882a593Smuzhiyun 		uint64_t rtlpmal:1;
408*4882a593Smuzhiyun 		uint64_t rtlplle:1;
409*4882a593Smuzhiyun 		uint64_t recrce:1;
410*4882a593Smuzhiyun 		uint64_t rpoison:1;
411*4882a593Smuzhiyun 		uint64_t rcemrc:1;
412*4882a593Smuzhiyun 		uint64_t rnfemrc:1;
413*4882a593Smuzhiyun 		uint64_t rfemrc:1;
414*4882a593Smuzhiyun 		uint64_t rpmerc:1;
415*4882a593Smuzhiyun 		uint64_t rptamrc:1;
416*4882a593Smuzhiyun 		uint64_t rumep:1;
417*4882a593Smuzhiyun 		uint64_t rvdm:1;
418*4882a593Smuzhiyun 		uint64_t acto:1;
419*4882a593Smuzhiyun 		uint64_t rte:1;
420*4882a593Smuzhiyun 		uint64_t mre:1;
421*4882a593Smuzhiyun 		uint64_t rdwdle:1;
422*4882a593Smuzhiyun 		uint64_t rtwdle:1;
423*4882a593Smuzhiyun 		uint64_t dpeoosd:1;
424*4882a593Smuzhiyun 		uint64_t fcpvwt:1;
425*4882a593Smuzhiyun 		uint64_t rpe:1;
426*4882a593Smuzhiyun 		uint64_t fcuv:1;
427*4882a593Smuzhiyun 		uint64_t rqo:1;
428*4882a593Smuzhiyun 		uint64_t rauc:1;
429*4882a593Smuzhiyun 		uint64_t racur:1;
430*4882a593Smuzhiyun 		uint64_t racca:1;
431*4882a593Smuzhiyun 		uint64_t caar:1;
432*4882a593Smuzhiyun 		uint64_t rarwdns:1;
433*4882a593Smuzhiyun 		uint64_t ramtlp:1;
434*4882a593Smuzhiyun 		uint64_t racpp:1;
435*4882a593Smuzhiyun 		uint64_t rawwpp:1;
436*4882a593Smuzhiyun 		uint64_t ecrc_e:1;
437*4882a593Smuzhiyun 		uint64_t reserved_31_63:33;
438*4882a593Smuzhiyun #endif
439*4882a593Smuzhiyun 	} s;
440*4882a593Smuzhiyun };
441*4882a593Smuzhiyun 
442*4882a593Smuzhiyun union cvmx_pescx_diag_status {
443*4882a593Smuzhiyun 	uint64_t u64;
444*4882a593Smuzhiyun 	struct cvmx_pescx_diag_status_s {
445*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
446*4882a593Smuzhiyun 		uint64_t reserved_4_63:60;
447*4882a593Smuzhiyun 		uint64_t pm_dst:1;
448*4882a593Smuzhiyun 		uint64_t pm_stat:1;
449*4882a593Smuzhiyun 		uint64_t pm_en:1;
450*4882a593Smuzhiyun 		uint64_t aux_en:1;
451*4882a593Smuzhiyun #else
452*4882a593Smuzhiyun 		uint64_t aux_en:1;
453*4882a593Smuzhiyun 		uint64_t pm_en:1;
454*4882a593Smuzhiyun 		uint64_t pm_stat:1;
455*4882a593Smuzhiyun 		uint64_t pm_dst:1;
456*4882a593Smuzhiyun 		uint64_t reserved_4_63:60;
457*4882a593Smuzhiyun #endif
458*4882a593Smuzhiyun 	} s;
459*4882a593Smuzhiyun };
460*4882a593Smuzhiyun 
461*4882a593Smuzhiyun union cvmx_pescx_p2n_bar0_start {
462*4882a593Smuzhiyun 	uint64_t u64;
463*4882a593Smuzhiyun 	struct cvmx_pescx_p2n_bar0_start_s {
464*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
465*4882a593Smuzhiyun 		uint64_t addr:50;
466*4882a593Smuzhiyun 		uint64_t reserved_0_13:14;
467*4882a593Smuzhiyun #else
468*4882a593Smuzhiyun 		uint64_t reserved_0_13:14;
469*4882a593Smuzhiyun 		uint64_t addr:50;
470*4882a593Smuzhiyun #endif
471*4882a593Smuzhiyun 	} s;
472*4882a593Smuzhiyun };
473*4882a593Smuzhiyun 
474*4882a593Smuzhiyun union cvmx_pescx_p2n_bar1_start {
475*4882a593Smuzhiyun 	uint64_t u64;
476*4882a593Smuzhiyun 	struct cvmx_pescx_p2n_bar1_start_s {
477*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
478*4882a593Smuzhiyun 		uint64_t addr:38;
479*4882a593Smuzhiyun 		uint64_t reserved_0_25:26;
480*4882a593Smuzhiyun #else
481*4882a593Smuzhiyun 		uint64_t reserved_0_25:26;
482*4882a593Smuzhiyun 		uint64_t addr:38;
483*4882a593Smuzhiyun #endif
484*4882a593Smuzhiyun 	} s;
485*4882a593Smuzhiyun };
486*4882a593Smuzhiyun 
487*4882a593Smuzhiyun union cvmx_pescx_p2n_bar2_start {
488*4882a593Smuzhiyun 	uint64_t u64;
489*4882a593Smuzhiyun 	struct cvmx_pescx_p2n_bar2_start_s {
490*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
491*4882a593Smuzhiyun 		uint64_t addr:25;
492*4882a593Smuzhiyun 		uint64_t reserved_0_38:39;
493*4882a593Smuzhiyun #else
494*4882a593Smuzhiyun 		uint64_t reserved_0_38:39;
495*4882a593Smuzhiyun 		uint64_t addr:25;
496*4882a593Smuzhiyun #endif
497*4882a593Smuzhiyun 	} s;
498*4882a593Smuzhiyun };
499*4882a593Smuzhiyun 
500*4882a593Smuzhiyun union cvmx_pescx_p2p_barx_end {
501*4882a593Smuzhiyun 	uint64_t u64;
502*4882a593Smuzhiyun 	struct cvmx_pescx_p2p_barx_end_s {
503*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
504*4882a593Smuzhiyun 		uint64_t addr:52;
505*4882a593Smuzhiyun 		uint64_t reserved_0_11:12;
506*4882a593Smuzhiyun #else
507*4882a593Smuzhiyun 		uint64_t reserved_0_11:12;
508*4882a593Smuzhiyun 		uint64_t addr:52;
509*4882a593Smuzhiyun #endif
510*4882a593Smuzhiyun 	} s;
511*4882a593Smuzhiyun };
512*4882a593Smuzhiyun 
513*4882a593Smuzhiyun union cvmx_pescx_p2p_barx_start {
514*4882a593Smuzhiyun 	uint64_t u64;
515*4882a593Smuzhiyun 	struct cvmx_pescx_p2p_barx_start_s {
516*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
517*4882a593Smuzhiyun 		uint64_t addr:52;
518*4882a593Smuzhiyun 		uint64_t reserved_0_11:12;
519*4882a593Smuzhiyun #else
520*4882a593Smuzhiyun 		uint64_t reserved_0_11:12;
521*4882a593Smuzhiyun 		uint64_t addr:52;
522*4882a593Smuzhiyun #endif
523*4882a593Smuzhiyun 	} s;
524*4882a593Smuzhiyun };
525*4882a593Smuzhiyun 
526*4882a593Smuzhiyun union cvmx_pescx_tlp_credits {
527*4882a593Smuzhiyun 	uint64_t u64;
528*4882a593Smuzhiyun 	struct cvmx_pescx_tlp_credits_s {
529*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
530*4882a593Smuzhiyun 		uint64_t reserved_0_63:64;
531*4882a593Smuzhiyun #else
532*4882a593Smuzhiyun 		uint64_t reserved_0_63:64;
533*4882a593Smuzhiyun #endif
534*4882a593Smuzhiyun 	} s;
535*4882a593Smuzhiyun 	struct cvmx_pescx_tlp_credits_cn52xx {
536*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
537*4882a593Smuzhiyun 		uint64_t reserved_56_63:8;
538*4882a593Smuzhiyun 		uint64_t peai_ppf:8;
539*4882a593Smuzhiyun 		uint64_t pesc_cpl:8;
540*4882a593Smuzhiyun 		uint64_t pesc_np:8;
541*4882a593Smuzhiyun 		uint64_t pesc_p:8;
542*4882a593Smuzhiyun 		uint64_t npei_cpl:8;
543*4882a593Smuzhiyun 		uint64_t npei_np:8;
544*4882a593Smuzhiyun 		uint64_t npei_p:8;
545*4882a593Smuzhiyun #else
546*4882a593Smuzhiyun 		uint64_t npei_p:8;
547*4882a593Smuzhiyun 		uint64_t npei_np:8;
548*4882a593Smuzhiyun 		uint64_t npei_cpl:8;
549*4882a593Smuzhiyun 		uint64_t pesc_p:8;
550*4882a593Smuzhiyun 		uint64_t pesc_np:8;
551*4882a593Smuzhiyun 		uint64_t pesc_cpl:8;
552*4882a593Smuzhiyun 		uint64_t peai_ppf:8;
553*4882a593Smuzhiyun 		uint64_t reserved_56_63:8;
554*4882a593Smuzhiyun #endif
555*4882a593Smuzhiyun 	} cn52xx;
556*4882a593Smuzhiyun 	struct cvmx_pescx_tlp_credits_cn52xxp1 {
557*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
558*4882a593Smuzhiyun 		uint64_t reserved_38_63:26;
559*4882a593Smuzhiyun 		uint64_t peai_ppf:8;
560*4882a593Smuzhiyun 		uint64_t pesc_cpl:5;
561*4882a593Smuzhiyun 		uint64_t pesc_np:5;
562*4882a593Smuzhiyun 		uint64_t pesc_p:5;
563*4882a593Smuzhiyun 		uint64_t npei_cpl:5;
564*4882a593Smuzhiyun 		uint64_t npei_np:5;
565*4882a593Smuzhiyun 		uint64_t npei_p:5;
566*4882a593Smuzhiyun #else
567*4882a593Smuzhiyun 		uint64_t npei_p:5;
568*4882a593Smuzhiyun 		uint64_t npei_np:5;
569*4882a593Smuzhiyun 		uint64_t npei_cpl:5;
570*4882a593Smuzhiyun 		uint64_t pesc_p:5;
571*4882a593Smuzhiyun 		uint64_t pesc_np:5;
572*4882a593Smuzhiyun 		uint64_t pesc_cpl:5;
573*4882a593Smuzhiyun 		uint64_t peai_ppf:8;
574*4882a593Smuzhiyun 		uint64_t reserved_38_63:26;
575*4882a593Smuzhiyun #endif
576*4882a593Smuzhiyun 	} cn52xxp1;
577*4882a593Smuzhiyun };
578*4882a593Smuzhiyun 
579*4882a593Smuzhiyun #endif
580