1a7187a2fSDavid Daney /***********************license start***************
2a7187a2fSDavid Daney  * Author: Cavium Networks
3a7187a2fSDavid Daney  *
4a7187a2fSDavid Daney  * Contact: support@caviumnetworks.com
5a7187a2fSDavid Daney  * This file is part of the OCTEON SDK
6a7187a2fSDavid Daney  *
7c5aa59e8SDavid Daney  * Copyright (c) 2003-2012 Cavium Networks
8a7187a2fSDavid Daney  *
9a7187a2fSDavid Daney  * This file is free software; you can redistribute it and/or modify
10a7187a2fSDavid Daney  * it under the terms of the GNU General Public License, Version 2, as
11a7187a2fSDavid Daney  * published by the Free Software Foundation.
12a7187a2fSDavid Daney  *
13a7187a2fSDavid Daney  * This file is distributed in the hope that it will be useful, but
14a7187a2fSDavid Daney  * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
15a7187a2fSDavid Daney  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
16a7187a2fSDavid Daney  * NONINFRINGEMENT.  See the GNU General Public License for more
17a7187a2fSDavid Daney  * details.
18a7187a2fSDavid Daney  *
19a7187a2fSDavid Daney  * You should have received a copy of the GNU General Public License
20a7187a2fSDavid Daney  * along with this file; if not, write to the Free Software
21a7187a2fSDavid Daney  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22a7187a2fSDavid Daney  * or visit http://www.gnu.org/licenses/.
23a7187a2fSDavid Daney  *
24a7187a2fSDavid Daney  * This file may also be available under a different license from Cavium.
25a7187a2fSDavid Daney  * Contact Cavium Networks for more information
26a7187a2fSDavid Daney  ***********************license end**************************************/
27a7187a2fSDavid Daney 
28a7187a2fSDavid Daney #ifndef __CVMX_MIXX_DEFS_H__
29a7187a2fSDavid Daney #define __CVMX_MIXX_DEFS_H__
30a7187a2fSDavid Daney 
31aa32a955SDavid Daney #define CVMX_MIXX_BIST(offset) (CVMX_ADD_IO_SEG(0x0001070000100078ull) + ((offset) & 1) * 2048)
32aa32a955SDavid Daney #define CVMX_MIXX_CTL(offset) (CVMX_ADD_IO_SEG(0x0001070000100020ull) + ((offset) & 1) * 2048)
33aa32a955SDavid Daney #define CVMX_MIXX_INTENA(offset) (CVMX_ADD_IO_SEG(0x0001070000100050ull) + ((offset) & 1) * 2048)
34aa32a955SDavid Daney #define CVMX_MIXX_IRCNT(offset) (CVMX_ADD_IO_SEG(0x0001070000100030ull) + ((offset) & 1) * 2048)
35aa32a955SDavid Daney #define CVMX_MIXX_IRHWM(offset) (CVMX_ADD_IO_SEG(0x0001070000100028ull) + ((offset) & 1) * 2048)
36aa32a955SDavid Daney #define CVMX_MIXX_IRING1(offset) (CVMX_ADD_IO_SEG(0x0001070000100010ull) + ((offset) & 1) * 2048)
37aa32a955SDavid Daney #define CVMX_MIXX_IRING2(offset) (CVMX_ADD_IO_SEG(0x0001070000100018ull) + ((offset) & 1) * 2048)
38aa32a955SDavid Daney #define CVMX_MIXX_ISR(offset) (CVMX_ADD_IO_SEG(0x0001070000100048ull) + ((offset) & 1) * 2048)
39aa32a955SDavid Daney #define CVMX_MIXX_ORCNT(offset) (CVMX_ADD_IO_SEG(0x0001070000100040ull) + ((offset) & 1) * 2048)
40aa32a955SDavid Daney #define CVMX_MIXX_ORHWM(offset) (CVMX_ADD_IO_SEG(0x0001070000100038ull) + ((offset) & 1) * 2048)
41aa32a955SDavid Daney #define CVMX_MIXX_ORING1(offset) (CVMX_ADD_IO_SEG(0x0001070000100000ull) + ((offset) & 1) * 2048)
42aa32a955SDavid Daney #define CVMX_MIXX_ORING2(offset) (CVMX_ADD_IO_SEG(0x0001070000100008ull) + ((offset) & 1) * 2048)
43aa32a955SDavid Daney #define CVMX_MIXX_REMCNT(offset) (CVMX_ADD_IO_SEG(0x0001070000100058ull) + ((offset) & 1) * 2048)
44aa32a955SDavid Daney #define CVMX_MIXX_TSCTL(offset) (CVMX_ADD_IO_SEG(0x0001070000100068ull) + ((offset) & 1) * 2048)
45aa32a955SDavid Daney #define CVMX_MIXX_TSTAMP(offset) (CVMX_ADD_IO_SEG(0x0001070000100060ull) + ((offset) & 1) * 2048)
46a7187a2fSDavid Daney 
47a7187a2fSDavid Daney union cvmx_mixx_bist {
48a7187a2fSDavid Daney 	uint64_t u64;
49a7187a2fSDavid Daney 	struct cvmx_mixx_bist_s {
50c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
51aa32a955SDavid Daney 		uint64_t reserved_6_63:58;
52aa32a955SDavid Daney 		uint64_t opfdat:1;
53aa32a955SDavid Daney 		uint64_t mrgdat:1;
54a7187a2fSDavid Daney 		uint64_t mrqdat:1;
55a7187a2fSDavid Daney 		uint64_t ipfdat:1;
56a7187a2fSDavid Daney 		uint64_t irfdat:1;
57a7187a2fSDavid Daney 		uint64_t orfdat:1;
58c5aa59e8SDavid Daney #else
59c5aa59e8SDavid Daney 		uint64_t orfdat:1;
60c5aa59e8SDavid Daney 		uint64_t irfdat:1;
61c5aa59e8SDavid Daney 		uint64_t ipfdat:1;
62c5aa59e8SDavid Daney 		uint64_t mrqdat:1;
63c5aa59e8SDavid Daney 		uint64_t mrgdat:1;
64c5aa59e8SDavid Daney 		uint64_t opfdat:1;
65c5aa59e8SDavid Daney 		uint64_t reserved_6_63:58;
66c5aa59e8SDavid Daney #endif
67a7187a2fSDavid Daney 	} s;
68aa32a955SDavid Daney 	struct cvmx_mixx_bist_cn52xx {
69c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
70aa32a955SDavid Daney 		uint64_t reserved_4_63:60;
71aa32a955SDavid Daney 		uint64_t mrqdat:1;
72aa32a955SDavid Daney 		uint64_t ipfdat:1;
73aa32a955SDavid Daney 		uint64_t irfdat:1;
74aa32a955SDavid Daney 		uint64_t orfdat:1;
75c5aa59e8SDavid Daney #else
76c5aa59e8SDavid Daney 		uint64_t orfdat:1;
77c5aa59e8SDavid Daney 		uint64_t irfdat:1;
78c5aa59e8SDavid Daney 		uint64_t ipfdat:1;
79c5aa59e8SDavid Daney 		uint64_t mrqdat:1;
80c5aa59e8SDavid Daney 		uint64_t reserved_4_63:60;
81c5aa59e8SDavid Daney #endif
82aa32a955SDavid Daney 	} cn52xx;
83aa32a955SDavid Daney 	struct cvmx_mixx_bist_cn52xx cn52xxp1;
84aa32a955SDavid Daney 	struct cvmx_mixx_bist_cn52xx cn56xx;
85aa32a955SDavid Daney 	struct cvmx_mixx_bist_cn52xx cn56xxp1;
86c5aa59e8SDavid Daney 	struct cvmx_mixx_bist_s cn61xx;
87aa32a955SDavid Daney 	struct cvmx_mixx_bist_s cn63xx;
88aa32a955SDavid Daney 	struct cvmx_mixx_bist_s cn63xxp1;
89c5aa59e8SDavid Daney 	struct cvmx_mixx_bist_s cn66xx;
90c5aa59e8SDavid Daney 	struct cvmx_mixx_bist_s cn68xx;
91c5aa59e8SDavid Daney 	struct cvmx_mixx_bist_s cn68xxp1;
92a7187a2fSDavid Daney };
93a7187a2fSDavid Daney 
94a7187a2fSDavid Daney union cvmx_mixx_ctl {
95a7187a2fSDavid Daney 	uint64_t u64;
96a7187a2fSDavid Daney 	struct cvmx_mixx_ctl_s {
97c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
98aa32a955SDavid Daney 		uint64_t reserved_12_63:52;
99aa32a955SDavid Daney 		uint64_t ts_thresh:4;
100a7187a2fSDavid Daney 		uint64_t crc_strip:1;
101a7187a2fSDavid Daney 		uint64_t busy:1;
102a7187a2fSDavid Daney 		uint64_t en:1;
103a7187a2fSDavid Daney 		uint64_t reset:1;
104a7187a2fSDavid Daney 		uint64_t lendian:1;
105a7187a2fSDavid Daney 		uint64_t nbtarb:1;
106a7187a2fSDavid Daney 		uint64_t mrq_hwm:2;
107c5aa59e8SDavid Daney #else
108c5aa59e8SDavid Daney 		uint64_t mrq_hwm:2;
109c5aa59e8SDavid Daney 		uint64_t nbtarb:1;
110c5aa59e8SDavid Daney 		uint64_t lendian:1;
111c5aa59e8SDavid Daney 		uint64_t reset:1;
112c5aa59e8SDavid Daney 		uint64_t en:1;
113c5aa59e8SDavid Daney 		uint64_t busy:1;
114c5aa59e8SDavid Daney 		uint64_t crc_strip:1;
115c5aa59e8SDavid Daney 		uint64_t ts_thresh:4;
116c5aa59e8SDavid Daney 		uint64_t reserved_12_63:52;
117c5aa59e8SDavid Daney #endif
118a7187a2fSDavid Daney 	} s;
119aa32a955SDavid Daney 	struct cvmx_mixx_ctl_cn52xx {
120c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
121aa32a955SDavid Daney 		uint64_t reserved_8_63:56;
122aa32a955SDavid Daney 		uint64_t crc_strip:1;
123aa32a955SDavid Daney 		uint64_t busy:1;
124aa32a955SDavid Daney 		uint64_t en:1;
125aa32a955SDavid Daney 		uint64_t reset:1;
126aa32a955SDavid Daney 		uint64_t lendian:1;
127aa32a955SDavid Daney 		uint64_t nbtarb:1;
128aa32a955SDavid Daney 		uint64_t mrq_hwm:2;
129c5aa59e8SDavid Daney #else
130c5aa59e8SDavid Daney 		uint64_t mrq_hwm:2;
131c5aa59e8SDavid Daney 		uint64_t nbtarb:1;
132c5aa59e8SDavid Daney 		uint64_t lendian:1;
133c5aa59e8SDavid Daney 		uint64_t reset:1;
134c5aa59e8SDavid Daney 		uint64_t en:1;
135c5aa59e8SDavid Daney 		uint64_t busy:1;
136c5aa59e8SDavid Daney 		uint64_t crc_strip:1;
137c5aa59e8SDavid Daney 		uint64_t reserved_8_63:56;
138c5aa59e8SDavid Daney #endif
139aa32a955SDavid Daney 	} cn52xx;
140aa32a955SDavid Daney 	struct cvmx_mixx_ctl_cn52xx cn52xxp1;
141aa32a955SDavid Daney 	struct cvmx_mixx_ctl_cn52xx cn56xx;
142aa32a955SDavid Daney 	struct cvmx_mixx_ctl_cn52xx cn56xxp1;
143c5aa59e8SDavid Daney 	struct cvmx_mixx_ctl_s cn61xx;
144aa32a955SDavid Daney 	struct cvmx_mixx_ctl_s cn63xx;
145aa32a955SDavid Daney 	struct cvmx_mixx_ctl_s cn63xxp1;
146c5aa59e8SDavid Daney 	struct cvmx_mixx_ctl_s cn66xx;
147c5aa59e8SDavid Daney 	struct cvmx_mixx_ctl_s cn68xx;
148c5aa59e8SDavid Daney 	struct cvmx_mixx_ctl_s cn68xxp1;
149a7187a2fSDavid Daney };
150a7187a2fSDavid Daney 
151a7187a2fSDavid Daney union cvmx_mixx_intena {
152a7187a2fSDavid Daney 	uint64_t u64;
153a7187a2fSDavid Daney 	struct cvmx_mixx_intena_s {
154c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
155aa32a955SDavid Daney 		uint64_t reserved_8_63:56;
156aa32a955SDavid Daney 		uint64_t tsena:1;
157a7187a2fSDavid Daney 		uint64_t orunena:1;
158a7187a2fSDavid Daney 		uint64_t irunena:1;
159a7187a2fSDavid Daney 		uint64_t data_drpena:1;
160a7187a2fSDavid Daney 		uint64_t ithena:1;
161a7187a2fSDavid Daney 		uint64_t othena:1;
162a7187a2fSDavid Daney 		uint64_t ivfena:1;
163a7187a2fSDavid Daney 		uint64_t ovfena:1;
164c5aa59e8SDavid Daney #else
165c5aa59e8SDavid Daney 		uint64_t ovfena:1;
166c5aa59e8SDavid Daney 		uint64_t ivfena:1;
167c5aa59e8SDavid Daney 		uint64_t othena:1;
168c5aa59e8SDavid Daney 		uint64_t ithena:1;
169c5aa59e8SDavid Daney 		uint64_t data_drpena:1;
170c5aa59e8SDavid Daney 		uint64_t irunena:1;
171c5aa59e8SDavid Daney 		uint64_t orunena:1;
172c5aa59e8SDavid Daney 		uint64_t tsena:1;
173c5aa59e8SDavid Daney 		uint64_t reserved_8_63:56;
174c5aa59e8SDavid Daney #endif
175a7187a2fSDavid Daney 	} s;
176aa32a955SDavid Daney 	struct cvmx_mixx_intena_cn52xx {
177c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
178aa32a955SDavid Daney 		uint64_t reserved_7_63:57;
179aa32a955SDavid Daney 		uint64_t orunena:1;
180aa32a955SDavid Daney 		uint64_t irunena:1;
181aa32a955SDavid Daney 		uint64_t data_drpena:1;
182aa32a955SDavid Daney 		uint64_t ithena:1;
183aa32a955SDavid Daney 		uint64_t othena:1;
184aa32a955SDavid Daney 		uint64_t ivfena:1;
185aa32a955SDavid Daney 		uint64_t ovfena:1;
186c5aa59e8SDavid Daney #else
187c5aa59e8SDavid Daney 		uint64_t ovfena:1;
188c5aa59e8SDavid Daney 		uint64_t ivfena:1;
189c5aa59e8SDavid Daney 		uint64_t othena:1;
190c5aa59e8SDavid Daney 		uint64_t ithena:1;
191c5aa59e8SDavid Daney 		uint64_t data_drpena:1;
192c5aa59e8SDavid Daney 		uint64_t irunena:1;
193c5aa59e8SDavid Daney 		uint64_t orunena:1;
194c5aa59e8SDavid Daney 		uint64_t reserved_7_63:57;
195c5aa59e8SDavid Daney #endif
196aa32a955SDavid Daney 	} cn52xx;
197aa32a955SDavid Daney 	struct cvmx_mixx_intena_cn52xx cn52xxp1;
198aa32a955SDavid Daney 	struct cvmx_mixx_intena_cn52xx cn56xx;
199aa32a955SDavid Daney 	struct cvmx_mixx_intena_cn52xx cn56xxp1;
200c5aa59e8SDavid Daney 	struct cvmx_mixx_intena_s cn61xx;
201aa32a955SDavid Daney 	struct cvmx_mixx_intena_s cn63xx;
202aa32a955SDavid Daney 	struct cvmx_mixx_intena_s cn63xxp1;
203c5aa59e8SDavid Daney 	struct cvmx_mixx_intena_s cn66xx;
204c5aa59e8SDavid Daney 	struct cvmx_mixx_intena_s cn68xx;
205c5aa59e8SDavid Daney 	struct cvmx_mixx_intena_s cn68xxp1;
206a7187a2fSDavid Daney };
207a7187a2fSDavid Daney 
208a7187a2fSDavid Daney union cvmx_mixx_ircnt {
209a7187a2fSDavid Daney 	uint64_t u64;
210a7187a2fSDavid Daney 	struct cvmx_mixx_ircnt_s {
211c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
212a7187a2fSDavid Daney 		uint64_t reserved_20_63:44;
213a7187a2fSDavid Daney 		uint64_t ircnt:20;
214c5aa59e8SDavid Daney #else
215c5aa59e8SDavid Daney 		uint64_t ircnt:20;
216c5aa59e8SDavid Daney 		uint64_t reserved_20_63:44;
217c5aa59e8SDavid Daney #endif
218a7187a2fSDavid Daney 	} s;
219a7187a2fSDavid Daney 	struct cvmx_mixx_ircnt_s cn52xx;
220a7187a2fSDavid Daney 	struct cvmx_mixx_ircnt_s cn52xxp1;
221a7187a2fSDavid Daney 	struct cvmx_mixx_ircnt_s cn56xx;
222a7187a2fSDavid Daney 	struct cvmx_mixx_ircnt_s cn56xxp1;
223c5aa59e8SDavid Daney 	struct cvmx_mixx_ircnt_s cn61xx;
224aa32a955SDavid Daney 	struct cvmx_mixx_ircnt_s cn63xx;
225aa32a955SDavid Daney 	struct cvmx_mixx_ircnt_s cn63xxp1;
226c5aa59e8SDavid Daney 	struct cvmx_mixx_ircnt_s cn66xx;
227c5aa59e8SDavid Daney 	struct cvmx_mixx_ircnt_s cn68xx;
228c5aa59e8SDavid Daney 	struct cvmx_mixx_ircnt_s cn68xxp1;
229a7187a2fSDavid Daney };
230a7187a2fSDavid Daney 
231a7187a2fSDavid Daney union cvmx_mixx_irhwm {
232a7187a2fSDavid Daney 	uint64_t u64;
233a7187a2fSDavid Daney 	struct cvmx_mixx_irhwm_s {
234c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
235a7187a2fSDavid Daney 		uint64_t reserved_40_63:24;
236a7187a2fSDavid Daney 		uint64_t ibplwm:20;
237a7187a2fSDavid Daney 		uint64_t irhwm:20;
238c5aa59e8SDavid Daney #else
239c5aa59e8SDavid Daney 		uint64_t irhwm:20;
240c5aa59e8SDavid Daney 		uint64_t ibplwm:20;
241c5aa59e8SDavid Daney 		uint64_t reserved_40_63:24;
242c5aa59e8SDavid Daney #endif
243a7187a2fSDavid Daney 	} s;
244a7187a2fSDavid Daney 	struct cvmx_mixx_irhwm_s cn52xx;
245a7187a2fSDavid Daney 	struct cvmx_mixx_irhwm_s cn52xxp1;
246a7187a2fSDavid Daney 	struct cvmx_mixx_irhwm_s cn56xx;
247a7187a2fSDavid Daney 	struct cvmx_mixx_irhwm_s cn56xxp1;
248c5aa59e8SDavid Daney 	struct cvmx_mixx_irhwm_s cn61xx;
249aa32a955SDavid Daney 	struct cvmx_mixx_irhwm_s cn63xx;
250aa32a955SDavid Daney 	struct cvmx_mixx_irhwm_s cn63xxp1;
251c5aa59e8SDavid Daney 	struct cvmx_mixx_irhwm_s cn66xx;
252c5aa59e8SDavid Daney 	struct cvmx_mixx_irhwm_s cn68xx;
253c5aa59e8SDavid Daney 	struct cvmx_mixx_irhwm_s cn68xxp1;
254a7187a2fSDavid Daney };
255a7187a2fSDavid Daney 
256a7187a2fSDavid Daney union cvmx_mixx_iring1 {
257a7187a2fSDavid Daney 	uint64_t u64;
258a7187a2fSDavid Daney 	struct cvmx_mixx_iring1_s {
259c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
260a7187a2fSDavid Daney 		uint64_t reserved_60_63:4;
261a7187a2fSDavid Daney 		uint64_t isize:20;
262aa32a955SDavid Daney 		uint64_t ibase:37;
263aa32a955SDavid Daney 		uint64_t reserved_0_2:3;
264c5aa59e8SDavid Daney #else
265c5aa59e8SDavid Daney 		uint64_t reserved_0_2:3;
266c5aa59e8SDavid Daney 		uint64_t ibase:37;
267c5aa59e8SDavid Daney 		uint64_t isize:20;
268c5aa59e8SDavid Daney 		uint64_t reserved_60_63:4;
269c5aa59e8SDavid Daney #endif
270aa32a955SDavid Daney 	} s;
271aa32a955SDavid Daney 	struct cvmx_mixx_iring1_cn52xx {
272c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
273aa32a955SDavid Daney 		uint64_t reserved_60_63:4;
274aa32a955SDavid Daney 		uint64_t isize:20;
275a7187a2fSDavid Daney 		uint64_t reserved_36_39:4;
276a7187a2fSDavid Daney 		uint64_t ibase:33;
277a7187a2fSDavid Daney 		uint64_t reserved_0_2:3;
278c5aa59e8SDavid Daney #else
279c5aa59e8SDavid Daney 		uint64_t reserved_0_2:3;
280c5aa59e8SDavid Daney 		uint64_t ibase:33;
281c5aa59e8SDavid Daney 		uint64_t reserved_36_39:4;
282c5aa59e8SDavid Daney 		uint64_t isize:20;
283c5aa59e8SDavid Daney 		uint64_t reserved_60_63:4;
284c5aa59e8SDavid Daney #endif
285aa32a955SDavid Daney 	} cn52xx;
286aa32a955SDavid Daney 	struct cvmx_mixx_iring1_cn52xx cn52xxp1;
287aa32a955SDavid Daney 	struct cvmx_mixx_iring1_cn52xx cn56xx;
288aa32a955SDavid Daney 	struct cvmx_mixx_iring1_cn52xx cn56xxp1;
289c5aa59e8SDavid Daney 	struct cvmx_mixx_iring1_s cn61xx;
290aa32a955SDavid Daney 	struct cvmx_mixx_iring1_s cn63xx;
291aa32a955SDavid Daney 	struct cvmx_mixx_iring1_s cn63xxp1;
292c5aa59e8SDavid Daney 	struct cvmx_mixx_iring1_s cn66xx;
293c5aa59e8SDavid Daney 	struct cvmx_mixx_iring1_s cn68xx;
294c5aa59e8SDavid Daney 	struct cvmx_mixx_iring1_s cn68xxp1;
295a7187a2fSDavid Daney };
296a7187a2fSDavid Daney 
297a7187a2fSDavid Daney union cvmx_mixx_iring2 {
298a7187a2fSDavid Daney 	uint64_t u64;
299a7187a2fSDavid Daney 	struct cvmx_mixx_iring2_s {
300c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
301a7187a2fSDavid Daney 		uint64_t reserved_52_63:12;
302a7187a2fSDavid Daney 		uint64_t itlptr:20;
303a7187a2fSDavid Daney 		uint64_t reserved_20_31:12;
304a7187a2fSDavid Daney 		uint64_t idbell:20;
305c5aa59e8SDavid Daney #else
306c5aa59e8SDavid Daney 		uint64_t idbell:20;
307c5aa59e8SDavid Daney 		uint64_t reserved_20_31:12;
308c5aa59e8SDavid Daney 		uint64_t itlptr:20;
309c5aa59e8SDavid Daney 		uint64_t reserved_52_63:12;
310c5aa59e8SDavid Daney #endif
311a7187a2fSDavid Daney 	} s;
312a7187a2fSDavid Daney 	struct cvmx_mixx_iring2_s cn52xx;
313a7187a2fSDavid Daney 	struct cvmx_mixx_iring2_s cn52xxp1;
314a7187a2fSDavid Daney 	struct cvmx_mixx_iring2_s cn56xx;
315a7187a2fSDavid Daney 	struct cvmx_mixx_iring2_s cn56xxp1;
316c5aa59e8SDavid Daney 	struct cvmx_mixx_iring2_s cn61xx;
317aa32a955SDavid Daney 	struct cvmx_mixx_iring2_s cn63xx;
318aa32a955SDavid Daney 	struct cvmx_mixx_iring2_s cn63xxp1;
319c5aa59e8SDavid Daney 	struct cvmx_mixx_iring2_s cn66xx;
320c5aa59e8SDavid Daney 	struct cvmx_mixx_iring2_s cn68xx;
321c5aa59e8SDavid Daney 	struct cvmx_mixx_iring2_s cn68xxp1;
322a7187a2fSDavid Daney };
323a7187a2fSDavid Daney 
324a7187a2fSDavid Daney union cvmx_mixx_isr {
325a7187a2fSDavid Daney 	uint64_t u64;
326a7187a2fSDavid Daney 	struct cvmx_mixx_isr_s {
327c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
328aa32a955SDavid Daney 		uint64_t reserved_8_63:56;
329aa32a955SDavid Daney 		uint64_t ts:1;
330a7187a2fSDavid Daney 		uint64_t orun:1;
331a7187a2fSDavid Daney 		uint64_t irun:1;
332a7187a2fSDavid Daney 		uint64_t data_drp:1;
333a7187a2fSDavid Daney 		uint64_t irthresh:1;
334a7187a2fSDavid Daney 		uint64_t orthresh:1;
335a7187a2fSDavid Daney 		uint64_t idblovf:1;
336a7187a2fSDavid Daney 		uint64_t odblovf:1;
337c5aa59e8SDavid Daney #else
338c5aa59e8SDavid Daney 		uint64_t odblovf:1;
339c5aa59e8SDavid Daney 		uint64_t idblovf:1;
340c5aa59e8SDavid Daney 		uint64_t orthresh:1;
341c5aa59e8SDavid Daney 		uint64_t irthresh:1;
342c5aa59e8SDavid Daney 		uint64_t data_drp:1;
343c5aa59e8SDavid Daney 		uint64_t irun:1;
344c5aa59e8SDavid Daney 		uint64_t orun:1;
345c5aa59e8SDavid Daney 		uint64_t ts:1;
346c5aa59e8SDavid Daney 		uint64_t reserved_8_63:56;
347c5aa59e8SDavid Daney #endif
348a7187a2fSDavid Daney 	} s;
349aa32a955SDavid Daney 	struct cvmx_mixx_isr_cn52xx {
350c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
351aa32a955SDavid Daney 		uint64_t reserved_7_63:57;
352aa32a955SDavid Daney 		uint64_t orun:1;
353aa32a955SDavid Daney 		uint64_t irun:1;
354aa32a955SDavid Daney 		uint64_t data_drp:1;
355aa32a955SDavid Daney 		uint64_t irthresh:1;
356aa32a955SDavid Daney 		uint64_t orthresh:1;
357aa32a955SDavid Daney 		uint64_t idblovf:1;
358aa32a955SDavid Daney 		uint64_t odblovf:1;
359c5aa59e8SDavid Daney #else
360c5aa59e8SDavid Daney 		uint64_t odblovf:1;
361c5aa59e8SDavid Daney 		uint64_t idblovf:1;
362c5aa59e8SDavid Daney 		uint64_t orthresh:1;
363c5aa59e8SDavid Daney 		uint64_t irthresh:1;
364c5aa59e8SDavid Daney 		uint64_t data_drp:1;
365c5aa59e8SDavid Daney 		uint64_t irun:1;
366c5aa59e8SDavid Daney 		uint64_t orun:1;
367c5aa59e8SDavid Daney 		uint64_t reserved_7_63:57;
368c5aa59e8SDavid Daney #endif
369aa32a955SDavid Daney 	} cn52xx;
370aa32a955SDavid Daney 	struct cvmx_mixx_isr_cn52xx cn52xxp1;
371aa32a955SDavid Daney 	struct cvmx_mixx_isr_cn52xx cn56xx;
372aa32a955SDavid Daney 	struct cvmx_mixx_isr_cn52xx cn56xxp1;
373c5aa59e8SDavid Daney 	struct cvmx_mixx_isr_s cn61xx;
374aa32a955SDavid Daney 	struct cvmx_mixx_isr_s cn63xx;
375aa32a955SDavid Daney 	struct cvmx_mixx_isr_s cn63xxp1;
376c5aa59e8SDavid Daney 	struct cvmx_mixx_isr_s cn66xx;
377c5aa59e8SDavid Daney 	struct cvmx_mixx_isr_s cn68xx;
378c5aa59e8SDavid Daney 	struct cvmx_mixx_isr_s cn68xxp1;
379a7187a2fSDavid Daney };
380a7187a2fSDavid Daney 
381a7187a2fSDavid Daney union cvmx_mixx_orcnt {
382a7187a2fSDavid Daney 	uint64_t u64;
383a7187a2fSDavid Daney 	struct cvmx_mixx_orcnt_s {
384c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
385a7187a2fSDavid Daney 		uint64_t reserved_20_63:44;
386a7187a2fSDavid Daney 		uint64_t orcnt:20;
387c5aa59e8SDavid Daney #else
388c5aa59e8SDavid Daney 		uint64_t orcnt:20;
389c5aa59e8SDavid Daney 		uint64_t reserved_20_63:44;
390c5aa59e8SDavid Daney #endif
391a7187a2fSDavid Daney 	} s;
392a7187a2fSDavid Daney 	struct cvmx_mixx_orcnt_s cn52xx;
393a7187a2fSDavid Daney 	struct cvmx_mixx_orcnt_s cn52xxp1;
394a7187a2fSDavid Daney 	struct cvmx_mixx_orcnt_s cn56xx;
395a7187a2fSDavid Daney 	struct cvmx_mixx_orcnt_s cn56xxp1;
396c5aa59e8SDavid Daney 	struct cvmx_mixx_orcnt_s cn61xx;
397aa32a955SDavid Daney 	struct cvmx_mixx_orcnt_s cn63xx;
398aa32a955SDavid Daney 	struct cvmx_mixx_orcnt_s cn63xxp1;
399c5aa59e8SDavid Daney 	struct cvmx_mixx_orcnt_s cn66xx;
400c5aa59e8SDavid Daney 	struct cvmx_mixx_orcnt_s cn68xx;
401c5aa59e8SDavid Daney 	struct cvmx_mixx_orcnt_s cn68xxp1;
402a7187a2fSDavid Daney };
403a7187a2fSDavid Daney 
404a7187a2fSDavid Daney union cvmx_mixx_orhwm {
405a7187a2fSDavid Daney 	uint64_t u64;
406a7187a2fSDavid Daney 	struct cvmx_mixx_orhwm_s {
407c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
408a7187a2fSDavid Daney 		uint64_t reserved_20_63:44;
409a7187a2fSDavid Daney 		uint64_t orhwm:20;
410c5aa59e8SDavid Daney #else
411c5aa59e8SDavid Daney 		uint64_t orhwm:20;
412c5aa59e8SDavid Daney 		uint64_t reserved_20_63:44;
413c5aa59e8SDavid Daney #endif
414a7187a2fSDavid Daney 	} s;
415a7187a2fSDavid Daney 	struct cvmx_mixx_orhwm_s cn52xx;
416a7187a2fSDavid Daney 	struct cvmx_mixx_orhwm_s cn52xxp1;
417a7187a2fSDavid Daney 	struct cvmx_mixx_orhwm_s cn56xx;
418a7187a2fSDavid Daney 	struct cvmx_mixx_orhwm_s cn56xxp1;
419c5aa59e8SDavid Daney 	struct cvmx_mixx_orhwm_s cn61xx;
420aa32a955SDavid Daney 	struct cvmx_mixx_orhwm_s cn63xx;
421aa32a955SDavid Daney 	struct cvmx_mixx_orhwm_s cn63xxp1;
422c5aa59e8SDavid Daney 	struct cvmx_mixx_orhwm_s cn66xx;
423c5aa59e8SDavid Daney 	struct cvmx_mixx_orhwm_s cn68xx;
424c5aa59e8SDavid Daney 	struct cvmx_mixx_orhwm_s cn68xxp1;
425a7187a2fSDavid Daney };
426a7187a2fSDavid Daney 
427a7187a2fSDavid Daney union cvmx_mixx_oring1 {
428a7187a2fSDavid Daney 	uint64_t u64;
429a7187a2fSDavid Daney 	struct cvmx_mixx_oring1_s {
430c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
431a7187a2fSDavid Daney 		uint64_t reserved_60_63:4;
432a7187a2fSDavid Daney 		uint64_t osize:20;
433aa32a955SDavid Daney 		uint64_t obase:37;
434aa32a955SDavid Daney 		uint64_t reserved_0_2:3;
435c5aa59e8SDavid Daney #else
436c5aa59e8SDavid Daney 		uint64_t reserved_0_2:3;
437c5aa59e8SDavid Daney 		uint64_t obase:37;
438c5aa59e8SDavid Daney 		uint64_t osize:20;
439c5aa59e8SDavid Daney 		uint64_t reserved_60_63:4;
440c5aa59e8SDavid Daney #endif
441aa32a955SDavid Daney 	} s;
442aa32a955SDavid Daney 	struct cvmx_mixx_oring1_cn52xx {
443c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
444aa32a955SDavid Daney 		uint64_t reserved_60_63:4;
445aa32a955SDavid Daney 		uint64_t osize:20;
446a7187a2fSDavid Daney 		uint64_t reserved_36_39:4;
447a7187a2fSDavid Daney 		uint64_t obase:33;
448a7187a2fSDavid Daney 		uint64_t reserved_0_2:3;
449c5aa59e8SDavid Daney #else
450c5aa59e8SDavid Daney 		uint64_t reserved_0_2:3;
451c5aa59e8SDavid Daney 		uint64_t obase:33;
452c5aa59e8SDavid Daney 		uint64_t reserved_36_39:4;
453c5aa59e8SDavid Daney 		uint64_t osize:20;
454c5aa59e8SDavid Daney 		uint64_t reserved_60_63:4;
455c5aa59e8SDavid Daney #endif
456aa32a955SDavid Daney 	} cn52xx;
457aa32a955SDavid Daney 	struct cvmx_mixx_oring1_cn52xx cn52xxp1;
458aa32a955SDavid Daney 	struct cvmx_mixx_oring1_cn52xx cn56xx;
459aa32a955SDavid Daney 	struct cvmx_mixx_oring1_cn52xx cn56xxp1;
460c5aa59e8SDavid Daney 	struct cvmx_mixx_oring1_s cn61xx;
461aa32a955SDavid Daney 	struct cvmx_mixx_oring1_s cn63xx;
462aa32a955SDavid Daney 	struct cvmx_mixx_oring1_s cn63xxp1;
463c5aa59e8SDavid Daney 	struct cvmx_mixx_oring1_s cn66xx;
464c5aa59e8SDavid Daney 	struct cvmx_mixx_oring1_s cn68xx;
465c5aa59e8SDavid Daney 	struct cvmx_mixx_oring1_s cn68xxp1;
466a7187a2fSDavid Daney };
467a7187a2fSDavid Daney 
468a7187a2fSDavid Daney union cvmx_mixx_oring2 {
469a7187a2fSDavid Daney 	uint64_t u64;
470a7187a2fSDavid Daney 	struct cvmx_mixx_oring2_s {
471c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
472a7187a2fSDavid Daney 		uint64_t reserved_52_63:12;
473a7187a2fSDavid Daney 		uint64_t otlptr:20;
474a7187a2fSDavid Daney 		uint64_t reserved_20_31:12;
475a7187a2fSDavid Daney 		uint64_t odbell:20;
476c5aa59e8SDavid Daney #else
477c5aa59e8SDavid Daney 		uint64_t odbell:20;
478c5aa59e8SDavid Daney 		uint64_t reserved_20_31:12;
479c5aa59e8SDavid Daney 		uint64_t otlptr:20;
480c5aa59e8SDavid Daney 		uint64_t reserved_52_63:12;
481c5aa59e8SDavid Daney #endif
482a7187a2fSDavid Daney 	} s;
483a7187a2fSDavid Daney 	struct cvmx_mixx_oring2_s cn52xx;
484a7187a2fSDavid Daney 	struct cvmx_mixx_oring2_s cn52xxp1;
485a7187a2fSDavid Daney 	struct cvmx_mixx_oring2_s cn56xx;
486a7187a2fSDavid Daney 	struct cvmx_mixx_oring2_s cn56xxp1;
487c5aa59e8SDavid Daney 	struct cvmx_mixx_oring2_s cn61xx;
488aa32a955SDavid Daney 	struct cvmx_mixx_oring2_s cn63xx;
489aa32a955SDavid Daney 	struct cvmx_mixx_oring2_s cn63xxp1;
490c5aa59e8SDavid Daney 	struct cvmx_mixx_oring2_s cn66xx;
491c5aa59e8SDavid Daney 	struct cvmx_mixx_oring2_s cn68xx;
492c5aa59e8SDavid Daney 	struct cvmx_mixx_oring2_s cn68xxp1;
493a7187a2fSDavid Daney };
494a7187a2fSDavid Daney 
495a7187a2fSDavid Daney union cvmx_mixx_remcnt {
496a7187a2fSDavid Daney 	uint64_t u64;
497a7187a2fSDavid Daney 	struct cvmx_mixx_remcnt_s {
498c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
499a7187a2fSDavid Daney 		uint64_t reserved_52_63:12;
500a7187a2fSDavid Daney 		uint64_t iremcnt:20;
501a7187a2fSDavid Daney 		uint64_t reserved_20_31:12;
502a7187a2fSDavid Daney 		uint64_t oremcnt:20;
503c5aa59e8SDavid Daney #else
504c5aa59e8SDavid Daney 		uint64_t oremcnt:20;
505c5aa59e8SDavid Daney 		uint64_t reserved_20_31:12;
506c5aa59e8SDavid Daney 		uint64_t iremcnt:20;
507c5aa59e8SDavid Daney 		uint64_t reserved_52_63:12;
508c5aa59e8SDavid Daney #endif
509a7187a2fSDavid Daney 	} s;
510a7187a2fSDavid Daney 	struct cvmx_mixx_remcnt_s cn52xx;
511a7187a2fSDavid Daney 	struct cvmx_mixx_remcnt_s cn52xxp1;
512a7187a2fSDavid Daney 	struct cvmx_mixx_remcnt_s cn56xx;
513a7187a2fSDavid Daney 	struct cvmx_mixx_remcnt_s cn56xxp1;
514c5aa59e8SDavid Daney 	struct cvmx_mixx_remcnt_s cn61xx;
515aa32a955SDavid Daney 	struct cvmx_mixx_remcnt_s cn63xx;
516aa32a955SDavid Daney 	struct cvmx_mixx_remcnt_s cn63xxp1;
517c5aa59e8SDavid Daney 	struct cvmx_mixx_remcnt_s cn66xx;
518c5aa59e8SDavid Daney 	struct cvmx_mixx_remcnt_s cn68xx;
519c5aa59e8SDavid Daney 	struct cvmx_mixx_remcnt_s cn68xxp1;
520aa32a955SDavid Daney };
521aa32a955SDavid Daney 
522aa32a955SDavid Daney union cvmx_mixx_tsctl {
523aa32a955SDavid Daney 	uint64_t u64;
524aa32a955SDavid Daney 	struct cvmx_mixx_tsctl_s {
525c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
526aa32a955SDavid Daney 		uint64_t reserved_21_63:43;
527aa32a955SDavid Daney 		uint64_t tsavl:5;
528aa32a955SDavid Daney 		uint64_t reserved_13_15:3;
529aa32a955SDavid Daney 		uint64_t tstot:5;
530aa32a955SDavid Daney 		uint64_t reserved_5_7:3;
531aa32a955SDavid Daney 		uint64_t tscnt:5;
532c5aa59e8SDavid Daney #else
533c5aa59e8SDavid Daney 		uint64_t tscnt:5;
534c5aa59e8SDavid Daney 		uint64_t reserved_5_7:3;
535c5aa59e8SDavid Daney 		uint64_t tstot:5;
536c5aa59e8SDavid Daney 		uint64_t reserved_13_15:3;
537c5aa59e8SDavid Daney 		uint64_t tsavl:5;
538c5aa59e8SDavid Daney 		uint64_t reserved_21_63:43;
539c5aa59e8SDavid Daney #endif
540aa32a955SDavid Daney 	} s;
541c5aa59e8SDavid Daney 	struct cvmx_mixx_tsctl_s cn61xx;
542aa32a955SDavid Daney 	struct cvmx_mixx_tsctl_s cn63xx;
543aa32a955SDavid Daney 	struct cvmx_mixx_tsctl_s cn63xxp1;
544c5aa59e8SDavid Daney 	struct cvmx_mixx_tsctl_s cn66xx;
545c5aa59e8SDavid Daney 	struct cvmx_mixx_tsctl_s cn68xx;
546c5aa59e8SDavid Daney 	struct cvmx_mixx_tsctl_s cn68xxp1;
547aa32a955SDavid Daney };
548aa32a955SDavid Daney 
549aa32a955SDavid Daney union cvmx_mixx_tstamp {
550aa32a955SDavid Daney 	uint64_t u64;
551aa32a955SDavid Daney 	struct cvmx_mixx_tstamp_s {
552c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
553aa32a955SDavid Daney 		uint64_t tstamp:64;
554c5aa59e8SDavid Daney #else
555c5aa59e8SDavid Daney 		uint64_t tstamp:64;
556c5aa59e8SDavid Daney #endif
557aa32a955SDavid Daney 	} s;
558c5aa59e8SDavid Daney 	struct cvmx_mixx_tstamp_s cn61xx;
559aa32a955SDavid Daney 	struct cvmx_mixx_tstamp_s cn63xx;
560aa32a955SDavid Daney 	struct cvmx_mixx_tstamp_s cn63xxp1;
561c5aa59e8SDavid Daney 	struct cvmx_mixx_tstamp_s cn66xx;
562c5aa59e8SDavid Daney 	struct cvmx_mixx_tstamp_s cn68xx;
563c5aa59e8SDavid Daney 	struct cvmx_mixx_tstamp_s cn68xxp1;
564a7187a2fSDavid Daney };
565a7187a2fSDavid Daney 
566a7187a2fSDavid Daney #endif
567