xref: /openbmc/linux/arch/mips/include/asm/octeon/cvmx-mixx-defs.h (revision 597473720f4dc69749542bfcfed4a927a43d935e)
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  *
7*c5aa59e8SDavid 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 {
50*c5aa59e8SDavid 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;
58*c5aa59e8SDavid Daney #else
59*c5aa59e8SDavid Daney 		uint64_t orfdat:1;
60*c5aa59e8SDavid Daney 		uint64_t irfdat:1;
61*c5aa59e8SDavid Daney 		uint64_t ipfdat:1;
62*c5aa59e8SDavid Daney 		uint64_t mrqdat:1;
63*c5aa59e8SDavid Daney 		uint64_t mrgdat:1;
64*c5aa59e8SDavid Daney 		uint64_t opfdat:1;
65*c5aa59e8SDavid Daney 		uint64_t reserved_6_63:58;
66*c5aa59e8SDavid Daney #endif
67a7187a2fSDavid Daney 	} s;
68aa32a955SDavid Daney 	struct cvmx_mixx_bist_cn52xx {
69*c5aa59e8SDavid 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;
75*c5aa59e8SDavid Daney #else
76*c5aa59e8SDavid Daney 		uint64_t orfdat:1;
77*c5aa59e8SDavid Daney 		uint64_t irfdat:1;
78*c5aa59e8SDavid Daney 		uint64_t ipfdat:1;
79*c5aa59e8SDavid Daney 		uint64_t mrqdat:1;
80*c5aa59e8SDavid Daney 		uint64_t reserved_4_63:60;
81*c5aa59e8SDavid 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 {
88*c5aa59e8SDavid 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;
98*c5aa59e8SDavid Daney #else
99*c5aa59e8SDavid Daney 		uint64_t mrq_hwm:2;
100*c5aa59e8SDavid Daney 		uint64_t nbtarb:1;
101*c5aa59e8SDavid Daney 		uint64_t lendian:1;
102*c5aa59e8SDavid Daney 		uint64_t reset:1;
103*c5aa59e8SDavid Daney 		uint64_t en:1;
104*c5aa59e8SDavid Daney 		uint64_t busy:1;
105*c5aa59e8SDavid Daney 		uint64_t crc_strip:1;
106*c5aa59e8SDavid Daney 		uint64_t ts_thresh:4;
107*c5aa59e8SDavid Daney 		uint64_t reserved_12_63:52;
108*c5aa59e8SDavid Daney #endif
109a7187a2fSDavid Daney 	} s;
110aa32a955SDavid Daney 	struct cvmx_mixx_ctl_cn52xx {
111*c5aa59e8SDavid 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;
120*c5aa59e8SDavid Daney #else
121*c5aa59e8SDavid Daney 		uint64_t mrq_hwm:2;
122*c5aa59e8SDavid Daney 		uint64_t nbtarb:1;
123*c5aa59e8SDavid Daney 		uint64_t lendian:1;
124*c5aa59e8SDavid Daney 		uint64_t reset:1;
125*c5aa59e8SDavid Daney 		uint64_t en:1;
126*c5aa59e8SDavid Daney 		uint64_t busy:1;
127*c5aa59e8SDavid Daney 		uint64_t crc_strip:1;
128*c5aa59e8SDavid Daney 		uint64_t reserved_8_63:56;
129*c5aa59e8SDavid 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 {
136*c5aa59e8SDavid 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;
146*c5aa59e8SDavid Daney #else
147*c5aa59e8SDavid Daney 		uint64_t ovfena:1;
148*c5aa59e8SDavid Daney 		uint64_t ivfena:1;
149*c5aa59e8SDavid Daney 		uint64_t othena:1;
150*c5aa59e8SDavid Daney 		uint64_t ithena:1;
151*c5aa59e8SDavid Daney 		uint64_t data_drpena:1;
152*c5aa59e8SDavid Daney 		uint64_t irunena:1;
153*c5aa59e8SDavid Daney 		uint64_t orunena:1;
154*c5aa59e8SDavid Daney 		uint64_t tsena:1;
155*c5aa59e8SDavid Daney 		uint64_t reserved_8_63:56;
156*c5aa59e8SDavid Daney #endif
157a7187a2fSDavid Daney 	} s;
158aa32a955SDavid Daney 	struct cvmx_mixx_intena_cn52xx {
159*c5aa59e8SDavid 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;
168*c5aa59e8SDavid Daney #else
169*c5aa59e8SDavid Daney 		uint64_t ovfena:1;
170*c5aa59e8SDavid Daney 		uint64_t ivfena:1;
171*c5aa59e8SDavid Daney 		uint64_t othena:1;
172*c5aa59e8SDavid Daney 		uint64_t ithena:1;
173*c5aa59e8SDavid Daney 		uint64_t data_drpena:1;
174*c5aa59e8SDavid Daney 		uint64_t irunena:1;
175*c5aa59e8SDavid Daney 		uint64_t orunena:1;
176*c5aa59e8SDavid Daney 		uint64_t reserved_7_63:57;
177*c5aa59e8SDavid 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 {
184*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
185a7187a2fSDavid Daney 		uint64_t reserved_20_63:44;
186a7187a2fSDavid Daney 		uint64_t ircnt:20;
187*c5aa59e8SDavid Daney #else
188*c5aa59e8SDavid Daney 		uint64_t ircnt:20;
189*c5aa59e8SDavid Daney 		uint64_t reserved_20_63:44;
190*c5aa59e8SDavid 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 {
197*c5aa59e8SDavid 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;
201*c5aa59e8SDavid Daney #else
202*c5aa59e8SDavid Daney 		uint64_t irhwm:20;
203*c5aa59e8SDavid Daney 		uint64_t ibplwm:20;
204*c5aa59e8SDavid Daney 		uint64_t reserved_40_63:24;
205*c5aa59e8SDavid 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 {
212*c5aa59e8SDavid 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;
217*c5aa59e8SDavid Daney #else
218*c5aa59e8SDavid Daney 		uint64_t reserved_0_2:3;
219*c5aa59e8SDavid Daney 		uint64_t ibase:37;
220*c5aa59e8SDavid Daney 		uint64_t isize:20;
221*c5aa59e8SDavid Daney 		uint64_t reserved_60_63:4;
222*c5aa59e8SDavid Daney #endif
223aa32a955SDavid Daney 	} s;
224aa32a955SDavid Daney 	struct cvmx_mixx_iring1_cn52xx {
225*c5aa59e8SDavid 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;
231*c5aa59e8SDavid Daney #else
232*c5aa59e8SDavid Daney 		uint64_t reserved_0_2:3;
233*c5aa59e8SDavid Daney 		uint64_t ibase:33;
234*c5aa59e8SDavid Daney 		uint64_t reserved_36_39:4;
235*c5aa59e8SDavid Daney 		uint64_t isize:20;
236*c5aa59e8SDavid Daney 		uint64_t reserved_60_63:4;
237*c5aa59e8SDavid 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 {
244*c5aa59e8SDavid 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;
249*c5aa59e8SDavid Daney #else
250*c5aa59e8SDavid Daney 		uint64_t idbell:20;
251*c5aa59e8SDavid Daney 		uint64_t reserved_20_31:12;
252*c5aa59e8SDavid Daney 		uint64_t itlptr:20;
253*c5aa59e8SDavid Daney 		uint64_t reserved_52_63:12;
254*c5aa59e8SDavid 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 {
261*c5aa59e8SDavid 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;
271*c5aa59e8SDavid Daney #else
272*c5aa59e8SDavid Daney 		uint64_t odblovf:1;
273*c5aa59e8SDavid Daney 		uint64_t idblovf:1;
274*c5aa59e8SDavid Daney 		uint64_t orthresh:1;
275*c5aa59e8SDavid Daney 		uint64_t irthresh:1;
276*c5aa59e8SDavid Daney 		uint64_t data_drp:1;
277*c5aa59e8SDavid Daney 		uint64_t irun:1;
278*c5aa59e8SDavid Daney 		uint64_t orun:1;
279*c5aa59e8SDavid Daney 		uint64_t ts:1;
280*c5aa59e8SDavid Daney 		uint64_t reserved_8_63:56;
281*c5aa59e8SDavid Daney #endif
282a7187a2fSDavid Daney 	} s;
283aa32a955SDavid Daney 	struct cvmx_mixx_isr_cn52xx {
284*c5aa59e8SDavid 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;
293*c5aa59e8SDavid Daney #else
294*c5aa59e8SDavid Daney 		uint64_t odblovf:1;
295*c5aa59e8SDavid Daney 		uint64_t idblovf:1;
296*c5aa59e8SDavid Daney 		uint64_t orthresh:1;
297*c5aa59e8SDavid Daney 		uint64_t irthresh:1;
298*c5aa59e8SDavid Daney 		uint64_t data_drp:1;
299*c5aa59e8SDavid Daney 		uint64_t irun:1;
300*c5aa59e8SDavid Daney 		uint64_t orun:1;
301*c5aa59e8SDavid Daney 		uint64_t reserved_7_63:57;
302*c5aa59e8SDavid 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 {
309*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
310a7187a2fSDavid Daney 		uint64_t reserved_20_63:44;
311a7187a2fSDavid Daney 		uint64_t orcnt:20;
312*c5aa59e8SDavid Daney #else
313*c5aa59e8SDavid Daney 		uint64_t orcnt:20;
314*c5aa59e8SDavid Daney 		uint64_t reserved_20_63:44;
315*c5aa59e8SDavid 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 {
322*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
323a7187a2fSDavid Daney 		uint64_t reserved_20_63:44;
324a7187a2fSDavid Daney 		uint64_t orhwm:20;
325*c5aa59e8SDavid Daney #else
326*c5aa59e8SDavid Daney 		uint64_t orhwm:20;
327*c5aa59e8SDavid Daney 		uint64_t reserved_20_63:44;
328*c5aa59e8SDavid 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 {
335*c5aa59e8SDavid 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;
340*c5aa59e8SDavid Daney #else
341*c5aa59e8SDavid Daney 		uint64_t reserved_0_2:3;
342*c5aa59e8SDavid Daney 		uint64_t obase:37;
343*c5aa59e8SDavid Daney 		uint64_t osize:20;
344*c5aa59e8SDavid Daney 		uint64_t reserved_60_63:4;
345*c5aa59e8SDavid Daney #endif
346aa32a955SDavid Daney 	} s;
347aa32a955SDavid Daney 	struct cvmx_mixx_oring1_cn52xx {
348*c5aa59e8SDavid 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;
354*c5aa59e8SDavid Daney #else
355*c5aa59e8SDavid Daney 		uint64_t reserved_0_2:3;
356*c5aa59e8SDavid Daney 		uint64_t obase:33;
357*c5aa59e8SDavid Daney 		uint64_t reserved_36_39:4;
358*c5aa59e8SDavid Daney 		uint64_t osize:20;
359*c5aa59e8SDavid Daney 		uint64_t reserved_60_63:4;
360*c5aa59e8SDavid 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 {
367*c5aa59e8SDavid 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;
372*c5aa59e8SDavid Daney #else
373*c5aa59e8SDavid Daney 		uint64_t odbell:20;
374*c5aa59e8SDavid Daney 		uint64_t reserved_20_31:12;
375*c5aa59e8SDavid Daney 		uint64_t otlptr:20;
376*c5aa59e8SDavid Daney 		uint64_t reserved_52_63:12;
377*c5aa59e8SDavid 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 {
384*c5aa59e8SDavid 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;
389*c5aa59e8SDavid Daney #else
390*c5aa59e8SDavid Daney 		uint64_t oremcnt:20;
391*c5aa59e8SDavid Daney 		uint64_t reserved_20_31:12;
392*c5aa59e8SDavid Daney 		uint64_t iremcnt:20;
393*c5aa59e8SDavid Daney 		uint64_t reserved_52_63:12;
394*c5aa59e8SDavid 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 {
401*c5aa59e8SDavid 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;
408*c5aa59e8SDavid Daney #else
409*c5aa59e8SDavid Daney 		uint64_t tscnt:5;
410*c5aa59e8SDavid Daney 		uint64_t reserved_5_7:3;
411*c5aa59e8SDavid Daney 		uint64_t tstot:5;
412*c5aa59e8SDavid Daney 		uint64_t reserved_13_15:3;
413*c5aa59e8SDavid Daney 		uint64_t tsavl:5;
414*c5aa59e8SDavid Daney 		uint64_t reserved_21_63:43;
415*c5aa59e8SDavid 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 {
422*c5aa59e8SDavid Daney #ifdef __BIG_ENDIAN_BITFIELD
423aa32a955SDavid Daney 		uint64_t tstamp:64;
424*c5aa59e8SDavid Daney #else
425*c5aa59e8SDavid Daney 		uint64_t tstamp:64;
426*c5aa59e8SDavid Daney #endif
427aa32a955SDavid Daney 	} s;
428a7187a2fSDavid Daney };
429a7187a2fSDavid Daney 
430a7187a2fSDavid Daney #endif
431