xref: /OK3568_Linux_fs/kernel/arch/mips/include/asm/octeon/cvmx-pemx-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_PEMX_DEFS_H__
29*4882a593Smuzhiyun #define __CVMX_PEMX_DEFS_H__
30*4882a593Smuzhiyun 
31*4882a593Smuzhiyun #define CVMX_PEMX_BAR1_INDEXX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C00000A8ull) + (((offset) & 15) + ((block_id) & 1) * 0x200000ull) * 8)
32*4882a593Smuzhiyun #define CVMX_PEMX_BAR2_MASK(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000130ull) + ((block_id) & 1) * 0x1000000ull)
33*4882a593Smuzhiyun #define CVMX_PEMX_BAR_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000128ull) + ((block_id) & 1) * 0x1000000ull)
34*4882a593Smuzhiyun #define CVMX_PEMX_BIST_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000018ull) + ((block_id) & 1) * 0x1000000ull)
35*4882a593Smuzhiyun #define CVMX_PEMX_BIST_STATUS2(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000420ull) + ((block_id) & 1) * 0x1000000ull)
36*4882a593Smuzhiyun #define CVMX_PEMX_CFG_RD(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000030ull) + ((block_id) & 1) * 0x1000000ull)
37*4882a593Smuzhiyun #define CVMX_PEMX_CFG_WR(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000028ull) + ((block_id) & 1) * 0x1000000ull)
38*4882a593Smuzhiyun #define CVMX_PEMX_CPL_LUT_VALID(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000098ull) + ((block_id) & 1) * 0x1000000ull)
39*4882a593Smuzhiyun #define CVMX_PEMX_CTL_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000000ull) + ((block_id) & 1) * 0x1000000ull)
40*4882a593Smuzhiyun #define CVMX_PEMX_DBG_INFO(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000008ull) + ((block_id) & 1) * 0x1000000ull)
41*4882a593Smuzhiyun #define CVMX_PEMX_DBG_INFO_EN(block_id) (CVMX_ADD_IO_SEG(0x00011800C00000A0ull) + ((block_id) & 1) * 0x1000000ull)
42*4882a593Smuzhiyun #define CVMX_PEMX_DIAG_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000020ull) + ((block_id) & 1) * 0x1000000ull)
43*4882a593Smuzhiyun #define CVMX_PEMX_INB_READ_CREDITS(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000138ull) + ((block_id) & 1) * 0x1000000ull)
44*4882a593Smuzhiyun #define CVMX_PEMX_INT_ENB(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000410ull) + ((block_id) & 1) * 0x1000000ull)
45*4882a593Smuzhiyun #define CVMX_PEMX_INT_ENB_INT(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000418ull) + ((block_id) & 1) * 0x1000000ull)
46*4882a593Smuzhiyun #define CVMX_PEMX_INT_SUM(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000408ull) + ((block_id) & 1) * 0x1000000ull)
47*4882a593Smuzhiyun #define CVMX_PEMX_P2N_BAR0_START(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000080ull) + ((block_id) & 1) * 0x1000000ull)
48*4882a593Smuzhiyun #define CVMX_PEMX_P2N_BAR1_START(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000088ull) + ((block_id) & 1) * 0x1000000ull)
49*4882a593Smuzhiyun #define CVMX_PEMX_P2N_BAR2_START(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000090ull) + ((block_id) & 1) * 0x1000000ull)
50*4882a593Smuzhiyun #define CVMX_PEMX_P2P_BARX_END(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C0000048ull) + (((offset) & 3) + ((block_id) & 1) * 0x100000ull) * 16)
51*4882a593Smuzhiyun #define CVMX_PEMX_P2P_BARX_START(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C0000040ull) + (((offset) & 3) + ((block_id) & 1) * 0x100000ull) * 16)
52*4882a593Smuzhiyun #define CVMX_PEMX_TLP_CREDITS(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000038ull) + ((block_id) & 1) * 0x1000000ull)
53*4882a593Smuzhiyun 
54*4882a593Smuzhiyun union cvmx_pemx_bar1_indexx {
55*4882a593Smuzhiyun 	uint64_t u64;
56*4882a593Smuzhiyun 	struct cvmx_pemx_bar1_indexx_s {
57*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
58*4882a593Smuzhiyun 		uint64_t reserved_20_63:44;
59*4882a593Smuzhiyun 		uint64_t addr_idx:16;
60*4882a593Smuzhiyun 		uint64_t ca:1;
61*4882a593Smuzhiyun 		uint64_t end_swp:2;
62*4882a593Smuzhiyun 		uint64_t addr_v:1;
63*4882a593Smuzhiyun #else
64*4882a593Smuzhiyun 		uint64_t addr_v:1;
65*4882a593Smuzhiyun 		uint64_t end_swp:2;
66*4882a593Smuzhiyun 		uint64_t ca:1;
67*4882a593Smuzhiyun 		uint64_t addr_idx:16;
68*4882a593Smuzhiyun 		uint64_t reserved_20_63:44;
69*4882a593Smuzhiyun #endif
70*4882a593Smuzhiyun 	} s;
71*4882a593Smuzhiyun };
72*4882a593Smuzhiyun 
73*4882a593Smuzhiyun union cvmx_pemx_bar2_mask {
74*4882a593Smuzhiyun 	uint64_t u64;
75*4882a593Smuzhiyun 	struct cvmx_pemx_bar2_mask_s {
76*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
77*4882a593Smuzhiyun 		uint64_t reserved_38_63:26;
78*4882a593Smuzhiyun 		uint64_t mask:35;
79*4882a593Smuzhiyun 		uint64_t reserved_0_2:3;
80*4882a593Smuzhiyun #else
81*4882a593Smuzhiyun 		uint64_t reserved_0_2:3;
82*4882a593Smuzhiyun 		uint64_t mask:35;
83*4882a593Smuzhiyun 		uint64_t reserved_38_63:26;
84*4882a593Smuzhiyun #endif
85*4882a593Smuzhiyun 	} s;
86*4882a593Smuzhiyun };
87*4882a593Smuzhiyun 
88*4882a593Smuzhiyun union cvmx_pemx_bar_ctl {
89*4882a593Smuzhiyun 	uint64_t u64;
90*4882a593Smuzhiyun 	struct cvmx_pemx_bar_ctl_s {
91*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
92*4882a593Smuzhiyun 		uint64_t reserved_7_63:57;
93*4882a593Smuzhiyun 		uint64_t bar1_siz:3;
94*4882a593Smuzhiyun 		uint64_t bar2_enb:1;
95*4882a593Smuzhiyun 		uint64_t bar2_esx:2;
96*4882a593Smuzhiyun 		uint64_t bar2_cax:1;
97*4882a593Smuzhiyun #else
98*4882a593Smuzhiyun 		uint64_t bar2_cax:1;
99*4882a593Smuzhiyun 		uint64_t bar2_esx:2;
100*4882a593Smuzhiyun 		uint64_t bar2_enb:1;
101*4882a593Smuzhiyun 		uint64_t bar1_siz:3;
102*4882a593Smuzhiyun 		uint64_t reserved_7_63:57;
103*4882a593Smuzhiyun #endif
104*4882a593Smuzhiyun 	} s;
105*4882a593Smuzhiyun };
106*4882a593Smuzhiyun 
107*4882a593Smuzhiyun union cvmx_pemx_bist_status {
108*4882a593Smuzhiyun 	uint64_t u64;
109*4882a593Smuzhiyun 	struct cvmx_pemx_bist_status_s {
110*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
111*4882a593Smuzhiyun 		uint64_t reserved_8_63:56;
112*4882a593Smuzhiyun 		uint64_t retry:1;
113*4882a593Smuzhiyun 		uint64_t rqdata0:1;
114*4882a593Smuzhiyun 		uint64_t rqdata1:1;
115*4882a593Smuzhiyun 		uint64_t rqdata2:1;
116*4882a593Smuzhiyun 		uint64_t rqdata3:1;
117*4882a593Smuzhiyun 		uint64_t rqhdr1:1;
118*4882a593Smuzhiyun 		uint64_t rqhdr0:1;
119*4882a593Smuzhiyun 		uint64_t sot:1;
120*4882a593Smuzhiyun #else
121*4882a593Smuzhiyun 		uint64_t sot:1;
122*4882a593Smuzhiyun 		uint64_t rqhdr0:1;
123*4882a593Smuzhiyun 		uint64_t rqhdr1:1;
124*4882a593Smuzhiyun 		uint64_t rqdata3:1;
125*4882a593Smuzhiyun 		uint64_t rqdata2:1;
126*4882a593Smuzhiyun 		uint64_t rqdata1:1;
127*4882a593Smuzhiyun 		uint64_t rqdata0:1;
128*4882a593Smuzhiyun 		uint64_t retry:1;
129*4882a593Smuzhiyun 		uint64_t reserved_8_63:56;
130*4882a593Smuzhiyun #endif
131*4882a593Smuzhiyun 	} s;
132*4882a593Smuzhiyun };
133*4882a593Smuzhiyun 
134*4882a593Smuzhiyun union cvmx_pemx_bist_status2 {
135*4882a593Smuzhiyun 	uint64_t u64;
136*4882a593Smuzhiyun 	struct cvmx_pemx_bist_status2_s {
137*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
138*4882a593Smuzhiyun 		uint64_t reserved_10_63:54;
139*4882a593Smuzhiyun 		uint64_t e2p_cpl:1;
140*4882a593Smuzhiyun 		uint64_t e2p_n:1;
141*4882a593Smuzhiyun 		uint64_t e2p_p:1;
142*4882a593Smuzhiyun 		uint64_t peai_p2e:1;
143*4882a593Smuzhiyun 		uint64_t pef_tpf1:1;
144*4882a593Smuzhiyun 		uint64_t pef_tpf0:1;
145*4882a593Smuzhiyun 		uint64_t pef_tnf:1;
146*4882a593Smuzhiyun 		uint64_t pef_tcf1:1;
147*4882a593Smuzhiyun 		uint64_t pef_tc0:1;
148*4882a593Smuzhiyun 		uint64_t ppf:1;
149*4882a593Smuzhiyun #else
150*4882a593Smuzhiyun 		uint64_t ppf:1;
151*4882a593Smuzhiyun 		uint64_t pef_tc0:1;
152*4882a593Smuzhiyun 		uint64_t pef_tcf1:1;
153*4882a593Smuzhiyun 		uint64_t pef_tnf:1;
154*4882a593Smuzhiyun 		uint64_t pef_tpf0:1;
155*4882a593Smuzhiyun 		uint64_t pef_tpf1:1;
156*4882a593Smuzhiyun 		uint64_t peai_p2e:1;
157*4882a593Smuzhiyun 		uint64_t e2p_p:1;
158*4882a593Smuzhiyun 		uint64_t e2p_n:1;
159*4882a593Smuzhiyun 		uint64_t e2p_cpl:1;
160*4882a593Smuzhiyun 		uint64_t reserved_10_63:54;
161*4882a593Smuzhiyun #endif
162*4882a593Smuzhiyun 	} s;
163*4882a593Smuzhiyun };
164*4882a593Smuzhiyun 
165*4882a593Smuzhiyun union cvmx_pemx_cfg_rd {
166*4882a593Smuzhiyun 	uint64_t u64;
167*4882a593Smuzhiyun 	struct cvmx_pemx_cfg_rd_s {
168*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
169*4882a593Smuzhiyun 		uint64_t data:32;
170*4882a593Smuzhiyun 		uint64_t addr:32;
171*4882a593Smuzhiyun #else
172*4882a593Smuzhiyun 		uint64_t addr:32;
173*4882a593Smuzhiyun 		uint64_t data:32;
174*4882a593Smuzhiyun #endif
175*4882a593Smuzhiyun 	} s;
176*4882a593Smuzhiyun };
177*4882a593Smuzhiyun 
178*4882a593Smuzhiyun union cvmx_pemx_cfg_wr {
179*4882a593Smuzhiyun 	uint64_t u64;
180*4882a593Smuzhiyun 	struct cvmx_pemx_cfg_wr_s {
181*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
182*4882a593Smuzhiyun 		uint64_t data:32;
183*4882a593Smuzhiyun 		uint64_t addr:32;
184*4882a593Smuzhiyun #else
185*4882a593Smuzhiyun 		uint64_t addr:32;
186*4882a593Smuzhiyun 		uint64_t data:32;
187*4882a593Smuzhiyun #endif
188*4882a593Smuzhiyun 	} s;
189*4882a593Smuzhiyun };
190*4882a593Smuzhiyun 
191*4882a593Smuzhiyun union cvmx_pemx_cpl_lut_valid {
192*4882a593Smuzhiyun 	uint64_t u64;
193*4882a593Smuzhiyun 	struct cvmx_pemx_cpl_lut_valid_s {
194*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
195*4882a593Smuzhiyun 		uint64_t reserved_32_63:32;
196*4882a593Smuzhiyun 		uint64_t tag:32;
197*4882a593Smuzhiyun #else
198*4882a593Smuzhiyun 		uint64_t tag:32;
199*4882a593Smuzhiyun 		uint64_t reserved_32_63:32;
200*4882a593Smuzhiyun #endif
201*4882a593Smuzhiyun 	} s;
202*4882a593Smuzhiyun };
203*4882a593Smuzhiyun 
204*4882a593Smuzhiyun union cvmx_pemx_ctl_status {
205*4882a593Smuzhiyun 	uint64_t u64;
206*4882a593Smuzhiyun 	struct cvmx_pemx_ctl_status_s {
207*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
208*4882a593Smuzhiyun 		uint64_t reserved_48_63:16;
209*4882a593Smuzhiyun 		uint64_t auto_sd:1;
210*4882a593Smuzhiyun 		uint64_t dnum:5;
211*4882a593Smuzhiyun 		uint64_t pbus:8;
212*4882a593Smuzhiyun 		uint64_t reserved_32_33:2;
213*4882a593Smuzhiyun 		uint64_t cfg_rtry:16;
214*4882a593Smuzhiyun 		uint64_t reserved_12_15:4;
215*4882a593Smuzhiyun 		uint64_t pm_xtoff:1;
216*4882a593Smuzhiyun 		uint64_t pm_xpme:1;
217*4882a593Smuzhiyun 		uint64_t ob_p_cmd:1;
218*4882a593Smuzhiyun 		uint64_t reserved_7_8:2;
219*4882a593Smuzhiyun 		uint64_t nf_ecrc:1;
220*4882a593Smuzhiyun 		uint64_t dly_one:1;
221*4882a593Smuzhiyun 		uint64_t lnk_enb:1;
222*4882a593Smuzhiyun 		uint64_t ro_ctlp:1;
223*4882a593Smuzhiyun 		uint64_t fast_lm:1;
224*4882a593Smuzhiyun 		uint64_t inv_ecrc:1;
225*4882a593Smuzhiyun 		uint64_t inv_lcrc:1;
226*4882a593Smuzhiyun #else
227*4882a593Smuzhiyun 		uint64_t inv_lcrc:1;
228*4882a593Smuzhiyun 		uint64_t inv_ecrc:1;
229*4882a593Smuzhiyun 		uint64_t fast_lm:1;
230*4882a593Smuzhiyun 		uint64_t ro_ctlp:1;
231*4882a593Smuzhiyun 		uint64_t lnk_enb:1;
232*4882a593Smuzhiyun 		uint64_t dly_one:1;
233*4882a593Smuzhiyun 		uint64_t nf_ecrc:1;
234*4882a593Smuzhiyun 		uint64_t reserved_7_8:2;
235*4882a593Smuzhiyun 		uint64_t ob_p_cmd:1;
236*4882a593Smuzhiyun 		uint64_t pm_xpme:1;
237*4882a593Smuzhiyun 		uint64_t pm_xtoff:1;
238*4882a593Smuzhiyun 		uint64_t reserved_12_15:4;
239*4882a593Smuzhiyun 		uint64_t cfg_rtry:16;
240*4882a593Smuzhiyun 		uint64_t reserved_32_33:2;
241*4882a593Smuzhiyun 		uint64_t pbus:8;
242*4882a593Smuzhiyun 		uint64_t dnum:5;
243*4882a593Smuzhiyun 		uint64_t auto_sd:1;
244*4882a593Smuzhiyun 		uint64_t reserved_48_63:16;
245*4882a593Smuzhiyun #endif
246*4882a593Smuzhiyun 	} s;
247*4882a593Smuzhiyun };
248*4882a593Smuzhiyun 
249*4882a593Smuzhiyun union cvmx_pemx_dbg_info {
250*4882a593Smuzhiyun 	uint64_t u64;
251*4882a593Smuzhiyun 	struct cvmx_pemx_dbg_info_s {
252*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
253*4882a593Smuzhiyun 		uint64_t reserved_31_63:33;
254*4882a593Smuzhiyun 		uint64_t ecrc_e:1;
255*4882a593Smuzhiyun 		uint64_t rawwpp:1;
256*4882a593Smuzhiyun 		uint64_t racpp:1;
257*4882a593Smuzhiyun 		uint64_t ramtlp:1;
258*4882a593Smuzhiyun 		uint64_t rarwdns:1;
259*4882a593Smuzhiyun 		uint64_t caar:1;
260*4882a593Smuzhiyun 		uint64_t racca:1;
261*4882a593Smuzhiyun 		uint64_t racur:1;
262*4882a593Smuzhiyun 		uint64_t rauc:1;
263*4882a593Smuzhiyun 		uint64_t rqo:1;
264*4882a593Smuzhiyun 		uint64_t fcuv:1;
265*4882a593Smuzhiyun 		uint64_t rpe:1;
266*4882a593Smuzhiyun 		uint64_t fcpvwt:1;
267*4882a593Smuzhiyun 		uint64_t dpeoosd:1;
268*4882a593Smuzhiyun 		uint64_t rtwdle:1;
269*4882a593Smuzhiyun 		uint64_t rdwdle:1;
270*4882a593Smuzhiyun 		uint64_t mre:1;
271*4882a593Smuzhiyun 		uint64_t rte:1;
272*4882a593Smuzhiyun 		uint64_t acto:1;
273*4882a593Smuzhiyun 		uint64_t rvdm:1;
274*4882a593Smuzhiyun 		uint64_t rumep:1;
275*4882a593Smuzhiyun 		uint64_t rptamrc:1;
276*4882a593Smuzhiyun 		uint64_t rpmerc:1;
277*4882a593Smuzhiyun 		uint64_t rfemrc:1;
278*4882a593Smuzhiyun 		uint64_t rnfemrc:1;
279*4882a593Smuzhiyun 		uint64_t rcemrc:1;
280*4882a593Smuzhiyun 		uint64_t rpoison:1;
281*4882a593Smuzhiyun 		uint64_t recrce:1;
282*4882a593Smuzhiyun 		uint64_t rtlplle:1;
283*4882a593Smuzhiyun 		uint64_t rtlpmal:1;
284*4882a593Smuzhiyun 		uint64_t spoison:1;
285*4882a593Smuzhiyun #else
286*4882a593Smuzhiyun 		uint64_t spoison:1;
287*4882a593Smuzhiyun 		uint64_t rtlpmal:1;
288*4882a593Smuzhiyun 		uint64_t rtlplle:1;
289*4882a593Smuzhiyun 		uint64_t recrce:1;
290*4882a593Smuzhiyun 		uint64_t rpoison:1;
291*4882a593Smuzhiyun 		uint64_t rcemrc:1;
292*4882a593Smuzhiyun 		uint64_t rnfemrc:1;
293*4882a593Smuzhiyun 		uint64_t rfemrc:1;
294*4882a593Smuzhiyun 		uint64_t rpmerc:1;
295*4882a593Smuzhiyun 		uint64_t rptamrc:1;
296*4882a593Smuzhiyun 		uint64_t rumep:1;
297*4882a593Smuzhiyun 		uint64_t rvdm:1;
298*4882a593Smuzhiyun 		uint64_t acto:1;
299*4882a593Smuzhiyun 		uint64_t rte:1;
300*4882a593Smuzhiyun 		uint64_t mre:1;
301*4882a593Smuzhiyun 		uint64_t rdwdle:1;
302*4882a593Smuzhiyun 		uint64_t rtwdle:1;
303*4882a593Smuzhiyun 		uint64_t dpeoosd:1;
304*4882a593Smuzhiyun 		uint64_t fcpvwt:1;
305*4882a593Smuzhiyun 		uint64_t rpe:1;
306*4882a593Smuzhiyun 		uint64_t fcuv:1;
307*4882a593Smuzhiyun 		uint64_t rqo:1;
308*4882a593Smuzhiyun 		uint64_t rauc:1;
309*4882a593Smuzhiyun 		uint64_t racur:1;
310*4882a593Smuzhiyun 		uint64_t racca:1;
311*4882a593Smuzhiyun 		uint64_t caar:1;
312*4882a593Smuzhiyun 		uint64_t rarwdns:1;
313*4882a593Smuzhiyun 		uint64_t ramtlp:1;
314*4882a593Smuzhiyun 		uint64_t racpp:1;
315*4882a593Smuzhiyun 		uint64_t rawwpp:1;
316*4882a593Smuzhiyun 		uint64_t ecrc_e:1;
317*4882a593Smuzhiyun 		uint64_t reserved_31_63:33;
318*4882a593Smuzhiyun #endif
319*4882a593Smuzhiyun 	} s;
320*4882a593Smuzhiyun };
321*4882a593Smuzhiyun 
322*4882a593Smuzhiyun union cvmx_pemx_dbg_info_en {
323*4882a593Smuzhiyun 	uint64_t u64;
324*4882a593Smuzhiyun 	struct cvmx_pemx_dbg_info_en_s {
325*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
326*4882a593Smuzhiyun 		uint64_t reserved_31_63:33;
327*4882a593Smuzhiyun 		uint64_t ecrc_e:1;
328*4882a593Smuzhiyun 		uint64_t rawwpp:1;
329*4882a593Smuzhiyun 		uint64_t racpp:1;
330*4882a593Smuzhiyun 		uint64_t ramtlp:1;
331*4882a593Smuzhiyun 		uint64_t rarwdns:1;
332*4882a593Smuzhiyun 		uint64_t caar:1;
333*4882a593Smuzhiyun 		uint64_t racca:1;
334*4882a593Smuzhiyun 		uint64_t racur:1;
335*4882a593Smuzhiyun 		uint64_t rauc:1;
336*4882a593Smuzhiyun 		uint64_t rqo:1;
337*4882a593Smuzhiyun 		uint64_t fcuv:1;
338*4882a593Smuzhiyun 		uint64_t rpe:1;
339*4882a593Smuzhiyun 		uint64_t fcpvwt:1;
340*4882a593Smuzhiyun 		uint64_t dpeoosd:1;
341*4882a593Smuzhiyun 		uint64_t rtwdle:1;
342*4882a593Smuzhiyun 		uint64_t rdwdle:1;
343*4882a593Smuzhiyun 		uint64_t mre:1;
344*4882a593Smuzhiyun 		uint64_t rte:1;
345*4882a593Smuzhiyun 		uint64_t acto:1;
346*4882a593Smuzhiyun 		uint64_t rvdm:1;
347*4882a593Smuzhiyun 		uint64_t rumep:1;
348*4882a593Smuzhiyun 		uint64_t rptamrc:1;
349*4882a593Smuzhiyun 		uint64_t rpmerc:1;
350*4882a593Smuzhiyun 		uint64_t rfemrc:1;
351*4882a593Smuzhiyun 		uint64_t rnfemrc:1;
352*4882a593Smuzhiyun 		uint64_t rcemrc:1;
353*4882a593Smuzhiyun 		uint64_t rpoison:1;
354*4882a593Smuzhiyun 		uint64_t recrce:1;
355*4882a593Smuzhiyun 		uint64_t rtlplle:1;
356*4882a593Smuzhiyun 		uint64_t rtlpmal:1;
357*4882a593Smuzhiyun 		uint64_t spoison:1;
358*4882a593Smuzhiyun #else
359*4882a593Smuzhiyun 		uint64_t spoison:1;
360*4882a593Smuzhiyun 		uint64_t rtlpmal:1;
361*4882a593Smuzhiyun 		uint64_t rtlplle:1;
362*4882a593Smuzhiyun 		uint64_t recrce:1;
363*4882a593Smuzhiyun 		uint64_t rpoison:1;
364*4882a593Smuzhiyun 		uint64_t rcemrc:1;
365*4882a593Smuzhiyun 		uint64_t rnfemrc:1;
366*4882a593Smuzhiyun 		uint64_t rfemrc:1;
367*4882a593Smuzhiyun 		uint64_t rpmerc:1;
368*4882a593Smuzhiyun 		uint64_t rptamrc:1;
369*4882a593Smuzhiyun 		uint64_t rumep:1;
370*4882a593Smuzhiyun 		uint64_t rvdm:1;
371*4882a593Smuzhiyun 		uint64_t acto:1;
372*4882a593Smuzhiyun 		uint64_t rte:1;
373*4882a593Smuzhiyun 		uint64_t mre:1;
374*4882a593Smuzhiyun 		uint64_t rdwdle:1;
375*4882a593Smuzhiyun 		uint64_t rtwdle:1;
376*4882a593Smuzhiyun 		uint64_t dpeoosd:1;
377*4882a593Smuzhiyun 		uint64_t fcpvwt:1;
378*4882a593Smuzhiyun 		uint64_t rpe:1;
379*4882a593Smuzhiyun 		uint64_t fcuv:1;
380*4882a593Smuzhiyun 		uint64_t rqo:1;
381*4882a593Smuzhiyun 		uint64_t rauc:1;
382*4882a593Smuzhiyun 		uint64_t racur:1;
383*4882a593Smuzhiyun 		uint64_t racca:1;
384*4882a593Smuzhiyun 		uint64_t caar:1;
385*4882a593Smuzhiyun 		uint64_t rarwdns:1;
386*4882a593Smuzhiyun 		uint64_t ramtlp:1;
387*4882a593Smuzhiyun 		uint64_t racpp:1;
388*4882a593Smuzhiyun 		uint64_t rawwpp:1;
389*4882a593Smuzhiyun 		uint64_t ecrc_e:1;
390*4882a593Smuzhiyun 		uint64_t reserved_31_63:33;
391*4882a593Smuzhiyun #endif
392*4882a593Smuzhiyun 	} s;
393*4882a593Smuzhiyun };
394*4882a593Smuzhiyun 
395*4882a593Smuzhiyun union cvmx_pemx_diag_status {
396*4882a593Smuzhiyun 	uint64_t u64;
397*4882a593Smuzhiyun 	struct cvmx_pemx_diag_status_s {
398*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
399*4882a593Smuzhiyun 		uint64_t reserved_4_63:60;
400*4882a593Smuzhiyun 		uint64_t pm_dst:1;
401*4882a593Smuzhiyun 		uint64_t pm_stat:1;
402*4882a593Smuzhiyun 		uint64_t pm_en:1;
403*4882a593Smuzhiyun 		uint64_t aux_en:1;
404*4882a593Smuzhiyun #else
405*4882a593Smuzhiyun 		uint64_t aux_en:1;
406*4882a593Smuzhiyun 		uint64_t pm_en:1;
407*4882a593Smuzhiyun 		uint64_t pm_stat:1;
408*4882a593Smuzhiyun 		uint64_t pm_dst:1;
409*4882a593Smuzhiyun 		uint64_t reserved_4_63:60;
410*4882a593Smuzhiyun #endif
411*4882a593Smuzhiyun 	} s;
412*4882a593Smuzhiyun };
413*4882a593Smuzhiyun 
414*4882a593Smuzhiyun union cvmx_pemx_inb_read_credits {
415*4882a593Smuzhiyun 	uint64_t u64;
416*4882a593Smuzhiyun 	struct cvmx_pemx_inb_read_credits_s {
417*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
418*4882a593Smuzhiyun 		uint64_t reserved_6_63:58;
419*4882a593Smuzhiyun 		uint64_t num:6;
420*4882a593Smuzhiyun #else
421*4882a593Smuzhiyun 		uint64_t num:6;
422*4882a593Smuzhiyun 		uint64_t reserved_6_63:58;
423*4882a593Smuzhiyun #endif
424*4882a593Smuzhiyun 	} s;
425*4882a593Smuzhiyun };
426*4882a593Smuzhiyun 
427*4882a593Smuzhiyun union cvmx_pemx_int_enb {
428*4882a593Smuzhiyun 	uint64_t u64;
429*4882a593Smuzhiyun 	struct cvmx_pemx_int_enb_s {
430*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
431*4882a593Smuzhiyun 		uint64_t reserved_14_63:50;
432*4882a593Smuzhiyun 		uint64_t crs_dr:1;
433*4882a593Smuzhiyun 		uint64_t crs_er:1;
434*4882a593Smuzhiyun 		uint64_t rdlk:1;
435*4882a593Smuzhiyun 		uint64_t exc:1;
436*4882a593Smuzhiyun 		uint64_t un_bx:1;
437*4882a593Smuzhiyun 		uint64_t un_b2:1;
438*4882a593Smuzhiyun 		uint64_t un_b1:1;
439*4882a593Smuzhiyun 		uint64_t up_bx:1;
440*4882a593Smuzhiyun 		uint64_t up_b2:1;
441*4882a593Smuzhiyun 		uint64_t up_b1:1;
442*4882a593Smuzhiyun 		uint64_t pmem:1;
443*4882a593Smuzhiyun 		uint64_t pmei:1;
444*4882a593Smuzhiyun 		uint64_t se:1;
445*4882a593Smuzhiyun 		uint64_t aeri:1;
446*4882a593Smuzhiyun #else
447*4882a593Smuzhiyun 		uint64_t aeri:1;
448*4882a593Smuzhiyun 		uint64_t se:1;
449*4882a593Smuzhiyun 		uint64_t pmei:1;
450*4882a593Smuzhiyun 		uint64_t pmem:1;
451*4882a593Smuzhiyun 		uint64_t up_b1:1;
452*4882a593Smuzhiyun 		uint64_t up_b2:1;
453*4882a593Smuzhiyun 		uint64_t up_bx:1;
454*4882a593Smuzhiyun 		uint64_t un_b1:1;
455*4882a593Smuzhiyun 		uint64_t un_b2:1;
456*4882a593Smuzhiyun 		uint64_t un_bx:1;
457*4882a593Smuzhiyun 		uint64_t exc:1;
458*4882a593Smuzhiyun 		uint64_t rdlk:1;
459*4882a593Smuzhiyun 		uint64_t crs_er:1;
460*4882a593Smuzhiyun 		uint64_t crs_dr:1;
461*4882a593Smuzhiyun 		uint64_t reserved_14_63:50;
462*4882a593Smuzhiyun #endif
463*4882a593Smuzhiyun 	} s;
464*4882a593Smuzhiyun };
465*4882a593Smuzhiyun 
466*4882a593Smuzhiyun union cvmx_pemx_int_enb_int {
467*4882a593Smuzhiyun 	uint64_t u64;
468*4882a593Smuzhiyun 	struct cvmx_pemx_int_enb_int_s {
469*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
470*4882a593Smuzhiyun 		uint64_t reserved_14_63:50;
471*4882a593Smuzhiyun 		uint64_t crs_dr:1;
472*4882a593Smuzhiyun 		uint64_t crs_er:1;
473*4882a593Smuzhiyun 		uint64_t rdlk:1;
474*4882a593Smuzhiyun 		uint64_t exc:1;
475*4882a593Smuzhiyun 		uint64_t un_bx:1;
476*4882a593Smuzhiyun 		uint64_t un_b2:1;
477*4882a593Smuzhiyun 		uint64_t un_b1:1;
478*4882a593Smuzhiyun 		uint64_t up_bx:1;
479*4882a593Smuzhiyun 		uint64_t up_b2:1;
480*4882a593Smuzhiyun 		uint64_t up_b1:1;
481*4882a593Smuzhiyun 		uint64_t pmem:1;
482*4882a593Smuzhiyun 		uint64_t pmei:1;
483*4882a593Smuzhiyun 		uint64_t se:1;
484*4882a593Smuzhiyun 		uint64_t aeri:1;
485*4882a593Smuzhiyun #else
486*4882a593Smuzhiyun 		uint64_t aeri:1;
487*4882a593Smuzhiyun 		uint64_t se:1;
488*4882a593Smuzhiyun 		uint64_t pmei:1;
489*4882a593Smuzhiyun 		uint64_t pmem:1;
490*4882a593Smuzhiyun 		uint64_t up_b1:1;
491*4882a593Smuzhiyun 		uint64_t up_b2:1;
492*4882a593Smuzhiyun 		uint64_t up_bx:1;
493*4882a593Smuzhiyun 		uint64_t un_b1:1;
494*4882a593Smuzhiyun 		uint64_t un_b2:1;
495*4882a593Smuzhiyun 		uint64_t un_bx:1;
496*4882a593Smuzhiyun 		uint64_t exc:1;
497*4882a593Smuzhiyun 		uint64_t rdlk:1;
498*4882a593Smuzhiyun 		uint64_t crs_er:1;
499*4882a593Smuzhiyun 		uint64_t crs_dr:1;
500*4882a593Smuzhiyun 		uint64_t reserved_14_63:50;
501*4882a593Smuzhiyun #endif
502*4882a593Smuzhiyun 	} s;
503*4882a593Smuzhiyun };
504*4882a593Smuzhiyun 
505*4882a593Smuzhiyun union cvmx_pemx_int_sum {
506*4882a593Smuzhiyun 	uint64_t u64;
507*4882a593Smuzhiyun 	struct cvmx_pemx_int_sum_s {
508*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
509*4882a593Smuzhiyun 		uint64_t reserved_14_63:50;
510*4882a593Smuzhiyun 		uint64_t crs_dr:1;
511*4882a593Smuzhiyun 		uint64_t crs_er:1;
512*4882a593Smuzhiyun 		uint64_t rdlk:1;
513*4882a593Smuzhiyun 		uint64_t exc:1;
514*4882a593Smuzhiyun 		uint64_t un_bx:1;
515*4882a593Smuzhiyun 		uint64_t un_b2:1;
516*4882a593Smuzhiyun 		uint64_t un_b1:1;
517*4882a593Smuzhiyun 		uint64_t up_bx:1;
518*4882a593Smuzhiyun 		uint64_t up_b2:1;
519*4882a593Smuzhiyun 		uint64_t up_b1:1;
520*4882a593Smuzhiyun 		uint64_t pmem:1;
521*4882a593Smuzhiyun 		uint64_t pmei:1;
522*4882a593Smuzhiyun 		uint64_t se:1;
523*4882a593Smuzhiyun 		uint64_t aeri:1;
524*4882a593Smuzhiyun #else
525*4882a593Smuzhiyun 		uint64_t aeri:1;
526*4882a593Smuzhiyun 		uint64_t se:1;
527*4882a593Smuzhiyun 		uint64_t pmei:1;
528*4882a593Smuzhiyun 		uint64_t pmem:1;
529*4882a593Smuzhiyun 		uint64_t up_b1:1;
530*4882a593Smuzhiyun 		uint64_t up_b2:1;
531*4882a593Smuzhiyun 		uint64_t up_bx:1;
532*4882a593Smuzhiyun 		uint64_t un_b1:1;
533*4882a593Smuzhiyun 		uint64_t un_b2:1;
534*4882a593Smuzhiyun 		uint64_t un_bx:1;
535*4882a593Smuzhiyun 		uint64_t exc:1;
536*4882a593Smuzhiyun 		uint64_t rdlk:1;
537*4882a593Smuzhiyun 		uint64_t crs_er:1;
538*4882a593Smuzhiyun 		uint64_t crs_dr:1;
539*4882a593Smuzhiyun 		uint64_t reserved_14_63:50;
540*4882a593Smuzhiyun #endif
541*4882a593Smuzhiyun 	} s;
542*4882a593Smuzhiyun };
543*4882a593Smuzhiyun 
544*4882a593Smuzhiyun union cvmx_pemx_p2n_bar0_start {
545*4882a593Smuzhiyun 	uint64_t u64;
546*4882a593Smuzhiyun 	struct cvmx_pemx_p2n_bar0_start_s {
547*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
548*4882a593Smuzhiyun 		uint64_t addr:50;
549*4882a593Smuzhiyun 		uint64_t reserved_0_13:14;
550*4882a593Smuzhiyun #else
551*4882a593Smuzhiyun 		uint64_t reserved_0_13:14;
552*4882a593Smuzhiyun 		uint64_t addr:50;
553*4882a593Smuzhiyun #endif
554*4882a593Smuzhiyun 	} s;
555*4882a593Smuzhiyun };
556*4882a593Smuzhiyun 
557*4882a593Smuzhiyun union cvmx_pemx_p2n_bar1_start {
558*4882a593Smuzhiyun 	uint64_t u64;
559*4882a593Smuzhiyun 	struct cvmx_pemx_p2n_bar1_start_s {
560*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
561*4882a593Smuzhiyun 		uint64_t addr:38;
562*4882a593Smuzhiyun 		uint64_t reserved_0_25:26;
563*4882a593Smuzhiyun #else
564*4882a593Smuzhiyun 		uint64_t reserved_0_25:26;
565*4882a593Smuzhiyun 		uint64_t addr:38;
566*4882a593Smuzhiyun #endif
567*4882a593Smuzhiyun 	} s;
568*4882a593Smuzhiyun };
569*4882a593Smuzhiyun 
570*4882a593Smuzhiyun union cvmx_pemx_p2n_bar2_start {
571*4882a593Smuzhiyun 	uint64_t u64;
572*4882a593Smuzhiyun 	struct cvmx_pemx_p2n_bar2_start_s {
573*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
574*4882a593Smuzhiyun 		uint64_t addr:23;
575*4882a593Smuzhiyun 		uint64_t reserved_0_40:41;
576*4882a593Smuzhiyun #else
577*4882a593Smuzhiyun 		uint64_t reserved_0_40:41;
578*4882a593Smuzhiyun 		uint64_t addr:23;
579*4882a593Smuzhiyun #endif
580*4882a593Smuzhiyun 	} s;
581*4882a593Smuzhiyun };
582*4882a593Smuzhiyun 
583*4882a593Smuzhiyun union cvmx_pemx_p2p_barx_end {
584*4882a593Smuzhiyun 	uint64_t u64;
585*4882a593Smuzhiyun 	struct cvmx_pemx_p2p_barx_end_s {
586*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
587*4882a593Smuzhiyun 		uint64_t addr:52;
588*4882a593Smuzhiyun 		uint64_t reserved_0_11:12;
589*4882a593Smuzhiyun #else
590*4882a593Smuzhiyun 		uint64_t reserved_0_11:12;
591*4882a593Smuzhiyun 		uint64_t addr:52;
592*4882a593Smuzhiyun #endif
593*4882a593Smuzhiyun 	} s;
594*4882a593Smuzhiyun };
595*4882a593Smuzhiyun 
596*4882a593Smuzhiyun union cvmx_pemx_p2p_barx_start {
597*4882a593Smuzhiyun 	uint64_t u64;
598*4882a593Smuzhiyun 	struct cvmx_pemx_p2p_barx_start_s {
599*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
600*4882a593Smuzhiyun 		uint64_t addr:52;
601*4882a593Smuzhiyun 		uint64_t reserved_0_11:12;
602*4882a593Smuzhiyun #else
603*4882a593Smuzhiyun 		uint64_t reserved_0_11:12;
604*4882a593Smuzhiyun 		uint64_t addr:52;
605*4882a593Smuzhiyun #endif
606*4882a593Smuzhiyun 	} s;
607*4882a593Smuzhiyun };
608*4882a593Smuzhiyun 
609*4882a593Smuzhiyun union cvmx_pemx_tlp_credits {
610*4882a593Smuzhiyun 	uint64_t u64;
611*4882a593Smuzhiyun 	struct cvmx_pemx_tlp_credits_s {
612*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
613*4882a593Smuzhiyun 		uint64_t reserved_56_63:8;
614*4882a593Smuzhiyun 		uint64_t peai_ppf:8;
615*4882a593Smuzhiyun 		uint64_t pem_cpl:8;
616*4882a593Smuzhiyun 		uint64_t pem_np:8;
617*4882a593Smuzhiyun 		uint64_t pem_p:8;
618*4882a593Smuzhiyun 		uint64_t sli_cpl:8;
619*4882a593Smuzhiyun 		uint64_t sli_np:8;
620*4882a593Smuzhiyun 		uint64_t sli_p:8;
621*4882a593Smuzhiyun #else
622*4882a593Smuzhiyun 		uint64_t sli_p:8;
623*4882a593Smuzhiyun 		uint64_t sli_np:8;
624*4882a593Smuzhiyun 		uint64_t sli_cpl:8;
625*4882a593Smuzhiyun 		uint64_t pem_p:8;
626*4882a593Smuzhiyun 		uint64_t pem_np:8;
627*4882a593Smuzhiyun 		uint64_t pem_cpl:8;
628*4882a593Smuzhiyun 		uint64_t peai_ppf:8;
629*4882a593Smuzhiyun 		uint64_t reserved_56_63:8;
630*4882a593Smuzhiyun #endif
631*4882a593Smuzhiyun 	} s;
632*4882a593Smuzhiyun 	struct cvmx_pemx_tlp_credits_cn61xx {
633*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
634*4882a593Smuzhiyun 		uint64_t reserved_56_63:8;
635*4882a593Smuzhiyun 		uint64_t peai_ppf:8;
636*4882a593Smuzhiyun 		uint64_t reserved_24_47:24;
637*4882a593Smuzhiyun 		uint64_t sli_cpl:8;
638*4882a593Smuzhiyun 		uint64_t sli_np:8;
639*4882a593Smuzhiyun 		uint64_t sli_p:8;
640*4882a593Smuzhiyun #else
641*4882a593Smuzhiyun 		uint64_t sli_p:8;
642*4882a593Smuzhiyun 		uint64_t sli_np:8;
643*4882a593Smuzhiyun 		uint64_t sli_cpl:8;
644*4882a593Smuzhiyun 		uint64_t reserved_24_47:24;
645*4882a593Smuzhiyun 		uint64_t peai_ppf:8;
646*4882a593Smuzhiyun 		uint64_t reserved_56_63:8;
647*4882a593Smuzhiyun #endif
648*4882a593Smuzhiyun 	} cn61xx;
649*4882a593Smuzhiyun };
650*4882a593Smuzhiyun 
651*4882a593Smuzhiyun #endif
652