1 /***********************license start***************
2  * Author: Cavium Networks
3  *
4  * Contact: support@caviumnetworks.com
5  * This file is part of the OCTEON SDK
6  *
7  * Copyright (c) 2003-2008 Cavium Networks
8  *
9  * This file is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License, Version 2, as
11  * published by the Free Software Foundation.
12  *
13  * This file is distributed in the hope that it will be useful, but
14  * AS-IS and WITHOUT ANY WARRANTY; without even the implied warranty
15  * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, TITLE, or
16  * NONINFRINGEMENT.  See the GNU General Public License for more
17  * details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this file; if not, write to the Free Software
21  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22  * or visit http://www.gnu.org/licenses/.
23  *
24  * This file may also be available under a different license from Cavium.
25  * Contact Cavium Networks for more information
26  ***********************license end**************************************/
27 
28 #ifndef __CVMX_CIU_DEFS_H__
29 #define __CVMX_CIU_DEFS_H__
30 
31 #define CVMX_CIU_BIST \
32 	 CVMX_ADD_IO_SEG(0x0001070000000730ull)
33 #define CVMX_CIU_DINT \
34 	 CVMX_ADD_IO_SEG(0x0001070000000720ull)
35 #define CVMX_CIU_FUSE \
36 	 CVMX_ADD_IO_SEG(0x0001070000000728ull)
37 #define CVMX_CIU_GSTOP \
38 	 CVMX_ADD_IO_SEG(0x0001070000000710ull)
39 #define CVMX_CIU_INTX_EN0(offset) \
40 	 CVMX_ADD_IO_SEG(0x0001070000000200ull + (((offset) & 63) * 16))
41 #define CVMX_CIU_INTX_EN0_W1C(offset) \
42 	 CVMX_ADD_IO_SEG(0x0001070000002200ull + (((offset) & 63) * 16))
43 #define CVMX_CIU_INTX_EN0_W1S(offset) \
44 	 CVMX_ADD_IO_SEG(0x0001070000006200ull + (((offset) & 63) * 16))
45 #define CVMX_CIU_INTX_EN1(offset) \
46 	 CVMX_ADD_IO_SEG(0x0001070000000208ull + (((offset) & 63) * 16))
47 #define CVMX_CIU_INTX_EN1_W1C(offset) \
48 	 CVMX_ADD_IO_SEG(0x0001070000002208ull + (((offset) & 63) * 16))
49 #define CVMX_CIU_INTX_EN1_W1S(offset) \
50 	 CVMX_ADD_IO_SEG(0x0001070000006208ull + (((offset) & 63) * 16))
51 #define CVMX_CIU_INTX_EN4_0(offset) \
52 	 CVMX_ADD_IO_SEG(0x0001070000000C80ull + (((offset) & 15) * 16))
53 #define CVMX_CIU_INTX_EN4_0_W1C(offset) \
54 	 CVMX_ADD_IO_SEG(0x0001070000002C80ull + (((offset) & 15) * 16))
55 #define CVMX_CIU_INTX_EN4_0_W1S(offset) \
56 	 CVMX_ADD_IO_SEG(0x0001070000006C80ull + (((offset) & 15) * 16))
57 #define CVMX_CIU_INTX_EN4_1(offset) \
58 	 CVMX_ADD_IO_SEG(0x0001070000000C88ull + (((offset) & 15) * 16))
59 #define CVMX_CIU_INTX_EN4_1_W1C(offset) \
60 	 CVMX_ADD_IO_SEG(0x0001070000002C88ull + (((offset) & 15) * 16))
61 #define CVMX_CIU_INTX_EN4_1_W1S(offset) \
62 	 CVMX_ADD_IO_SEG(0x0001070000006C88ull + (((offset) & 15) * 16))
63 #define CVMX_CIU_INTX_SUM0(offset) \
64 	 CVMX_ADD_IO_SEG(0x0001070000000000ull + (((offset) & 63) * 8))
65 #define CVMX_CIU_INTX_SUM4(offset) \
66 	 CVMX_ADD_IO_SEG(0x0001070000000C00ull + (((offset) & 15) * 8))
67 #define CVMX_CIU_INT_SUM1 \
68 	 CVMX_ADD_IO_SEG(0x0001070000000108ull)
69 #define CVMX_CIU_MBOX_CLRX(offset) \
70 	 CVMX_ADD_IO_SEG(0x0001070000000680ull + (((offset) & 15) * 8))
71 #define CVMX_CIU_MBOX_SETX(offset) \
72 	 CVMX_ADD_IO_SEG(0x0001070000000600ull + (((offset) & 15) * 8))
73 #define CVMX_CIU_NMI \
74 	 CVMX_ADD_IO_SEG(0x0001070000000718ull)
75 #define CVMX_CIU_PCI_INTA \
76 	 CVMX_ADD_IO_SEG(0x0001070000000750ull)
77 #define CVMX_CIU_PP_DBG \
78 	 CVMX_ADD_IO_SEG(0x0001070000000708ull)
79 #define CVMX_CIU_PP_POKEX(offset) \
80 	 CVMX_ADD_IO_SEG(0x0001070000000580ull + (((offset) & 15) * 8))
81 #define CVMX_CIU_PP_RST \
82 	 CVMX_ADD_IO_SEG(0x0001070000000700ull)
83 #define CVMX_CIU_QLM_DCOK \
84 	 CVMX_ADD_IO_SEG(0x0001070000000760ull)
85 #define CVMX_CIU_QLM_JTGC \
86 	 CVMX_ADD_IO_SEG(0x0001070000000768ull)
87 #define CVMX_CIU_QLM_JTGD \
88 	 CVMX_ADD_IO_SEG(0x0001070000000770ull)
89 #define CVMX_CIU_SOFT_BIST \
90 	 CVMX_ADD_IO_SEG(0x0001070000000738ull)
91 #define CVMX_CIU_SOFT_PRST \
92 	 CVMX_ADD_IO_SEG(0x0001070000000748ull)
93 #define CVMX_CIU_SOFT_PRST1 \
94 	 CVMX_ADD_IO_SEG(0x0001070000000758ull)
95 #define CVMX_CIU_SOFT_RST \
96 	 CVMX_ADD_IO_SEG(0x0001070000000740ull)
97 #define CVMX_CIU_TIMX(offset) \
98 	 CVMX_ADD_IO_SEG(0x0001070000000480ull + (((offset) & 3) * 8))
99 #define CVMX_CIU_WDOGX(offset) \
100 	 CVMX_ADD_IO_SEG(0x0001070000000500ull + (((offset) & 15) * 8))
101 
102 union cvmx_ciu_bist {
103 	uint64_t u64;
104 	struct cvmx_ciu_bist_s {
105 		uint64_t reserved_4_63:60;
106 		uint64_t bist:4;
107 	} s;
108 	struct cvmx_ciu_bist_s cn30xx;
109 	struct cvmx_ciu_bist_s cn31xx;
110 	struct cvmx_ciu_bist_s cn38xx;
111 	struct cvmx_ciu_bist_s cn38xxp2;
112 	struct cvmx_ciu_bist_cn50xx {
113 		uint64_t reserved_2_63:62;
114 		uint64_t bist:2;
115 	} cn50xx;
116 	struct cvmx_ciu_bist_cn52xx {
117 		uint64_t reserved_3_63:61;
118 		uint64_t bist:3;
119 	} cn52xx;
120 	struct cvmx_ciu_bist_cn52xx cn52xxp1;
121 	struct cvmx_ciu_bist_s cn56xx;
122 	struct cvmx_ciu_bist_s cn56xxp1;
123 	struct cvmx_ciu_bist_s cn58xx;
124 	struct cvmx_ciu_bist_s cn58xxp1;
125 };
126 
127 union cvmx_ciu_dint {
128 	uint64_t u64;
129 	struct cvmx_ciu_dint_s {
130 		uint64_t reserved_16_63:48;
131 		uint64_t dint:16;
132 	} s;
133 	struct cvmx_ciu_dint_cn30xx {
134 		uint64_t reserved_1_63:63;
135 		uint64_t dint:1;
136 	} cn30xx;
137 	struct cvmx_ciu_dint_cn31xx {
138 		uint64_t reserved_2_63:62;
139 		uint64_t dint:2;
140 	} cn31xx;
141 	struct cvmx_ciu_dint_s cn38xx;
142 	struct cvmx_ciu_dint_s cn38xxp2;
143 	struct cvmx_ciu_dint_cn31xx cn50xx;
144 	struct cvmx_ciu_dint_cn52xx {
145 		uint64_t reserved_4_63:60;
146 		uint64_t dint:4;
147 	} cn52xx;
148 	struct cvmx_ciu_dint_cn52xx cn52xxp1;
149 	struct cvmx_ciu_dint_cn56xx {
150 		uint64_t reserved_12_63:52;
151 		uint64_t dint:12;
152 	} cn56xx;
153 	struct cvmx_ciu_dint_cn56xx cn56xxp1;
154 	struct cvmx_ciu_dint_s cn58xx;
155 	struct cvmx_ciu_dint_s cn58xxp1;
156 };
157 
158 union cvmx_ciu_fuse {
159 	uint64_t u64;
160 	struct cvmx_ciu_fuse_s {
161 		uint64_t reserved_16_63:48;
162 		uint64_t fuse:16;
163 	} s;
164 	struct cvmx_ciu_fuse_cn30xx {
165 		uint64_t reserved_1_63:63;
166 		uint64_t fuse:1;
167 	} cn30xx;
168 	struct cvmx_ciu_fuse_cn31xx {
169 		uint64_t reserved_2_63:62;
170 		uint64_t fuse:2;
171 	} cn31xx;
172 	struct cvmx_ciu_fuse_s cn38xx;
173 	struct cvmx_ciu_fuse_s cn38xxp2;
174 	struct cvmx_ciu_fuse_cn31xx cn50xx;
175 	struct cvmx_ciu_fuse_cn52xx {
176 		uint64_t reserved_4_63:60;
177 		uint64_t fuse:4;
178 	} cn52xx;
179 	struct cvmx_ciu_fuse_cn52xx cn52xxp1;
180 	struct cvmx_ciu_fuse_cn56xx {
181 		uint64_t reserved_12_63:52;
182 		uint64_t fuse:12;
183 	} cn56xx;
184 	struct cvmx_ciu_fuse_cn56xx cn56xxp1;
185 	struct cvmx_ciu_fuse_s cn58xx;
186 	struct cvmx_ciu_fuse_s cn58xxp1;
187 };
188 
189 union cvmx_ciu_gstop {
190 	uint64_t u64;
191 	struct cvmx_ciu_gstop_s {
192 		uint64_t reserved_1_63:63;
193 		uint64_t gstop:1;
194 	} s;
195 	struct cvmx_ciu_gstop_s cn30xx;
196 	struct cvmx_ciu_gstop_s cn31xx;
197 	struct cvmx_ciu_gstop_s cn38xx;
198 	struct cvmx_ciu_gstop_s cn38xxp2;
199 	struct cvmx_ciu_gstop_s cn50xx;
200 	struct cvmx_ciu_gstop_s cn52xx;
201 	struct cvmx_ciu_gstop_s cn52xxp1;
202 	struct cvmx_ciu_gstop_s cn56xx;
203 	struct cvmx_ciu_gstop_s cn56xxp1;
204 	struct cvmx_ciu_gstop_s cn58xx;
205 	struct cvmx_ciu_gstop_s cn58xxp1;
206 };
207 
208 union cvmx_ciu_intx_en0 {
209 	uint64_t u64;
210 	struct cvmx_ciu_intx_en0_s {
211 		uint64_t bootdma:1;
212 		uint64_t mii:1;
213 		uint64_t ipdppthr:1;
214 		uint64_t powiq:1;
215 		uint64_t twsi2:1;
216 		uint64_t mpi:1;
217 		uint64_t pcm:1;
218 		uint64_t usb:1;
219 		uint64_t timer:4;
220 		uint64_t key_zero:1;
221 		uint64_t ipd_drp:1;
222 		uint64_t gmx_drp:2;
223 		uint64_t trace:1;
224 		uint64_t rml:1;
225 		uint64_t twsi:1;
226 		uint64_t reserved_44_44:1;
227 		uint64_t pci_msi:4;
228 		uint64_t pci_int:4;
229 		uint64_t uart:2;
230 		uint64_t mbox:2;
231 		uint64_t gpio:16;
232 		uint64_t workq:16;
233 	} s;
234 	struct cvmx_ciu_intx_en0_cn30xx {
235 		uint64_t reserved_59_63:5;
236 		uint64_t mpi:1;
237 		uint64_t pcm:1;
238 		uint64_t usb:1;
239 		uint64_t timer:4;
240 		uint64_t reserved_51_51:1;
241 		uint64_t ipd_drp:1;
242 		uint64_t reserved_49_49:1;
243 		uint64_t gmx_drp:1;
244 		uint64_t reserved_47_47:1;
245 		uint64_t rml:1;
246 		uint64_t twsi:1;
247 		uint64_t reserved_44_44:1;
248 		uint64_t pci_msi:4;
249 		uint64_t pci_int:4;
250 		uint64_t uart:2;
251 		uint64_t mbox:2;
252 		uint64_t gpio:16;
253 		uint64_t workq:16;
254 	} cn30xx;
255 	struct cvmx_ciu_intx_en0_cn31xx {
256 		uint64_t reserved_59_63:5;
257 		uint64_t mpi:1;
258 		uint64_t pcm:1;
259 		uint64_t usb:1;
260 		uint64_t timer:4;
261 		uint64_t reserved_51_51:1;
262 		uint64_t ipd_drp:1;
263 		uint64_t reserved_49_49:1;
264 		uint64_t gmx_drp:1;
265 		uint64_t trace:1;
266 		uint64_t rml:1;
267 		uint64_t twsi:1;
268 		uint64_t reserved_44_44:1;
269 		uint64_t pci_msi:4;
270 		uint64_t pci_int:4;
271 		uint64_t uart:2;
272 		uint64_t mbox:2;
273 		uint64_t gpio:16;
274 		uint64_t workq:16;
275 	} cn31xx;
276 	struct cvmx_ciu_intx_en0_cn38xx {
277 		uint64_t reserved_56_63:8;
278 		uint64_t timer:4;
279 		uint64_t key_zero:1;
280 		uint64_t ipd_drp:1;
281 		uint64_t gmx_drp:2;
282 		uint64_t trace:1;
283 		uint64_t rml:1;
284 		uint64_t twsi:1;
285 		uint64_t reserved_44_44:1;
286 		uint64_t pci_msi:4;
287 		uint64_t pci_int:4;
288 		uint64_t uart:2;
289 		uint64_t mbox:2;
290 		uint64_t gpio:16;
291 		uint64_t workq:16;
292 	} cn38xx;
293 	struct cvmx_ciu_intx_en0_cn38xx cn38xxp2;
294 	struct cvmx_ciu_intx_en0_cn30xx cn50xx;
295 	struct cvmx_ciu_intx_en0_cn52xx {
296 		uint64_t bootdma:1;
297 		uint64_t mii:1;
298 		uint64_t ipdppthr:1;
299 		uint64_t powiq:1;
300 		uint64_t twsi2:1;
301 		uint64_t reserved_57_58:2;
302 		uint64_t usb:1;
303 		uint64_t timer:4;
304 		uint64_t reserved_51_51:1;
305 		uint64_t ipd_drp:1;
306 		uint64_t reserved_49_49:1;
307 		uint64_t gmx_drp:1;
308 		uint64_t trace:1;
309 		uint64_t rml:1;
310 		uint64_t twsi:1;
311 		uint64_t reserved_44_44:1;
312 		uint64_t pci_msi:4;
313 		uint64_t pci_int:4;
314 		uint64_t uart:2;
315 		uint64_t mbox:2;
316 		uint64_t gpio:16;
317 		uint64_t workq:16;
318 	} cn52xx;
319 	struct cvmx_ciu_intx_en0_cn52xx cn52xxp1;
320 	struct cvmx_ciu_intx_en0_cn56xx {
321 		uint64_t bootdma:1;
322 		uint64_t mii:1;
323 		uint64_t ipdppthr:1;
324 		uint64_t powiq:1;
325 		uint64_t twsi2:1;
326 		uint64_t reserved_57_58:2;
327 		uint64_t usb:1;
328 		uint64_t timer:4;
329 		uint64_t key_zero:1;
330 		uint64_t ipd_drp:1;
331 		uint64_t gmx_drp:2;
332 		uint64_t trace:1;
333 		uint64_t rml:1;
334 		uint64_t twsi:1;
335 		uint64_t reserved_44_44:1;
336 		uint64_t pci_msi:4;
337 		uint64_t pci_int:4;
338 		uint64_t uart:2;
339 		uint64_t mbox:2;
340 		uint64_t gpio:16;
341 		uint64_t workq:16;
342 	} cn56xx;
343 	struct cvmx_ciu_intx_en0_cn56xx cn56xxp1;
344 	struct cvmx_ciu_intx_en0_cn38xx cn58xx;
345 	struct cvmx_ciu_intx_en0_cn38xx cn58xxp1;
346 };
347 
348 union cvmx_ciu_intx_en0_w1c {
349 	uint64_t u64;
350 	struct cvmx_ciu_intx_en0_w1c_s {
351 		uint64_t bootdma:1;
352 		uint64_t mii:1;
353 		uint64_t ipdppthr:1;
354 		uint64_t powiq:1;
355 		uint64_t twsi2:1;
356 		uint64_t reserved_57_58:2;
357 		uint64_t usb:1;
358 		uint64_t timer:4;
359 		uint64_t key_zero:1;
360 		uint64_t ipd_drp:1;
361 		uint64_t gmx_drp:2;
362 		uint64_t trace:1;
363 		uint64_t rml:1;
364 		uint64_t twsi:1;
365 		uint64_t reserved_44_44:1;
366 		uint64_t pci_msi:4;
367 		uint64_t pci_int:4;
368 		uint64_t uart:2;
369 		uint64_t mbox:2;
370 		uint64_t gpio:16;
371 		uint64_t workq:16;
372 	} s;
373 	struct cvmx_ciu_intx_en0_w1c_cn52xx {
374 		uint64_t bootdma:1;
375 		uint64_t mii:1;
376 		uint64_t ipdppthr:1;
377 		uint64_t powiq:1;
378 		uint64_t twsi2:1;
379 		uint64_t reserved_57_58:2;
380 		uint64_t usb:1;
381 		uint64_t timer:4;
382 		uint64_t reserved_51_51:1;
383 		uint64_t ipd_drp:1;
384 		uint64_t reserved_49_49:1;
385 		uint64_t gmx_drp:1;
386 		uint64_t trace:1;
387 		uint64_t rml:1;
388 		uint64_t twsi:1;
389 		uint64_t reserved_44_44:1;
390 		uint64_t pci_msi:4;
391 		uint64_t pci_int:4;
392 		uint64_t uart:2;
393 		uint64_t mbox:2;
394 		uint64_t gpio:16;
395 		uint64_t workq:16;
396 	} cn52xx;
397 	struct cvmx_ciu_intx_en0_w1c_s cn56xx;
398 	struct cvmx_ciu_intx_en0_w1c_cn58xx {
399 		uint64_t reserved_56_63:8;
400 		uint64_t timer:4;
401 		uint64_t key_zero:1;
402 		uint64_t ipd_drp:1;
403 		uint64_t gmx_drp:2;
404 		uint64_t trace:1;
405 		uint64_t rml:1;
406 		uint64_t twsi:1;
407 		uint64_t reserved_44_44:1;
408 		uint64_t pci_msi:4;
409 		uint64_t pci_int:4;
410 		uint64_t uart:2;
411 		uint64_t mbox:2;
412 		uint64_t gpio:16;
413 		uint64_t workq:16;
414 	} cn58xx;
415 };
416 
417 union cvmx_ciu_intx_en0_w1s {
418 	uint64_t u64;
419 	struct cvmx_ciu_intx_en0_w1s_s {
420 		uint64_t bootdma:1;
421 		uint64_t mii:1;
422 		uint64_t ipdppthr:1;
423 		uint64_t powiq:1;
424 		uint64_t twsi2:1;
425 		uint64_t reserved_57_58:2;
426 		uint64_t usb:1;
427 		uint64_t timer:4;
428 		uint64_t key_zero:1;
429 		uint64_t ipd_drp:1;
430 		uint64_t gmx_drp:2;
431 		uint64_t trace:1;
432 		uint64_t rml:1;
433 		uint64_t twsi:1;
434 		uint64_t reserved_44_44:1;
435 		uint64_t pci_msi:4;
436 		uint64_t pci_int:4;
437 		uint64_t uart:2;
438 		uint64_t mbox:2;
439 		uint64_t gpio:16;
440 		uint64_t workq:16;
441 	} s;
442 	struct cvmx_ciu_intx_en0_w1s_cn52xx {
443 		uint64_t bootdma:1;
444 		uint64_t mii:1;
445 		uint64_t ipdppthr:1;
446 		uint64_t powiq:1;
447 		uint64_t twsi2:1;
448 		uint64_t reserved_57_58:2;
449 		uint64_t usb:1;
450 		uint64_t timer:4;
451 		uint64_t reserved_51_51:1;
452 		uint64_t ipd_drp:1;
453 		uint64_t reserved_49_49:1;
454 		uint64_t gmx_drp:1;
455 		uint64_t trace:1;
456 		uint64_t rml:1;
457 		uint64_t twsi:1;
458 		uint64_t reserved_44_44:1;
459 		uint64_t pci_msi:4;
460 		uint64_t pci_int:4;
461 		uint64_t uart:2;
462 		uint64_t mbox:2;
463 		uint64_t gpio:16;
464 		uint64_t workq:16;
465 	} cn52xx;
466 	struct cvmx_ciu_intx_en0_w1s_s cn56xx;
467 	struct cvmx_ciu_intx_en0_w1s_cn58xx {
468 		uint64_t reserved_56_63:8;
469 		uint64_t timer:4;
470 		uint64_t key_zero:1;
471 		uint64_t ipd_drp:1;
472 		uint64_t gmx_drp:2;
473 		uint64_t trace:1;
474 		uint64_t rml:1;
475 		uint64_t twsi:1;
476 		uint64_t reserved_44_44:1;
477 		uint64_t pci_msi:4;
478 		uint64_t pci_int:4;
479 		uint64_t uart:2;
480 		uint64_t mbox:2;
481 		uint64_t gpio:16;
482 		uint64_t workq:16;
483 	} cn58xx;
484 };
485 
486 union cvmx_ciu_intx_en1 {
487 	uint64_t u64;
488 	struct cvmx_ciu_intx_en1_s {
489 		uint64_t reserved_20_63:44;
490 		uint64_t nand:1;
491 		uint64_t mii1:1;
492 		uint64_t usb1:1;
493 		uint64_t uart2:1;
494 		uint64_t wdog:16;
495 	} s;
496 	struct cvmx_ciu_intx_en1_cn30xx {
497 		uint64_t reserved_1_63:63;
498 		uint64_t wdog:1;
499 	} cn30xx;
500 	struct cvmx_ciu_intx_en1_cn31xx {
501 		uint64_t reserved_2_63:62;
502 		uint64_t wdog:2;
503 	} cn31xx;
504 	struct cvmx_ciu_intx_en1_cn38xx {
505 		uint64_t reserved_16_63:48;
506 		uint64_t wdog:16;
507 	} cn38xx;
508 	struct cvmx_ciu_intx_en1_cn38xx cn38xxp2;
509 	struct cvmx_ciu_intx_en1_cn31xx cn50xx;
510 	struct cvmx_ciu_intx_en1_cn52xx {
511 		uint64_t reserved_20_63:44;
512 		uint64_t nand:1;
513 		uint64_t mii1:1;
514 		uint64_t usb1:1;
515 		uint64_t uart2:1;
516 		uint64_t reserved_4_15:12;
517 		uint64_t wdog:4;
518 	} cn52xx;
519 	struct cvmx_ciu_intx_en1_cn52xxp1 {
520 		uint64_t reserved_19_63:45;
521 		uint64_t mii1:1;
522 		uint64_t usb1:1;
523 		uint64_t uart2:1;
524 		uint64_t reserved_4_15:12;
525 		uint64_t wdog:4;
526 	} cn52xxp1;
527 	struct cvmx_ciu_intx_en1_cn56xx {
528 		uint64_t reserved_12_63:52;
529 		uint64_t wdog:12;
530 	} cn56xx;
531 	struct cvmx_ciu_intx_en1_cn56xx cn56xxp1;
532 	struct cvmx_ciu_intx_en1_cn38xx cn58xx;
533 	struct cvmx_ciu_intx_en1_cn38xx cn58xxp1;
534 };
535 
536 union cvmx_ciu_intx_en1_w1c {
537 	uint64_t u64;
538 	struct cvmx_ciu_intx_en1_w1c_s {
539 		uint64_t reserved_20_63:44;
540 		uint64_t nand:1;
541 		uint64_t mii1:1;
542 		uint64_t usb1:1;
543 		uint64_t uart2:1;
544 		uint64_t wdog:16;
545 	} s;
546 	struct cvmx_ciu_intx_en1_w1c_cn52xx {
547 		uint64_t reserved_20_63:44;
548 		uint64_t nand:1;
549 		uint64_t mii1:1;
550 		uint64_t usb1:1;
551 		uint64_t uart2:1;
552 		uint64_t reserved_4_15:12;
553 		uint64_t wdog:4;
554 	} cn52xx;
555 	struct cvmx_ciu_intx_en1_w1c_cn56xx {
556 		uint64_t reserved_12_63:52;
557 		uint64_t wdog:12;
558 	} cn56xx;
559 	struct cvmx_ciu_intx_en1_w1c_cn58xx {
560 		uint64_t reserved_16_63:48;
561 		uint64_t wdog:16;
562 	} cn58xx;
563 };
564 
565 union cvmx_ciu_intx_en1_w1s {
566 	uint64_t u64;
567 	struct cvmx_ciu_intx_en1_w1s_s {
568 		uint64_t reserved_20_63:44;
569 		uint64_t nand:1;
570 		uint64_t mii1:1;
571 		uint64_t usb1:1;
572 		uint64_t uart2:1;
573 		uint64_t wdog:16;
574 	} s;
575 	struct cvmx_ciu_intx_en1_w1s_cn52xx {
576 		uint64_t reserved_20_63:44;
577 		uint64_t nand:1;
578 		uint64_t mii1:1;
579 		uint64_t usb1:1;
580 		uint64_t uart2:1;
581 		uint64_t reserved_4_15:12;
582 		uint64_t wdog:4;
583 	} cn52xx;
584 	struct cvmx_ciu_intx_en1_w1s_cn56xx {
585 		uint64_t reserved_12_63:52;
586 		uint64_t wdog:12;
587 	} cn56xx;
588 	struct cvmx_ciu_intx_en1_w1s_cn58xx {
589 		uint64_t reserved_16_63:48;
590 		uint64_t wdog:16;
591 	} cn58xx;
592 };
593 
594 union cvmx_ciu_intx_en4_0 {
595 	uint64_t u64;
596 	struct cvmx_ciu_intx_en4_0_s {
597 		uint64_t bootdma:1;
598 		uint64_t mii:1;
599 		uint64_t ipdppthr:1;
600 		uint64_t powiq:1;
601 		uint64_t twsi2:1;
602 		uint64_t mpi:1;
603 		uint64_t pcm:1;
604 		uint64_t usb:1;
605 		uint64_t timer:4;
606 		uint64_t key_zero:1;
607 		uint64_t ipd_drp:1;
608 		uint64_t gmx_drp:2;
609 		uint64_t trace:1;
610 		uint64_t rml:1;
611 		uint64_t twsi:1;
612 		uint64_t reserved_44_44:1;
613 		uint64_t pci_msi:4;
614 		uint64_t pci_int:4;
615 		uint64_t uart:2;
616 		uint64_t mbox:2;
617 		uint64_t gpio:16;
618 		uint64_t workq:16;
619 	} s;
620 	struct cvmx_ciu_intx_en4_0_cn50xx {
621 		uint64_t reserved_59_63:5;
622 		uint64_t mpi:1;
623 		uint64_t pcm:1;
624 		uint64_t usb:1;
625 		uint64_t timer:4;
626 		uint64_t reserved_51_51:1;
627 		uint64_t ipd_drp:1;
628 		uint64_t reserved_49_49:1;
629 		uint64_t gmx_drp:1;
630 		uint64_t reserved_47_47:1;
631 		uint64_t rml:1;
632 		uint64_t twsi:1;
633 		uint64_t reserved_44_44:1;
634 		uint64_t pci_msi:4;
635 		uint64_t pci_int:4;
636 		uint64_t uart:2;
637 		uint64_t mbox:2;
638 		uint64_t gpio:16;
639 		uint64_t workq:16;
640 	} cn50xx;
641 	struct cvmx_ciu_intx_en4_0_cn52xx {
642 		uint64_t bootdma:1;
643 		uint64_t mii:1;
644 		uint64_t ipdppthr:1;
645 		uint64_t powiq:1;
646 		uint64_t twsi2:1;
647 		uint64_t reserved_57_58:2;
648 		uint64_t usb:1;
649 		uint64_t timer:4;
650 		uint64_t reserved_51_51:1;
651 		uint64_t ipd_drp:1;
652 		uint64_t reserved_49_49:1;
653 		uint64_t gmx_drp:1;
654 		uint64_t trace:1;
655 		uint64_t rml:1;
656 		uint64_t twsi:1;
657 		uint64_t reserved_44_44:1;
658 		uint64_t pci_msi:4;
659 		uint64_t pci_int:4;
660 		uint64_t uart:2;
661 		uint64_t mbox:2;
662 		uint64_t gpio:16;
663 		uint64_t workq:16;
664 	} cn52xx;
665 	struct cvmx_ciu_intx_en4_0_cn52xx cn52xxp1;
666 	struct cvmx_ciu_intx_en4_0_cn56xx {
667 		uint64_t bootdma:1;
668 		uint64_t mii:1;
669 		uint64_t ipdppthr:1;
670 		uint64_t powiq:1;
671 		uint64_t twsi2:1;
672 		uint64_t reserved_57_58:2;
673 		uint64_t usb:1;
674 		uint64_t timer:4;
675 		uint64_t key_zero:1;
676 		uint64_t ipd_drp:1;
677 		uint64_t gmx_drp:2;
678 		uint64_t trace:1;
679 		uint64_t rml:1;
680 		uint64_t twsi:1;
681 		uint64_t reserved_44_44:1;
682 		uint64_t pci_msi:4;
683 		uint64_t pci_int:4;
684 		uint64_t uart:2;
685 		uint64_t mbox:2;
686 		uint64_t gpio:16;
687 		uint64_t workq:16;
688 	} cn56xx;
689 	struct cvmx_ciu_intx_en4_0_cn56xx cn56xxp1;
690 	struct cvmx_ciu_intx_en4_0_cn58xx {
691 		uint64_t reserved_56_63:8;
692 		uint64_t timer:4;
693 		uint64_t key_zero:1;
694 		uint64_t ipd_drp:1;
695 		uint64_t gmx_drp:2;
696 		uint64_t trace:1;
697 		uint64_t rml:1;
698 		uint64_t twsi:1;
699 		uint64_t reserved_44_44:1;
700 		uint64_t pci_msi:4;
701 		uint64_t pci_int:4;
702 		uint64_t uart:2;
703 		uint64_t mbox:2;
704 		uint64_t gpio:16;
705 		uint64_t workq:16;
706 	} cn58xx;
707 	struct cvmx_ciu_intx_en4_0_cn58xx cn58xxp1;
708 };
709 
710 union cvmx_ciu_intx_en4_0_w1c {
711 	uint64_t u64;
712 	struct cvmx_ciu_intx_en4_0_w1c_s {
713 		uint64_t bootdma:1;
714 		uint64_t mii:1;
715 		uint64_t ipdppthr:1;
716 		uint64_t powiq:1;
717 		uint64_t twsi2:1;
718 		uint64_t reserved_57_58:2;
719 		uint64_t usb:1;
720 		uint64_t timer:4;
721 		uint64_t key_zero:1;
722 		uint64_t ipd_drp:1;
723 		uint64_t gmx_drp:2;
724 		uint64_t trace:1;
725 		uint64_t rml:1;
726 		uint64_t twsi:1;
727 		uint64_t reserved_44_44:1;
728 		uint64_t pci_msi:4;
729 		uint64_t pci_int:4;
730 		uint64_t uart:2;
731 		uint64_t mbox:2;
732 		uint64_t gpio:16;
733 		uint64_t workq:16;
734 	} s;
735 	struct cvmx_ciu_intx_en4_0_w1c_cn52xx {
736 		uint64_t bootdma:1;
737 		uint64_t mii:1;
738 		uint64_t ipdppthr:1;
739 		uint64_t powiq:1;
740 		uint64_t twsi2:1;
741 		uint64_t reserved_57_58:2;
742 		uint64_t usb:1;
743 		uint64_t timer:4;
744 		uint64_t reserved_51_51:1;
745 		uint64_t ipd_drp:1;
746 		uint64_t reserved_49_49:1;
747 		uint64_t gmx_drp:1;
748 		uint64_t trace:1;
749 		uint64_t rml:1;
750 		uint64_t twsi:1;
751 		uint64_t reserved_44_44:1;
752 		uint64_t pci_msi:4;
753 		uint64_t pci_int:4;
754 		uint64_t uart:2;
755 		uint64_t mbox:2;
756 		uint64_t gpio:16;
757 		uint64_t workq:16;
758 	} cn52xx;
759 	struct cvmx_ciu_intx_en4_0_w1c_s cn56xx;
760 	struct cvmx_ciu_intx_en4_0_w1c_cn58xx {
761 		uint64_t reserved_56_63:8;
762 		uint64_t timer:4;
763 		uint64_t key_zero:1;
764 		uint64_t ipd_drp:1;
765 		uint64_t gmx_drp:2;
766 		uint64_t trace:1;
767 		uint64_t rml:1;
768 		uint64_t twsi:1;
769 		uint64_t reserved_44_44:1;
770 		uint64_t pci_msi:4;
771 		uint64_t pci_int:4;
772 		uint64_t uart:2;
773 		uint64_t mbox:2;
774 		uint64_t gpio:16;
775 		uint64_t workq:16;
776 	} cn58xx;
777 };
778 
779 union cvmx_ciu_intx_en4_0_w1s {
780 	uint64_t u64;
781 	struct cvmx_ciu_intx_en4_0_w1s_s {
782 		uint64_t bootdma:1;
783 		uint64_t mii:1;
784 		uint64_t ipdppthr:1;
785 		uint64_t powiq:1;
786 		uint64_t twsi2:1;
787 		uint64_t reserved_57_58:2;
788 		uint64_t usb:1;
789 		uint64_t timer:4;
790 		uint64_t key_zero:1;
791 		uint64_t ipd_drp:1;
792 		uint64_t gmx_drp:2;
793 		uint64_t trace:1;
794 		uint64_t rml:1;
795 		uint64_t twsi:1;
796 		uint64_t reserved_44_44:1;
797 		uint64_t pci_msi:4;
798 		uint64_t pci_int:4;
799 		uint64_t uart:2;
800 		uint64_t mbox:2;
801 		uint64_t gpio:16;
802 		uint64_t workq:16;
803 	} s;
804 	struct cvmx_ciu_intx_en4_0_w1s_cn52xx {
805 		uint64_t bootdma:1;
806 		uint64_t mii:1;
807 		uint64_t ipdppthr:1;
808 		uint64_t powiq:1;
809 		uint64_t twsi2:1;
810 		uint64_t reserved_57_58:2;
811 		uint64_t usb:1;
812 		uint64_t timer:4;
813 		uint64_t reserved_51_51:1;
814 		uint64_t ipd_drp:1;
815 		uint64_t reserved_49_49:1;
816 		uint64_t gmx_drp:1;
817 		uint64_t trace:1;
818 		uint64_t rml:1;
819 		uint64_t twsi:1;
820 		uint64_t reserved_44_44:1;
821 		uint64_t pci_msi:4;
822 		uint64_t pci_int:4;
823 		uint64_t uart:2;
824 		uint64_t mbox:2;
825 		uint64_t gpio:16;
826 		uint64_t workq:16;
827 	} cn52xx;
828 	struct cvmx_ciu_intx_en4_0_w1s_s cn56xx;
829 	struct cvmx_ciu_intx_en4_0_w1s_cn58xx {
830 		uint64_t reserved_56_63:8;
831 		uint64_t timer:4;
832 		uint64_t key_zero:1;
833 		uint64_t ipd_drp:1;
834 		uint64_t gmx_drp:2;
835 		uint64_t trace:1;
836 		uint64_t rml:1;
837 		uint64_t twsi:1;
838 		uint64_t reserved_44_44:1;
839 		uint64_t pci_msi:4;
840 		uint64_t pci_int:4;
841 		uint64_t uart:2;
842 		uint64_t mbox:2;
843 		uint64_t gpio:16;
844 		uint64_t workq:16;
845 	} cn58xx;
846 };
847 
848 union cvmx_ciu_intx_en4_1 {
849 	uint64_t u64;
850 	struct cvmx_ciu_intx_en4_1_s {
851 		uint64_t reserved_20_63:44;
852 		uint64_t nand:1;
853 		uint64_t mii1:1;
854 		uint64_t usb1:1;
855 		uint64_t uart2:1;
856 		uint64_t wdog:16;
857 	} s;
858 	struct cvmx_ciu_intx_en4_1_cn50xx {
859 		uint64_t reserved_2_63:62;
860 		uint64_t wdog:2;
861 	} cn50xx;
862 	struct cvmx_ciu_intx_en4_1_cn52xx {
863 		uint64_t reserved_20_63:44;
864 		uint64_t nand:1;
865 		uint64_t mii1:1;
866 		uint64_t usb1:1;
867 		uint64_t uart2:1;
868 		uint64_t reserved_4_15:12;
869 		uint64_t wdog:4;
870 	} cn52xx;
871 	struct cvmx_ciu_intx_en4_1_cn52xxp1 {
872 		uint64_t reserved_19_63:45;
873 		uint64_t mii1:1;
874 		uint64_t usb1:1;
875 		uint64_t uart2:1;
876 		uint64_t reserved_4_15:12;
877 		uint64_t wdog:4;
878 	} cn52xxp1;
879 	struct cvmx_ciu_intx_en4_1_cn56xx {
880 		uint64_t reserved_12_63:52;
881 		uint64_t wdog:12;
882 	} cn56xx;
883 	struct cvmx_ciu_intx_en4_1_cn56xx cn56xxp1;
884 	struct cvmx_ciu_intx_en4_1_cn58xx {
885 		uint64_t reserved_16_63:48;
886 		uint64_t wdog:16;
887 	} cn58xx;
888 	struct cvmx_ciu_intx_en4_1_cn58xx cn58xxp1;
889 };
890 
891 union cvmx_ciu_intx_en4_1_w1c {
892 	uint64_t u64;
893 	struct cvmx_ciu_intx_en4_1_w1c_s {
894 		uint64_t reserved_20_63:44;
895 		uint64_t nand:1;
896 		uint64_t mii1:1;
897 		uint64_t usb1:1;
898 		uint64_t uart2:1;
899 		uint64_t wdog:16;
900 	} s;
901 	struct cvmx_ciu_intx_en4_1_w1c_cn52xx {
902 		uint64_t reserved_20_63:44;
903 		uint64_t nand:1;
904 		uint64_t mii1:1;
905 		uint64_t usb1:1;
906 		uint64_t uart2:1;
907 		uint64_t reserved_4_15:12;
908 		uint64_t wdog:4;
909 	} cn52xx;
910 	struct cvmx_ciu_intx_en4_1_w1c_cn56xx {
911 		uint64_t reserved_12_63:52;
912 		uint64_t wdog:12;
913 	} cn56xx;
914 	struct cvmx_ciu_intx_en4_1_w1c_cn58xx {
915 		uint64_t reserved_16_63:48;
916 		uint64_t wdog:16;
917 	} cn58xx;
918 };
919 
920 union cvmx_ciu_intx_en4_1_w1s {
921 	uint64_t u64;
922 	struct cvmx_ciu_intx_en4_1_w1s_s {
923 		uint64_t reserved_20_63:44;
924 		uint64_t nand:1;
925 		uint64_t mii1:1;
926 		uint64_t usb1:1;
927 		uint64_t uart2:1;
928 		uint64_t wdog:16;
929 	} s;
930 	struct cvmx_ciu_intx_en4_1_w1s_cn52xx {
931 		uint64_t reserved_20_63:44;
932 		uint64_t nand:1;
933 		uint64_t mii1:1;
934 		uint64_t usb1:1;
935 		uint64_t uart2:1;
936 		uint64_t reserved_4_15:12;
937 		uint64_t wdog:4;
938 	} cn52xx;
939 	struct cvmx_ciu_intx_en4_1_w1s_cn56xx {
940 		uint64_t reserved_12_63:52;
941 		uint64_t wdog:12;
942 	} cn56xx;
943 	struct cvmx_ciu_intx_en4_1_w1s_cn58xx {
944 		uint64_t reserved_16_63:48;
945 		uint64_t wdog:16;
946 	} cn58xx;
947 };
948 
949 union cvmx_ciu_intx_sum0 {
950 	uint64_t u64;
951 	struct cvmx_ciu_intx_sum0_s {
952 		uint64_t bootdma:1;
953 		uint64_t mii:1;
954 		uint64_t ipdppthr:1;
955 		uint64_t powiq:1;
956 		uint64_t twsi2:1;
957 		uint64_t mpi:1;
958 		uint64_t pcm:1;
959 		uint64_t usb:1;
960 		uint64_t timer:4;
961 		uint64_t key_zero:1;
962 		uint64_t ipd_drp:1;
963 		uint64_t gmx_drp:2;
964 		uint64_t trace:1;
965 		uint64_t rml:1;
966 		uint64_t twsi:1;
967 		uint64_t wdog_sum:1;
968 		uint64_t pci_msi:4;
969 		uint64_t pci_int:4;
970 		uint64_t uart:2;
971 		uint64_t mbox:2;
972 		uint64_t gpio:16;
973 		uint64_t workq:16;
974 	} s;
975 	struct cvmx_ciu_intx_sum0_cn30xx {
976 		uint64_t reserved_59_63:5;
977 		uint64_t mpi:1;
978 		uint64_t pcm:1;
979 		uint64_t usb:1;
980 		uint64_t timer:4;
981 		uint64_t reserved_51_51:1;
982 		uint64_t ipd_drp:1;
983 		uint64_t reserved_49_49:1;
984 		uint64_t gmx_drp:1;
985 		uint64_t reserved_47_47:1;
986 		uint64_t rml:1;
987 		uint64_t twsi:1;
988 		uint64_t wdog_sum:1;
989 		uint64_t pci_msi:4;
990 		uint64_t pci_int:4;
991 		uint64_t uart:2;
992 		uint64_t mbox:2;
993 		uint64_t gpio:16;
994 		uint64_t workq:16;
995 	} cn30xx;
996 	struct cvmx_ciu_intx_sum0_cn31xx {
997 		uint64_t reserved_59_63:5;
998 		uint64_t mpi:1;
999 		uint64_t pcm:1;
1000 		uint64_t usb:1;
1001 		uint64_t timer:4;
1002 		uint64_t reserved_51_51:1;
1003 		uint64_t ipd_drp:1;
1004 		uint64_t reserved_49_49:1;
1005 		uint64_t gmx_drp:1;
1006 		uint64_t trace:1;
1007 		uint64_t rml:1;
1008 		uint64_t twsi:1;
1009 		uint64_t wdog_sum:1;
1010 		uint64_t pci_msi:4;
1011 		uint64_t pci_int:4;
1012 		uint64_t uart:2;
1013 		uint64_t mbox:2;
1014 		uint64_t gpio:16;
1015 		uint64_t workq:16;
1016 	} cn31xx;
1017 	struct cvmx_ciu_intx_sum0_cn38xx {
1018 		uint64_t reserved_56_63:8;
1019 		uint64_t timer:4;
1020 		uint64_t key_zero:1;
1021 		uint64_t ipd_drp:1;
1022 		uint64_t gmx_drp:2;
1023 		uint64_t trace:1;
1024 		uint64_t rml:1;
1025 		uint64_t twsi:1;
1026 		uint64_t wdog_sum:1;
1027 		uint64_t pci_msi:4;
1028 		uint64_t pci_int:4;
1029 		uint64_t uart:2;
1030 		uint64_t mbox:2;
1031 		uint64_t gpio:16;
1032 		uint64_t workq:16;
1033 	} cn38xx;
1034 	struct cvmx_ciu_intx_sum0_cn38xx cn38xxp2;
1035 	struct cvmx_ciu_intx_sum0_cn30xx cn50xx;
1036 	struct cvmx_ciu_intx_sum0_cn52xx {
1037 		uint64_t bootdma:1;
1038 		uint64_t mii:1;
1039 		uint64_t ipdppthr:1;
1040 		uint64_t powiq:1;
1041 		uint64_t twsi2:1;
1042 		uint64_t reserved_57_58:2;
1043 		uint64_t usb:1;
1044 		uint64_t timer:4;
1045 		uint64_t reserved_51_51:1;
1046 		uint64_t ipd_drp:1;
1047 		uint64_t reserved_49_49:1;
1048 		uint64_t gmx_drp:1;
1049 		uint64_t trace:1;
1050 		uint64_t rml:1;
1051 		uint64_t twsi:1;
1052 		uint64_t wdog_sum:1;
1053 		uint64_t pci_msi:4;
1054 		uint64_t pci_int:4;
1055 		uint64_t uart:2;
1056 		uint64_t mbox:2;
1057 		uint64_t gpio:16;
1058 		uint64_t workq:16;
1059 	} cn52xx;
1060 	struct cvmx_ciu_intx_sum0_cn52xx cn52xxp1;
1061 	struct cvmx_ciu_intx_sum0_cn56xx {
1062 		uint64_t bootdma:1;
1063 		uint64_t mii:1;
1064 		uint64_t ipdppthr:1;
1065 		uint64_t powiq:1;
1066 		uint64_t twsi2:1;
1067 		uint64_t reserved_57_58:2;
1068 		uint64_t usb:1;
1069 		uint64_t timer:4;
1070 		uint64_t key_zero:1;
1071 		uint64_t ipd_drp:1;
1072 		uint64_t gmx_drp:2;
1073 		uint64_t trace:1;
1074 		uint64_t rml:1;
1075 		uint64_t twsi:1;
1076 		uint64_t wdog_sum:1;
1077 		uint64_t pci_msi:4;
1078 		uint64_t pci_int:4;
1079 		uint64_t uart:2;
1080 		uint64_t mbox:2;
1081 		uint64_t gpio:16;
1082 		uint64_t workq:16;
1083 	} cn56xx;
1084 	struct cvmx_ciu_intx_sum0_cn56xx cn56xxp1;
1085 	struct cvmx_ciu_intx_sum0_cn38xx cn58xx;
1086 	struct cvmx_ciu_intx_sum0_cn38xx cn58xxp1;
1087 };
1088 
1089 union cvmx_ciu_intx_sum4 {
1090 	uint64_t u64;
1091 	struct cvmx_ciu_intx_sum4_s {
1092 		uint64_t bootdma:1;
1093 		uint64_t mii:1;
1094 		uint64_t ipdppthr:1;
1095 		uint64_t powiq:1;
1096 		uint64_t twsi2:1;
1097 		uint64_t mpi:1;
1098 		uint64_t pcm:1;
1099 		uint64_t usb:1;
1100 		uint64_t timer:4;
1101 		uint64_t key_zero:1;
1102 		uint64_t ipd_drp:1;
1103 		uint64_t gmx_drp:2;
1104 		uint64_t trace:1;
1105 		uint64_t rml:1;
1106 		uint64_t twsi:1;
1107 		uint64_t wdog_sum:1;
1108 		uint64_t pci_msi:4;
1109 		uint64_t pci_int:4;
1110 		uint64_t uart:2;
1111 		uint64_t mbox:2;
1112 		uint64_t gpio:16;
1113 		uint64_t workq:16;
1114 	} s;
1115 	struct cvmx_ciu_intx_sum4_cn50xx {
1116 		uint64_t reserved_59_63:5;
1117 		uint64_t mpi:1;
1118 		uint64_t pcm:1;
1119 		uint64_t usb:1;
1120 		uint64_t timer:4;
1121 		uint64_t reserved_51_51:1;
1122 		uint64_t ipd_drp:1;
1123 		uint64_t reserved_49_49:1;
1124 		uint64_t gmx_drp:1;
1125 		uint64_t reserved_47_47:1;
1126 		uint64_t rml:1;
1127 		uint64_t twsi:1;
1128 		uint64_t wdog_sum:1;
1129 		uint64_t pci_msi:4;
1130 		uint64_t pci_int:4;
1131 		uint64_t uart:2;
1132 		uint64_t mbox:2;
1133 		uint64_t gpio:16;
1134 		uint64_t workq:16;
1135 	} cn50xx;
1136 	struct cvmx_ciu_intx_sum4_cn52xx {
1137 		uint64_t bootdma:1;
1138 		uint64_t mii:1;
1139 		uint64_t ipdppthr:1;
1140 		uint64_t powiq:1;
1141 		uint64_t twsi2:1;
1142 		uint64_t reserved_57_58:2;
1143 		uint64_t usb:1;
1144 		uint64_t timer:4;
1145 		uint64_t reserved_51_51:1;
1146 		uint64_t ipd_drp:1;
1147 		uint64_t reserved_49_49:1;
1148 		uint64_t gmx_drp:1;
1149 		uint64_t trace:1;
1150 		uint64_t rml:1;
1151 		uint64_t twsi:1;
1152 		uint64_t wdog_sum:1;
1153 		uint64_t pci_msi:4;
1154 		uint64_t pci_int:4;
1155 		uint64_t uart:2;
1156 		uint64_t mbox:2;
1157 		uint64_t gpio:16;
1158 		uint64_t workq:16;
1159 	} cn52xx;
1160 	struct cvmx_ciu_intx_sum4_cn52xx cn52xxp1;
1161 	struct cvmx_ciu_intx_sum4_cn56xx {
1162 		uint64_t bootdma:1;
1163 		uint64_t mii:1;
1164 		uint64_t ipdppthr:1;
1165 		uint64_t powiq:1;
1166 		uint64_t twsi2:1;
1167 		uint64_t reserved_57_58:2;
1168 		uint64_t usb:1;
1169 		uint64_t timer:4;
1170 		uint64_t key_zero:1;
1171 		uint64_t ipd_drp:1;
1172 		uint64_t gmx_drp:2;
1173 		uint64_t trace:1;
1174 		uint64_t rml:1;
1175 		uint64_t twsi:1;
1176 		uint64_t wdog_sum:1;
1177 		uint64_t pci_msi:4;
1178 		uint64_t pci_int:4;
1179 		uint64_t uart:2;
1180 		uint64_t mbox:2;
1181 		uint64_t gpio:16;
1182 		uint64_t workq:16;
1183 	} cn56xx;
1184 	struct cvmx_ciu_intx_sum4_cn56xx cn56xxp1;
1185 	struct cvmx_ciu_intx_sum4_cn58xx {
1186 		uint64_t reserved_56_63:8;
1187 		uint64_t timer:4;
1188 		uint64_t key_zero:1;
1189 		uint64_t ipd_drp:1;
1190 		uint64_t gmx_drp:2;
1191 		uint64_t trace:1;
1192 		uint64_t rml:1;
1193 		uint64_t twsi:1;
1194 		uint64_t wdog_sum:1;
1195 		uint64_t pci_msi:4;
1196 		uint64_t pci_int:4;
1197 		uint64_t uart:2;
1198 		uint64_t mbox:2;
1199 		uint64_t gpio:16;
1200 		uint64_t workq:16;
1201 	} cn58xx;
1202 	struct cvmx_ciu_intx_sum4_cn58xx cn58xxp1;
1203 };
1204 
1205 union cvmx_ciu_int_sum1 {
1206 	uint64_t u64;
1207 	struct cvmx_ciu_int_sum1_s {
1208 		uint64_t reserved_20_63:44;
1209 		uint64_t nand:1;
1210 		uint64_t mii1:1;
1211 		uint64_t usb1:1;
1212 		uint64_t uart2:1;
1213 		uint64_t wdog:16;
1214 	} s;
1215 	struct cvmx_ciu_int_sum1_cn30xx {
1216 		uint64_t reserved_1_63:63;
1217 		uint64_t wdog:1;
1218 	} cn30xx;
1219 	struct cvmx_ciu_int_sum1_cn31xx {
1220 		uint64_t reserved_2_63:62;
1221 		uint64_t wdog:2;
1222 	} cn31xx;
1223 	struct cvmx_ciu_int_sum1_cn38xx {
1224 		uint64_t reserved_16_63:48;
1225 		uint64_t wdog:16;
1226 	} cn38xx;
1227 	struct cvmx_ciu_int_sum1_cn38xx cn38xxp2;
1228 	struct cvmx_ciu_int_sum1_cn31xx cn50xx;
1229 	struct cvmx_ciu_int_sum1_cn52xx {
1230 		uint64_t reserved_20_63:44;
1231 		uint64_t nand:1;
1232 		uint64_t mii1:1;
1233 		uint64_t usb1:1;
1234 		uint64_t uart2:1;
1235 		uint64_t reserved_4_15:12;
1236 		uint64_t wdog:4;
1237 	} cn52xx;
1238 	struct cvmx_ciu_int_sum1_cn52xxp1 {
1239 		uint64_t reserved_19_63:45;
1240 		uint64_t mii1:1;
1241 		uint64_t usb1:1;
1242 		uint64_t uart2:1;
1243 		uint64_t reserved_4_15:12;
1244 		uint64_t wdog:4;
1245 	} cn52xxp1;
1246 	struct cvmx_ciu_int_sum1_cn56xx {
1247 		uint64_t reserved_12_63:52;
1248 		uint64_t wdog:12;
1249 	} cn56xx;
1250 	struct cvmx_ciu_int_sum1_cn56xx cn56xxp1;
1251 	struct cvmx_ciu_int_sum1_cn38xx cn58xx;
1252 	struct cvmx_ciu_int_sum1_cn38xx cn58xxp1;
1253 };
1254 
1255 union cvmx_ciu_mbox_clrx {
1256 	uint64_t u64;
1257 	struct cvmx_ciu_mbox_clrx_s {
1258 		uint64_t reserved_32_63:32;
1259 		uint64_t bits:32;
1260 	} s;
1261 	struct cvmx_ciu_mbox_clrx_s cn30xx;
1262 	struct cvmx_ciu_mbox_clrx_s cn31xx;
1263 	struct cvmx_ciu_mbox_clrx_s cn38xx;
1264 	struct cvmx_ciu_mbox_clrx_s cn38xxp2;
1265 	struct cvmx_ciu_mbox_clrx_s cn50xx;
1266 	struct cvmx_ciu_mbox_clrx_s cn52xx;
1267 	struct cvmx_ciu_mbox_clrx_s cn52xxp1;
1268 	struct cvmx_ciu_mbox_clrx_s cn56xx;
1269 	struct cvmx_ciu_mbox_clrx_s cn56xxp1;
1270 	struct cvmx_ciu_mbox_clrx_s cn58xx;
1271 	struct cvmx_ciu_mbox_clrx_s cn58xxp1;
1272 };
1273 
1274 union cvmx_ciu_mbox_setx {
1275 	uint64_t u64;
1276 	struct cvmx_ciu_mbox_setx_s {
1277 		uint64_t reserved_32_63:32;
1278 		uint64_t bits:32;
1279 	} s;
1280 	struct cvmx_ciu_mbox_setx_s cn30xx;
1281 	struct cvmx_ciu_mbox_setx_s cn31xx;
1282 	struct cvmx_ciu_mbox_setx_s cn38xx;
1283 	struct cvmx_ciu_mbox_setx_s cn38xxp2;
1284 	struct cvmx_ciu_mbox_setx_s cn50xx;
1285 	struct cvmx_ciu_mbox_setx_s cn52xx;
1286 	struct cvmx_ciu_mbox_setx_s cn52xxp1;
1287 	struct cvmx_ciu_mbox_setx_s cn56xx;
1288 	struct cvmx_ciu_mbox_setx_s cn56xxp1;
1289 	struct cvmx_ciu_mbox_setx_s cn58xx;
1290 	struct cvmx_ciu_mbox_setx_s cn58xxp1;
1291 };
1292 
1293 union cvmx_ciu_nmi {
1294 	uint64_t u64;
1295 	struct cvmx_ciu_nmi_s {
1296 		uint64_t reserved_16_63:48;
1297 		uint64_t nmi:16;
1298 	} s;
1299 	struct cvmx_ciu_nmi_cn30xx {
1300 		uint64_t reserved_1_63:63;
1301 		uint64_t nmi:1;
1302 	} cn30xx;
1303 	struct cvmx_ciu_nmi_cn31xx {
1304 		uint64_t reserved_2_63:62;
1305 		uint64_t nmi:2;
1306 	} cn31xx;
1307 	struct cvmx_ciu_nmi_s cn38xx;
1308 	struct cvmx_ciu_nmi_s cn38xxp2;
1309 	struct cvmx_ciu_nmi_cn31xx cn50xx;
1310 	struct cvmx_ciu_nmi_cn52xx {
1311 		uint64_t reserved_4_63:60;
1312 		uint64_t nmi:4;
1313 	} cn52xx;
1314 	struct cvmx_ciu_nmi_cn52xx cn52xxp1;
1315 	struct cvmx_ciu_nmi_cn56xx {
1316 		uint64_t reserved_12_63:52;
1317 		uint64_t nmi:12;
1318 	} cn56xx;
1319 	struct cvmx_ciu_nmi_cn56xx cn56xxp1;
1320 	struct cvmx_ciu_nmi_s cn58xx;
1321 	struct cvmx_ciu_nmi_s cn58xxp1;
1322 };
1323 
1324 union cvmx_ciu_pci_inta {
1325 	uint64_t u64;
1326 	struct cvmx_ciu_pci_inta_s {
1327 		uint64_t reserved_2_63:62;
1328 		uint64_t intr:2;
1329 	} s;
1330 	struct cvmx_ciu_pci_inta_s cn30xx;
1331 	struct cvmx_ciu_pci_inta_s cn31xx;
1332 	struct cvmx_ciu_pci_inta_s cn38xx;
1333 	struct cvmx_ciu_pci_inta_s cn38xxp2;
1334 	struct cvmx_ciu_pci_inta_s cn50xx;
1335 	struct cvmx_ciu_pci_inta_s cn52xx;
1336 	struct cvmx_ciu_pci_inta_s cn52xxp1;
1337 	struct cvmx_ciu_pci_inta_s cn56xx;
1338 	struct cvmx_ciu_pci_inta_s cn56xxp1;
1339 	struct cvmx_ciu_pci_inta_s cn58xx;
1340 	struct cvmx_ciu_pci_inta_s cn58xxp1;
1341 };
1342 
1343 union cvmx_ciu_pp_dbg {
1344 	uint64_t u64;
1345 	struct cvmx_ciu_pp_dbg_s {
1346 		uint64_t reserved_16_63:48;
1347 		uint64_t ppdbg:16;
1348 	} s;
1349 	struct cvmx_ciu_pp_dbg_cn30xx {
1350 		uint64_t reserved_1_63:63;
1351 		uint64_t ppdbg:1;
1352 	} cn30xx;
1353 	struct cvmx_ciu_pp_dbg_cn31xx {
1354 		uint64_t reserved_2_63:62;
1355 		uint64_t ppdbg:2;
1356 	} cn31xx;
1357 	struct cvmx_ciu_pp_dbg_s cn38xx;
1358 	struct cvmx_ciu_pp_dbg_s cn38xxp2;
1359 	struct cvmx_ciu_pp_dbg_cn31xx cn50xx;
1360 	struct cvmx_ciu_pp_dbg_cn52xx {
1361 		uint64_t reserved_4_63:60;
1362 		uint64_t ppdbg:4;
1363 	} cn52xx;
1364 	struct cvmx_ciu_pp_dbg_cn52xx cn52xxp1;
1365 	struct cvmx_ciu_pp_dbg_cn56xx {
1366 		uint64_t reserved_12_63:52;
1367 		uint64_t ppdbg:12;
1368 	} cn56xx;
1369 	struct cvmx_ciu_pp_dbg_cn56xx cn56xxp1;
1370 	struct cvmx_ciu_pp_dbg_s cn58xx;
1371 	struct cvmx_ciu_pp_dbg_s cn58xxp1;
1372 };
1373 
1374 union cvmx_ciu_pp_pokex {
1375 	uint64_t u64;
1376 	struct cvmx_ciu_pp_pokex_s {
1377 		uint64_t reserved_0_63:64;
1378 	} s;
1379 	struct cvmx_ciu_pp_pokex_s cn30xx;
1380 	struct cvmx_ciu_pp_pokex_s cn31xx;
1381 	struct cvmx_ciu_pp_pokex_s cn38xx;
1382 	struct cvmx_ciu_pp_pokex_s cn38xxp2;
1383 	struct cvmx_ciu_pp_pokex_s cn50xx;
1384 	struct cvmx_ciu_pp_pokex_s cn52xx;
1385 	struct cvmx_ciu_pp_pokex_s cn52xxp1;
1386 	struct cvmx_ciu_pp_pokex_s cn56xx;
1387 	struct cvmx_ciu_pp_pokex_s cn56xxp1;
1388 	struct cvmx_ciu_pp_pokex_s cn58xx;
1389 	struct cvmx_ciu_pp_pokex_s cn58xxp1;
1390 };
1391 
1392 union cvmx_ciu_pp_rst {
1393 	uint64_t u64;
1394 	struct cvmx_ciu_pp_rst_s {
1395 		uint64_t reserved_16_63:48;
1396 		uint64_t rst:15;
1397 		uint64_t rst0:1;
1398 	} s;
1399 	struct cvmx_ciu_pp_rst_cn30xx {
1400 		uint64_t reserved_1_63:63;
1401 		uint64_t rst0:1;
1402 	} cn30xx;
1403 	struct cvmx_ciu_pp_rst_cn31xx {
1404 		uint64_t reserved_2_63:62;
1405 		uint64_t rst:1;
1406 		uint64_t rst0:1;
1407 	} cn31xx;
1408 	struct cvmx_ciu_pp_rst_s cn38xx;
1409 	struct cvmx_ciu_pp_rst_s cn38xxp2;
1410 	struct cvmx_ciu_pp_rst_cn31xx cn50xx;
1411 	struct cvmx_ciu_pp_rst_cn52xx {
1412 		uint64_t reserved_4_63:60;
1413 		uint64_t rst:3;
1414 		uint64_t rst0:1;
1415 	} cn52xx;
1416 	struct cvmx_ciu_pp_rst_cn52xx cn52xxp1;
1417 	struct cvmx_ciu_pp_rst_cn56xx {
1418 		uint64_t reserved_12_63:52;
1419 		uint64_t rst:11;
1420 		uint64_t rst0:1;
1421 	} cn56xx;
1422 	struct cvmx_ciu_pp_rst_cn56xx cn56xxp1;
1423 	struct cvmx_ciu_pp_rst_s cn58xx;
1424 	struct cvmx_ciu_pp_rst_s cn58xxp1;
1425 };
1426 
1427 union cvmx_ciu_qlm_dcok {
1428 	uint64_t u64;
1429 	struct cvmx_ciu_qlm_dcok_s {
1430 		uint64_t reserved_4_63:60;
1431 		uint64_t qlm_dcok:4;
1432 	} s;
1433 	struct cvmx_ciu_qlm_dcok_cn52xx {
1434 		uint64_t reserved_2_63:62;
1435 		uint64_t qlm_dcok:2;
1436 	} cn52xx;
1437 	struct cvmx_ciu_qlm_dcok_cn52xx cn52xxp1;
1438 	struct cvmx_ciu_qlm_dcok_s cn56xx;
1439 	struct cvmx_ciu_qlm_dcok_s cn56xxp1;
1440 };
1441 
1442 union cvmx_ciu_qlm_jtgc {
1443 	uint64_t u64;
1444 	struct cvmx_ciu_qlm_jtgc_s {
1445 		uint64_t reserved_11_63:53;
1446 		uint64_t clk_div:3;
1447 		uint64_t reserved_6_7:2;
1448 		uint64_t mux_sel:2;
1449 		uint64_t bypass:4;
1450 	} s;
1451 	struct cvmx_ciu_qlm_jtgc_cn52xx {
1452 		uint64_t reserved_11_63:53;
1453 		uint64_t clk_div:3;
1454 		uint64_t reserved_5_7:3;
1455 		uint64_t mux_sel:1;
1456 		uint64_t reserved_2_3:2;
1457 		uint64_t bypass:2;
1458 	} cn52xx;
1459 	struct cvmx_ciu_qlm_jtgc_cn52xx cn52xxp1;
1460 	struct cvmx_ciu_qlm_jtgc_s cn56xx;
1461 	struct cvmx_ciu_qlm_jtgc_s cn56xxp1;
1462 };
1463 
1464 union cvmx_ciu_qlm_jtgd {
1465 	uint64_t u64;
1466 	struct cvmx_ciu_qlm_jtgd_s {
1467 		uint64_t capture:1;
1468 		uint64_t shift:1;
1469 		uint64_t update:1;
1470 		uint64_t reserved_44_60:17;
1471 		uint64_t select:4;
1472 		uint64_t reserved_37_39:3;
1473 		uint64_t shft_cnt:5;
1474 		uint64_t shft_reg:32;
1475 	} s;
1476 	struct cvmx_ciu_qlm_jtgd_cn52xx {
1477 		uint64_t capture:1;
1478 		uint64_t shift:1;
1479 		uint64_t update:1;
1480 		uint64_t reserved_42_60:19;
1481 		uint64_t select:2;
1482 		uint64_t reserved_37_39:3;
1483 		uint64_t shft_cnt:5;
1484 		uint64_t shft_reg:32;
1485 	} cn52xx;
1486 	struct cvmx_ciu_qlm_jtgd_cn52xx cn52xxp1;
1487 	struct cvmx_ciu_qlm_jtgd_s cn56xx;
1488 	struct cvmx_ciu_qlm_jtgd_cn56xxp1 {
1489 		uint64_t capture:1;
1490 		uint64_t shift:1;
1491 		uint64_t update:1;
1492 		uint64_t reserved_37_60:24;
1493 		uint64_t shft_cnt:5;
1494 		uint64_t shft_reg:32;
1495 	} cn56xxp1;
1496 };
1497 
1498 union cvmx_ciu_soft_bist {
1499 	uint64_t u64;
1500 	struct cvmx_ciu_soft_bist_s {
1501 		uint64_t reserved_1_63:63;
1502 		uint64_t soft_bist:1;
1503 	} s;
1504 	struct cvmx_ciu_soft_bist_s cn30xx;
1505 	struct cvmx_ciu_soft_bist_s cn31xx;
1506 	struct cvmx_ciu_soft_bist_s cn38xx;
1507 	struct cvmx_ciu_soft_bist_s cn38xxp2;
1508 	struct cvmx_ciu_soft_bist_s cn50xx;
1509 	struct cvmx_ciu_soft_bist_s cn52xx;
1510 	struct cvmx_ciu_soft_bist_s cn52xxp1;
1511 	struct cvmx_ciu_soft_bist_s cn56xx;
1512 	struct cvmx_ciu_soft_bist_s cn56xxp1;
1513 	struct cvmx_ciu_soft_bist_s cn58xx;
1514 	struct cvmx_ciu_soft_bist_s cn58xxp1;
1515 };
1516 
1517 union cvmx_ciu_soft_prst {
1518 	uint64_t u64;
1519 	struct cvmx_ciu_soft_prst_s {
1520 		uint64_t reserved_3_63:61;
1521 		uint64_t host64:1;
1522 		uint64_t npi:1;
1523 		uint64_t soft_prst:1;
1524 	} s;
1525 	struct cvmx_ciu_soft_prst_s cn30xx;
1526 	struct cvmx_ciu_soft_prst_s cn31xx;
1527 	struct cvmx_ciu_soft_prst_s cn38xx;
1528 	struct cvmx_ciu_soft_prst_s cn38xxp2;
1529 	struct cvmx_ciu_soft_prst_s cn50xx;
1530 	struct cvmx_ciu_soft_prst_cn52xx {
1531 		uint64_t reserved_1_63:63;
1532 		uint64_t soft_prst:1;
1533 	} cn52xx;
1534 	struct cvmx_ciu_soft_prst_cn52xx cn52xxp1;
1535 	struct cvmx_ciu_soft_prst_cn52xx cn56xx;
1536 	struct cvmx_ciu_soft_prst_cn52xx cn56xxp1;
1537 	struct cvmx_ciu_soft_prst_s cn58xx;
1538 	struct cvmx_ciu_soft_prst_s cn58xxp1;
1539 };
1540 
1541 union cvmx_ciu_soft_prst1 {
1542 	uint64_t u64;
1543 	struct cvmx_ciu_soft_prst1_s {
1544 		uint64_t reserved_1_63:63;
1545 		uint64_t soft_prst:1;
1546 	} s;
1547 	struct cvmx_ciu_soft_prst1_s cn52xx;
1548 	struct cvmx_ciu_soft_prst1_s cn52xxp1;
1549 	struct cvmx_ciu_soft_prst1_s cn56xx;
1550 	struct cvmx_ciu_soft_prst1_s cn56xxp1;
1551 };
1552 
1553 union cvmx_ciu_soft_rst {
1554 	uint64_t u64;
1555 	struct cvmx_ciu_soft_rst_s {
1556 		uint64_t reserved_1_63:63;
1557 		uint64_t soft_rst:1;
1558 	} s;
1559 	struct cvmx_ciu_soft_rst_s cn30xx;
1560 	struct cvmx_ciu_soft_rst_s cn31xx;
1561 	struct cvmx_ciu_soft_rst_s cn38xx;
1562 	struct cvmx_ciu_soft_rst_s cn38xxp2;
1563 	struct cvmx_ciu_soft_rst_s cn50xx;
1564 	struct cvmx_ciu_soft_rst_s cn52xx;
1565 	struct cvmx_ciu_soft_rst_s cn52xxp1;
1566 	struct cvmx_ciu_soft_rst_s cn56xx;
1567 	struct cvmx_ciu_soft_rst_s cn56xxp1;
1568 	struct cvmx_ciu_soft_rst_s cn58xx;
1569 	struct cvmx_ciu_soft_rst_s cn58xxp1;
1570 };
1571 
1572 union cvmx_ciu_timx {
1573 	uint64_t u64;
1574 	struct cvmx_ciu_timx_s {
1575 		uint64_t reserved_37_63:27;
1576 		uint64_t one_shot:1;
1577 		uint64_t len:36;
1578 	} s;
1579 	struct cvmx_ciu_timx_s cn30xx;
1580 	struct cvmx_ciu_timx_s cn31xx;
1581 	struct cvmx_ciu_timx_s cn38xx;
1582 	struct cvmx_ciu_timx_s cn38xxp2;
1583 	struct cvmx_ciu_timx_s cn50xx;
1584 	struct cvmx_ciu_timx_s cn52xx;
1585 	struct cvmx_ciu_timx_s cn52xxp1;
1586 	struct cvmx_ciu_timx_s cn56xx;
1587 	struct cvmx_ciu_timx_s cn56xxp1;
1588 	struct cvmx_ciu_timx_s cn58xx;
1589 	struct cvmx_ciu_timx_s cn58xxp1;
1590 };
1591 
1592 union cvmx_ciu_wdogx {
1593 	uint64_t u64;
1594 	struct cvmx_ciu_wdogx_s {
1595 		uint64_t reserved_46_63:18;
1596 		uint64_t gstopen:1;
1597 		uint64_t dstop:1;
1598 		uint64_t cnt:24;
1599 		uint64_t len:16;
1600 		uint64_t state:2;
1601 		uint64_t mode:2;
1602 	} s;
1603 	struct cvmx_ciu_wdogx_s cn30xx;
1604 	struct cvmx_ciu_wdogx_s cn31xx;
1605 	struct cvmx_ciu_wdogx_s cn38xx;
1606 	struct cvmx_ciu_wdogx_s cn38xxp2;
1607 	struct cvmx_ciu_wdogx_s cn50xx;
1608 	struct cvmx_ciu_wdogx_s cn52xx;
1609 	struct cvmx_ciu_wdogx_s cn52xxp1;
1610 	struct cvmx_ciu_wdogx_s cn56xx;
1611 	struct cvmx_ciu_wdogx_s cn56xxp1;
1612 	struct cvmx_ciu_wdogx_s cn58xx;
1613 	struct cvmx_ciu_wdogx_s cn58xxp1;
1614 };
1615 
1616 #endif
1617