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;
83a7187a2fSDavid Daney };
84a7187a2fSDavid Daney 
85a7187a2fSDavid Daney union cvmx_mixx_ctl {
86a7187a2fSDavid Daney 	uint64_t u64;
87a7187a2fSDavid Daney 	struct cvmx_mixx_ctl_s {
88c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
89aa32a955SDavid Daney 		uint64_t reserved_12_63:52;
90aa32a955SDavid Daney 		uint64_t ts_thresh:4;
91a7187a2fSDavid Daney 		uint64_t crc_strip:1;
92a7187a2fSDavid Daney 		uint64_t busy:1;
93a7187a2fSDavid Daney 		uint64_t en:1;
94a7187a2fSDavid Daney 		uint64_t reset:1;
95a7187a2fSDavid Daney 		uint64_t lendian:1;
96a7187a2fSDavid Daney 		uint64_t nbtarb:1;
97a7187a2fSDavid Daney 		uint64_t mrq_hwm:2;
98c5aa59e8SDavid Daney #else
99c5aa59e8SDavid Daney 		uint64_t mrq_hwm:2;
100c5aa59e8SDavid Daney 		uint64_t nbtarb:1;
101c5aa59e8SDavid Daney 		uint64_t lendian:1;
102c5aa59e8SDavid Daney 		uint64_t reset:1;
103c5aa59e8SDavid Daney 		uint64_t en:1;
104c5aa59e8SDavid Daney 		uint64_t busy:1;
105c5aa59e8SDavid Daney 		uint64_t crc_strip:1;
106c5aa59e8SDavid Daney 		uint64_t ts_thresh:4;
107c5aa59e8SDavid Daney 		uint64_t reserved_12_63:52;
108c5aa59e8SDavid Daney #endif
109a7187a2fSDavid Daney 	} s;
110aa32a955SDavid Daney 	struct cvmx_mixx_ctl_cn52xx {
111c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
112aa32a955SDavid Daney 		uint64_t reserved_8_63:56;
113aa32a955SDavid Daney 		uint64_t crc_strip:1;
114aa32a955SDavid Daney 		uint64_t busy:1;
115aa32a955SDavid Daney 		uint64_t en:1;
116aa32a955SDavid Daney 		uint64_t reset:1;
117aa32a955SDavid Daney 		uint64_t lendian:1;
118aa32a955SDavid Daney 		uint64_t nbtarb:1;
119aa32a955SDavid Daney 		uint64_t mrq_hwm:2;
120c5aa59e8SDavid Daney #else
121c5aa59e8SDavid Daney 		uint64_t mrq_hwm:2;
122c5aa59e8SDavid Daney 		uint64_t nbtarb:1;
123c5aa59e8SDavid Daney 		uint64_t lendian:1;
124c5aa59e8SDavid Daney 		uint64_t reset:1;
125c5aa59e8SDavid Daney 		uint64_t en:1;
126c5aa59e8SDavid Daney 		uint64_t busy:1;
127c5aa59e8SDavid Daney 		uint64_t crc_strip:1;
128c5aa59e8SDavid Daney 		uint64_t reserved_8_63:56;
129c5aa59e8SDavid Daney #endif
130aa32a955SDavid Daney 	} cn52xx;
131a7187a2fSDavid Daney };
132a7187a2fSDavid Daney 
133a7187a2fSDavid Daney union cvmx_mixx_intena {
134a7187a2fSDavid Daney 	uint64_t u64;
135a7187a2fSDavid Daney 	struct cvmx_mixx_intena_s {
136c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
137aa32a955SDavid Daney 		uint64_t reserved_8_63:56;
138aa32a955SDavid Daney 		uint64_t tsena:1;
139a7187a2fSDavid Daney 		uint64_t orunena:1;
140a7187a2fSDavid Daney 		uint64_t irunena:1;
141a7187a2fSDavid Daney 		uint64_t data_drpena:1;
142a7187a2fSDavid Daney 		uint64_t ithena:1;
143a7187a2fSDavid Daney 		uint64_t othena:1;
144a7187a2fSDavid Daney 		uint64_t ivfena:1;
145a7187a2fSDavid Daney 		uint64_t ovfena:1;
146c5aa59e8SDavid Daney #else
147c5aa59e8SDavid Daney 		uint64_t ovfena:1;
148c5aa59e8SDavid Daney 		uint64_t ivfena:1;
149c5aa59e8SDavid Daney 		uint64_t othena:1;
150c5aa59e8SDavid Daney 		uint64_t ithena:1;
151c5aa59e8SDavid Daney 		uint64_t data_drpena:1;
152c5aa59e8SDavid Daney 		uint64_t irunena:1;
153c5aa59e8SDavid Daney 		uint64_t orunena:1;
154c5aa59e8SDavid Daney 		uint64_t tsena:1;
155c5aa59e8SDavid Daney 		uint64_t reserved_8_63:56;
156c5aa59e8SDavid Daney #endif
157a7187a2fSDavid Daney 	} s;
158aa32a955SDavid Daney 	struct cvmx_mixx_intena_cn52xx {
159c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
160aa32a955SDavid Daney 		uint64_t reserved_7_63:57;
161aa32a955SDavid Daney 		uint64_t orunena:1;
162aa32a955SDavid Daney 		uint64_t irunena:1;
163aa32a955SDavid Daney 		uint64_t data_drpena:1;
164aa32a955SDavid Daney 		uint64_t ithena:1;
165aa32a955SDavid Daney 		uint64_t othena:1;
166aa32a955SDavid Daney 		uint64_t ivfena:1;
167aa32a955SDavid Daney 		uint64_t ovfena:1;
168c5aa59e8SDavid Daney #else
169c5aa59e8SDavid Daney 		uint64_t ovfena:1;
170c5aa59e8SDavid Daney 		uint64_t ivfena:1;
171c5aa59e8SDavid Daney 		uint64_t othena:1;
172c5aa59e8SDavid Daney 		uint64_t ithena:1;
173c5aa59e8SDavid Daney 		uint64_t data_drpena:1;
174c5aa59e8SDavid Daney 		uint64_t irunena:1;
175c5aa59e8SDavid Daney 		uint64_t orunena:1;
176c5aa59e8SDavid Daney 		uint64_t reserved_7_63:57;
177c5aa59e8SDavid Daney #endif
178aa32a955SDavid Daney 	} cn52xx;
179a7187a2fSDavid Daney };
180a7187a2fSDavid Daney 
181a7187a2fSDavid Daney union cvmx_mixx_ircnt {
182a7187a2fSDavid Daney 	uint64_t u64;
183a7187a2fSDavid Daney 	struct cvmx_mixx_ircnt_s {
184c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
185a7187a2fSDavid Daney 		uint64_t reserved_20_63:44;
186a7187a2fSDavid Daney 		uint64_t ircnt:20;
187c5aa59e8SDavid Daney #else
188c5aa59e8SDavid Daney 		uint64_t ircnt:20;
189c5aa59e8SDavid Daney 		uint64_t reserved_20_63:44;
190c5aa59e8SDavid Daney #endif
191a7187a2fSDavid Daney 	} s;
192a7187a2fSDavid Daney };
193a7187a2fSDavid Daney 
194a7187a2fSDavid Daney union cvmx_mixx_irhwm {
195a7187a2fSDavid Daney 	uint64_t u64;
196a7187a2fSDavid Daney 	struct cvmx_mixx_irhwm_s {
197c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
198a7187a2fSDavid Daney 		uint64_t reserved_40_63:24;
199a7187a2fSDavid Daney 		uint64_t ibplwm:20;
200a7187a2fSDavid Daney 		uint64_t irhwm:20;
201c5aa59e8SDavid Daney #else
202c5aa59e8SDavid Daney 		uint64_t irhwm:20;
203c5aa59e8SDavid Daney 		uint64_t ibplwm:20;
204c5aa59e8SDavid Daney 		uint64_t reserved_40_63:24;
205c5aa59e8SDavid Daney #endif
206a7187a2fSDavid Daney 	} s;
207a7187a2fSDavid Daney };
208a7187a2fSDavid Daney 
209a7187a2fSDavid Daney union cvmx_mixx_iring1 {
210a7187a2fSDavid Daney 	uint64_t u64;
211a7187a2fSDavid Daney 	struct cvmx_mixx_iring1_s {
212c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
213a7187a2fSDavid Daney 		uint64_t reserved_60_63:4;
214a7187a2fSDavid Daney 		uint64_t isize:20;
215aa32a955SDavid Daney 		uint64_t ibase:37;
216aa32a955SDavid Daney 		uint64_t reserved_0_2:3;
217c5aa59e8SDavid Daney #else
218c5aa59e8SDavid Daney 		uint64_t reserved_0_2:3;
219c5aa59e8SDavid Daney 		uint64_t ibase:37;
220c5aa59e8SDavid Daney 		uint64_t isize:20;
221c5aa59e8SDavid Daney 		uint64_t reserved_60_63:4;
222c5aa59e8SDavid Daney #endif
223aa32a955SDavid Daney 	} s;
224aa32a955SDavid Daney 	struct cvmx_mixx_iring1_cn52xx {
225c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
226aa32a955SDavid Daney 		uint64_t reserved_60_63:4;
227aa32a955SDavid Daney 		uint64_t isize:20;
228a7187a2fSDavid Daney 		uint64_t reserved_36_39:4;
229a7187a2fSDavid Daney 		uint64_t ibase:33;
230a7187a2fSDavid Daney 		uint64_t reserved_0_2:3;
231c5aa59e8SDavid Daney #else
232c5aa59e8SDavid Daney 		uint64_t reserved_0_2:3;
233c5aa59e8SDavid Daney 		uint64_t ibase:33;
234c5aa59e8SDavid Daney 		uint64_t reserved_36_39:4;
235c5aa59e8SDavid Daney 		uint64_t isize:20;
236c5aa59e8SDavid Daney 		uint64_t reserved_60_63:4;
237c5aa59e8SDavid Daney #endif
238aa32a955SDavid Daney 	} cn52xx;
239a7187a2fSDavid Daney };
240a7187a2fSDavid Daney 
241a7187a2fSDavid Daney union cvmx_mixx_iring2 {
242a7187a2fSDavid Daney 	uint64_t u64;
243a7187a2fSDavid Daney 	struct cvmx_mixx_iring2_s {
244c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
245a7187a2fSDavid Daney 		uint64_t reserved_52_63:12;
246a7187a2fSDavid Daney 		uint64_t itlptr:20;
247a7187a2fSDavid Daney 		uint64_t reserved_20_31:12;
248a7187a2fSDavid Daney 		uint64_t idbell:20;
249c5aa59e8SDavid Daney #else
250c5aa59e8SDavid Daney 		uint64_t idbell:20;
251c5aa59e8SDavid Daney 		uint64_t reserved_20_31:12;
252c5aa59e8SDavid Daney 		uint64_t itlptr:20;
253c5aa59e8SDavid Daney 		uint64_t reserved_52_63:12;
254c5aa59e8SDavid Daney #endif
255a7187a2fSDavid Daney 	} s;
256a7187a2fSDavid Daney };
257a7187a2fSDavid Daney 
258a7187a2fSDavid Daney union cvmx_mixx_isr {
259a7187a2fSDavid Daney 	uint64_t u64;
260a7187a2fSDavid Daney 	struct cvmx_mixx_isr_s {
261c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
262aa32a955SDavid Daney 		uint64_t reserved_8_63:56;
263aa32a955SDavid Daney 		uint64_t ts:1;
264a7187a2fSDavid Daney 		uint64_t orun:1;
265a7187a2fSDavid Daney 		uint64_t irun:1;
266a7187a2fSDavid Daney 		uint64_t data_drp:1;
267a7187a2fSDavid Daney 		uint64_t irthresh:1;
268a7187a2fSDavid Daney 		uint64_t orthresh:1;
269a7187a2fSDavid Daney 		uint64_t idblovf:1;
270a7187a2fSDavid Daney 		uint64_t odblovf:1;
271c5aa59e8SDavid Daney #else
272c5aa59e8SDavid Daney 		uint64_t odblovf:1;
273c5aa59e8SDavid Daney 		uint64_t idblovf:1;
274c5aa59e8SDavid Daney 		uint64_t orthresh:1;
275c5aa59e8SDavid Daney 		uint64_t irthresh:1;
276c5aa59e8SDavid Daney 		uint64_t data_drp:1;
277c5aa59e8SDavid Daney 		uint64_t irun:1;
278c5aa59e8SDavid Daney 		uint64_t orun:1;
279c5aa59e8SDavid Daney 		uint64_t ts:1;
280c5aa59e8SDavid Daney 		uint64_t reserved_8_63:56;
281c5aa59e8SDavid Daney #endif
282a7187a2fSDavid Daney 	} s;
283aa32a955SDavid Daney 	struct cvmx_mixx_isr_cn52xx {
284c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
285aa32a955SDavid Daney 		uint64_t reserved_7_63:57;
286aa32a955SDavid Daney 		uint64_t orun:1;
287aa32a955SDavid Daney 		uint64_t irun:1;
288aa32a955SDavid Daney 		uint64_t data_drp:1;
289aa32a955SDavid Daney 		uint64_t irthresh:1;
290aa32a955SDavid Daney 		uint64_t orthresh:1;
291aa32a955SDavid Daney 		uint64_t idblovf:1;
292aa32a955SDavid Daney 		uint64_t odblovf:1;
293c5aa59e8SDavid Daney #else
294c5aa59e8SDavid Daney 		uint64_t odblovf:1;
295c5aa59e8SDavid Daney 		uint64_t idblovf:1;
296c5aa59e8SDavid Daney 		uint64_t orthresh:1;
297c5aa59e8SDavid Daney 		uint64_t irthresh:1;
298c5aa59e8SDavid Daney 		uint64_t data_drp:1;
299c5aa59e8SDavid Daney 		uint64_t irun:1;
300c5aa59e8SDavid Daney 		uint64_t orun:1;
301c5aa59e8SDavid Daney 		uint64_t reserved_7_63:57;
302c5aa59e8SDavid Daney #endif
303aa32a955SDavid Daney 	} cn52xx;
304a7187a2fSDavid Daney };
305a7187a2fSDavid Daney 
306a7187a2fSDavid Daney union cvmx_mixx_orcnt {
307a7187a2fSDavid Daney 	uint64_t u64;
308a7187a2fSDavid Daney 	struct cvmx_mixx_orcnt_s {
309c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
310a7187a2fSDavid Daney 		uint64_t reserved_20_63:44;
311a7187a2fSDavid Daney 		uint64_t orcnt:20;
312c5aa59e8SDavid Daney #else
313c5aa59e8SDavid Daney 		uint64_t orcnt:20;
314c5aa59e8SDavid Daney 		uint64_t reserved_20_63:44;
315c5aa59e8SDavid Daney #endif
316a7187a2fSDavid Daney 	} s;
317a7187a2fSDavid Daney };
318a7187a2fSDavid Daney 
319a7187a2fSDavid Daney union cvmx_mixx_orhwm {
320a7187a2fSDavid Daney 	uint64_t u64;
321a7187a2fSDavid Daney 	struct cvmx_mixx_orhwm_s {
322c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
323a7187a2fSDavid Daney 		uint64_t reserved_20_63:44;
324a7187a2fSDavid Daney 		uint64_t orhwm:20;
325c5aa59e8SDavid Daney #else
326c5aa59e8SDavid Daney 		uint64_t orhwm:20;
327c5aa59e8SDavid Daney 		uint64_t reserved_20_63:44;
328c5aa59e8SDavid Daney #endif
329a7187a2fSDavid Daney 	} s;
330a7187a2fSDavid Daney };
331a7187a2fSDavid Daney 
332a7187a2fSDavid Daney union cvmx_mixx_oring1 {
333a7187a2fSDavid Daney 	uint64_t u64;
334a7187a2fSDavid Daney 	struct cvmx_mixx_oring1_s {
335c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
336a7187a2fSDavid Daney 		uint64_t reserved_60_63:4;
337a7187a2fSDavid Daney 		uint64_t osize:20;
338aa32a955SDavid Daney 		uint64_t obase:37;
339aa32a955SDavid Daney 		uint64_t reserved_0_2:3;
340c5aa59e8SDavid Daney #else
341c5aa59e8SDavid Daney 		uint64_t reserved_0_2:3;
342c5aa59e8SDavid Daney 		uint64_t obase:37;
343c5aa59e8SDavid Daney 		uint64_t osize:20;
344c5aa59e8SDavid Daney 		uint64_t reserved_60_63:4;
345c5aa59e8SDavid Daney #endif
346aa32a955SDavid Daney 	} s;
347aa32a955SDavid Daney 	struct cvmx_mixx_oring1_cn52xx {
348c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
349aa32a955SDavid Daney 		uint64_t reserved_60_63:4;
350aa32a955SDavid Daney 		uint64_t osize:20;
351a7187a2fSDavid Daney 		uint64_t reserved_36_39:4;
352a7187a2fSDavid Daney 		uint64_t obase:33;
353a7187a2fSDavid Daney 		uint64_t reserved_0_2:3;
354c5aa59e8SDavid Daney #else
355c5aa59e8SDavid Daney 		uint64_t reserved_0_2:3;
356c5aa59e8SDavid Daney 		uint64_t obase:33;
357c5aa59e8SDavid Daney 		uint64_t reserved_36_39:4;
358c5aa59e8SDavid Daney 		uint64_t osize:20;
359c5aa59e8SDavid Daney 		uint64_t reserved_60_63:4;
360c5aa59e8SDavid Daney #endif
361aa32a955SDavid Daney 	} cn52xx;
362a7187a2fSDavid Daney };
363a7187a2fSDavid Daney 
364a7187a2fSDavid Daney union cvmx_mixx_oring2 {
365a7187a2fSDavid Daney 	uint64_t u64;
366a7187a2fSDavid Daney 	struct cvmx_mixx_oring2_s {
367c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
368a7187a2fSDavid Daney 		uint64_t reserved_52_63:12;
369a7187a2fSDavid Daney 		uint64_t otlptr:20;
370a7187a2fSDavid Daney 		uint64_t reserved_20_31:12;
371a7187a2fSDavid Daney 		uint64_t odbell:20;
372c5aa59e8SDavid Daney #else
373c5aa59e8SDavid Daney 		uint64_t odbell:20;
374c5aa59e8SDavid Daney 		uint64_t reserved_20_31:12;
375c5aa59e8SDavid Daney 		uint64_t otlptr:20;
376c5aa59e8SDavid Daney 		uint64_t reserved_52_63:12;
377c5aa59e8SDavid Daney #endif
378a7187a2fSDavid Daney 	} s;
379a7187a2fSDavid Daney };
380a7187a2fSDavid Daney 
381a7187a2fSDavid Daney union cvmx_mixx_remcnt {
382a7187a2fSDavid Daney 	uint64_t u64;
383a7187a2fSDavid Daney 	struct cvmx_mixx_remcnt_s {
384c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
385a7187a2fSDavid Daney 		uint64_t reserved_52_63:12;
386a7187a2fSDavid Daney 		uint64_t iremcnt:20;
387a7187a2fSDavid Daney 		uint64_t reserved_20_31:12;
388a7187a2fSDavid Daney 		uint64_t oremcnt:20;
389c5aa59e8SDavid Daney #else
390c5aa59e8SDavid Daney 		uint64_t oremcnt:20;
391c5aa59e8SDavid Daney 		uint64_t reserved_20_31:12;
392c5aa59e8SDavid Daney 		uint64_t iremcnt:20;
393c5aa59e8SDavid Daney 		uint64_t reserved_52_63:12;
394c5aa59e8SDavid Daney #endif
395a7187a2fSDavid Daney 	} s;
396aa32a955SDavid Daney };
397aa32a955SDavid Daney 
398aa32a955SDavid Daney union cvmx_mixx_tsctl {
399aa32a955SDavid Daney 	uint64_t u64;
400aa32a955SDavid Daney 	struct cvmx_mixx_tsctl_s {
401c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
402aa32a955SDavid Daney 		uint64_t reserved_21_63:43;
403aa32a955SDavid Daney 		uint64_t tsavl:5;
404aa32a955SDavid Daney 		uint64_t reserved_13_15:3;
405aa32a955SDavid Daney 		uint64_t tstot:5;
406aa32a955SDavid Daney 		uint64_t reserved_5_7:3;
407aa32a955SDavid Daney 		uint64_t tscnt:5;
408c5aa59e8SDavid Daney #else
409c5aa59e8SDavid Daney 		uint64_t tscnt:5;
410c5aa59e8SDavid Daney 		uint64_t reserved_5_7:3;
411c5aa59e8SDavid Daney 		uint64_t tstot:5;
412c5aa59e8SDavid Daney 		uint64_t reserved_13_15:3;
413c5aa59e8SDavid Daney 		uint64_t tsavl:5;
414c5aa59e8SDavid Daney 		uint64_t reserved_21_63:43;
415c5aa59e8SDavid Daney #endif
416aa32a955SDavid Daney 	} s;
417aa32a955SDavid Daney };
418aa32a955SDavid Daney 
419aa32a955SDavid Daney union cvmx_mixx_tstamp {
420aa32a955SDavid Daney 	uint64_t u64;
421aa32a955SDavid Daney 	struct cvmx_mixx_tstamp_s {
422c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
423aa32a955SDavid Daney 		uint64_t tstamp:64;
424c5aa59e8SDavid Daney #else
425c5aa59e8SDavid Daney 		uint64_t tstamp:64;
426c5aa59e8SDavid Daney #endif
427aa32a955SDavid Daney 	} s;
428a7187a2fSDavid Daney };
429a7187a2fSDavid Daney 
430a7187a2fSDavid Daney #endif
431