xref: /OK3568_Linux_fs/kernel/arch/mips/include/asm/octeon/cvmx-ciu3-defs.h (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun /*
2*4882a593Smuzhiyun  * Copyright (c) 2003-2016 Cavium Inc.
3*4882a593Smuzhiyun  *
4*4882a593Smuzhiyun  * This file is free software; you can redistribute it and/or modify
5*4882a593Smuzhiyun  * it under the terms of the GNU General Public License, Version 2, as
6*4882a593Smuzhiyun  * published by the Free Software Foundation.
7*4882a593Smuzhiyun  *
8*4882a593Smuzhiyun  * This file is distributed in the hope that it will be useful, but
9*4882a593Smuzhiyun  * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
10*4882a593Smuzhiyun  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
11*4882a593Smuzhiyun  * NONINFRINGEMENT.  See the GNU General Public License for more
12*4882a593Smuzhiyun  * details.
13*4882a593Smuzhiyun  *
14*4882a593Smuzhiyun  */
15*4882a593Smuzhiyun 
16*4882a593Smuzhiyun #ifndef __CVMX_CIU3_DEFS_H__
17*4882a593Smuzhiyun #define __CVMX_CIU3_DEFS_H__
18*4882a593Smuzhiyun 
19*4882a593Smuzhiyun #define CVMX_CIU3_FUSE CVMX_ADD_IO_SEG(0x00010100000001A0ull)
20*4882a593Smuzhiyun #define CVMX_CIU3_BIST CVMX_ADD_IO_SEG(0x00010100000001C0ull)
21*4882a593Smuzhiyun #define CVMX_CIU3_CONST CVMX_ADD_IO_SEG(0x0001010000000220ull)
22*4882a593Smuzhiyun #define CVMX_CIU3_CTL CVMX_ADD_IO_SEG(0x00010100000000E0ull)
23*4882a593Smuzhiyun #define CVMX_CIU3_DESTX_IO_INT(offset) (CVMX_ADD_IO_SEG(0x0001010000210000ull) + ((offset) & 7) * 8)
24*4882a593Smuzhiyun #define CVMX_CIU3_DESTX_PP_INT(offset) (CVMX_ADD_IO_SEG(0x0001010000200000ull) + ((offset) & 255) * 8)
25*4882a593Smuzhiyun #define CVMX_CIU3_GSTOP CVMX_ADD_IO_SEG(0x0001010000000140ull)
26*4882a593Smuzhiyun #define CVMX_CIU3_IDTX_CTL(offset) (CVMX_ADD_IO_SEG(0x0001010000110000ull) + ((offset) & 255) * 8)
27*4882a593Smuzhiyun #define CVMX_CIU3_IDTX_IO(offset) (CVMX_ADD_IO_SEG(0x0001010000130000ull) + ((offset) & 255) * 8)
28*4882a593Smuzhiyun #define CVMX_CIU3_IDTX_PPX(offset, block_id) (CVMX_ADD_IO_SEG(0x0001010000120000ull) + ((block_id) & 255) * 0x20ull)
29*4882a593Smuzhiyun #define CVMX_CIU3_INTR_RAM_ECC_CTL CVMX_ADD_IO_SEG(0x0001010000000260ull)
30*4882a593Smuzhiyun #define CVMX_CIU3_INTR_RAM_ECC_ST CVMX_ADD_IO_SEG(0x0001010000000280ull)
31*4882a593Smuzhiyun #define CVMX_CIU3_INTR_READY CVMX_ADD_IO_SEG(0x00010100000002A0ull)
32*4882a593Smuzhiyun #define CVMX_CIU3_INTR_SLOWDOWN CVMX_ADD_IO_SEG(0x0001010000000240ull)
33*4882a593Smuzhiyun #define CVMX_CIU3_ISCX_CTL(offset) (CVMX_ADD_IO_SEG(0x0001010080000000ull) + ((offset) & 1048575) * 8)
34*4882a593Smuzhiyun #define CVMX_CIU3_ISCX_W1C(offset) (CVMX_ADD_IO_SEG(0x0001010090000000ull) + ((offset) & 1048575) * 8)
35*4882a593Smuzhiyun #define CVMX_CIU3_ISCX_W1S(offset) (CVMX_ADD_IO_SEG(0x00010100A0000000ull) + ((offset) & 1048575) * 8)
36*4882a593Smuzhiyun #define CVMX_CIU3_NMI CVMX_ADD_IO_SEG(0x0001010000000160ull)
37*4882a593Smuzhiyun #define CVMX_CIU3_SISCX(offset) (CVMX_ADD_IO_SEG(0x0001010000220000ull) + ((offset) & 255) * 8)
38*4882a593Smuzhiyun #define CVMX_CIU3_TIMX(offset) (CVMX_ADD_IO_SEG(0x0001010000010000ull) + ((offset) & 15) * 8)
39*4882a593Smuzhiyun 
40*4882a593Smuzhiyun union cvmx_ciu3_bist {
41*4882a593Smuzhiyun 	uint64_t u64;
42*4882a593Smuzhiyun 	struct cvmx_ciu3_bist_s {
43*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
44*4882a593Smuzhiyun 	uint64_t reserved_9_63                : 55;
45*4882a593Smuzhiyun 	uint64_t bist                         : 9;
46*4882a593Smuzhiyun #else
47*4882a593Smuzhiyun 	uint64_t bist                         : 9;
48*4882a593Smuzhiyun 	uint64_t reserved_9_63                : 55;
49*4882a593Smuzhiyun #endif
50*4882a593Smuzhiyun 	} s;
51*4882a593Smuzhiyun };
52*4882a593Smuzhiyun 
53*4882a593Smuzhiyun union cvmx_ciu3_const {
54*4882a593Smuzhiyun 	uint64_t u64;
55*4882a593Smuzhiyun 	struct cvmx_ciu3_const_s {
56*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
57*4882a593Smuzhiyun 	uint64_t dests_io                     : 16;
58*4882a593Smuzhiyun 	uint64_t pintsn                       : 16;
59*4882a593Smuzhiyun 	uint64_t dests_pp                     : 16;
60*4882a593Smuzhiyun 	uint64_t idt                          : 16;
61*4882a593Smuzhiyun #else
62*4882a593Smuzhiyun 	uint64_t idt                          : 16;
63*4882a593Smuzhiyun 	uint64_t dests_pp                     : 16;
64*4882a593Smuzhiyun 	uint64_t pintsn                       : 16;
65*4882a593Smuzhiyun 	uint64_t dests_io                     : 16;
66*4882a593Smuzhiyun #endif
67*4882a593Smuzhiyun 	} s;
68*4882a593Smuzhiyun };
69*4882a593Smuzhiyun 
70*4882a593Smuzhiyun union cvmx_ciu3_ctl {
71*4882a593Smuzhiyun 	uint64_t u64;
72*4882a593Smuzhiyun 	struct cvmx_ciu3_ctl_s {
73*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
74*4882a593Smuzhiyun 	uint64_t reserved_5_63                : 59;
75*4882a593Smuzhiyun 	uint64_t mcd_sel                      : 2;
76*4882a593Smuzhiyun 	uint64_t iscmem_le                    : 1;
77*4882a593Smuzhiyun 	uint64_t seq_dis                      : 1;
78*4882a593Smuzhiyun 	uint64_t cclk_dis                     : 1;
79*4882a593Smuzhiyun #else
80*4882a593Smuzhiyun 	uint64_t cclk_dis                     : 1;
81*4882a593Smuzhiyun 	uint64_t seq_dis                      : 1;
82*4882a593Smuzhiyun 	uint64_t iscmem_le                    : 1;
83*4882a593Smuzhiyun 	uint64_t mcd_sel                      : 2;
84*4882a593Smuzhiyun 	uint64_t reserved_5_63                : 59;
85*4882a593Smuzhiyun #endif
86*4882a593Smuzhiyun 	} s;
87*4882a593Smuzhiyun };
88*4882a593Smuzhiyun 
89*4882a593Smuzhiyun union cvmx_ciu3_destx_io_int {
90*4882a593Smuzhiyun 	uint64_t u64;
91*4882a593Smuzhiyun 	struct cvmx_ciu3_destx_io_int_s {
92*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
93*4882a593Smuzhiyun 	uint64_t reserved_52_63               : 12;
94*4882a593Smuzhiyun 	uint64_t intsn                        : 20;
95*4882a593Smuzhiyun 	uint64_t reserved_10_31               : 22;
96*4882a593Smuzhiyun 	uint64_t intidt                       : 8;
97*4882a593Smuzhiyun 	uint64_t newint                       : 1;
98*4882a593Smuzhiyun 	uint64_t intr                         : 1;
99*4882a593Smuzhiyun #else
100*4882a593Smuzhiyun 	uint64_t intr                         : 1;
101*4882a593Smuzhiyun 	uint64_t newint                       : 1;
102*4882a593Smuzhiyun 	uint64_t intidt                       : 8;
103*4882a593Smuzhiyun 	uint64_t reserved_10_31               : 22;
104*4882a593Smuzhiyun 	uint64_t intsn                        : 20;
105*4882a593Smuzhiyun 	uint64_t reserved_52_63               : 12;
106*4882a593Smuzhiyun #endif
107*4882a593Smuzhiyun 	} s;
108*4882a593Smuzhiyun };
109*4882a593Smuzhiyun 
110*4882a593Smuzhiyun union cvmx_ciu3_destx_pp_int {
111*4882a593Smuzhiyun 	uint64_t u64;
112*4882a593Smuzhiyun 	struct cvmx_ciu3_destx_pp_int_s {
113*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
114*4882a593Smuzhiyun 	uint64_t reserved_52_63               : 12;
115*4882a593Smuzhiyun 	uint64_t intsn                        : 20;
116*4882a593Smuzhiyun 	uint64_t reserved_10_31               : 22;
117*4882a593Smuzhiyun 	uint64_t intidt                       : 8;
118*4882a593Smuzhiyun 	uint64_t newint                       : 1;
119*4882a593Smuzhiyun 	uint64_t intr                         : 1;
120*4882a593Smuzhiyun #else
121*4882a593Smuzhiyun 	uint64_t intr                         : 1;
122*4882a593Smuzhiyun 	uint64_t newint                       : 1;
123*4882a593Smuzhiyun 	uint64_t intidt                       : 8;
124*4882a593Smuzhiyun 	uint64_t reserved_10_31               : 22;
125*4882a593Smuzhiyun 	uint64_t intsn                        : 20;
126*4882a593Smuzhiyun 	uint64_t reserved_52_63               : 12;
127*4882a593Smuzhiyun #endif
128*4882a593Smuzhiyun 	} s;
129*4882a593Smuzhiyun };
130*4882a593Smuzhiyun 
131*4882a593Smuzhiyun union cvmx_ciu3_gstop {
132*4882a593Smuzhiyun 	uint64_t u64;
133*4882a593Smuzhiyun 	struct cvmx_ciu3_gstop_s {
134*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
135*4882a593Smuzhiyun 	uint64_t reserved_1_63                : 63;
136*4882a593Smuzhiyun 	uint64_t gstop                        : 1;
137*4882a593Smuzhiyun #else
138*4882a593Smuzhiyun 	uint64_t gstop                        : 1;
139*4882a593Smuzhiyun 	uint64_t reserved_1_63                : 63;
140*4882a593Smuzhiyun #endif
141*4882a593Smuzhiyun 	} s;
142*4882a593Smuzhiyun };
143*4882a593Smuzhiyun 
144*4882a593Smuzhiyun union cvmx_ciu3_idtx_ctl {
145*4882a593Smuzhiyun 	uint64_t u64;
146*4882a593Smuzhiyun 	struct cvmx_ciu3_idtx_ctl_s {
147*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
148*4882a593Smuzhiyun 	uint64_t reserved_52_63               : 12;
149*4882a593Smuzhiyun 	uint64_t intsn                        : 20;
150*4882a593Smuzhiyun 	uint64_t reserved_4_31                : 28;
151*4882a593Smuzhiyun 	uint64_t intr                         : 1;
152*4882a593Smuzhiyun 	uint64_t newint                       : 1;
153*4882a593Smuzhiyun 	uint64_t ip_num                       : 2;
154*4882a593Smuzhiyun #else
155*4882a593Smuzhiyun 	uint64_t ip_num                       : 2;
156*4882a593Smuzhiyun 	uint64_t newint                       : 1;
157*4882a593Smuzhiyun 	uint64_t intr                         : 1;
158*4882a593Smuzhiyun 	uint64_t reserved_4_31                : 28;
159*4882a593Smuzhiyun 	uint64_t intsn                        : 20;
160*4882a593Smuzhiyun 	uint64_t reserved_52_63               : 12;
161*4882a593Smuzhiyun #endif
162*4882a593Smuzhiyun 	} s;
163*4882a593Smuzhiyun };
164*4882a593Smuzhiyun 
165*4882a593Smuzhiyun union cvmx_ciu3_idtx_io {
166*4882a593Smuzhiyun 	uint64_t u64;
167*4882a593Smuzhiyun 	struct cvmx_ciu3_idtx_io_s {
168*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
169*4882a593Smuzhiyun 	uint64_t reserved_5_63                : 59;
170*4882a593Smuzhiyun 	uint64_t io                           : 5;
171*4882a593Smuzhiyun #else
172*4882a593Smuzhiyun 	uint64_t io                           : 5;
173*4882a593Smuzhiyun 	uint64_t reserved_5_63                : 59;
174*4882a593Smuzhiyun #endif
175*4882a593Smuzhiyun 	} s;
176*4882a593Smuzhiyun };
177*4882a593Smuzhiyun 
178*4882a593Smuzhiyun union cvmx_ciu3_idtx_ppx {
179*4882a593Smuzhiyun 	uint64_t u64;
180*4882a593Smuzhiyun 	struct cvmx_ciu3_idtx_ppx_s {
181*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
182*4882a593Smuzhiyun 	uint64_t reserved_48_63               : 16;
183*4882a593Smuzhiyun 	uint64_t pp                           : 48;
184*4882a593Smuzhiyun #else
185*4882a593Smuzhiyun 	uint64_t pp                           : 48;
186*4882a593Smuzhiyun 	uint64_t reserved_48_63               : 16;
187*4882a593Smuzhiyun #endif
188*4882a593Smuzhiyun 	} s;
189*4882a593Smuzhiyun };
190*4882a593Smuzhiyun 
191*4882a593Smuzhiyun union cvmx_ciu3_intr_ram_ecc_ctl {
192*4882a593Smuzhiyun 	uint64_t u64;
193*4882a593Smuzhiyun 	struct cvmx_ciu3_intr_ram_ecc_ctl_s {
194*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
195*4882a593Smuzhiyun 	uint64_t reserved_3_63                : 61;
196*4882a593Smuzhiyun 	uint64_t flip_synd                    : 2;
197*4882a593Smuzhiyun 	uint64_t ecc_ena                      : 1;
198*4882a593Smuzhiyun #else
199*4882a593Smuzhiyun 	uint64_t ecc_ena                      : 1;
200*4882a593Smuzhiyun 	uint64_t flip_synd                    : 2;
201*4882a593Smuzhiyun 	uint64_t reserved_3_63                : 61;
202*4882a593Smuzhiyun #endif
203*4882a593Smuzhiyun 	} s;
204*4882a593Smuzhiyun };
205*4882a593Smuzhiyun 
206*4882a593Smuzhiyun union cvmx_ciu3_intr_ram_ecc_st {
207*4882a593Smuzhiyun 	uint64_t u64;
208*4882a593Smuzhiyun 	struct cvmx_ciu3_intr_ram_ecc_st_s {
209*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
210*4882a593Smuzhiyun 	uint64_t reserved_52_63               : 12;
211*4882a593Smuzhiyun 	uint64_t addr                         : 20;
212*4882a593Smuzhiyun 	uint64_t reserved_6_31                : 26;
213*4882a593Smuzhiyun 	uint64_t sisc_dbe                     : 1;
214*4882a593Smuzhiyun 	uint64_t sisc_sbe                     : 1;
215*4882a593Smuzhiyun 	uint64_t idt_dbe                      : 1;
216*4882a593Smuzhiyun 	uint64_t idt_sbe                      : 1;
217*4882a593Smuzhiyun 	uint64_t isc_dbe                      : 1;
218*4882a593Smuzhiyun 	uint64_t isc_sbe                      : 1;
219*4882a593Smuzhiyun #else
220*4882a593Smuzhiyun 	uint64_t isc_sbe                      : 1;
221*4882a593Smuzhiyun 	uint64_t isc_dbe                      : 1;
222*4882a593Smuzhiyun 	uint64_t idt_sbe                      : 1;
223*4882a593Smuzhiyun 	uint64_t idt_dbe                      : 1;
224*4882a593Smuzhiyun 	uint64_t sisc_sbe                     : 1;
225*4882a593Smuzhiyun 	uint64_t sisc_dbe                     : 1;
226*4882a593Smuzhiyun 	uint64_t reserved_6_31                : 26;
227*4882a593Smuzhiyun 	uint64_t addr                         : 20;
228*4882a593Smuzhiyun 	uint64_t reserved_52_63               : 12;
229*4882a593Smuzhiyun #endif
230*4882a593Smuzhiyun 	} s;
231*4882a593Smuzhiyun };
232*4882a593Smuzhiyun 
233*4882a593Smuzhiyun union cvmx_ciu3_intr_ready {
234*4882a593Smuzhiyun 	uint64_t u64;
235*4882a593Smuzhiyun 	struct cvmx_ciu3_intr_ready_s {
236*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
237*4882a593Smuzhiyun 	uint64_t reserved_46_63               : 18;
238*4882a593Smuzhiyun 	uint64_t index                        : 14;
239*4882a593Smuzhiyun 	uint64_t reserved_1_31                : 31;
240*4882a593Smuzhiyun 	uint64_t ready                        : 1;
241*4882a593Smuzhiyun #else
242*4882a593Smuzhiyun 	uint64_t ready                        : 1;
243*4882a593Smuzhiyun 	uint64_t reserved_1_31                : 31;
244*4882a593Smuzhiyun 	uint64_t index                        : 14;
245*4882a593Smuzhiyun 	uint64_t reserved_46_63               : 18;
246*4882a593Smuzhiyun #endif
247*4882a593Smuzhiyun 	} s;
248*4882a593Smuzhiyun };
249*4882a593Smuzhiyun 
250*4882a593Smuzhiyun union cvmx_ciu3_intr_slowdown {
251*4882a593Smuzhiyun 	uint64_t u64;
252*4882a593Smuzhiyun 	struct cvmx_ciu3_intr_slowdown_s {
253*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
254*4882a593Smuzhiyun 	uint64_t reserved_3_63                : 61;
255*4882a593Smuzhiyun 	uint64_t ctl                          : 3;
256*4882a593Smuzhiyun #else
257*4882a593Smuzhiyun 	uint64_t ctl                          : 3;
258*4882a593Smuzhiyun 	uint64_t reserved_3_63                : 61;
259*4882a593Smuzhiyun #endif
260*4882a593Smuzhiyun 	} s;
261*4882a593Smuzhiyun };
262*4882a593Smuzhiyun 
263*4882a593Smuzhiyun union cvmx_ciu3_iscx_ctl {
264*4882a593Smuzhiyun 	uint64_t u64;
265*4882a593Smuzhiyun 	struct cvmx_ciu3_iscx_ctl_s {
266*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
267*4882a593Smuzhiyun 	uint64_t reserved_24_63               : 40;
268*4882a593Smuzhiyun 	uint64_t idt                          : 8;
269*4882a593Smuzhiyun 	uint64_t imp                          : 1;
270*4882a593Smuzhiyun 	uint64_t reserved_2_14                : 13;
271*4882a593Smuzhiyun 	uint64_t en                           : 1;
272*4882a593Smuzhiyun 	uint64_t raw                          : 1;
273*4882a593Smuzhiyun #else
274*4882a593Smuzhiyun 	uint64_t raw                          : 1;
275*4882a593Smuzhiyun 	uint64_t en                           : 1;
276*4882a593Smuzhiyun 	uint64_t reserved_2_14                : 13;
277*4882a593Smuzhiyun 	uint64_t imp                          : 1;
278*4882a593Smuzhiyun 	uint64_t idt                          : 8;
279*4882a593Smuzhiyun 	uint64_t reserved_24_63               : 40;
280*4882a593Smuzhiyun #endif
281*4882a593Smuzhiyun 	} s;
282*4882a593Smuzhiyun };
283*4882a593Smuzhiyun 
284*4882a593Smuzhiyun union cvmx_ciu3_iscx_w1c {
285*4882a593Smuzhiyun 	uint64_t u64;
286*4882a593Smuzhiyun 	struct cvmx_ciu3_iscx_w1c_s {
287*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
288*4882a593Smuzhiyun 	uint64_t reserved_2_63                : 62;
289*4882a593Smuzhiyun 	uint64_t en                           : 1;
290*4882a593Smuzhiyun 	uint64_t raw                          : 1;
291*4882a593Smuzhiyun #else
292*4882a593Smuzhiyun 	uint64_t raw                          : 1;
293*4882a593Smuzhiyun 	uint64_t en                           : 1;
294*4882a593Smuzhiyun 	uint64_t reserved_2_63                : 62;
295*4882a593Smuzhiyun #endif
296*4882a593Smuzhiyun 	} s;
297*4882a593Smuzhiyun };
298*4882a593Smuzhiyun 
299*4882a593Smuzhiyun union cvmx_ciu3_iscx_w1s {
300*4882a593Smuzhiyun 	uint64_t u64;
301*4882a593Smuzhiyun 	struct cvmx_ciu3_iscx_w1s_s {
302*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
303*4882a593Smuzhiyun 	uint64_t reserved_2_63                : 62;
304*4882a593Smuzhiyun 	uint64_t en                           : 1;
305*4882a593Smuzhiyun 	uint64_t raw                          : 1;
306*4882a593Smuzhiyun #else
307*4882a593Smuzhiyun 	uint64_t raw                          : 1;
308*4882a593Smuzhiyun 	uint64_t en                           : 1;
309*4882a593Smuzhiyun 	uint64_t reserved_2_63                : 62;
310*4882a593Smuzhiyun #endif
311*4882a593Smuzhiyun 	} s;
312*4882a593Smuzhiyun };
313*4882a593Smuzhiyun 
314*4882a593Smuzhiyun union cvmx_ciu3_nmi {
315*4882a593Smuzhiyun 	uint64_t u64;
316*4882a593Smuzhiyun 	struct cvmx_ciu3_nmi_s {
317*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
318*4882a593Smuzhiyun 	uint64_t reserved_48_63               : 16;
319*4882a593Smuzhiyun 	uint64_t nmi                          : 48;
320*4882a593Smuzhiyun #else
321*4882a593Smuzhiyun 	uint64_t nmi                          : 48;
322*4882a593Smuzhiyun 	uint64_t reserved_48_63               : 16;
323*4882a593Smuzhiyun #endif
324*4882a593Smuzhiyun 	} s;
325*4882a593Smuzhiyun };
326*4882a593Smuzhiyun 
327*4882a593Smuzhiyun union cvmx_ciu3_siscx {
328*4882a593Smuzhiyun 	uint64_t u64;
329*4882a593Smuzhiyun 	struct cvmx_ciu3_siscx_s {
330*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
331*4882a593Smuzhiyun 	uint64_t en                           : 64;
332*4882a593Smuzhiyun #else
333*4882a593Smuzhiyun 	uint64_t en                           : 64;
334*4882a593Smuzhiyun #endif
335*4882a593Smuzhiyun 	} s;
336*4882a593Smuzhiyun };
337*4882a593Smuzhiyun 
338*4882a593Smuzhiyun union cvmx_ciu3_timx {
339*4882a593Smuzhiyun 	uint64_t u64;
340*4882a593Smuzhiyun 	struct cvmx_ciu3_timx_s {
341*4882a593Smuzhiyun #ifdef __BIG_ENDIAN_BITFIELD
342*4882a593Smuzhiyun 	uint64_t reserved_37_63               : 27;
343*4882a593Smuzhiyun 	uint64_t one_shot                     : 1;
344*4882a593Smuzhiyun 	uint64_t len                          : 36;
345*4882a593Smuzhiyun #else
346*4882a593Smuzhiyun 	uint64_t len                          : 36;
347*4882a593Smuzhiyun 	uint64_t one_shot                     : 1;
348*4882a593Smuzhiyun 	uint64_t reserved_37_63               : 27;
349*4882a593Smuzhiyun #endif
350*4882a593Smuzhiyun 	} s;
351*4882a593Smuzhiyun };
352*4882a593Smuzhiyun 
353*4882a593Smuzhiyun #endif
354