1412394d1SDavid Daney /***********************license start***************
2412394d1SDavid Daney  * Author: Cavium Networks
3412394d1SDavid Daney  *
4412394d1SDavid Daney  * Contact: support@caviumnetworks.com
5412394d1SDavid Daney  * This file is part of the OCTEON SDK
6412394d1SDavid Daney  *
7c5aa59e8SDavid Daney  * Copyright (c) 2003-2012 Cavium Networks
8412394d1SDavid Daney  *
9412394d1SDavid Daney  * This file is free software; you can redistribute it and/or modify
10412394d1SDavid Daney  * it under the terms of the GNU General Public License, Version 2, as
11412394d1SDavid Daney  * published by the Free Software Foundation.
12412394d1SDavid Daney  *
13412394d1SDavid Daney  * This file is distributed in the hope that it will be useful, but
14412394d1SDavid Daney  * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
15412394d1SDavid Daney  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
16412394d1SDavid Daney  * NONINFRINGEMENT.  See the GNU General Public License for more
17412394d1SDavid Daney  * details.
18412394d1SDavid Daney  *
19412394d1SDavid Daney  * You should have received a copy of the GNU General Public License
20412394d1SDavid Daney  * along with this file; if not, write to the Free Software
21412394d1SDavid Daney  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22412394d1SDavid Daney  * or visit http://www.gnu.org/licenses/.
23412394d1SDavid Daney  *
24412394d1SDavid Daney  * This file may also be available under a different license from Cavium.
25412394d1SDavid Daney  * Contact Cavium Networks for more information
26412394d1SDavid Daney  ***********************license end**************************************/
27412394d1SDavid Daney 
28412394d1SDavid Daney #ifndef __CVMX_PEMX_DEFS_H__
29412394d1SDavid Daney #define __CVMX_PEMX_DEFS_H__
30412394d1SDavid Daney 
31412394d1SDavid Daney #define CVMX_PEMX_BAR1_INDEXX(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C00000A8ull) + (((offset) & 15) + ((block_id) & 1) * 0x200000ull) * 8)
32412394d1SDavid Daney #define CVMX_PEMX_BAR2_MASK(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000130ull) + ((block_id) & 1) * 0x1000000ull)
33412394d1SDavid Daney #define CVMX_PEMX_BAR_CTL(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000128ull) + ((block_id) & 1) * 0x1000000ull)
34412394d1SDavid Daney #define CVMX_PEMX_BIST_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000018ull) + ((block_id) & 1) * 0x1000000ull)
35412394d1SDavid Daney #define CVMX_PEMX_BIST_STATUS2(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000420ull) + ((block_id) & 1) * 0x1000000ull)
36412394d1SDavid Daney #define CVMX_PEMX_CFG_RD(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000030ull) + ((block_id) & 1) * 0x1000000ull)
37412394d1SDavid Daney #define CVMX_PEMX_CFG_WR(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000028ull) + ((block_id) & 1) * 0x1000000ull)
38412394d1SDavid Daney #define CVMX_PEMX_CPL_LUT_VALID(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000098ull) + ((block_id) & 1) * 0x1000000ull)
39412394d1SDavid Daney #define CVMX_PEMX_CTL_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000000ull) + ((block_id) & 1) * 0x1000000ull)
40412394d1SDavid Daney #define CVMX_PEMX_DBG_INFO(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000008ull) + ((block_id) & 1) * 0x1000000ull)
41412394d1SDavid Daney #define CVMX_PEMX_DBG_INFO_EN(block_id) (CVMX_ADD_IO_SEG(0x00011800C00000A0ull) + ((block_id) & 1) * 0x1000000ull)
42412394d1SDavid Daney #define CVMX_PEMX_DIAG_STATUS(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000020ull) + ((block_id) & 1) * 0x1000000ull)
43412394d1SDavid Daney #define CVMX_PEMX_INB_READ_CREDITS(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000138ull) + ((block_id) & 1) * 0x1000000ull)
44412394d1SDavid Daney #define CVMX_PEMX_INT_ENB(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000410ull) + ((block_id) & 1) * 0x1000000ull)
45412394d1SDavid Daney #define CVMX_PEMX_INT_ENB_INT(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000418ull) + ((block_id) & 1) * 0x1000000ull)
46412394d1SDavid Daney #define CVMX_PEMX_INT_SUM(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000408ull) + ((block_id) & 1) * 0x1000000ull)
47412394d1SDavid Daney #define CVMX_PEMX_P2N_BAR0_START(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000080ull) + ((block_id) & 1) * 0x1000000ull)
48412394d1SDavid Daney #define CVMX_PEMX_P2N_BAR1_START(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000088ull) + ((block_id) & 1) * 0x1000000ull)
49412394d1SDavid Daney #define CVMX_PEMX_P2N_BAR2_START(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000090ull) + ((block_id) & 1) * 0x1000000ull)
50412394d1SDavid Daney #define CVMX_PEMX_P2P_BARX_END(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C0000048ull) + (((offset) & 3) + ((block_id) & 1) * 0x100000ull) * 16)
51412394d1SDavid Daney #define CVMX_PEMX_P2P_BARX_START(offset, block_id) (CVMX_ADD_IO_SEG(0x00011800C0000040ull) + (((offset) & 3) + ((block_id) & 1) * 0x100000ull) * 16)
52412394d1SDavid Daney #define CVMX_PEMX_TLP_CREDITS(block_id) (CVMX_ADD_IO_SEG(0x00011800C0000038ull) + ((block_id) & 1) * 0x1000000ull)
53412394d1SDavid Daney 
54412394d1SDavid Daney union cvmx_pemx_bar1_indexx {
55412394d1SDavid Daney 	uint64_t u64;
56412394d1SDavid Daney 	struct cvmx_pemx_bar1_indexx_s {
57c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
58412394d1SDavid Daney 		uint64_t reserved_20_63:44;
59412394d1SDavid Daney 		uint64_t addr_idx:16;
60412394d1SDavid Daney 		uint64_t ca:1;
61412394d1SDavid Daney 		uint64_t end_swp:2;
62412394d1SDavid Daney 		uint64_t addr_v:1;
63c5aa59e8SDavid Daney #else
64c5aa59e8SDavid Daney 		uint64_t addr_v:1;
65c5aa59e8SDavid Daney 		uint64_t end_swp:2;
66c5aa59e8SDavid Daney 		uint64_t ca:1;
67c5aa59e8SDavid Daney 		uint64_t addr_idx:16;
68c5aa59e8SDavid Daney 		uint64_t reserved_20_63:44;
69c5aa59e8SDavid Daney #endif
70412394d1SDavid Daney 	} s;
71412394d1SDavid Daney 	struct cvmx_pemx_bar1_indexx_s cn61xx;
72412394d1SDavid Daney 	struct cvmx_pemx_bar1_indexx_s cn63xx;
73412394d1SDavid Daney 	struct cvmx_pemx_bar1_indexx_s cn63xxp1;
74412394d1SDavid Daney 	struct cvmx_pemx_bar1_indexx_s cn66xx;
75412394d1SDavid Daney 	struct cvmx_pemx_bar1_indexx_s cn68xx;
76412394d1SDavid Daney 	struct cvmx_pemx_bar1_indexx_s cn68xxp1;
77c5aa59e8SDavid Daney 	struct cvmx_pemx_bar1_indexx_s cnf71xx;
78412394d1SDavid Daney };
79412394d1SDavid Daney 
80412394d1SDavid Daney union cvmx_pemx_bar2_mask {
81412394d1SDavid Daney 	uint64_t u64;
82412394d1SDavid Daney 	struct cvmx_pemx_bar2_mask_s {
83c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
84412394d1SDavid Daney 		uint64_t reserved_38_63:26;
85412394d1SDavid Daney 		uint64_t mask:35;
86412394d1SDavid Daney 		uint64_t reserved_0_2:3;
87c5aa59e8SDavid Daney #else
88c5aa59e8SDavid Daney 		uint64_t reserved_0_2:3;
89c5aa59e8SDavid Daney 		uint64_t mask:35;
90c5aa59e8SDavid Daney 		uint64_t reserved_38_63:26;
91c5aa59e8SDavid Daney #endif
92412394d1SDavid Daney 	} s;
93412394d1SDavid Daney 	struct cvmx_pemx_bar2_mask_s cn61xx;
94412394d1SDavid Daney 	struct cvmx_pemx_bar2_mask_s cn66xx;
95412394d1SDavid Daney 	struct cvmx_pemx_bar2_mask_s cn68xx;
96412394d1SDavid Daney 	struct cvmx_pemx_bar2_mask_s cn68xxp1;
97c5aa59e8SDavid Daney 	struct cvmx_pemx_bar2_mask_s cnf71xx;
98412394d1SDavid Daney };
99412394d1SDavid Daney 
100412394d1SDavid Daney union cvmx_pemx_bar_ctl {
101412394d1SDavid Daney 	uint64_t u64;
102412394d1SDavid Daney 	struct cvmx_pemx_bar_ctl_s {
103c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
104412394d1SDavid Daney 		uint64_t reserved_7_63:57;
105412394d1SDavid Daney 		uint64_t bar1_siz:3;
106412394d1SDavid Daney 		uint64_t bar2_enb:1;
107412394d1SDavid Daney 		uint64_t bar2_esx:2;
108412394d1SDavid Daney 		uint64_t bar2_cax:1;
109c5aa59e8SDavid Daney #else
110c5aa59e8SDavid Daney 		uint64_t bar2_cax:1;
111c5aa59e8SDavid Daney 		uint64_t bar2_esx:2;
112c5aa59e8SDavid Daney 		uint64_t bar2_enb:1;
113c5aa59e8SDavid Daney 		uint64_t bar1_siz:3;
114c5aa59e8SDavid Daney 		uint64_t reserved_7_63:57;
115c5aa59e8SDavid Daney #endif
116412394d1SDavid Daney 	} s;
117412394d1SDavid Daney 	struct cvmx_pemx_bar_ctl_s cn61xx;
118412394d1SDavid Daney 	struct cvmx_pemx_bar_ctl_s cn63xx;
119412394d1SDavid Daney 	struct cvmx_pemx_bar_ctl_s cn63xxp1;
120412394d1SDavid Daney 	struct cvmx_pemx_bar_ctl_s cn66xx;
121412394d1SDavid Daney 	struct cvmx_pemx_bar_ctl_s cn68xx;
122412394d1SDavid Daney 	struct cvmx_pemx_bar_ctl_s cn68xxp1;
123c5aa59e8SDavid Daney 	struct cvmx_pemx_bar_ctl_s cnf71xx;
124412394d1SDavid Daney };
125412394d1SDavid Daney 
126412394d1SDavid Daney union cvmx_pemx_bist_status {
127412394d1SDavid Daney 	uint64_t u64;
128412394d1SDavid Daney 	struct cvmx_pemx_bist_status_s {
129c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
130412394d1SDavid Daney 		uint64_t reserved_8_63:56;
131412394d1SDavid Daney 		uint64_t retry:1;
132412394d1SDavid Daney 		uint64_t rqdata0:1;
133412394d1SDavid Daney 		uint64_t rqdata1:1;
134412394d1SDavid Daney 		uint64_t rqdata2:1;
135412394d1SDavid Daney 		uint64_t rqdata3:1;
136412394d1SDavid Daney 		uint64_t rqhdr1:1;
137412394d1SDavid Daney 		uint64_t rqhdr0:1;
138412394d1SDavid Daney 		uint64_t sot:1;
139c5aa59e8SDavid Daney #else
140c5aa59e8SDavid Daney 		uint64_t sot:1;
141c5aa59e8SDavid Daney 		uint64_t rqhdr0:1;
142c5aa59e8SDavid Daney 		uint64_t rqhdr1:1;
143c5aa59e8SDavid Daney 		uint64_t rqdata3:1;
144c5aa59e8SDavid Daney 		uint64_t rqdata2:1;
145c5aa59e8SDavid Daney 		uint64_t rqdata1:1;
146c5aa59e8SDavid Daney 		uint64_t rqdata0:1;
147c5aa59e8SDavid Daney 		uint64_t retry:1;
148c5aa59e8SDavid Daney 		uint64_t reserved_8_63:56;
149c5aa59e8SDavid Daney #endif
150412394d1SDavid Daney 	} s;
151412394d1SDavid Daney 	struct cvmx_pemx_bist_status_s cn61xx;
152412394d1SDavid Daney 	struct cvmx_pemx_bist_status_s cn63xx;
153412394d1SDavid Daney 	struct cvmx_pemx_bist_status_s cn63xxp1;
154412394d1SDavid Daney 	struct cvmx_pemx_bist_status_s cn66xx;
155412394d1SDavid Daney 	struct cvmx_pemx_bist_status_s cn68xx;
156412394d1SDavid Daney 	struct cvmx_pemx_bist_status_s cn68xxp1;
157c5aa59e8SDavid Daney 	struct cvmx_pemx_bist_status_s cnf71xx;
158412394d1SDavid Daney };
159412394d1SDavid Daney 
160412394d1SDavid Daney union cvmx_pemx_bist_status2 {
161412394d1SDavid Daney 	uint64_t u64;
162412394d1SDavid Daney 	struct cvmx_pemx_bist_status2_s {
163c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
164412394d1SDavid Daney 		uint64_t reserved_10_63:54;
165412394d1SDavid Daney 		uint64_t e2p_cpl:1;
166412394d1SDavid Daney 		uint64_t e2p_n:1;
167412394d1SDavid Daney 		uint64_t e2p_p:1;
168412394d1SDavid Daney 		uint64_t peai_p2e:1;
169412394d1SDavid Daney 		uint64_t pef_tpf1:1;
170412394d1SDavid Daney 		uint64_t pef_tpf0:1;
171412394d1SDavid Daney 		uint64_t pef_tnf:1;
172412394d1SDavid Daney 		uint64_t pef_tcf1:1;
173412394d1SDavid Daney 		uint64_t pef_tc0:1;
174412394d1SDavid Daney 		uint64_t ppf:1;
175c5aa59e8SDavid Daney #else
176c5aa59e8SDavid Daney 		uint64_t ppf:1;
177c5aa59e8SDavid Daney 		uint64_t pef_tc0:1;
178c5aa59e8SDavid Daney 		uint64_t pef_tcf1:1;
179c5aa59e8SDavid Daney 		uint64_t pef_tnf:1;
180c5aa59e8SDavid Daney 		uint64_t pef_tpf0:1;
181c5aa59e8SDavid Daney 		uint64_t pef_tpf1:1;
182c5aa59e8SDavid Daney 		uint64_t peai_p2e:1;
183c5aa59e8SDavid Daney 		uint64_t e2p_p:1;
184c5aa59e8SDavid Daney 		uint64_t e2p_n:1;
185c5aa59e8SDavid Daney 		uint64_t e2p_cpl:1;
186c5aa59e8SDavid Daney 		uint64_t reserved_10_63:54;
187c5aa59e8SDavid Daney #endif
188412394d1SDavid Daney 	} s;
189412394d1SDavid Daney 	struct cvmx_pemx_bist_status2_s cn61xx;
190412394d1SDavid Daney 	struct cvmx_pemx_bist_status2_s cn63xx;
191412394d1SDavid Daney 	struct cvmx_pemx_bist_status2_s cn63xxp1;
192412394d1SDavid Daney 	struct cvmx_pemx_bist_status2_s cn66xx;
193412394d1SDavid Daney 	struct cvmx_pemx_bist_status2_s cn68xx;
194412394d1SDavid Daney 	struct cvmx_pemx_bist_status2_s cn68xxp1;
195c5aa59e8SDavid Daney 	struct cvmx_pemx_bist_status2_s cnf71xx;
196412394d1SDavid Daney };
197412394d1SDavid Daney 
198412394d1SDavid Daney union cvmx_pemx_cfg_rd {
199412394d1SDavid Daney 	uint64_t u64;
200412394d1SDavid Daney 	struct cvmx_pemx_cfg_rd_s {
201c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
202412394d1SDavid Daney 		uint64_t data:32;
203412394d1SDavid Daney 		uint64_t addr:32;
204c5aa59e8SDavid Daney #else
205c5aa59e8SDavid Daney 		uint64_t addr:32;
206c5aa59e8SDavid Daney 		uint64_t data:32;
207c5aa59e8SDavid Daney #endif
208412394d1SDavid Daney 	} s;
209412394d1SDavid Daney 	struct cvmx_pemx_cfg_rd_s cn61xx;
210412394d1SDavid Daney 	struct cvmx_pemx_cfg_rd_s cn63xx;
211412394d1SDavid Daney 	struct cvmx_pemx_cfg_rd_s cn63xxp1;
212412394d1SDavid Daney 	struct cvmx_pemx_cfg_rd_s cn66xx;
213412394d1SDavid Daney 	struct cvmx_pemx_cfg_rd_s cn68xx;
214412394d1SDavid Daney 	struct cvmx_pemx_cfg_rd_s cn68xxp1;
215c5aa59e8SDavid Daney 	struct cvmx_pemx_cfg_rd_s cnf71xx;
216412394d1SDavid Daney };
217412394d1SDavid Daney 
218412394d1SDavid Daney union cvmx_pemx_cfg_wr {
219412394d1SDavid Daney 	uint64_t u64;
220412394d1SDavid Daney 	struct cvmx_pemx_cfg_wr_s {
221c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
222412394d1SDavid Daney 		uint64_t data:32;
223412394d1SDavid Daney 		uint64_t addr:32;
224c5aa59e8SDavid Daney #else
225c5aa59e8SDavid Daney 		uint64_t addr:32;
226c5aa59e8SDavid Daney 		uint64_t data:32;
227c5aa59e8SDavid Daney #endif
228412394d1SDavid Daney 	} s;
229412394d1SDavid Daney 	struct cvmx_pemx_cfg_wr_s cn61xx;
230412394d1SDavid Daney 	struct cvmx_pemx_cfg_wr_s cn63xx;
231412394d1SDavid Daney 	struct cvmx_pemx_cfg_wr_s cn63xxp1;
232412394d1SDavid Daney 	struct cvmx_pemx_cfg_wr_s cn66xx;
233412394d1SDavid Daney 	struct cvmx_pemx_cfg_wr_s cn68xx;
234412394d1SDavid Daney 	struct cvmx_pemx_cfg_wr_s cn68xxp1;
235c5aa59e8SDavid Daney 	struct cvmx_pemx_cfg_wr_s cnf71xx;
236412394d1SDavid Daney };
237412394d1SDavid Daney 
238412394d1SDavid Daney union cvmx_pemx_cpl_lut_valid {
239412394d1SDavid Daney 	uint64_t u64;
240412394d1SDavid Daney 	struct cvmx_pemx_cpl_lut_valid_s {
241c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
242412394d1SDavid Daney 		uint64_t reserved_32_63:32;
243412394d1SDavid Daney 		uint64_t tag:32;
244c5aa59e8SDavid Daney #else
245c5aa59e8SDavid Daney 		uint64_t tag:32;
246c5aa59e8SDavid Daney 		uint64_t reserved_32_63:32;
247c5aa59e8SDavid Daney #endif
248412394d1SDavid Daney 	} s;
249412394d1SDavid Daney 	struct cvmx_pemx_cpl_lut_valid_s cn61xx;
250412394d1SDavid Daney 	struct cvmx_pemx_cpl_lut_valid_s cn63xx;
251412394d1SDavid Daney 	struct cvmx_pemx_cpl_lut_valid_s cn63xxp1;
252412394d1SDavid Daney 	struct cvmx_pemx_cpl_lut_valid_s cn66xx;
253412394d1SDavid Daney 	struct cvmx_pemx_cpl_lut_valid_s cn68xx;
254412394d1SDavid Daney 	struct cvmx_pemx_cpl_lut_valid_s cn68xxp1;
255c5aa59e8SDavid Daney 	struct cvmx_pemx_cpl_lut_valid_s cnf71xx;
256412394d1SDavid Daney };
257412394d1SDavid Daney 
258412394d1SDavid Daney union cvmx_pemx_ctl_status {
259412394d1SDavid Daney 	uint64_t u64;
260412394d1SDavid Daney 	struct cvmx_pemx_ctl_status_s {
261c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
262412394d1SDavid Daney 		uint64_t reserved_48_63:16;
263412394d1SDavid Daney 		uint64_t auto_sd:1;
264412394d1SDavid Daney 		uint64_t dnum:5;
265412394d1SDavid Daney 		uint64_t pbus:8;
266412394d1SDavid Daney 		uint64_t reserved_32_33:2;
267412394d1SDavid Daney 		uint64_t cfg_rtry:16;
268412394d1SDavid Daney 		uint64_t reserved_12_15:4;
269412394d1SDavid Daney 		uint64_t pm_xtoff:1;
270412394d1SDavid Daney 		uint64_t pm_xpme:1;
271412394d1SDavid Daney 		uint64_t ob_p_cmd:1;
272412394d1SDavid Daney 		uint64_t reserved_7_8:2;
273412394d1SDavid Daney 		uint64_t nf_ecrc:1;
274412394d1SDavid Daney 		uint64_t dly_one:1;
275412394d1SDavid Daney 		uint64_t lnk_enb:1;
276412394d1SDavid Daney 		uint64_t ro_ctlp:1;
277412394d1SDavid Daney 		uint64_t fast_lm:1;
278412394d1SDavid Daney 		uint64_t inv_ecrc:1;
279412394d1SDavid Daney 		uint64_t inv_lcrc:1;
280c5aa59e8SDavid Daney #else
281c5aa59e8SDavid Daney 		uint64_t inv_lcrc:1;
282c5aa59e8SDavid Daney 		uint64_t inv_ecrc:1;
283c5aa59e8SDavid Daney 		uint64_t fast_lm:1;
284c5aa59e8SDavid Daney 		uint64_t ro_ctlp:1;
285c5aa59e8SDavid Daney 		uint64_t lnk_enb:1;
286c5aa59e8SDavid Daney 		uint64_t dly_one:1;
287c5aa59e8SDavid Daney 		uint64_t nf_ecrc:1;
288c5aa59e8SDavid Daney 		uint64_t reserved_7_8:2;
289c5aa59e8SDavid Daney 		uint64_t ob_p_cmd:1;
290c5aa59e8SDavid Daney 		uint64_t pm_xpme:1;
291c5aa59e8SDavid Daney 		uint64_t pm_xtoff:1;
292c5aa59e8SDavid Daney 		uint64_t reserved_12_15:4;
293c5aa59e8SDavid Daney 		uint64_t cfg_rtry:16;
294c5aa59e8SDavid Daney 		uint64_t reserved_32_33:2;
295c5aa59e8SDavid Daney 		uint64_t pbus:8;
296c5aa59e8SDavid Daney 		uint64_t dnum:5;
297c5aa59e8SDavid Daney 		uint64_t auto_sd:1;
298c5aa59e8SDavid Daney 		uint64_t reserved_48_63:16;
299c5aa59e8SDavid Daney #endif
300412394d1SDavid Daney 	} s;
301412394d1SDavid Daney 	struct cvmx_pemx_ctl_status_s cn61xx;
302412394d1SDavid Daney 	struct cvmx_pemx_ctl_status_s cn63xx;
303412394d1SDavid Daney 	struct cvmx_pemx_ctl_status_s cn63xxp1;
304412394d1SDavid Daney 	struct cvmx_pemx_ctl_status_s cn66xx;
305412394d1SDavid Daney 	struct cvmx_pemx_ctl_status_s cn68xx;
306412394d1SDavid Daney 	struct cvmx_pemx_ctl_status_s cn68xxp1;
307c5aa59e8SDavid Daney 	struct cvmx_pemx_ctl_status_s cnf71xx;
308412394d1SDavid Daney };
309412394d1SDavid Daney 
310412394d1SDavid Daney union cvmx_pemx_dbg_info {
311412394d1SDavid Daney 	uint64_t u64;
312412394d1SDavid Daney 	struct cvmx_pemx_dbg_info_s {
313c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
314412394d1SDavid Daney 		uint64_t reserved_31_63:33;
315412394d1SDavid Daney 		uint64_t ecrc_e:1;
316412394d1SDavid Daney 		uint64_t rawwpp:1;
317412394d1SDavid Daney 		uint64_t racpp:1;
318412394d1SDavid Daney 		uint64_t ramtlp:1;
319412394d1SDavid Daney 		uint64_t rarwdns:1;
320412394d1SDavid Daney 		uint64_t caar:1;
321412394d1SDavid Daney 		uint64_t racca:1;
322412394d1SDavid Daney 		uint64_t racur:1;
323412394d1SDavid Daney 		uint64_t rauc:1;
324412394d1SDavid Daney 		uint64_t rqo:1;
325412394d1SDavid Daney 		uint64_t fcuv:1;
326412394d1SDavid Daney 		uint64_t rpe:1;
327412394d1SDavid Daney 		uint64_t fcpvwt:1;
328412394d1SDavid Daney 		uint64_t dpeoosd:1;
329412394d1SDavid Daney 		uint64_t rtwdle:1;
330412394d1SDavid Daney 		uint64_t rdwdle:1;
331412394d1SDavid Daney 		uint64_t mre:1;
332412394d1SDavid Daney 		uint64_t rte:1;
333412394d1SDavid Daney 		uint64_t acto:1;
334412394d1SDavid Daney 		uint64_t rvdm:1;
335412394d1SDavid Daney 		uint64_t rumep:1;
336412394d1SDavid Daney 		uint64_t rptamrc:1;
337412394d1SDavid Daney 		uint64_t rpmerc:1;
338412394d1SDavid Daney 		uint64_t rfemrc:1;
339412394d1SDavid Daney 		uint64_t rnfemrc:1;
340412394d1SDavid Daney 		uint64_t rcemrc:1;
341412394d1SDavid Daney 		uint64_t rpoison:1;
342412394d1SDavid Daney 		uint64_t recrce:1;
343412394d1SDavid Daney 		uint64_t rtlplle:1;
344412394d1SDavid Daney 		uint64_t rtlpmal:1;
345412394d1SDavid Daney 		uint64_t spoison:1;
346c5aa59e8SDavid Daney #else
347c5aa59e8SDavid Daney 		uint64_t spoison:1;
348c5aa59e8SDavid Daney 		uint64_t rtlpmal:1;
349c5aa59e8SDavid Daney 		uint64_t rtlplle:1;
350c5aa59e8SDavid Daney 		uint64_t recrce:1;
351c5aa59e8SDavid Daney 		uint64_t rpoison:1;
352c5aa59e8SDavid Daney 		uint64_t rcemrc:1;
353c5aa59e8SDavid Daney 		uint64_t rnfemrc:1;
354c5aa59e8SDavid Daney 		uint64_t rfemrc:1;
355c5aa59e8SDavid Daney 		uint64_t rpmerc:1;
356c5aa59e8SDavid Daney 		uint64_t rptamrc:1;
357c5aa59e8SDavid Daney 		uint64_t rumep:1;
358c5aa59e8SDavid Daney 		uint64_t rvdm:1;
359c5aa59e8SDavid Daney 		uint64_t acto:1;
360c5aa59e8SDavid Daney 		uint64_t rte:1;
361c5aa59e8SDavid Daney 		uint64_t mre:1;
362c5aa59e8SDavid Daney 		uint64_t rdwdle:1;
363c5aa59e8SDavid Daney 		uint64_t rtwdle:1;
364c5aa59e8SDavid Daney 		uint64_t dpeoosd:1;
365c5aa59e8SDavid Daney 		uint64_t fcpvwt:1;
366c5aa59e8SDavid Daney 		uint64_t rpe:1;
367c5aa59e8SDavid Daney 		uint64_t fcuv:1;
368c5aa59e8SDavid Daney 		uint64_t rqo:1;
369c5aa59e8SDavid Daney 		uint64_t rauc:1;
370c5aa59e8SDavid Daney 		uint64_t racur:1;
371c5aa59e8SDavid Daney 		uint64_t racca:1;
372c5aa59e8SDavid Daney 		uint64_t caar:1;
373c5aa59e8SDavid Daney 		uint64_t rarwdns:1;
374c5aa59e8SDavid Daney 		uint64_t ramtlp:1;
375c5aa59e8SDavid Daney 		uint64_t racpp:1;
376c5aa59e8SDavid Daney 		uint64_t rawwpp:1;
377c5aa59e8SDavid Daney 		uint64_t ecrc_e:1;
378c5aa59e8SDavid Daney 		uint64_t reserved_31_63:33;
379c5aa59e8SDavid Daney #endif
380412394d1SDavid Daney 	} s;
381412394d1SDavid Daney 	struct cvmx_pemx_dbg_info_s cn61xx;
382412394d1SDavid Daney 	struct cvmx_pemx_dbg_info_s cn63xx;
383412394d1SDavid Daney 	struct cvmx_pemx_dbg_info_s cn63xxp1;
384412394d1SDavid Daney 	struct cvmx_pemx_dbg_info_s cn66xx;
385412394d1SDavid Daney 	struct cvmx_pemx_dbg_info_s cn68xx;
386412394d1SDavid Daney 	struct cvmx_pemx_dbg_info_s cn68xxp1;
387c5aa59e8SDavid Daney 	struct cvmx_pemx_dbg_info_s cnf71xx;
388412394d1SDavid Daney };
389412394d1SDavid Daney 
390412394d1SDavid Daney union cvmx_pemx_dbg_info_en {
391412394d1SDavid Daney 	uint64_t u64;
392412394d1SDavid Daney 	struct cvmx_pemx_dbg_info_en_s {
393c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
394412394d1SDavid Daney 		uint64_t reserved_31_63:33;
395412394d1SDavid Daney 		uint64_t ecrc_e:1;
396412394d1SDavid Daney 		uint64_t rawwpp:1;
397412394d1SDavid Daney 		uint64_t racpp:1;
398412394d1SDavid Daney 		uint64_t ramtlp:1;
399412394d1SDavid Daney 		uint64_t rarwdns:1;
400412394d1SDavid Daney 		uint64_t caar:1;
401412394d1SDavid Daney 		uint64_t racca:1;
402412394d1SDavid Daney 		uint64_t racur:1;
403412394d1SDavid Daney 		uint64_t rauc:1;
404412394d1SDavid Daney 		uint64_t rqo:1;
405412394d1SDavid Daney 		uint64_t fcuv:1;
406412394d1SDavid Daney 		uint64_t rpe:1;
407412394d1SDavid Daney 		uint64_t fcpvwt:1;
408412394d1SDavid Daney 		uint64_t dpeoosd:1;
409412394d1SDavid Daney 		uint64_t rtwdle:1;
410412394d1SDavid Daney 		uint64_t rdwdle:1;
411412394d1SDavid Daney 		uint64_t mre:1;
412412394d1SDavid Daney 		uint64_t rte:1;
413412394d1SDavid Daney 		uint64_t acto:1;
414412394d1SDavid Daney 		uint64_t rvdm:1;
415412394d1SDavid Daney 		uint64_t rumep:1;
416412394d1SDavid Daney 		uint64_t rptamrc:1;
417412394d1SDavid Daney 		uint64_t rpmerc:1;
418412394d1SDavid Daney 		uint64_t rfemrc:1;
419412394d1SDavid Daney 		uint64_t rnfemrc:1;
420412394d1SDavid Daney 		uint64_t rcemrc:1;
421412394d1SDavid Daney 		uint64_t rpoison:1;
422412394d1SDavid Daney 		uint64_t recrce:1;
423412394d1SDavid Daney 		uint64_t rtlplle:1;
424412394d1SDavid Daney 		uint64_t rtlpmal:1;
425412394d1SDavid Daney 		uint64_t spoison:1;
426c5aa59e8SDavid Daney #else
427c5aa59e8SDavid Daney 		uint64_t spoison:1;
428c5aa59e8SDavid Daney 		uint64_t rtlpmal:1;
429c5aa59e8SDavid Daney 		uint64_t rtlplle:1;
430c5aa59e8SDavid Daney 		uint64_t recrce:1;
431c5aa59e8SDavid Daney 		uint64_t rpoison:1;
432c5aa59e8SDavid Daney 		uint64_t rcemrc:1;
433c5aa59e8SDavid Daney 		uint64_t rnfemrc:1;
434c5aa59e8SDavid Daney 		uint64_t rfemrc:1;
435c5aa59e8SDavid Daney 		uint64_t rpmerc:1;
436c5aa59e8SDavid Daney 		uint64_t rptamrc:1;
437c5aa59e8SDavid Daney 		uint64_t rumep:1;
438c5aa59e8SDavid Daney 		uint64_t rvdm:1;
439c5aa59e8SDavid Daney 		uint64_t acto:1;
440c5aa59e8SDavid Daney 		uint64_t rte:1;
441c5aa59e8SDavid Daney 		uint64_t mre:1;
442c5aa59e8SDavid Daney 		uint64_t rdwdle:1;
443c5aa59e8SDavid Daney 		uint64_t rtwdle:1;
444c5aa59e8SDavid Daney 		uint64_t dpeoosd:1;
445c5aa59e8SDavid Daney 		uint64_t fcpvwt:1;
446c5aa59e8SDavid Daney 		uint64_t rpe:1;
447c5aa59e8SDavid Daney 		uint64_t fcuv:1;
448c5aa59e8SDavid Daney 		uint64_t rqo:1;
449c5aa59e8SDavid Daney 		uint64_t rauc:1;
450c5aa59e8SDavid Daney 		uint64_t racur:1;
451c5aa59e8SDavid Daney 		uint64_t racca:1;
452c5aa59e8SDavid Daney 		uint64_t caar:1;
453c5aa59e8SDavid Daney 		uint64_t rarwdns:1;
454c5aa59e8SDavid Daney 		uint64_t ramtlp:1;
455c5aa59e8SDavid Daney 		uint64_t racpp:1;
456c5aa59e8SDavid Daney 		uint64_t rawwpp:1;
457c5aa59e8SDavid Daney 		uint64_t ecrc_e:1;
458c5aa59e8SDavid Daney 		uint64_t reserved_31_63:33;
459c5aa59e8SDavid Daney #endif
460412394d1SDavid Daney 	} s;
461412394d1SDavid Daney 	struct cvmx_pemx_dbg_info_en_s cn61xx;
462412394d1SDavid Daney 	struct cvmx_pemx_dbg_info_en_s cn63xx;
463412394d1SDavid Daney 	struct cvmx_pemx_dbg_info_en_s cn63xxp1;
464412394d1SDavid Daney 	struct cvmx_pemx_dbg_info_en_s cn66xx;
465412394d1SDavid Daney 	struct cvmx_pemx_dbg_info_en_s cn68xx;
466412394d1SDavid Daney 	struct cvmx_pemx_dbg_info_en_s cn68xxp1;
467c5aa59e8SDavid Daney 	struct cvmx_pemx_dbg_info_en_s cnf71xx;
468412394d1SDavid Daney };
469412394d1SDavid Daney 
470412394d1SDavid Daney union cvmx_pemx_diag_status {
471412394d1SDavid Daney 	uint64_t u64;
472412394d1SDavid Daney 	struct cvmx_pemx_diag_status_s {
473c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
474412394d1SDavid Daney 		uint64_t reserved_4_63:60;
475412394d1SDavid Daney 		uint64_t pm_dst:1;
476412394d1SDavid Daney 		uint64_t pm_stat:1;
477412394d1SDavid Daney 		uint64_t pm_en:1;
478412394d1SDavid Daney 		uint64_t aux_en:1;
479c5aa59e8SDavid Daney #else
480c5aa59e8SDavid Daney 		uint64_t aux_en:1;
481c5aa59e8SDavid Daney 		uint64_t pm_en:1;
482c5aa59e8SDavid Daney 		uint64_t pm_stat:1;
483c5aa59e8SDavid Daney 		uint64_t pm_dst:1;
484c5aa59e8SDavid Daney 		uint64_t reserved_4_63:60;
485c5aa59e8SDavid Daney #endif
486412394d1SDavid Daney 	} s;
487412394d1SDavid Daney 	struct cvmx_pemx_diag_status_s cn61xx;
488412394d1SDavid Daney 	struct cvmx_pemx_diag_status_s cn63xx;
489412394d1SDavid Daney 	struct cvmx_pemx_diag_status_s cn63xxp1;
490412394d1SDavid Daney 	struct cvmx_pemx_diag_status_s cn66xx;
491412394d1SDavid Daney 	struct cvmx_pemx_diag_status_s cn68xx;
492412394d1SDavid Daney 	struct cvmx_pemx_diag_status_s cn68xxp1;
493c5aa59e8SDavid Daney 	struct cvmx_pemx_diag_status_s cnf71xx;
494412394d1SDavid Daney };
495412394d1SDavid Daney 
496412394d1SDavid Daney union cvmx_pemx_inb_read_credits {
497412394d1SDavid Daney 	uint64_t u64;
498412394d1SDavid Daney 	struct cvmx_pemx_inb_read_credits_s {
499c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
500412394d1SDavid Daney 		uint64_t reserved_6_63:58;
501412394d1SDavid Daney 		uint64_t num:6;
502c5aa59e8SDavid Daney #else
503c5aa59e8SDavid Daney 		uint64_t num:6;
504c5aa59e8SDavid Daney 		uint64_t reserved_6_63:58;
505c5aa59e8SDavid Daney #endif
506412394d1SDavid Daney 	} s;
507412394d1SDavid Daney 	struct cvmx_pemx_inb_read_credits_s cn61xx;
508412394d1SDavid Daney 	struct cvmx_pemx_inb_read_credits_s cn66xx;
509412394d1SDavid Daney 	struct cvmx_pemx_inb_read_credits_s cn68xx;
510c5aa59e8SDavid Daney 	struct cvmx_pemx_inb_read_credits_s cnf71xx;
511412394d1SDavid Daney };
512412394d1SDavid Daney 
513412394d1SDavid Daney union cvmx_pemx_int_enb {
514412394d1SDavid Daney 	uint64_t u64;
515412394d1SDavid Daney 	struct cvmx_pemx_int_enb_s {
516c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
517412394d1SDavid Daney 		uint64_t reserved_14_63:50;
518412394d1SDavid Daney 		uint64_t crs_dr:1;
519412394d1SDavid Daney 		uint64_t crs_er:1;
520412394d1SDavid Daney 		uint64_t rdlk:1;
521412394d1SDavid Daney 		uint64_t exc:1;
522412394d1SDavid Daney 		uint64_t un_bx:1;
523412394d1SDavid Daney 		uint64_t un_b2:1;
524412394d1SDavid Daney 		uint64_t un_b1:1;
525412394d1SDavid Daney 		uint64_t up_bx:1;
526412394d1SDavid Daney 		uint64_t up_b2:1;
527412394d1SDavid Daney 		uint64_t up_b1:1;
528412394d1SDavid Daney 		uint64_t pmem:1;
529412394d1SDavid Daney 		uint64_t pmei:1;
530412394d1SDavid Daney 		uint64_t se:1;
531412394d1SDavid Daney 		uint64_t aeri:1;
532c5aa59e8SDavid Daney #else
533c5aa59e8SDavid Daney 		uint64_t aeri:1;
534c5aa59e8SDavid Daney 		uint64_t se:1;
535c5aa59e8SDavid Daney 		uint64_t pmei:1;
536c5aa59e8SDavid Daney 		uint64_t pmem:1;
537c5aa59e8SDavid Daney 		uint64_t up_b1:1;
538c5aa59e8SDavid Daney 		uint64_t up_b2:1;
539c5aa59e8SDavid Daney 		uint64_t up_bx:1;
540c5aa59e8SDavid Daney 		uint64_t un_b1:1;
541c5aa59e8SDavid Daney 		uint64_t un_b2:1;
542c5aa59e8SDavid Daney 		uint64_t un_bx:1;
543c5aa59e8SDavid Daney 		uint64_t exc:1;
544c5aa59e8SDavid Daney 		uint64_t rdlk:1;
545c5aa59e8SDavid Daney 		uint64_t crs_er:1;
546c5aa59e8SDavid Daney 		uint64_t crs_dr:1;
547c5aa59e8SDavid Daney 		uint64_t reserved_14_63:50;
548c5aa59e8SDavid Daney #endif
549412394d1SDavid Daney 	} s;
550412394d1SDavid Daney 	struct cvmx_pemx_int_enb_s cn61xx;
551412394d1SDavid Daney 	struct cvmx_pemx_int_enb_s cn63xx;
552412394d1SDavid Daney 	struct cvmx_pemx_int_enb_s cn63xxp1;
553412394d1SDavid Daney 	struct cvmx_pemx_int_enb_s cn66xx;
554412394d1SDavid Daney 	struct cvmx_pemx_int_enb_s cn68xx;
555412394d1SDavid Daney 	struct cvmx_pemx_int_enb_s cn68xxp1;
556c5aa59e8SDavid Daney 	struct cvmx_pemx_int_enb_s cnf71xx;
557412394d1SDavid Daney };
558412394d1SDavid Daney 
559412394d1SDavid Daney union cvmx_pemx_int_enb_int {
560412394d1SDavid Daney 	uint64_t u64;
561412394d1SDavid Daney 	struct cvmx_pemx_int_enb_int_s {
562c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
563412394d1SDavid Daney 		uint64_t reserved_14_63:50;
564412394d1SDavid Daney 		uint64_t crs_dr:1;
565412394d1SDavid Daney 		uint64_t crs_er:1;
566412394d1SDavid Daney 		uint64_t rdlk:1;
567412394d1SDavid Daney 		uint64_t exc:1;
568412394d1SDavid Daney 		uint64_t un_bx:1;
569412394d1SDavid Daney 		uint64_t un_b2:1;
570412394d1SDavid Daney 		uint64_t un_b1:1;
571412394d1SDavid Daney 		uint64_t up_bx:1;
572412394d1SDavid Daney 		uint64_t up_b2:1;
573412394d1SDavid Daney 		uint64_t up_b1:1;
574412394d1SDavid Daney 		uint64_t pmem:1;
575412394d1SDavid Daney 		uint64_t pmei:1;
576412394d1SDavid Daney 		uint64_t se:1;
577412394d1SDavid Daney 		uint64_t aeri:1;
578c5aa59e8SDavid Daney #else
579c5aa59e8SDavid Daney 		uint64_t aeri:1;
580c5aa59e8SDavid Daney 		uint64_t se:1;
581c5aa59e8SDavid Daney 		uint64_t pmei:1;
582c5aa59e8SDavid Daney 		uint64_t pmem:1;
583c5aa59e8SDavid Daney 		uint64_t up_b1:1;
584c5aa59e8SDavid Daney 		uint64_t up_b2:1;
585c5aa59e8SDavid Daney 		uint64_t up_bx:1;
586c5aa59e8SDavid Daney 		uint64_t un_b1:1;
587c5aa59e8SDavid Daney 		uint64_t un_b2:1;
588c5aa59e8SDavid Daney 		uint64_t un_bx:1;
589c5aa59e8SDavid Daney 		uint64_t exc:1;
590c5aa59e8SDavid Daney 		uint64_t rdlk:1;
591c5aa59e8SDavid Daney 		uint64_t crs_er:1;
592c5aa59e8SDavid Daney 		uint64_t crs_dr:1;
593c5aa59e8SDavid Daney 		uint64_t reserved_14_63:50;
594c5aa59e8SDavid Daney #endif
595412394d1SDavid Daney 	} s;
596412394d1SDavid Daney 	struct cvmx_pemx_int_enb_int_s cn61xx;
597412394d1SDavid Daney 	struct cvmx_pemx_int_enb_int_s cn63xx;
598412394d1SDavid Daney 	struct cvmx_pemx_int_enb_int_s cn63xxp1;
599412394d1SDavid Daney 	struct cvmx_pemx_int_enb_int_s cn66xx;
600412394d1SDavid Daney 	struct cvmx_pemx_int_enb_int_s cn68xx;
601412394d1SDavid Daney 	struct cvmx_pemx_int_enb_int_s cn68xxp1;
602c5aa59e8SDavid Daney 	struct cvmx_pemx_int_enb_int_s cnf71xx;
603412394d1SDavid Daney };
604412394d1SDavid Daney 
605412394d1SDavid Daney union cvmx_pemx_int_sum {
606412394d1SDavid Daney 	uint64_t u64;
607412394d1SDavid Daney 	struct cvmx_pemx_int_sum_s {
608c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
609412394d1SDavid Daney 		uint64_t reserved_14_63:50;
610412394d1SDavid Daney 		uint64_t crs_dr:1;
611412394d1SDavid Daney 		uint64_t crs_er:1;
612412394d1SDavid Daney 		uint64_t rdlk:1;
613412394d1SDavid Daney 		uint64_t exc:1;
614412394d1SDavid Daney 		uint64_t un_bx:1;
615412394d1SDavid Daney 		uint64_t un_b2:1;
616412394d1SDavid Daney 		uint64_t un_b1:1;
617412394d1SDavid Daney 		uint64_t up_bx:1;
618412394d1SDavid Daney 		uint64_t up_b2:1;
619412394d1SDavid Daney 		uint64_t up_b1:1;
620412394d1SDavid Daney 		uint64_t pmem:1;
621412394d1SDavid Daney 		uint64_t pmei:1;
622412394d1SDavid Daney 		uint64_t se:1;
623412394d1SDavid Daney 		uint64_t aeri:1;
624c5aa59e8SDavid Daney #else
625c5aa59e8SDavid Daney 		uint64_t aeri:1;
626c5aa59e8SDavid Daney 		uint64_t se:1;
627c5aa59e8SDavid Daney 		uint64_t pmei:1;
628c5aa59e8SDavid Daney 		uint64_t pmem:1;
629c5aa59e8SDavid Daney 		uint64_t up_b1:1;
630c5aa59e8SDavid Daney 		uint64_t up_b2:1;
631c5aa59e8SDavid Daney 		uint64_t up_bx:1;
632c5aa59e8SDavid Daney 		uint64_t un_b1:1;
633c5aa59e8SDavid Daney 		uint64_t un_b2:1;
634c5aa59e8SDavid Daney 		uint64_t un_bx:1;
635c5aa59e8SDavid Daney 		uint64_t exc:1;
636c5aa59e8SDavid Daney 		uint64_t rdlk:1;
637c5aa59e8SDavid Daney 		uint64_t crs_er:1;
638c5aa59e8SDavid Daney 		uint64_t crs_dr:1;
639c5aa59e8SDavid Daney 		uint64_t reserved_14_63:50;
640c5aa59e8SDavid Daney #endif
641412394d1SDavid Daney 	} s;
642412394d1SDavid Daney 	struct cvmx_pemx_int_sum_s cn61xx;
643412394d1SDavid Daney 	struct cvmx_pemx_int_sum_s cn63xx;
644412394d1SDavid Daney 	struct cvmx_pemx_int_sum_s cn63xxp1;
645412394d1SDavid Daney 	struct cvmx_pemx_int_sum_s cn66xx;
646412394d1SDavid Daney 	struct cvmx_pemx_int_sum_s cn68xx;
647412394d1SDavid Daney 	struct cvmx_pemx_int_sum_s cn68xxp1;
648c5aa59e8SDavid Daney 	struct cvmx_pemx_int_sum_s cnf71xx;
649412394d1SDavid Daney };
650412394d1SDavid Daney 
651412394d1SDavid Daney union cvmx_pemx_p2n_bar0_start {
652412394d1SDavid Daney 	uint64_t u64;
653412394d1SDavid Daney 	struct cvmx_pemx_p2n_bar0_start_s {
654c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
655412394d1SDavid Daney 		uint64_t addr:50;
656412394d1SDavid Daney 		uint64_t reserved_0_13:14;
657c5aa59e8SDavid Daney #else
658c5aa59e8SDavid Daney 		uint64_t reserved_0_13:14;
659c5aa59e8SDavid Daney 		uint64_t addr:50;
660c5aa59e8SDavid Daney #endif
661412394d1SDavid Daney 	} s;
662412394d1SDavid Daney 	struct cvmx_pemx_p2n_bar0_start_s cn61xx;
663412394d1SDavid Daney 	struct cvmx_pemx_p2n_bar0_start_s cn63xx;
664412394d1SDavid Daney 	struct cvmx_pemx_p2n_bar0_start_s cn63xxp1;
665412394d1SDavid Daney 	struct cvmx_pemx_p2n_bar0_start_s cn66xx;
666412394d1SDavid Daney 	struct cvmx_pemx_p2n_bar0_start_s cn68xx;
667412394d1SDavid Daney 	struct cvmx_pemx_p2n_bar0_start_s cn68xxp1;
668c5aa59e8SDavid Daney 	struct cvmx_pemx_p2n_bar0_start_s cnf71xx;
669412394d1SDavid Daney };
670412394d1SDavid Daney 
671412394d1SDavid Daney union cvmx_pemx_p2n_bar1_start {
672412394d1SDavid Daney 	uint64_t u64;
673412394d1SDavid Daney 	struct cvmx_pemx_p2n_bar1_start_s {
674c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
675412394d1SDavid Daney 		uint64_t addr:38;
676412394d1SDavid Daney 		uint64_t reserved_0_25:26;
677c5aa59e8SDavid Daney #else
678c5aa59e8SDavid Daney 		uint64_t reserved_0_25:26;
679c5aa59e8SDavid Daney 		uint64_t addr:38;
680c5aa59e8SDavid Daney #endif
681412394d1SDavid Daney 	} s;
682412394d1SDavid Daney 	struct cvmx_pemx_p2n_bar1_start_s cn61xx;
683412394d1SDavid Daney 	struct cvmx_pemx_p2n_bar1_start_s cn63xx;
684412394d1SDavid Daney 	struct cvmx_pemx_p2n_bar1_start_s cn63xxp1;
685412394d1SDavid Daney 	struct cvmx_pemx_p2n_bar1_start_s cn66xx;
686412394d1SDavid Daney 	struct cvmx_pemx_p2n_bar1_start_s cn68xx;
687412394d1SDavid Daney 	struct cvmx_pemx_p2n_bar1_start_s cn68xxp1;
688c5aa59e8SDavid Daney 	struct cvmx_pemx_p2n_bar1_start_s cnf71xx;
689412394d1SDavid Daney };
690412394d1SDavid Daney 
691412394d1SDavid Daney union cvmx_pemx_p2n_bar2_start {
692412394d1SDavid Daney 	uint64_t u64;
693412394d1SDavid Daney 	struct cvmx_pemx_p2n_bar2_start_s {
694c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
695412394d1SDavid Daney 		uint64_t addr:23;
696412394d1SDavid Daney 		uint64_t reserved_0_40:41;
697c5aa59e8SDavid Daney #else
698c5aa59e8SDavid Daney 		uint64_t reserved_0_40:41;
699c5aa59e8SDavid Daney 		uint64_t addr:23;
700c5aa59e8SDavid Daney #endif
701412394d1SDavid Daney 	} s;
702412394d1SDavid Daney 	struct cvmx_pemx_p2n_bar2_start_s cn61xx;
703412394d1SDavid Daney 	struct cvmx_pemx_p2n_bar2_start_s cn63xx;
704412394d1SDavid Daney 	struct cvmx_pemx_p2n_bar2_start_s cn63xxp1;
705412394d1SDavid Daney 	struct cvmx_pemx_p2n_bar2_start_s cn66xx;
706412394d1SDavid Daney 	struct cvmx_pemx_p2n_bar2_start_s cn68xx;
707412394d1SDavid Daney 	struct cvmx_pemx_p2n_bar2_start_s cn68xxp1;
708c5aa59e8SDavid Daney 	struct cvmx_pemx_p2n_bar2_start_s cnf71xx;
709412394d1SDavid Daney };
710412394d1SDavid Daney 
711412394d1SDavid Daney union cvmx_pemx_p2p_barx_end {
712412394d1SDavid Daney 	uint64_t u64;
713412394d1SDavid Daney 	struct cvmx_pemx_p2p_barx_end_s {
714c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
715412394d1SDavid Daney 		uint64_t addr:52;
716412394d1SDavid Daney 		uint64_t reserved_0_11:12;
717c5aa59e8SDavid Daney #else
718c5aa59e8SDavid Daney 		uint64_t reserved_0_11:12;
719c5aa59e8SDavid Daney 		uint64_t addr:52;
720c5aa59e8SDavid Daney #endif
721412394d1SDavid Daney 	} s;
722412394d1SDavid Daney 	struct cvmx_pemx_p2p_barx_end_s cn63xx;
723412394d1SDavid Daney 	struct cvmx_pemx_p2p_barx_end_s cn63xxp1;
724412394d1SDavid Daney 	struct cvmx_pemx_p2p_barx_end_s cn66xx;
725412394d1SDavid Daney 	struct cvmx_pemx_p2p_barx_end_s cn68xx;
726412394d1SDavid Daney 	struct cvmx_pemx_p2p_barx_end_s cn68xxp1;
727412394d1SDavid Daney };
728412394d1SDavid Daney 
729412394d1SDavid Daney union cvmx_pemx_p2p_barx_start {
730412394d1SDavid Daney 	uint64_t u64;
731412394d1SDavid Daney 	struct cvmx_pemx_p2p_barx_start_s {
732c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
733412394d1SDavid Daney 		uint64_t addr:52;
734412394d1SDavid Daney 		uint64_t reserved_0_11:12;
735c5aa59e8SDavid Daney #else
736c5aa59e8SDavid Daney 		uint64_t reserved_0_11:12;
737c5aa59e8SDavid Daney 		uint64_t addr:52;
738c5aa59e8SDavid Daney #endif
739412394d1SDavid Daney 	} s;
740412394d1SDavid Daney 	struct cvmx_pemx_p2p_barx_start_s cn63xx;
741412394d1SDavid Daney 	struct cvmx_pemx_p2p_barx_start_s cn63xxp1;
742412394d1SDavid Daney 	struct cvmx_pemx_p2p_barx_start_s cn66xx;
743412394d1SDavid Daney 	struct cvmx_pemx_p2p_barx_start_s cn68xx;
744412394d1SDavid Daney 	struct cvmx_pemx_p2p_barx_start_s cn68xxp1;
745412394d1SDavid Daney };
746412394d1SDavid Daney 
747412394d1SDavid Daney union cvmx_pemx_tlp_credits {
748412394d1SDavid Daney 	uint64_t u64;
749412394d1SDavid Daney 	struct cvmx_pemx_tlp_credits_s {
750c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
751412394d1SDavid Daney 		uint64_t reserved_56_63:8;
752412394d1SDavid Daney 		uint64_t peai_ppf:8;
753412394d1SDavid Daney 		uint64_t pem_cpl:8;
754412394d1SDavid Daney 		uint64_t pem_np:8;
755412394d1SDavid Daney 		uint64_t pem_p:8;
756412394d1SDavid Daney 		uint64_t sli_cpl:8;
757412394d1SDavid Daney 		uint64_t sli_np:8;
758412394d1SDavid Daney 		uint64_t sli_p:8;
759c5aa59e8SDavid Daney #else
760c5aa59e8SDavid Daney 		uint64_t sli_p:8;
761c5aa59e8SDavid Daney 		uint64_t sli_np:8;
762c5aa59e8SDavid Daney 		uint64_t sli_cpl:8;
763c5aa59e8SDavid Daney 		uint64_t pem_p:8;
764c5aa59e8SDavid Daney 		uint64_t pem_np:8;
765c5aa59e8SDavid Daney 		uint64_t pem_cpl:8;
766c5aa59e8SDavid Daney 		uint64_t peai_ppf:8;
767c5aa59e8SDavid Daney 		uint64_t reserved_56_63:8;
768c5aa59e8SDavid Daney #endif
769412394d1SDavid Daney 	} s;
770412394d1SDavid Daney 	struct cvmx_pemx_tlp_credits_cn61xx {
771c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
772412394d1SDavid Daney 		uint64_t reserved_56_63:8;
773412394d1SDavid Daney 		uint64_t peai_ppf:8;
774412394d1SDavid Daney 		uint64_t reserved_24_47:24;
775412394d1SDavid Daney 		uint64_t sli_cpl:8;
776412394d1SDavid Daney 		uint64_t sli_np:8;
777412394d1SDavid Daney 		uint64_t sli_p:8;
778c5aa59e8SDavid Daney #else
779c5aa59e8SDavid Daney 		uint64_t sli_p:8;
780c5aa59e8SDavid Daney 		uint64_t sli_np:8;
781c5aa59e8SDavid Daney 		uint64_t sli_cpl:8;
782c5aa59e8SDavid Daney 		uint64_t reserved_24_47:24;
783c5aa59e8SDavid Daney 		uint64_t peai_ppf:8;
784c5aa59e8SDavid Daney 		uint64_t reserved_56_63:8;
785c5aa59e8SDavid Daney #endif
786412394d1SDavid Daney 	} cn61xx;
787412394d1SDavid Daney 	struct cvmx_pemx_tlp_credits_s cn63xx;
788412394d1SDavid Daney 	struct cvmx_pemx_tlp_credits_s cn63xxp1;
789412394d1SDavid Daney 	struct cvmx_pemx_tlp_credits_s cn66xx;
790412394d1SDavid Daney 	struct cvmx_pemx_tlp_credits_s cn68xx;
791412394d1SDavid Daney 	struct cvmx_pemx_tlp_credits_s cn68xxp1;
792c5aa59e8SDavid Daney 	struct cvmx_pemx_tlp_credits_cn61xx cnf71xx;
793412394d1SDavid Daney };
794412394d1SDavid Daney 
795412394d1SDavid Daney #endif
796