xref: /rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-gic.h (revision f7a23c66fa4640deba0b11ddb59dd8bdf1667b40)
1 #ifndef __ODY_CSRS_GIC_H__
2 #define __ODY_CSRS_GIC_H__
3 /* This file is auto-generated. Do not edit */
4 
5 /***********************license start***********************************
6 * Copyright (C) 2021-2026 Marvell.
7 * SPDX-License-Identifier: BSD-3-Clause
8 * https://spdx.org/licenses
9 ***********************license end**************************************/
10 
11 
12 /**
13  * @file
14  *
15  * Configuration and status register (CSR) address and type definitions for
16  * GIC.
17  *
18  * This file is auto generated. Do not edit.
19  *
20  */
21 
22 /**
23  * Enumeration gic_bar_e
24  *
25  * GIC Base Address Register Enumeration
26  * Enumerates the base address registers.
27  */
28 #define ODY_GIC_BAR_E_GICDA_BAR (0x801001500000ll)
29 #define ODY_GIC_BAR_E_GICDA_BAR_SIZE 0x10000ull
30 #define ODY_GIC_BAR_E_GIC_PF_BAR0 (0x801000000000ll)
31 #define ODY_GIC_BAR_E_GIC_PF_BAR0_SIZE 0x80000000ull
32 #define ODY_GIC_BAR_E_GIC_PF_BAR4 (0x801080000000ll)
33 #define ODY_GIC_BAR_E_GIC_PF_BAR4_SIZE 0x80000000ull
34 
35 /**
36  * Enumeration gic_int_vec_e
37  *
38  * GIC MSI-X Vector Enumeration
39  * Enumerates the MSI-X interrupt vectors.
40  */
41 #define ODY_GIC_INT_VEC_E_GICD_INT (0x52)
42 #define ODY_GIC_INT_VEC_E_GIC_WAKE_INTX(a) (0 + (a))
43 
44 /**
45  * Enumeration gicp_event_id_e
46  *
47  * GIC Performance Counter Event ID Enumeration
48  * Enumerates the index of GIC_INT_REQ()_PC.
49  */
50 #define ODY_GICP_EVENT_ID_E_GIC_ACC (0x80)
51 #define ODY_GICP_EVENT_ID_E_GIC_CLC_CYCL (0)
52 #define ODY_GICP_EVENT_ID_E_GIC_DN_MSG_PHY (4)
53 #define ODY_GICP_EVENT_ID_E_GIC_DN_SET_PHY (5)
54 #define ODY_GICP_EVENT_ID_E_GIC_DN_SET_VIRT (0x88)
55 #define ODY_GICP_EVENT_ID_E_GIC_ITS_COL_MISS (0x26)
56 #define ODY_GICP_EVENT_ID_E_GIC_ITS_DID_MISS (0x24)
57 #define ODY_GICP_EVENT_ID_E_GIC_ITS_LAT (0x27)
58 #define ODY_GICP_EVENT_ID_E_GIC_ITS_LL_LPI (0x21)
59 #define ODY_GICP_EVENT_ID_E_GIC_ITS_LPI (0x22)
60 #define ODY_GICP_EVENT_ID_E_GIC_ITS_LPI_CMD (0x23)
61 #define ODY_GICP_EVENT_ID_E_GIC_ITS_MPFA (0x28)
62 #define ODY_GICP_EVENT_ID_E_GIC_ITS_NLL_LPI (0x20)
63 #define ODY_GICP_EVENT_ID_E_GIC_ITS_VID_MISS (0x25)
64 #define ODY_GICP_EVENT_ID_E_GIC_LPI_FAS (0x36)
65 #define ODY_GICP_EVENT_ID_E_GIC_LPI_HIT (0x34)
66 #define ODY_GICP_EVENT_ID_E_GIC_LPI_HIT_DIS (0x33)
67 #define ODY_GICP_EVENT_ID_E_GIC_LPI_HIT_EN (0x32)
68 #define ODY_GICP_EVENT_ID_E_GIC_LPI_MATCH (0x35)
69 #define ODY_GICP_EVENT_ID_E_GIC_LPI_OOL_STORED (0x31)
70 #define ODY_GICP_EVENT_ID_E_GIC_LPI_OWN_STORED (0x30)
71 #define ODY_GICP_EVENT_ID_E_GIC_LPI_PROP (0x39)
72 #define ODY_GICP_EVENT_ID_E_GIC_LPI_PROP_DIS (0x38)
73 #define ODY_GICP_EVENT_ID_E_GIC_LPI_PROP_EN (0x37)
74 #define ODY_GICP_EVENT_ID_E_GIC_NG (1)
75 #define ODY_GICP_EVENT_ID_E_GIC_OFLOW (0x81)
76 #define ODY_GICP_EVENT_ID_E_GIC_PT_IN (0x63)
77 #define ODY_GICP_EVENT_ID_E_GIC_PT_IN_DIS (0x61)
78 #define ODY_GICP_EVENT_ID_E_GIC_PT_IN_EN (0x60)
79 #define ODY_GICP_EVENT_ID_E_GIC_PT_MATCH (0x64)
80 #define ODY_GICP_EVENT_ID_E_GIC_PT_OUT (0x67)
81 #define ODY_GICP_EVENT_ID_E_GIC_PT_OUT_DIS (0x66)
82 #define ODY_GICP_EVENT_ID_E_GIC_PT_OUT_EN (0x65)
83 #define ODY_GICP_EVENT_ID_E_GIC_PT_PRI (0x62)
84 #define ODY_GICP_EVENT_ID_E_GIC_RES_COMP (0x79)
85 #define ODY_GICP_EVENT_ID_E_GIC_RES_START (0x78)
86 #define ODY_GICP_EVENT_ID_E_GIC_SGI_ACC (0x13)
87 #define ODY_GICP_EVENT_ID_E_GIC_SGI_ALL (0x12)
88 #define ODY_GICP_EVENT_ID_E_GIC_SGI_BRD (0x10)
89 #define ODY_GICP_EVENT_ID_E_GIC_SGI_TAR (0x11)
90 #define ODY_GICP_EVENT_ID_E_GIC_SPI_COL_MSG (0x50)
91 #define ODY_GICP_EVENT_ID_E_GIC_SPI_DISABLED (0x52)
92 #define ODY_GICP_EVENT_ID_E_GIC_SPI_ENABLED (0x51)
93 #define ODY_GICP_EVENT_ID_E_GIC_SPI_MATCH (0x55)
94 #define ODY_GICP_EVENT_ID_E_GIC_SPI_PENDING_CLR (0x54)
95 #define ODY_GICP_EVENT_ID_E_GIC_SPI_PENDING_SET (0x53)
96 #define ODY_GICP_EVENT_ID_E_GIC_UP_ACT_DBL (0xe)
97 #define ODY_GICP_EVENT_ID_E_GIC_UP_ACT_LPI (0xb)
98 #define ODY_GICP_EVENT_ID_E_GIC_UP_ACT_SPI (9)
99 #define ODY_GICP_EVENT_ID_E_GIC_UP_ACT_VLPI (0x8a)
100 #define ODY_GICP_EVENT_ID_E_GIC_UP_ACT_VSGI (0x8b)
101 #define ODY_GICP_EVENT_ID_E_GIC_UP_DEACT (0xd)
102 #define ODY_GICP_EVENT_ID_E_GIC_UP_MSG_PHY (8)
103 #define ODY_GICP_EVENT_ID_E_GIC_UP_REL_PHY (0xa)
104 #define ODY_GICP_EVENT_ID_E_GIC_UP_REL_VIRT (0x89)
105 #define ODY_GICP_EVENT_ID_E_GIC_UP_SET_COMP_PHY (0xc)
106 #define ODY_GICP_EVENT_ID_E_GIC_UP_SET_COMP_VIRT (0x8c)
107 #define ODY_GICP_EVENT_ID_E_GIC_VLPI_BUFF_FILL (0x73)
108 #define ODY_GICP_EVENT_ID_E_GIC_VSGI_IN_RAM (0x72)
109 #define ODY_GICP_EVENT_ID_E_GIT_DN_SET1OFN_PHY (6)
110 
111 /**
112  * Enumeration gits_cmd_err_e
113  *
114  * GIC ITS Command Error Enumeration
115  * The actual 24-bit ITS command SEI is defined as {8'h01,
116  * GITS_CMD_TYPE_E(8-bit), GITS_CMD_ERR_E(8-bit)}.
117  */
118 #define ODY_GITS_CMD_ERR_E_CSEI_CMDVCPU_INVALID (0x17)
119 #define ODY_GITS_CMD_ERR_E_CSEI_CMD_TO (0xe0)
120 #define ODY_GITS_CMD_ERR_E_CSEI_COLLECTION_OOR (3)
121 #define ODY_GITS_CMD_ERR_E_CSEI_DEVICE_OOR (0)
122 #define ODY_GITS_CMD_ERR_E_CSEI_ID_IS_PHYSICAL (0x15)
123 #define ODY_GITS_CMD_ERR_E_CSEI_ID_OOR (5)
124 #define ODY_GITS_CMD_ERR_E_CSEI_INVALID_COMMAND (1)
125 #define ODY_GITS_CMD_ERR_E_CSEI_ITEVCPU_INVALID (0x16)
126 #define ODY_GITS_CMD_ERR_E_CSEI_ITE_INVALID (0x10)
127 #define ODY_GITS_CMD_ERR_E_CSEI_ITTSIZE_OOR (2)
128 #define ODY_GITS_CMD_ERR_E_CSEI_PHYSICALID_OOR (6)
129 #define ODY_GITS_CMD_ERR_E_CSEI_SYNCACK_INVALID (0xe1)
130 #define ODY_GITS_CMD_ERR_E_CSEI_TA_INVALID (0xfe)
131 #define ODY_GITS_CMD_ERR_E_CSEI_UNMAPPED_COLLECTION (9)
132 #define ODY_GITS_CMD_ERR_E_CSEI_UNMAPPED_DEVICE (4)
133 #define ODY_GITS_CMD_ERR_E_CSEI_UNMAPPED_INTERRUPT (7)
134 #define ODY_GITS_CMD_ERR_E_CSEI_UNSUPPORTED_CMD (0xff)
135 #define ODY_GITS_CMD_ERR_E_CSEI_VCPU_INVALID (0x14)
136 #define ODY_GITS_CMD_ERR_E_CSEI_VCPU_OOR (0x11)
137 #define ODY_GITS_CMD_ERR_E_CSEI_VIRTUALID_OOR (0x13)
138 #define ODY_GITS_CMD_ERR_E_CSEI_VPTSIZE_OOR (0x12)
139 
140 /**
141  * Enumeration gits_cmd_type_e
142  *
143  * GIC ITS Command Type Enumeration
144  * Enumerates the ITS commands.
145  */
146 #define ODY_GITS_CMD_TYPE_E_CMD_CLEAR (4)
147 #define ODY_GITS_CMD_TYPE_E_CMD_DISCARD (0xf)
148 #define ODY_GITS_CMD_TYPE_E_CMD_INT (3)
149 #define ODY_GITS_CMD_TYPE_E_CMD_INV (0xc)
150 #define ODY_GITS_CMD_TYPE_E_CMD_INVALL (0xd)
151 #define ODY_GITS_CMD_TYPE_E_CMD_MAPC (9)
152 #define ODY_GITS_CMD_TYPE_E_CMD_MAPD (8)
153 #define ODY_GITS_CMD_TYPE_E_CMD_MAPI (0xb)
154 #define ODY_GITS_CMD_TYPE_E_CMD_MAPTI (0xa)
155 #define ODY_GITS_CMD_TYPE_E_CMD_MOVALL (0xe)
156 #define ODY_GITS_CMD_TYPE_E_CMD_MOVI (1)
157 #define ODY_GITS_CMD_TYPE_E_CMD_SYNC (5)
158 #define ODY_GITS_CMD_TYPE_E_CMD_UDF (0)
159 #define ODY_GITS_CMD_TYPE_E_CMD_VINVALL (0x2d)
160 #define ODY_GITS_CMD_TYPE_E_CMD_VMAPI (0x2b)
161 #define ODY_GITS_CMD_TYPE_E_CMD_VMAPP (0x29)
162 #define ODY_GITS_CMD_TYPE_E_CMD_VMAPTI (0x2a)
163 #define ODY_GITS_CMD_TYPE_E_CMD_VMOVI (0x21)
164 #define ODY_GITS_CMD_TYPE_E_CMD_VMOVP (0x22)
165 #define ODY_GITS_CMD_TYPE_E_CMD_VSYNC (0x25)
166 
167 /**
168  * Structure gits_cmd_clear_s
169  *
170  * GIC ITS Clear Command Structure
171  */
172 union ody_gits_cmd_clear_s {
173 	uint64_t u[4];
174 	struct ody_gits_cmd_clear_s_s {
175 		uint64_t cmd_type                    : 8;
176 		uint64_t reserved_8_31               : 24;
177 		uint64_t dev_id                      : 32;
178 		uint64_t evnt_id                     : 32;
179 		uint64_t reserved_96_127             : 32;
180 		uint64_t reserved_128_191            : 64;
181 		uint64_t reserved_192_255            : 64;
182 	} s;
183 	/* struct ody_gits_cmd_clear_s_s cn; */
184 };
185 
186 /**
187  * Structure gits_cmd_discard_s
188  *
189  * GIC ITS Discard Command Structure
190  */
191 union ody_gits_cmd_discard_s {
192 	uint64_t u[4];
193 	struct ody_gits_cmd_discard_s_s {
194 		uint64_t cmd_type                    : 8;
195 		uint64_t reserved_8_31               : 24;
196 		uint64_t dev_id                      : 32;
197 		uint64_t evnt_id                     : 32;
198 		uint64_t reserved_96_127             : 32;
199 		uint64_t reserved_128_191            : 64;
200 		uint64_t reserved_192_255            : 64;
201 	} s;
202 	/* struct ody_gits_cmd_discard_s_s cn; */
203 };
204 
205 /**
206  * Structure gits_cmd_int_s
207  *
208  * GIC ITS INT Command Structure
209  */
210 union ody_gits_cmd_int_s {
211 	uint64_t u[4];
212 	struct ody_gits_cmd_int_s_s {
213 		uint64_t cmd_type                    : 8;
214 		uint64_t reserved_8_31               : 24;
215 		uint64_t dev_id                      : 32;
216 		uint64_t evnt_id                     : 32;
217 		uint64_t reserved_96_127             : 32;
218 		uint64_t reserved_128_191            : 64;
219 		uint64_t reserved_192_255            : 64;
220 	} s;
221 	/* struct ody_gits_cmd_int_s_s cn; */
222 };
223 
224 /**
225  * Structure gits_cmd_inv_s
226  *
227  * GIC ITS INV Command Structure
228  */
229 union ody_gits_cmd_inv_s {
230 	uint64_t u[4];
231 	struct ody_gits_cmd_inv_s_s {
232 		uint64_t cmd_type                    : 8;
233 		uint64_t reserved_8_31               : 24;
234 		uint64_t dev_id                      : 32;
235 		uint64_t evnt_id                     : 32;
236 		uint64_t reserved_96_127             : 32;
237 		uint64_t reserved_128_191            : 64;
238 		uint64_t reserved_192_255            : 64;
239 	} s;
240 	/* struct ody_gits_cmd_inv_s_s cn; */
241 };
242 
243 /**
244  * Structure gits_cmd_invall_s
245  *
246  * GIC ITS INVALL Command Structure
247  */
248 union ody_gits_cmd_invall_s {
249 	uint64_t u[4];
250 	struct ody_gits_cmd_invall_s_s {
251 		uint64_t cmd_type                    : 8;
252 		uint64_t reserved_8_63               : 56;
253 		uint64_t reserved_64_127             : 64;
254 		uint64_t icid                        : 16;
255 		uint64_t reserved_144_191            : 48;
256 		uint64_t reserved_192_255            : 64;
257 	} s;
258 	/* struct ody_gits_cmd_invall_s_s cn; */
259 };
260 
261 /**
262  * Structure gits_cmd_mapc_s
263  *
264  * GIC ITS MAPC Command Structure
265  */
266 union ody_gits_cmd_mapc_s {
267 	uint64_t u[4];
268 	struct ody_gits_cmd_mapc_s_s {
269 		uint64_t cmd_type                    : 8;
270 		uint64_t reserved_8_63               : 56;
271 		uint64_t reserved_64_127             : 64;
272 		uint64_t icid                        : 16;
273 		uint64_t rdbase                      : 35;
274 		uint64_t reserved_179_190            : 12;
275 		uint64_t v                           : 1;
276 		uint64_t reserved_192_255            : 64;
277 	} s;
278 	/* struct ody_gits_cmd_mapc_s_s cn; */
279 };
280 
281 /**
282  * Structure gits_cmd_mapd_s
283  *
284  * GIC ITS MAPD Command Structure
285  */
286 union ody_gits_cmd_mapd_s {
287 	uint64_t u[4];
288 	struct ody_gits_cmd_mapd_s_s {
289 		uint64_t cmd_type                    : 8;
290 		uint64_t reserved_8_31               : 24;
291 		uint64_t dev_id                      : 32;
292 		uint64_t size                        : 5;
293 		uint64_t reserved_69_127             : 59;
294 		uint64_t reserved_128_135            : 8;
295 		uint64_t itt_addr                    : 43;
296 		uint64_t reserved_179_190            : 12;
297 		uint64_t v                           : 1;
298 		uint64_t reserved_192_255            : 64;
299 	} s;
300 	/* struct ody_gits_cmd_mapd_s_s cn; */
301 };
302 
303 /**
304  * Structure gits_cmd_mapi_s
305  *
306  * GIC ITS MAPI Command Structure
307  */
308 union ody_gits_cmd_mapi_s {
309 	uint64_t u[4];
310 	struct ody_gits_cmd_mapi_s_s {
311 		uint64_t cmd_type                    : 8;
312 		uint64_t reserved_8_31               : 24;
313 		uint64_t dev_id                      : 32;
314 		uint64_t evnt_id                     : 32;
315 		uint64_t reserved_96_127             : 32;
316 		uint64_t cid                         : 16;
317 		uint64_t reserved_144_191            : 48;
318 		uint64_t reserved_192_255            : 64;
319 	} s;
320 	/* struct ody_gits_cmd_mapi_s_s cn; */
321 };
322 
323 /**
324  * Structure gits_cmd_mapti_s
325  *
326  * GIC ITS MAPTI Command Structure
327  */
328 union ody_gits_cmd_mapti_s {
329 	uint64_t u[4];
330 	struct ody_gits_cmd_mapti_s_s {
331 		uint64_t cmd_type                    : 8;
332 		uint64_t reserved_8_31               : 24;
333 		uint64_t dev_id                      : 32;
334 		uint64_t evnt_id                     : 32;
335 		uint64_t pint_id                     : 32;
336 		uint64_t cid                         : 16;
337 		uint64_t reserved_144_191            : 48;
338 		uint64_t reserved_192_255            : 64;
339 	} s;
340 	/* struct ody_gits_cmd_mapti_s_s cn; */
341 };
342 
343 /**
344  * Structure gits_cmd_movall_s
345  *
346  * GIC ITS MOVALL Command Structure
347  */
348 union ody_gits_cmd_movall_s {
349 	uint64_t u[4];
350 	struct ody_gits_cmd_movall_s_s {
351 		uint64_t cmd_type                    : 8;
352 		uint64_t reserved_8_63               : 56;
353 		uint64_t reserved_64_127             : 64;
354 		uint64_t reserved_128_143            : 16;
355 		uint64_t rdbase1                     : 35;
356 		uint64_t reserved_179_191            : 13;
357 		uint64_t reserved_192_207            : 16;
358 		uint64_t rdbase2                     : 35;
359 		uint64_t reserved_243_255            : 13;
360 	} s;
361 	/* struct ody_gits_cmd_movall_s_s cn; */
362 };
363 
364 /**
365  * Structure gits_cmd_movi_s
366  *
367  * GIC ITS MOVI Command Structure
368  */
369 union ody_gits_cmd_movi_s {
370 	uint64_t u[4];
371 	struct ody_gits_cmd_movi_s_s {
372 		uint64_t cmd_type                    : 8;
373 		uint64_t reserved_8_31               : 24;
374 		uint64_t dev_id                      : 32;
375 		uint64_t evnt_id                     : 32;
376 		uint64_t reserved_96_127             : 32;
377 		uint64_t cid                         : 16;
378 		uint64_t reserved_144_191            : 48;
379 		uint64_t reserved_192_255            : 64;
380 	} s;
381 	/* struct ody_gits_cmd_movi_s_s cn; */
382 };
383 
384 /**
385  * Structure gits_cmd_sync_s
386  *
387  * GIC ITS SYNC Command Structure
388  */
389 union ody_gits_cmd_sync_s {
390 	uint64_t u[4];
391 	struct ody_gits_cmd_sync_s_s {
392 		uint64_t cmd_type                    : 8;
393 		uint64_t reserved_8_63               : 56;
394 		uint64_t reserved_64_127             : 64;
395 		uint64_t reserved_128_143            : 16;
396 		uint64_t rdbase                      : 32;
397 		uint64_t reserved_176_191            : 16;
398 		uint64_t reserved_192_255            : 64;
399 	} s;
400 	/* struct ody_gits_cmd_sync_s_s cn; */
401 };
402 
403 /**
404  * Structure gits_cmd_vinvall_s
405  *
406  * GIC ITS VINVALL Command Structure
407  */
408 union ody_gits_cmd_vinvall_s {
409 	uint64_t u[4];
410 	struct ody_gits_cmd_vinvall_s_s {
411 		uint64_t cmd_type                    : 8;
412 		uint64_t reserved_8_63               : 56;
413 		uint64_t reserved_64_95              : 32;
414 		uint64_t vpeid                       : 16;
415 		uint64_t reserved_112_127            : 16;
416 		uint64_t reserved_128_191            : 64;
417 		uint64_t reserved_192_255            : 64;
418 	} s;
419 	/* struct ody_gits_cmd_vinvall_s_s cn; */
420 };
421 
422 /**
423  * Structure gits_cmd_vmapi_s
424  *
425  * GIC ITS VMAPI Command Structure
426  */
427 union ody_gits_cmd_vmapi_s {
428 	uint64_t u[4];
429 	struct ody_gits_cmd_vmapi_s_s {
430 		uint64_t cmd_type                    : 8;
431 		uint64_t reserved_8_63               : 56;
432 		uint64_t evnt_id                     : 32;
433 		uint64_t vpeid                       : 16;
434 		uint64_t reserved_112_127            : 16;
435 		uint64_t reserved_128_159            : 32;
436 		uint64_t dbell_pintid                : 32;
437 		uint64_t reserved_192_255            : 64;
438 	} s;
439 	/* struct ody_gits_cmd_vmapi_s_s cn; */
440 };
441 
442 /**
443  * Structure gits_cmd_vmapp_s
444  *
445  * GIC ITS VMAPP Command Structure
446  */
447 union ody_gits_cmd_vmapp_s {
448 	uint64_t u[4];
449 	struct ody_gits_cmd_vmapp_s_s {
450 		uint64_t cmd_type                    : 8;
451 		uint64_t reserved_8_63               : 56;
452 		uint64_t reserved_64_95              : 32;
453 		uint64_t vpeid                       : 16;
454 		uint64_t reserved_112_127            : 16;
455 		uint64_t reserved_128_143            : 16;
456 		uint64_t rdbase                      : 35;
457 		uint64_t reserved_179_190            : 12;
458 		uint64_t v                           : 1;
459 		uint64_t vpt_size                    : 5;
460 		uint64_t reserved_197_207            : 11;
461 		uint64_t vpt_addr                    : 35;
462 		uint64_t reserved_243_255            : 13;
463 	} s;
464 	/* struct ody_gits_cmd_vmapp_s_s cn; */
465 };
466 
467 /**
468  * Structure gits_cmd_vmapti_s
469  *
470  * GIC ITS VMAPTI Command Structure
471  */
472 union ody_gits_cmd_vmapti_s {
473 	uint64_t u[4];
474 	struct ody_gits_cmd_vmapti_s_s {
475 		uint64_t cmd_type                    : 8;
476 		uint64_t reserved_8_31               : 24;
477 		uint64_t dev_id                      : 32;
478 		uint64_t evnt_id                     : 32;
479 		uint64_t vpeid                       : 16;
480 		uint64_t reserved_112_127            : 16;
481 		uint64_t vintid                      : 32;
482 		uint64_t dbell_pintid                : 32;
483 		uint64_t reserved_192_255            : 64;
484 	} s;
485 	/* struct ody_gits_cmd_vmapti_s_s cn; */
486 };
487 
488 /**
489  * Structure gits_cmd_vmovi_s
490  *
491  * GIC ITS VMOVI Command Structure
492  */
493 union ody_gits_cmd_vmovi_s {
494 	uint64_t u[4];
495 	struct ody_gits_cmd_vmovi_s_s {
496 		uint64_t cmd_type                    : 8;
497 		uint64_t reserved_8_31               : 24;
498 		uint64_t dev_id                      : 32;
499 		uint64_t evnt_id                     : 32;
500 		uint64_t vpeid                       : 16;
501 		uint64_t reserved_112_127            : 16;
502 		uint64_t d_vld                       : 1;
503 		uint64_t reserved_129_159            : 31;
504 		uint64_t dbell_pintid                : 32;
505 		uint64_t reserved_192_255            : 64;
506 	} s;
507 	/* struct ody_gits_cmd_vmovi_s_s cn; */
508 };
509 
510 /**
511  * Structure gits_cmd_vmovp_s
512  *
513  * GIC ITS VMOVP Command Structure
514  */
515 union ody_gits_cmd_vmovp_s {
516 	uint64_t u[4];
517 	struct ody_gits_cmd_vmovp_s_s {
518 		uint64_t cmd_type                    : 8;
519 		uint64_t reserved_8_31               : 24;
520 		uint64_t seq_num                     : 18;
521 		uint64_t reserved_50_63              : 14;
522 		uint64_t its_list                    : 16;
523 		uint64_t reserved_80_95              : 16;
524 		uint64_t vpeid                       : 16;
525 		uint64_t reserved_112_127            : 16;
526 		uint64_t reserved_128_143            : 16;
527 		uint64_t rdbase                      : 35;
528 		uint64_t reserved_179_191            : 13;
529 		uint64_t reserved_192_255            : 64;
530 	} s;
531 	/* struct ody_gits_cmd_vmovp_s_s cn; */
532 };
533 
534 /**
535  * Structure gits_cmd_vsync_s
536  *
537  * GIC ITS VSYNC Command Structure
538  */
539 union ody_gits_cmd_vsync_s {
540 	uint64_t u[4];
541 	struct ody_gits_cmd_vsync_s_s {
542 		uint64_t cmd_type                    : 8;
543 		uint64_t reserved_8_63               : 56;
544 		uint64_t reserved_64_95              : 32;
545 		uint64_t vpeid                       : 16;
546 		uint64_t reserved_112_127            : 16;
547 		uint64_t reserved_128_191            : 64;
548 		uint64_t reserved_192_255            : 64;
549 	} s;
550 	/* struct ody_gits_cmd_vsync_s_s cn; */
551 };
552 
553 /**
554  * Register (NCB) gic_anb_aximstr_status
555  *
556  * ANB AXISLV Block Status Register
557  */
558 union ody_gic_anb_aximstr_status {
559 	uint64_t u;
560 	struct ody_gic_anb_aximstr_status_s {
561 		uint64_t anb_aximstr_rd_resp_nok     : 1;
562 		uint64_t anb_aximstr_wr_resp_nok     : 1;
563 		uint64_t reserved_2_63               : 62;
564 	} s;
565 	/* struct ody_gic_anb_aximstr_status_s cn; */
566 };
567 typedef union ody_gic_anb_aximstr_status ody_gic_anb_aximstr_status_t;
568 
569 #define ODY_GIC_ANB_AXIMSTR_STATUS ODY_GIC_ANB_AXIMSTR_STATUS_FUNC()
570 static inline uint64_t ODY_GIC_ANB_AXIMSTR_STATUS_FUNC(void) __attribute__ ((pure, always_inline));
571 static inline uint64_t ODY_GIC_ANB_AXIMSTR_STATUS_FUNC(void)
572 {
573 	return 0x801010012060ll;
574 }
575 
576 #define typedef_ODY_GIC_ANB_AXIMSTR_STATUS ody_gic_anb_aximstr_status_t
577 #define bustype_ODY_GIC_ANB_AXIMSTR_STATUS CSR_TYPE_NCB
578 #define basename_ODY_GIC_ANB_AXIMSTR_STATUS "GIC_ANB_AXIMSTR_STATUS"
579 #define device_bar_ODY_GIC_ANB_AXIMSTR_STATUS 0x0 /* PF_BAR0 */
580 #define busnum_ODY_GIC_ANB_AXIMSTR_STATUS 0
581 #define arguments_ODY_GIC_ANB_AXIMSTR_STATUS -1, -1, -1, -1
582 
583 /**
584  * Register (NCB) gic_anb_axislv_status
585  *
586  * ANB AXISLV Block Status Register
587  */
588 union ody_gic_anb_axislv_status {
589 	uint64_t u;
590 	struct ody_gic_anb_axislv_status_s {
591 		uint64_t anb_axislv_b_fifo_overrun   : 1;
592 		uint64_t anb_axislv_r_fifo_overrun   : 1;
593 		uint64_t anb_axislv_load_size_exc    : 1;
594 		uint64_t anb_axislv_write_size_exc   : 1;
595 		uint64_t anb_axislv_empty_write      : 1;
596 		uint64_t anb_axislv_multi_beat_nrw_wr : 1;
597 		uint64_t anb_axislv_multi_beat_nrw_rd : 1;
598 		uint64_t anb_axislv_single_beat_nrw_wr : 1;
599 		uint64_t anb_axislv_single_beat_nrw_rd : 1;
600 		uint64_t anb_axislv_bad_narrow_write_8 : 1;
601 		uint64_t anb_axislv_bad_narrow_write_16 : 1;
602 		uint64_t anb_axislv_bad_narrow_write_32 : 1;
603 		uint64_t anb_axislv_bad_narrow_write_64 : 1;
604 		uint64_t reserved_13_63              : 51;
605 	} s;
606 	/* struct ody_gic_anb_axislv_status_s cn; */
607 };
608 typedef union ody_gic_anb_axislv_status ody_gic_anb_axislv_status_t;
609 
610 #define ODY_GIC_ANB_AXISLV_STATUS ODY_GIC_ANB_AXISLV_STATUS_FUNC()
611 static inline uint64_t ODY_GIC_ANB_AXISLV_STATUS_FUNC(void) __attribute__ ((pure, always_inline));
612 static inline uint64_t ODY_GIC_ANB_AXISLV_STATUS_FUNC(void)
613 {
614 	return 0x801010012030ll;
615 }
616 
617 #define typedef_ODY_GIC_ANB_AXISLV_STATUS ody_gic_anb_axislv_status_t
618 #define bustype_ODY_GIC_ANB_AXISLV_STATUS CSR_TYPE_NCB
619 #define basename_ODY_GIC_ANB_AXISLV_STATUS "GIC_ANB_AXISLV_STATUS"
620 #define device_bar_ODY_GIC_ANB_AXISLV_STATUS 0x0 /* PF_BAR0 */
621 #define busnum_ODY_GIC_ANB_AXISLV_STATUS 0
622 #define arguments_ODY_GIC_ANB_AXISLV_STATUS -1, -1, -1, -1
623 
624 /**
625  * Register (NCB) gic_anb_backp_disable
626  *
627  * ANB Backpressure Configuration Register
628  */
629 union ody_gic_anb_backp_disable {
630 	uint64_t u;
631 	struct ody_gic_anb_backp_disable_s {
632 		uint64_t anb_extmstr_b_backp_disable : 1;
633 		uint64_t anb_extmstr_r_backp_disable : 1;
634 		uint64_t anb_chicken_w_wait_for_aw   : 1;
635 		uint64_t anb_force_ncb_rst_active    : 1;
636 		uint64_t anb_ncb_rst_drain_axislv_fifos : 1;
637 		uint64_t reserved_5_63               : 59;
638 	} s;
639 	/* struct ody_gic_anb_backp_disable_s cn; */
640 };
641 typedef union ody_gic_anb_backp_disable ody_gic_anb_backp_disable_t;
642 
643 #define ODY_GIC_ANB_BACKP_DISABLE ODY_GIC_ANB_BACKP_DISABLE_FUNC()
644 static inline uint64_t ODY_GIC_ANB_BACKP_DISABLE_FUNC(void) __attribute__ ((pure, always_inline));
645 static inline uint64_t ODY_GIC_ANB_BACKP_DISABLE_FUNC(void)
646 {
647 	return 0x801010012000ll;
648 }
649 
650 #define typedef_ODY_GIC_ANB_BACKP_DISABLE ody_gic_anb_backp_disable_t
651 #define bustype_ODY_GIC_ANB_BACKP_DISABLE CSR_TYPE_NCB
652 #define basename_ODY_GIC_ANB_BACKP_DISABLE "GIC_ANB_BACKP_DISABLE"
653 #define device_bar_ODY_GIC_ANB_BACKP_DISABLE 0x0 /* PF_BAR0 */
654 #define busnum_ODY_GIC_ANB_BACKP_DISABLE 0
655 #define arguments_ODY_GIC_ANB_BACKP_DISABLE -1, -1, -1, -1
656 
657 /**
658  * Register (NCB) gic_anb_ncbi_np_ovr
659  *
660  * ANB NCBITXT NP Path CMD Overrides Register
661  */
662 union ody_gic_anb_ncbi_np_ovr {
663 	uint64_t u;
664 	struct ody_gic_anb_ncbi_np_ovr_s {
665 		uint64_t anb_ncbi_np_msh_dst_ovr_vld : 1;
666 		uint64_t anb_ncbi_np_msh_dst_ovr     : 11;
667 		uint64_t anb_ncbi_np_ns_ovr_vld      : 1;
668 		uint64_t anb_ncbi_np_ns_ovr          : 1;
669 		uint64_t anb_ncbi_np_paddr_ovr_vld   : 1;
670 		uint64_t anb_ncbi_np_paddr_ovr       : 1;
671 		uint64_t anb_ncbi_np_ro_ovr_vld      : 1;
672 		uint64_t anb_ncbi_np_ro_ovr          : 1;
673 		uint64_t anb_ncbi_np_mpadid_val_ovr_vld : 1;
674 		uint64_t anb_ncbi_np_mpadid_val_ovr  : 1;
675 		uint64_t anb_ncbi_np_mpamdid_ovr_vld : 1;
676 		uint64_t anb_ncbi_np_mpamdid_ovr     : 10;
677 		uint64_t anb_ncbi_np_ldd_frc         : 1;
678 		uint64_t reserved_32_63              : 32;
679 	} s;
680 	/* struct ody_gic_anb_ncbi_np_ovr_s cn; */
681 };
682 typedef union ody_gic_anb_ncbi_np_ovr ody_gic_anb_ncbi_np_ovr_t;
683 
684 #define ODY_GIC_ANB_NCBI_NP_OVR ODY_GIC_ANB_NCBI_NP_OVR_FUNC()
685 static inline uint64_t ODY_GIC_ANB_NCBI_NP_OVR_FUNC(void) __attribute__ ((pure, always_inline));
686 static inline uint64_t ODY_GIC_ANB_NCBI_NP_OVR_FUNC(void)
687 {
688 	return 0x801010012020ll;
689 }
690 
691 #define typedef_ODY_GIC_ANB_NCBI_NP_OVR ody_gic_anb_ncbi_np_ovr_t
692 #define bustype_ODY_GIC_ANB_NCBI_NP_OVR CSR_TYPE_NCB
693 #define basename_ODY_GIC_ANB_NCBI_NP_OVR "GIC_ANB_NCBI_NP_OVR"
694 #define device_bar_ODY_GIC_ANB_NCBI_NP_OVR 0x0 /* PF_BAR0 */
695 #define busnum_ODY_GIC_ANB_NCBI_NP_OVR 0
696 #define arguments_ODY_GIC_ANB_NCBI_NP_OVR -1, -1, -1, -1
697 
698 /**
699  * Register (NCB) gic_anb_ncbi_p_ovr
700  *
701  * ANB NCBITXT P Overrides Register
702  */
703 union ody_gic_anb_ncbi_p_ovr {
704 	uint64_t u;
705 	struct ody_gic_anb_ncbi_p_ovr_s {
706 		uint64_t anb_ncbi_p_msh_dst_ovr_vld  : 1;
707 		uint64_t anb_ncbi_p_msh_dst_ovr      : 11;
708 		uint64_t anb_ncbi_p_ns_ovr_vld       : 1;
709 		uint64_t anb_ncbi_p_ns_ovr           : 1;
710 		uint64_t anb_ncbi_p_paddr_ovr_vld    : 1;
711 		uint64_t anb_ncbi_p_paddr_ovr        : 1;
712 		uint64_t anb_ncbi_p_ro_ovr_vld       : 1;
713 		uint64_t anb_ncbi_p_ro_ovr           : 1;
714 		uint64_t anb_ncbi_p_mpadid_val_ovr_vld : 1;
715 		uint64_t anb_ncbi_p_mpadid_val_ovr   : 1;
716 		uint64_t anb_ncbi_p_mpamdid_ovr_vld  : 1;
717 		uint64_t anb_ncbi_p_mpamdid_ovr      : 10;
718 		uint64_t anb_ncbi_p_stt_frc          : 1;
719 		uint64_t reserved_32_63              : 32;
720 	} s;
721 	/* struct ody_gic_anb_ncbi_p_ovr_s cn; */
722 };
723 typedef union ody_gic_anb_ncbi_p_ovr ody_gic_anb_ncbi_p_ovr_t;
724 
725 #define ODY_GIC_ANB_NCBI_P_OVR ODY_GIC_ANB_NCBI_P_OVR_FUNC()
726 static inline uint64_t ODY_GIC_ANB_NCBI_P_OVR_FUNC(void) __attribute__ ((pure, always_inline));
727 static inline uint64_t ODY_GIC_ANB_NCBI_P_OVR_FUNC(void)
728 {
729 	return 0x801010012010ll;
730 }
731 
732 #define typedef_ODY_GIC_ANB_NCBI_P_OVR ody_gic_anb_ncbi_p_ovr_t
733 #define bustype_ODY_GIC_ANB_NCBI_P_OVR CSR_TYPE_NCB
734 #define basename_ODY_GIC_ANB_NCBI_P_OVR "GIC_ANB_NCBI_P_OVR"
735 #define device_bar_ODY_GIC_ANB_NCBI_P_OVR 0x0 /* PF_BAR0 */
736 #define busnum_ODY_GIC_ANB_NCBI_P_OVR 0
737 #define arguments_ODY_GIC_ANB_NCBI_P_OVR -1, -1, -1, -1
738 
739 /**
740  * Register (NCB) gic_anb_ncbitx_status
741  *
742  * ANB AXISLV Block Status Register
743  */
744 union ody_gic_anb_ncbitx_status {
745 	uint64_t u;
746 	struct ody_gic_anb_ncbitx_status_s {
747 		uint64_t anb_ncbitx_split_rd         : 1;
748 		uint64_t anb_ncbitx_split_wr         : 1;
749 		uint64_t reserved_2_63               : 62;
750 	} s;
751 	/* struct ody_gic_anb_ncbitx_status_s cn; */
752 };
753 typedef union ody_gic_anb_ncbitx_status ody_gic_anb_ncbitx_status_t;
754 
755 #define ODY_GIC_ANB_NCBITX_STATUS ODY_GIC_ANB_NCBITX_STATUS_FUNC()
756 static inline uint64_t ODY_GIC_ANB_NCBITX_STATUS_FUNC(void) __attribute__ ((pure, always_inline));
757 static inline uint64_t ODY_GIC_ANB_NCBITX_STATUS_FUNC(void)
758 {
759 	return 0x801010012040ll;
760 }
761 
762 #define typedef_ODY_GIC_ANB_NCBITX_STATUS ody_gic_anb_ncbitx_status_t
763 #define bustype_ODY_GIC_ANB_NCBITX_STATUS CSR_TYPE_NCB
764 #define basename_ODY_GIC_ANB_NCBITX_STATUS "GIC_ANB_NCBITX_STATUS"
765 #define device_bar_ODY_GIC_ANB_NCBITX_STATUS 0x0 /* PF_BAR0 */
766 #define busnum_ODY_GIC_ANB_NCBITX_STATUS 0
767 #define arguments_ODY_GIC_ANB_NCBITX_STATUS -1, -1, -1, -1
768 
769 /**
770  * Register (NCB) gic_anb_ncborx_status
771  *
772  * ANB AXISLV Block Status Register
773  */
774 union ody_gic_anb_ncborx_status {
775 	uint64_t u;
776 	struct ody_gic_anb_ncborx_status_s {
777 		uint64_t anb_ncborx_rcvd_unsupported_op : 1;
778 		uint64_t anb_nbcorx_max_num_ncb_ld_exc : 1;
779 		uint64_t anb_nbcorx_max_size_ncb_ld_exc : 1;
780 		uint64_t anb_nbcorx_max_num_ncb_st_exc : 1;
781 		uint64_t anb_nbcorx_max_size_ncb_st_exc : 1;
782 		uint64_t reserved_5_63               : 59;
783 	} s;
784 	/* struct ody_gic_anb_ncborx_status_s cn; */
785 };
786 typedef union ody_gic_anb_ncborx_status ody_gic_anb_ncborx_status_t;
787 
788 #define ODY_GIC_ANB_NCBORX_STATUS ODY_GIC_ANB_NCBORX_STATUS_FUNC()
789 static inline uint64_t ODY_GIC_ANB_NCBORX_STATUS_FUNC(void) __attribute__ ((pure, always_inline));
790 static inline uint64_t ODY_GIC_ANB_NCBORX_STATUS_FUNC(void)
791 {
792 	return 0x801010012050ll;
793 }
794 
795 #define typedef_ODY_GIC_ANB_NCBORX_STATUS ody_gic_anb_ncborx_status_t
796 #define bustype_ODY_GIC_ANB_NCBORX_STATUS CSR_TYPE_NCB
797 #define basename_ODY_GIC_ANB_NCBORX_STATUS "GIC_ANB_NCBORX_STATUS"
798 #define device_bar_ODY_GIC_ANB_NCBORX_STATUS 0x0 /* PF_BAR0 */
799 #define busnum_ODY_GIC_ANB_NCBORX_STATUS 0
800 #define arguments_ODY_GIC_ANB_NCBORX_STATUS -1, -1, -1, -1
801 
802 /**
803  * Register (NCB) gic_msix_pba#
804  *
805  * GIC MSI-X Pending Bit Array Registers
806  */
807 union ody_gic_msix_pbax {
808 	uint64_t u;
809 	struct ody_gic_msix_pbax_s {
810 		uint64_t pend                        : 64;
811 	} s;
812 	/* struct ody_gic_msix_pbax_s cn; */
813 };
814 typedef union ody_gic_msix_pbax ody_gic_msix_pbax_t;
815 
816 static inline uint64_t ODY_GIC_MSIX_PBAX(uint64_t a) __attribute__ ((pure, always_inline));
817 static inline uint64_t ODY_GIC_MSIX_PBAX(uint64_t a)
818 {
819 	if (a <= 1)
820 		return 0x8010800f0000ll + 8ll * ((a) & 0x1);
821 	__ody_csr_fatal("GIC_MSIX_PBAX", 1, a, 0, 0, 0, 0, 0);
822 }
823 
824 #define typedef_ODY_GIC_MSIX_PBAX(a) ody_gic_msix_pbax_t
825 #define bustype_ODY_GIC_MSIX_PBAX(a) CSR_TYPE_NCB
826 #define basename_ODY_GIC_MSIX_PBAX(a) "GIC_MSIX_PBAX"
827 #define device_bar_ODY_GIC_MSIX_PBAX(a) 0x4 /* PF_BAR4 */
828 #define busnum_ODY_GIC_MSIX_PBAX(a) (a)
829 #define arguments_ODY_GIC_MSIX_PBAX(a) (a), -1, -1, -1
830 
831 /**
832  * Register (NCB) gic_msix_vec#_addr
833  *
834  * GIC MSI-X Vector-Table Address Register
835  * This register is the MSI-X vector table, indexed by the GIC_INT_VEC_E enumeration.
836  */
837 union ody_gic_msix_vecx_addr {
838 	uint64_t u;
839 	struct ody_gic_msix_vecx_addr_s {
840 		uint64_t secvec                      : 1;
841 		uint64_t reserved_1                  : 1;
842 		uint64_t addr                        : 51;
843 		uint64_t reserved_53_63              : 11;
844 	} s;
845 	/* struct ody_gic_msix_vecx_addr_s cn; */
846 };
847 typedef union ody_gic_msix_vecx_addr ody_gic_msix_vecx_addr_t;
848 
849 static inline uint64_t ODY_GIC_MSIX_VECX_ADDR(uint64_t a) __attribute__ ((pure, always_inline));
850 static inline uint64_t ODY_GIC_MSIX_VECX_ADDR(uint64_t a)
851 {
852 	if (a <= 82)
853 		return 0x801080000000ll + 0x10ll * ((a) & 0x7f);
854 	__ody_csr_fatal("GIC_MSIX_VECX_ADDR", 1, a, 0, 0, 0, 0, 0);
855 }
856 
857 #define typedef_ODY_GIC_MSIX_VECX_ADDR(a) ody_gic_msix_vecx_addr_t
858 #define bustype_ODY_GIC_MSIX_VECX_ADDR(a) CSR_TYPE_NCB
859 #define basename_ODY_GIC_MSIX_VECX_ADDR(a) "GIC_MSIX_VECX_ADDR"
860 #define device_bar_ODY_GIC_MSIX_VECX_ADDR(a) 0x4 /* PF_BAR4 */
861 #define busnum_ODY_GIC_MSIX_VECX_ADDR(a) (a)
862 #define arguments_ODY_GIC_MSIX_VECX_ADDR(a) (a), -1, -1, -1
863 
864 /**
865  * Register (NCB) gic_msix_vec#_ctl
866  *
867  * GIC MSI-X Vector-Table Control and Data Register
868  * This register is the MSI-X vector table, indexed by the GIC_INT_VEC_E enumeration.
869  */
870 union ody_gic_msix_vecx_ctl {
871 	uint64_t u;
872 	struct ody_gic_msix_vecx_ctl_s {
873 		uint64_t data                        : 32;
874 		uint64_t mask                        : 1;
875 		uint64_t reserved_33_63              : 31;
876 	} s;
877 	/* struct ody_gic_msix_vecx_ctl_s cn; */
878 };
879 typedef union ody_gic_msix_vecx_ctl ody_gic_msix_vecx_ctl_t;
880 
881 static inline uint64_t ODY_GIC_MSIX_VECX_CTL(uint64_t a) __attribute__ ((pure, always_inline));
882 static inline uint64_t ODY_GIC_MSIX_VECX_CTL(uint64_t a)
883 {
884 	if (a <= 82)
885 		return 0x801080000008ll + 0x10ll * ((a) & 0x7f);
886 	__ody_csr_fatal("GIC_MSIX_VECX_CTL", 1, a, 0, 0, 0, 0, 0);
887 }
888 
889 #define typedef_ODY_GIC_MSIX_VECX_CTL(a) ody_gic_msix_vecx_ctl_t
890 #define bustype_ODY_GIC_MSIX_VECX_CTL(a) CSR_TYPE_NCB
891 #define basename_ODY_GIC_MSIX_VECX_CTL(a) "GIC_MSIX_VECX_CTL"
892 #define device_bar_ODY_GIC_MSIX_VECX_CTL(a) 0x4 /* PF_BAR4 */
893 #define busnum_ODY_GIC_MSIX_VECX_CTL(a) (a)
894 #define arguments_ODY_GIC_MSIX_VECX_CTL(a) (a), -1, -1, -1
895 
896 /**
897  * Register (NCB) gic_wake_int_ena_w1c#
898  *
899  * GIC Wake Interrupt Enable Set Register
900  * This register clears interrupt enable bits.
901  */
902 union ody_gic_wake_int_ena_w1cx {
903 	uint64_t u;
904 	struct ody_gic_wake_int_ena_w1cx_s {
905 		uint64_t pe_wake                     : 1;
906 		uint64_t reserved_1_63               : 63;
907 	} s;
908 	/* struct ody_gic_wake_int_ena_w1cx_s cn; */
909 };
910 typedef union ody_gic_wake_int_ena_w1cx ody_gic_wake_int_ena_w1cx_t;
911 
912 static inline uint64_t ODY_GIC_WAKE_INT_ENA_W1CX(uint64_t a) __attribute__ ((pure, always_inline));
913 static inline uint64_t ODY_GIC_WAKE_INT_ENA_W1CX(uint64_t a)
914 {
915 	if (a <= 81)
916 		return 0x801010001018ll + 0x20ll * ((a) & 0x7f);
917 	__ody_csr_fatal("GIC_WAKE_INT_ENA_W1CX", 1, a, 0, 0, 0, 0, 0);
918 }
919 
920 #define typedef_ODY_GIC_WAKE_INT_ENA_W1CX(a) ody_gic_wake_int_ena_w1cx_t
921 #define bustype_ODY_GIC_WAKE_INT_ENA_W1CX(a) CSR_TYPE_NCB
922 #define basename_ODY_GIC_WAKE_INT_ENA_W1CX(a) "GIC_WAKE_INT_ENA_W1CX"
923 #define device_bar_ODY_GIC_WAKE_INT_ENA_W1CX(a) 0x0 /* PF_BAR0 */
924 #define busnum_ODY_GIC_WAKE_INT_ENA_W1CX(a) (a)
925 #define arguments_ODY_GIC_WAKE_INT_ENA_W1CX(a) (a), -1, -1, -1
926 
927 /**
928  * Register (NCB) gic_wake_int_ena_w1s#
929  *
930  * GIC Wake Interrupt Enable Set Register
931  * This register sets interrupt enable bits.
932  */
933 union ody_gic_wake_int_ena_w1sx {
934 	uint64_t u;
935 	struct ody_gic_wake_int_ena_w1sx_s {
936 		uint64_t pe_wake                     : 1;
937 		uint64_t reserved_1_63               : 63;
938 	} s;
939 	/* struct ody_gic_wake_int_ena_w1sx_s cn; */
940 };
941 typedef union ody_gic_wake_int_ena_w1sx ody_gic_wake_int_ena_w1sx_t;
942 
943 static inline uint64_t ODY_GIC_WAKE_INT_ENA_W1SX(uint64_t a) __attribute__ ((pure, always_inline));
944 static inline uint64_t ODY_GIC_WAKE_INT_ENA_W1SX(uint64_t a)
945 {
946 	if (a <= 81)
947 		return 0x801010001010ll + 0x20ll * ((a) & 0x7f);
948 	__ody_csr_fatal("GIC_WAKE_INT_ENA_W1SX", 1, a, 0, 0, 0, 0, 0);
949 }
950 
951 #define typedef_ODY_GIC_WAKE_INT_ENA_W1SX(a) ody_gic_wake_int_ena_w1sx_t
952 #define bustype_ODY_GIC_WAKE_INT_ENA_W1SX(a) CSR_TYPE_NCB
953 #define basename_ODY_GIC_WAKE_INT_ENA_W1SX(a) "GIC_WAKE_INT_ENA_W1SX"
954 #define device_bar_ODY_GIC_WAKE_INT_ENA_W1SX(a) 0x0 /* PF_BAR0 */
955 #define busnum_ODY_GIC_WAKE_INT_ENA_W1SX(a) (a)
956 #define arguments_ODY_GIC_WAKE_INT_ENA_W1SX(a) (a), -1, -1, -1
957 
958 /**
959  * Register (NCB) gic_wake_int_w1c#
960  *
961  * GIC Wake Interrupt Clear Register
962  */
963 union ody_gic_wake_int_w1cx {
964 	uint64_t u;
965 	struct ody_gic_wake_int_w1cx_s {
966 		uint64_t pe_wake                     : 1;
967 		uint64_t reserved_1_63               : 63;
968 	} s;
969 	/* struct ody_gic_wake_int_w1cx_s cn; */
970 };
971 typedef union ody_gic_wake_int_w1cx ody_gic_wake_int_w1cx_t;
972 
973 static inline uint64_t ODY_GIC_WAKE_INT_W1CX(uint64_t a) __attribute__ ((pure, always_inline));
974 static inline uint64_t ODY_GIC_WAKE_INT_W1CX(uint64_t a)
975 {
976 	if (a <= 81)
977 		return 0x801010001000ll + 0x20ll * ((a) & 0x7f);
978 	__ody_csr_fatal("GIC_WAKE_INT_W1CX", 1, a, 0, 0, 0, 0, 0);
979 }
980 
981 #define typedef_ODY_GIC_WAKE_INT_W1CX(a) ody_gic_wake_int_w1cx_t
982 #define bustype_ODY_GIC_WAKE_INT_W1CX(a) CSR_TYPE_NCB
983 #define basename_ODY_GIC_WAKE_INT_W1CX(a) "GIC_WAKE_INT_W1CX"
984 #define device_bar_ODY_GIC_WAKE_INT_W1CX(a) 0x0 /* PF_BAR0 */
985 #define busnum_ODY_GIC_WAKE_INT_W1CX(a) (a)
986 #define arguments_ODY_GIC_WAKE_INT_W1CX(a) (a), -1, -1, -1
987 
988 /**
989  * Register (NCB) gic_wake_int_w1s#
990  *
991  * GIC Wake Interrupt Set Register
992  * This register sets interrupt bits.
993  */
994 union ody_gic_wake_int_w1sx {
995 	uint64_t u;
996 	struct ody_gic_wake_int_w1sx_s {
997 		uint64_t pe_wake                     : 1;
998 		uint64_t reserved_1_63               : 63;
999 	} s;
1000 	/* struct ody_gic_wake_int_w1sx_s cn; */
1001 };
1002 typedef union ody_gic_wake_int_w1sx ody_gic_wake_int_w1sx_t;
1003 
1004 static inline uint64_t ODY_GIC_WAKE_INT_W1SX(uint64_t a) __attribute__ ((pure, always_inline));
1005 static inline uint64_t ODY_GIC_WAKE_INT_W1SX(uint64_t a)
1006 {
1007 	if (a <= 81)
1008 		return 0x801010001008ll + 0x20ll * ((a) & 0x7f);
1009 	__ody_csr_fatal("GIC_WAKE_INT_W1SX", 1, a, 0, 0, 0, 0, 0);
1010 }
1011 
1012 #define typedef_ODY_GIC_WAKE_INT_W1SX(a) ody_gic_wake_int_w1sx_t
1013 #define bustype_ODY_GIC_WAKE_INT_W1SX(a) CSR_TYPE_NCB
1014 #define basename_ODY_GIC_WAKE_INT_W1SX(a) "GIC_WAKE_INT_W1SX"
1015 #define device_bar_ODY_GIC_WAKE_INT_W1SX(a) 0x0 /* PF_BAR0 */
1016 #define busnum_ODY_GIC_WAKE_INT_W1SX(a) (a)
1017 #define arguments_ODY_GIC_WAKE_INT_W1SX(a) (a), -1, -1, -1
1018 
1019 /**
1020  * Register (NCB32b) gica_cidr0
1021  *
1022  * GICA Cidr0 Register
1023  * The GICA_CIDR0 characteristics are:
1024  *
1025  * * Purpose
1026  * This register is one of the Component Identification Registers and returns the first
1027  * part of the Preamble.
1028  *
1029  * * Usage constraints
1030  * There are no usage constraints.
1031  */
1032 union ody_gica_cidr0 {
1033 	uint32_t u;
1034 	struct ody_gica_cidr0_s {
1035 		uint32_t prmbl_0                     : 8;
1036 		uint32_t reserved_8_31               : 24;
1037 	} s;
1038 	/* struct ody_gica_cidr0_s cn; */
1039 };
1040 typedef union ody_gica_cidr0 ody_gica_cidr0_t;
1041 
1042 #define ODY_GICA_CIDR0 ODY_GICA_CIDR0_FUNC()
1043 static inline uint64_t ODY_GICA_CIDR0_FUNC(void) __attribute__ ((pure, always_inline));
1044 static inline uint64_t ODY_GICA_CIDR0_FUNC(void)
1045 {
1046 	return 0x80100001fff0ll;
1047 }
1048 
1049 #define typedef_ODY_GICA_CIDR0 ody_gica_cidr0_t
1050 #define bustype_ODY_GICA_CIDR0 CSR_TYPE_NCB32b
1051 #define basename_ODY_GICA_CIDR0 "GICA_CIDR0"
1052 #define device_bar_ODY_GICA_CIDR0 0x0 /* PF_BAR0 */
1053 #define busnum_ODY_GICA_CIDR0 0
1054 #define arguments_ODY_GICA_CIDR0 -1, -1, -1, -1
1055 
1056 /**
1057  * Register (NCB32b) gica_cidr1
1058  *
1059  * GICA Cidr1 Register
1060  * The GICA_CIDR1 characteristics are:
1061  *
1062  * * Purpose
1063  * This register is one of the Component Identification Registers and returns the
1064  * second part of the Preamble as well as the Component Class.
1065  *
1066  * * Usage constraints
1067  * There are no usage constraints.
1068  */
1069 union ody_gica_cidr1 {
1070 	uint32_t u;
1071 	struct ody_gica_cidr1_s {
1072 		uint32_t prmbl_1                     : 4;
1073 		uint32_t class_f                     : 4;
1074 		uint32_t reserved_8_31               : 24;
1075 	} s;
1076 	/* struct ody_gica_cidr1_s cn; */
1077 };
1078 typedef union ody_gica_cidr1 ody_gica_cidr1_t;
1079 
1080 #define ODY_GICA_CIDR1 ODY_GICA_CIDR1_FUNC()
1081 static inline uint64_t ODY_GICA_CIDR1_FUNC(void) __attribute__ ((pure, always_inline));
1082 static inline uint64_t ODY_GICA_CIDR1_FUNC(void)
1083 {
1084 	return 0x80100001fff4ll;
1085 }
1086 
1087 #define typedef_ODY_GICA_CIDR1 ody_gica_cidr1_t
1088 #define bustype_ODY_GICA_CIDR1 CSR_TYPE_NCB32b
1089 #define basename_ODY_GICA_CIDR1 "GICA_CIDR1"
1090 #define device_bar_ODY_GICA_CIDR1 0x0 /* PF_BAR0 */
1091 #define busnum_ODY_GICA_CIDR1 0
1092 #define arguments_ODY_GICA_CIDR1 -1, -1, -1, -1
1093 
1094 /**
1095  * Register (NCB32b) gica_cidr2
1096  *
1097  * GICA Cidr2 Register
1098  * The GICA_CIDR2 characteristics are:
1099  *
1100  * * Purpose
1101  * This register is one of the Component Identification Registers and returns the third
1102  * part of the Preamble.
1103  *
1104  * * Usage constraints
1105  * There are no usage constraints.
1106  */
1107 union ody_gica_cidr2 {
1108 	uint32_t u;
1109 	struct ody_gica_cidr2_s {
1110 		uint32_t prmbl_2                     : 8;
1111 		uint32_t reserved_8_31               : 24;
1112 	} s;
1113 	/* struct ody_gica_cidr2_s cn; */
1114 };
1115 typedef union ody_gica_cidr2 ody_gica_cidr2_t;
1116 
1117 #define ODY_GICA_CIDR2 ODY_GICA_CIDR2_FUNC()
1118 static inline uint64_t ODY_GICA_CIDR2_FUNC(void) __attribute__ ((pure, always_inline));
1119 static inline uint64_t ODY_GICA_CIDR2_FUNC(void)
1120 {
1121 	return 0x80100001fff8ll;
1122 }
1123 
1124 #define typedef_ODY_GICA_CIDR2 ody_gica_cidr2_t
1125 #define bustype_ODY_GICA_CIDR2 CSR_TYPE_NCB32b
1126 #define basename_ODY_GICA_CIDR2 "GICA_CIDR2"
1127 #define device_bar_ODY_GICA_CIDR2 0x0 /* PF_BAR0 */
1128 #define busnum_ODY_GICA_CIDR2 0
1129 #define arguments_ODY_GICA_CIDR2 -1, -1, -1, -1
1130 
1131 /**
1132  * Register (NCB32b) gica_cidr3
1133  *
1134  * GICA Cidr3 Register
1135  * The GICA_CIDR3 characteristics are:
1136  *
1137  * * Purpose
1138  * This register is one of the Component Identification Registers and returns the
1139  * fourth part of the Preamble.
1140  *
1141  * * Usage constraints
1142  * There are no usage constraints.
1143  */
1144 union ody_gica_cidr3 {
1145 	uint32_t u;
1146 	struct ody_gica_cidr3_s {
1147 		uint32_t prmbl_3                     : 8;
1148 		uint32_t reserved_8_31               : 24;
1149 	} s;
1150 	/* struct ody_gica_cidr3_s cn; */
1151 };
1152 typedef union ody_gica_cidr3 ody_gica_cidr3_t;
1153 
1154 #define ODY_GICA_CIDR3 ODY_GICA_CIDR3_FUNC()
1155 static inline uint64_t ODY_GICA_CIDR3_FUNC(void) __attribute__ ((pure, always_inline));
1156 static inline uint64_t ODY_GICA_CIDR3_FUNC(void)
1157 {
1158 	return 0x80100001fffcll;
1159 }
1160 
1161 #define typedef_ODY_GICA_CIDR3 ody_gica_cidr3_t
1162 #define bustype_ODY_GICA_CIDR3 CSR_TYPE_NCB32b
1163 #define basename_ODY_GICA_CIDR3 "GICA_CIDR3"
1164 #define device_bar_ODY_GICA_CIDR3 0x0 /* PF_BAR0 */
1165 #define busnum_ODY_GICA_CIDR3 0
1166 #define arguments_ODY_GICA_CIDR3 -1, -1, -1, -1
1167 
1168 /**
1169  * Register (NCB32b) gica_clrspi_nsr
1170  *
1171  * GICA Clrspi Nsr Register
1172  * The GICA_CLRSPI_NSR characteristics are:
1173  *
1174  * * Purpose
1175  * Removes the pending state to a valid SPI if permitted by the Security state of the
1176  * access and the GICD(A)_NSACR[E] value for that SPI.
1177  * A write to this register changes the state of an pending SPI to inactive, and the
1178  * state of an active and penmding SPI to active.
1179  *
1180  * * Usage constraints
1181  * The function of this register depends on whether the targeted SPI is configured to
1182  * be an edge-triggered or level-sensitive interrupt:
1183  *
1184  * * For an edge-triggered interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
1185  * the pending state to the targeted interrupt. It will stop being pending on
1186  * activation, or if the pending state is removed by a write to GICx_CLRSPI_NSR,
1187  * GICx_CLRSPI_SR, or GICD(A)_ICPENDR.
1188  * * For a level-sensitive interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
1189  * the pending state to the targeted interrupt. It will remain pending until it is
1190  * deasserted by a write to GICx_CLRSPI_NSR or GICx_CLRSPI_SR. If the interrupt is
1191  * activated between having the pending state added and being deactivated, then the
1192  * interrupt will be active and pending.
1193  *
1194  * Writes to this register have no effect if:
1195  *
1196  * * The value written specifies a Secure SPI, the value is written by a Non-secure
1197  * access, and the value of the corresponding GICD(A)_NSACR register is less than
1198  * 0b10.
1199  * * The value written specifies an invalid SPI.
1200  * * The SPI is not pending.
1201  *
1202  * When GICD(A)_CTLR.DS==1, this register provides functionality for all SPIs.
1203  */
1204 union ody_gica_clrspi_nsr {
1205 	uint32_t u;
1206 	struct ody_gica_clrspi_nsr_s {
1207 		uint32_t id                          : 16;
1208 		uint32_t reserved_16_31              : 16;
1209 	} s;
1210 	/* struct ody_gica_clrspi_nsr_s cn; */
1211 };
1212 typedef union ody_gica_clrspi_nsr ody_gica_clrspi_nsr_t;
1213 
1214 #define ODY_GICA_CLRSPI_NSR ODY_GICA_CLRSPI_NSR_FUNC()
1215 static inline uint64_t ODY_GICA_CLRSPI_NSR_FUNC(void) __attribute__ ((pure, always_inline));
1216 static inline uint64_t ODY_GICA_CLRSPI_NSR_FUNC(void)
1217 {
1218 	return 0x801000010048ll;
1219 }
1220 
1221 #define typedef_ODY_GICA_CLRSPI_NSR ody_gica_clrspi_nsr_t
1222 #define bustype_ODY_GICA_CLRSPI_NSR CSR_TYPE_NCB32b
1223 #define basename_ODY_GICA_CLRSPI_NSR "GICA_CLRSPI_NSR"
1224 #define device_bar_ODY_GICA_CLRSPI_NSR 0x0 /* PF_BAR0 */
1225 #define busnum_ODY_GICA_CLRSPI_NSR 0
1226 #define arguments_ODY_GICA_CLRSPI_NSR -1, -1, -1, -1
1227 
1228 /**
1229  * Register (NCB32b) gica_clrspi_sr
1230  *
1231  * GICA Clrspi Sr Register
1232  * The GICA_CLRSPI_SR characteristics are:
1233  *
1234  * * Purpose
1235  * Removes the pending state from a valid SPI.
1236  * A write to this register changes the state of a pending SPI to inactive, and the
1237  * state of an active and pending SPI to active.
1238  *
1239  * * Usage constraints
1240  * The function of this register depends on whether the targeted SPI is configured to
1241  * be an edge-triggered or level-sensitive interrupt:
1242  *
1243  * * For an edge-triggered interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
1244  * the pending state to the targeted interrupt. It will stop being pending on
1245  * activation, or if the pending state is removed by a write to GICx_CLRSPI_NSR,
1246  * GICx_CLRSPI_SR, or GICD(A)_ICPENDR.
1247  * * For a level-sensitive interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
1248  * the pending state to the targeted interrupt. It will remain pending until it is
1249  * deasserted by a write to GICx_CLRSPI_NSR or GICx_CLRSPI_SR. If the interrupt is
1250  * activated between having the pending state added and being deactivated, then the
1251  * interrupt will be active and pending.
1252  *
1253  * Writes to this register have no effect if:
1254  *
1255  * * The value is written by a Non-secure access.
1256  * * The value written specifies an invalid SPI.
1257  * * The SPI is not pending.
1258  *
1259  * When GICD(A)_CTLR.DS==1, this register is WI.
1260  * When GICD(A)_CTLR.DS==0, only secure-access.
1261  */
1262 union ody_gica_clrspi_sr {
1263 	uint32_t u;
1264 	struct ody_gica_clrspi_sr_s {
1265 		uint32_t id                          : 16;
1266 		uint32_t reserved_16_31              : 16;
1267 	} s;
1268 	/* struct ody_gica_clrspi_sr_s cn; */
1269 };
1270 typedef union ody_gica_clrspi_sr ody_gica_clrspi_sr_t;
1271 
1272 #define ODY_GICA_CLRSPI_SR ODY_GICA_CLRSPI_SR_FUNC()
1273 static inline uint64_t ODY_GICA_CLRSPI_SR_FUNC(void) __attribute__ ((pure, always_inline));
1274 static inline uint64_t ODY_GICA_CLRSPI_SR_FUNC(void)
1275 {
1276 	return 0x801000010058ll;
1277 }
1278 
1279 #define typedef_ODY_GICA_CLRSPI_SR ody_gica_clrspi_sr_t
1280 #define bustype_ODY_GICA_CLRSPI_SR CSR_TYPE_NCB32b
1281 #define basename_ODY_GICA_CLRSPI_SR "GICA_CLRSPI_SR"
1282 #define device_bar_ODY_GICA_CLRSPI_SR 0x0 /* PF_BAR0 */
1283 #define busnum_ODY_GICA_CLRSPI_SR 0
1284 #define arguments_ODY_GICA_CLRSPI_SR -1, -1, -1, -1
1285 
1286 /**
1287  * Register (NCB32b) gica_iidr
1288  *
1289  * GICA Iidr Register
1290  * The GICA_IIDR characteristics are:
1291  *
1292  * * Purpose
1293  * This register provides information about the implementer and revision of the
1294  * message-based Distributor page.
1295  *
1296  * * Usage constraints
1297  * There are no usage constraints.
1298  */
1299 union ody_gica_iidr {
1300 	uint32_t u;
1301 	struct ody_gica_iidr_s {
1302 		uint32_t implementer                 : 12;
1303 		uint32_t revision                    : 4;
1304 		uint32_t variant                     : 4;
1305 		uint32_t reserved_20_23              : 4;
1306 		uint32_t productid                   : 8;
1307 	} s;
1308 	/* struct ody_gica_iidr_s cn; */
1309 };
1310 typedef union ody_gica_iidr ody_gica_iidr_t;
1311 
1312 #define ODY_GICA_IIDR ODY_GICA_IIDR_FUNC()
1313 static inline uint64_t ODY_GICA_IIDR_FUNC(void) __attribute__ ((pure, always_inline));
1314 static inline uint64_t ODY_GICA_IIDR_FUNC(void)
1315 {
1316 	return 0x801000010fccll;
1317 }
1318 
1319 #define typedef_ODY_GICA_IIDR ody_gica_iidr_t
1320 #define bustype_ODY_GICA_IIDR CSR_TYPE_NCB32b
1321 #define basename_ODY_GICA_IIDR "GICA_IIDR"
1322 #define device_bar_ODY_GICA_IIDR 0x0 /* PF_BAR0 */
1323 #define busnum_ODY_GICA_IIDR 0
1324 #define arguments_ODY_GICA_IIDR -1, -1, -1, -1
1325 
1326 /**
1327  * Register (NCB32b) gica_pidr0
1328  *
1329  * GICA Pidr0 Register
1330  * The GICA_PIDR0 characteristics are:
1331  *
1332  * * Purpose
1333  * This register returns byte[0] of the peripheral ID of the message-based Distributor page.
1334  *
1335  * * Usage constraints
1336  * There are no usage constraints.
1337  */
1338 union ody_gica_pidr0 {
1339 	uint32_t u;
1340 	struct ody_gica_pidr0_s {
1341 		uint32_t part_0                      : 8;
1342 		uint32_t reserved_8_31               : 24;
1343 	} s;
1344 	/* struct ody_gica_pidr0_s cn; */
1345 };
1346 typedef union ody_gica_pidr0 ody_gica_pidr0_t;
1347 
1348 #define ODY_GICA_PIDR0 ODY_GICA_PIDR0_FUNC()
1349 static inline uint64_t ODY_GICA_PIDR0_FUNC(void) __attribute__ ((pure, always_inline));
1350 static inline uint64_t ODY_GICA_PIDR0_FUNC(void)
1351 {
1352 	return 0x80100001ffe0ll;
1353 }
1354 
1355 #define typedef_ODY_GICA_PIDR0 ody_gica_pidr0_t
1356 #define bustype_ODY_GICA_PIDR0 CSR_TYPE_NCB32b
1357 #define basename_ODY_GICA_PIDR0 "GICA_PIDR0"
1358 #define device_bar_ODY_GICA_PIDR0 0x0 /* PF_BAR0 */
1359 #define busnum_ODY_GICA_PIDR0 0
1360 #define arguments_ODY_GICA_PIDR0 -1, -1, -1, -1
1361 
1362 /**
1363  * Register (NCB32b) gica_pidr1
1364  *
1365  * GICA Pidr1 Register
1366  * The GICA_PIDR1 characteristics are:
1367  *
1368  * * Purpose
1369  * This register returns byte[1] of the peripheral ID of the message-based Distributor page.
1370  *
1371  * * Usage constraints
1372  * There are no usage constraints.
1373  */
1374 union ody_gica_pidr1 {
1375 	uint32_t u;
1376 	struct ody_gica_pidr1_s {
1377 		uint32_t part_1                      : 4;
1378 		uint32_t des_0                       : 4;
1379 		uint32_t reserved_8_31               : 24;
1380 	} s;
1381 	/* struct ody_gica_pidr1_s cn; */
1382 };
1383 typedef union ody_gica_pidr1 ody_gica_pidr1_t;
1384 
1385 #define ODY_GICA_PIDR1 ODY_GICA_PIDR1_FUNC()
1386 static inline uint64_t ODY_GICA_PIDR1_FUNC(void) __attribute__ ((pure, always_inline));
1387 static inline uint64_t ODY_GICA_PIDR1_FUNC(void)
1388 {
1389 	return 0x80100001ffe4ll;
1390 }
1391 
1392 #define typedef_ODY_GICA_PIDR1 ody_gica_pidr1_t
1393 #define bustype_ODY_GICA_PIDR1 CSR_TYPE_NCB32b
1394 #define basename_ODY_GICA_PIDR1 "GICA_PIDR1"
1395 #define device_bar_ODY_GICA_PIDR1 0x0 /* PF_BAR0 */
1396 #define busnum_ODY_GICA_PIDR1 0
1397 #define arguments_ODY_GICA_PIDR1 -1, -1, -1, -1
1398 
1399 /**
1400  * Register (NCB32b) gica_pidr2
1401  *
1402  * GICA Pidr2 Register
1403  * The GICA_PIDR2 characteristics are:
1404  *
1405  * * Purpose
1406  * This register returns byte[2] of the peripheral ID of the message-based Distributor page.
1407  *
1408  * * Usage constraints
1409  * There are no usage constraints.
1410  */
1411 union ody_gica_pidr2 {
1412 	uint32_t u;
1413 	struct ody_gica_pidr2_s {
1414 		uint32_t des_1                       : 3;
1415 		uint32_t jedec                       : 1;
1416 		uint32_t revision                    : 4;
1417 		uint32_t reserved_8_31               : 24;
1418 	} s;
1419 	/* struct ody_gica_pidr2_s cn; */
1420 };
1421 typedef union ody_gica_pidr2 ody_gica_pidr2_t;
1422 
1423 #define ODY_GICA_PIDR2 ODY_GICA_PIDR2_FUNC()
1424 static inline uint64_t ODY_GICA_PIDR2_FUNC(void) __attribute__ ((pure, always_inline));
1425 static inline uint64_t ODY_GICA_PIDR2_FUNC(void)
1426 {
1427 	return 0x80100001ffe8ll;
1428 }
1429 
1430 #define typedef_ODY_GICA_PIDR2 ody_gica_pidr2_t
1431 #define bustype_ODY_GICA_PIDR2 CSR_TYPE_NCB32b
1432 #define basename_ODY_GICA_PIDR2 "GICA_PIDR2"
1433 #define device_bar_ODY_GICA_PIDR2 0x0 /* PF_BAR0 */
1434 #define busnum_ODY_GICA_PIDR2 0
1435 #define arguments_ODY_GICA_PIDR2 -1, -1, -1, -1
1436 
1437 /**
1438  * Register (NCB32b) gica_pidr3
1439  *
1440  * GICA Pidr3 Register
1441  * The GICA_PIDR3 characteristics are:
1442  *
1443  * * Purpose
1444  * This register returns byte[3] of the peripheral ID of the message-based Distributor page.
1445  *
1446  * * Usage constraints
1447  * There are no usage constraints.
1448  */
1449 union ody_gica_pidr3 {
1450 	uint32_t u;
1451 	struct ody_gica_pidr3_s {
1452 		uint32_t cmod                        : 3;
1453 		uint32_t reserved_3                  : 1;
1454 		uint32_t revand                      : 4;
1455 		uint32_t reserved_8_31               : 24;
1456 	} s;
1457 	/* struct ody_gica_pidr3_s cn; */
1458 };
1459 typedef union ody_gica_pidr3 ody_gica_pidr3_t;
1460 
1461 #define ODY_GICA_PIDR3 ODY_GICA_PIDR3_FUNC()
1462 static inline uint64_t ODY_GICA_PIDR3_FUNC(void) __attribute__ ((pure, always_inline));
1463 static inline uint64_t ODY_GICA_PIDR3_FUNC(void)
1464 {
1465 	return 0x80100001ffecll;
1466 }
1467 
1468 #define typedef_ODY_GICA_PIDR3 ody_gica_pidr3_t
1469 #define bustype_ODY_GICA_PIDR3 CSR_TYPE_NCB32b
1470 #define basename_ODY_GICA_PIDR3 "GICA_PIDR3"
1471 #define device_bar_ODY_GICA_PIDR3 0x0 /* PF_BAR0 */
1472 #define busnum_ODY_GICA_PIDR3 0
1473 #define arguments_ODY_GICA_PIDR3 -1, -1, -1, -1
1474 
1475 /**
1476  * Register (NCB32b) gica_pidr4
1477  *
1478  * GICA Pidr4 Register
1479  * The GICA_PIDR4 characteristics are:
1480  *
1481  * * Purpose
1482  * This register returns byte[4] of the peripheral ID of the message-based Distributor page.
1483  *
1484  * * Usage constraints
1485  * There are no usage constraints.
1486  */
1487 union ody_gica_pidr4 {
1488 	uint32_t u;
1489 	struct ody_gica_pidr4_s {
1490 		uint32_t des_2                       : 4;
1491 		uint32_t size                        : 4;
1492 		uint32_t reserved_8_31               : 24;
1493 	} s;
1494 	/* struct ody_gica_pidr4_s cn; */
1495 };
1496 typedef union ody_gica_pidr4 ody_gica_pidr4_t;
1497 
1498 #define ODY_GICA_PIDR4 ODY_GICA_PIDR4_FUNC()
1499 static inline uint64_t ODY_GICA_PIDR4_FUNC(void) __attribute__ ((pure, always_inline));
1500 static inline uint64_t ODY_GICA_PIDR4_FUNC(void)
1501 {
1502 	return 0x80100001ffd0ll;
1503 }
1504 
1505 #define typedef_ODY_GICA_PIDR4 ody_gica_pidr4_t
1506 #define bustype_ODY_GICA_PIDR4 CSR_TYPE_NCB32b
1507 #define basename_ODY_GICA_PIDR4 "GICA_PIDR4"
1508 #define device_bar_ODY_GICA_PIDR4 0x0 /* PF_BAR0 */
1509 #define busnum_ODY_GICA_PIDR4 0
1510 #define arguments_ODY_GICA_PIDR4 -1, -1, -1, -1
1511 
1512 /**
1513  * Register (NCB32b) gica_pidr5
1514  *
1515  * GICA Pidr5 Register
1516  * The GICA_PIDR5 characteristics are:
1517  *
1518  * * Purpose
1519  * This register returns byte[5] of the peripheral ID of the message-based Distributor page.
1520  *
1521  * * Usage constraints
1522  * There are no usage constraints.
1523  */
1524 union ody_gica_pidr5 {
1525 	uint32_t u;
1526 	struct ody_gica_pidr5_s {
1527 		uint32_t reserved_0_31               : 32;
1528 	} s;
1529 	struct ody_gica_pidr5_cn {
1530 		uint32_t reserved_0_7                : 8;
1531 		uint32_t reserved_8_31               : 24;
1532 	} cn;
1533 };
1534 typedef union ody_gica_pidr5 ody_gica_pidr5_t;
1535 
1536 #define ODY_GICA_PIDR5 ODY_GICA_PIDR5_FUNC()
1537 static inline uint64_t ODY_GICA_PIDR5_FUNC(void) __attribute__ ((pure, always_inline));
1538 static inline uint64_t ODY_GICA_PIDR5_FUNC(void)
1539 {
1540 	return 0x80100001ffd4ll;
1541 }
1542 
1543 #define typedef_ODY_GICA_PIDR5 ody_gica_pidr5_t
1544 #define bustype_ODY_GICA_PIDR5 CSR_TYPE_NCB32b
1545 #define basename_ODY_GICA_PIDR5 "GICA_PIDR5"
1546 #define device_bar_ODY_GICA_PIDR5 0x0 /* PF_BAR0 */
1547 #define busnum_ODY_GICA_PIDR5 0
1548 #define arguments_ODY_GICA_PIDR5 -1, -1, -1, -1
1549 
1550 /**
1551  * Register (NCB32b) gica_pidr6
1552  *
1553  * GICA Pidr6 Register
1554  * The GICA_PIDR6 characteristics are:
1555  *
1556  * * Purpose
1557  * This register returns byte[6] of the peripheral ID of the message-based Distributor page.
1558  *
1559  * * Usage constraints
1560  * There are no usage constraints.
1561  */
1562 union ody_gica_pidr6 {
1563 	uint32_t u;
1564 	struct ody_gica_pidr6_s {
1565 		uint32_t reserved_0_31               : 32;
1566 	} s;
1567 	struct ody_gica_pidr6_cn {
1568 		uint32_t reserved_0_7                : 8;
1569 		uint32_t reserved_8_31               : 24;
1570 	} cn;
1571 };
1572 typedef union ody_gica_pidr6 ody_gica_pidr6_t;
1573 
1574 #define ODY_GICA_PIDR6 ODY_GICA_PIDR6_FUNC()
1575 static inline uint64_t ODY_GICA_PIDR6_FUNC(void) __attribute__ ((pure, always_inline));
1576 static inline uint64_t ODY_GICA_PIDR6_FUNC(void)
1577 {
1578 	return 0x80100001ffd8ll;
1579 }
1580 
1581 #define typedef_ODY_GICA_PIDR6 ody_gica_pidr6_t
1582 #define bustype_ODY_GICA_PIDR6 CSR_TYPE_NCB32b
1583 #define basename_ODY_GICA_PIDR6 "GICA_PIDR6"
1584 #define device_bar_ODY_GICA_PIDR6 0x0 /* PF_BAR0 */
1585 #define busnum_ODY_GICA_PIDR6 0
1586 #define arguments_ODY_GICA_PIDR6 -1, -1, -1, -1
1587 
1588 /**
1589  * Register (NCB32b) gica_pidr7
1590  *
1591  * GICA Pidr7 Register
1592  * The GICA_PIDR7 characteristics are:
1593  *
1594  * * Purpose
1595  * This register returns byte[7] of the peripheral ID of the message-based Distributor page.
1596  *
1597  * * Usage constraints
1598  * There are no usage constraints.
1599  */
1600 union ody_gica_pidr7 {
1601 	uint32_t u;
1602 	struct ody_gica_pidr7_s {
1603 		uint32_t reserved_0_31               : 32;
1604 	} s;
1605 	struct ody_gica_pidr7_cn {
1606 		uint32_t reserved_0_7                : 8;
1607 		uint32_t reserved_8_31               : 24;
1608 	} cn;
1609 };
1610 typedef union ody_gica_pidr7 ody_gica_pidr7_t;
1611 
1612 #define ODY_GICA_PIDR7 ODY_GICA_PIDR7_FUNC()
1613 static inline uint64_t ODY_GICA_PIDR7_FUNC(void) __attribute__ ((pure, always_inline));
1614 static inline uint64_t ODY_GICA_PIDR7_FUNC(void)
1615 {
1616 	return 0x80100001ffdcll;
1617 }
1618 
1619 #define typedef_ODY_GICA_PIDR7 ody_gica_pidr7_t
1620 #define bustype_ODY_GICA_PIDR7 CSR_TYPE_NCB32b
1621 #define basename_ODY_GICA_PIDR7 "GICA_PIDR7"
1622 #define device_bar_ODY_GICA_PIDR7 0x0 /* PF_BAR0 */
1623 #define busnum_ODY_GICA_PIDR7 0
1624 #define arguments_ODY_GICA_PIDR7 -1, -1, -1, -1
1625 
1626 /**
1627  * Register (NCB32b) gica_setspi_nsr
1628  *
1629  * GICA Setspi Nsr Register
1630  * The GICA_SETSPI_NSR characteristics are:
1631  *
1632  * * Purpose
1633  * Adds the pending state to a valid SPI if permitted by the Security state of the
1634  * access and the GICD(A)_NSACR[E] value for that SPI.
1635  * A write to this register changes the state of an inactive SPI to pending, and the
1636  * state of an active SPI to active and pending.
1637  *
1638  * * Usage constraints
1639  * The function of this register depends on whether the targeted SPI is configured to
1640  * be an edge-triggered or level-sensitive interrupt:
1641  *
1642  * * For an edge-triggered interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
1643  * the pending state to the targeted interrupt. It will stop being pending on
1644  * activation, or if the pending state is removed by a write to GICx_CLRSPI_NSR,
1645  * GICx_CLRSPI_SR, or GICD(A)_ICPENDR.
1646  * * For a level-sensitive interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
1647  * the pending state to the targeted interrupt. It will remain pending until it is
1648  * deasserted by a write to GICx_CLRSPI_NSR or GICx_CLRSPI_SR. If the interrupt is
1649  * activated between having the pending state added and being deactivated, then the
1650  * interrupt will be active and pending.
1651  *
1652  * Writes to this register have no effect if:
1653  *
1654  * * The value written specifies a Secure SPI, the value is written by a Non-secure
1655  * access, and the value of the corresponding GICD(A)_NSACR register is 0.
1656  * * The value written specifies an invalid SPI.
1657  * * The SPI is already pending.
1658  *
1659  * When GICD(A)_CTLR.DS==1, this register provides functionality for all SPIs.
1660  */
1661 union ody_gica_setspi_nsr {
1662 	uint32_t u;
1663 	struct ody_gica_setspi_nsr_s {
1664 		uint32_t id                          : 16;
1665 		uint32_t reserved_16_31              : 16;
1666 	} s;
1667 	/* struct ody_gica_setspi_nsr_s cn; */
1668 };
1669 typedef union ody_gica_setspi_nsr ody_gica_setspi_nsr_t;
1670 
1671 #define ODY_GICA_SETSPI_NSR ODY_GICA_SETSPI_NSR_FUNC()
1672 static inline uint64_t ODY_GICA_SETSPI_NSR_FUNC(void) __attribute__ ((pure, always_inline));
1673 static inline uint64_t ODY_GICA_SETSPI_NSR_FUNC(void)
1674 {
1675 	return 0x801000010040ll;
1676 }
1677 
1678 #define typedef_ODY_GICA_SETSPI_NSR ody_gica_setspi_nsr_t
1679 #define bustype_ODY_GICA_SETSPI_NSR CSR_TYPE_NCB32b
1680 #define basename_ODY_GICA_SETSPI_NSR "GICA_SETSPI_NSR"
1681 #define device_bar_ODY_GICA_SETSPI_NSR 0x0 /* PF_BAR0 */
1682 #define busnum_ODY_GICA_SETSPI_NSR 0
1683 #define arguments_ODY_GICA_SETSPI_NSR -1, -1, -1, -1
1684 
1685 /**
1686  * Register (NCB32b) gica_setspi_sr
1687  *
1688  * GICA Setspi Sr Register
1689  * The GICA_SETSPI_SR characteristics are:
1690  *
1691  * * Purpose
1692  * Adds the pending state to a valid SPI.
1693  * A write to this register changes the state of an inactive SPI to pending, and the
1694  * state of an active SPI to active and pending.
1695  *
1696  * * Usage constraints
1697  * The function of this register depends on whether the targeted SPI is configured to
1698  * be an edge-triggered or level-sensitive interrupt:
1699  *
1700  * * For an edge-triggered interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
1701  * the pending state to the targeted interrupt. It will stop being pending on
1702  * activation, or if the pending state is removed by a write to GICx_CLRSPI_NSR,
1703  * GICx_CLRSPI_SR, or GICD(A)_ICPENDR.
1704  * * For a level-sensitive interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
1705  * the pending state to the targeted interrupt. It will remain pending until it is
1706  * deasserted by a write to GICx_CLRSPI_NSR or GICx_CLRSPI_SR. If the interrupt is
1707  * activated between having the pending state added and being deactivated, then the
1708  * interrupt will be active and pending.
1709  *
1710  * Writes to this register have no effect if:
1711  *
1712  * * The value is written by a Non-secure access.
1713  * * The value written specifies an invalid SPI.
1714  * * The SPI is already pending.
1715  *
1716  * When GICD(A)_CTLR.DS==1, this register is WI.
1717  * When GICD(A)_CTLR.DS==0, only secure-access.
1718  */
1719 union ody_gica_setspi_sr {
1720 	uint32_t u;
1721 	struct ody_gica_setspi_sr_s {
1722 		uint32_t id                          : 16;
1723 		uint32_t reserved_16_31              : 16;
1724 	} s;
1725 	/* struct ody_gica_setspi_sr_s cn; */
1726 };
1727 typedef union ody_gica_setspi_sr ody_gica_setspi_sr_t;
1728 
1729 #define ODY_GICA_SETSPI_SR ODY_GICA_SETSPI_SR_FUNC()
1730 static inline uint64_t ODY_GICA_SETSPI_SR_FUNC(void) __attribute__ ((pure, always_inline));
1731 static inline uint64_t ODY_GICA_SETSPI_SR_FUNC(void)
1732 {
1733 	return 0x801000010050ll;
1734 }
1735 
1736 #define typedef_ODY_GICA_SETSPI_SR ody_gica_setspi_sr_t
1737 #define bustype_ODY_GICA_SETSPI_SR CSR_TYPE_NCB32b
1738 #define basename_ODY_GICA_SETSPI_SR "GICA_SETSPI_SR"
1739 #define device_bar_ODY_GICA_SETSPI_SR 0x0 /* PF_BAR0 */
1740 #define busnum_ODY_GICA_SETSPI_SR 0
1741 #define arguments_ODY_GICA_SETSPI_SR -1, -1, -1, -1
1742 
1743 /**
1744  * Register (NCB) gica_typer
1745  *
1746  * GICA Typer Register
1747  * The GICA_TYPER characteristics are:
1748  *
1749  * * Purpose
1750  * This register returns information about the number of SPIs that are assigned to the frame.
1751  *
1752  * * Usage constraints
1753  * There are no usage constraints.
1754  */
1755 union ody_gica_typer {
1756 	uint64_t u;
1757 	struct ody_gica_typer_s {
1758 		uint64_t numspis                     : 11;
1759 		uint64_t reserved_11_15              : 5;
1760 		uint64_t intid                       : 13;
1761 		uint64_t sr                          : 1;
1762 		uint64_t clr                         : 1;
1763 		uint64_t valid                       : 1;
1764 		uint64_t reserved_32_63              : 32;
1765 	} s;
1766 	/* struct ody_gica_typer_s cn; */
1767 };
1768 typedef union ody_gica_typer ody_gica_typer_t;
1769 
1770 #define ODY_GICA_TYPER ODY_GICA_TYPER_FUNC()
1771 static inline uint64_t ODY_GICA_TYPER_FUNC(void) __attribute__ ((pure, always_inline));
1772 static inline uint64_t ODY_GICA_TYPER_FUNC(void)
1773 {
1774 	return 0x801000010008ll;
1775 }
1776 
1777 #define typedef_ODY_GICA_TYPER ody_gica_typer_t
1778 #define bustype_ODY_GICA_TYPER CSR_TYPE_NCB
1779 #define basename_ODY_GICA_TYPER "GICA_TYPER"
1780 #define device_bar_ODY_GICA_TYPER 0x0 /* PF_BAR0 */
1781 #define busnum_ODY_GICA_TYPER 0
1782 #define arguments_ODY_GICA_TYPER -1, -1, -1, -1
1783 
1784 /**
1785  * Register (NCB) gicd_cfgid
1786  *
1787  * GICD Cfgid Register
1788  * The GICD_CFGID characteristics are:
1789  *
1790  * * Purpose
1791  * This register contains information that enables test software to determine if the
1792  * GIC-700 system is compatible.
1793  *
1794  * * Usage constraints
1795  * Some bits are only visible to secure accesses.
1796  */
1797 union ody_gicd_cfgid {
1798 	uint64_t u;
1799 	struct ody_gicd_cfgid_s {
1800 		uint64_t socketonline                : 1;
1801 		uint64_t reserved_1_3                : 3;
1802 		uint64_t socketnumber                : 4;
1803 		uint64_t itscount                    : 4;
1804 		uint64_t lpisupport                  : 1;
1805 		uint64_t v41support                  : 1;
1806 		uint64_t chipaffinitylevel           : 1;
1807 		uint64_t spigroups                   : 6;
1808 		uint64_t localchipaddressing         : 1;
1809 		uint64_t reserved_22_23              : 2;
1810 		uint64_t rdcollapsesupport           : 1;
1811 		uint64_t extendeditssupport          : 1;
1812 		uint64_t reserved_26_27              : 2;
1813 		uint64_t chips                       : 4;
1814 		uint64_t affinity0bits               : 4;
1815 		uint64_t affinity1bits               : 4;
1816 		uint64_t affinity2bits               : 4;
1817 		uint64_t affinity3bits               : 4;
1818 		uint64_t pewidth                     : 5;
1819 		uint64_t reserved_53_63              : 11;
1820 	} s;
1821 	/* struct ody_gicd_cfgid_s cn; */
1822 };
1823 typedef union ody_gicd_cfgid ody_gicd_cfgid_t;
1824 
1825 #define ODY_GICD_CFGID ODY_GICD_CFGID_FUNC()
1826 static inline uint64_t ODY_GICD_CFGID_FUNC(void) __attribute__ ((pure, always_inline));
1827 static inline uint64_t ODY_GICD_CFGID_FUNC(void)
1828 {
1829 	return 0x80100000f000ll;
1830 }
1831 
1832 #define typedef_ODY_GICD_CFGID ody_gicd_cfgid_t
1833 #define bustype_ODY_GICD_CFGID CSR_TYPE_NCB
1834 #define basename_ODY_GICD_CFGID "GICD_CFGID"
1835 #define device_bar_ODY_GICD_CFGID 0x0 /* PF_BAR0 */
1836 #define busnum_ODY_GICD_CFGID 0
1837 #define arguments_ODY_GICD_CFGID -1, -1, -1, -1
1838 
1839 /**
1840  * Register (NCB32b) gicd_cidr0
1841  *
1842  * GICD Cidr0 Register
1843  * The GICD_CIDR0 characteristics are:
1844  *
1845  * * Purpose
1846  * This register is one of the Component Identification Registers and returns the first
1847  * part of the Preamble.
1848  *
1849  * * Usage constraints
1850  * There are no usage constraints.
1851  */
1852 union ody_gicd_cidr0 {
1853 	uint32_t u;
1854 	struct ody_gicd_cidr0_s {
1855 		uint32_t prmbl_0                     : 8;
1856 		uint32_t reserved_8_31               : 24;
1857 	} s;
1858 	/* struct ody_gicd_cidr0_s cn; */
1859 };
1860 typedef union ody_gicd_cidr0 ody_gicd_cidr0_t;
1861 
1862 #define ODY_GICD_CIDR0 ODY_GICD_CIDR0_FUNC()
1863 static inline uint64_t ODY_GICD_CIDR0_FUNC(void) __attribute__ ((pure, always_inline));
1864 static inline uint64_t ODY_GICD_CIDR0_FUNC(void)
1865 {
1866 	return 0x80100000fff0ll;
1867 }
1868 
1869 #define typedef_ODY_GICD_CIDR0 ody_gicd_cidr0_t
1870 #define bustype_ODY_GICD_CIDR0 CSR_TYPE_NCB32b
1871 #define basename_ODY_GICD_CIDR0 "GICD_CIDR0"
1872 #define device_bar_ODY_GICD_CIDR0 0x0 /* PF_BAR0 */
1873 #define busnum_ODY_GICD_CIDR0 0
1874 #define arguments_ODY_GICD_CIDR0 -1, -1, -1, -1
1875 
1876 /**
1877  * Register (NCB32b) gicd_cidr1
1878  *
1879  * GICD Cidr1 Register
1880  * The GICD_CIDR1 characteristics are:
1881  *
1882  * * Purpose
1883  * This register is one of the Component Identification Registers and returns the
1884  * second part of the Preamble as well as the Component Class.
1885  *
1886  * * Usage constraints
1887  * There are no usage constraints.
1888  */
1889 union ody_gicd_cidr1 {
1890 	uint32_t u;
1891 	struct ody_gicd_cidr1_s {
1892 		uint32_t prmbl_1                     : 4;
1893 		uint32_t class_f                     : 4;
1894 		uint32_t reserved_8_31               : 24;
1895 	} s;
1896 	/* struct ody_gicd_cidr1_s cn; */
1897 };
1898 typedef union ody_gicd_cidr1 ody_gicd_cidr1_t;
1899 
1900 #define ODY_GICD_CIDR1 ODY_GICD_CIDR1_FUNC()
1901 static inline uint64_t ODY_GICD_CIDR1_FUNC(void) __attribute__ ((pure, always_inline));
1902 static inline uint64_t ODY_GICD_CIDR1_FUNC(void)
1903 {
1904 	return 0x80100000fff4ll;
1905 }
1906 
1907 #define typedef_ODY_GICD_CIDR1 ody_gicd_cidr1_t
1908 #define bustype_ODY_GICD_CIDR1 CSR_TYPE_NCB32b
1909 #define basename_ODY_GICD_CIDR1 "GICD_CIDR1"
1910 #define device_bar_ODY_GICD_CIDR1 0x0 /* PF_BAR0 */
1911 #define busnum_ODY_GICD_CIDR1 0
1912 #define arguments_ODY_GICD_CIDR1 -1, -1, -1, -1
1913 
1914 /**
1915  * Register (NCB32b) gicd_cidr2
1916  *
1917  * GICD Cidr2 Register
1918  * The GICD_CIDR2 characteristics are:
1919  *
1920  * * Purpose
1921  * This register is one of the Component Identification Registers and returns the third
1922  * part of the Preamble.
1923  *
1924  * * Usage constraints
1925  * There are no usage constraints.
1926  */
1927 union ody_gicd_cidr2 {
1928 	uint32_t u;
1929 	struct ody_gicd_cidr2_s {
1930 		uint32_t prmbl_2                     : 8;
1931 		uint32_t reserved_8_31               : 24;
1932 	} s;
1933 	/* struct ody_gicd_cidr2_s cn; */
1934 };
1935 typedef union ody_gicd_cidr2 ody_gicd_cidr2_t;
1936 
1937 #define ODY_GICD_CIDR2 ODY_GICD_CIDR2_FUNC()
1938 static inline uint64_t ODY_GICD_CIDR2_FUNC(void) __attribute__ ((pure, always_inline));
1939 static inline uint64_t ODY_GICD_CIDR2_FUNC(void)
1940 {
1941 	return 0x80100000fff8ll;
1942 }
1943 
1944 #define typedef_ODY_GICD_CIDR2 ody_gicd_cidr2_t
1945 #define bustype_ODY_GICD_CIDR2 CSR_TYPE_NCB32b
1946 #define basename_ODY_GICD_CIDR2 "GICD_CIDR2"
1947 #define device_bar_ODY_GICD_CIDR2 0x0 /* PF_BAR0 */
1948 #define busnum_ODY_GICD_CIDR2 0
1949 #define arguments_ODY_GICD_CIDR2 -1, -1, -1, -1
1950 
1951 /**
1952  * Register (NCB32b) gicd_cidr3
1953  *
1954  * GICD Cidr3 Register
1955  * The GICD_CIDR3 characteristics are:
1956  *
1957  * * Purpose
1958  * This register is one of the Component Identification Registers and returns the
1959  * fourth part of the Preamble.
1960  *
1961  * * Usage constraints
1962  * There are no usage constraints.
1963  */
1964 union ody_gicd_cidr3 {
1965 	uint32_t u;
1966 	struct ody_gicd_cidr3_s {
1967 		uint32_t prmbl_3                     : 8;
1968 		uint32_t reserved_8_31               : 24;
1969 	} s;
1970 	/* struct ody_gicd_cidr3_s cn; */
1971 };
1972 typedef union ody_gicd_cidr3 ody_gicd_cidr3_t;
1973 
1974 #define ODY_GICD_CIDR3 ODY_GICD_CIDR3_FUNC()
1975 static inline uint64_t ODY_GICD_CIDR3_FUNC(void) __attribute__ ((pure, always_inline));
1976 static inline uint64_t ODY_GICD_CIDR3_FUNC(void)
1977 {
1978 	return 0x80100000fffcll;
1979 }
1980 
1981 #define typedef_ODY_GICD_CIDR3 ody_gicd_cidr3_t
1982 #define bustype_ODY_GICD_CIDR3 CSR_TYPE_NCB32b
1983 #define basename_ODY_GICD_CIDR3 "GICD_CIDR3"
1984 #define device_bar_ODY_GICD_CIDR3 0x0 /* PF_BAR0 */
1985 #define busnum_ODY_GICD_CIDR3 0
1986 #define arguments_ODY_GICD_CIDR3 -1, -1, -1, -1
1987 
1988 /**
1989  * Register (NCB32b) gicd_clrspi_nsr
1990  *
1991  * GICD Clrspi Nsr Register
1992  * The GICD_CLRSPI_NSR characteristics are:
1993  *
1994  * * Purpose
1995  * Removes the pending state to a valid SPI if permitted by the Security state of the
1996  * access and the GICD(A)_NSACR value for that SPI.
1997  * A write to this register changes the state of an pending SPI to inactive, and the
1998  * state of an active and penmding SPI to active.
1999  *
2000  * * Usage constraints
2001  * The function of this register depends on whether the targeted SPI is configured to
2002  * be an edge-triggered or level-sensitive interrupt:
2003  *
2004  * * For an edge-triggered interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
2005  * the pending state to the targeted interrupt. It will stop being pending on
2006  * activation, or if the pending state is removed by a write to GICD(A)_CLRSPI_NSR,
2007  * GICx_CLRSPI_SR, or GICD(A)_ICPENDR.
2008  * * For a level-sensitive interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
2009  * the pending state to the targeted interrupt. It will remain pending until it is
2010  * deasserted by a write to GICD(A)_CLRSPI_NSR or GICx_CLRSPI_SR. If the interrupt is
2011  * activated between having the pending state added and being deactivated, then the
2012  * interrupt will be active and pending.
2013  *
2014  * Writes to this register have no effect if:
2015  *
2016  * * The value written specifies a Secure SPI, the value is written by a Non-secure
2017  * access, and the value of the corresponding GICD(A)_NSACR register is less than 0b10.
2018  * * The value written specifies an invalid SPI.
2019  * * The SPI is not pending.
2020  *
2021  * * Configurations
2022  * When GICD(A)_CTLR.DS==1, this register provides functionality for all SPIs.
2023  */
2024 union ody_gicd_clrspi_nsr {
2025 	uint32_t u;
2026 	struct ody_gicd_clrspi_nsr_s {
2027 		uint32_t id                          : 16;
2028 		uint32_t reserved_16_31              : 16;
2029 	} s;
2030 	/* struct ody_gicd_clrspi_nsr_s cn; */
2031 };
2032 typedef union ody_gicd_clrspi_nsr ody_gicd_clrspi_nsr_t;
2033 
2034 #define ODY_GICD_CLRSPI_NSR ODY_GICD_CLRSPI_NSR_FUNC()
2035 static inline uint64_t ODY_GICD_CLRSPI_NSR_FUNC(void) __attribute__ ((pure, always_inline));
2036 static inline uint64_t ODY_GICD_CLRSPI_NSR_FUNC(void)
2037 {
2038 	return 0x801000000048ll;
2039 }
2040 
2041 #define typedef_ODY_GICD_CLRSPI_NSR ody_gicd_clrspi_nsr_t
2042 #define bustype_ODY_GICD_CLRSPI_NSR CSR_TYPE_NCB32b
2043 #define basename_ODY_GICD_CLRSPI_NSR "GICD_CLRSPI_NSR"
2044 #define device_bar_ODY_GICD_CLRSPI_NSR 0x0 /* PF_BAR0 */
2045 #define busnum_ODY_GICD_CLRSPI_NSR 0
2046 #define arguments_ODY_GICD_CLRSPI_NSR -1, -1, -1, -1
2047 
2048 /**
2049  * Register (NCB32b) gicd_clrspi_sr
2050  *
2051  * GICD Clrspi Sr Register
2052  * The GICD_CLRSPI_SR characteristics are:
2053  *
2054  * * Purpose
2055  * Removes the pending state from a valid SPI.
2056  * A write to this register changes the state of a pending SPI to inactive, and the
2057  * state of an active and pending SPI to active.
2058  *
2059  * * Usage constraints
2060  * The function of this register depends on whether the targeted SPI is configured to
2061  * be an edge-triggered or level-sensitive interrupt:
2062  *
2063  * * For an edge-triggered interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
2064  * the pending state to the targeted interrupt. It will stop being pending on
2065  * activation, or if the pending state is removed by a write to GICD(A)_CLRSPI_NSR,
2066  * GICx_CLRSPI_SR, or GICD(A)_ICPENDR.
2067  * * For a level-sensitive interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
2068  * the pending state to the targeted interrupt. It will remain pending until it is
2069  * deasserted by a write to GICD(A)_CLRSPI_NSR or GICx_CLRSPI_SR. If the interrupt is
2070  * activated between having the pending state added and being deactivated, then the
2071  * interrupt will be active and pending.
2072  *
2073  * Writes to this register have no effect if:
2074  *
2075  * * The value is written by a Non-secure access.
2076  * * The value written specifies an invalid SPI.
2077  * * The SPI is not pending.
2078  *
2079  * * Configurations
2080  * When GICD(A)_CTLR.DS==1, this register is WI.
2081  * When GICD(A)_CTLR.DS==0, only secure-access.
2082  */
2083 union ody_gicd_clrspi_sr {
2084 	uint32_t u;
2085 	struct ody_gicd_clrspi_sr_s {
2086 		uint32_t id                          : 16;
2087 		uint32_t reserved_16_31              : 16;
2088 	} s;
2089 	/* struct ody_gicd_clrspi_sr_s cn; */
2090 };
2091 typedef union ody_gicd_clrspi_sr ody_gicd_clrspi_sr_t;
2092 
2093 #define ODY_GICD_CLRSPI_SR ODY_GICD_CLRSPI_SR_FUNC()
2094 static inline uint64_t ODY_GICD_CLRSPI_SR_FUNC(void) __attribute__ ((pure, always_inline));
2095 static inline uint64_t ODY_GICD_CLRSPI_SR_FUNC(void)
2096 {
2097 	return 0x801000000058ll;
2098 }
2099 
2100 #define typedef_ODY_GICD_CLRSPI_SR ody_gicd_clrspi_sr_t
2101 #define bustype_ODY_GICD_CLRSPI_SR CSR_TYPE_NCB32b
2102 #define basename_ODY_GICD_CLRSPI_SR "GICD_CLRSPI_SR"
2103 #define device_bar_ODY_GICD_CLRSPI_SR 0x0 /* PF_BAR0 */
2104 #define busnum_ODY_GICD_CLRSPI_SR 0
2105 #define arguments_ODY_GICD_CLRSPI_SR -1, -1, -1, -1
2106 
2107 /**
2108  * Register (NCB32b) gicd_ctlr
2109  *
2110  * GICD Ctlr Register
2111  * The GICD_CTLR characteristics are:
2112  *
2113  * * Purpose
2114  * Contains Distributor controls including interrupt group enables
2115  *
2116  * * Usage constraints
2117  * None
2118  *
2119  * * Configurations
2120  * The format of this register depends on the Security state of the access and the
2121  * number of Security states supported, which is specified by GICD(A)_CTLR.DS.
2122  */
2123 union ody_gicd_ctlr {
2124 	uint32_t u;
2125 	struct ody_gicd_ctlr_s {
2126 		uint32_t enablegrp0                  : 1;
2127 		uint32_t enablegrp1_ns               : 1;
2128 		uint32_t enablegrp1_s                : 1;
2129 		uint32_t reserved_3                  : 1;
2130 		uint32_t are_s                       : 1;
2131 		uint32_t are_ns                      : 1;
2132 		uint32_t ds                          : 1;
2133 		uint32_t e1nwf                       : 1;
2134 		uint32_t reserved_8_30               : 23;
2135 		uint32_t rwp                         : 1;
2136 	} s;
2137 	/* struct ody_gicd_ctlr_s cn; */
2138 };
2139 typedef union ody_gicd_ctlr ody_gicd_ctlr_t;
2140 
2141 #define ODY_GICD_CTLR ODY_GICD_CTLR_FUNC()
2142 static inline uint64_t ODY_GICD_CTLR_FUNC(void) __attribute__ ((pure, always_inline));
2143 static inline uint64_t ODY_GICD_CTLR_FUNC(void)
2144 {
2145 	return 0x801000000000ll;
2146 }
2147 
2148 #define typedef_ODY_GICD_CTLR ody_gicd_ctlr_t
2149 #define bustype_ODY_GICD_CTLR CSR_TYPE_NCB32b
2150 #define basename_ODY_GICD_CTLR "GICD_CTLR"
2151 #define device_bar_ODY_GICD_CTLR 0x0 /* PF_BAR0 */
2152 #define busnum_ODY_GICD_CTLR 0
2153 #define arguments_ODY_GICD_CTLR -1, -1, -1, -1
2154 
2155 /**
2156  * Register (NCB) gicd_errinsr#
2157  *
2158  * GICD Errinsr Register
2159  * The GICD_ERRINSR0 characteristics are:
2160  *
2161  * * Purpose
2162  * This register can inject errors into the SGI RAM. You can use this register to test
2163  * your error recovery software.
2164  *
2165  * * Usage constraints
2166  * If GICD(A)_SAC.GICTNS == 0, then only Secure software can access the functions of this register.
2167  *
2168  * \> *Note*
2169  * \> The bit assignments within this register depend on whether a write access or read access occurs.
2170  */
2171 union ody_gicd_errinsrx {
2172 	uint64_t u;
2173 	struct ody_gicd_errinsrx_s {
2174 		uint64_t errins1loc                  : 9;
2175 		uint64_t reserved_9_14               : 6;
2176 		uint64_t errins1valid                : 1;
2177 		uint64_t errins2loc                  : 9;
2178 		uint64_t reserved_25_30              : 6;
2179 		uint64_t errins2valid                : 1;
2180 		uint64_t addr                        : 16;
2181 		uint64_t reserved_48_59              : 12;
2182 		uint64_t disablewritecheck           : 1;
2183 		uint64_t reserved_61_62              : 2;
2184 		uint64_t valid                       : 1;
2185 	} s;
2186 	/* struct ody_gicd_errinsrx_s cn; */
2187 };
2188 typedef union ody_gicd_errinsrx ody_gicd_errinsrx_t;
2189 
2190 static inline uint64_t ODY_GICD_ERRINSRX(uint64_t a) __attribute__ ((pure, always_inline));
2191 static inline uint64_t ODY_GICD_ERRINSRX(uint64_t a)
2192 {
2193 	if (a <= 14)
2194 		return 0x80100000ea00ll + 8ll * ((a) & 0xf);
2195 	__ody_csr_fatal("GICD_ERRINSRX", 1, a, 0, 0, 0, 0, 0);
2196 }
2197 
2198 #define typedef_ODY_GICD_ERRINSRX(a) ody_gicd_errinsrx_t
2199 #define bustype_ODY_GICD_ERRINSRX(a) CSR_TYPE_NCB
2200 #define basename_ODY_GICD_ERRINSRX(a) "GICD_ERRINSRX"
2201 #define device_bar_ODY_GICD_ERRINSRX(a) 0x0 /* PF_BAR0 */
2202 #define busnum_ODY_GICD_ERRINSRX(a) (a)
2203 #define arguments_ODY_GICD_ERRINSRX(a) (a), -1, -1, -1
2204 
2205 /**
2206  * Register (NCB32b) gicd_fctlr
2207  *
2208  * GICD Fctlr Register
2209  * The GICD_FCTLR characteristics are:
2210  *
2211  * * Purpose
2212  * This register controls non-architectural functionality such as the scrubbing of all
2213  * RAMs in the local Distributor.
2214  *
2215  * * Usage constraints
2216  * Some bits are only accessible by Secure accesses.
2217  */
2218 union ody_gicd_fctlr {
2219 	uint32_t u;
2220 	struct ody_gicd_fctlr_s {
2221 		uint32_t sip                         : 1;
2222 		uint32_t reserved_1_15               : 15;
2223 		uint32_t nsacr                       : 2;
2224 		uint32_t reserved_18_19              : 2;
2225 		uint32_t clpl                        : 4;
2226 		uint32_t reserved_24_25              : 2;
2227 		uint32_t pos                         : 1;
2228 		uint32_t reserved_27_31              : 5;
2229 	} s;
2230 	struct ody_gicd_fctlr_cn {
2231 		uint32_t sip                         : 1;
2232 		uint32_t reserved_1                  : 1;
2233 		uint32_t reserved_2                  : 1;
2234 		uint32_t reserved_3                  : 1;
2235 		uint32_t reserved_4_15               : 12;
2236 		uint32_t nsacr                       : 2;
2237 		uint32_t reserved_18                 : 1;
2238 		uint32_t reserved_19                 : 1;
2239 		uint32_t clpl                        : 4;
2240 		uint32_t reserved_24_25              : 2;
2241 		uint32_t pos                         : 1;
2242 		uint32_t reserved_27_31              : 5;
2243 	} cn;
2244 };
2245 typedef union ody_gicd_fctlr ody_gicd_fctlr_t;
2246 
2247 #define ODY_GICD_FCTLR ODY_GICD_FCTLR_FUNC()
2248 static inline uint64_t ODY_GICD_FCTLR_FUNC(void) __attribute__ ((pure, always_inline));
2249 static inline uint64_t ODY_GICD_FCTLR_FUNC(void)
2250 {
2251 	return 0x801000000020ll;
2252 }
2253 
2254 #define typedef_ODY_GICD_FCTLR ody_gicd_fctlr_t
2255 #define bustype_ODY_GICD_FCTLR CSR_TYPE_NCB32b
2256 #define basename_ODY_GICD_FCTLR "GICD_FCTLR"
2257 #define device_bar_ODY_GICD_FCTLR 0x0 /* PF_BAR0 */
2258 #define busnum_ODY_GICD_FCTLR 0
2259 #define arguments_ODY_GICD_FCTLR -1, -1, -1, -1
2260 
2261 /**
2262  * Register (NCB32b) gicd_fctlr2
2263  *
2264  * GICD Fctlr2 Register
2265  * The GICD_FCTLR2 characteristics are:
2266  *
2267  * * Purpose
2268  * This register controls clock gating and other non-architectural controls in the local Distributor.
2269  *
2270  * * Usage constraints
2271  * Only accessible by Secure accesses or when GICD(A)_DS.DS == 1.
2272  */
2273 union ody_gicd_fctlr2 {
2274 	uint32_t u;
2275 	struct ody_gicd_fctlr2_s {
2276 		uint32_t cgo                         : 12;
2277 		uint32_t reserved_12_15              : 4;
2278 		uint32_t rws                         : 1;
2279 		uint32_t dcc                         : 1;
2280 		uint32_t qdeny                       : 1;
2281 		uint32_t rwc                         : 1;
2282 		uint32_t reserved_20_24              : 5;
2283 		uint32_t slc                         : 1;
2284 		uint32_t reserved_26_27              : 2;
2285 		uint32_t rcd                         : 1;
2286 		uint32_t irp                         : 1;
2287 		uint32_t awp                         : 1;
2288 		uint32_t arp                         : 1;
2289 	} s;
2290 	struct ody_gicd_fctlr2_cn {
2291 		uint32_t cgo                         : 12;
2292 		uint32_t reserved_12_14              : 3;
2293 		uint32_t reserved_15                 : 1;
2294 		uint32_t rws                         : 1;
2295 		uint32_t dcc                         : 1;
2296 		uint32_t qdeny                       : 1;
2297 		uint32_t rwc                         : 1;
2298 		uint32_t reserved_20_24              : 5;
2299 		uint32_t slc                         : 1;
2300 		uint32_t reserved_26_27              : 2;
2301 		uint32_t rcd                         : 1;
2302 		uint32_t irp                         : 1;
2303 		uint32_t awp                         : 1;
2304 		uint32_t arp                         : 1;
2305 	} cn;
2306 };
2307 typedef union ody_gicd_fctlr2 ody_gicd_fctlr2_t;
2308 
2309 #define ODY_GICD_FCTLR2 ODY_GICD_FCTLR2_FUNC()
2310 static inline uint64_t ODY_GICD_FCTLR2_FUNC(void) __attribute__ ((pure, always_inline));
2311 static inline uint64_t ODY_GICD_FCTLR2_FUNC(void)
2312 {
2313 	return 0x801000000030ll;
2314 }
2315 
2316 #define typedef_ODY_GICD_FCTLR2 ody_gicd_fctlr2_t
2317 #define bustype_ODY_GICD_FCTLR2 CSR_TYPE_NCB32b
2318 #define basename_ODY_GICD_FCTLR2 "GICD_FCTLR2"
2319 #define device_bar_ODY_GICD_FCTLR2 0x0 /* PF_BAR0 */
2320 #define busnum_ODY_GICD_FCTLR2 0
2321 #define arguments_ODY_GICD_FCTLR2 -1, -1, -1, -1
2322 
2323 /**
2324  * Register (NCB32b) gicd_fctlr3
2325  *
2326  * GICD Fctlr3 Register
2327  * The GICD_FCTLR3 characteristics are:
2328  *
2329  * * Purpose
2330  *
2331  * This register is RES0.
2332  *
2333  * * Usage constraints
2334  * Only accessible by Secure accesses or when GICD(A)_DS.DS == 1.
2335  */
2336 union ody_gicd_fctlr3 {
2337 	uint32_t u;
2338 	struct ody_gicd_fctlr3_s {
2339 		uint32_t ncp0                        : 5;
2340 		uint32_t reserved_5_6                : 2;
2341 		uint32_t scp1                        : 1;
2342 		uint32_t reserved_8_31               : 24;
2343 	} s;
2344 	/* struct ody_gicd_fctlr3_s cn; */
2345 };
2346 typedef union ody_gicd_fctlr3 ody_gicd_fctlr3_t;
2347 
2348 #define ODY_GICD_FCTLR3 ODY_GICD_FCTLR3_FUNC()
2349 static inline uint64_t ODY_GICD_FCTLR3_FUNC(void) __attribute__ ((pure, always_inline));
2350 static inline uint64_t ODY_GICD_FCTLR3_FUNC(void)
2351 {
2352 	return 0x801000000038ll;
2353 }
2354 
2355 #define typedef_ODY_GICD_FCTLR3 ody_gicd_fctlr3_t
2356 #define bustype_ODY_GICD_FCTLR3 CSR_TYPE_NCB32b
2357 #define basename_ODY_GICD_FCTLR3 "GICD_FCTLR3"
2358 #define device_bar_ODY_GICD_FCTLR3 0x0 /* PF_BAR0 */
2359 #define busnum_ODY_GICD_FCTLR3 0
2360 #define arguments_ODY_GICD_FCTLR3 -1, -1, -1, -1
2361 
2362 /**
2363  * Register (NCB32b) gicd_icactiver#
2364  *
2365  * GICD Icactiver Register
2366  * The GICDGICD_ICACTIVER1 characteristics are:
2367  *
2368  * * Purpose
2369  * Deactivates the corresponding interrupt. These registers are used when saving and
2370  * restoring state for interrupts 32 to 63.
2371  *
2372  * * Usage constraints
2373  * For INTID m, when DIV and MOD are the integer division and modulo operations:
2374  *
2375  * * The corresponding GICD(A)_ICACTIVER number, n, is given by n = m DIV 32.
2376  * * The offset of the required ICACTIVER is (0x380 + (4*n)).
2377  * * The bit number of the required group modifier bit in this register is m MOD 32.
2378  *
2379  * If GICD(A)_CTLR.DS==0, unless the GICD(A)_NSACR registers permit Non-secure software
2380  * to control Group 0 and Secure Group 1 interrupts, any bits that correspond to Group
2381  * 0 or Secure Group 1 interrupts are accessible only by Secure accesses and are RAZ/WI
2382  * to Non-secure accesses.
2383  *
2384  * * Configurations
2385  * Accessing registers where n is greater than (GICD(A)_TYPER.ITLinesNumber+1) may
2386  * result in an error being logged. (See GICD_ERR0CTLR for details)
2387  */
2388 union ody_gicd_icactiverx {
2389 	uint32_t u;
2390 	struct ody_gicd_icactiverx_s {
2391 		uint32_t clear_active_bit0           : 1;
2392 		uint32_t clear_active_bit1           : 1;
2393 		uint32_t clear_active_bit2           : 1;
2394 		uint32_t clear_active_bit3           : 1;
2395 		uint32_t clear_active_bit4           : 1;
2396 		uint32_t clear_active_bit5           : 1;
2397 		uint32_t clear_active_bit6           : 1;
2398 		uint32_t clear_active_bit7           : 1;
2399 		uint32_t clear_active_bit8           : 1;
2400 		uint32_t clear_active_bit9           : 1;
2401 		uint32_t clear_active_bit10          : 1;
2402 		uint32_t clear_active_bit11          : 1;
2403 		uint32_t clear_active_bit12          : 1;
2404 		uint32_t clear_active_bit13          : 1;
2405 		uint32_t clear_active_bit14          : 1;
2406 		uint32_t clear_active_bit15          : 1;
2407 		uint32_t clear_active_bit16          : 1;
2408 		uint32_t clear_active_bit17          : 1;
2409 		uint32_t clear_active_bit18          : 1;
2410 		uint32_t clear_active_bit19          : 1;
2411 		uint32_t clear_active_bit20          : 1;
2412 		uint32_t clear_active_bit21          : 1;
2413 		uint32_t clear_active_bit22          : 1;
2414 		uint32_t clear_active_bit23          : 1;
2415 		uint32_t clear_active_bit24          : 1;
2416 		uint32_t clear_active_bit25          : 1;
2417 		uint32_t clear_active_bit26          : 1;
2418 		uint32_t clear_active_bit27          : 1;
2419 		uint32_t clear_active_bit28          : 1;
2420 		uint32_t clear_active_bit29          : 1;
2421 		uint32_t clear_active_bit30          : 1;
2422 		uint32_t clear_active_bit31          : 1;
2423 	} s;
2424 	/* struct ody_gicd_icactiverx_s cn; */
2425 };
2426 typedef union ody_gicd_icactiverx ody_gicd_icactiverx_t;
2427 
2428 static inline uint64_t ODY_GICD_ICACTIVERX(uint64_t a) __attribute__ ((pure, always_inline));
2429 static inline uint64_t ODY_GICD_ICACTIVERX(uint64_t a)
2430 {
2431 	if ((a >= 1) && (a <= 16))
2432 		return 0x801000000380ll + 4ll * ((a) & 0x1f);
2433 	__ody_csr_fatal("GICD_ICACTIVERX", 1, a, 0, 0, 0, 0, 0);
2434 }
2435 
2436 #define typedef_ODY_GICD_ICACTIVERX(a) ody_gicd_icactiverx_t
2437 #define bustype_ODY_GICD_ICACTIVERX(a) CSR_TYPE_NCB32b
2438 #define basename_ODY_GICD_ICACTIVERX(a) "GICD_ICACTIVERX"
2439 #define device_bar_ODY_GICD_ICACTIVERX(a) 0x0 /* PF_BAR0 */
2440 #define busnum_ODY_GICD_ICACTIVERX(a) (a)
2441 #define arguments_ODY_GICD_ICACTIVERX(a) (a), -1, -1, -1
2442 
2443 /**
2444  * Register (NCB32b) gicd_icenabler#
2445  *
2446  * GICD Icenabler Register
2447  * The GICD_ICENABLER1 characteristics are:
2448  *
2449  * * Purpose
2450  * Disables forwarding of the corresponding interrupt to the CPU interfaces for interrupts 32 to 63.
2451  *
2452  * * Usage constraints
2453  * For INTID m, when DIV and MOD are the integer division and modulo operations:
2454  *
2455  * * The corresponding GICD(A)_ICENABLER number, n, is given by n = m DIV 32.
2456  * * The offset of the required ICENABLER is (0x180 + (4*n)).
2457  * * The bit number of the required group modifier bit in this register is m MOD 32.
2458  *
2459  * \> *Note*
2460  * \> Writing a 1 to a GICD(A)_ICENABLER bit only disables the forwarding of the
2461  * corresponding interrupt from the Distributor to any CPU interface. It does not
2462  * prevent the interrupt from changing state, for example becoming pending or active
2463  * and pending if it is already active.
2464  *
2465  * When GICD(A)_CTLR.DS==0, bits corresponding to Group 0 and Secure Group 1 interrupts
2466  * are RAZ/WI to Non-secure accesses.
2467  *
2468  * Completion of a write to this register does not guarantee that the effects of the
2469  * write are visible throughout the affinity hierarchy. To ensure an enable has been
2470  * cleared, software must write to the register with bits set to 1 to clear the
2471  * required enables. Software must then poll GICD(A)_CTLR.RWP until it has the value
2472  * zero.
2473  *
2474  * * Configurations
2475  * Accessing registers where n is greater than (GICD(A)_TYPER.ITLinesNumber+1) may
2476  * result in an error being logged. (See GICD_ERR0CTLR for details)
2477  */
2478 union ody_gicd_icenablerx {
2479 	uint32_t u;
2480 	struct ody_gicd_icenablerx_s {
2481 		uint32_t clear_enable_bit0           : 1;
2482 		uint32_t clear_enable_bit1           : 1;
2483 		uint32_t clear_enable_bit2           : 1;
2484 		uint32_t clear_enable_bit3           : 1;
2485 		uint32_t clear_enable_bit4           : 1;
2486 		uint32_t clear_enable_bit5           : 1;
2487 		uint32_t clear_enable_bit6           : 1;
2488 		uint32_t clear_enable_bit7           : 1;
2489 		uint32_t clear_enable_bit8           : 1;
2490 		uint32_t clear_enable_bit9           : 1;
2491 		uint32_t clear_enable_bit10          : 1;
2492 		uint32_t clear_enable_bit11          : 1;
2493 		uint32_t clear_enable_bit12          : 1;
2494 		uint32_t clear_enable_bit13          : 1;
2495 		uint32_t clear_enable_bit14          : 1;
2496 		uint32_t clear_enable_bit15          : 1;
2497 		uint32_t clear_enable_bit16          : 1;
2498 		uint32_t clear_enable_bit17          : 1;
2499 		uint32_t clear_enable_bit18          : 1;
2500 		uint32_t clear_enable_bit19          : 1;
2501 		uint32_t clear_enable_bit20          : 1;
2502 		uint32_t clear_enable_bit21          : 1;
2503 		uint32_t clear_enable_bit22          : 1;
2504 		uint32_t clear_enable_bit23          : 1;
2505 		uint32_t clear_enable_bit24          : 1;
2506 		uint32_t clear_enable_bit25          : 1;
2507 		uint32_t clear_enable_bit26          : 1;
2508 		uint32_t clear_enable_bit27          : 1;
2509 		uint32_t clear_enable_bit28          : 1;
2510 		uint32_t clear_enable_bit29          : 1;
2511 		uint32_t clear_enable_bit30          : 1;
2512 		uint32_t clear_enable_bit31          : 1;
2513 	} s;
2514 	/* struct ody_gicd_icenablerx_s cn; */
2515 };
2516 typedef union ody_gicd_icenablerx ody_gicd_icenablerx_t;
2517 
2518 static inline uint64_t ODY_GICD_ICENABLERX(uint64_t a) __attribute__ ((pure, always_inline));
2519 static inline uint64_t ODY_GICD_ICENABLERX(uint64_t a)
2520 {
2521 	if ((a >= 1) && (a <= 16))
2522 		return 0x801000000180ll + 4ll * ((a) & 0x1f);
2523 	__ody_csr_fatal("GICD_ICENABLERX", 1, a, 0, 0, 0, 0, 0);
2524 }
2525 
2526 #define typedef_ODY_GICD_ICENABLERX(a) ody_gicd_icenablerx_t
2527 #define bustype_ODY_GICD_ICENABLERX(a) CSR_TYPE_NCB32b
2528 #define basename_ODY_GICD_ICENABLERX(a) "GICD_ICENABLERX"
2529 #define device_bar_ODY_GICD_ICENABLERX(a) 0x0 /* PF_BAR0 */
2530 #define busnum_ODY_GICD_ICENABLERX(a) (a)
2531 #define arguments_ODY_GICD_ICENABLERX(a) (a), -1, -1, -1
2532 
2533 /**
2534  * Register (NCB32b) gicd_icerrr#
2535  *
2536  * GICD Icerrr Register
2537  * The GICD_ICERRR1 characteristics are:
2538  *
2539  * * Purpose
2540  *
2541  * These registers can clear the error status of an SPI or return the error status of
2542  * an SPI for interrupts 16 to 31.
2543  *
2544  * * Usage constraints
2545  * For interrupt ID m, when DIV and MOD are the integer division and modulo operations:
2546  *
2547  * * The corresponding GICD(A)_ICERRR number, n, is given by n = m DIV 16.
2548  * * The offset of the required ICERRR register is (0xE100 + (4*n)).
2549  *
2550  * * Configurations
2551  * Accessing registers where n is greater than 2*(GICD(A)_TYPER.ITLinesNumber+1) may
2552  * result in an error being logged. (See GICD_ERR0CTLR for details)
2553  */
2554 union ody_gicd_icerrrx {
2555 	uint32_t u;
2556 	struct ody_gicd_icerrrx_s {
2557 		uint32_t status0                     : 1;
2558 		uint32_t status1                     : 1;
2559 		uint32_t status2                     : 1;
2560 		uint32_t status3                     : 1;
2561 		uint32_t status4                     : 1;
2562 		uint32_t status5                     : 1;
2563 		uint32_t status6                     : 1;
2564 		uint32_t status7                     : 1;
2565 		uint32_t status8                     : 1;
2566 		uint32_t status9                     : 1;
2567 		uint32_t status10                    : 1;
2568 		uint32_t status11                    : 1;
2569 		uint32_t status12                    : 1;
2570 		uint32_t status13                    : 1;
2571 		uint32_t status14                    : 1;
2572 		uint32_t status15                    : 1;
2573 		uint32_t status16                    : 1;
2574 		uint32_t status17                    : 1;
2575 		uint32_t status18                    : 1;
2576 		uint32_t status19                    : 1;
2577 		uint32_t status20                    : 1;
2578 		uint32_t status21                    : 1;
2579 		uint32_t status22                    : 1;
2580 		uint32_t status23                    : 1;
2581 		uint32_t status24                    : 1;
2582 		uint32_t status25                    : 1;
2583 		uint32_t status26                    : 1;
2584 		uint32_t status27                    : 1;
2585 		uint32_t status28                    : 1;
2586 		uint32_t status29                    : 1;
2587 		uint32_t status30                    : 1;
2588 		uint32_t status31                    : 1;
2589 	} s;
2590 	/* struct ody_gicd_icerrrx_s cn; */
2591 };
2592 typedef union ody_gicd_icerrrx ody_gicd_icerrrx_t;
2593 
2594 static inline uint64_t ODY_GICD_ICERRRX(uint64_t a) __attribute__ ((pure, always_inline));
2595 static inline uint64_t ODY_GICD_ICERRRX(uint64_t a)
2596 {
2597 	if ((a >= 1) && (a <= 16))
2598 		return 0x80100000e100ll + 4ll * ((a) & 0x1f);
2599 	__ody_csr_fatal("GICD_ICERRRX", 1, a, 0, 0, 0, 0, 0);
2600 }
2601 
2602 #define typedef_ODY_GICD_ICERRRX(a) ody_gicd_icerrrx_t
2603 #define bustype_ODY_GICD_ICERRRX(a) CSR_TYPE_NCB32b
2604 #define basename_ODY_GICD_ICERRRX(a) "GICD_ICERRRX"
2605 #define device_bar_ODY_GICD_ICERRRX(a) 0x0 /* PF_BAR0 */
2606 #define busnum_ODY_GICD_ICERRRX(a) (a)
2607 #define arguments_ODY_GICD_ICERRRX(a) (a), -1, -1, -1
2608 
2609 /**
2610  * Register (NCB32b) gicd_icfgr#
2611  *
2612  * GICD Icfgr Register
2613  * The GICD_ICFGR2 characteristics are:
2614  *
2615  * * Purpose
2616  * Determines whether the corresponding interrupt is edge-triggered or level-sensitive
2617  * for interrupts 32 to 47.
2618  *
2619  * * Usage constraints
2620  * For INTID m, when DIV and MOD are the integer division and modulo operations:
2621  *
2622  * * The corresponding GICD(A)_ICFGR number, n, is given by n = m DIV 16.
2623  * * The offset of the required ICFGR is (0xC00 + (4*n)).
2624  * * The bit number of the required group modifier bit in this register is m MOD 32.
2625  *
2626  * Possible values for each interrupt are
2627  *
2628  * * 0b00 - Corresponding interrupt is level-sensitive.
2629  * * 0b10 - Corresponding interrupt is edge-triggered.
2630  *
2631  * The GIC will not update the Int_config2 bit if the corresponding interrupt is
2632  * enabled via GICD(A)_ISENABLER2
2633  *
2634  * * Configurations
2635  * Accessing registers where n is greater than 2*(GICD(A)_TYPER.ITLinesNumber+1) may
2636  * result in an error being logged. (See GICD_ERR0CTLR for details)
2637  */
2638 union ody_gicd_icfgrx {
2639 	uint32_t u;
2640 	struct ody_gicd_icfgrx_s {
2641 		uint32_t int_config0                 : 2;
2642 		uint32_t int_config1                 : 2;
2643 		uint32_t int_config2                 : 2;
2644 		uint32_t int_config3                 : 2;
2645 		uint32_t int_config4                 : 2;
2646 		uint32_t int_config5                 : 2;
2647 		uint32_t int_config6                 : 2;
2648 		uint32_t int_config7                 : 2;
2649 		uint32_t int_config8                 : 2;
2650 		uint32_t int_config9                 : 2;
2651 		uint32_t int_config10                : 2;
2652 		uint32_t int_config11                : 2;
2653 		uint32_t int_config12                : 2;
2654 		uint32_t int_config13                : 2;
2655 		uint32_t int_config14                : 2;
2656 		uint32_t int_config15                : 2;
2657 	} s;
2658 	/* struct ody_gicd_icfgrx_s cn; */
2659 };
2660 typedef union ody_gicd_icfgrx ody_gicd_icfgrx_t;
2661 
2662 static inline uint64_t ODY_GICD_ICFGRX(uint64_t a) __attribute__ ((pure, always_inline));
2663 static inline uint64_t ODY_GICD_ICFGRX(uint64_t a)
2664 {
2665 	if ((a >= 2) && (a <= 33))
2666 		return 0x801000000c00ll + 4ll * ((a) & 0x3f);
2667 	__ody_csr_fatal("GICD_ICFGRX", 1, a, 0, 0, 0, 0, 0);
2668 }
2669 
2670 #define typedef_ODY_GICD_ICFGRX(a) ody_gicd_icfgrx_t
2671 #define bustype_ODY_GICD_ICFGRX(a) CSR_TYPE_NCB32b
2672 #define basename_ODY_GICD_ICFGRX(a) "GICD_ICFGRX"
2673 #define device_bar_ODY_GICD_ICFGRX(a) 0x0 /* PF_BAR0 */
2674 #define busnum_ODY_GICD_ICFGRX(a) (a)
2675 #define arguments_ODY_GICD_ICFGRX(a) (a), -1, -1, -1
2676 
2677 /**
2678  * Register (NCB32b) gicd_icgerrr#
2679  *
2680  * GICD Icgerrr Register
2681  * The GICD_ICGERRR1 characteristics are:
2682  *
2683  * * Purpose
2684  *
2685  * These registers can clear the error status of the GICD(A)_IGROUPRn,
2686  * GICD(A)_IGRPMODRn, and GICD(A)_NSACRn registers of an SPI or return the error status
2687  * of an SPI.
2688  * Applies to interrupts 16 to 31.
2689  *
2690  * * Usage constraints
2691  * This register is Secure access only.
2692  *
2693  * For interrupt ID m, when DIV and MOD are the integer division and modulo operations:
2694  *
2695  * * The corresponding GICD(A)_ICGERRR number, n, is given by n = m DIV 16.
2696  * * The offset of the required ICGERRR register is (0xE180 + (4*n)).
2697  *
2698  * * Configurations
2699  * Accessing registers where n is greater than 2*(GICD(A)_TYPER.ITLinesNumber+1) may
2700  * result in an error being logged. (See GICD_ERR0CTLR for details)
2701  */
2702 union ody_gicd_icgerrrx {
2703 	uint32_t u;
2704 	struct ody_gicd_icgerrrx_s {
2705 		uint32_t status0                     : 1;
2706 		uint32_t status1                     : 1;
2707 		uint32_t status2                     : 1;
2708 		uint32_t status3                     : 1;
2709 		uint32_t status4                     : 1;
2710 		uint32_t status5                     : 1;
2711 		uint32_t status6                     : 1;
2712 		uint32_t status7                     : 1;
2713 		uint32_t status8                     : 1;
2714 		uint32_t status9                     : 1;
2715 		uint32_t status10                    : 1;
2716 		uint32_t status11                    : 1;
2717 		uint32_t status12                    : 1;
2718 		uint32_t status13                    : 1;
2719 		uint32_t status14                    : 1;
2720 		uint32_t status15                    : 1;
2721 		uint32_t status16                    : 1;
2722 		uint32_t status17                    : 1;
2723 		uint32_t status18                    : 1;
2724 		uint32_t status19                    : 1;
2725 		uint32_t status20                    : 1;
2726 		uint32_t status21                    : 1;
2727 		uint32_t status22                    : 1;
2728 		uint32_t status23                    : 1;
2729 		uint32_t status24                    : 1;
2730 		uint32_t status25                    : 1;
2731 		uint32_t status26                    : 1;
2732 		uint32_t status27                    : 1;
2733 		uint32_t status28                    : 1;
2734 		uint32_t status29                    : 1;
2735 		uint32_t status30                    : 1;
2736 		uint32_t status31                    : 1;
2737 	} s;
2738 	/* struct ody_gicd_icgerrrx_s cn; */
2739 };
2740 typedef union ody_gicd_icgerrrx ody_gicd_icgerrrx_t;
2741 
2742 static inline uint64_t ODY_GICD_ICGERRRX(uint64_t a) __attribute__ ((pure, always_inline));
2743 static inline uint64_t ODY_GICD_ICGERRRX(uint64_t a)
2744 {
2745 	if ((a >= 1) && (a <= 16))
2746 		return 0x80100000e180ll + 4ll * ((a) & 0x1f);
2747 	__ody_csr_fatal("GICD_ICGERRRX", 1, a, 0, 0, 0, 0, 0);
2748 }
2749 
2750 #define typedef_ODY_GICD_ICGERRRX(a) ody_gicd_icgerrrx_t
2751 #define bustype_ODY_GICD_ICGERRRX(a) CSR_TYPE_NCB32b
2752 #define basename_ODY_GICD_ICGERRRX(a) "GICD_ICGERRRX"
2753 #define device_bar_ODY_GICD_ICGERRRX(a) 0x0 /* PF_BAR0 */
2754 #define busnum_ODY_GICD_ICGERRRX(a) (a)
2755 #define arguments_ODY_GICD_ICGERRRX(a) (a), -1, -1, -1
2756 
2757 /**
2758  * Register (NCB32b) gicd_iclar#
2759  *
2760  * GICD Iclar Register
2761  * The GICD_ICLAR2 characteristics are:
2762  *
2763  * * Purpose
2764  * These registers control whether a 1 of N SPI can target a core that is assigned to
2765  * class 0 or class 1 group for interrupts 32 to 47.
2766  *
2767  * * Usage constraints
2768  * For interrupt ID m, when DIV and MOD are the integer division and modulo operations:
2769  *
2770  * * The corresponding GICD(A)_ICLAR number, n, is given by n = m DIV 16.
2771  * * The offset of the required ICLAR register is (0xE000 + (4*n)).
2772  *
2773  * These registers are only accessible when the corresponding
2774  * GICD(A)_IROUTERn.Interrupt_Routing_Mode == 1.
2775  *
2776  * * Configurations
2777  * Accessing registers where n is greater than 2*(GICD(A)_TYPER.ITLinesNumber+1) may
2778  * result in an error being logged. (See GICD_ERR0CTLR for details)
2779  */
2780 union ody_gicd_iclarx {
2781 	uint32_t u;
2782 	struct ody_gicd_iclarx_s {
2783 		uint32_t classes0                    : 2;
2784 		uint32_t classes1                    : 2;
2785 		uint32_t classes2                    : 2;
2786 		uint32_t classes3                    : 2;
2787 		uint32_t classes4                    : 2;
2788 		uint32_t classes5                    : 2;
2789 		uint32_t classes6                    : 2;
2790 		uint32_t classes7                    : 2;
2791 		uint32_t classes8                    : 2;
2792 		uint32_t classes9                    : 2;
2793 		uint32_t classes10                   : 2;
2794 		uint32_t classes11                   : 2;
2795 		uint32_t classes12                   : 2;
2796 		uint32_t classes13                   : 2;
2797 		uint32_t classes14                   : 2;
2798 		uint32_t classes15                   : 2;
2799 	} s;
2800 	/* struct ody_gicd_iclarx_s cn; */
2801 };
2802 typedef union ody_gicd_iclarx ody_gicd_iclarx_t;
2803 
2804 static inline uint64_t ODY_GICD_ICLARX(uint64_t a) __attribute__ ((pure, always_inline));
2805 static inline uint64_t ODY_GICD_ICLARX(uint64_t a)
2806 {
2807 	if ((a >= 2) && (a <= 33))
2808 		return 0x80100000e000ll + 4ll * ((a) & 0x3f);
2809 	__ody_csr_fatal("GICD_ICLARX", 1, a, 0, 0, 0, 0, 0);
2810 }
2811 
2812 #define typedef_ODY_GICD_ICLARX(a) ody_gicd_iclarx_t
2813 #define bustype_ODY_GICD_ICLARX(a) CSR_TYPE_NCB32b
2814 #define basename_ODY_GICD_ICLARX(a) "GICD_ICLARX"
2815 #define device_bar_ODY_GICD_ICLARX(a) 0x0 /* PF_BAR0 */
2816 #define busnum_ODY_GICD_ICLARX(a) (a)
2817 #define arguments_ODY_GICD_ICLARX(a) (a), -1, -1, -1
2818 
2819 /**
2820  * Register (NCB32b) gicd_icpendr#
2821  *
2822  * GICD Icpendr Register
2823  * The GICD_ICPENDR1 characteristics are:
2824  *
2825  * * Purpose
2826  * Removes the pending state from the corresponding interrupt for interrupts 32 to 63.
2827  *
2828  * * Usage constraints
2829  * For INTID m, when DIV and MOD are the integer division and modulo operations:
2830  *
2831  * * The corresponding GICD(A)_ICPENDR number, n, is given by n = m DIV 32.
2832  * * The offset of the required ICPENDR is (0x280 + (4*n)).
2833  * * The bit number of the required group modifier bit in this register is m MOD 32.
2834  *
2835  * If GICD(A)_CTLR.DS==0, unless the GICD(A)_NSACR registers permit Non-secure software
2836  * to control Group 0 and Secure Group 1 interrupts, any bits that correspond to Group
2837  * 0 or Secure Group 1 interrupts are accessible only by Secure accesses and are RAZ/WI
2838  * to Non-secure accesses.
2839  *
2840  * * Configurations
2841  * Accessing registers where n is greater than (GICD(A)_TYPER.ITLinesNumber+1) may
2842  * result in an error being logged. (See GICD_ERR0CTLR for details)
2843  */
2844 union ody_gicd_icpendrx {
2845 	uint32_t u;
2846 	struct ody_gicd_icpendrx_s {
2847 		uint32_t clear_pending_bit0          : 1;
2848 		uint32_t clear_pending_bit1          : 1;
2849 		uint32_t clear_pending_bit2          : 1;
2850 		uint32_t clear_pending_bit3          : 1;
2851 		uint32_t clear_pending_bit4          : 1;
2852 		uint32_t clear_pending_bit5          : 1;
2853 		uint32_t clear_pending_bit6          : 1;
2854 		uint32_t clear_pending_bit7          : 1;
2855 		uint32_t clear_pending_bit8          : 1;
2856 		uint32_t clear_pending_bit9          : 1;
2857 		uint32_t clear_pending_bit10         : 1;
2858 		uint32_t clear_pending_bit11         : 1;
2859 		uint32_t clear_pending_bit12         : 1;
2860 		uint32_t clear_pending_bit13         : 1;
2861 		uint32_t clear_pending_bit14         : 1;
2862 		uint32_t clear_pending_bit15         : 1;
2863 		uint32_t clear_pending_bit16         : 1;
2864 		uint32_t clear_pending_bit17         : 1;
2865 		uint32_t clear_pending_bit18         : 1;
2866 		uint32_t clear_pending_bit19         : 1;
2867 		uint32_t clear_pending_bit20         : 1;
2868 		uint32_t clear_pending_bit21         : 1;
2869 		uint32_t clear_pending_bit22         : 1;
2870 		uint32_t clear_pending_bit23         : 1;
2871 		uint32_t clear_pending_bit24         : 1;
2872 		uint32_t clear_pending_bit25         : 1;
2873 		uint32_t clear_pending_bit26         : 1;
2874 		uint32_t clear_pending_bit27         : 1;
2875 		uint32_t clear_pending_bit28         : 1;
2876 		uint32_t clear_pending_bit29         : 1;
2877 		uint32_t clear_pending_bit30         : 1;
2878 		uint32_t clear_pending_bit31         : 1;
2879 	} s;
2880 	/* struct ody_gicd_icpendrx_s cn; */
2881 };
2882 typedef union ody_gicd_icpendrx ody_gicd_icpendrx_t;
2883 
2884 static inline uint64_t ODY_GICD_ICPENDRX(uint64_t a) __attribute__ ((pure, always_inline));
2885 static inline uint64_t ODY_GICD_ICPENDRX(uint64_t a)
2886 {
2887 	if ((a >= 1) && (a <= 16))
2888 		return 0x801000000280ll + 4ll * ((a) & 0x1f);
2889 	__ody_csr_fatal("GICD_ICPENDRX", 1, a, 0, 0, 0, 0, 0);
2890 }
2891 
2892 #define typedef_ODY_GICD_ICPENDRX(a) ody_gicd_icpendrx_t
2893 #define bustype_ODY_GICD_ICPENDRX(a) CSR_TYPE_NCB32b
2894 #define basename_ODY_GICD_ICPENDRX(a) "GICD_ICPENDRX"
2895 #define device_bar_ODY_GICD_ICPENDRX(a) 0x0 /* PF_BAR0 */
2896 #define busnum_ODY_GICD_ICPENDRX(a) (a)
2897 #define arguments_ODY_GICD_ICPENDRX(a) (a), -1, -1, -1
2898 
2899 /**
2900  * Register (NCB32b) gicd_igroupr#
2901  *
2902  * GICD Igroupr Register
2903  * The GICD_IGROUPR1 characteristics are:
2904  *
2905  * * Purpose
2906  * Controls whether the corresponding interrupt is in Group 0 or Group 1 for interrupts 32 to 63.
2907  *
2908  * * Usage constraints
2909  * When GICD(A)_CTLR.DS==0, the register is RAZ/WI to Non-secure accesses.
2910  *
2911  * For INTID m, when DIV and MOD are the integer division and modulo operations:
2912  *
2913  * * The corresponding GICD(A)_IGROUP number, n, is given by n = m DIV 32.
2914  * * The offset of the required IGROUP register is (0x080 + (4*n)).
2915  * * The bit number of the required group modifier bit in this register is m MOD 32.
2916  *
2917  * * Configurations
2918  * Accessing registers where n is greater than (GICD(A)_TYPER.ITLinesNumber+1) may
2919  * result in an error being logged. (See GICD_ERR0CTLR for details)
2920  */
2921 union ody_gicd_igrouprx {
2922 	uint32_t u;
2923 	struct ody_gicd_igrouprx_s {
2924 		uint32_t group_status_bit0           : 1;
2925 		uint32_t group_status_bit1           : 1;
2926 		uint32_t group_status_bit2           : 1;
2927 		uint32_t group_status_bit3           : 1;
2928 		uint32_t group_status_bit4           : 1;
2929 		uint32_t group_status_bit5           : 1;
2930 		uint32_t group_status_bit6           : 1;
2931 		uint32_t group_status_bit7           : 1;
2932 		uint32_t group_status_bit8           : 1;
2933 		uint32_t group_status_bit9           : 1;
2934 		uint32_t group_status_bit10          : 1;
2935 		uint32_t group_status_bit11          : 1;
2936 		uint32_t group_status_bit12          : 1;
2937 		uint32_t group_status_bit13          : 1;
2938 		uint32_t group_status_bit14          : 1;
2939 		uint32_t group_status_bit15          : 1;
2940 		uint32_t group_status_bit16          : 1;
2941 		uint32_t group_status_bit17          : 1;
2942 		uint32_t group_status_bit18          : 1;
2943 		uint32_t group_status_bit19          : 1;
2944 		uint32_t group_status_bit20          : 1;
2945 		uint32_t group_status_bit21          : 1;
2946 		uint32_t group_status_bit22          : 1;
2947 		uint32_t group_status_bit23          : 1;
2948 		uint32_t group_status_bit24          : 1;
2949 		uint32_t group_status_bit25          : 1;
2950 		uint32_t group_status_bit26          : 1;
2951 		uint32_t group_status_bit27          : 1;
2952 		uint32_t group_status_bit28          : 1;
2953 		uint32_t group_status_bit29          : 1;
2954 		uint32_t group_status_bit30          : 1;
2955 		uint32_t group_status_bit31          : 1;
2956 	} s;
2957 	/* struct ody_gicd_igrouprx_s cn; */
2958 };
2959 typedef union ody_gicd_igrouprx ody_gicd_igrouprx_t;
2960 
2961 static inline uint64_t ODY_GICD_IGROUPRX(uint64_t a) __attribute__ ((pure, always_inline));
2962 static inline uint64_t ODY_GICD_IGROUPRX(uint64_t a)
2963 {
2964 	if ((a >= 1) && (a <= 16))
2965 		return 0x801000000080ll + 4ll * ((a) & 0x1f);
2966 	__ody_csr_fatal("GICD_IGROUPRX", 1, a, 0, 0, 0, 0, 0);
2967 }
2968 
2969 #define typedef_ODY_GICD_IGROUPRX(a) ody_gicd_igrouprx_t
2970 #define bustype_ODY_GICD_IGROUPRX(a) CSR_TYPE_NCB32b
2971 #define basename_ODY_GICD_IGROUPRX(a) "GICD_IGROUPRX"
2972 #define device_bar_ODY_GICD_IGROUPRX(a) 0x0 /* PF_BAR0 */
2973 #define busnum_ODY_GICD_IGROUPRX(a) (a)
2974 #define arguments_ODY_GICD_IGROUPRX(a) (a), -1, -1, -1
2975 
2976 /**
2977  * Register (NCB32b) gicd_igrpmodr#
2978  *
2979  * GICD Igrpmodr Register
2980  * The GICD_IGRPMODR1 characteristics are:
2981  *
2982  * * Purpose
2983  * When GICD(A)_CTLR.DS==0, this register together with the GICD(A)_IGROUPR1 register,
2984  * controls whether the corresponding interrupt is in:
2985  *
2986  * * Secure Group 0.
2987  * * Non-secure Group 1.
2988  * * Secure Group 1.
2989  *
2990  * Applies to interrupts 32 to 63
2991  *
2992  * * Usage constraints
2993  * For INTID m, when DIV and MOD are the integer division and modulo operations:
2994  *
2995  * * The corresponding GICD(A)_IGRPMODR number, n, is given by n = m DIV 32.
2996  * * The offset of the required IGRPMODR is (0xD00 + (4*n)).
2997  * * The bit number of the required group modifier bit in this register is m MOD 32.
2998  *
2999  * When GICD(A)_CTLR.DS==0, the register is RAZ/WI to Non-secure accesses.
3000  * When GICD(A)_CTLR.DS==1, the GICD(A)_IGRPMODR registers are RAZ/WI.
3001  *
3002  * * Configurations
3003  * Accessing registers where n is greater than (GICD(A)_TYPER.ITLinesNumber+1) may
3004  * result in an error being logged. (See GICD_ERR0CTLR for details)
3005  */
3006 union ody_gicd_igrpmodrx {
3007 	uint32_t u;
3008 	struct ody_gicd_igrpmodrx_s {
3009 		uint32_t group_modifier_bit0         : 1;
3010 		uint32_t group_modifier_bit1         : 1;
3011 		uint32_t group_modifier_bit2         : 1;
3012 		uint32_t group_modifier_bit3         : 1;
3013 		uint32_t group_modifier_bit4         : 1;
3014 		uint32_t group_modifier_bit5         : 1;
3015 		uint32_t group_modifier_bit6         : 1;
3016 		uint32_t group_modifier_bit7         : 1;
3017 		uint32_t group_modifier_bit8         : 1;
3018 		uint32_t group_modifier_bit9         : 1;
3019 		uint32_t group_modifier_bit10        : 1;
3020 		uint32_t group_modifier_bit11        : 1;
3021 		uint32_t group_modifier_bit12        : 1;
3022 		uint32_t group_modifier_bit13        : 1;
3023 		uint32_t group_modifier_bit14        : 1;
3024 		uint32_t group_modifier_bit15        : 1;
3025 		uint32_t group_modifier_bit16        : 1;
3026 		uint32_t group_modifier_bit17        : 1;
3027 		uint32_t group_modifier_bit18        : 1;
3028 		uint32_t group_modifier_bit19        : 1;
3029 		uint32_t group_modifier_bit20        : 1;
3030 		uint32_t group_modifier_bit21        : 1;
3031 		uint32_t group_modifier_bit22        : 1;
3032 		uint32_t group_modifier_bit23        : 1;
3033 		uint32_t group_modifier_bit24        : 1;
3034 		uint32_t group_modifier_bit25        : 1;
3035 		uint32_t group_modifier_bit26        : 1;
3036 		uint32_t group_modifier_bit27        : 1;
3037 		uint32_t group_modifier_bit28        : 1;
3038 		uint32_t group_modifier_bit29        : 1;
3039 		uint32_t group_modifier_bit30        : 1;
3040 		uint32_t group_modifier_bit31        : 1;
3041 	} s;
3042 	/* struct ody_gicd_igrpmodrx_s cn; */
3043 };
3044 typedef union ody_gicd_igrpmodrx ody_gicd_igrpmodrx_t;
3045 
3046 static inline uint64_t ODY_GICD_IGRPMODRX(uint64_t a) __attribute__ ((pure, always_inline));
3047 static inline uint64_t ODY_GICD_IGRPMODRX(uint64_t a)
3048 {
3049 	if ((a >= 1) && (a <= 16))
3050 		return 0x801000000d00ll + 4ll * ((a) & 0x1f);
3051 	__ody_csr_fatal("GICD_IGRPMODRX", 1, a, 0, 0, 0, 0, 0);
3052 }
3053 
3054 #define typedef_ODY_GICD_IGRPMODRX(a) ody_gicd_igrpmodrx_t
3055 #define bustype_ODY_GICD_IGRPMODRX(a) CSR_TYPE_NCB32b
3056 #define basename_ODY_GICD_IGRPMODRX(a) "GICD_IGRPMODRX"
3057 #define device_bar_ODY_GICD_IGRPMODRX(a) 0x0 /* PF_BAR0 */
3058 #define busnum_ODY_GICD_IGRPMODRX(a) (a)
3059 #define arguments_ODY_GICD_IGRPMODRX(a) (a), -1, -1, -1
3060 
3061 /**
3062  * Register (NCB32b) gicd_iidr
3063  *
3064  * GICD Iidr Register
3065  * The GICD_IIDR characteristics are:
3066  *
3067  * * Purpose
3068  * Provides information about the implementer and revision of the Distributor
3069  *
3070  * * Usage constraints
3071  * There are no usage constraints.
3072  *
3073  * * Configurations
3074  * This register is available in all configurations of the GIC.
3075  */
3076 union ody_gicd_iidr {
3077 	uint32_t u;
3078 	struct ody_gicd_iidr_s {
3079 		uint32_t implementer                 : 12;
3080 		uint32_t revision                    : 4;
3081 		uint32_t variant                     : 4;
3082 		uint32_t reserved_20_23              : 4;
3083 		uint32_t productid                   : 8;
3084 	} s;
3085 	/* struct ody_gicd_iidr_s cn; */
3086 };
3087 typedef union ody_gicd_iidr ody_gicd_iidr_t;
3088 
3089 #define ODY_GICD_IIDR ODY_GICD_IIDR_FUNC()
3090 static inline uint64_t ODY_GICD_IIDR_FUNC(void) __attribute__ ((pure, always_inline));
3091 static inline uint64_t ODY_GICD_IIDR_FUNC(void)
3092 {
3093 	return 0x801000000008ll;
3094 }
3095 
3096 #define typedef_ODY_GICD_IIDR ody_gicd_iidr_t
3097 #define bustype_ODY_GICD_IIDR CSR_TYPE_NCB32b
3098 #define basename_ODY_GICD_IIDR "GICD_IIDR"
3099 #define device_bar_ODY_GICD_IIDR 0x0 /* PF_BAR0 */
3100 #define busnum_ODY_GICD_IIDR 0
3101 #define arguments_ODY_GICD_IIDR -1, -1, -1, -1
3102 
3103 /**
3104  * Register (NCB) gicd_int_ena_w1c
3105  *
3106  * GICD Interrupt Enable Set Register
3107  * This register clears interrupt enable bits.
3108  */
3109 union ody_gicd_int_ena_w1c {
3110 	uint64_t u;
3111 	struct ody_gicd_int_ena_w1c_s {
3112 		uint64_t err_int                     : 1;
3113 		uint64_t fault_int                   : 1;
3114 		uint64_t pmu_int                     : 1;
3115 		uint64_t msix_vmem_sbe_int           : 1;
3116 		uint64_t msix_vmem_dbe_int           : 1;
3117 		uint64_t reserved_5_63               : 59;
3118 	} s;
3119 	/* struct ody_gicd_int_ena_w1c_s cn; */
3120 };
3121 typedef union ody_gicd_int_ena_w1c ody_gicd_int_ena_w1c_t;
3122 
3123 #define ODY_GICD_INT_ENA_W1C ODY_GICD_INT_ENA_W1C_FUNC()
3124 static inline uint64_t ODY_GICD_INT_ENA_W1C_FUNC(void) __attribute__ ((pure, always_inline));
3125 static inline uint64_t ODY_GICD_INT_ENA_W1C_FUNC(void)
3126 {
3127 	return 0x801010002018ll;
3128 }
3129 
3130 #define typedef_ODY_GICD_INT_ENA_W1C ody_gicd_int_ena_w1c_t
3131 #define bustype_ODY_GICD_INT_ENA_W1C CSR_TYPE_NCB
3132 #define basename_ODY_GICD_INT_ENA_W1C "GICD_INT_ENA_W1C"
3133 #define device_bar_ODY_GICD_INT_ENA_W1C 0x0 /* PF_BAR0 */
3134 #define busnum_ODY_GICD_INT_ENA_W1C 0
3135 #define arguments_ODY_GICD_INT_ENA_W1C -1, -1, -1, -1
3136 
3137 /**
3138  * Register (NCB) gicd_int_ena_w1s
3139  *
3140  * GICD Interrupt Enable Set Register
3141  * This register sets interrupt enable bits.
3142  */
3143 union ody_gicd_int_ena_w1s {
3144 	uint64_t u;
3145 	struct ody_gicd_int_ena_w1s_s {
3146 		uint64_t err_int                     : 1;
3147 		uint64_t fault_int                   : 1;
3148 		uint64_t pmu_int                     : 1;
3149 		uint64_t msix_vmem_sbe_int           : 1;
3150 		uint64_t msix_vmem_dbe_int           : 1;
3151 		uint64_t reserved_5_63               : 59;
3152 	} s;
3153 	/* struct ody_gicd_int_ena_w1s_s cn; */
3154 };
3155 typedef union ody_gicd_int_ena_w1s ody_gicd_int_ena_w1s_t;
3156 
3157 #define ODY_GICD_INT_ENA_W1S ODY_GICD_INT_ENA_W1S_FUNC()
3158 static inline uint64_t ODY_GICD_INT_ENA_W1S_FUNC(void) __attribute__ ((pure, always_inline));
3159 static inline uint64_t ODY_GICD_INT_ENA_W1S_FUNC(void)
3160 {
3161 	return 0x801010002010ll;
3162 }
3163 
3164 #define typedef_ODY_GICD_INT_ENA_W1S ody_gicd_int_ena_w1s_t
3165 #define bustype_ODY_GICD_INT_ENA_W1S CSR_TYPE_NCB
3166 #define basename_ODY_GICD_INT_ENA_W1S "GICD_INT_ENA_W1S"
3167 #define device_bar_ODY_GICD_INT_ENA_W1S 0x0 /* PF_BAR0 */
3168 #define busnum_ODY_GICD_INT_ENA_W1S 0
3169 #define arguments_ODY_GICD_INT_ENA_W1S -1, -1, -1, -1
3170 
3171 /**
3172  * Register (NCB) gicd_int_w1c
3173  *
3174  * GICD Interrupt Clear Register
3175  */
3176 union ody_gicd_int_w1c {
3177 	uint64_t u;
3178 	struct ody_gicd_int_w1c_s {
3179 		uint64_t err_int                     : 1;
3180 		uint64_t fault_int                   : 1;
3181 		uint64_t pmu_int                     : 1;
3182 		uint64_t msix_vmem_sbe_int           : 1;
3183 		uint64_t msix_vmem_dbe_int           : 1;
3184 		uint64_t reserved_5_63               : 59;
3185 	} s;
3186 	/* struct ody_gicd_int_w1c_s cn; */
3187 };
3188 typedef union ody_gicd_int_w1c ody_gicd_int_w1c_t;
3189 
3190 #define ODY_GICD_INT_W1C ODY_GICD_INT_W1C_FUNC()
3191 static inline uint64_t ODY_GICD_INT_W1C_FUNC(void) __attribute__ ((pure, always_inline));
3192 static inline uint64_t ODY_GICD_INT_W1C_FUNC(void)
3193 {
3194 	return 0x801010002000ll;
3195 }
3196 
3197 #define typedef_ODY_GICD_INT_W1C ody_gicd_int_w1c_t
3198 #define bustype_ODY_GICD_INT_W1C CSR_TYPE_NCB
3199 #define basename_ODY_GICD_INT_W1C "GICD_INT_W1C"
3200 #define device_bar_ODY_GICD_INT_W1C 0x0 /* PF_BAR0 */
3201 #define busnum_ODY_GICD_INT_W1C 0
3202 #define arguments_ODY_GICD_INT_W1C -1, -1, -1, -1
3203 
3204 /**
3205  * Register (NCB) gicd_int_w1s
3206  *
3207  * GICD Interrupt Set Register
3208  * This register sets interrupt bits.
3209  */
3210 union ody_gicd_int_w1s {
3211 	uint64_t u;
3212 	struct ody_gicd_int_w1s_s {
3213 		uint64_t err_int                     : 1;
3214 		uint64_t fault_int                   : 1;
3215 		uint64_t pmu_int                     : 1;
3216 		uint64_t msix_vmem_sbe_int           : 1;
3217 		uint64_t msix_vmem_dbe_int           : 1;
3218 		uint64_t reserved_5_63               : 59;
3219 	} s;
3220 	/* struct ody_gicd_int_w1s_s cn; */
3221 };
3222 typedef union ody_gicd_int_w1s ody_gicd_int_w1s_t;
3223 
3224 #define ODY_GICD_INT_W1S ODY_GICD_INT_W1S_FUNC()
3225 static inline uint64_t ODY_GICD_INT_W1S_FUNC(void) __attribute__ ((pure, always_inline));
3226 static inline uint64_t ODY_GICD_INT_W1S_FUNC(void)
3227 {
3228 	return 0x801010002008ll;
3229 }
3230 
3231 #define typedef_ODY_GICD_INT_W1S ody_gicd_int_w1s_t
3232 #define bustype_ODY_GICD_INT_W1S CSR_TYPE_NCB
3233 #define basename_ODY_GICD_INT_W1S "GICD_INT_W1S"
3234 #define device_bar_ODY_GICD_INT_W1S 0x0 /* PF_BAR0 */
3235 #define busnum_ODY_GICD_INT_W1S 0
3236 #define arguments_ODY_GICD_INT_W1S -1, -1, -1, -1
3237 
3238 /**
3239  * Register (NCB32b) gicd_ipriorityr#
3240  *
3241  * GICD Ipriorityr Register
3242  * The GICD_IPRIORITYR8 characteristics are:
3243  *
3244  * * Purpose
3245  * Holds the priority of interrupts 32 to 35.
3246  *
3247  * * Usage constraints
3248  * For interrupt ID m, when DIV and MOD are the integer division and modulo operations:
3249  *
3250  * * The corresponding GICD(A)_IPRIORITYR8 number, n, is given by n = m DIV 4.
3251  * * The offset of the required IPRIORITYR register is (0x400 + (4*n)).
3252  * * The byte offset of the required Priority field in this register is m MOD 4, where:
3253  *     * Byte offset 0 refers to register bits [7:0].
3254  *     * Byte offset 1 refers to register bits [15:8].
3255  *     * Byte offset 2 refers to register bits [23:16].
3256  *     * Byte offset 3 refers to register bits [31:24].
3257  *
3258  * These registers are byte-accessible.
3259  *
3260  * The GIC implements 5 bits of priority and in each field, unimplemented bits are
3261  * RAZ/WI, see Interrupt prioritization on page 4-65.
3262  *
3263  * When GICD(A)_CTLR.DS==0:
3264  *
3265  * * A register bit that corresponds to a Group 0 or Secure Group 1 interrupt is RAZ/WI
3266  * to Non-secure accesses.
3267  * * A Non-secure access to a field that corresponds to a Non-secure Group 1 interrupt
3268  * behaves as described in Software accesses of interrupt priority on page 4-72.
3269  *
3270  * * Configurations
3271  * Accessing registers where n is greater than 4*(GICD(A)_TYPER.ITLinesNumber+1) may
3272  * result in an error being logged. (See GICD_ERR0CTLR for details)
3273  */
3274 union ody_gicd_ipriorityrx {
3275 	uint32_t u;
3276 	struct ody_gicd_ipriorityrx_s {
3277 		uint32_t offset0                     : 8;
3278 		uint32_t offset1                     : 8;
3279 		uint32_t offset2                     : 8;
3280 		uint32_t offset3                     : 8;
3281 	} s;
3282 	/* struct ody_gicd_ipriorityrx_s cn; */
3283 };
3284 typedef union ody_gicd_ipriorityrx ody_gicd_ipriorityrx_t;
3285 
3286 static inline uint64_t ODY_GICD_IPRIORITYRX(uint64_t a) __attribute__ ((pure, always_inline));
3287 static inline uint64_t ODY_GICD_IPRIORITYRX(uint64_t a)
3288 {
3289 	if ((a >= 8) && (a <= 135))
3290 		return 0x801000000400ll + 4ll * ((a) & 0xff);
3291 	__ody_csr_fatal("GICD_IPRIORITYRX", 1, a, 0, 0, 0, 0, 0);
3292 }
3293 
3294 #define typedef_ODY_GICD_IPRIORITYRX(a) ody_gicd_ipriorityrx_t
3295 #define bustype_ODY_GICD_IPRIORITYRX(a) CSR_TYPE_NCB32b
3296 #define basename_ODY_GICD_IPRIORITYRX(a) "GICD_IPRIORITYRX"
3297 #define device_bar_ODY_GICD_IPRIORITYRX(a) 0x0 /* PF_BAR0 */
3298 #define busnum_ODY_GICD_IPRIORITYRX(a) (a)
3299 #define arguments_ODY_GICD_IPRIORITYRX(a) (a), -1, -1, -1
3300 
3301 /**
3302  * Register (NCB) gicd_irouter#
3303  *
3304  * GICD Irouter Register
3305  * The GICD_IROUTER32 characteristics are:
3306  *
3307  * * Purpose
3308  * Provides routing information for the corresponding SPI of ID 32:
3309  * * Usage constraints
3310  * When GICD(A)_CTLR.DS==0, a register that corresponds to a Group 0 or Secure Group 1
3311  * interrupt is RAZ/WI to Non-secure accesses (unless enabled by GICD(A)_CTLR.NSACR)
3312  * * Configurations
3313  * These registers are available in all GIC configurations.
3314  *
3315  * Accessing registers where n is greater than 32*(GICD(A)_TYPER.ITLinesNumber+1) may
3316  * result in an error being logged. (See GICD_ERR0CTLR for details)
3317  */
3318 union ody_gicd_irouterx {
3319 	uint64_t u;
3320 	struct ody_gicd_irouterx_s {
3321 		uint64_t affinity0                   : 8;
3322 		uint64_t affinity1                   : 8;
3323 		uint64_t affinity2                   : 8;
3324 		uint64_t reserved_24_30              : 7;
3325 		uint64_t interruptroutingmode        : 1;
3326 		uint64_t affinity3                   : 8;
3327 		uint64_t reserved_40_63              : 24;
3328 	} s;
3329 	/* struct ody_gicd_irouterx_s cn; */
3330 };
3331 typedef union ody_gicd_irouterx ody_gicd_irouterx_t;
3332 
3333 static inline uint64_t ODY_GICD_IROUTERX(uint64_t a) __attribute__ ((pure, always_inline));
3334 static inline uint64_t ODY_GICD_IROUTERX(uint64_t a)
3335 {
3336 	if ((a >= 32) && (a <= 543))
3337 		return 0x801000006000ll + 8ll * ((a) & 0x3ff);
3338 	__ody_csr_fatal("GICD_IROUTERX", 1, a, 0, 0, 0, 0, 0);
3339 }
3340 
3341 #define typedef_ODY_GICD_IROUTERX(a) ody_gicd_irouterx_t
3342 #define bustype_ODY_GICD_IROUTERX(a) CSR_TYPE_NCB
3343 #define basename_ODY_GICD_IROUTERX(a) "GICD_IROUTERX"
3344 #define device_bar_ODY_GICD_IROUTERX(a) 0x0 /* PF_BAR0 */
3345 #define busnum_ODY_GICD_IROUTERX(a) (a)
3346 #define arguments_ODY_GICD_IROUTERX(a) (a), -1, -1, -1
3347 
3348 /**
3349  * Register (NCB32b) gicd_isactiver#
3350  *
3351  * GICD Isactiver Register
3352  * The GICD_ISACTIVER1 characteristics are:
3353  *
3354  * * Purpose
3355  * Activates the corresponding interrupt. These registers are used when saving and
3356  * restoring state for interrupts 32 to 63.
3357  *
3358  * * Usage constraints
3359  * For INTID m, when DIV and MOD are the integer division and modulo operations:
3360  *
3361  * * The corresponding GICD(A)_ISACTIVER number, n, is given by n = m DIV 32.
3362  * * The offset of the required ISACTIVER is (0x300 + (4*n)).
3363  * * The bit number of the required group modifier bit in this register is m MOD 32.
3364  *
3365  * If GICD(A)_CTLR.DS==0, unless the GICD(A)_NSACR registers permit Non-secure software
3366  * to control Group 0 and Secure Group 1 interrupts, any bits that correspond to Group
3367  * 0 or Secure Group 1 interrupts are accessible only by Secure accesses and are RAZ/WI
3368  * to Non-secure accesses.
3369  * The bit reads as one if the status of the interrupt is active or active and pending.
3370  * GICD(A)_ISPENDR1 and GICD(A)_ICPENDR1 provide the pending status of the interrupt.
3371  *
3372  * * Configurations
3373  * Accessing registers where n is greater than (GICD(A)_TYPER.ITLinesNumber+1) may
3374  * result in an error being logged. (See GICD_ERR0CTLR for details)
3375  */
3376 union ody_gicd_isactiverx {
3377 	uint32_t u;
3378 	struct ody_gicd_isactiverx_s {
3379 		uint32_t set_active_bit0             : 1;
3380 		uint32_t set_active_bit1             : 1;
3381 		uint32_t set_active_bit2             : 1;
3382 		uint32_t set_active_bit3             : 1;
3383 		uint32_t set_active_bit4             : 1;
3384 		uint32_t set_active_bit5             : 1;
3385 		uint32_t set_active_bit6             : 1;
3386 		uint32_t set_active_bit7             : 1;
3387 		uint32_t set_active_bit8             : 1;
3388 		uint32_t set_active_bit9             : 1;
3389 		uint32_t set_active_bit10            : 1;
3390 		uint32_t set_active_bit11            : 1;
3391 		uint32_t set_active_bit12            : 1;
3392 		uint32_t set_active_bit13            : 1;
3393 		uint32_t set_active_bit14            : 1;
3394 		uint32_t set_active_bit15            : 1;
3395 		uint32_t set_active_bit16            : 1;
3396 		uint32_t set_active_bit17            : 1;
3397 		uint32_t set_active_bit18            : 1;
3398 		uint32_t set_active_bit19            : 1;
3399 		uint32_t set_active_bit20            : 1;
3400 		uint32_t set_active_bit21            : 1;
3401 		uint32_t set_active_bit22            : 1;
3402 		uint32_t set_active_bit23            : 1;
3403 		uint32_t set_active_bit24            : 1;
3404 		uint32_t set_active_bit25            : 1;
3405 		uint32_t set_active_bit26            : 1;
3406 		uint32_t set_active_bit27            : 1;
3407 		uint32_t set_active_bit28            : 1;
3408 		uint32_t set_active_bit29            : 1;
3409 		uint32_t set_active_bit30            : 1;
3410 		uint32_t set_active_bit31            : 1;
3411 	} s;
3412 	/* struct ody_gicd_isactiverx_s cn; */
3413 };
3414 typedef union ody_gicd_isactiverx ody_gicd_isactiverx_t;
3415 
3416 static inline uint64_t ODY_GICD_ISACTIVERX(uint64_t a) __attribute__ ((pure, always_inline));
3417 static inline uint64_t ODY_GICD_ISACTIVERX(uint64_t a)
3418 {
3419 	if ((a >= 1) && (a <= 16))
3420 		return 0x801000000300ll + 4ll * ((a) & 0x1f);
3421 	__ody_csr_fatal("GICD_ISACTIVERX", 1, a, 0, 0, 0, 0, 0);
3422 }
3423 
3424 #define typedef_ODY_GICD_ISACTIVERX(a) ody_gicd_isactiverx_t
3425 #define bustype_ODY_GICD_ISACTIVERX(a) CSR_TYPE_NCB32b
3426 #define basename_ODY_GICD_ISACTIVERX(a) "GICD_ISACTIVERX"
3427 #define device_bar_ODY_GICD_ISACTIVERX(a) 0x0 /* PF_BAR0 */
3428 #define busnum_ODY_GICD_ISACTIVERX(a) (a)
3429 #define arguments_ODY_GICD_ISACTIVERX(a) (a), -1, -1, -1
3430 
3431 /**
3432  * Register (NCB32b) gicd_isenabler#
3433  *
3434  * GICD Isenabler Register
3435  * The GICD_ISENABLER1 characteristics are:
3436  *
3437  * * Purpose
3438  * Enables forwarding of the corresponding interrupt to the CPU interfaces for interrupts 32 to 63.
3439  *
3440  * * Usage constraints
3441  * For INTID m, when DIV and MOD are the integer division and modulo operations:
3442  *
3443  * * The corresponding GICD(A)_ISENABLER number, n, is given by n = m DIV 32.
3444  * * The offset of the ISENABLER is (0x100 + (4*n)).
3445  * * The bit number of the required group modifier bit in this register is m MOD 32.
3446  *
3447  * When GICD(A)_CTLR.DS==0, bits corresponding to Group 0 and Secure Group 1 interrupts
3448  * are RAZ/WI to Non-secure accesses.
3449  *
3450  * At start-up, and after a reset, a PE can use this register to discover which
3451  * peripheral INTIDs the GIC supports. If GICD(A)_CTLR.DS==0 in a system that supports
3452  * EL3, the PE must do this for the Secure view of the available interrupts, and Non-
3453  * secure software running on the PE must do this discovery after the Secure software
3454  * has configured interrupts as Group 0/Secure Group 1 and Non-secure Group 1.
3455  *
3456  * * Configurations
3457  * Accessing registers where n is greater than (GICD(A)_TYPER.ITLinesNumber+1) may
3458  * result in an error being logged. (See GICD_ERR0CTLR for details)
3459  */
3460 union ody_gicd_isenablerx {
3461 	uint32_t u;
3462 	struct ody_gicd_isenablerx_s {
3463 		uint32_t set_enable_bit0             : 1;
3464 		uint32_t set_enable_bit1             : 1;
3465 		uint32_t set_enable_bit2             : 1;
3466 		uint32_t set_enable_bit3             : 1;
3467 		uint32_t set_enable_bit4             : 1;
3468 		uint32_t set_enable_bit5             : 1;
3469 		uint32_t set_enable_bit6             : 1;
3470 		uint32_t set_enable_bit7             : 1;
3471 		uint32_t set_enable_bit8             : 1;
3472 		uint32_t set_enable_bit9             : 1;
3473 		uint32_t set_enable_bit10            : 1;
3474 		uint32_t set_enable_bit11            : 1;
3475 		uint32_t set_enable_bit12            : 1;
3476 		uint32_t set_enable_bit13            : 1;
3477 		uint32_t set_enable_bit14            : 1;
3478 		uint32_t set_enable_bit15            : 1;
3479 		uint32_t set_enable_bit16            : 1;
3480 		uint32_t set_enable_bit17            : 1;
3481 		uint32_t set_enable_bit18            : 1;
3482 		uint32_t set_enable_bit19            : 1;
3483 		uint32_t set_enable_bit20            : 1;
3484 		uint32_t set_enable_bit21            : 1;
3485 		uint32_t set_enable_bit22            : 1;
3486 		uint32_t set_enable_bit23            : 1;
3487 		uint32_t set_enable_bit24            : 1;
3488 		uint32_t set_enable_bit25            : 1;
3489 		uint32_t set_enable_bit26            : 1;
3490 		uint32_t set_enable_bit27            : 1;
3491 		uint32_t set_enable_bit28            : 1;
3492 		uint32_t set_enable_bit29            : 1;
3493 		uint32_t set_enable_bit30            : 1;
3494 		uint32_t set_enable_bit31            : 1;
3495 	} s;
3496 	/* struct ody_gicd_isenablerx_s cn; */
3497 };
3498 typedef union ody_gicd_isenablerx ody_gicd_isenablerx_t;
3499 
3500 static inline uint64_t ODY_GICD_ISENABLERX(uint64_t a) __attribute__ ((pure, always_inline));
3501 static inline uint64_t ODY_GICD_ISENABLERX(uint64_t a)
3502 {
3503 	if ((a >= 1) && (a <= 16))
3504 		return 0x801000000100ll + 4ll * ((a) & 0x1f);
3505 	__ody_csr_fatal("GICD_ISENABLERX", 1, a, 0, 0, 0, 0, 0);
3506 }
3507 
3508 #define typedef_ODY_GICD_ISENABLERX(a) ody_gicd_isenablerx_t
3509 #define bustype_ODY_GICD_ISENABLERX(a) CSR_TYPE_NCB32b
3510 #define basename_ODY_GICD_ISENABLERX(a) "GICD_ISENABLERX"
3511 #define device_bar_ODY_GICD_ISENABLERX(a) 0x0 /* PF_BAR0 */
3512 #define busnum_ODY_GICD_ISENABLERX(a) (a)
3513 #define arguments_ODY_GICD_ISENABLERX(a) (a), -1, -1, -1
3514 
3515 /**
3516  * Register (NCB32b) gicd_iserrr#
3517  *
3518  * GICD Iserrr Register
3519  * The GICD_ISERRR1 characteristics are:
3520  *
3521  * * Purpose
3522  *
3523  * These registers can set the error status of an SPI or return the error status of an
3524  * SPI for interrupts 16 to 31.
3525  *
3526  * * Usage constraints
3527  * This register is Secure access only
3528  *
3529  * For interrupt ID m, when DIV and MOD are the integer division and modulo operations:
3530  *
3531  * * The corresponding GICD(A)_ISERRR number, n, is given by n = m DIV 16.
3532  * * The offset of the required ISERRR register is (0xE200 + (4*n)).
3533  *
3534  * * Configurations
3535  * Accessing registers where n is greater than 2*(GICD(A)_TYPER.ITLinesNumber+1) may
3536  * result in an error being logged. (See GICD_ERR0CTLR for details)
3537  */
3538 union ody_gicd_iserrrx {
3539 	uint32_t u;
3540 	struct ody_gicd_iserrrx_s {
3541 		uint32_t status0                     : 1;
3542 		uint32_t status1                     : 1;
3543 		uint32_t status2                     : 1;
3544 		uint32_t status3                     : 1;
3545 		uint32_t status4                     : 1;
3546 		uint32_t status5                     : 1;
3547 		uint32_t status6                     : 1;
3548 		uint32_t status7                     : 1;
3549 		uint32_t status8                     : 1;
3550 		uint32_t status9                     : 1;
3551 		uint32_t status10                    : 1;
3552 		uint32_t status11                    : 1;
3553 		uint32_t status12                    : 1;
3554 		uint32_t status13                    : 1;
3555 		uint32_t status14                    : 1;
3556 		uint32_t status15                    : 1;
3557 		uint32_t status16                    : 1;
3558 		uint32_t status17                    : 1;
3559 		uint32_t status18                    : 1;
3560 		uint32_t status19                    : 1;
3561 		uint32_t status20                    : 1;
3562 		uint32_t status21                    : 1;
3563 		uint32_t status22                    : 1;
3564 		uint32_t status23                    : 1;
3565 		uint32_t status24                    : 1;
3566 		uint32_t status25                    : 1;
3567 		uint32_t status26                    : 1;
3568 		uint32_t status27                    : 1;
3569 		uint32_t status28                    : 1;
3570 		uint32_t status29                    : 1;
3571 		uint32_t status30                    : 1;
3572 		uint32_t status31                    : 1;
3573 	} s;
3574 	/* struct ody_gicd_iserrrx_s cn; */
3575 };
3576 typedef union ody_gicd_iserrrx ody_gicd_iserrrx_t;
3577 
3578 static inline uint64_t ODY_GICD_ISERRRX(uint64_t a) __attribute__ ((pure, always_inline));
3579 static inline uint64_t ODY_GICD_ISERRRX(uint64_t a)
3580 {
3581 	if ((a >= 1) && (a <= 16))
3582 		return 0x80100000e200ll + 4ll * ((a) & 0x1f);
3583 	__ody_csr_fatal("GICD_ISERRRX", 1, a, 0, 0, 0, 0, 0);
3584 }
3585 
3586 #define typedef_ODY_GICD_ISERRRX(a) ody_gicd_iserrrx_t
3587 #define bustype_ODY_GICD_ISERRRX(a) CSR_TYPE_NCB32b
3588 #define basename_ODY_GICD_ISERRRX(a) "GICD_ISERRRX"
3589 #define device_bar_ODY_GICD_ISERRRX(a) 0x0 /* PF_BAR0 */
3590 #define busnum_ODY_GICD_ISERRRX(a) (a)
3591 #define arguments_ODY_GICD_ISERRRX(a) (a), -1, -1, -1
3592 
3593 /**
3594  * Register (NCB32b) gicd_ispendr#
3595  *
3596  * GICD Ispendr Register
3597  * The GICD_ISPENDR1 characteristics are:
3598  *
3599  * * Purpose
3600  * Adds the pending state to the corresponding interrupt for interrupts 32 to 63.
3601  *
3602  * * Usage constraints
3603  * For INTID m, when DIV and MOD are the integer division and modulo operations:
3604  *
3605  * * The corresponding GICD(A)_ISPENDR number, n, is given by n = m DIV 32.
3606  * * The offset of the required ISPENDR is (0x200 + (4*n)).
3607  * * The bit number of the required group modifier bit in this register is m MOD 32.
3608  *
3609  * If GICD(A)_CTLR.DS==0, unless the GICD(A)_NSACR registers permit Non-secure software
3610  * to control Group 0 and Secure Group 1 interrupts, any bits that correspond to Group
3611  * 0 or Secure Group 1 interrupts are accessible only by Secure accesses and are RAZ/WI
3612  * to Non-secure accesses.
3613  *
3614  * * Configurations
3615  * Accessing registers where n is greater than (GICD(A)_TYPER.ITLinesNumber+1) may
3616  * result in an error being logged. (See GICD_ERR0CTLR for details)
3617  */
3618 union ody_gicd_ispendrx {
3619 	uint32_t u;
3620 	struct ody_gicd_ispendrx_s {
3621 		uint32_t set_pending_bit0            : 1;
3622 		uint32_t set_pending_bit1            : 1;
3623 		uint32_t set_pending_bit2            : 1;
3624 		uint32_t set_pending_bit3            : 1;
3625 		uint32_t set_pending_bit4            : 1;
3626 		uint32_t set_pending_bit5            : 1;
3627 		uint32_t set_pending_bit6            : 1;
3628 		uint32_t set_pending_bit7            : 1;
3629 		uint32_t set_pending_bit8            : 1;
3630 		uint32_t set_pending_bit9            : 1;
3631 		uint32_t set_pending_bit10           : 1;
3632 		uint32_t set_pending_bit11           : 1;
3633 		uint32_t set_pending_bit12           : 1;
3634 		uint32_t set_pending_bit13           : 1;
3635 		uint32_t set_pending_bit14           : 1;
3636 		uint32_t set_pending_bit15           : 1;
3637 		uint32_t set_pending_bit16           : 1;
3638 		uint32_t set_pending_bit17           : 1;
3639 		uint32_t set_pending_bit18           : 1;
3640 		uint32_t set_pending_bit19           : 1;
3641 		uint32_t set_pending_bit20           : 1;
3642 		uint32_t set_pending_bit21           : 1;
3643 		uint32_t set_pending_bit22           : 1;
3644 		uint32_t set_pending_bit23           : 1;
3645 		uint32_t set_pending_bit24           : 1;
3646 		uint32_t set_pending_bit25           : 1;
3647 		uint32_t set_pending_bit26           : 1;
3648 		uint32_t set_pending_bit27           : 1;
3649 		uint32_t set_pending_bit28           : 1;
3650 		uint32_t set_pending_bit29           : 1;
3651 		uint32_t set_pending_bit30           : 1;
3652 		uint32_t set_pending_bit31           : 1;
3653 	} s;
3654 	/* struct ody_gicd_ispendrx_s cn; */
3655 };
3656 typedef union ody_gicd_ispendrx ody_gicd_ispendrx_t;
3657 
3658 static inline uint64_t ODY_GICD_ISPENDRX(uint64_t a) __attribute__ ((pure, always_inline));
3659 static inline uint64_t ODY_GICD_ISPENDRX(uint64_t a)
3660 {
3661 	if ((a >= 1) && (a <= 16))
3662 		return 0x801000000200ll + 4ll * ((a) & 0x1f);
3663 	__ody_csr_fatal("GICD_ISPENDRX", 1, a, 0, 0, 0, 0, 0);
3664 }
3665 
3666 #define typedef_ODY_GICD_ISPENDRX(a) ody_gicd_ispendrx_t
3667 #define bustype_ODY_GICD_ISPENDRX(a) CSR_TYPE_NCB32b
3668 #define basename_ODY_GICD_ISPENDRX(a) "GICD_ISPENDRX"
3669 #define device_bar_ODY_GICD_ISPENDRX(a) 0x0 /* PF_BAR0 */
3670 #define busnum_ODY_GICD_ISPENDRX(a) (a)
3671 #define arguments_ODY_GICD_ISPENDRX(a) (a), -1, -1, -1
3672 
3673 /**
3674  * Register (NCB32b) gicd_nsacr#
3675  *
3676  * GICD Nsacr Register
3677  * The GICD_NSACR2 characteristics are:
3678  *
3679  * * Purpose
3680  * Enables Secure software to permit Non-secure software on a particular PE to create
3681  * and control Group 0 interrupts for interrupts 32 to 47.
3682  *
3683  * * Usage constraints
3684  * For interrupt ID m, when DIV and MOD are the integer division and modulo operations:
3685  *
3686  * * The corresponding GICD(A)_NSACR number, n, is given by n = m DIV 16.
3687  * * The offset of the required NSACR register is (0xE00 + (4*n)).
3688  *
3689  * When GICD(A)_CTLR.DS==1, this register is RAZ/WI.
3690  * These registers are Secure, and are RAZ/WI to Non-secure accesses.
3691  *
3692  * * Configurations
3693  * These registers are available in all GIC configurations.
3694  *
3695  * Accessing registers where n is greater than 2*(GICD(A)_TYPER.ITLinesNumber+1) may
3696  * result in an error being logged. (See GICD_ERR0CTLR for details)
3697  */
3698 union ody_gicd_nsacrx {
3699 	uint32_t u;
3700 	struct ody_gicd_nsacrx_s {
3701 		uint32_t ns_access0                  : 2;
3702 		uint32_t ns_access1                  : 2;
3703 		uint32_t ns_access2                  : 2;
3704 		uint32_t ns_access3                  : 2;
3705 		uint32_t ns_access4                  : 2;
3706 		uint32_t ns_access5                  : 2;
3707 		uint32_t ns_access6                  : 2;
3708 		uint32_t ns_access7                  : 2;
3709 		uint32_t ns_access8                  : 2;
3710 		uint32_t ns_access9                  : 2;
3711 		uint32_t ns_access10                 : 2;
3712 		uint32_t ns_access11                 : 2;
3713 		uint32_t ns_access12                 : 2;
3714 		uint32_t ns_access13                 : 2;
3715 		uint32_t ns_access14                 : 2;
3716 		uint32_t ns_access15                 : 2;
3717 	} s;
3718 	/* struct ody_gicd_nsacrx_s cn; */
3719 };
3720 typedef union ody_gicd_nsacrx ody_gicd_nsacrx_t;
3721 
3722 static inline uint64_t ODY_GICD_NSACRX(uint64_t a) __attribute__ ((pure, always_inline));
3723 static inline uint64_t ODY_GICD_NSACRX(uint64_t a)
3724 {
3725 	if ((a >= 2) && (a <= 33))
3726 		return 0x801000000e00ll + 4ll * ((a) & 0x3f);
3727 	__ody_csr_fatal("GICD_NSACRX", 1, a, 0, 0, 0, 0, 0);
3728 }
3729 
3730 #define typedef_ODY_GICD_NSACRX(a) ody_gicd_nsacrx_t
3731 #define bustype_ODY_GICD_NSACRX(a) CSR_TYPE_NCB32b
3732 #define basename_ODY_GICD_NSACRX(a) "GICD_NSACRX"
3733 #define device_bar_ODY_GICD_NSACRX(a) 0x0 /* PF_BAR0 */
3734 #define busnum_ODY_GICD_NSACRX(a) (a)
3735 #define arguments_ODY_GICD_NSACRX(a) (a), -1, -1, -1
3736 
3737 /**
3738  * Register (NCB32b) gicd_pidr0
3739  *
3740  * GICD Pidr0 Register
3741  * The GICD_PIDR0 characteristics are:
3742  *
3743  * * Purpose
3744  * This register returns byte[0] of the peripheral ID of the GIC Distributor page.
3745  *
3746  * * Usage constraints
3747  * There are no usage constraints.
3748  */
3749 union ody_gicd_pidr0 {
3750 	uint32_t u;
3751 	struct ody_gicd_pidr0_s {
3752 		uint32_t part_0                      : 8;
3753 		uint32_t reserved_8_31               : 24;
3754 	} s;
3755 	/* struct ody_gicd_pidr0_s cn; */
3756 };
3757 typedef union ody_gicd_pidr0 ody_gicd_pidr0_t;
3758 
3759 #define ODY_GICD_PIDR0 ODY_GICD_PIDR0_FUNC()
3760 static inline uint64_t ODY_GICD_PIDR0_FUNC(void) __attribute__ ((pure, always_inline));
3761 static inline uint64_t ODY_GICD_PIDR0_FUNC(void)
3762 {
3763 	return 0x80100000ffe0ll;
3764 }
3765 
3766 #define typedef_ODY_GICD_PIDR0 ody_gicd_pidr0_t
3767 #define bustype_ODY_GICD_PIDR0 CSR_TYPE_NCB32b
3768 #define basename_ODY_GICD_PIDR0 "GICD_PIDR0"
3769 #define device_bar_ODY_GICD_PIDR0 0x0 /* PF_BAR0 */
3770 #define busnum_ODY_GICD_PIDR0 0
3771 #define arguments_ODY_GICD_PIDR0 -1, -1, -1, -1
3772 
3773 /**
3774  * Register (NCB32b) gicd_pidr1
3775  *
3776  * GICD Pidr1 Register
3777  * The GICD_PIDR1 characteristics are:
3778  *
3779  * * Purpose
3780  * This register returns byte[1] of the peripheral ID of the GIC Distributor page.
3781  *
3782  * * Usage constraints
3783  * There are no usage constraints.
3784  */
3785 union ody_gicd_pidr1 {
3786 	uint32_t u;
3787 	struct ody_gicd_pidr1_s {
3788 		uint32_t part_1                      : 4;
3789 		uint32_t des_0                       : 4;
3790 		uint32_t reserved_8_31               : 24;
3791 	} s;
3792 	/* struct ody_gicd_pidr1_s cn; */
3793 };
3794 typedef union ody_gicd_pidr1 ody_gicd_pidr1_t;
3795 
3796 #define ODY_GICD_PIDR1 ODY_GICD_PIDR1_FUNC()
3797 static inline uint64_t ODY_GICD_PIDR1_FUNC(void) __attribute__ ((pure, always_inline));
3798 static inline uint64_t ODY_GICD_PIDR1_FUNC(void)
3799 {
3800 	return 0x80100000ffe4ll;
3801 }
3802 
3803 #define typedef_ODY_GICD_PIDR1 ody_gicd_pidr1_t
3804 #define bustype_ODY_GICD_PIDR1 CSR_TYPE_NCB32b
3805 #define basename_ODY_GICD_PIDR1 "GICD_PIDR1"
3806 #define device_bar_ODY_GICD_PIDR1 0x0 /* PF_BAR0 */
3807 #define busnum_ODY_GICD_PIDR1 0
3808 #define arguments_ODY_GICD_PIDR1 -1, -1, -1, -1
3809 
3810 /**
3811  * Register (NCB32b) gicd_pidr2
3812  *
3813  * GICD Pidr2 Register
3814  * The GICD_PIDR2 characteristics are:
3815  *
3816  * * Purpose
3817  * This register returns byte[2] of the peripheral ID of the GIC Distributor page.
3818  *
3819  * * Usage constraints
3820  * There are no usage constraints.
3821  */
3822 union ody_gicd_pidr2 {
3823 	uint32_t u;
3824 	struct ody_gicd_pidr2_s {
3825 		uint32_t des_1                       : 3;
3826 		uint32_t jedec                       : 1;
3827 		uint32_t revision                    : 4;
3828 		uint32_t reserved_8_31               : 24;
3829 	} s;
3830 	/* struct ody_gicd_pidr2_s cn; */
3831 };
3832 typedef union ody_gicd_pidr2 ody_gicd_pidr2_t;
3833 
3834 #define ODY_GICD_PIDR2 ODY_GICD_PIDR2_FUNC()
3835 static inline uint64_t ODY_GICD_PIDR2_FUNC(void) __attribute__ ((pure, always_inline));
3836 static inline uint64_t ODY_GICD_PIDR2_FUNC(void)
3837 {
3838 	return 0x80100000ffe8ll;
3839 }
3840 
3841 #define typedef_ODY_GICD_PIDR2 ody_gicd_pidr2_t
3842 #define bustype_ODY_GICD_PIDR2 CSR_TYPE_NCB32b
3843 #define basename_ODY_GICD_PIDR2 "GICD_PIDR2"
3844 #define device_bar_ODY_GICD_PIDR2 0x0 /* PF_BAR0 */
3845 #define busnum_ODY_GICD_PIDR2 0
3846 #define arguments_ODY_GICD_PIDR2 -1, -1, -1, -1
3847 
3848 /**
3849  * Register (NCB32b) gicd_pidr3
3850  *
3851  * GICD Pidr3 Register
3852  * The GICD_PIDR3 characteristics are:
3853  *
3854  * * Purpose
3855  * This register returns byte[3] of the peripheral ID of the GIC Distributor page.
3856  *
3857  * * Usage constraints
3858  * There are no usage constraints.
3859  */
3860 union ody_gicd_pidr3 {
3861 	uint32_t u;
3862 	struct ody_gicd_pidr3_s {
3863 		uint32_t cmod                        : 3;
3864 		uint32_t reserved_3                  : 1;
3865 		uint32_t revand                      : 4;
3866 		uint32_t reserved_8_31               : 24;
3867 	} s;
3868 	/* struct ody_gicd_pidr3_s cn; */
3869 };
3870 typedef union ody_gicd_pidr3 ody_gicd_pidr3_t;
3871 
3872 #define ODY_GICD_PIDR3 ODY_GICD_PIDR3_FUNC()
3873 static inline uint64_t ODY_GICD_PIDR3_FUNC(void) __attribute__ ((pure, always_inline));
3874 static inline uint64_t ODY_GICD_PIDR3_FUNC(void)
3875 {
3876 	return 0x80100000ffecll;
3877 }
3878 
3879 #define typedef_ODY_GICD_PIDR3 ody_gicd_pidr3_t
3880 #define bustype_ODY_GICD_PIDR3 CSR_TYPE_NCB32b
3881 #define basename_ODY_GICD_PIDR3 "GICD_PIDR3"
3882 #define device_bar_ODY_GICD_PIDR3 0x0 /* PF_BAR0 */
3883 #define busnum_ODY_GICD_PIDR3 0
3884 #define arguments_ODY_GICD_PIDR3 -1, -1, -1, -1
3885 
3886 /**
3887  * Register (NCB32b) gicd_pidr4
3888  *
3889  * GICD Pidr4 Register
3890  * The GICD_PIDR4 characteristics are:
3891  *
3892  * * Purpose
3893  * This register returns byte[4] of the peripheral ID of the GIC Distributor page.
3894  *
3895  * * Usage constraints
3896  * There are no usage constraints.
3897  */
3898 union ody_gicd_pidr4 {
3899 	uint32_t u;
3900 	struct ody_gicd_pidr4_s {
3901 		uint32_t des_2                       : 4;
3902 		uint32_t size                        : 4;
3903 		uint32_t reserved_8_31               : 24;
3904 	} s;
3905 	/* struct ody_gicd_pidr4_s cn; */
3906 };
3907 typedef union ody_gicd_pidr4 ody_gicd_pidr4_t;
3908 
3909 #define ODY_GICD_PIDR4 ODY_GICD_PIDR4_FUNC()
3910 static inline uint64_t ODY_GICD_PIDR4_FUNC(void) __attribute__ ((pure, always_inline));
3911 static inline uint64_t ODY_GICD_PIDR4_FUNC(void)
3912 {
3913 	return 0x80100000ffd0ll;
3914 }
3915 
3916 #define typedef_ODY_GICD_PIDR4 ody_gicd_pidr4_t
3917 #define bustype_ODY_GICD_PIDR4 CSR_TYPE_NCB32b
3918 #define basename_ODY_GICD_PIDR4 "GICD_PIDR4"
3919 #define device_bar_ODY_GICD_PIDR4 0x0 /* PF_BAR0 */
3920 #define busnum_ODY_GICD_PIDR4 0
3921 #define arguments_ODY_GICD_PIDR4 -1, -1, -1, -1
3922 
3923 /**
3924  * Register (NCB32b) gicd_pidr5
3925  *
3926  * GICD Pidr5 Register
3927  * The GICD_PIDR5 characteristics are:
3928  *
3929  * * Purpose
3930  * This register returns byte[5] of the peripheral ID of the GIC Distributor page.
3931  *
3932  * * Usage constraints
3933  * There are no usage constraints.
3934  */
3935 union ody_gicd_pidr5 {
3936 	uint32_t u;
3937 	struct ody_gicd_pidr5_s {
3938 		uint32_t reserved_0_31               : 32;
3939 	} s;
3940 	struct ody_gicd_pidr5_cn {
3941 		uint32_t reserved_0_7                : 8;
3942 		uint32_t reserved_8_31               : 24;
3943 	} cn;
3944 };
3945 typedef union ody_gicd_pidr5 ody_gicd_pidr5_t;
3946 
3947 #define ODY_GICD_PIDR5 ODY_GICD_PIDR5_FUNC()
3948 static inline uint64_t ODY_GICD_PIDR5_FUNC(void) __attribute__ ((pure, always_inline));
3949 static inline uint64_t ODY_GICD_PIDR5_FUNC(void)
3950 {
3951 	return 0x80100000ffd4ll;
3952 }
3953 
3954 #define typedef_ODY_GICD_PIDR5 ody_gicd_pidr5_t
3955 #define bustype_ODY_GICD_PIDR5 CSR_TYPE_NCB32b
3956 #define basename_ODY_GICD_PIDR5 "GICD_PIDR5"
3957 #define device_bar_ODY_GICD_PIDR5 0x0 /* PF_BAR0 */
3958 #define busnum_ODY_GICD_PIDR5 0
3959 #define arguments_ODY_GICD_PIDR5 -1, -1, -1, -1
3960 
3961 /**
3962  * Register (NCB32b) gicd_pidr6
3963  *
3964  * GICD Pidr6 Register
3965  * The GICD_PIDR6 characteristics are:
3966  *
3967  * * Purpose
3968  * This register returns byte[6] of the peripheral ID of the GIC Distributor page.
3969  *
3970  * * Usage constraints
3971  * There are no usage constraints.
3972  */
3973 union ody_gicd_pidr6 {
3974 	uint32_t u;
3975 	struct ody_gicd_pidr6_s {
3976 		uint32_t reserved_0_31               : 32;
3977 	} s;
3978 	struct ody_gicd_pidr6_cn {
3979 		uint32_t reserved_0_7                : 8;
3980 		uint32_t reserved_8_31               : 24;
3981 	} cn;
3982 };
3983 typedef union ody_gicd_pidr6 ody_gicd_pidr6_t;
3984 
3985 #define ODY_GICD_PIDR6 ODY_GICD_PIDR6_FUNC()
3986 static inline uint64_t ODY_GICD_PIDR6_FUNC(void) __attribute__ ((pure, always_inline));
3987 static inline uint64_t ODY_GICD_PIDR6_FUNC(void)
3988 {
3989 	return 0x80100000ffd8ll;
3990 }
3991 
3992 #define typedef_ODY_GICD_PIDR6 ody_gicd_pidr6_t
3993 #define bustype_ODY_GICD_PIDR6 CSR_TYPE_NCB32b
3994 #define basename_ODY_GICD_PIDR6 "GICD_PIDR6"
3995 #define device_bar_ODY_GICD_PIDR6 0x0 /* PF_BAR0 */
3996 #define busnum_ODY_GICD_PIDR6 0
3997 #define arguments_ODY_GICD_PIDR6 -1, -1, -1, -1
3998 
3999 /**
4000  * Register (NCB32b) gicd_pidr7
4001  *
4002  * GICD Pidr7 Register
4003  * The GICD_PIDR7 characteristics are:
4004  *
4005  * * Purpose
4006  * This register returns byte[7] of the peripheral ID of the GIC Distributor page.
4007  *
4008  * * Usage constraints
4009  * There are no usage constraints.
4010  */
4011 union ody_gicd_pidr7 {
4012 	uint32_t u;
4013 	struct ody_gicd_pidr7_s {
4014 		uint32_t reserved_0_31               : 32;
4015 	} s;
4016 	struct ody_gicd_pidr7_cn {
4017 		uint32_t reserved_0_7                : 8;
4018 		uint32_t reserved_8_31               : 24;
4019 	} cn;
4020 };
4021 typedef union ody_gicd_pidr7 ody_gicd_pidr7_t;
4022 
4023 #define ODY_GICD_PIDR7 ODY_GICD_PIDR7_FUNC()
4024 static inline uint64_t ODY_GICD_PIDR7_FUNC(void) __attribute__ ((pure, always_inline));
4025 static inline uint64_t ODY_GICD_PIDR7_FUNC(void)
4026 {
4027 	return 0x80100000ffdcll;
4028 }
4029 
4030 #define typedef_ODY_GICD_PIDR7 ody_gicd_pidr7_t
4031 #define bustype_ODY_GICD_PIDR7 CSR_TYPE_NCB32b
4032 #define basename_ODY_GICD_PIDR7 "GICD_PIDR7"
4033 #define device_bar_ODY_GICD_PIDR7 0x0 /* PF_BAR0 */
4034 #define busnum_ODY_GICD_PIDR7 0
4035 #define arguments_ODY_GICD_PIDR7 -1, -1, -1, -1
4036 
4037 /**
4038  * Register (NCB32b) gicd_sac
4039  *
4040  * GICD Sac Register
4041  * The GICD_SAC characteristics are:
4042  *
4043  * * Purpose
4044  * This register allows Secure software to control Non-secure access to GIC-700 Secure
4045  * features by other software.
4046  *
4047  * * Usage constraints
4048  * Only accessible by Secure accesses or when GICD(A)_CTLR.DS == 1.
4049  */
4050 union ody_gicd_sac {
4051 	uint32_t u;
4052 	struct ody_gicd_sac_s {
4053 		uint32_t reserved_0                  : 1;
4054 		uint32_t gictns                      : 1;
4055 		uint32_t gicpns                      : 1;
4056 		uint32_t reserved_3_31               : 29;
4057 	} s;
4058 	/* struct ody_gicd_sac_s cn; */
4059 };
4060 typedef union ody_gicd_sac ody_gicd_sac_t;
4061 
4062 #define ODY_GICD_SAC ODY_GICD_SAC_FUNC()
4063 static inline uint64_t ODY_GICD_SAC_FUNC(void) __attribute__ ((pure, always_inline));
4064 static inline uint64_t ODY_GICD_SAC_FUNC(void)
4065 {
4066 	return 0x801000000024ll;
4067 }
4068 
4069 #define typedef_ODY_GICD_SAC ody_gicd_sac_t
4070 #define bustype_ODY_GICD_SAC CSR_TYPE_NCB32b
4071 #define basename_ODY_GICD_SAC "GICD_SAC"
4072 #define device_bar_ODY_GICD_SAC 0x0 /* PF_BAR0 */
4073 #define busnum_ODY_GICD_SAC 0
4074 #define arguments_ODY_GICD_SAC -1, -1, -1, -1
4075 
4076 /**
4077  * Register (NCB32b) gicd_setspi_nsr
4078  *
4079  * GICD Setspi Nsr Register
4080  * The GICD_SETSPI_NSR characteristics are:
4081  *
4082  * * Purpose
4083  * Adds the pending state to a valid SPI if permitted by the Security state of the
4084  * access and the GICD(A)_NSACR value for that SPI.
4085  * A write to this register changes the state of an inactive SPI to pending, and the
4086  * state of an active SPI to active and pending.
4087  *
4088  * * Usage constraints
4089  * The function of this register depends on whether the targeted SPI is configured to
4090  * be an edge-triggered or level-sensitive interrupt:
4091  *
4092  * * For an edge-triggered interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
4093  * the pending state to the targeted interrupt. It will stop being pending on
4094  * activation, or if the pending state is removed by a write to GICD(A)_CLRSPI_NSR,
4095  * GICx_CLRSPI_SR, or GICD(A)_ICPENDR.
4096  * * For a level-sensitive interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
4097  * the pending state to the targeted interrupt. It will remain pending until it is
4098  * deasserted by a write to GICD(A)_CLRSPI_NSR or GICx_CLRSPI_SR. If the interrupt is
4099  * activated between having the pending state added and being deactivated, then the
4100  * interrupt will be active and pending.
4101  *
4102  * Writes to this register have no effect if:
4103  *
4104  * * The value written specifies a Secure SPI, the value is written by a Non-secure
4105  * access, and the value of the corresponding GICD(A)_NSACR register is 0.
4106  * * The value written specifies an invalid SPI.
4107  * * The SPI is already pending.
4108  *
4109  * * Configurations
4110  * When GICD(A)_CTLR.DS==1, this register provides functionality for all SPIs.
4111  */
4112 union ody_gicd_setspi_nsr {
4113 	uint32_t u;
4114 	struct ody_gicd_setspi_nsr_s {
4115 		uint32_t id                          : 16;
4116 		uint32_t reserved_16_31              : 16;
4117 	} s;
4118 	/* struct ody_gicd_setspi_nsr_s cn; */
4119 };
4120 typedef union ody_gicd_setspi_nsr ody_gicd_setspi_nsr_t;
4121 
4122 #define ODY_GICD_SETSPI_NSR ODY_GICD_SETSPI_NSR_FUNC()
4123 static inline uint64_t ODY_GICD_SETSPI_NSR_FUNC(void) __attribute__ ((pure, always_inline));
4124 static inline uint64_t ODY_GICD_SETSPI_NSR_FUNC(void)
4125 {
4126 	return 0x801000000040ll;
4127 }
4128 
4129 #define typedef_ODY_GICD_SETSPI_NSR ody_gicd_setspi_nsr_t
4130 #define bustype_ODY_GICD_SETSPI_NSR CSR_TYPE_NCB32b
4131 #define basename_ODY_GICD_SETSPI_NSR "GICD_SETSPI_NSR"
4132 #define device_bar_ODY_GICD_SETSPI_NSR 0x0 /* PF_BAR0 */
4133 #define busnum_ODY_GICD_SETSPI_NSR 0
4134 #define arguments_ODY_GICD_SETSPI_NSR -1, -1, -1, -1
4135 
4136 /**
4137  * Register (NCB32b) gicd_setspi_sr
4138  *
4139  * GICD Setspi Sr Register
4140  * The GICD_SETSPI_SR characteristics are:
4141  *
4142  * * Purpose
4143  * Adds the pending state to a valid SPI.
4144  * A write to this register changes the state of an inactive SPI to pending, and the
4145  * state of an active SPI to active and pending.
4146  *
4147  * * Usage constraints
4148  * The function of this register depends on whether the targeted SPI is configured to
4149  * be an edge-triggered or level-sensitive interrupt:
4150  *
4151  * * For an edge-triggered interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
4152  * the pending state to the targeted interrupt. It will stop being pending on
4153  * activation, or if the pending state is removed by a write to GICD(A)_CLRSPI_NSR,
4154  * GICx_CLRSPI_SR, or GICD(A)_ICPENDR.
4155  * * For a level-sensitive interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
4156  * the pending state to the targeted interrupt. It will remain pending until it is
4157  * deasserted by a write to GICD(A)_CLRSPI_NSR or GICx_CLRSPI_SR. If the interrupt is
4158  * activated between having the pending state added and being deactivated, then the
4159  * interrupt will be active and pending.
4160  *
4161  * Writes to this register have no effect if:
4162  *
4163  * * The value is written by a Non-secure access.
4164  * * The value written specifies an invalid SPI.
4165  * * The SPI is already pending.
4166  *
4167  * * Configurations
4168  * When GICD(A)_CTLR.DS==1, this register is WI.
4169  * When GICD(A)_CTLR.DS==0, only secure-access.
4170  */
4171 union ody_gicd_setspi_sr {
4172 	uint32_t u;
4173 	struct ody_gicd_setspi_sr_s {
4174 		uint32_t id                          : 16;
4175 		uint32_t reserved_16_31              : 16;
4176 	} s;
4177 	/* struct ody_gicd_setspi_sr_s cn; */
4178 };
4179 typedef union ody_gicd_setspi_sr ody_gicd_setspi_sr_t;
4180 
4181 #define ODY_GICD_SETSPI_SR ODY_GICD_SETSPI_SR_FUNC()
4182 static inline uint64_t ODY_GICD_SETSPI_SR_FUNC(void) __attribute__ ((pure, always_inline));
4183 static inline uint64_t ODY_GICD_SETSPI_SR_FUNC(void)
4184 {
4185 	return 0x801000000050ll;
4186 }
4187 
4188 #define typedef_ODY_GICD_SETSPI_SR ody_gicd_setspi_sr_t
4189 #define bustype_ODY_GICD_SETSPI_SR CSR_TYPE_NCB32b
4190 #define basename_ODY_GICD_SETSPI_SR "GICD_SETSPI_SR"
4191 #define device_bar_ODY_GICD_SETSPI_SR 0x0 /* PF_BAR0 */
4192 #define busnum_ODY_GICD_SETSPI_SR 0
4193 #define arguments_ODY_GICD_SETSPI_SR -1, -1, -1, -1
4194 
4195 /**
4196  * Register (NCB32b) gicd_statusr
4197  *
4198  * GICD Statusr Register
4199  * The GICD_STATUS characteristics are:
4200  *
4201  * * Purpose
4202  * This register is not used.
4203  *
4204  * See the GICT register page for details of error reporting by the GIC
4205  *
4206  * * Usage constraints
4207  * There are no usage constraints.
4208  *
4209  * * Configurations
4210  * This register is RES0 in all GIC configurations.
4211  */
4212 union ody_gicd_statusr {
4213 	uint32_t u;
4214 	struct ody_gicd_statusr_s {
4215 		uint32_t reserved_0_31               : 32;
4216 	} s;
4217 	/* struct ody_gicd_statusr_s cn; */
4218 };
4219 typedef union ody_gicd_statusr ody_gicd_statusr_t;
4220 
4221 #define ODY_GICD_STATUSR ODY_GICD_STATUSR_FUNC()
4222 static inline uint64_t ODY_GICD_STATUSR_FUNC(void) __attribute__ ((pure, always_inline));
4223 static inline uint64_t ODY_GICD_STATUSR_FUNC(void)
4224 {
4225 	return 0x801000000010ll;
4226 }
4227 
4228 #define typedef_ODY_GICD_STATUSR ody_gicd_statusr_t
4229 #define bustype_ODY_GICD_STATUSR CSR_TYPE_NCB32b
4230 #define basename_ODY_GICD_STATUSR "GICD_STATUSR"
4231 #define device_bar_ODY_GICD_STATUSR 0x0 /* PF_BAR0 */
4232 #define busnum_ODY_GICD_STATUSR 0
4233 #define arguments_ODY_GICD_STATUSR -1, -1, -1, -1
4234 
4235 /**
4236  * Register (NCB32b) gicd_typer
4237  *
4238  * GICD Typer Register
4239  * The GICD_TYPER characteristics are:
4240  *
4241  * * Purpose
4242  * Provides information about what features the GIC implementation supports. It indicates:
4243  *
4244  * * Whether the GIC implementation supports two Security states.
4245  * * The maximum number of INTIDs that the GIC implementation supports.
4246  * * The number of PEs that can be used as interrupt targets.
4247  *
4248  * * Usage constraints
4249  * There are no usage constraints.
4250  */
4251 union ody_gicd_typer {
4252 	uint32_t u;
4253 	struct ody_gicd_typer_s {
4254 		uint32_t itlinesnumber               : 5;
4255 		uint32_t cpunumber                   : 3;
4256 		uint32_t espi                        : 1;
4257 		uint32_t reserved_9                  : 1;
4258 		uint32_t securityextn                : 1;
4259 		uint32_t lspi                        : 5;
4260 		uint32_t mbis                        : 1;
4261 		uint32_t lpis                        : 1;
4262 		uint32_t dvis                        : 1;
4263 		uint32_t idbits                      : 5;
4264 		uint32_t a3v                         : 1;
4265 		uint32_t no1n                        : 1;
4266 		uint32_t rss                         : 1;
4267 		uint32_t espi_range                  : 5;
4268 	} s;
4269 	/* struct ody_gicd_typer_s cn; */
4270 };
4271 typedef union ody_gicd_typer ody_gicd_typer_t;
4272 
4273 #define ODY_GICD_TYPER ODY_GICD_TYPER_FUNC()
4274 static inline uint64_t ODY_GICD_TYPER_FUNC(void) __attribute__ ((pure, always_inline));
4275 static inline uint64_t ODY_GICD_TYPER_FUNC(void)
4276 {
4277 	return 0x801000000004ll;
4278 }
4279 
4280 #define typedef_ODY_GICD_TYPER ody_gicd_typer_t
4281 #define bustype_ODY_GICD_TYPER CSR_TYPE_NCB32b
4282 #define basename_ODY_GICD_TYPER "GICD_TYPER"
4283 #define device_bar_ODY_GICD_TYPER 0x0 /* PF_BAR0 */
4284 #define busnum_ODY_GICD_TYPER 0
4285 #define arguments_ODY_GICD_TYPER -1, -1, -1, -1
4286 
4287 /**
4288  * Register (NCB32b) gicd_typer2
4289  *
4290  * GICD Typer2 Register
4291  * The GICD_TYPER2 characteristics are:
4292  *
4293  * * Purpose
4294  * Provides information about which features the GIC implementation supports.
4295  *
4296  * * Usage constraints
4297  * There are no usage constraints.
4298  */
4299 union ody_gicd_typer2 {
4300 	uint32_t u;
4301 	struct ody_gicd_typer2_s {
4302 		uint32_t vid                         : 5;
4303 		uint32_t reserved_5_6                : 2;
4304 		uint32_t vil                         : 1;
4305 		uint32_t reserved_8_31               : 24;
4306 	} s;
4307 	/* struct ody_gicd_typer2_s cn; */
4308 };
4309 typedef union ody_gicd_typer2 ody_gicd_typer2_t;
4310 
4311 #define ODY_GICD_TYPER2 ODY_GICD_TYPER2_FUNC()
4312 static inline uint64_t ODY_GICD_TYPER2_FUNC(void) __attribute__ ((pure, always_inline));
4313 static inline uint64_t ODY_GICD_TYPER2_FUNC(void)
4314 {
4315 	return 0x80100000000cll;
4316 }
4317 
4318 #define typedef_ODY_GICD_TYPER2 ody_gicd_typer2_t
4319 #define bustype_ODY_GICD_TYPER2 CSR_TYPE_NCB32b
4320 #define basename_ODY_GICD_TYPER2 "GICD_TYPER2"
4321 #define device_bar_ODY_GICD_TYPER2 0x0 /* PF_BAR0 */
4322 #define busnum_ODY_GICD_TYPER2 0
4323 #define arguments_ODY_GICD_TYPER2 -1, -1, -1, -1
4324 
4325 /**
4326  * Register (NCB32b) gicd_utilr
4327  *
4328  * GICD Utilr Register
4329  * The GICD_UTILR characteristics are:
4330  *
4331  * * Purpose
4332  *
4333  * This register controls the utilization engine in the LPI caches.
4334  *
4335  * * Usage constraints
4336  * There are no usage constraints.
4337  *
4338  * This register is RES0.
4339  */
4340 union ody_gicd_utilr {
4341 	uint32_t u;
4342 	struct ody_gicd_utilr_s {
4343 		uint32_t uedu                        : 4;
4344 		uint32_t reserved_4_12               : 9;
4345 		uint32_t ueda                        : 1;
4346 		uint32_t uede                        : 1;
4347 		uint32_t uedt                        : 1;
4348 		uint32_t ueou                        : 4;
4349 		uint32_t reserved_20_28              : 9;
4350 		uint32_t ueoa                        : 1;
4351 		uint32_t ueoe                        : 1;
4352 		uint32_t ueot                        : 1;
4353 	} s;
4354 	/* struct ody_gicd_utilr_s cn; */
4355 };
4356 typedef union ody_gicd_utilr ody_gicd_utilr_t;
4357 
4358 #define ODY_GICD_UTILR ODY_GICD_UTILR_FUNC()
4359 static inline uint64_t ODY_GICD_UTILR_FUNC(void) __attribute__ ((pure, always_inline));
4360 static inline uint64_t ODY_GICD_UTILR_FUNC(void)
4361 {
4362 	return 0x801000000034ll;
4363 }
4364 
4365 #define typedef_ODY_GICD_UTILR ody_gicd_utilr_t
4366 #define bustype_ODY_GICD_UTILR CSR_TYPE_NCB32b
4367 #define basename_ODY_GICD_UTILR "GICD_UTILR"
4368 #define device_bar_ODY_GICD_UTILR 0x0 /* PF_BAR0 */
4369 #define busnum_ODY_GICD_UTILR 0
4370 #define arguments_ODY_GICD_UTILR -1, -1, -1, -1
4371 
4372 /**
4373  * Register (NCB) gicda_cfgid
4374  *
4375  * GICDA Cfgid Register
4376  * The GICDA_CFGID characteristics are:
4377  *
4378  * * Purpose
4379  * This register contains information that enables test software to determine if the
4380  * GIC-700 system is compatible.
4381  *
4382  * * Usage constraints
4383  * Some bits are only visible to secure accesses.
4384  */
4385 union ody_gicda_cfgid {
4386 	uint64_t u;
4387 	struct ody_gicda_cfgid_s {
4388 		uint64_t socketonline                : 1;
4389 		uint64_t reserved_1_3                : 3;
4390 		uint64_t socketnumber                : 4;
4391 		uint64_t itscount                    : 4;
4392 		uint64_t lpisupport                  : 1;
4393 		uint64_t v41support                  : 1;
4394 		uint64_t chipaffinitylevel           : 1;
4395 		uint64_t spigroups                   : 6;
4396 		uint64_t localchipaddressing         : 1;
4397 		uint64_t reserved_22_23              : 2;
4398 		uint64_t rdcollapsesupport           : 1;
4399 		uint64_t extendeditssupport          : 1;
4400 		uint64_t reserved_26_27              : 2;
4401 		uint64_t chips                       : 4;
4402 		uint64_t affinity0bits               : 4;
4403 		uint64_t affinity1bits               : 4;
4404 		uint64_t affinity2bits               : 4;
4405 		uint64_t affinity3bits               : 4;
4406 		uint64_t pewidth                     : 5;
4407 		uint64_t reserved_53_63              : 11;
4408 	} s;
4409 	/* struct ody_gicda_cfgid_s cn; */
4410 };
4411 typedef union ody_gicda_cfgid ody_gicda_cfgid_t;
4412 
4413 #define ODY_GICDA_CFGID ODY_GICDA_CFGID_FUNC()
4414 static inline uint64_t ODY_GICDA_CFGID_FUNC(void) __attribute__ ((pure, always_inline));
4415 static inline uint64_t ODY_GICDA_CFGID_FUNC(void)
4416 {
4417 	return 0x80100150f000ll;
4418 }
4419 
4420 #define typedef_ODY_GICDA_CFGID ody_gicda_cfgid_t
4421 #define bustype_ODY_GICDA_CFGID CSR_TYPE_NCB
4422 #define basename_ODY_GICDA_CFGID "GICDA_CFGID"
4423 #define busnum_ODY_GICDA_CFGID 0
4424 #define arguments_ODY_GICDA_CFGID -1, -1, -1, -1
4425 
4426 /**
4427  * Register (NCB32b) gicda_cidr0
4428  *
4429  * GICDA Cidr0 Register
4430  * The GICDA_CIDR0 characteristics are:
4431  *
4432  * * Purpose
4433  * This register is one of the Component Identification Registers and returns the first
4434  * part of the Preamble.
4435  *
4436  * * Usage constraints
4437  * There are no usage constraints.
4438  */
4439 union ody_gicda_cidr0 {
4440 	uint32_t u;
4441 	struct ody_gicda_cidr0_s {
4442 		uint32_t prmbl_0                     : 8;
4443 		uint32_t reserved_8_31               : 24;
4444 	} s;
4445 	/* struct ody_gicda_cidr0_s cn; */
4446 };
4447 typedef union ody_gicda_cidr0 ody_gicda_cidr0_t;
4448 
4449 #define ODY_GICDA_CIDR0 ODY_GICDA_CIDR0_FUNC()
4450 static inline uint64_t ODY_GICDA_CIDR0_FUNC(void) __attribute__ ((pure, always_inline));
4451 static inline uint64_t ODY_GICDA_CIDR0_FUNC(void)
4452 {
4453 	return 0x80100150fff0ll;
4454 }
4455 
4456 #define typedef_ODY_GICDA_CIDR0 ody_gicda_cidr0_t
4457 #define bustype_ODY_GICDA_CIDR0 CSR_TYPE_NCB32b
4458 #define basename_ODY_GICDA_CIDR0 "GICDA_CIDR0"
4459 #define busnum_ODY_GICDA_CIDR0 0
4460 #define arguments_ODY_GICDA_CIDR0 -1, -1, -1, -1
4461 
4462 /**
4463  * Register (NCB32b) gicda_cidr1
4464  *
4465  * GICDA Cidr1 Register
4466  * The GICDA_CIDR1 characteristics are:
4467  *
4468  * * Purpose
4469  * This register is one of the Component Identification Registers and returns the
4470  * second part of the Preamble as well as the Component Class.
4471  *
4472  * * Usage constraints
4473  * There are no usage constraints.
4474  */
4475 union ody_gicda_cidr1 {
4476 	uint32_t u;
4477 	struct ody_gicda_cidr1_s {
4478 		uint32_t prmbl_1                     : 4;
4479 		uint32_t class_f                     : 4;
4480 		uint32_t reserved_8_31               : 24;
4481 	} s;
4482 	/* struct ody_gicda_cidr1_s cn; */
4483 };
4484 typedef union ody_gicda_cidr1 ody_gicda_cidr1_t;
4485 
4486 #define ODY_GICDA_CIDR1 ODY_GICDA_CIDR1_FUNC()
4487 static inline uint64_t ODY_GICDA_CIDR1_FUNC(void) __attribute__ ((pure, always_inline));
4488 static inline uint64_t ODY_GICDA_CIDR1_FUNC(void)
4489 {
4490 	return 0x80100150fff4ll;
4491 }
4492 
4493 #define typedef_ODY_GICDA_CIDR1 ody_gicda_cidr1_t
4494 #define bustype_ODY_GICDA_CIDR1 CSR_TYPE_NCB32b
4495 #define basename_ODY_GICDA_CIDR1 "GICDA_CIDR1"
4496 #define busnum_ODY_GICDA_CIDR1 0
4497 #define arguments_ODY_GICDA_CIDR1 -1, -1, -1, -1
4498 
4499 /**
4500  * Register (NCB32b) gicda_cidr2
4501  *
4502  * GICDA Cidr2 Register
4503  * The GICDA_CIDR2 characteristics are:
4504  *
4505  * * Purpose
4506  * This register is one of the Component Identification Registers and returns the third
4507  * part of the Preamble.
4508  *
4509  * * Usage constraints
4510  * There are no usage constraints.
4511  */
4512 union ody_gicda_cidr2 {
4513 	uint32_t u;
4514 	struct ody_gicda_cidr2_s {
4515 		uint32_t prmbl_2                     : 8;
4516 		uint32_t reserved_8_31               : 24;
4517 	} s;
4518 	/* struct ody_gicda_cidr2_s cn; */
4519 };
4520 typedef union ody_gicda_cidr2 ody_gicda_cidr2_t;
4521 
4522 #define ODY_GICDA_CIDR2 ODY_GICDA_CIDR2_FUNC()
4523 static inline uint64_t ODY_GICDA_CIDR2_FUNC(void) __attribute__ ((pure, always_inline));
4524 static inline uint64_t ODY_GICDA_CIDR2_FUNC(void)
4525 {
4526 	return 0x80100150fff8ll;
4527 }
4528 
4529 #define typedef_ODY_GICDA_CIDR2 ody_gicda_cidr2_t
4530 #define bustype_ODY_GICDA_CIDR2 CSR_TYPE_NCB32b
4531 #define basename_ODY_GICDA_CIDR2 "GICDA_CIDR2"
4532 #define busnum_ODY_GICDA_CIDR2 0
4533 #define arguments_ODY_GICDA_CIDR2 -1, -1, -1, -1
4534 
4535 /**
4536  * Register (NCB32b) gicda_cidr3
4537  *
4538  * GICDA Cidr3 Register
4539  * The GICDA_CIDR3 characteristics are:
4540  *
4541  * * Purpose
4542  * This register is one of the Component Identification Registers and returns the
4543  * fourth part of the Preamble.
4544  *
4545  * * Usage constraints
4546  * There are no usage constraints.
4547  */
4548 union ody_gicda_cidr3 {
4549 	uint32_t u;
4550 	struct ody_gicda_cidr3_s {
4551 		uint32_t prmbl_3                     : 8;
4552 		uint32_t reserved_8_31               : 24;
4553 	} s;
4554 	/* struct ody_gicda_cidr3_s cn; */
4555 };
4556 typedef union ody_gicda_cidr3 ody_gicda_cidr3_t;
4557 
4558 #define ODY_GICDA_CIDR3 ODY_GICDA_CIDR3_FUNC()
4559 static inline uint64_t ODY_GICDA_CIDR3_FUNC(void) __attribute__ ((pure, always_inline));
4560 static inline uint64_t ODY_GICDA_CIDR3_FUNC(void)
4561 {
4562 	return 0x80100150fffcll;
4563 }
4564 
4565 #define typedef_ODY_GICDA_CIDR3 ody_gicda_cidr3_t
4566 #define bustype_ODY_GICDA_CIDR3 CSR_TYPE_NCB32b
4567 #define basename_ODY_GICDA_CIDR3 "GICDA_CIDR3"
4568 #define busnum_ODY_GICDA_CIDR3 0
4569 #define arguments_ODY_GICDA_CIDR3 -1, -1, -1, -1
4570 
4571 /**
4572  * Register (NCB32b) gicda_clrspi_nsr
4573  *
4574  * GICDA Clrspi Nsr Register
4575  * The GICDA_CLRSPI_NSR characteristics are:
4576  *
4577  * * Purpose
4578  * Removes the pending state to a valid SPI if permitted by the Security state of the
4579  * access and the GICD(A)_NSACR value for that SPI.
4580  * A write to this register changes the state of an pending SPI to inactive, and the
4581  * state of an active and pending SPI to active.
4582  *
4583  * * Usage constraints
4584  * The function of this register depends on whether the targeted SPI is configured to
4585  * be an edge-triggered or level-sensitive interrupt:
4586  *
4587  * * For an edge-triggered interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
4588  * the pending state to the targeted interrupt. It will stop being pending on
4589  * activation, or if the pending state is removed by a write to GICD(A)_CLRSPI_NSR,
4590  * GICx_CLRSPI_SR, or GICD(A)_ICPENDR.
4591  * * For a level-sensitive interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
4592  * the pending state to the targeted interrupt. It will remain pending until it is
4593  * deasserted by a write to GICD(A)_CLRSPI_NSR or GICx_CLRSPI_SR. If the interrupt is
4594  * activated between having the pending state added and being deactivated, then the
4595  * interrupt will be active and pending.
4596  *
4597  * Writes to this register have no effect if:
4598  *
4599  * * The value written specifies a Secure SPI, the value is written by a Non-secure
4600  * access, and the value of the corresponding GICD(A)_NSACR register is less than 0b10.
4601  * * The value written specifies an invalid SPI.
4602  * * The SPI is not pending.
4603  *
4604  * * Configurations
4605  * When GICD(A)_CTLR.DS==1, this register provides functionality for all SPIs.
4606  */
4607 union ody_gicda_clrspi_nsr {
4608 	uint32_t u;
4609 	struct ody_gicda_clrspi_nsr_s {
4610 		uint32_t id                          : 16;
4611 		uint32_t reserved_16_31              : 16;
4612 	} s;
4613 	/* struct ody_gicda_clrspi_nsr_s cn; */
4614 };
4615 typedef union ody_gicda_clrspi_nsr ody_gicda_clrspi_nsr_t;
4616 
4617 #define ODY_GICDA_CLRSPI_NSR ODY_GICDA_CLRSPI_NSR_FUNC()
4618 static inline uint64_t ODY_GICDA_CLRSPI_NSR_FUNC(void) __attribute__ ((pure, always_inline));
4619 static inline uint64_t ODY_GICDA_CLRSPI_NSR_FUNC(void)
4620 {
4621 	return 0x801001500048ll;
4622 }
4623 
4624 #define typedef_ODY_GICDA_CLRSPI_NSR ody_gicda_clrspi_nsr_t
4625 #define bustype_ODY_GICDA_CLRSPI_NSR CSR_TYPE_NCB32b
4626 #define basename_ODY_GICDA_CLRSPI_NSR "GICDA_CLRSPI_NSR"
4627 #define busnum_ODY_GICDA_CLRSPI_NSR 0
4628 #define arguments_ODY_GICDA_CLRSPI_NSR -1, -1, -1, -1
4629 
4630 /**
4631  * Register (NCB32b) gicda_clrspi_sr
4632  *
4633  * GICDA Clrspi Sr Register
4634  * The GICDA_CLRSPI_SR characteristics are:
4635  *
4636  * * Purpose
4637  * Removes the pending state from a valid SPI.
4638  * A write to this register changes the state of a pending SPI to inactive, and the
4639  * state of an active and pending SPI to active.
4640  *
4641  * * Usage constraints
4642  * The function of this register depends on whether the targeted SPI is configured to
4643  * be an edge-triggered or level-sensitive interrupt:
4644  *
4645  * * For an edge-triggered interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
4646  * the pending state to the targeted interrupt. It will stop being pending on
4647  * activation, or if the pending state is removed by a write to GICD(A)_CLRSPI_NSR,
4648  * GICx_CLRSPI_SR, or GICD(A)_ICPENDR.
4649  * * For a level-sensitive interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
4650  * the pending state to the targeted interrupt. It will remain pending until it is
4651  * deasserted by a write to GICD(A)_CLRSPI_NSR or GICx_CLRSPI_SR. If the interrupt is
4652  * activated between having the pending state added and being deactivated, then the
4653  * interrupt will be active and pending.
4654  *
4655  * Writes to this register have no effect if:
4656  *
4657  * * The value is written by a Non-secure access.
4658  * * The value written specifies an invalid SPI.
4659  * * The SPI is not pending.
4660  *
4661  * * Configurations
4662  * When GICD(A)_CTLR.DS==1, this register is WI.
4663  * When GICD(A)_CTLR.DS==0, only secure-access.
4664  */
4665 union ody_gicda_clrspi_sr {
4666 	uint32_t u;
4667 	struct ody_gicda_clrspi_sr_s {
4668 		uint32_t id                          : 16;
4669 		uint32_t reserved_16_31              : 16;
4670 	} s;
4671 	/* struct ody_gicda_clrspi_sr_s cn; */
4672 };
4673 typedef union ody_gicda_clrspi_sr ody_gicda_clrspi_sr_t;
4674 
4675 #define ODY_GICDA_CLRSPI_SR ODY_GICDA_CLRSPI_SR_FUNC()
4676 static inline uint64_t ODY_GICDA_CLRSPI_SR_FUNC(void) __attribute__ ((pure, always_inline));
4677 static inline uint64_t ODY_GICDA_CLRSPI_SR_FUNC(void)
4678 {
4679 	return 0x801001500058ll;
4680 }
4681 
4682 #define typedef_ODY_GICDA_CLRSPI_SR ody_gicda_clrspi_sr_t
4683 #define bustype_ODY_GICDA_CLRSPI_SR CSR_TYPE_NCB32b
4684 #define basename_ODY_GICDA_CLRSPI_SR "GICDA_CLRSPI_SR"
4685 #define busnum_ODY_GICDA_CLRSPI_SR 0
4686 #define arguments_ODY_GICDA_CLRSPI_SR -1, -1, -1, -1
4687 
4688 /**
4689  * Register (NCB32b) gicda_ctlr
4690  *
4691  * GICDA Ctlr Register
4692  * The GICDA_CTLR characteristics are:
4693  *
4694  * * Purpose
4695  * Contains Distributor controls including interrupt group enables
4696  *
4697  * * Usage constraints
4698  * None
4699  *
4700  * * Configurations
4701  * The format of this register depends on the Security state of the access and the
4702  * number of Security states supported, which is specified by GICD(A)_CTLR.DS.
4703  */
4704 union ody_gicda_ctlr {
4705 	uint32_t u;
4706 	struct ody_gicda_ctlr_s {
4707 		uint32_t enablegrp0                  : 1;
4708 		uint32_t enablegrp1_ns               : 1;
4709 		uint32_t enablegrp1_s                : 1;
4710 		uint32_t reserved_3                  : 1;
4711 		uint32_t are_s                       : 1;
4712 		uint32_t are_ns                      : 1;
4713 		uint32_t ds                          : 1;
4714 		uint32_t e1nwf                       : 1;
4715 		uint32_t reserved_8_30               : 23;
4716 		uint32_t rwp                         : 1;
4717 	} s;
4718 	/* struct ody_gicda_ctlr_s cn; */
4719 };
4720 typedef union ody_gicda_ctlr ody_gicda_ctlr_t;
4721 
4722 #define ODY_GICDA_CTLR ODY_GICDA_CTLR_FUNC()
4723 static inline uint64_t ODY_GICDA_CTLR_FUNC(void) __attribute__ ((pure, always_inline));
4724 static inline uint64_t ODY_GICDA_CTLR_FUNC(void)
4725 {
4726 	return 0x801001500000ll;
4727 }
4728 
4729 #define typedef_ODY_GICDA_CTLR ody_gicda_ctlr_t
4730 #define bustype_ODY_GICDA_CTLR CSR_TYPE_NCB32b
4731 #define basename_ODY_GICDA_CTLR "GICDA_CTLR"
4732 #define busnum_ODY_GICDA_CTLR 0
4733 #define arguments_ODY_GICDA_CTLR -1, -1, -1, -1
4734 
4735 /**
4736  * Register (NCB) gicda_errinsr#
4737  *
4738  * GICDA Errinsr Register
4739  * The GICDA_ERRINSR0 characteristics are:
4740  *
4741  * * Purpose
4742  * This register can inject errors into the SGI RAM. You can use this register to test
4743  * your error recovery software.
4744  *
4745  * * Usage constraints
4746  * If GICD(A)_SAC.GICTNS == 0, then only Secure software can access the functions of this register.
4747  *
4748  * \> *Note*
4749  * \> The bit assignments within this register depend on whether a write access or read access occurs.
4750  */
4751 union ody_gicda_errinsrx {
4752 	uint64_t u;
4753 	struct ody_gicda_errinsrx_s {
4754 		uint64_t errins1loc                  : 9;
4755 		uint64_t reserved_9_14               : 6;
4756 		uint64_t errins1valid                : 1;
4757 		uint64_t errins2loc                  : 9;
4758 		uint64_t reserved_25_30              : 6;
4759 		uint64_t errins2valid                : 1;
4760 		uint64_t addr                        : 16;
4761 		uint64_t reserved_48_59              : 12;
4762 		uint64_t disablewritecheck           : 1;
4763 		uint64_t reserved_61_62              : 2;
4764 		uint64_t valid                       : 1;
4765 	} s;
4766 	/* struct ody_gicda_errinsrx_s cn; */
4767 };
4768 typedef union ody_gicda_errinsrx ody_gicda_errinsrx_t;
4769 
4770 static inline uint64_t ODY_GICDA_ERRINSRX(uint64_t a) __attribute__ ((pure, always_inline));
4771 static inline uint64_t ODY_GICDA_ERRINSRX(uint64_t a)
4772 {
4773 	if (a <= 14)
4774 		return 0x80100150ea00ll + 8ll * ((a) & 0xf);
4775 	__ody_csr_fatal("GICDA_ERRINSRX", 1, a, 0, 0, 0, 0, 0);
4776 }
4777 
4778 #define typedef_ODY_GICDA_ERRINSRX(a) ody_gicda_errinsrx_t
4779 #define bustype_ODY_GICDA_ERRINSRX(a) CSR_TYPE_NCB
4780 #define basename_ODY_GICDA_ERRINSRX(a) "GICDA_ERRINSRX"
4781 #define busnum_ODY_GICDA_ERRINSRX(a) (a)
4782 #define arguments_ODY_GICDA_ERRINSRX(a) (a), -1, -1, -1
4783 
4784 /**
4785  * Register (NCB32b) gicda_fctlr
4786  *
4787  * GICDA Fctlr Register
4788  * The GICDA_FCTLR characteristics are:
4789  *
4790  * * Purpose
4791  * This register controls non-architectural functionality such as the scrubbing of all
4792  * RAMs in the local Distributor.
4793  *
4794  * * Usage constraints
4795  * Some bits are only accessible by Secure accesses.
4796  */
4797 union ody_gicda_fctlr {
4798 	uint32_t u;
4799 	struct ody_gicda_fctlr_s {
4800 		uint32_t sip                         : 1;
4801 		uint32_t reserved_1_15               : 15;
4802 		uint32_t nsacr                       : 2;
4803 		uint32_t reserved_18_19              : 2;
4804 		uint32_t clpl                        : 4;
4805 		uint32_t reserved_24_25              : 2;
4806 		uint32_t pos                         : 1;
4807 		uint32_t reserved_27_31              : 5;
4808 	} s;
4809 	struct ody_gicda_fctlr_cn {
4810 		uint32_t sip                         : 1;
4811 		uint32_t reserved_1                  : 1;
4812 		uint32_t reserved_2                  : 1;
4813 		uint32_t reserved_3                  : 1;
4814 		uint32_t reserved_4_15               : 12;
4815 		uint32_t nsacr                       : 2;
4816 		uint32_t reserved_18                 : 1;
4817 		uint32_t reserved_19                 : 1;
4818 		uint32_t clpl                        : 4;
4819 		uint32_t reserved_24_25              : 2;
4820 		uint32_t pos                         : 1;
4821 		uint32_t reserved_27_31              : 5;
4822 	} cn;
4823 };
4824 typedef union ody_gicda_fctlr ody_gicda_fctlr_t;
4825 
4826 #define ODY_GICDA_FCTLR ODY_GICDA_FCTLR_FUNC()
4827 static inline uint64_t ODY_GICDA_FCTLR_FUNC(void) __attribute__ ((pure, always_inline));
4828 static inline uint64_t ODY_GICDA_FCTLR_FUNC(void)
4829 {
4830 	return 0x801001500020ll;
4831 }
4832 
4833 #define typedef_ODY_GICDA_FCTLR ody_gicda_fctlr_t
4834 #define bustype_ODY_GICDA_FCTLR CSR_TYPE_NCB32b
4835 #define basename_ODY_GICDA_FCTLR "GICDA_FCTLR"
4836 #define busnum_ODY_GICDA_FCTLR 0
4837 #define arguments_ODY_GICDA_FCTLR -1, -1, -1, -1
4838 
4839 /**
4840  * Register (NCB32b) gicda_fctlr2
4841  *
4842  * GICDA Fctlr2 Register
4843  * The GICDA_FCTLR2 characteristics are:
4844  *
4845  * * Purpose
4846  * This register controls clock gating and other non-architectural controls in the local Distributor.
4847  *
4848  * * Usage constraints
4849  * Only accessible by Secure accesses or when GICD(A)_DS.DS == 1.
4850  */
4851 union ody_gicda_fctlr2 {
4852 	uint32_t u;
4853 	struct ody_gicda_fctlr2_s {
4854 		uint32_t cgo                         : 12;
4855 		uint32_t reserved_12_15              : 4;
4856 		uint32_t rws                         : 1;
4857 		uint32_t dcc                         : 1;
4858 		uint32_t qdeny                       : 1;
4859 		uint32_t rwc                         : 1;
4860 		uint32_t reserved_20_24              : 5;
4861 		uint32_t slc                         : 1;
4862 		uint32_t reserved_26_27              : 2;
4863 		uint32_t rcd                         : 1;
4864 		uint32_t irp                         : 1;
4865 		uint32_t awp                         : 1;
4866 		uint32_t arp                         : 1;
4867 	} s;
4868 	struct ody_gicda_fctlr2_cn {
4869 		uint32_t cgo                         : 12;
4870 		uint32_t reserved_12_14              : 3;
4871 		uint32_t reserved_15                 : 1;
4872 		uint32_t rws                         : 1;
4873 		uint32_t dcc                         : 1;
4874 		uint32_t qdeny                       : 1;
4875 		uint32_t rwc                         : 1;
4876 		uint32_t reserved_20_24              : 5;
4877 		uint32_t slc                         : 1;
4878 		uint32_t reserved_26_27              : 2;
4879 		uint32_t rcd                         : 1;
4880 		uint32_t irp                         : 1;
4881 		uint32_t awp                         : 1;
4882 		uint32_t arp                         : 1;
4883 	} cn;
4884 };
4885 typedef union ody_gicda_fctlr2 ody_gicda_fctlr2_t;
4886 
4887 #define ODY_GICDA_FCTLR2 ODY_GICDA_FCTLR2_FUNC()
4888 static inline uint64_t ODY_GICDA_FCTLR2_FUNC(void) __attribute__ ((pure, always_inline));
4889 static inline uint64_t ODY_GICDA_FCTLR2_FUNC(void)
4890 {
4891 	return 0x801001500030ll;
4892 }
4893 
4894 #define typedef_ODY_GICDA_FCTLR2 ody_gicda_fctlr2_t
4895 #define bustype_ODY_GICDA_FCTLR2 CSR_TYPE_NCB32b
4896 #define basename_ODY_GICDA_FCTLR2 "GICDA_FCTLR2"
4897 #define busnum_ODY_GICDA_FCTLR2 0
4898 #define arguments_ODY_GICDA_FCTLR2 -1, -1, -1, -1
4899 
4900 /**
4901  * Register (NCB32b) gicda_fctlr3
4902  *
4903  * GICDA Fctlr3 Register
4904  * The GICDA_FCTLR3 characteristics are:
4905  *
4906  * * Purpose
4907  *
4908  * This register is RES0.
4909  *
4910  * * Usage constraints
4911  * Only accessible by Secure accesses or when GICD(A)_DS.DS == 1.
4912  */
4913 union ody_gicda_fctlr3 {
4914 	uint32_t u;
4915 	struct ody_gicda_fctlr3_s {
4916 		uint32_t ncp0                        : 5;
4917 		uint32_t reserved_5_6                : 2;
4918 		uint32_t scp1                        : 1;
4919 		uint32_t reserved_8_31               : 24;
4920 	} s;
4921 	/* struct ody_gicda_fctlr3_s cn; */
4922 };
4923 typedef union ody_gicda_fctlr3 ody_gicda_fctlr3_t;
4924 
4925 #define ODY_GICDA_FCTLR3 ODY_GICDA_FCTLR3_FUNC()
4926 static inline uint64_t ODY_GICDA_FCTLR3_FUNC(void) __attribute__ ((pure, always_inline));
4927 static inline uint64_t ODY_GICDA_FCTLR3_FUNC(void)
4928 {
4929 	return 0x801001500038ll;
4930 }
4931 
4932 #define typedef_ODY_GICDA_FCTLR3 ody_gicda_fctlr3_t
4933 #define bustype_ODY_GICDA_FCTLR3 CSR_TYPE_NCB32b
4934 #define basename_ODY_GICDA_FCTLR3 "GICDA_FCTLR3"
4935 #define busnum_ODY_GICDA_FCTLR3 0
4936 #define arguments_ODY_GICDA_FCTLR3 -1, -1, -1, -1
4937 
4938 /**
4939  * Register (NCB32b) gicda_icactiver#
4940  *
4941  * GICDA Icactiver Register
4942  * The GICDGICDA_ICACTIVER1 characteristics are:
4943  *
4944  * * Purpose
4945  * Deactivates the corresponding interrupt. These registers are used when saving and
4946  * restoring state for interrupts 32 to 63.
4947  *
4948  * * Usage constraints
4949  * For INTID m, when DIV and MOD are the integer division and modulo operations:
4950  *
4951  * * The corresponding GICD(A)_ICACTIVER number, n, is given by n = m DIV 32.
4952  * * The offset of the required ICACTIVER is (0x380 + (4*n)).
4953  * * The bit number of the required group modifier bit in this register is m MOD 32.
4954  *
4955  * If GICD(A)_CTLR.DS==0, unless the GICD(A)_NSACR registers permit Non-secure software
4956  * to control Group 0 and Secure Group 1 interrupts, any bits that correspond to Group
4957  * 0 or Secure Group 1 interrupts are accessible only by Secure accesses and are RAZ/WI
4958  * to Non-secure accesses.
4959  *
4960  * * Configurations
4961  * Accessing registers where n is greater than (GICD(A)_TYPER.ITLinesNumber+1) may
4962  * result in an error being logged. (See GICD_ERR0CTLR for details).
4963  */
4964 union ody_gicda_icactiverx {
4965 	uint32_t u;
4966 	struct ody_gicda_icactiverx_s {
4967 		uint32_t clear_active_bit0           : 1;
4968 		uint32_t clear_active_bit1           : 1;
4969 		uint32_t clear_active_bit2           : 1;
4970 		uint32_t clear_active_bit3           : 1;
4971 		uint32_t clear_active_bit4           : 1;
4972 		uint32_t clear_active_bit5           : 1;
4973 		uint32_t clear_active_bit6           : 1;
4974 		uint32_t clear_active_bit7           : 1;
4975 		uint32_t clear_active_bit8           : 1;
4976 		uint32_t clear_active_bit9           : 1;
4977 		uint32_t clear_active_bit10          : 1;
4978 		uint32_t clear_active_bit11          : 1;
4979 		uint32_t clear_active_bit12          : 1;
4980 		uint32_t clear_active_bit13          : 1;
4981 		uint32_t clear_active_bit14          : 1;
4982 		uint32_t clear_active_bit15          : 1;
4983 		uint32_t clear_active_bit16          : 1;
4984 		uint32_t clear_active_bit17          : 1;
4985 		uint32_t clear_active_bit18          : 1;
4986 		uint32_t clear_active_bit19          : 1;
4987 		uint32_t clear_active_bit20          : 1;
4988 		uint32_t clear_active_bit21          : 1;
4989 		uint32_t clear_active_bit22          : 1;
4990 		uint32_t clear_active_bit23          : 1;
4991 		uint32_t clear_active_bit24          : 1;
4992 		uint32_t clear_active_bit25          : 1;
4993 		uint32_t clear_active_bit26          : 1;
4994 		uint32_t clear_active_bit27          : 1;
4995 		uint32_t clear_active_bit28          : 1;
4996 		uint32_t clear_active_bit29          : 1;
4997 		uint32_t clear_active_bit30          : 1;
4998 		uint32_t clear_active_bit31          : 1;
4999 	} s;
5000 	/* struct ody_gicda_icactiverx_s cn; */
5001 };
5002 typedef union ody_gicda_icactiverx ody_gicda_icactiverx_t;
5003 
5004 static inline uint64_t ODY_GICDA_ICACTIVERX(uint64_t a) __attribute__ ((pure, always_inline));
5005 static inline uint64_t ODY_GICDA_ICACTIVERX(uint64_t a)
5006 {
5007 	if ((a >= 1) && (a <= 16))
5008 		return 0x801001500380ll + 4ll * ((a) & 0x1f);
5009 	__ody_csr_fatal("GICDA_ICACTIVERX", 1, a, 0, 0, 0, 0, 0);
5010 }
5011 
5012 #define typedef_ODY_GICDA_ICACTIVERX(a) ody_gicda_icactiverx_t
5013 #define bustype_ODY_GICDA_ICACTIVERX(a) CSR_TYPE_NCB32b
5014 #define basename_ODY_GICDA_ICACTIVERX(a) "GICDA_ICACTIVERX"
5015 #define busnum_ODY_GICDA_ICACTIVERX(a) (a)
5016 #define arguments_ODY_GICDA_ICACTIVERX(a) (a), -1, -1, -1
5017 
5018 /**
5019  * Register (NCB32b) gicda_icenabler#
5020  *
5021  * GICDA Icenabler Register
5022  * The GICDA_ICENABLER1 characteristics are:
5023  *
5024  * * Purpose
5025  * Disables forwarding of the corresponding interrupt to the CPU interfaces for interrupts 32 to 63.
5026  *
5027  * * Usage constraints
5028  * For INTID m, when DIV and MOD are the integer division and modulo operations:
5029  *
5030  * * The corresponding GICD(A)_ICENABLER number, n, is given by n = m DIV 32.
5031  * * The offset of the required ICENABLER is (0x180 + (4*n)).
5032  * * The bit number of the required group modifier bit in this register is m MOD 32.
5033  *
5034  * \> *Note*
5035  * \> Writing a 1 to a GICD(A)_ICENABLER bit only disables the forwarding of the
5036  * corresponding interrupt from the Distributor to any CPU interface. It does not
5037  * prevent the interrupt from changing state, for example becoming pending or active
5038  * and pending if it is already active.
5039  *
5040  * When GICD(A)_CTLR.DS==0, bits corresponding to Group 0 and Secure Group 1 interrupts
5041  * are RAZ/WI to Non-secure accesses.
5042  *
5043  * Completion of a write to this register does not guarantee that the effects of the
5044  * write are visible throughout the affinity hierarchy. To ensure an enable has been
5045  * cleared, software must write to the register with bits set to 1 to clear the
5046  * required enables. Software must then poll GICD(A)_CTLR.RWP until it has the value
5047  * zero.
5048  *
5049  * * Configurations
5050  * Accessing registers where n is greater than (GICD(A)_TYPER.ITLinesNumber+1) may
5051  * result in an error being logged. (See GICD_ERR0CTLR for details).
5052  */
5053 union ody_gicda_icenablerx {
5054 	uint32_t u;
5055 	struct ody_gicda_icenablerx_s {
5056 		uint32_t clear_enable_bit0           : 1;
5057 		uint32_t clear_enable_bit1           : 1;
5058 		uint32_t clear_enable_bit2           : 1;
5059 		uint32_t clear_enable_bit3           : 1;
5060 		uint32_t clear_enable_bit4           : 1;
5061 		uint32_t clear_enable_bit5           : 1;
5062 		uint32_t clear_enable_bit6           : 1;
5063 		uint32_t clear_enable_bit7           : 1;
5064 		uint32_t clear_enable_bit8           : 1;
5065 		uint32_t clear_enable_bit9           : 1;
5066 		uint32_t clear_enable_bit10          : 1;
5067 		uint32_t clear_enable_bit11          : 1;
5068 		uint32_t clear_enable_bit12          : 1;
5069 		uint32_t clear_enable_bit13          : 1;
5070 		uint32_t clear_enable_bit14          : 1;
5071 		uint32_t clear_enable_bit15          : 1;
5072 		uint32_t clear_enable_bit16          : 1;
5073 		uint32_t clear_enable_bit17          : 1;
5074 		uint32_t clear_enable_bit18          : 1;
5075 		uint32_t clear_enable_bit19          : 1;
5076 		uint32_t clear_enable_bit20          : 1;
5077 		uint32_t clear_enable_bit21          : 1;
5078 		uint32_t clear_enable_bit22          : 1;
5079 		uint32_t clear_enable_bit23          : 1;
5080 		uint32_t clear_enable_bit24          : 1;
5081 		uint32_t clear_enable_bit25          : 1;
5082 		uint32_t clear_enable_bit26          : 1;
5083 		uint32_t clear_enable_bit27          : 1;
5084 		uint32_t clear_enable_bit28          : 1;
5085 		uint32_t clear_enable_bit29          : 1;
5086 		uint32_t clear_enable_bit30          : 1;
5087 		uint32_t clear_enable_bit31          : 1;
5088 	} s;
5089 	/* struct ody_gicda_icenablerx_s cn; */
5090 };
5091 typedef union ody_gicda_icenablerx ody_gicda_icenablerx_t;
5092 
5093 static inline uint64_t ODY_GICDA_ICENABLERX(uint64_t a) __attribute__ ((pure, always_inline));
5094 static inline uint64_t ODY_GICDA_ICENABLERX(uint64_t a)
5095 {
5096 	if ((a >= 1) && (a <= 16))
5097 		return 0x801001500180ll + 4ll * ((a) & 0x1f);
5098 	__ody_csr_fatal("GICDA_ICENABLERX", 1, a, 0, 0, 0, 0, 0);
5099 }
5100 
5101 #define typedef_ODY_GICDA_ICENABLERX(a) ody_gicda_icenablerx_t
5102 #define bustype_ODY_GICDA_ICENABLERX(a) CSR_TYPE_NCB32b
5103 #define basename_ODY_GICDA_ICENABLERX(a) "GICDA_ICENABLERX"
5104 #define busnum_ODY_GICDA_ICENABLERX(a) (a)
5105 #define arguments_ODY_GICDA_ICENABLERX(a) (a), -1, -1, -1
5106 
5107 /**
5108  * Register (NCB32b) gicda_icerrr#
5109  *
5110  * GICDA Icerrr Register
5111  * The GICDA_ICERRR1 characteristics are:
5112  *
5113  * * Purpose
5114  *
5115  * These registers can clear the error status of an SPI or return the error status of
5116  * an SPI for interrupts 16 to 31.
5117  *
5118  * * Usage constraints
5119  * For interrupt ID m, when DIV and MOD are the integer division and modulo operations:
5120  *
5121  * * The corresponding GICD(A)_ICERRR number, n, is given by n = m DIV 16.
5122  * * The offset of the required ICERRR register is (0xE100 + (4*n)).
5123  *
5124  * * Configurations
5125  * Accessing registers where n is greater than 2*(GICD(A)_TYPER.ITLinesNumber+1) may
5126  * result in an error being logged. (See GICD_ERR0CTLR for details).
5127  */
5128 union ody_gicda_icerrrx {
5129 	uint32_t u;
5130 	struct ody_gicda_icerrrx_s {
5131 		uint32_t status0                     : 1;
5132 		uint32_t status1                     : 1;
5133 		uint32_t status2                     : 1;
5134 		uint32_t status3                     : 1;
5135 		uint32_t status4                     : 1;
5136 		uint32_t status5                     : 1;
5137 		uint32_t status6                     : 1;
5138 		uint32_t status7                     : 1;
5139 		uint32_t status8                     : 1;
5140 		uint32_t status9                     : 1;
5141 		uint32_t status10                    : 1;
5142 		uint32_t status11                    : 1;
5143 		uint32_t status12                    : 1;
5144 		uint32_t status13                    : 1;
5145 		uint32_t status14                    : 1;
5146 		uint32_t status15                    : 1;
5147 		uint32_t status16                    : 1;
5148 		uint32_t status17                    : 1;
5149 		uint32_t status18                    : 1;
5150 		uint32_t status19                    : 1;
5151 		uint32_t status20                    : 1;
5152 		uint32_t status21                    : 1;
5153 		uint32_t status22                    : 1;
5154 		uint32_t status23                    : 1;
5155 		uint32_t status24                    : 1;
5156 		uint32_t status25                    : 1;
5157 		uint32_t status26                    : 1;
5158 		uint32_t status27                    : 1;
5159 		uint32_t status28                    : 1;
5160 		uint32_t status29                    : 1;
5161 		uint32_t status30                    : 1;
5162 		uint32_t status31                    : 1;
5163 	} s;
5164 	/* struct ody_gicda_icerrrx_s cn; */
5165 };
5166 typedef union ody_gicda_icerrrx ody_gicda_icerrrx_t;
5167 
5168 static inline uint64_t ODY_GICDA_ICERRRX(uint64_t a) __attribute__ ((pure, always_inline));
5169 static inline uint64_t ODY_GICDA_ICERRRX(uint64_t a)
5170 {
5171 	if ((a >= 1) && (a <= 16))
5172 		return 0x80100150e100ll + 4ll * ((a) & 0x1f);
5173 	__ody_csr_fatal("GICDA_ICERRRX", 1, a, 0, 0, 0, 0, 0);
5174 }
5175 
5176 #define typedef_ODY_GICDA_ICERRRX(a) ody_gicda_icerrrx_t
5177 #define bustype_ODY_GICDA_ICERRRX(a) CSR_TYPE_NCB32b
5178 #define basename_ODY_GICDA_ICERRRX(a) "GICDA_ICERRRX"
5179 #define busnum_ODY_GICDA_ICERRRX(a) (a)
5180 #define arguments_ODY_GICDA_ICERRRX(a) (a), -1, -1, -1
5181 
5182 /**
5183  * Register (NCB32b) gicda_icfgr#
5184  *
5185  * GICDA Icfgr Register
5186  * The GICDA_ICFGR2 characteristics are:
5187  *
5188  * * Purpose
5189  * Determines whether the corresponding interrupt is edge-triggered or level-sensitive
5190  * for interrupts 32 to 47.
5191  *
5192  * * Usage constraints
5193  * For INTID m, when DIV and MOD are the integer division and modulo operations:
5194  *
5195  * * The corresponding GICD(A)_ICFGR number, n, is given by n = m DIV 16.
5196  * * The offset of the required ICFGR is (0xC00 + (4*n)).
5197  * * The bit number of the required group modifier bit in this register is m MOD 32.
5198  *
5199  * Possible values for each interrupt are
5200  *
5201  * * 0b00 - Corresponding interrupt is level-sensitive.
5202  * * 0b10 - Corresponding interrupt is edge-triggered.
5203  *
5204  * The GIC will not update the Int_config2 bit if the corresponding interrupt is
5205  * enabled via GICD(A)_ISENABLER2
5206  *
5207  * * Configurations
5208  * Accessing registers where n is greater than 2*(GICD(A)_TYPER.ITLinesNumber+1) may
5209  * result in an error being logged. (See GICD_ERR0CTLR for details).
5210  */
5211 union ody_gicda_icfgrx {
5212 	uint32_t u;
5213 	struct ody_gicda_icfgrx_s {
5214 		uint32_t int_config0                 : 2;
5215 		uint32_t int_config1                 : 2;
5216 		uint32_t int_config2                 : 2;
5217 		uint32_t int_config3                 : 2;
5218 		uint32_t int_config4                 : 2;
5219 		uint32_t int_config5                 : 2;
5220 		uint32_t int_config6                 : 2;
5221 		uint32_t int_config7                 : 2;
5222 		uint32_t int_config8                 : 2;
5223 		uint32_t int_config9                 : 2;
5224 		uint32_t int_config10                : 2;
5225 		uint32_t int_config11                : 2;
5226 		uint32_t int_config12                : 2;
5227 		uint32_t int_config13                : 2;
5228 		uint32_t int_config14                : 2;
5229 		uint32_t int_config15                : 2;
5230 	} s;
5231 	/* struct ody_gicda_icfgrx_s cn; */
5232 };
5233 typedef union ody_gicda_icfgrx ody_gicda_icfgrx_t;
5234 
5235 static inline uint64_t ODY_GICDA_ICFGRX(uint64_t a) __attribute__ ((pure, always_inline));
5236 static inline uint64_t ODY_GICDA_ICFGRX(uint64_t a)
5237 {
5238 	if ((a >= 2) && (a <= 33))
5239 		return 0x801001500c00ll + 4ll * ((a) & 0x3f);
5240 	__ody_csr_fatal("GICDA_ICFGRX", 1, a, 0, 0, 0, 0, 0);
5241 }
5242 
5243 #define typedef_ODY_GICDA_ICFGRX(a) ody_gicda_icfgrx_t
5244 #define bustype_ODY_GICDA_ICFGRX(a) CSR_TYPE_NCB32b
5245 #define basename_ODY_GICDA_ICFGRX(a) "GICDA_ICFGRX"
5246 #define busnum_ODY_GICDA_ICFGRX(a) (a)
5247 #define arguments_ODY_GICDA_ICFGRX(a) (a), -1, -1, -1
5248 
5249 /**
5250  * Register (NCB32b) gicda_icgerrr#
5251  *
5252  * GICDA Icgerrr Register
5253  * The GICDA_ICGERRR1 characteristics are:
5254  *
5255  * * Purpose
5256  *
5257  * These registers can clear the error status of the GICD(A)_IGROUPRn,
5258  * GICD(A)_IGRPMODRn, and GICD(A)_NSACRn registers of an SPI or return the error status
5259  * of an SPI.
5260  * Applies to interrupts 16 to 31.
5261  *
5262  * * Usage constraints
5263  * This register is Secure access only.
5264  *
5265  * For interrupt ID m, when DIV and MOD are the integer division and modulo operations:
5266  *
5267  * * The corresponding GICD(A)_ICGERRR number, n, is given by n = m DIV 16.
5268  * * The offset of the required ICGERRR register is (0xE180 + (4*n)).
5269  *
5270  * * Configurations
5271  * Accessing registers where n is greater than 2*(GICD(A)_TYPER.ITLinesNumber+1) may
5272  * result in an error being logged. (See GICD_ERR0CTLR for details).
5273  */
5274 union ody_gicda_icgerrrx {
5275 	uint32_t u;
5276 	struct ody_gicda_icgerrrx_s {
5277 		uint32_t status0                     : 1;
5278 		uint32_t status1                     : 1;
5279 		uint32_t status2                     : 1;
5280 		uint32_t status3                     : 1;
5281 		uint32_t status4                     : 1;
5282 		uint32_t status5                     : 1;
5283 		uint32_t status6                     : 1;
5284 		uint32_t status7                     : 1;
5285 		uint32_t status8                     : 1;
5286 		uint32_t status9                     : 1;
5287 		uint32_t status10                    : 1;
5288 		uint32_t status11                    : 1;
5289 		uint32_t status12                    : 1;
5290 		uint32_t status13                    : 1;
5291 		uint32_t status14                    : 1;
5292 		uint32_t status15                    : 1;
5293 		uint32_t status16                    : 1;
5294 		uint32_t status17                    : 1;
5295 		uint32_t status18                    : 1;
5296 		uint32_t status19                    : 1;
5297 		uint32_t status20                    : 1;
5298 		uint32_t status21                    : 1;
5299 		uint32_t status22                    : 1;
5300 		uint32_t status23                    : 1;
5301 		uint32_t status24                    : 1;
5302 		uint32_t status25                    : 1;
5303 		uint32_t status26                    : 1;
5304 		uint32_t status27                    : 1;
5305 		uint32_t status28                    : 1;
5306 		uint32_t status29                    : 1;
5307 		uint32_t status30                    : 1;
5308 		uint32_t status31                    : 1;
5309 	} s;
5310 	/* struct ody_gicda_icgerrrx_s cn; */
5311 };
5312 typedef union ody_gicda_icgerrrx ody_gicda_icgerrrx_t;
5313 
5314 static inline uint64_t ODY_GICDA_ICGERRRX(uint64_t a) __attribute__ ((pure, always_inline));
5315 static inline uint64_t ODY_GICDA_ICGERRRX(uint64_t a)
5316 {
5317 	if ((a >= 1) && (a <= 16))
5318 		return 0x80100150e180ll + 4ll * ((a) & 0x1f);
5319 	__ody_csr_fatal("GICDA_ICGERRRX", 1, a, 0, 0, 0, 0, 0);
5320 }
5321 
5322 #define typedef_ODY_GICDA_ICGERRRX(a) ody_gicda_icgerrrx_t
5323 #define bustype_ODY_GICDA_ICGERRRX(a) CSR_TYPE_NCB32b
5324 #define basename_ODY_GICDA_ICGERRRX(a) "GICDA_ICGERRRX"
5325 #define busnum_ODY_GICDA_ICGERRRX(a) (a)
5326 #define arguments_ODY_GICDA_ICGERRRX(a) (a), -1, -1, -1
5327 
5328 /**
5329  * Register (NCB32b) gicda_iclar#
5330  *
5331  * GICDA Iclar Register
5332  * The GICDA_ICLAR2 characteristics are:
5333  *
5334  * * Purpose
5335  * These registers control whether a 1 of N SPI can target a core that is assigned to
5336  * class 0 or class 1 group for interrupts 32 to 47.
5337  *
5338  * * Usage constraints
5339  * For interrupt ID m, when DIV and MOD are the integer division and modulo operations:
5340  *
5341  * * The corresponding GICD(A)_ICLAR number, n, is given by n = m DIV 16.
5342  * * The offset of the required ICLAR register is (0xE000 + (4*n)).
5343  *
5344  * These registers are only accessible when the corresponding
5345  * GICD(A)_IROUTERn.Interrupt_Routing_Mode == 1.
5346  *
5347  * * Configurations
5348  * Accessing registers where n is greater than 2*(GICD(A)_TYPER.ITLinesNumber+1) may
5349  * result in an error being logged. (See GICD_ERR0CTLR for details).
5350  */
5351 union ody_gicda_iclarx {
5352 	uint32_t u;
5353 	struct ody_gicda_iclarx_s {
5354 		uint32_t classes0                    : 2;
5355 		uint32_t classes1                    : 2;
5356 		uint32_t classes2                    : 2;
5357 		uint32_t classes3                    : 2;
5358 		uint32_t classes4                    : 2;
5359 		uint32_t classes5                    : 2;
5360 		uint32_t classes6                    : 2;
5361 		uint32_t classes7                    : 2;
5362 		uint32_t classes8                    : 2;
5363 		uint32_t classes9                    : 2;
5364 		uint32_t classes10                   : 2;
5365 		uint32_t classes11                   : 2;
5366 		uint32_t classes12                   : 2;
5367 		uint32_t classes13                   : 2;
5368 		uint32_t classes14                   : 2;
5369 		uint32_t classes15                   : 2;
5370 	} s;
5371 	/* struct ody_gicda_iclarx_s cn; */
5372 };
5373 typedef union ody_gicda_iclarx ody_gicda_iclarx_t;
5374 
5375 static inline uint64_t ODY_GICDA_ICLARX(uint64_t a) __attribute__ ((pure, always_inline));
5376 static inline uint64_t ODY_GICDA_ICLARX(uint64_t a)
5377 {
5378 	if ((a >= 2) && (a <= 33))
5379 		return 0x80100150e000ll + 4ll * ((a) & 0x3f);
5380 	__ody_csr_fatal("GICDA_ICLARX", 1, a, 0, 0, 0, 0, 0);
5381 }
5382 
5383 #define typedef_ODY_GICDA_ICLARX(a) ody_gicda_iclarx_t
5384 #define bustype_ODY_GICDA_ICLARX(a) CSR_TYPE_NCB32b
5385 #define basename_ODY_GICDA_ICLARX(a) "GICDA_ICLARX"
5386 #define busnum_ODY_GICDA_ICLARX(a) (a)
5387 #define arguments_ODY_GICDA_ICLARX(a) (a), -1, -1, -1
5388 
5389 /**
5390  * Register (NCB32b) gicda_icpendr#
5391  *
5392  * GICDA Icpendr Register
5393  * The GICDA_ICPENDR1 characteristics are:
5394  *
5395  * * Purpose
5396  * Removes the pending state from the corresponding interrupt for interrupts 32 to 63.
5397  *
5398  * * Usage constraints
5399  * For INTID m, when DIV and MOD are the integer division and modulo operations:
5400  *
5401  * * The corresponding GICD(A)_ICPENDR number, n, is given by n = m DIV 32.
5402  * * The offset of the required ICPENDR is (0x280 + (4*n)).
5403  * * The bit number of the required group modifier bit in this register is m MOD 32.
5404  *
5405  * If GICD(A)_CTLR.DS==0, unless the GICD(A)_NSACR registers permit Non-secure software
5406  * to control Group 0 and Secure Group 1 interrupts, any bits that correspond to Group
5407  * 0 or Secure Group 1 interrupts are accessible only by Secure accesses and are RAZ/WI
5408  * to Non-secure accesses.
5409  *
5410  * * Configurations
5411  * Accessing registers where n is greater than (GICD(A)_TYPER.ITLinesNumber+1) may
5412  * result in an error being logged. (See GICD_ERR0CTLR for details).
5413  */
5414 union ody_gicda_icpendrx {
5415 	uint32_t u;
5416 	struct ody_gicda_icpendrx_s {
5417 		uint32_t clear_pending_bit0          : 1;
5418 		uint32_t clear_pending_bit1          : 1;
5419 		uint32_t clear_pending_bit2          : 1;
5420 		uint32_t clear_pending_bit3          : 1;
5421 		uint32_t clear_pending_bit4          : 1;
5422 		uint32_t clear_pending_bit5          : 1;
5423 		uint32_t clear_pending_bit6          : 1;
5424 		uint32_t clear_pending_bit7          : 1;
5425 		uint32_t clear_pending_bit8          : 1;
5426 		uint32_t clear_pending_bit9          : 1;
5427 		uint32_t clear_pending_bit10         : 1;
5428 		uint32_t clear_pending_bit11         : 1;
5429 		uint32_t clear_pending_bit12         : 1;
5430 		uint32_t clear_pending_bit13         : 1;
5431 		uint32_t clear_pending_bit14         : 1;
5432 		uint32_t clear_pending_bit15         : 1;
5433 		uint32_t clear_pending_bit16         : 1;
5434 		uint32_t clear_pending_bit17         : 1;
5435 		uint32_t clear_pending_bit18         : 1;
5436 		uint32_t clear_pending_bit19         : 1;
5437 		uint32_t clear_pending_bit20         : 1;
5438 		uint32_t clear_pending_bit21         : 1;
5439 		uint32_t clear_pending_bit22         : 1;
5440 		uint32_t clear_pending_bit23         : 1;
5441 		uint32_t clear_pending_bit24         : 1;
5442 		uint32_t clear_pending_bit25         : 1;
5443 		uint32_t clear_pending_bit26         : 1;
5444 		uint32_t clear_pending_bit27         : 1;
5445 		uint32_t clear_pending_bit28         : 1;
5446 		uint32_t clear_pending_bit29         : 1;
5447 		uint32_t clear_pending_bit30         : 1;
5448 		uint32_t clear_pending_bit31         : 1;
5449 	} s;
5450 	/* struct ody_gicda_icpendrx_s cn; */
5451 };
5452 typedef union ody_gicda_icpendrx ody_gicda_icpendrx_t;
5453 
5454 static inline uint64_t ODY_GICDA_ICPENDRX(uint64_t a) __attribute__ ((pure, always_inline));
5455 static inline uint64_t ODY_GICDA_ICPENDRX(uint64_t a)
5456 {
5457 	if ((a >= 1) && (a <= 16))
5458 		return 0x801001500280ll + 4ll * ((a) & 0x1f);
5459 	__ody_csr_fatal("GICDA_ICPENDRX", 1, a, 0, 0, 0, 0, 0);
5460 }
5461 
5462 #define typedef_ODY_GICDA_ICPENDRX(a) ody_gicda_icpendrx_t
5463 #define bustype_ODY_GICDA_ICPENDRX(a) CSR_TYPE_NCB32b
5464 #define basename_ODY_GICDA_ICPENDRX(a) "GICDA_ICPENDRX"
5465 #define busnum_ODY_GICDA_ICPENDRX(a) (a)
5466 #define arguments_ODY_GICDA_ICPENDRX(a) (a), -1, -1, -1
5467 
5468 /**
5469  * Register (NCB32b) gicda_igroupr#
5470  *
5471  * GICDA Igroupr Register
5472  * The GICDA_IGROUPR1 characteristics are:
5473  *
5474  * * Purpose
5475  * Controls whether the corresponding interrupt is in Group 0 or Group 1 for interrupts 32 to 63.
5476  *
5477  * * Usage constraints
5478  * When GICD(A)_CTLR.DS==0, the register is RAZ/WI to Non-secure accesses.
5479  *
5480  * For INTID m, when DIV and MOD are the integer division and modulo operations:
5481  *
5482  * * The corresponding GICD(A)_IGROUP number, n, is given by n = m DIV 32.
5483  * * The offset of the required IGROUP register is (0x080 + (4*n)).
5484  * * The bit number of the required group modifier bit in this register is m MOD 32.
5485  *
5486  * * Configurations
5487  * Accessing registers where n is greater than (GICD(A)_TYPER.ITLinesNumber+1) may
5488  * result in an error being logged. (See GICD_ERR0CTLR for details).
5489  */
5490 union ody_gicda_igrouprx {
5491 	uint32_t u;
5492 	struct ody_gicda_igrouprx_s {
5493 		uint32_t group_status_bit0           : 1;
5494 		uint32_t group_status_bit1           : 1;
5495 		uint32_t group_status_bit2           : 1;
5496 		uint32_t group_status_bit3           : 1;
5497 		uint32_t group_status_bit4           : 1;
5498 		uint32_t group_status_bit5           : 1;
5499 		uint32_t group_status_bit6           : 1;
5500 		uint32_t group_status_bit7           : 1;
5501 		uint32_t group_status_bit8           : 1;
5502 		uint32_t group_status_bit9           : 1;
5503 		uint32_t group_status_bit10          : 1;
5504 		uint32_t group_status_bit11          : 1;
5505 		uint32_t group_status_bit12          : 1;
5506 		uint32_t group_status_bit13          : 1;
5507 		uint32_t group_status_bit14          : 1;
5508 		uint32_t group_status_bit15          : 1;
5509 		uint32_t group_status_bit16          : 1;
5510 		uint32_t group_status_bit17          : 1;
5511 		uint32_t group_status_bit18          : 1;
5512 		uint32_t group_status_bit19          : 1;
5513 		uint32_t group_status_bit20          : 1;
5514 		uint32_t group_status_bit21          : 1;
5515 		uint32_t group_status_bit22          : 1;
5516 		uint32_t group_status_bit23          : 1;
5517 		uint32_t group_status_bit24          : 1;
5518 		uint32_t group_status_bit25          : 1;
5519 		uint32_t group_status_bit26          : 1;
5520 		uint32_t group_status_bit27          : 1;
5521 		uint32_t group_status_bit28          : 1;
5522 		uint32_t group_status_bit29          : 1;
5523 		uint32_t group_status_bit30          : 1;
5524 		uint32_t group_status_bit31          : 1;
5525 	} s;
5526 	/* struct ody_gicda_igrouprx_s cn; */
5527 };
5528 typedef union ody_gicda_igrouprx ody_gicda_igrouprx_t;
5529 
5530 static inline uint64_t ODY_GICDA_IGROUPRX(uint64_t a) __attribute__ ((pure, always_inline));
5531 static inline uint64_t ODY_GICDA_IGROUPRX(uint64_t a)
5532 {
5533 	if ((a >= 1) && (a <= 16))
5534 		return 0x801001500080ll + 4ll * ((a) & 0x1f);
5535 	__ody_csr_fatal("GICDA_IGROUPRX", 1, a, 0, 0, 0, 0, 0);
5536 }
5537 
5538 #define typedef_ODY_GICDA_IGROUPRX(a) ody_gicda_igrouprx_t
5539 #define bustype_ODY_GICDA_IGROUPRX(a) CSR_TYPE_NCB32b
5540 #define basename_ODY_GICDA_IGROUPRX(a) "GICDA_IGROUPRX"
5541 #define busnum_ODY_GICDA_IGROUPRX(a) (a)
5542 #define arguments_ODY_GICDA_IGROUPRX(a) (a), -1, -1, -1
5543 
5544 /**
5545  * Register (NCB32b) gicda_igrpmodr#
5546  *
5547  * GICDA Igrpmodr Register
5548  * The GICDA_IGRPMODR1 characteristics are:
5549  *
5550  * * Purpose
5551  * When GICD(A)_CTLR.DS==0, this register together with the GICD(A)_IGROUPR1 register,
5552  * controls whether the corresponding interrupt is in:
5553  *
5554  * * Secure Group 0.
5555  * * Non-secure Group 1.
5556  * * Secure Group 1.
5557  *
5558  * Applies to interrupts 32 to 63
5559  *
5560  * * Usage constraints
5561  * For INTID m, when DIV and MOD are the integer division and modulo operations:
5562  *
5563  * * The corresponding GICD(A)_IGRPMODR number, n, is given by n = m DIV 32.
5564  * * The offset of the required IGRPMODR is (0xD00 + (4*n)).
5565  * * The bit number of the required group modifier bit in this register is m MOD 32.
5566  *
5567  * When GICD(A)_CTLR.DS==0, the register is RAZ/WI to Non-secure accesses.
5568  * When GICD(A)_CTLR.DS==1, the GICD(A)_IGRPMODR registers are RAZ/WI.
5569  *
5570  * * Configurations
5571  * Accessing registers where n is greater than (GICD(A)_TYPER.ITLinesNumber+1) may
5572  * result in an error being logged. (See GICD_ERR0CTLR for details).
5573  */
5574 union ody_gicda_igrpmodrx {
5575 	uint32_t u;
5576 	struct ody_gicda_igrpmodrx_s {
5577 		uint32_t group_modifier_bit0         : 1;
5578 		uint32_t group_modifier_bit1         : 1;
5579 		uint32_t group_modifier_bit2         : 1;
5580 		uint32_t group_modifier_bit3         : 1;
5581 		uint32_t group_modifier_bit4         : 1;
5582 		uint32_t group_modifier_bit5         : 1;
5583 		uint32_t group_modifier_bit6         : 1;
5584 		uint32_t group_modifier_bit7         : 1;
5585 		uint32_t group_modifier_bit8         : 1;
5586 		uint32_t group_modifier_bit9         : 1;
5587 		uint32_t group_modifier_bit10        : 1;
5588 		uint32_t group_modifier_bit11        : 1;
5589 		uint32_t group_modifier_bit12        : 1;
5590 		uint32_t group_modifier_bit13        : 1;
5591 		uint32_t group_modifier_bit14        : 1;
5592 		uint32_t group_modifier_bit15        : 1;
5593 		uint32_t group_modifier_bit16        : 1;
5594 		uint32_t group_modifier_bit17        : 1;
5595 		uint32_t group_modifier_bit18        : 1;
5596 		uint32_t group_modifier_bit19        : 1;
5597 		uint32_t group_modifier_bit20        : 1;
5598 		uint32_t group_modifier_bit21        : 1;
5599 		uint32_t group_modifier_bit22        : 1;
5600 		uint32_t group_modifier_bit23        : 1;
5601 		uint32_t group_modifier_bit24        : 1;
5602 		uint32_t group_modifier_bit25        : 1;
5603 		uint32_t group_modifier_bit26        : 1;
5604 		uint32_t group_modifier_bit27        : 1;
5605 		uint32_t group_modifier_bit28        : 1;
5606 		uint32_t group_modifier_bit29        : 1;
5607 		uint32_t group_modifier_bit30        : 1;
5608 		uint32_t group_modifier_bit31        : 1;
5609 	} s;
5610 	/* struct ody_gicda_igrpmodrx_s cn; */
5611 };
5612 typedef union ody_gicda_igrpmodrx ody_gicda_igrpmodrx_t;
5613 
5614 static inline uint64_t ODY_GICDA_IGRPMODRX(uint64_t a) __attribute__ ((pure, always_inline));
5615 static inline uint64_t ODY_GICDA_IGRPMODRX(uint64_t a)
5616 {
5617 	if ((a >= 1) && (a <= 16))
5618 		return 0x801001500d00ll + 4ll * ((a) & 0x1f);
5619 	__ody_csr_fatal("GICDA_IGRPMODRX", 1, a, 0, 0, 0, 0, 0);
5620 }
5621 
5622 #define typedef_ODY_GICDA_IGRPMODRX(a) ody_gicda_igrpmodrx_t
5623 #define bustype_ODY_GICDA_IGRPMODRX(a) CSR_TYPE_NCB32b
5624 #define basename_ODY_GICDA_IGRPMODRX(a) "GICDA_IGRPMODRX"
5625 #define busnum_ODY_GICDA_IGRPMODRX(a) (a)
5626 #define arguments_ODY_GICDA_IGRPMODRX(a) (a), -1, -1, -1
5627 
5628 /**
5629  * Register (NCB32b) gicda_iidr
5630  *
5631  * GICDA Iidr Register
5632  * The GICDA_IIDR characteristics are:
5633  *
5634  * * Purpose
5635  * Provides information about the implementer and revision of the Distributor
5636  *
5637  * * Usage constraints
5638  * There are no usage constraints.
5639  *
5640  * * Configurations
5641  * This register is available in all configurations of the GIC.
5642  */
5643 union ody_gicda_iidr {
5644 	uint32_t u;
5645 	struct ody_gicda_iidr_s {
5646 		uint32_t implementer                 : 12;
5647 		uint32_t revision                    : 4;
5648 		uint32_t variant                     : 4;
5649 		uint32_t reserved_20_23              : 4;
5650 		uint32_t productid                   : 8;
5651 	} s;
5652 	/* struct ody_gicda_iidr_s cn; */
5653 };
5654 typedef union ody_gicda_iidr ody_gicda_iidr_t;
5655 
5656 #define ODY_GICDA_IIDR ODY_GICDA_IIDR_FUNC()
5657 static inline uint64_t ODY_GICDA_IIDR_FUNC(void) __attribute__ ((pure, always_inline));
5658 static inline uint64_t ODY_GICDA_IIDR_FUNC(void)
5659 {
5660 	return 0x801001500008ll;
5661 }
5662 
5663 #define typedef_ODY_GICDA_IIDR ody_gicda_iidr_t
5664 #define bustype_ODY_GICDA_IIDR CSR_TYPE_NCB32b
5665 #define basename_ODY_GICDA_IIDR "GICDA_IIDR"
5666 #define busnum_ODY_GICDA_IIDR 0
5667 #define arguments_ODY_GICDA_IIDR -1, -1, -1, -1
5668 
5669 /**
5670  * Register (NCB32b) gicda_ipriorityr#
5671  *
5672  * GICDA Ipriorityr Register
5673  * The GICDA_IPRIORITYR8 characteristics are:
5674  *
5675  * * Purpose
5676  * Holds the priority of interrupts 32 to 35.
5677  *
5678  * * Usage constraints
5679  * For interrupt ID m, when DIV and MOD are the integer division and modulo operations:
5680  *
5681  * * The corresponding GICD(A)_IPRIORITYR8 number, n, is given by n = m DIV 4.
5682  * * The offset of the required IPRIORITYR register is (0x400 + (4*n)).
5683  * * The byte offset of the required Priority field in this register is m MOD 4, where:
5684  *     * Byte offset 0 refers to register bits [7:0].
5685  *     * Byte offset 1 refers to register bits [15:8].
5686  *     * Byte offset 2 refers to register bits [23:16].
5687  *     * Byte offset 3 refers to register bits [31:24].
5688  *
5689  * These registers are byte-accessible.
5690  *
5691  * The GIC implements 5 bits of priority and in each field, unimplemented bits are
5692  * RAZ/WI, see Interrupt prioritization on page 4-65.
5693  *
5694  * When GICD(A)_CTLR.DS==0:
5695  *
5696  * * A register bit that corresponds to a Group 0 or Secure Group 1 interrupt is RAZ/WI
5697  * to Non-secure accesses.
5698  * * A Non-secure access to a field that corresponds to a Non-secure Group 1 interrupt
5699  * behaves as described in Software accesses of interrupt priority on page 4-72.
5700  *
5701  * * Configurations
5702  * Accessing registers where n is greater than 4*(GICD(A)_TYPER.ITLinesNumber+1) may
5703  * result in an error being logged. (See GICD_ERR0CTLR for details).
5704  */
5705 union ody_gicda_ipriorityrx {
5706 	uint32_t u;
5707 	struct ody_gicda_ipriorityrx_s {
5708 		uint32_t offset0                     : 8;
5709 		uint32_t offset1                     : 8;
5710 		uint32_t offset2                     : 8;
5711 		uint32_t offset3                     : 8;
5712 	} s;
5713 	/* struct ody_gicda_ipriorityrx_s cn; */
5714 };
5715 typedef union ody_gicda_ipriorityrx ody_gicda_ipriorityrx_t;
5716 
5717 static inline uint64_t ODY_GICDA_IPRIORITYRX(uint64_t a) __attribute__ ((pure, always_inline));
5718 static inline uint64_t ODY_GICDA_IPRIORITYRX(uint64_t a)
5719 {
5720 	if ((a >= 8) && (a <= 135))
5721 		return 0x801001500400ll + 4ll * ((a) & 0xff);
5722 	__ody_csr_fatal("GICDA_IPRIORITYRX", 1, a, 0, 0, 0, 0, 0);
5723 }
5724 
5725 #define typedef_ODY_GICDA_IPRIORITYRX(a) ody_gicda_ipriorityrx_t
5726 #define bustype_ODY_GICDA_IPRIORITYRX(a) CSR_TYPE_NCB32b
5727 #define basename_ODY_GICDA_IPRIORITYRX(a) "GICDA_IPRIORITYRX"
5728 #define busnum_ODY_GICDA_IPRIORITYRX(a) (a)
5729 #define arguments_ODY_GICDA_IPRIORITYRX(a) (a), -1, -1, -1
5730 
5731 /**
5732  * Register (NCB) gicda_irouter#
5733  *
5734  * GICDA Irouter Register
5735  * The GICDA_IROUTER32 characteristics are:
5736  *
5737  * * Purpose
5738  * Provides routing information for the corresponding SPI of ID 32:
5739  * * Usage constraints
5740  * When GICD(A)_CTLR.DS==0, a register that corresponds to a Group 0 or Secure Group 1
5741  * interrupt is RAZ/WI to Non-secure accesses (unless enabled by GICD(A)_CTLR.NSACR)
5742  * * Configurations
5743  * These registers are available in all GIC configurations.
5744  *
5745  * Accessing registers where n is greater than 32*(GICD(A)_TYPER.ITLinesNumber+1) may
5746  * result in an error being logged. (See GICD_ERR0CTLR for details).
5747  */
5748 union ody_gicda_irouterx {
5749 	uint64_t u;
5750 	struct ody_gicda_irouterx_s {
5751 		uint64_t affinity0                   : 8;
5752 		uint64_t affinity1                   : 8;
5753 		uint64_t affinity2                   : 8;
5754 		uint64_t reserved_24_30              : 7;
5755 		uint64_t interruptroutingmode        : 1;
5756 		uint64_t affinity3                   : 8;
5757 		uint64_t reserved_40_63              : 24;
5758 	} s;
5759 	/* struct ody_gicda_irouterx_s cn; */
5760 };
5761 typedef union ody_gicda_irouterx ody_gicda_irouterx_t;
5762 
5763 static inline uint64_t ODY_GICDA_IROUTERX(uint64_t a) __attribute__ ((pure, always_inline));
5764 static inline uint64_t ODY_GICDA_IROUTERX(uint64_t a)
5765 {
5766 	if ((a >= 32) && (a <= 543))
5767 		return 0x801001506000ll + 8ll * ((a) & 0x3ff);
5768 	__ody_csr_fatal("GICDA_IROUTERX", 1, a, 0, 0, 0, 0, 0);
5769 }
5770 
5771 #define typedef_ODY_GICDA_IROUTERX(a) ody_gicda_irouterx_t
5772 #define bustype_ODY_GICDA_IROUTERX(a) CSR_TYPE_NCB
5773 #define basename_ODY_GICDA_IROUTERX(a) "GICDA_IROUTERX"
5774 #define busnum_ODY_GICDA_IROUTERX(a) (a)
5775 #define arguments_ODY_GICDA_IROUTERX(a) (a), -1, -1, -1
5776 
5777 /**
5778  * Register (NCB32b) gicda_isactiver#
5779  *
5780  * GICDA Isactiver Register
5781  * The GICDA_ISACTIVER1 characteristics are:
5782  *
5783  * * Purpose
5784  * Activates the corresponding interrupt. These registers are used when saving and
5785  * restoring state for interrupts 32 to 63.
5786  *
5787  * * Usage constraints
5788  * For INTID m, when DIV and MOD are the integer division and modulo operations:
5789  *
5790  * * The corresponding GICD(A)_ISACTIVER number, n, is given by n = m DIV 32.
5791  * * The offset of the required ISACTIVER is (0x300 + (4*n)).
5792  * * The bit number of the required group modifier bit in this register is m MOD 32.
5793  *
5794  * If GICD(A)_CTLR.DS==0, unless the GICD(A)_NSACR registers permit Non-secure software
5795  * to control Group 0 and Secure Group 1 interrupts, any bits that correspond to Group
5796  * 0 or Secure Group 1 interrupts are accessible only by Secure accesses and are RAZ/WI
5797  * to Non-secure accesses.
5798  * The bit reads as one if the status of the interrupt is active or active and pending.
5799  * GICD(A)_ISPENDR1 and GICD(A)_ICPENDR1 provide the pending status of the interrupt.
5800  *
5801  * * Configurations
5802  * Accessing registers where n is greater than (GICD(A)_TYPER.ITLinesNumber+1) may
5803  * result in an error being logged. (See GICD_ERR0CTLR for details).
5804  */
5805 union ody_gicda_isactiverx {
5806 	uint32_t u;
5807 	struct ody_gicda_isactiverx_s {
5808 		uint32_t set_active_bit0             : 1;
5809 		uint32_t set_active_bit1             : 1;
5810 		uint32_t set_active_bit2             : 1;
5811 		uint32_t set_active_bit3             : 1;
5812 		uint32_t set_active_bit4             : 1;
5813 		uint32_t set_active_bit5             : 1;
5814 		uint32_t set_active_bit6             : 1;
5815 		uint32_t set_active_bit7             : 1;
5816 		uint32_t set_active_bit8             : 1;
5817 		uint32_t set_active_bit9             : 1;
5818 		uint32_t set_active_bit10            : 1;
5819 		uint32_t set_active_bit11            : 1;
5820 		uint32_t set_active_bit12            : 1;
5821 		uint32_t set_active_bit13            : 1;
5822 		uint32_t set_active_bit14            : 1;
5823 		uint32_t set_active_bit15            : 1;
5824 		uint32_t set_active_bit16            : 1;
5825 		uint32_t set_active_bit17            : 1;
5826 		uint32_t set_active_bit18            : 1;
5827 		uint32_t set_active_bit19            : 1;
5828 		uint32_t set_active_bit20            : 1;
5829 		uint32_t set_active_bit21            : 1;
5830 		uint32_t set_active_bit22            : 1;
5831 		uint32_t set_active_bit23            : 1;
5832 		uint32_t set_active_bit24            : 1;
5833 		uint32_t set_active_bit25            : 1;
5834 		uint32_t set_active_bit26            : 1;
5835 		uint32_t set_active_bit27            : 1;
5836 		uint32_t set_active_bit28            : 1;
5837 		uint32_t set_active_bit29            : 1;
5838 		uint32_t set_active_bit30            : 1;
5839 		uint32_t set_active_bit31            : 1;
5840 	} s;
5841 	/* struct ody_gicda_isactiverx_s cn; */
5842 };
5843 typedef union ody_gicda_isactiverx ody_gicda_isactiverx_t;
5844 
5845 static inline uint64_t ODY_GICDA_ISACTIVERX(uint64_t a) __attribute__ ((pure, always_inline));
5846 static inline uint64_t ODY_GICDA_ISACTIVERX(uint64_t a)
5847 {
5848 	if ((a >= 1) && (a <= 16))
5849 		return 0x801001500300ll + 4ll * ((a) & 0x1f);
5850 	__ody_csr_fatal("GICDA_ISACTIVERX", 1, a, 0, 0, 0, 0, 0);
5851 }
5852 
5853 #define typedef_ODY_GICDA_ISACTIVERX(a) ody_gicda_isactiverx_t
5854 #define bustype_ODY_GICDA_ISACTIVERX(a) CSR_TYPE_NCB32b
5855 #define basename_ODY_GICDA_ISACTIVERX(a) "GICDA_ISACTIVERX"
5856 #define busnum_ODY_GICDA_ISACTIVERX(a) (a)
5857 #define arguments_ODY_GICDA_ISACTIVERX(a) (a), -1, -1, -1
5858 
5859 /**
5860  * Register (NCB32b) gicda_isenabler#
5861  *
5862  * GICDA Isenabler Register
5863  * The GICDA_ISENABLER1 characteristics are:
5864  *
5865  * * Purpose
5866  * Enables forwarding of the corresponding interrupt to the CPU interfaces for interrupts 32 to 63.
5867  *
5868  * * Usage constraints
5869  * For INTID m, when DIV and MOD are the integer division and modulo operations:
5870  *
5871  * * The corresponding GICD(A)_ISENABLER number, n, is given by n = m DIV 32.
5872  * * The offset of the ISENABLER is (0x100 + (4*n)).
5873  * * The bit number of the required group modifier bit in this register is m MOD 32.
5874  *
5875  * When GICD(A)_CTLR.DS==0, bits corresponding to Group 0 and Secure Group 1 interrupts
5876  * are RAZ/WI to Non-secure accesses.
5877  *
5878  * At start-up, and after a reset, a PE can use this register to discover which
5879  * peripheral INTIDs the GIC supports. If GICD(A)_CTLR.DS==0 in a system that supports
5880  * EL3, the PE must do this for the Secure view of the available interrupts, and Non-
5881  * secure software running on the PE must do this discovery after the Secure software
5882  * has configured interrupts as Group 0/Secure Group 1 and Non-secure Group 1.
5883  *
5884  * * Configurations
5885  * Accessing registers where n is greater than (GICD(A)_TYPER.ITLinesNumber+1) may
5886  * result in an error being logged. (See GICD_ERR0CTLR for details).
5887  */
5888 union ody_gicda_isenablerx {
5889 	uint32_t u;
5890 	struct ody_gicda_isenablerx_s {
5891 		uint32_t set_enable_bit0             : 1;
5892 		uint32_t set_enable_bit1             : 1;
5893 		uint32_t set_enable_bit2             : 1;
5894 		uint32_t set_enable_bit3             : 1;
5895 		uint32_t set_enable_bit4             : 1;
5896 		uint32_t set_enable_bit5             : 1;
5897 		uint32_t set_enable_bit6             : 1;
5898 		uint32_t set_enable_bit7             : 1;
5899 		uint32_t set_enable_bit8             : 1;
5900 		uint32_t set_enable_bit9             : 1;
5901 		uint32_t set_enable_bit10            : 1;
5902 		uint32_t set_enable_bit11            : 1;
5903 		uint32_t set_enable_bit12            : 1;
5904 		uint32_t set_enable_bit13            : 1;
5905 		uint32_t set_enable_bit14            : 1;
5906 		uint32_t set_enable_bit15            : 1;
5907 		uint32_t set_enable_bit16            : 1;
5908 		uint32_t set_enable_bit17            : 1;
5909 		uint32_t set_enable_bit18            : 1;
5910 		uint32_t set_enable_bit19            : 1;
5911 		uint32_t set_enable_bit20            : 1;
5912 		uint32_t set_enable_bit21            : 1;
5913 		uint32_t set_enable_bit22            : 1;
5914 		uint32_t set_enable_bit23            : 1;
5915 		uint32_t set_enable_bit24            : 1;
5916 		uint32_t set_enable_bit25            : 1;
5917 		uint32_t set_enable_bit26            : 1;
5918 		uint32_t set_enable_bit27            : 1;
5919 		uint32_t set_enable_bit28            : 1;
5920 		uint32_t set_enable_bit29            : 1;
5921 		uint32_t set_enable_bit30            : 1;
5922 		uint32_t set_enable_bit31            : 1;
5923 	} s;
5924 	/* struct ody_gicda_isenablerx_s cn; */
5925 };
5926 typedef union ody_gicda_isenablerx ody_gicda_isenablerx_t;
5927 
5928 static inline uint64_t ODY_GICDA_ISENABLERX(uint64_t a) __attribute__ ((pure, always_inline));
5929 static inline uint64_t ODY_GICDA_ISENABLERX(uint64_t a)
5930 {
5931 	if ((a >= 1) && (a <= 16))
5932 		return 0x801001500100ll + 4ll * ((a) & 0x1f);
5933 	__ody_csr_fatal("GICDA_ISENABLERX", 1, a, 0, 0, 0, 0, 0);
5934 }
5935 
5936 #define typedef_ODY_GICDA_ISENABLERX(a) ody_gicda_isenablerx_t
5937 #define bustype_ODY_GICDA_ISENABLERX(a) CSR_TYPE_NCB32b
5938 #define basename_ODY_GICDA_ISENABLERX(a) "GICDA_ISENABLERX"
5939 #define busnum_ODY_GICDA_ISENABLERX(a) (a)
5940 #define arguments_ODY_GICDA_ISENABLERX(a) (a), -1, -1, -1
5941 
5942 /**
5943  * Register (NCB32b) gicda_iserrr#
5944  *
5945  * GICDA Iserrr Register
5946  * The GICDA_ISERRR1 characteristics are:
5947  *
5948  * * Purpose
5949  *
5950  * These registers can set the error status of an SPI or return the error status of an
5951  * SPI for interrupts 16 to 31.
5952  *
5953  * * Usage constraints
5954  * This register is Secure access only
5955  *
5956  * For interrupt ID m, when DIV and MOD are the integer division and modulo operations:
5957  *
5958  * * The corresponding GICD(A)_ISERRR number, n, is given by n = m DIV 16.
5959  * * The offset of the required ISERRR register is (0xE200 + (4*n)).
5960  *
5961  * * Configurations
5962  * Accessing registers where n is greater than 2*(GICD(A)_TYPER.ITLinesNumber+1) may
5963  * result in an error being logged. (See GICD_ERR0CTLR for details).
5964  */
5965 union ody_gicda_iserrrx {
5966 	uint32_t u;
5967 	struct ody_gicda_iserrrx_s {
5968 		uint32_t status0                     : 1;
5969 		uint32_t status1                     : 1;
5970 		uint32_t status2                     : 1;
5971 		uint32_t status3                     : 1;
5972 		uint32_t status4                     : 1;
5973 		uint32_t status5                     : 1;
5974 		uint32_t status6                     : 1;
5975 		uint32_t status7                     : 1;
5976 		uint32_t status8                     : 1;
5977 		uint32_t status9                     : 1;
5978 		uint32_t status10                    : 1;
5979 		uint32_t status11                    : 1;
5980 		uint32_t status12                    : 1;
5981 		uint32_t status13                    : 1;
5982 		uint32_t status14                    : 1;
5983 		uint32_t status15                    : 1;
5984 		uint32_t status16                    : 1;
5985 		uint32_t status17                    : 1;
5986 		uint32_t status18                    : 1;
5987 		uint32_t status19                    : 1;
5988 		uint32_t status20                    : 1;
5989 		uint32_t status21                    : 1;
5990 		uint32_t status22                    : 1;
5991 		uint32_t status23                    : 1;
5992 		uint32_t status24                    : 1;
5993 		uint32_t status25                    : 1;
5994 		uint32_t status26                    : 1;
5995 		uint32_t status27                    : 1;
5996 		uint32_t status28                    : 1;
5997 		uint32_t status29                    : 1;
5998 		uint32_t status30                    : 1;
5999 		uint32_t status31                    : 1;
6000 	} s;
6001 	/* struct ody_gicda_iserrrx_s cn; */
6002 };
6003 typedef union ody_gicda_iserrrx ody_gicda_iserrrx_t;
6004 
6005 static inline uint64_t ODY_GICDA_ISERRRX(uint64_t a) __attribute__ ((pure, always_inline));
6006 static inline uint64_t ODY_GICDA_ISERRRX(uint64_t a)
6007 {
6008 	if ((a >= 1) && (a <= 16))
6009 		return 0x80100150e200ll + 4ll * ((a) & 0x1f);
6010 	__ody_csr_fatal("GICDA_ISERRRX", 1, a, 0, 0, 0, 0, 0);
6011 }
6012 
6013 #define typedef_ODY_GICDA_ISERRRX(a) ody_gicda_iserrrx_t
6014 #define bustype_ODY_GICDA_ISERRRX(a) CSR_TYPE_NCB32b
6015 #define basename_ODY_GICDA_ISERRRX(a) "GICDA_ISERRRX"
6016 #define busnum_ODY_GICDA_ISERRRX(a) (a)
6017 #define arguments_ODY_GICDA_ISERRRX(a) (a), -1, -1, -1
6018 
6019 /**
6020  * Register (NCB32b) gicda_ispendr#
6021  *
6022  * GICDA Ispendr Register
6023  * The GICDA_ISPENDR1 characteristics are:
6024  *
6025  * * Purpose
6026  * Adds the pending state to the corresponding interrupt for interrupts 32 to 63.
6027  *
6028  * * Usage constraints
6029  * For INTID m, when DIV and MOD are the integer division and modulo operations:
6030  *
6031  * * The corresponding GICD(A)_ISPENDR number, n, is given by n = m DIV 32.
6032  * * The offset of the required ISPENDR is (0x200 + (4*n)).
6033  * * The bit number of the required group modifier bit in this register is m MOD 32.
6034  *
6035  * If GICD(A)_CTLR.DS==0, unless the GICD(A)_NSACR registers permit Non-secure software
6036  * to control Group 0 and Secure Group 1 interrupts, any bits that correspond to Group
6037  * 0 or Secure Group 1 interrupts are accessible only by Secure accesses and are RAZ/WI
6038  * to Non-secure accesses.
6039  *
6040  * * Configurations
6041  * Accessing registers where n is greater than (GICD(A)_TYPER.ITLinesNumber+1) may
6042  * result in an error being logged. (See GICD_ERR0CTLR for details).
6043  */
6044 union ody_gicda_ispendrx {
6045 	uint32_t u;
6046 	struct ody_gicda_ispendrx_s {
6047 		uint32_t set_pending_bit0            : 1;
6048 		uint32_t set_pending_bit1            : 1;
6049 		uint32_t set_pending_bit2            : 1;
6050 		uint32_t set_pending_bit3            : 1;
6051 		uint32_t set_pending_bit4            : 1;
6052 		uint32_t set_pending_bit5            : 1;
6053 		uint32_t set_pending_bit6            : 1;
6054 		uint32_t set_pending_bit7            : 1;
6055 		uint32_t set_pending_bit8            : 1;
6056 		uint32_t set_pending_bit9            : 1;
6057 		uint32_t set_pending_bit10           : 1;
6058 		uint32_t set_pending_bit11           : 1;
6059 		uint32_t set_pending_bit12           : 1;
6060 		uint32_t set_pending_bit13           : 1;
6061 		uint32_t set_pending_bit14           : 1;
6062 		uint32_t set_pending_bit15           : 1;
6063 		uint32_t set_pending_bit16           : 1;
6064 		uint32_t set_pending_bit17           : 1;
6065 		uint32_t set_pending_bit18           : 1;
6066 		uint32_t set_pending_bit19           : 1;
6067 		uint32_t set_pending_bit20           : 1;
6068 		uint32_t set_pending_bit21           : 1;
6069 		uint32_t set_pending_bit22           : 1;
6070 		uint32_t set_pending_bit23           : 1;
6071 		uint32_t set_pending_bit24           : 1;
6072 		uint32_t set_pending_bit25           : 1;
6073 		uint32_t set_pending_bit26           : 1;
6074 		uint32_t set_pending_bit27           : 1;
6075 		uint32_t set_pending_bit28           : 1;
6076 		uint32_t set_pending_bit29           : 1;
6077 		uint32_t set_pending_bit30           : 1;
6078 		uint32_t set_pending_bit31           : 1;
6079 	} s;
6080 	/* struct ody_gicda_ispendrx_s cn; */
6081 };
6082 typedef union ody_gicda_ispendrx ody_gicda_ispendrx_t;
6083 
6084 static inline uint64_t ODY_GICDA_ISPENDRX(uint64_t a) __attribute__ ((pure, always_inline));
6085 static inline uint64_t ODY_GICDA_ISPENDRX(uint64_t a)
6086 {
6087 	if ((a >= 1) && (a <= 16))
6088 		return 0x801001500200ll + 4ll * ((a) & 0x1f);
6089 	__ody_csr_fatal("GICDA_ISPENDRX", 1, a, 0, 0, 0, 0, 0);
6090 }
6091 
6092 #define typedef_ODY_GICDA_ISPENDRX(a) ody_gicda_ispendrx_t
6093 #define bustype_ODY_GICDA_ISPENDRX(a) CSR_TYPE_NCB32b
6094 #define basename_ODY_GICDA_ISPENDRX(a) "GICDA_ISPENDRX"
6095 #define busnum_ODY_GICDA_ISPENDRX(a) (a)
6096 #define arguments_ODY_GICDA_ISPENDRX(a) (a), -1, -1, -1
6097 
6098 /**
6099  * Register (NCB32b) gicda_nsacr#
6100  *
6101  * GICDA Nsacr Register
6102  * The GICDA_NSACR2 characteristics are:
6103  *
6104  * * Purpose
6105  * Enables Secure software to permit Non-secure software on a particular PE to create
6106  * and control Group 0 interrupts for interrupts 32 to 47.
6107  *
6108  * * Usage constraints
6109  * For interrupt ID m, when DIV and MOD are the integer division and modulo operations:
6110  *
6111  * * The corresponding GICD(A)_NSACR number, n, is given by n = m DIV 16.
6112  * * The offset of the required NSACR register is (0xE00 + (4*n)).
6113  *
6114  * When GICD(A)_CTLR.DS==1, this register is RAZ/WI.
6115  * These registers are Secure, and are RAZ/WI to Non-secure accesses.
6116  *
6117  * * Configurations
6118  * These registers are available in all GIC configurations.
6119  *
6120  * Accessing registers where n is greater than 2*(GICD(A)_TYPER.ITLinesNumber+1) may
6121  * result in an error being logged. (See GICD_ERR0CTLR for details).
6122  */
6123 union ody_gicda_nsacrx {
6124 	uint32_t u;
6125 	struct ody_gicda_nsacrx_s {
6126 		uint32_t ns_access0                  : 2;
6127 		uint32_t ns_access1                  : 2;
6128 		uint32_t ns_access2                  : 2;
6129 		uint32_t ns_access3                  : 2;
6130 		uint32_t ns_access4                  : 2;
6131 		uint32_t ns_access5                  : 2;
6132 		uint32_t ns_access6                  : 2;
6133 		uint32_t ns_access7                  : 2;
6134 		uint32_t ns_access8                  : 2;
6135 		uint32_t ns_access9                  : 2;
6136 		uint32_t ns_access10                 : 2;
6137 		uint32_t ns_access11                 : 2;
6138 		uint32_t ns_access12                 : 2;
6139 		uint32_t ns_access13                 : 2;
6140 		uint32_t ns_access14                 : 2;
6141 		uint32_t ns_access15                 : 2;
6142 	} s;
6143 	/* struct ody_gicda_nsacrx_s cn; */
6144 };
6145 typedef union ody_gicda_nsacrx ody_gicda_nsacrx_t;
6146 
6147 static inline uint64_t ODY_GICDA_NSACRX(uint64_t a) __attribute__ ((pure, always_inline));
6148 static inline uint64_t ODY_GICDA_NSACRX(uint64_t a)
6149 {
6150 	if ((a >= 2) && (a <= 33))
6151 		return 0x801001500e00ll + 4ll * ((a) & 0x3f);
6152 	__ody_csr_fatal("GICDA_NSACRX", 1, a, 0, 0, 0, 0, 0);
6153 }
6154 
6155 #define typedef_ODY_GICDA_NSACRX(a) ody_gicda_nsacrx_t
6156 #define bustype_ODY_GICDA_NSACRX(a) CSR_TYPE_NCB32b
6157 #define basename_ODY_GICDA_NSACRX(a) "GICDA_NSACRX"
6158 #define busnum_ODY_GICDA_NSACRX(a) (a)
6159 #define arguments_ODY_GICDA_NSACRX(a) (a), -1, -1, -1
6160 
6161 /**
6162  * Register (NCB32b) gicda_pidr0
6163  *
6164  * GICDA Pidr0 Register
6165  * The GICDA_PIDR0 characteristics are:
6166  *
6167  * * Purpose
6168  * This register returns byte[0] of the peripheral ID of the GIC Distributor page.
6169  *
6170  * * Usage constraints
6171  * There are no usage constraints.
6172  */
6173 union ody_gicda_pidr0 {
6174 	uint32_t u;
6175 	struct ody_gicda_pidr0_s {
6176 		uint32_t part_0                      : 8;
6177 		uint32_t reserved_8_31               : 24;
6178 	} s;
6179 	/* struct ody_gicda_pidr0_s cn; */
6180 };
6181 typedef union ody_gicda_pidr0 ody_gicda_pidr0_t;
6182 
6183 #define ODY_GICDA_PIDR0 ODY_GICDA_PIDR0_FUNC()
6184 static inline uint64_t ODY_GICDA_PIDR0_FUNC(void) __attribute__ ((pure, always_inline));
6185 static inline uint64_t ODY_GICDA_PIDR0_FUNC(void)
6186 {
6187 	return 0x80100150ffe0ll;
6188 }
6189 
6190 #define typedef_ODY_GICDA_PIDR0 ody_gicda_pidr0_t
6191 #define bustype_ODY_GICDA_PIDR0 CSR_TYPE_NCB32b
6192 #define basename_ODY_GICDA_PIDR0 "GICDA_PIDR0"
6193 #define busnum_ODY_GICDA_PIDR0 0
6194 #define arguments_ODY_GICDA_PIDR0 -1, -1, -1, -1
6195 
6196 /**
6197  * Register (NCB32b) gicda_pidr1
6198  *
6199  * GICDA Pidr1 Register
6200  * The GICDA_PIDR1 characteristics are:
6201  *
6202  * * Purpose
6203  * This register returns byte[1] of the peripheral ID of the GIC Distributor page.
6204  *
6205  * * Usage constraints
6206  * There are no usage constraints.
6207  */
6208 union ody_gicda_pidr1 {
6209 	uint32_t u;
6210 	struct ody_gicda_pidr1_s {
6211 		uint32_t part_1                      : 4;
6212 		uint32_t des_0                       : 4;
6213 		uint32_t reserved_8_31               : 24;
6214 	} s;
6215 	/* struct ody_gicda_pidr1_s cn; */
6216 };
6217 typedef union ody_gicda_pidr1 ody_gicda_pidr1_t;
6218 
6219 #define ODY_GICDA_PIDR1 ODY_GICDA_PIDR1_FUNC()
6220 static inline uint64_t ODY_GICDA_PIDR1_FUNC(void) __attribute__ ((pure, always_inline));
6221 static inline uint64_t ODY_GICDA_PIDR1_FUNC(void)
6222 {
6223 	return 0x80100150ffe4ll;
6224 }
6225 
6226 #define typedef_ODY_GICDA_PIDR1 ody_gicda_pidr1_t
6227 #define bustype_ODY_GICDA_PIDR1 CSR_TYPE_NCB32b
6228 #define basename_ODY_GICDA_PIDR1 "GICDA_PIDR1"
6229 #define busnum_ODY_GICDA_PIDR1 0
6230 #define arguments_ODY_GICDA_PIDR1 -1, -1, -1, -1
6231 
6232 /**
6233  * Register (NCB32b) gicda_pidr2
6234  *
6235  * GICDA Pidr2 Register
6236  * The GICDA_PIDR2 characteristics are:
6237  *
6238  * * Purpose
6239  * This register returns byte[2] of the peripheral ID of the GIC Distributor page.
6240  *
6241  * * Usage constraints
6242  * There are no usage constraints.
6243  */
6244 union ody_gicda_pidr2 {
6245 	uint32_t u;
6246 	struct ody_gicda_pidr2_s {
6247 		uint32_t des_1                       : 3;
6248 		uint32_t jedec                       : 1;
6249 		uint32_t revision                    : 4;
6250 		uint32_t reserved_8_31               : 24;
6251 	} s;
6252 	/* struct ody_gicda_pidr2_s cn; */
6253 };
6254 typedef union ody_gicda_pidr2 ody_gicda_pidr2_t;
6255 
6256 #define ODY_GICDA_PIDR2 ODY_GICDA_PIDR2_FUNC()
6257 static inline uint64_t ODY_GICDA_PIDR2_FUNC(void) __attribute__ ((pure, always_inline));
6258 static inline uint64_t ODY_GICDA_PIDR2_FUNC(void)
6259 {
6260 	return 0x80100150ffe8ll;
6261 }
6262 
6263 #define typedef_ODY_GICDA_PIDR2 ody_gicda_pidr2_t
6264 #define bustype_ODY_GICDA_PIDR2 CSR_TYPE_NCB32b
6265 #define basename_ODY_GICDA_PIDR2 "GICDA_PIDR2"
6266 #define busnum_ODY_GICDA_PIDR2 0
6267 #define arguments_ODY_GICDA_PIDR2 -1, -1, -1, -1
6268 
6269 /**
6270  * Register (NCB32b) gicda_pidr3
6271  *
6272  * GICDA Pidr3 Register
6273  * The GICDA_PIDR3 characteristics are:
6274  *
6275  * * Purpose
6276  * This register returns byte[3] of the peripheral ID of the GIC Distributor page.
6277  *
6278  * * Usage constraints
6279  * There are no usage constraints.
6280  */
6281 union ody_gicda_pidr3 {
6282 	uint32_t u;
6283 	struct ody_gicda_pidr3_s {
6284 		uint32_t cmod                        : 3;
6285 		uint32_t reserved_3                  : 1;
6286 		uint32_t revand                      : 4;
6287 		uint32_t reserved_8_31               : 24;
6288 	} s;
6289 	/* struct ody_gicda_pidr3_s cn; */
6290 };
6291 typedef union ody_gicda_pidr3 ody_gicda_pidr3_t;
6292 
6293 #define ODY_GICDA_PIDR3 ODY_GICDA_PIDR3_FUNC()
6294 static inline uint64_t ODY_GICDA_PIDR3_FUNC(void) __attribute__ ((pure, always_inline));
6295 static inline uint64_t ODY_GICDA_PIDR3_FUNC(void)
6296 {
6297 	return 0x80100150ffecll;
6298 }
6299 
6300 #define typedef_ODY_GICDA_PIDR3 ody_gicda_pidr3_t
6301 #define bustype_ODY_GICDA_PIDR3 CSR_TYPE_NCB32b
6302 #define basename_ODY_GICDA_PIDR3 "GICDA_PIDR3"
6303 #define busnum_ODY_GICDA_PIDR3 0
6304 #define arguments_ODY_GICDA_PIDR3 -1, -1, -1, -1
6305 
6306 /**
6307  * Register (NCB32b) gicda_pidr4
6308  *
6309  * GICDA Pidr4 Register
6310  * The GICDA_PIDR4 characteristics are:
6311  *
6312  * * Purpose
6313  * This register returns byte[4] of the peripheral ID of the GIC Distributor page.
6314  *
6315  * * Usage constraints
6316  * There are no usage constraints.
6317  */
6318 union ody_gicda_pidr4 {
6319 	uint32_t u;
6320 	struct ody_gicda_pidr4_s {
6321 		uint32_t des_2                       : 4;
6322 		uint32_t size                        : 4;
6323 		uint32_t reserved_8_31               : 24;
6324 	} s;
6325 	/* struct ody_gicda_pidr4_s cn; */
6326 };
6327 typedef union ody_gicda_pidr4 ody_gicda_pidr4_t;
6328 
6329 #define ODY_GICDA_PIDR4 ODY_GICDA_PIDR4_FUNC()
6330 static inline uint64_t ODY_GICDA_PIDR4_FUNC(void) __attribute__ ((pure, always_inline));
6331 static inline uint64_t ODY_GICDA_PIDR4_FUNC(void)
6332 {
6333 	return 0x80100150ffd0ll;
6334 }
6335 
6336 #define typedef_ODY_GICDA_PIDR4 ody_gicda_pidr4_t
6337 #define bustype_ODY_GICDA_PIDR4 CSR_TYPE_NCB32b
6338 #define basename_ODY_GICDA_PIDR4 "GICDA_PIDR4"
6339 #define busnum_ODY_GICDA_PIDR4 0
6340 #define arguments_ODY_GICDA_PIDR4 -1, -1, -1, -1
6341 
6342 /**
6343  * Register (NCB32b) gicda_pidr5
6344  *
6345  * GICDA Pidr5 Register
6346  * The GICDA_PIDR5 characteristics are:
6347  *
6348  * * Purpose
6349  * This register returns byte[5] of the peripheral ID of the GIC Distributor page.
6350  *
6351  * * Usage constraints
6352  * There are no usage constraints.
6353  */
6354 union ody_gicda_pidr5 {
6355 	uint32_t u;
6356 	struct ody_gicda_pidr5_s {
6357 		uint32_t reserved_0_31               : 32;
6358 	} s;
6359 	struct ody_gicda_pidr5_cn {
6360 		uint32_t reserved_0_7                : 8;
6361 		uint32_t reserved_8_31               : 24;
6362 	} cn;
6363 };
6364 typedef union ody_gicda_pidr5 ody_gicda_pidr5_t;
6365 
6366 #define ODY_GICDA_PIDR5 ODY_GICDA_PIDR5_FUNC()
6367 static inline uint64_t ODY_GICDA_PIDR5_FUNC(void) __attribute__ ((pure, always_inline));
6368 static inline uint64_t ODY_GICDA_PIDR5_FUNC(void)
6369 {
6370 	return 0x80100150ffd4ll;
6371 }
6372 
6373 #define typedef_ODY_GICDA_PIDR5 ody_gicda_pidr5_t
6374 #define bustype_ODY_GICDA_PIDR5 CSR_TYPE_NCB32b
6375 #define basename_ODY_GICDA_PIDR5 "GICDA_PIDR5"
6376 #define busnum_ODY_GICDA_PIDR5 0
6377 #define arguments_ODY_GICDA_PIDR5 -1, -1, -1, -1
6378 
6379 /**
6380  * Register (NCB32b) gicda_pidr6
6381  *
6382  * GICDA Pidr6 Register
6383  * The GICDA_PIDR6 characteristics are:
6384  *
6385  * * Purpose
6386  * This register returns byte[6] of the peripheral ID of the GIC Distributor page.
6387  *
6388  * * Usage constraints
6389  * There are no usage constraints.
6390  */
6391 union ody_gicda_pidr6 {
6392 	uint32_t u;
6393 	struct ody_gicda_pidr6_s {
6394 		uint32_t reserved_0_31               : 32;
6395 	} s;
6396 	struct ody_gicda_pidr6_cn {
6397 		uint32_t reserved_0_7                : 8;
6398 		uint32_t reserved_8_31               : 24;
6399 	} cn;
6400 };
6401 typedef union ody_gicda_pidr6 ody_gicda_pidr6_t;
6402 
6403 #define ODY_GICDA_PIDR6 ODY_GICDA_PIDR6_FUNC()
6404 static inline uint64_t ODY_GICDA_PIDR6_FUNC(void) __attribute__ ((pure, always_inline));
6405 static inline uint64_t ODY_GICDA_PIDR6_FUNC(void)
6406 {
6407 	return 0x80100150ffd8ll;
6408 }
6409 
6410 #define typedef_ODY_GICDA_PIDR6 ody_gicda_pidr6_t
6411 #define bustype_ODY_GICDA_PIDR6 CSR_TYPE_NCB32b
6412 #define basename_ODY_GICDA_PIDR6 "GICDA_PIDR6"
6413 #define busnum_ODY_GICDA_PIDR6 0
6414 #define arguments_ODY_GICDA_PIDR6 -1, -1, -1, -1
6415 
6416 /**
6417  * Register (NCB32b) gicda_pidr7
6418  *
6419  * GICDA Pidr7 Register
6420  * The GICDA_PIDR7 characteristics are:
6421  *
6422  * * Purpose
6423  * This register returns byte[7] of the peripheral ID of the GIC Distributor page.
6424  *
6425  * * Usage constraints
6426  * There are no usage constraints.
6427  */
6428 union ody_gicda_pidr7 {
6429 	uint32_t u;
6430 	struct ody_gicda_pidr7_s {
6431 		uint32_t reserved_0_31               : 32;
6432 	} s;
6433 	struct ody_gicda_pidr7_cn {
6434 		uint32_t reserved_0_7                : 8;
6435 		uint32_t reserved_8_31               : 24;
6436 	} cn;
6437 };
6438 typedef union ody_gicda_pidr7 ody_gicda_pidr7_t;
6439 
6440 #define ODY_GICDA_PIDR7 ODY_GICDA_PIDR7_FUNC()
6441 static inline uint64_t ODY_GICDA_PIDR7_FUNC(void) __attribute__ ((pure, always_inline));
6442 static inline uint64_t ODY_GICDA_PIDR7_FUNC(void)
6443 {
6444 	return 0x80100150ffdcll;
6445 }
6446 
6447 #define typedef_ODY_GICDA_PIDR7 ody_gicda_pidr7_t
6448 #define bustype_ODY_GICDA_PIDR7 CSR_TYPE_NCB32b
6449 #define basename_ODY_GICDA_PIDR7 "GICDA_PIDR7"
6450 #define busnum_ODY_GICDA_PIDR7 0
6451 #define arguments_ODY_GICDA_PIDR7 -1, -1, -1, -1
6452 
6453 /**
6454  * Register (NCB32b) gicda_sac
6455  *
6456  * GICDA Sac Register
6457  * The GICDA_SAC characteristics are:
6458  *
6459  * * Purpose
6460  * This register allows Secure software to control Non-secure access to GIC-700 Secure
6461  * features by other software.
6462  *
6463  * * Usage constraints
6464  * Only accessible by Secure accesses or when GICD(A)_CTLR.DS == 1.
6465  */
6466 union ody_gicda_sac {
6467 	uint32_t u;
6468 	struct ody_gicda_sac_s {
6469 		uint32_t reserved_0                  : 1;
6470 		uint32_t gictns                      : 1;
6471 		uint32_t gicpns                      : 1;
6472 		uint32_t reserved_3_31               : 29;
6473 	} s;
6474 	/* struct ody_gicda_sac_s cn; */
6475 };
6476 typedef union ody_gicda_sac ody_gicda_sac_t;
6477 
6478 #define ODY_GICDA_SAC ODY_GICDA_SAC_FUNC()
6479 static inline uint64_t ODY_GICDA_SAC_FUNC(void) __attribute__ ((pure, always_inline));
6480 static inline uint64_t ODY_GICDA_SAC_FUNC(void)
6481 {
6482 	return 0x801001500024ll;
6483 }
6484 
6485 #define typedef_ODY_GICDA_SAC ody_gicda_sac_t
6486 #define bustype_ODY_GICDA_SAC CSR_TYPE_NCB32b
6487 #define basename_ODY_GICDA_SAC "GICDA_SAC"
6488 #define busnum_ODY_GICDA_SAC 0
6489 #define arguments_ODY_GICDA_SAC -1, -1, -1, -1
6490 
6491 /**
6492  * Register (NCB32b) gicda_setspi_nsr
6493  *
6494  * GICDA Setspi Nsr Register
6495  * The GICDA_SETSPI_NSR characteristics are:
6496  *
6497  * * Purpose
6498  * Adds the pending state to a valid SPI if permitted by the Security state of the
6499  * access and the GICD(A)_NSACR value for that SPI.
6500  * A write to this register changes the state of an inactive SPI to pending, and the
6501  * state of an active SPI to active and pending.
6502  *
6503  * * Usage constraints
6504  * The function of this register depends on whether the targeted SPI is configured to
6505  * be an edge-triggered or level-sensitive interrupt:
6506  *
6507  * * For an edge-triggered interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
6508  * the pending state to the targeted interrupt. It will stop being pending on
6509  * activation, or if the pending state is removed by a write to GICD(A)_CLRSPI_NSR,
6510  * GICx_CLRSPI_SR, or GICD(A)_ICPENDR.
6511  * * For a level-sensitive interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
6512  * the pending state to the targeted interrupt. It will remain pending until it is
6513  * deasserted by a write to GICD(A)_CLRSPI_NSR or GICx_CLRSPI_SR. If the interrupt is
6514  * activated between having the pending state added and being deactivated, then the
6515  * interrupt will be active and pending.
6516  *
6517  * Writes to this register have no effect if:
6518  *
6519  * * The value written specifies a Secure SPI, the value is written by a Non-secure
6520  * access, and the value of the corresponding GICD(A)_NSACR register is 0.
6521  * * The value written specifies an invalid SPI.
6522  * * The SPI is already pending.
6523  *
6524  * * Configurations
6525  * When GICD(A)_CTLR.DS==1, this register provides functionality for all SPIs.
6526  */
6527 union ody_gicda_setspi_nsr {
6528 	uint32_t u;
6529 	struct ody_gicda_setspi_nsr_s {
6530 		uint32_t id                          : 16;
6531 		uint32_t reserved_16_31              : 16;
6532 	} s;
6533 	/* struct ody_gicda_setspi_nsr_s cn; */
6534 };
6535 typedef union ody_gicda_setspi_nsr ody_gicda_setspi_nsr_t;
6536 
6537 #define ODY_GICDA_SETSPI_NSR ODY_GICDA_SETSPI_NSR_FUNC()
6538 static inline uint64_t ODY_GICDA_SETSPI_NSR_FUNC(void) __attribute__ ((pure, always_inline));
6539 static inline uint64_t ODY_GICDA_SETSPI_NSR_FUNC(void)
6540 {
6541 	return 0x801001500040ll;
6542 }
6543 
6544 #define typedef_ODY_GICDA_SETSPI_NSR ody_gicda_setspi_nsr_t
6545 #define bustype_ODY_GICDA_SETSPI_NSR CSR_TYPE_NCB32b
6546 #define basename_ODY_GICDA_SETSPI_NSR "GICDA_SETSPI_NSR"
6547 #define busnum_ODY_GICDA_SETSPI_NSR 0
6548 #define arguments_ODY_GICDA_SETSPI_NSR -1, -1, -1, -1
6549 
6550 /**
6551  * Register (NCB32b) gicda_setspi_sr
6552  *
6553  * GICDA Setspi Sr Register
6554  * The GICDA_SETSPI_SR characteristics are:
6555  *
6556  * * Purpose
6557  * Adds the pending state to a valid SPI.
6558  * A write to this register changes the state of an inactive SPI to pending, and the
6559  * state of an active SPI to active and pending.
6560  *
6561  * * Usage constraints
6562  * The function of this register depends on whether the targeted SPI is configured to
6563  * be an edge-triggered or level-sensitive interrupt:
6564  *
6565  * * For an edge-triggered interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
6566  * the pending state to the targeted interrupt. It will stop being pending on
6567  * activation, or if the pending state is removed by a write to GICD(A)_CLRSPI_NSR,
6568  * GICx_CLRSPI_SR, or GICD(A)_ICPENDR.
6569  * * For a level-sensitive interrupt, a write to GICx_SETSPI_NSR or GICx_SETSPI_SR adds
6570  * the pending state to the targeted interrupt. It will remain pending until it is
6571  * deasserted by a write to GICD(A)_CLRSPI_NSR or GICx_CLRSPI_SR. If the interrupt is
6572  * activated between having the pending state added and being deactivated, then the
6573  * interrupt will be active and pending.
6574  *
6575  * Writes to this register have no effect if:
6576  *
6577  * * The value is written by a Non-secure access.
6578  * * The value written specifies an invalid SPI.
6579  * * The SPI is already pending.
6580  *
6581  * * Configurations
6582  * When GICD(A)_CTLR.DS==1, this register is WI.
6583  * When GICD(A)_CTLR.DS==0, only secure-access.
6584  */
6585 union ody_gicda_setspi_sr {
6586 	uint32_t u;
6587 	struct ody_gicda_setspi_sr_s {
6588 		uint32_t id                          : 16;
6589 		uint32_t reserved_16_31              : 16;
6590 	} s;
6591 	/* struct ody_gicda_setspi_sr_s cn; */
6592 };
6593 typedef union ody_gicda_setspi_sr ody_gicda_setspi_sr_t;
6594 
6595 #define ODY_GICDA_SETSPI_SR ODY_GICDA_SETSPI_SR_FUNC()
6596 static inline uint64_t ODY_GICDA_SETSPI_SR_FUNC(void) __attribute__ ((pure, always_inline));
6597 static inline uint64_t ODY_GICDA_SETSPI_SR_FUNC(void)
6598 {
6599 	return 0x801001500050ll;
6600 }
6601 
6602 #define typedef_ODY_GICDA_SETSPI_SR ody_gicda_setspi_sr_t
6603 #define bustype_ODY_GICDA_SETSPI_SR CSR_TYPE_NCB32b
6604 #define basename_ODY_GICDA_SETSPI_SR "GICDA_SETSPI_SR"
6605 #define busnum_ODY_GICDA_SETSPI_SR 0
6606 #define arguments_ODY_GICDA_SETSPI_SR -1, -1, -1, -1
6607 
6608 /**
6609  * Register (NCB32b) gicda_statusr
6610  *
6611  * GICDA Statusr Register
6612  * The GICDA_STATUS characteristics are:
6613  *
6614  * * Purpose
6615  * This register is not used.
6616  *
6617  * See the GICT register page for details of error reporting by the GIC
6618  *
6619  * * Usage constraints
6620  * There are no usage constraints.
6621  *
6622  * * Configurations
6623  * This register is RES0 in all GIC configurations.
6624  */
6625 union ody_gicda_statusr {
6626 	uint32_t u;
6627 	struct ody_gicda_statusr_s {
6628 		uint32_t reserved_0_31               : 32;
6629 	} s;
6630 	/* struct ody_gicda_statusr_s cn; */
6631 };
6632 typedef union ody_gicda_statusr ody_gicda_statusr_t;
6633 
6634 #define ODY_GICDA_STATUSR ODY_GICDA_STATUSR_FUNC()
6635 static inline uint64_t ODY_GICDA_STATUSR_FUNC(void) __attribute__ ((pure, always_inline));
6636 static inline uint64_t ODY_GICDA_STATUSR_FUNC(void)
6637 {
6638 	return 0x801001500010ll;
6639 }
6640 
6641 #define typedef_ODY_GICDA_STATUSR ody_gicda_statusr_t
6642 #define bustype_ODY_GICDA_STATUSR CSR_TYPE_NCB32b
6643 #define basename_ODY_GICDA_STATUSR "GICDA_STATUSR"
6644 #define busnum_ODY_GICDA_STATUSR 0
6645 #define arguments_ODY_GICDA_STATUSR -1, -1, -1, -1
6646 
6647 /**
6648  * Register (NCB32b) gicda_typer
6649  *
6650  * GICDA Typer Register
6651  * The GICDA_TYPER characteristics are:
6652  *
6653  * * Purpose
6654  * Provides information about what features the GIC implementation supports. It indicates:
6655  *
6656  * * Whether the GIC implementation supports two Security states.
6657  * * The maximum number of INTIDs that the GIC implementation supports.
6658  * * The number of PEs that can be used as interrupt targets.
6659  *
6660  * * Usage constraints
6661  * There are no usage constraints.
6662  */
6663 union ody_gicda_typer {
6664 	uint32_t u;
6665 	struct ody_gicda_typer_s {
6666 		uint32_t itlinesnumber               : 5;
6667 		uint32_t cpunumber                   : 3;
6668 		uint32_t espi                        : 1;
6669 		uint32_t reserved_9                  : 1;
6670 		uint32_t securityextn                : 1;
6671 		uint32_t lspi                        : 5;
6672 		uint32_t mbis                        : 1;
6673 		uint32_t lpis                        : 1;
6674 		uint32_t dvis                        : 1;
6675 		uint32_t idbits                      : 5;
6676 		uint32_t a3v                         : 1;
6677 		uint32_t no1n                        : 1;
6678 		uint32_t rss                         : 1;
6679 		uint32_t espi_range                  : 5;
6680 	} s;
6681 	/* struct ody_gicda_typer_s cn; */
6682 };
6683 typedef union ody_gicda_typer ody_gicda_typer_t;
6684 
6685 #define ODY_GICDA_TYPER ODY_GICDA_TYPER_FUNC()
6686 static inline uint64_t ODY_GICDA_TYPER_FUNC(void) __attribute__ ((pure, always_inline));
6687 static inline uint64_t ODY_GICDA_TYPER_FUNC(void)
6688 {
6689 	return 0x801001500004ll;
6690 }
6691 
6692 #define typedef_ODY_GICDA_TYPER ody_gicda_typer_t
6693 #define bustype_ODY_GICDA_TYPER CSR_TYPE_NCB32b
6694 #define basename_ODY_GICDA_TYPER "GICDA_TYPER"
6695 #define busnum_ODY_GICDA_TYPER 0
6696 #define arguments_ODY_GICDA_TYPER -1, -1, -1, -1
6697 
6698 /**
6699  * Register (NCB32b) gicda_typer2
6700  *
6701  * GICDA Typer2 Register
6702  * The GICDA_TYPER2 characteristics are:
6703  *
6704  * * Purpose
6705  * Provides information about which features the GIC implementation supports.
6706  *
6707  * * Usage constraints
6708  * There are no usage constraints.
6709  */
6710 union ody_gicda_typer2 {
6711 	uint32_t u;
6712 	struct ody_gicda_typer2_s {
6713 		uint32_t vid                         : 5;
6714 		uint32_t reserved_5_6                : 2;
6715 		uint32_t vil                         : 1;
6716 		uint32_t reserved_8_31               : 24;
6717 	} s;
6718 	/* struct ody_gicda_typer2_s cn; */
6719 };
6720 typedef union ody_gicda_typer2 ody_gicda_typer2_t;
6721 
6722 #define ODY_GICDA_TYPER2 ODY_GICDA_TYPER2_FUNC()
6723 static inline uint64_t ODY_GICDA_TYPER2_FUNC(void) __attribute__ ((pure, always_inline));
6724 static inline uint64_t ODY_GICDA_TYPER2_FUNC(void)
6725 {
6726 	return 0x80100150000cll;
6727 }
6728 
6729 #define typedef_ODY_GICDA_TYPER2 ody_gicda_typer2_t
6730 #define bustype_ODY_GICDA_TYPER2 CSR_TYPE_NCB32b
6731 #define basename_ODY_GICDA_TYPER2 "GICDA_TYPER2"
6732 #define busnum_ODY_GICDA_TYPER2 0
6733 #define arguments_ODY_GICDA_TYPER2 -1, -1, -1, -1
6734 
6735 /**
6736  * Register (NCB32b) gicda_utilr
6737  *
6738  * GICDA Utilr Register
6739  * The GICDA_UTILR characteristics are:
6740  *
6741  * * Purpose
6742  *
6743  * This register controls the utilization engine in the LPI caches.
6744  *
6745  * * Usage constraints
6746  * There are no usage constraints.
6747  *
6748  * This register is RES0.
6749  */
6750 union ody_gicda_utilr {
6751 	uint32_t u;
6752 	struct ody_gicda_utilr_s {
6753 		uint32_t uedu                        : 4;
6754 		uint32_t reserved_4_12               : 9;
6755 		uint32_t ueda                        : 1;
6756 		uint32_t uede                        : 1;
6757 		uint32_t uedt                        : 1;
6758 		uint32_t ueou                        : 4;
6759 		uint32_t reserved_20_28              : 9;
6760 		uint32_t ueoa                        : 1;
6761 		uint32_t ueoe                        : 1;
6762 		uint32_t ueot                        : 1;
6763 	} s;
6764 	/* struct ody_gicda_utilr_s cn; */
6765 };
6766 typedef union ody_gicda_utilr ody_gicda_utilr_t;
6767 
6768 #define ODY_GICDA_UTILR ODY_GICDA_UTILR_FUNC()
6769 static inline uint64_t ODY_GICDA_UTILR_FUNC(void) __attribute__ ((pure, always_inline));
6770 static inline uint64_t ODY_GICDA_UTILR_FUNC(void)
6771 {
6772 	return 0x801001500034ll;
6773 }
6774 
6775 #define typedef_ODY_GICDA_UTILR ody_gicda_utilr_t
6776 #define bustype_ODY_GICDA_UTILR CSR_TYPE_NCB32b
6777 #define basename_ODY_GICDA_UTILR "GICDA_UTILR"
6778 #define busnum_ODY_GICDA_UTILR 0
6779 #define arguments_ODY_GICDA_UTILR -1, -1, -1, -1
6780 
6781 /**
6782  * Register (NCB32b) gicp_capr
6783  *
6784  * GICP Capr Register
6785  * The GICP_CAPR characteristics are:
6786  *
6787  * * Purpose
6788  * This register controls the counter shadow value capture mechanism.
6789  *
6790  * * Usage constraints
6791  * If GICD(A)_SAC.GICPNS == 0, then only Secure software can access this register.
6792  */
6793 union ody_gicp_capr {
6794 	uint32_t u;
6795 	struct ody_gicp_capr_s {
6796 		uint32_t capture                     : 1;
6797 		uint32_t reserved_1_31               : 31;
6798 	} s;
6799 	/* struct ody_gicp_capr_s cn; */
6800 };
6801 typedef union ody_gicp_capr ody_gicp_capr_t;
6802 
6803 #define ODY_GICP_CAPR ODY_GICP_CAPR_FUNC()
6804 static inline uint64_t ODY_GICP_CAPR_FUNC(void) __attribute__ ((pure, always_inline));
6805 static inline uint64_t ODY_GICP_CAPR_FUNC(void)
6806 {
6807 	return 0x801000030d88ll;
6808 }
6809 
6810 #define typedef_ODY_GICP_CAPR ody_gicp_capr_t
6811 #define bustype_ODY_GICP_CAPR CSR_TYPE_NCB32b
6812 #define basename_ODY_GICP_CAPR "GICP_CAPR"
6813 #define device_bar_ODY_GICP_CAPR 0x0 /* PF_BAR0 */
6814 #define busnum_ODY_GICP_CAPR 0
6815 #define arguments_ODY_GICP_CAPR -1, -1, -1, -1
6816 
6817 /**
6818  * Register (NCB32b) gicp_cfgr
6819  *
6820  * GICP Cfgr Register
6821  * The GICP_CFGR characteristics are:
6822  *
6823  * * Purpose
6824  * This register returns information about the PMU implementation.
6825  *
6826  * * Usage constraints
6827  * If GICD(A)_SAC.GICPNS == 0, then only Secure software can access this register.
6828  */
6829 union ody_gicp_cfgr {
6830 	uint32_t u;
6831 	struct ody_gicp_cfgr_s {
6832 		uint32_t nctr                        : 6;
6833 		uint32_t reserved_6_7                : 2;
6834 		uint32_t size                        : 6;
6835 		uint32_t reserved_14_21              : 8;
6836 		uint32_t capture                     : 1;
6837 		uint32_t reserved_23_31              : 9;
6838 	} s;
6839 	/* struct ody_gicp_cfgr_s cn; */
6840 };
6841 typedef union ody_gicp_cfgr ody_gicp_cfgr_t;
6842 
6843 #define ODY_GICP_CFGR ODY_GICP_CFGR_FUNC()
6844 static inline uint64_t ODY_GICP_CFGR_FUNC(void) __attribute__ ((pure, always_inline));
6845 static inline uint64_t ODY_GICP_CFGR_FUNC(void)
6846 {
6847 	return 0x801000030e00ll;
6848 }
6849 
6850 #define typedef_ODY_GICP_CFGR ody_gicp_cfgr_t
6851 #define bustype_ODY_GICP_CFGR CSR_TYPE_NCB32b
6852 #define basename_ODY_GICP_CFGR "GICP_CFGR"
6853 #define device_bar_ODY_GICP_CFGR 0x0 /* PF_BAR0 */
6854 #define busnum_ODY_GICP_CFGR 0
6855 #define arguments_ODY_GICP_CFGR -1, -1, -1, -1
6856 
6857 /**
6858  * Register (NCB32b) gicp_cidr0
6859  *
6860  * GICP Cidr0 Register
6861  * The GICP_CIDR0 characteristics are:
6862  *
6863  * * Purpose
6864  * This register is one of the Component Identification Registers and returns the first
6865  * part of the Preamble.
6866  *
6867  * * Usage constraints
6868  * There are no usage constraints.
6869  */
6870 union ody_gicp_cidr0 {
6871 	uint32_t u;
6872 	struct ody_gicp_cidr0_s {
6873 		uint32_t prmbl_0                     : 8;
6874 		uint32_t reserved_8_31               : 24;
6875 	} s;
6876 	/* struct ody_gicp_cidr0_s cn; */
6877 };
6878 typedef union ody_gicp_cidr0 ody_gicp_cidr0_t;
6879 
6880 #define ODY_GICP_CIDR0 ODY_GICP_CIDR0_FUNC()
6881 static inline uint64_t ODY_GICP_CIDR0_FUNC(void) __attribute__ ((pure, always_inline));
6882 static inline uint64_t ODY_GICP_CIDR0_FUNC(void)
6883 {
6884 	return 0x801000030ff0ll;
6885 }
6886 
6887 #define typedef_ODY_GICP_CIDR0 ody_gicp_cidr0_t
6888 #define bustype_ODY_GICP_CIDR0 CSR_TYPE_NCB32b
6889 #define basename_ODY_GICP_CIDR0 "GICP_CIDR0"
6890 #define device_bar_ODY_GICP_CIDR0 0x0 /* PF_BAR0 */
6891 #define busnum_ODY_GICP_CIDR0 0
6892 #define arguments_ODY_GICP_CIDR0 -1, -1, -1, -1
6893 
6894 /**
6895  * Register (NCB32b) gicp_cidr1
6896  *
6897  * GICP Cidr1 Register
6898  * The GICP_CIDR1 characteristics are:
6899  *
6900  * * Purpose
6901  * This register is one of the Component Identification Registers and returns the
6902  * second part of the Preamble as well as the Component Class.
6903  *
6904  * * Usage constraints
6905  * There are no usage constraints.
6906  */
6907 union ody_gicp_cidr1 {
6908 	uint32_t u;
6909 	struct ody_gicp_cidr1_s {
6910 		uint32_t prmbl_1                     : 4;
6911 		uint32_t class_f                     : 4;
6912 		uint32_t reserved_8_31               : 24;
6913 	} s;
6914 	/* struct ody_gicp_cidr1_s cn; */
6915 };
6916 typedef union ody_gicp_cidr1 ody_gicp_cidr1_t;
6917 
6918 #define ODY_GICP_CIDR1 ODY_GICP_CIDR1_FUNC()
6919 static inline uint64_t ODY_GICP_CIDR1_FUNC(void) __attribute__ ((pure, always_inline));
6920 static inline uint64_t ODY_GICP_CIDR1_FUNC(void)
6921 {
6922 	return 0x801000030ff4ll;
6923 }
6924 
6925 #define typedef_ODY_GICP_CIDR1 ody_gicp_cidr1_t
6926 #define bustype_ODY_GICP_CIDR1 CSR_TYPE_NCB32b
6927 #define basename_ODY_GICP_CIDR1 "GICP_CIDR1"
6928 #define device_bar_ODY_GICP_CIDR1 0x0 /* PF_BAR0 */
6929 #define busnum_ODY_GICP_CIDR1 0
6930 #define arguments_ODY_GICP_CIDR1 -1, -1, -1, -1
6931 
6932 /**
6933  * Register (NCB32b) gicp_cidr2
6934  *
6935  * GICP Cidr2 Register
6936  * The GICP_CIDR2 characteristics are:
6937  *
6938  * * Purpose
6939  * This register is one of the Component Identification Registers and returns the third
6940  * part of the Preamble.
6941  *
6942  * * Usage constraints
6943  * There are no usage constraints.
6944  */
6945 union ody_gicp_cidr2 {
6946 	uint32_t u;
6947 	struct ody_gicp_cidr2_s {
6948 		uint32_t prmbl_2                     : 8;
6949 		uint32_t reserved_8_31               : 24;
6950 	} s;
6951 	/* struct ody_gicp_cidr2_s cn; */
6952 };
6953 typedef union ody_gicp_cidr2 ody_gicp_cidr2_t;
6954 
6955 #define ODY_GICP_CIDR2 ODY_GICP_CIDR2_FUNC()
6956 static inline uint64_t ODY_GICP_CIDR2_FUNC(void) __attribute__ ((pure, always_inline));
6957 static inline uint64_t ODY_GICP_CIDR2_FUNC(void)
6958 {
6959 	return 0x801000030ff8ll;
6960 }
6961 
6962 #define typedef_ODY_GICP_CIDR2 ody_gicp_cidr2_t
6963 #define bustype_ODY_GICP_CIDR2 CSR_TYPE_NCB32b
6964 #define basename_ODY_GICP_CIDR2 "GICP_CIDR2"
6965 #define device_bar_ODY_GICP_CIDR2 0x0 /* PF_BAR0 */
6966 #define busnum_ODY_GICP_CIDR2 0
6967 #define arguments_ODY_GICP_CIDR2 -1, -1, -1, -1
6968 
6969 /**
6970  * Register (NCB32b) gicp_cidr3
6971  *
6972  * GICP Cidr3 Register
6973  * The GICP_CIDR3 characteristics are:
6974  *
6975  * * Purpose
6976  * This register is one of the Component Identification Registers and returns the
6977  * fourth part of the Preamble.
6978  *
6979  * * Usage constraints
6980  * There are no usage constraints.
6981  */
6982 union ody_gicp_cidr3 {
6983 	uint32_t u;
6984 	struct ody_gicp_cidr3_s {
6985 		uint32_t prmbl_3                     : 8;
6986 		uint32_t reserved_8_31               : 24;
6987 	} s;
6988 	/* struct ody_gicp_cidr3_s cn; */
6989 };
6990 typedef union ody_gicp_cidr3 ody_gicp_cidr3_t;
6991 
6992 #define ODY_GICP_CIDR3 ODY_GICP_CIDR3_FUNC()
6993 static inline uint64_t ODY_GICP_CIDR3_FUNC(void) __attribute__ ((pure, always_inline));
6994 static inline uint64_t ODY_GICP_CIDR3_FUNC(void)
6995 {
6996 	return 0x801000030ffcll;
6997 }
6998 
6999 #define typedef_ODY_GICP_CIDR3 ody_gicp_cidr3_t
7000 #define bustype_ODY_GICP_CIDR3 CSR_TYPE_NCB32b
7001 #define basename_ODY_GICP_CIDR3 "GICP_CIDR3"
7002 #define device_bar_ODY_GICP_CIDR3 0x0 /* PF_BAR0 */
7003 #define busnum_ODY_GICP_CIDR3 0
7004 #define arguments_ODY_GICP_CIDR3 -1, -1, -1, -1
7005 
7006 /**
7007  * Register (NCB) gicp_cntenclr0
7008  *
7009  * GICP Cntenclr0 Register
7010  * The GICP_CNTENCLR0 characteristics are:
7011  *
7012  * * Purpose
7013  * This register contains the counter disables for each event counter. The GIC-700
7014  * supports five event counters.
7015  *
7016  * * Usage constraints
7017  * If GICD(A)_SAC.GICPNS == 0, then only Secure software can access this register.
7018  */
7019 union ody_gicp_cntenclr0 {
7020 	uint64_t u;
7021 	struct ody_gicp_cntenclr0_s {
7022 		uint64_t cnten0                      : 1;
7023 		uint64_t cnten1                      : 1;
7024 		uint64_t cnten2                      : 1;
7025 		uint64_t cnten3                      : 1;
7026 		uint64_t cnten4                      : 1;
7027 		uint64_t reserved_5_63               : 59;
7028 	} s;
7029 	/* struct ody_gicp_cntenclr0_s cn; */
7030 };
7031 typedef union ody_gicp_cntenclr0 ody_gicp_cntenclr0_t;
7032 
7033 #define ODY_GICP_CNTENCLR0 ODY_GICP_CNTENCLR0_FUNC()
7034 static inline uint64_t ODY_GICP_CNTENCLR0_FUNC(void) __attribute__ ((pure, always_inline));
7035 static inline uint64_t ODY_GICP_CNTENCLR0_FUNC(void)
7036 {
7037 	return 0x801000030c20ll;
7038 }
7039 
7040 #define typedef_ODY_GICP_CNTENCLR0 ody_gicp_cntenclr0_t
7041 #define bustype_ODY_GICP_CNTENCLR0 CSR_TYPE_NCB
7042 #define basename_ODY_GICP_CNTENCLR0 "GICP_CNTENCLR0"
7043 #define device_bar_ODY_GICP_CNTENCLR0 0x0 /* PF_BAR0 */
7044 #define busnum_ODY_GICP_CNTENCLR0 0
7045 #define arguments_ODY_GICP_CNTENCLR0 -1, -1, -1, -1
7046 
7047 /**
7048  * Register (NCB) gicp_cntenset0
7049  *
7050  * GICP Cntenset0 Register
7051  * The GICP_CNTENSET0 characteristics are:
7052  *
7053  * * Purpose
7054  * These registers contain the counter enables for each event counter. The GIC-700
7055  * supports five event counters.
7056  *
7057  * * Usage constraints
7058  * If GICD(A)_SAC.GICPNS == 0, then only Secure software can access this register.
7059  */
7060 union ody_gicp_cntenset0 {
7061 	uint64_t u;
7062 	struct ody_gicp_cntenset0_s {
7063 		uint64_t cnten0                      : 1;
7064 		uint64_t cnten1                      : 1;
7065 		uint64_t cnten2                      : 1;
7066 		uint64_t cnten3                      : 1;
7067 		uint64_t cnten4                      : 1;
7068 		uint64_t reserved_5_63               : 59;
7069 	} s;
7070 	/* struct ody_gicp_cntenset0_s cn; */
7071 };
7072 typedef union ody_gicp_cntenset0 ody_gicp_cntenset0_t;
7073 
7074 #define ODY_GICP_CNTENSET0 ODY_GICP_CNTENSET0_FUNC()
7075 static inline uint64_t ODY_GICP_CNTENSET0_FUNC(void) __attribute__ ((pure, always_inline));
7076 static inline uint64_t ODY_GICP_CNTENSET0_FUNC(void)
7077 {
7078 	return 0x801000030c00ll;
7079 }
7080 
7081 #define typedef_ODY_GICP_CNTENSET0 ody_gicp_cntenset0_t
7082 #define bustype_ODY_GICP_CNTENSET0 CSR_TYPE_NCB
7083 #define basename_ODY_GICP_CNTENSET0 "GICP_CNTENSET0"
7084 #define device_bar_ODY_GICP_CNTENSET0 0x0 /* PF_BAR0 */
7085 #define busnum_ODY_GICP_CNTENSET0 0
7086 #define arguments_ODY_GICP_CNTENSET0 -1, -1, -1, -1
7087 
7088 /**
7089  * Register (NCB32b) gicp_cr
7090  *
7091  * GICP Cr Register
7092  * The GICP_CR characteristics are:
7093  *
7094  * * Purpose
7095  * This register controls whether all counters are enabled or disabled.
7096  *
7097  * * Usage constraints
7098  * If GICD(A)_SAC.GICPNS == 0, then only Secure software can access this register.
7099  */
7100 union ody_gicp_cr {
7101 	uint32_t u;
7102 	struct ody_gicp_cr_s {
7103 		uint32_t e_f                         : 1;
7104 		uint32_t reserved_1_31               : 31;
7105 	} s;
7106 	/* struct ody_gicp_cr_s cn; */
7107 };
7108 typedef union ody_gicp_cr ody_gicp_cr_t;
7109 
7110 #define ODY_GICP_CR ODY_GICP_CR_FUNC()
7111 static inline uint64_t ODY_GICP_CR_FUNC(void) __attribute__ ((pure, always_inline));
7112 static inline uint64_t ODY_GICP_CR_FUNC(void)
7113 {
7114 	return 0x801000030e04ll;
7115 }
7116 
7117 #define typedef_ODY_GICP_CR ody_gicp_cr_t
7118 #define bustype_ODY_GICP_CR CSR_TYPE_NCB32b
7119 #define basename_ODY_GICP_CR "GICP_CR"
7120 #define device_bar_ODY_GICP_CR 0x0 /* PF_BAR0 */
7121 #define busnum_ODY_GICP_CR 0
7122 #define arguments_ODY_GICP_CR -1, -1, -1, -1
7123 
7124 /**
7125  * Register (NCB32b) gicp_evcntr#
7126  *
7127  * GICP Evcntr Register
7128  * The GICP_EVCNTR0 characteristics are:
7129  *
7130  * * Purpose
7131  * These registers contain the values of event counter 0 (of 5)
7132  *
7133  * * Usage constraints
7134  * If GICD(A)_SAC.GICPNS == 0, then only Secure software can access this register.
7135  */
7136 union ody_gicp_evcntrx {
7137 	uint32_t u;
7138 	struct ody_gicp_evcntrx_s {
7139 		uint32_t count                       : 32;
7140 	} s;
7141 	/* struct ody_gicp_evcntrx_s cn; */
7142 };
7143 typedef union ody_gicp_evcntrx ody_gicp_evcntrx_t;
7144 
7145 static inline uint64_t ODY_GICP_EVCNTRX(uint64_t a) __attribute__ ((pure, always_inline));
7146 static inline uint64_t ODY_GICP_EVCNTRX(uint64_t a)
7147 {
7148 	if (a <= 4)
7149 		return 0x801000030000ll + 4ll * ((a) & 0x7);
7150 	__ody_csr_fatal("GICP_EVCNTRX", 1, a, 0, 0, 0, 0, 0);
7151 }
7152 
7153 #define typedef_ODY_GICP_EVCNTRX(a) ody_gicp_evcntrx_t
7154 #define bustype_ODY_GICP_EVCNTRX(a) CSR_TYPE_NCB32b
7155 #define basename_ODY_GICP_EVCNTRX(a) "GICP_EVCNTRX"
7156 #define device_bar_ODY_GICP_EVCNTRX(a) 0x0 /* PF_BAR0 */
7157 #define busnum_ODY_GICP_EVCNTRX(a) (a)
7158 #define arguments_ODY_GICP_EVCNTRX(a) (a), -1, -1, -1
7159 
7160 /**
7161  * Register (NCB32b) gicp_evtyper#
7162  *
7163  * GICP Evtyper Register
7164  * The GICP_EVTYPERn characteristics are:
7165  *
7166  * * Purpose
7167  * These registers configure which events that event counter n counts. The GIC-700
7168  * supports five counters, n = 0-4.
7169  *
7170  * * Usage constraints
7171  * If GICD(A)_SAC.GICPNS == 0, then only Secure software can access this register.
7172  */
7173 union ody_gicp_evtyperx {
7174 	uint32_t u;
7175 	struct ody_gicp_evtyperx_s {
7176 		uint32_t event_f                     : 8;
7177 		uint32_t reserved_8_15               : 8;
7178 		uint32_t event_type                  : 2;
7179 		uint32_t reserved_18_30              : 13;
7180 		uint32_t ovcap                       : 1;
7181 	} s;
7182 	/* struct ody_gicp_evtyperx_s cn; */
7183 };
7184 typedef union ody_gicp_evtyperx ody_gicp_evtyperx_t;
7185 
7186 static inline uint64_t ODY_GICP_EVTYPERX(uint64_t a) __attribute__ ((pure, always_inline));
7187 static inline uint64_t ODY_GICP_EVTYPERX(uint64_t a)
7188 {
7189 	if (a <= 4)
7190 		return 0x801000030400ll + 4ll * ((a) & 0x7);
7191 	__ody_csr_fatal("GICP_EVTYPERX", 1, a, 0, 0, 0, 0, 0);
7192 }
7193 
7194 #define typedef_ODY_GICP_EVTYPERX(a) ody_gicp_evtyperx_t
7195 #define bustype_ODY_GICP_EVTYPERX(a) CSR_TYPE_NCB32b
7196 #define basename_ODY_GICP_EVTYPERX(a) "GICP_EVTYPERX"
7197 #define device_bar_ODY_GICP_EVTYPERX(a) 0x0 /* PF_BAR0 */
7198 #define busnum_ODY_GICP_EVTYPERX(a) (a)
7199 #define arguments_ODY_GICP_EVTYPERX(a) (a), -1, -1, -1
7200 
7201 /**
7202  * Register (NCB32b) gicp_fr#
7203  *
7204  * GICP Fr Register
7205  * The GICP_FRn characteristics are:
7206  *
7207  * * Purpose
7208  * These registers configure the filtering of event counter n. The GIC-700 supports
7209  * five counters, n = 0-4.
7210  *
7211  * * Usage constraints
7212  * If GICD(A)_SAC.GICPNS == 0, then only Secure software can access this register.
7213  */
7214 union ody_gicp_frx {
7215 	uint32_t u;
7216 	struct ody_gicp_frx_s {
7217 		uint32_t filter                      : 16;
7218 		uint32_t reserved_16_28              : 13;
7219 		uint32_t filterencoding              : 1;
7220 		uint32_t filtertype                  : 2;
7221 	} s;
7222 	/* struct ody_gicp_frx_s cn; */
7223 };
7224 typedef union ody_gicp_frx ody_gicp_frx_t;
7225 
7226 static inline uint64_t ODY_GICP_FRX(uint64_t a) __attribute__ ((pure, always_inline));
7227 static inline uint64_t ODY_GICP_FRX(uint64_t a)
7228 {
7229 	if (a <= 4)
7230 		return 0x801000030a00ll + 4ll * ((a) & 0x7);
7231 	__ody_csr_fatal("GICP_FRX", 1, a, 0, 0, 0, 0, 0);
7232 }
7233 
7234 #define typedef_ODY_GICP_FRX(a) ody_gicp_frx_t
7235 #define bustype_ODY_GICP_FRX(a) CSR_TYPE_NCB32b
7236 #define basename_ODY_GICP_FRX(a) "GICP_FRX"
7237 #define device_bar_ODY_GICP_FRX(a) 0x0 /* PF_BAR0 */
7238 #define busnum_ODY_GICP_FRX(a) (a)
7239 #define arguments_ODY_GICP_FRX(a) (a), -1, -1, -1
7240 
7241 /**
7242  * Register (NCB) gicp_intenclr0
7243  *
7244  * GICP Intenclr0 Register
7245  * The GICP_INTENCLR0 characteristics are:
7246  *
7247  * * Purpose
7248  * This register contains the clear mechanism for the counter interrupt contribution
7249  * enables. The GIC-700 supports five counters, n = 0-4.
7250  *
7251  * * Usage constraints
7252  * If GICD(A)_SAC.GICPNS == 0, then only Secure software can access this register.
7253  */
7254 union ody_gicp_intenclr0 {
7255 	uint64_t u;
7256 	struct ody_gicp_intenclr0_s {
7257 		uint64_t inten                       : 5;
7258 		uint64_t reserved_5_63               : 59;
7259 	} s;
7260 	/* struct ody_gicp_intenclr0_s cn; */
7261 };
7262 typedef union ody_gicp_intenclr0 ody_gicp_intenclr0_t;
7263 
7264 #define ODY_GICP_INTENCLR0 ODY_GICP_INTENCLR0_FUNC()
7265 static inline uint64_t ODY_GICP_INTENCLR0_FUNC(void) __attribute__ ((pure, always_inline));
7266 static inline uint64_t ODY_GICP_INTENCLR0_FUNC(void)
7267 {
7268 	return 0x801000030c60ll;
7269 }
7270 
7271 #define typedef_ODY_GICP_INTENCLR0 ody_gicp_intenclr0_t
7272 #define bustype_ODY_GICP_INTENCLR0 CSR_TYPE_NCB
7273 #define basename_ODY_GICP_INTENCLR0 "GICP_INTENCLR0"
7274 #define device_bar_ODY_GICP_INTENCLR0 0x0 /* PF_BAR0 */
7275 #define busnum_ODY_GICP_INTENCLR0 0
7276 #define arguments_ODY_GICP_INTENCLR0 -1, -1, -1, -1
7277 
7278 /**
7279  * Register (NCB) gicp_intenset0
7280  *
7281  * GICP Intenset0 Register
7282  * The GICP_INTENSET0 characteristics are:
7283  *
7284  * * Purpose
7285  * This register contains the set mechanism for the counter interrupt contribution
7286  * enables. The GIC-700 supports five counters, n = 0-4.
7287  *
7288  * * Usage constraints
7289  * If GICD(A)_SAC.GICPNS == 0, then only Secure software can access this register.
7290  */
7291 union ody_gicp_intenset0 {
7292 	uint64_t u;
7293 	struct ody_gicp_intenset0_s {
7294 		uint64_t inten                       : 5;
7295 		uint64_t reserved_5_63               : 59;
7296 	} s;
7297 	/* struct ody_gicp_intenset0_s cn; */
7298 };
7299 typedef union ody_gicp_intenset0 ody_gicp_intenset0_t;
7300 
7301 #define ODY_GICP_INTENSET0 ODY_GICP_INTENSET0_FUNC()
7302 static inline uint64_t ODY_GICP_INTENSET0_FUNC(void) __attribute__ ((pure, always_inline));
7303 static inline uint64_t ODY_GICP_INTENSET0_FUNC(void)
7304 {
7305 	return 0x801000030c40ll;
7306 }
7307 
7308 #define typedef_ODY_GICP_INTENSET0 ody_gicp_intenset0_t
7309 #define bustype_ODY_GICP_INTENSET0 CSR_TYPE_NCB
7310 #define basename_ODY_GICP_INTENSET0 "GICP_INTENSET0"
7311 #define device_bar_ODY_GICP_INTENSET0 0x0 /* PF_BAR0 */
7312 #define busnum_ODY_GICP_INTENSET0 0
7313 #define arguments_ODY_GICP_INTENSET0 -1, -1, -1, -1
7314 
7315 /**
7316  * Register (NCB32b) gicp_irqcr
7317  *
7318  * GICP Irqcr Register
7319  * The GICP_IRQCR characteristics are:
7320  *
7321  * * Purpose
7322  * This register controls which SPI is generated when a PMU overflow interrupt occurs.
7323  *
7324  * * Usage constraints
7325  * If GICD(A)_SAC.GICPNS == 0, then only Secure software can access this register.
7326  */
7327 union ody_gicp_irqcr {
7328 	uint32_t u;
7329 	struct ody_gicp_irqcr_s {
7330 		uint32_t spiid                       : 13;
7331 		uint32_t reserved_13_31              : 19;
7332 	} s;
7333 	/* struct ody_gicp_irqcr_s cn; */
7334 };
7335 typedef union ody_gicp_irqcr ody_gicp_irqcr_t;
7336 
7337 #define ODY_GICP_IRQCR ODY_GICP_IRQCR_FUNC()
7338 static inline uint64_t ODY_GICP_IRQCR_FUNC(void) __attribute__ ((pure, always_inline));
7339 static inline uint64_t ODY_GICP_IRQCR_FUNC(void)
7340 {
7341 	return 0x801000030e50ll;
7342 }
7343 
7344 #define typedef_ODY_GICP_IRQCR ody_gicp_irqcr_t
7345 #define bustype_ODY_GICP_IRQCR CSR_TYPE_NCB32b
7346 #define basename_ODY_GICP_IRQCR "GICP_IRQCR"
7347 #define device_bar_ODY_GICP_IRQCR 0x0 /* PF_BAR0 */
7348 #define busnum_ODY_GICP_IRQCR 0
7349 #define arguments_ODY_GICP_IRQCR -1, -1, -1, -1
7350 
7351 /**
7352  * Register (NCB) gicp_ovsclr0
7353  *
7354  * GICP Ovsclr0 Register
7355  * The GICP_OVSCLR0 characteristics are:
7356  *
7357  * * Purpose
7358  * This register provides the clear mechanism for the counter overflow status bits and
7359  * provides read access to the counter overflow status bit values. The GIC-700 supports
7360  * five counters, n = 0-4.
7361  *
7362  * * Usage constraints
7363  * If GICD(A)_SAC.GICPNS == 0, then only Secure software can access this register.
7364  */
7365 union ody_gicp_ovsclr0 {
7366 	uint64_t u;
7367 	struct ody_gicp_ovsclr0_s {
7368 		uint64_t ovs                         : 5;
7369 		uint64_t reserved_5_63               : 59;
7370 	} s;
7371 	/* struct ody_gicp_ovsclr0_s cn; */
7372 };
7373 typedef union ody_gicp_ovsclr0 ody_gicp_ovsclr0_t;
7374 
7375 #define ODY_GICP_OVSCLR0 ODY_GICP_OVSCLR0_FUNC()
7376 static inline uint64_t ODY_GICP_OVSCLR0_FUNC(void) __attribute__ ((pure, always_inline));
7377 static inline uint64_t ODY_GICP_OVSCLR0_FUNC(void)
7378 {
7379 	return 0x801000030c80ll;
7380 }
7381 
7382 #define typedef_ODY_GICP_OVSCLR0 ody_gicp_ovsclr0_t
7383 #define bustype_ODY_GICP_OVSCLR0 CSR_TYPE_NCB
7384 #define basename_ODY_GICP_OVSCLR0 "GICP_OVSCLR0"
7385 #define device_bar_ODY_GICP_OVSCLR0 0x0 /* PF_BAR0 */
7386 #define busnum_ODY_GICP_OVSCLR0 0
7387 #define arguments_ODY_GICP_OVSCLR0 -1, -1, -1, -1
7388 
7389 /**
7390  * Register (NCB) gicp_ovsset0
7391  *
7392  * GICP Ovsset0 Register
7393  * The GICP_OVSCLR0 characteristics are:
7394  *
7395  * * Purpose
7396  * This register provides the set mechanism for the counter overflow status bits and
7397  * provides read access to the counter overflow status bit values. The GIC-700 supports
7398  * five counters, n = 0-4.
7399  *
7400  * * Usage constraints
7401  * If GICD(A)_SAC.GICPNS == 0, then only Secure software can access this register.
7402  */
7403 union ody_gicp_ovsset0 {
7404 	uint64_t u;
7405 	struct ody_gicp_ovsset0_s {
7406 		uint64_t ovs                         : 5;
7407 		uint64_t reserved_5_63               : 59;
7408 	} s;
7409 	/* struct ody_gicp_ovsset0_s cn; */
7410 };
7411 typedef union ody_gicp_ovsset0 ody_gicp_ovsset0_t;
7412 
7413 #define ODY_GICP_OVSSET0 ODY_GICP_OVSSET0_FUNC()
7414 static inline uint64_t ODY_GICP_OVSSET0_FUNC(void) __attribute__ ((pure, always_inline));
7415 static inline uint64_t ODY_GICP_OVSSET0_FUNC(void)
7416 {
7417 	return 0x801000030cc0ll;
7418 }
7419 
7420 #define typedef_ODY_GICP_OVSSET0 ody_gicp_ovsset0_t
7421 #define bustype_ODY_GICP_OVSSET0 CSR_TYPE_NCB
7422 #define basename_ODY_GICP_OVSSET0 "GICP_OVSSET0"
7423 #define device_bar_ODY_GICP_OVSSET0 0x0 /* PF_BAR0 */
7424 #define busnum_ODY_GICP_OVSSET0 0
7425 #define arguments_ODY_GICP_OVSSET0 -1, -1, -1, -1
7426 
7427 /**
7428  * Register (NCB32b) gicp_pidr0
7429  *
7430  * GICP Pidr0 Register
7431  * The GICP_PIDR0 characteristics are:
7432  *
7433  * * Purpose
7434  * This register returns byte[0] of the peripheral ID of the GIC PMU page.
7435  *
7436  * * Usage constraints
7437  * There are no usage constraints.
7438  */
7439 union ody_gicp_pidr0 {
7440 	uint32_t u;
7441 	struct ody_gicp_pidr0_s {
7442 		uint32_t part_0                      : 8;
7443 		uint32_t reserved_8_31               : 24;
7444 	} s;
7445 	/* struct ody_gicp_pidr0_s cn; */
7446 };
7447 typedef union ody_gicp_pidr0 ody_gicp_pidr0_t;
7448 
7449 #define ODY_GICP_PIDR0 ODY_GICP_PIDR0_FUNC()
7450 static inline uint64_t ODY_GICP_PIDR0_FUNC(void) __attribute__ ((pure, always_inline));
7451 static inline uint64_t ODY_GICP_PIDR0_FUNC(void)
7452 {
7453 	return 0x801000030fe0ll;
7454 }
7455 
7456 #define typedef_ODY_GICP_PIDR0 ody_gicp_pidr0_t
7457 #define bustype_ODY_GICP_PIDR0 CSR_TYPE_NCB32b
7458 #define basename_ODY_GICP_PIDR0 "GICP_PIDR0"
7459 #define device_bar_ODY_GICP_PIDR0 0x0 /* PF_BAR0 */
7460 #define busnum_ODY_GICP_PIDR0 0
7461 #define arguments_ODY_GICP_PIDR0 -1, -1, -1, -1
7462 
7463 /**
7464  * Register (NCB32b) gicp_pidr1
7465  *
7466  * GICP Pidr1 Register
7467  * The GICP_PIDR1 characteristics are:
7468  *
7469  * * Purpose
7470  * This register returns byte[1] of the peripheral ID of the GIC PMU page.
7471  *
7472  * * Usage constraints
7473  * There are no usage constraints.
7474  */
7475 union ody_gicp_pidr1 {
7476 	uint32_t u;
7477 	struct ody_gicp_pidr1_s {
7478 		uint32_t part_1                      : 4;
7479 		uint32_t des_0                       : 4;
7480 		uint32_t reserved_8_31               : 24;
7481 	} s;
7482 	/* struct ody_gicp_pidr1_s cn; */
7483 };
7484 typedef union ody_gicp_pidr1 ody_gicp_pidr1_t;
7485 
7486 #define ODY_GICP_PIDR1 ODY_GICP_PIDR1_FUNC()
7487 static inline uint64_t ODY_GICP_PIDR1_FUNC(void) __attribute__ ((pure, always_inline));
7488 static inline uint64_t ODY_GICP_PIDR1_FUNC(void)
7489 {
7490 	return 0x801000030fe4ll;
7491 }
7492 
7493 #define typedef_ODY_GICP_PIDR1 ody_gicp_pidr1_t
7494 #define bustype_ODY_GICP_PIDR1 CSR_TYPE_NCB32b
7495 #define basename_ODY_GICP_PIDR1 "GICP_PIDR1"
7496 #define device_bar_ODY_GICP_PIDR1 0x0 /* PF_BAR0 */
7497 #define busnum_ODY_GICP_PIDR1 0
7498 #define arguments_ODY_GICP_PIDR1 -1, -1, -1, -1
7499 
7500 /**
7501  * Register (NCB32b) gicp_pidr2
7502  *
7503  * GICP Pidr2 Register
7504  * The GICP_PIDR2 characteristics are:
7505  *
7506  * * Purpose
7507  * This register returns byte[2] of the peripheral ID of the GIC PMU page.
7508  *
7509  * * Usage constraints
7510  * There are no usage constraints.
7511  */
7512 union ody_gicp_pidr2 {
7513 	uint32_t u;
7514 	struct ody_gicp_pidr2_s {
7515 		uint32_t des_1                       : 3;
7516 		uint32_t jedec                       : 1;
7517 		uint32_t revision                    : 4;
7518 		uint32_t reserved_8_31               : 24;
7519 	} s;
7520 	/* struct ody_gicp_pidr2_s cn; */
7521 };
7522 typedef union ody_gicp_pidr2 ody_gicp_pidr2_t;
7523 
7524 #define ODY_GICP_PIDR2 ODY_GICP_PIDR2_FUNC()
7525 static inline uint64_t ODY_GICP_PIDR2_FUNC(void) __attribute__ ((pure, always_inline));
7526 static inline uint64_t ODY_GICP_PIDR2_FUNC(void)
7527 {
7528 	return 0x801000030fe8ll;
7529 }
7530 
7531 #define typedef_ODY_GICP_PIDR2 ody_gicp_pidr2_t
7532 #define bustype_ODY_GICP_PIDR2 CSR_TYPE_NCB32b
7533 #define basename_ODY_GICP_PIDR2 "GICP_PIDR2"
7534 #define device_bar_ODY_GICP_PIDR2 0x0 /* PF_BAR0 */
7535 #define busnum_ODY_GICP_PIDR2 0
7536 #define arguments_ODY_GICP_PIDR2 -1, -1, -1, -1
7537 
7538 /**
7539  * Register (NCB32b) gicp_pidr3
7540  *
7541  * GICP Pidr3 Register
7542  * The GICP_PIDR3 characteristics are:
7543  *
7544  * * Purpose
7545  * This register returns byte[3] of the peripheral ID of the GIC PMU page.
7546  *
7547  * * Usage constraints
7548  * There are no usage constraints.
7549  */
7550 union ody_gicp_pidr3 {
7551 	uint32_t u;
7552 	struct ody_gicp_pidr3_s {
7553 		uint32_t cmod                        : 3;
7554 		uint32_t reserved_3                  : 1;
7555 		uint32_t revand                      : 4;
7556 		uint32_t reserved_8_31               : 24;
7557 	} s;
7558 	/* struct ody_gicp_pidr3_s cn; */
7559 };
7560 typedef union ody_gicp_pidr3 ody_gicp_pidr3_t;
7561 
7562 #define ODY_GICP_PIDR3 ODY_GICP_PIDR3_FUNC()
7563 static inline uint64_t ODY_GICP_PIDR3_FUNC(void) __attribute__ ((pure, always_inline));
7564 static inline uint64_t ODY_GICP_PIDR3_FUNC(void)
7565 {
7566 	return 0x801000030fecll;
7567 }
7568 
7569 #define typedef_ODY_GICP_PIDR3 ody_gicp_pidr3_t
7570 #define bustype_ODY_GICP_PIDR3 CSR_TYPE_NCB32b
7571 #define basename_ODY_GICP_PIDR3 "GICP_PIDR3"
7572 #define device_bar_ODY_GICP_PIDR3 0x0 /* PF_BAR0 */
7573 #define busnum_ODY_GICP_PIDR3 0
7574 #define arguments_ODY_GICP_PIDR3 -1, -1, -1, -1
7575 
7576 /**
7577  * Register (NCB32b) gicp_pidr4
7578  *
7579  * GICP Pidr4 Register
7580  * The GICP_PIDR4 characteristics are:
7581  *
7582  * * Purpose
7583  * This register returns byte[4] of the peripheral ID of the GIC PMU page.
7584  *
7585  * * Usage constraints
7586  * There are no usage constraints.
7587  */
7588 union ody_gicp_pidr4 {
7589 	uint32_t u;
7590 	struct ody_gicp_pidr4_s {
7591 		uint32_t des_2                       : 4;
7592 		uint32_t size                        : 4;
7593 		uint32_t reserved_8_31               : 24;
7594 	} s;
7595 	/* struct ody_gicp_pidr4_s cn; */
7596 };
7597 typedef union ody_gicp_pidr4 ody_gicp_pidr4_t;
7598 
7599 #define ODY_GICP_PIDR4 ODY_GICP_PIDR4_FUNC()
7600 static inline uint64_t ODY_GICP_PIDR4_FUNC(void) __attribute__ ((pure, always_inline));
7601 static inline uint64_t ODY_GICP_PIDR4_FUNC(void)
7602 {
7603 	return 0x801000030fd0ll;
7604 }
7605 
7606 #define typedef_ODY_GICP_PIDR4 ody_gicp_pidr4_t
7607 #define bustype_ODY_GICP_PIDR4 CSR_TYPE_NCB32b
7608 #define basename_ODY_GICP_PIDR4 "GICP_PIDR4"
7609 #define device_bar_ODY_GICP_PIDR4 0x0 /* PF_BAR0 */
7610 #define busnum_ODY_GICP_PIDR4 0
7611 #define arguments_ODY_GICP_PIDR4 -1, -1, -1, -1
7612 
7613 /**
7614  * Register (NCB32b) gicp_pidr5
7615  *
7616  * GICP Pidr5 Register
7617  * The GICP_PIDR5 characteristics are:
7618  *
7619  * * Purpose
7620  * This register returns byte[5] of the peripheral ID of the GIC PMU page.
7621  *
7622  * * Usage constraints
7623  * There are no usage constraints.
7624  */
7625 union ody_gicp_pidr5 {
7626 	uint32_t u;
7627 	struct ody_gicp_pidr5_s {
7628 		uint32_t reserved_0_31               : 32;
7629 	} s;
7630 	struct ody_gicp_pidr5_cn {
7631 		uint32_t reserved_0_7                : 8;
7632 		uint32_t reserved_8_31               : 24;
7633 	} cn;
7634 };
7635 typedef union ody_gicp_pidr5 ody_gicp_pidr5_t;
7636 
7637 #define ODY_GICP_PIDR5 ODY_GICP_PIDR5_FUNC()
7638 static inline uint64_t ODY_GICP_PIDR5_FUNC(void) __attribute__ ((pure, always_inline));
7639 static inline uint64_t ODY_GICP_PIDR5_FUNC(void)
7640 {
7641 	return 0x801000030fd4ll;
7642 }
7643 
7644 #define typedef_ODY_GICP_PIDR5 ody_gicp_pidr5_t
7645 #define bustype_ODY_GICP_PIDR5 CSR_TYPE_NCB32b
7646 #define basename_ODY_GICP_PIDR5 "GICP_PIDR5"
7647 #define device_bar_ODY_GICP_PIDR5 0x0 /* PF_BAR0 */
7648 #define busnum_ODY_GICP_PIDR5 0
7649 #define arguments_ODY_GICP_PIDR5 -1, -1, -1, -1
7650 
7651 /**
7652  * Register (NCB32b) gicp_pidr6
7653  *
7654  * GICP Pidr6 Register
7655  * The GICP_PIDR6 characteristics are:
7656  *
7657  * * Purpose
7658  * This register returns byte[6] of the peripheral ID of the GIC PMU page.
7659  *
7660  * * Usage constraints
7661  * There are no usage constraints.
7662  */
7663 union ody_gicp_pidr6 {
7664 	uint32_t u;
7665 	struct ody_gicp_pidr6_s {
7666 		uint32_t reserved_0_31               : 32;
7667 	} s;
7668 	struct ody_gicp_pidr6_cn {
7669 		uint32_t reserved_0_7                : 8;
7670 		uint32_t reserved_8_31               : 24;
7671 	} cn;
7672 };
7673 typedef union ody_gicp_pidr6 ody_gicp_pidr6_t;
7674 
7675 #define ODY_GICP_PIDR6 ODY_GICP_PIDR6_FUNC()
7676 static inline uint64_t ODY_GICP_PIDR6_FUNC(void) __attribute__ ((pure, always_inline));
7677 static inline uint64_t ODY_GICP_PIDR6_FUNC(void)
7678 {
7679 	return 0x801000030fd8ll;
7680 }
7681 
7682 #define typedef_ODY_GICP_PIDR6 ody_gicp_pidr6_t
7683 #define bustype_ODY_GICP_PIDR6 CSR_TYPE_NCB32b
7684 #define basename_ODY_GICP_PIDR6 "GICP_PIDR6"
7685 #define device_bar_ODY_GICP_PIDR6 0x0 /* PF_BAR0 */
7686 #define busnum_ODY_GICP_PIDR6 0
7687 #define arguments_ODY_GICP_PIDR6 -1, -1, -1, -1
7688 
7689 /**
7690  * Register (NCB32b) gicp_pidr7
7691  *
7692  * GICP Pidr7 Register
7693  * The GICP_PIDR7 characteristics are:
7694  *
7695  * * Purpose
7696  * This register returns byte[7] of the peripheral ID of the GIC PMU page.
7697  *
7698  * * Usage constraints
7699  * There are no usage constraints.
7700  */
7701 union ody_gicp_pidr7 {
7702 	uint32_t u;
7703 	struct ody_gicp_pidr7_s {
7704 		uint32_t reserved_0_31               : 32;
7705 	} s;
7706 	struct ody_gicp_pidr7_cn {
7707 		uint32_t reserved_0_7                : 8;
7708 		uint32_t reserved_8_31               : 24;
7709 	} cn;
7710 };
7711 typedef union ody_gicp_pidr7 ody_gicp_pidr7_t;
7712 
7713 #define ODY_GICP_PIDR7 ODY_GICP_PIDR7_FUNC()
7714 static inline uint64_t ODY_GICP_PIDR7_FUNC(void) __attribute__ ((pure, always_inline));
7715 static inline uint64_t ODY_GICP_PIDR7_FUNC(void)
7716 {
7717 	return 0x801000030fdcll;
7718 }
7719 
7720 #define typedef_ODY_GICP_PIDR7 ody_gicp_pidr7_t
7721 #define bustype_ODY_GICP_PIDR7 CSR_TYPE_NCB32b
7722 #define basename_ODY_GICP_PIDR7 "GICP_PIDR7"
7723 #define device_bar_ODY_GICP_PIDR7 0x0 /* PF_BAR0 */
7724 #define busnum_ODY_GICP_PIDR7 0
7725 #define arguments_ODY_GICP_PIDR7 -1, -1, -1, -1
7726 
7727 /**
7728  * Register (NCB32b) gicp_pmauthstatus
7729  *
7730  * GICP Pmauthstatus Register
7731  * GICP_PMAUTHSTATUS.
7732  */
7733 union ody_gicp_pmauthstatus {
7734 	uint32_t u;
7735 	struct ody_gicp_pmauthstatus_s {
7736 		uint32_t nse                         : 1;
7737 		uint32_t nsi                         : 1;
7738 		uint32_t nsne                        : 1;
7739 		uint32_t nsni                        : 1;
7740 		uint32_t se                          : 1;
7741 		uint32_t si                          : 1;
7742 		uint32_t sne                         : 1;
7743 		uint32_t sni                         : 1;
7744 		uint32_t reserved_8_31               : 24;
7745 	} s;
7746 	/* struct ody_gicp_pmauthstatus_s cn; */
7747 };
7748 typedef union ody_gicp_pmauthstatus ody_gicp_pmauthstatus_t;
7749 
7750 #define ODY_GICP_PMAUTHSTATUS ODY_GICP_PMAUTHSTATUS_FUNC()
7751 static inline uint64_t ODY_GICP_PMAUTHSTATUS_FUNC(void) __attribute__ ((pure, always_inline));
7752 static inline uint64_t ODY_GICP_PMAUTHSTATUS_FUNC(void)
7753 {
7754 	return 0x801000030fb8ll;
7755 }
7756 
7757 #define typedef_ODY_GICP_PMAUTHSTATUS ody_gicp_pmauthstatus_t
7758 #define bustype_ODY_GICP_PMAUTHSTATUS CSR_TYPE_NCB32b
7759 #define basename_ODY_GICP_PMAUTHSTATUS "GICP_PMAUTHSTATUS"
7760 #define device_bar_ODY_GICP_PMAUTHSTATUS 0x0 /* PF_BAR0 */
7761 #define busnum_ODY_GICP_PMAUTHSTATUS 0
7762 #define arguments_ODY_GICP_PMAUTHSTATUS -1, -1, -1, -1
7763 
7764 /**
7765  * Register (NCB32b) gicp_pmdevarch
7766  *
7767  * GICP Pmdevarch Register
7768  * GICP_PMDEVARCH.
7769  */
7770 union ody_gicp_pmdevarch {
7771 	uint32_t u;
7772 	struct ody_gicp_pmdevarch_s {
7773 		uint32_t archid                      : 16;
7774 		uint32_t revision                    : 4;
7775 		uint32_t present                     : 1;
7776 		uint32_t architect                   : 11;
7777 	} s;
7778 	/* struct ody_gicp_pmdevarch_s cn; */
7779 };
7780 typedef union ody_gicp_pmdevarch ody_gicp_pmdevarch_t;
7781 
7782 #define ODY_GICP_PMDEVARCH ODY_GICP_PMDEVARCH_FUNC()
7783 static inline uint64_t ODY_GICP_PMDEVARCH_FUNC(void) __attribute__ ((pure, always_inline));
7784 static inline uint64_t ODY_GICP_PMDEVARCH_FUNC(void)
7785 {
7786 	return 0x801000030fbcll;
7787 }
7788 
7789 #define typedef_ODY_GICP_PMDEVARCH ody_gicp_pmdevarch_t
7790 #define bustype_ODY_GICP_PMDEVARCH CSR_TYPE_NCB32b
7791 #define basename_ODY_GICP_PMDEVARCH "GICP_PMDEVARCH"
7792 #define device_bar_ODY_GICP_PMDEVARCH 0x0 /* PF_BAR0 */
7793 #define busnum_ODY_GICP_PMDEVARCH 0
7794 #define arguments_ODY_GICP_PMDEVARCH -1, -1, -1, -1
7795 
7796 /**
7797  * Register (NCB32b) gicp_pmdevtype
7798  *
7799  * GICP Pmdevtype Register
7800  * GICP_PMDEVTYPE.
7801  */
7802 union ody_gicp_pmdevtype {
7803 	uint32_t u;
7804 	struct ody_gicp_pmdevtype_s {
7805 		uint32_t class_f                     : 4;
7806 		uint32_t subtype                     : 4;
7807 		uint32_t reserved_8_31               : 24;
7808 	} s;
7809 	/* struct ody_gicp_pmdevtype_s cn; */
7810 };
7811 typedef union ody_gicp_pmdevtype ody_gicp_pmdevtype_t;
7812 
7813 #define ODY_GICP_PMDEVTYPE ODY_GICP_PMDEVTYPE_FUNC()
7814 static inline uint64_t ODY_GICP_PMDEVTYPE_FUNC(void) __attribute__ ((pure, always_inline));
7815 static inline uint64_t ODY_GICP_PMDEVTYPE_FUNC(void)
7816 {
7817 	return 0x801000030fccll;
7818 }
7819 
7820 #define typedef_ODY_GICP_PMDEVTYPE ody_gicp_pmdevtype_t
7821 #define bustype_ODY_GICP_PMDEVTYPE CSR_TYPE_NCB32b
7822 #define basename_ODY_GICP_PMDEVTYPE "GICP_PMDEVTYPE"
7823 #define device_bar_ODY_GICP_PMDEVTYPE 0x0 /* PF_BAR0 */
7824 #define busnum_ODY_GICP_PMDEVTYPE 0
7825 #define arguments_ODY_GICP_PMDEVTYPE -1, -1, -1, -1
7826 
7827 /**
7828  * Register (NCB32b) gicp_svr#
7829  *
7830  * GICP Svr Register
7831  * The GICP_SVRn characteristics are:
7832  *
7833  * * Purpose
7834  * These registers contain the shadow value of event counter n. The GIC-700 supports
7835  * five counters, n = 0-4.
7836  *
7837  * * Usage constraints
7838  * If GICD(A)_SAC.GICPNS == 0, then only Secure software can access this register.
7839  */
7840 union ody_gicp_svrx {
7841 	uint32_t u;
7842 	struct ody_gicp_svrx_s {
7843 		uint32_t count                       : 32;
7844 	} s;
7845 	/* struct ody_gicp_svrx_s cn; */
7846 };
7847 typedef union ody_gicp_svrx ody_gicp_svrx_t;
7848 
7849 static inline uint64_t ODY_GICP_SVRX(uint64_t a) __attribute__ ((pure, always_inline));
7850 static inline uint64_t ODY_GICP_SVRX(uint64_t a)
7851 {
7852 	if (a <= 4)
7853 		return 0x801000030600ll + 4ll * ((a) & 0x7);
7854 	__ody_csr_fatal("GICP_SVRX", 1, a, 0, 0, 0, 0, 0);
7855 }
7856 
7857 #define typedef_ODY_GICP_SVRX(a) ody_gicp_svrx_t
7858 #define bustype_ODY_GICP_SVRX(a) CSR_TYPE_NCB32b
7859 #define basename_ODY_GICP_SVRX(a) "GICP_SVRX"
7860 #define device_bar_ODY_GICP_SVRX(a) 0x0 /* PF_BAR0 */
7861 #define busnum_ODY_GICP_SVRX(a) (a)
7862 #define arguments_ODY_GICP_SVRX(a) (a), -1, -1, -1
7863 
7864 /**
7865  * Register (NCB32b) gicr#_cfgid0
7866  *
7867  * GICR Cfgid0 Register
7868  * The GICR0_CFGID0 characteristics are:
7869  *
7870  * * Purpose
7871  * This register returns information about the configuration of the GCI.
7872  *
7873  * * Usage constraints
7874  * There are no usage constraints.
7875  */
7876 union ody_gicrx_cfgid0 {
7877 	uint32_t u;
7878 	struct ody_gicrx_cfgid0_s {
7879 		uint32_t ppinumber                   : 9;
7880 		uint32_t eccsupport                  : 1;
7881 		uint32_t reserved_10_31              : 22;
7882 	} s;
7883 	/* struct ody_gicrx_cfgid0_s cn; */
7884 };
7885 typedef union ody_gicrx_cfgid0 ody_gicrx_cfgid0_t;
7886 
7887 static inline uint64_t ODY_GICRX_CFGID0(uint64_t a) __attribute__ ((pure, always_inline));
7888 static inline uint64_t ODY_GICRX_CFGID0(uint64_t a)
7889 {
7890 	if (a <= 81)
7891 		return 0x80100009f000ll + 0x40000ll * ((a) & 0x7f);
7892 	__ody_csr_fatal("GICRX_CFGID0", 1, a, 0, 0, 0, 0, 0);
7893 }
7894 
7895 #define typedef_ODY_GICRX_CFGID0(a) ody_gicrx_cfgid0_t
7896 #define bustype_ODY_GICRX_CFGID0(a) CSR_TYPE_NCB32b
7897 #define basename_ODY_GICRX_CFGID0(a) "GICRX_CFGID0"
7898 #define device_bar_ODY_GICRX_CFGID0(a) 0x0 /* PF_BAR0 */
7899 #define busnum_ODY_GICRX_CFGID0(a) (a)
7900 #define arguments_ODY_GICRX_CFGID0(a) (a), -1, -1, -1
7901 
7902 /**
7903  * Register (NCB32b) gicr#_cfgid1
7904  *
7905  * GICR Cfgid1 Register
7906  * The GICR0_CFGID1 characteristics are:
7907  *
7908  * * Purpose
7909  * This register returns information about the configuration of the Redistributors.
7910  *
7911  * * Usage constraints
7912  * There are no usage constraints.
7913  */
7914 union ody_gicrx_cfgid1 {
7915 	uint32_t u;
7916 	struct ody_gicrx_cfgid1_s {
7917 		uint32_t reserved_0_3                : 4;
7918 		uint32_t numcpus                     : 8;
7919 		uint32_t reserved_12_15              : 4;
7920 		uint32_t ppisperprocessor            : 8;
7921 		uint32_t revand                      : 4;
7922 		uint32_t version_f                   : 4;
7923 	} s;
7924 	/* struct ody_gicrx_cfgid1_s cn; */
7925 };
7926 typedef union ody_gicrx_cfgid1 ody_gicrx_cfgid1_t;
7927 
7928 static inline uint64_t ODY_GICRX_CFGID1(uint64_t a) __attribute__ ((pure, always_inline));
7929 static inline uint64_t ODY_GICRX_CFGID1(uint64_t a)
7930 {
7931 	if (a <= 81)
7932 		return 0x80100009f004ll + 0x40000ll * ((a) & 0x7f);
7933 	__ody_csr_fatal("GICRX_CFGID1", 1, a, 0, 0, 0, 0, 0);
7934 }
7935 
7936 #define typedef_ODY_GICRX_CFGID1(a) ody_gicrx_cfgid1_t
7937 #define bustype_ODY_GICRX_CFGID1(a) CSR_TYPE_NCB32b
7938 #define basename_ODY_GICRX_CFGID1(a) "GICRX_CFGID1"
7939 #define device_bar_ODY_GICRX_CFGID1(a) 0x0 /* PF_BAR0 */
7940 #define busnum_ODY_GICRX_CFGID1(a) (a)
7941 #define arguments_ODY_GICRX_CFGID1(a) (a), -1, -1, -1
7942 
7943 /**
7944  * Register (NCB32b) gicr#_cidr0
7945  *
7946  * GICR Cidr0 Register
7947  * The GICR0_CIDR0 characteristics are:
7948  *
7949  * * Purpose
7950  * This register is one of the Component Identification Registers and returns the first
7951  * part of the Preamble.
7952  *
7953  * * Usage constraints
7954  * There are no usage constraints.
7955  */
7956 union ody_gicrx_cidr0 {
7957 	uint32_t u;
7958 	struct ody_gicrx_cidr0_s {
7959 		uint32_t prmbl_0                     : 8;
7960 		uint32_t reserved_8_31               : 24;
7961 	} s;
7962 	/* struct ody_gicrx_cidr0_s cn; */
7963 };
7964 typedef union ody_gicrx_cidr0 ody_gicrx_cidr0_t;
7965 
7966 static inline uint64_t ODY_GICRX_CIDR0(uint64_t a) __attribute__ ((pure, always_inline));
7967 static inline uint64_t ODY_GICRX_CIDR0(uint64_t a)
7968 {
7969 	if (a <= 81)
7970 		return 0x80100008fff0ll + 0x40000ll * ((a) & 0x7f);
7971 	__ody_csr_fatal("GICRX_CIDR0", 1, a, 0, 0, 0, 0, 0);
7972 }
7973 
7974 #define typedef_ODY_GICRX_CIDR0(a) ody_gicrx_cidr0_t
7975 #define bustype_ODY_GICRX_CIDR0(a) CSR_TYPE_NCB32b
7976 #define basename_ODY_GICRX_CIDR0(a) "GICRX_CIDR0"
7977 #define device_bar_ODY_GICRX_CIDR0(a) 0x0 /* PF_BAR0 */
7978 #define busnum_ODY_GICRX_CIDR0(a) (a)
7979 #define arguments_ODY_GICRX_CIDR0(a) (a), -1, -1, -1
7980 
7981 /**
7982  * Register (NCB32b) gicr#_cidr1
7983  *
7984  * GICR Cidr1 Register
7985  * The GICR0_CIDR1 characteristics are:
7986  *
7987  * * Purpose
7988  * This register is one of the Component Identification Registers and returns the
7989  * second part of the Preamble as well as the Component Class.
7990  *
7991  * * Usage constraints
7992  * There are no usage constraints.
7993  */
7994 union ody_gicrx_cidr1 {
7995 	uint32_t u;
7996 	struct ody_gicrx_cidr1_s {
7997 		uint32_t prmbl_1                     : 4;
7998 		uint32_t class_f                     : 4;
7999 		uint32_t reserved_8_31               : 24;
8000 	} s;
8001 	/* struct ody_gicrx_cidr1_s cn; */
8002 };
8003 typedef union ody_gicrx_cidr1 ody_gicrx_cidr1_t;
8004 
8005 static inline uint64_t ODY_GICRX_CIDR1(uint64_t a) __attribute__ ((pure, always_inline));
8006 static inline uint64_t ODY_GICRX_CIDR1(uint64_t a)
8007 {
8008 	if (a <= 81)
8009 		return 0x80100008fff4ll + 0x40000ll * ((a) & 0x7f);
8010 	__ody_csr_fatal("GICRX_CIDR1", 1, a, 0, 0, 0, 0, 0);
8011 }
8012 
8013 #define typedef_ODY_GICRX_CIDR1(a) ody_gicrx_cidr1_t
8014 #define bustype_ODY_GICRX_CIDR1(a) CSR_TYPE_NCB32b
8015 #define basename_ODY_GICRX_CIDR1(a) "GICRX_CIDR1"
8016 #define device_bar_ODY_GICRX_CIDR1(a) 0x0 /* PF_BAR0 */
8017 #define busnum_ODY_GICRX_CIDR1(a) (a)
8018 #define arguments_ODY_GICRX_CIDR1(a) (a), -1, -1, -1
8019 
8020 /**
8021  * Register (NCB32b) gicr#_cidr2
8022  *
8023  * GICR Cidr2 Register
8024  * The GICR0_CIDR2 characteristics are:
8025  *
8026  * * Purpose
8027  * This register is one of the Component Identification Registers and returns the third
8028  * part of the Preamble.
8029  *
8030  * * Usage constraints
8031  * There are no usage constraints.
8032  */
8033 union ody_gicrx_cidr2 {
8034 	uint32_t u;
8035 	struct ody_gicrx_cidr2_s {
8036 		uint32_t prmbl_2                     : 8;
8037 		uint32_t reserved_8_31               : 24;
8038 	} s;
8039 	/* struct ody_gicrx_cidr2_s cn; */
8040 };
8041 typedef union ody_gicrx_cidr2 ody_gicrx_cidr2_t;
8042 
8043 static inline uint64_t ODY_GICRX_CIDR2(uint64_t a) __attribute__ ((pure, always_inline));
8044 static inline uint64_t ODY_GICRX_CIDR2(uint64_t a)
8045 {
8046 	if (a <= 81)
8047 		return 0x80100008fff8ll + 0x40000ll * ((a) & 0x7f);
8048 	__ody_csr_fatal("GICRX_CIDR2", 1, a, 0, 0, 0, 0, 0);
8049 }
8050 
8051 #define typedef_ODY_GICRX_CIDR2(a) ody_gicrx_cidr2_t
8052 #define bustype_ODY_GICRX_CIDR2(a) CSR_TYPE_NCB32b
8053 #define basename_ODY_GICRX_CIDR2(a) "GICRX_CIDR2"
8054 #define device_bar_ODY_GICRX_CIDR2(a) 0x0 /* PF_BAR0 */
8055 #define busnum_ODY_GICRX_CIDR2(a) (a)
8056 #define arguments_ODY_GICRX_CIDR2(a) (a), -1, -1, -1
8057 
8058 /**
8059  * Register (NCB32b) gicr#_cidr3
8060  *
8061  * GICR Cidr3 Register
8062  * The GICR0_CIDR3 characteristics are:
8063  *
8064  * * Purpose
8065  * This register is one of the Component Identification Registers and returns the
8066  * fourth part of the Preamble.
8067  *
8068  * * Usage constraints
8069  * There are no usage constraints.
8070  */
8071 union ody_gicrx_cidr3 {
8072 	uint32_t u;
8073 	struct ody_gicrx_cidr3_s {
8074 		uint32_t prmbl_3                     : 8;
8075 		uint32_t reserved_8_31               : 24;
8076 	} s;
8077 	/* struct ody_gicrx_cidr3_s cn; */
8078 };
8079 typedef union ody_gicrx_cidr3 ody_gicrx_cidr3_t;
8080 
8081 static inline uint64_t ODY_GICRX_CIDR3(uint64_t a) __attribute__ ((pure, always_inline));
8082 static inline uint64_t ODY_GICRX_CIDR3(uint64_t a)
8083 {
8084 	if (a <= 81)
8085 		return 0x80100008fffcll + 0x40000ll * ((a) & 0x7f);
8086 	__ody_csr_fatal("GICRX_CIDR3", 1, a, 0, 0, 0, 0, 0);
8087 }
8088 
8089 #define typedef_ODY_GICRX_CIDR3(a) ody_gicrx_cidr3_t
8090 #define bustype_ODY_GICRX_CIDR3(a) CSR_TYPE_NCB32b
8091 #define basename_ODY_GICRX_CIDR3(a) "GICRX_CIDR3"
8092 #define device_bar_ODY_GICRX_CIDR3(a) 0x0 /* PF_BAR0 */
8093 #define busnum_ODY_GICRX_CIDR3(a) (a)
8094 #define arguments_ODY_GICRX_CIDR3(a) (a), -1, -1, -1
8095 
8096 /**
8097  * Register (NCB32b) gicr#_class
8098  *
8099  * GICR Class Register
8100  * The GICR0_CLASSR characteristics are:
8101  *
8102  * * Purpose
8103  * This register specifies which class of 1 of N interrupt the PE accepts.
8104  *
8105  * * Usage constraints
8106  * Only accessible by Secure accesses or when GICD(A)_DS.DS == 1
8107  */
8108 union ody_gicrx_class {
8109 	uint32_t u;
8110 	struct ody_gicrx_class_s {
8111 		uint32_t class_f                     : 1;
8112 		uint32_t reserved_1_31               : 31;
8113 	} s;
8114 	/* struct ody_gicrx_class_s cn; */
8115 };
8116 typedef union ody_gicrx_class ody_gicrx_class_t;
8117 
8118 static inline uint64_t ODY_GICRX_CLASS(uint64_t a) __attribute__ ((pure, always_inline));
8119 static inline uint64_t ODY_GICRX_CLASS(uint64_t a)
8120 {
8121 	if (a <= 81)
8122 		return 0x801000080028ll + 0x40000ll * ((a) & 0x7f);
8123 	__ody_csr_fatal("GICRX_CLASS", 1, a, 0, 0, 0, 0, 0);
8124 }
8125 
8126 #define typedef_ODY_GICRX_CLASS(a) ody_gicrx_class_t
8127 #define bustype_ODY_GICRX_CLASS(a) CSR_TYPE_NCB32b
8128 #define basename_ODY_GICRX_CLASS(a) "GICRX_CLASS"
8129 #define device_bar_ODY_GICRX_CLASS(a) 0x0 /* PF_BAR0 */
8130 #define busnum_ODY_GICRX_CLASS(a) (a)
8131 #define arguments_ODY_GICRX_CLASS(a) (a), -1, -1, -1
8132 
8133 /**
8134  * Register (NCB32b) gicr#_ctlr
8135  *
8136  * GICR Ctlr Register
8137  * The GICR0_CTLR characteristics are:
8138  *
8139  * * Purpose
8140  * This register controls the operation of the Redistributor for a single PE, and
8141  * enables the signaling of LPIs by the Redistributor to the connected core.
8142  *
8143  * * Usage constraints
8144  * There are no usage constraints.
8145  */
8146 union ody_gicrx_ctlr {
8147 	uint32_t u;
8148 	struct ody_gicrx_ctlr_s {
8149 		uint32_t enablelpis                  : 1;
8150 		uint32_t ces                         : 1;
8151 		uint32_t ir                          : 1;
8152 		uint32_t rwp                         : 1;
8153 		uint32_t reserved_4_23               : 20;
8154 		uint32_t dpg0                        : 1;
8155 		uint32_t dpg1ns                      : 1;
8156 		uint32_t dpg1s                       : 1;
8157 		uint32_t reserved_27_30              : 4;
8158 		uint32_t uwp                         : 1;
8159 	} s;
8160 	/* struct ody_gicrx_ctlr_s cn; */
8161 };
8162 typedef union ody_gicrx_ctlr ody_gicrx_ctlr_t;
8163 
8164 static inline uint64_t ODY_GICRX_CTLR(uint64_t a) __attribute__ ((pure, always_inline));
8165 static inline uint64_t ODY_GICRX_CTLR(uint64_t a)
8166 {
8167 	if (a <= 81)
8168 		return 0x801000080000ll + 0x40000ll * ((a) & 0x7f);
8169 	__ody_csr_fatal("GICRX_CTLR", 1, a, 0, 0, 0, 0, 0);
8170 }
8171 
8172 #define typedef_ODY_GICRX_CTLR(a) ody_gicrx_ctlr_t
8173 #define bustype_ODY_GICRX_CTLR(a) CSR_TYPE_NCB32b
8174 #define basename_ODY_GICRX_CTLR(a) "GICRX_CTLR"
8175 #define device_bar_ODY_GICRX_CTLR(a) 0x0 /* PF_BAR0 */
8176 #define busnum_ODY_GICRX_CTLR(a) (a)
8177 #define arguments_ODY_GICRX_CTLR(a) (a), -1, -1, -1
8178 
8179 /**
8180  * Register (NCB32b) gicr#_dprir
8181  *
8182  * GICR Dprir Register
8183  * The GICR0_DPRIR characteristics are:
8184  *
8185  * * Purpose
8186  *
8187  * This register controls the default priority of errored interrupts.
8188  *
8189  * * Usage constraints
8190  * Some fields are only writable by using a Secure access.
8191  */
8192 union ody_gicrx_dprir {
8193 	uint32_t u;
8194 	struct ody_gicrx_dprir_s {
8195 		uint32_t reserved_0_2                : 3;
8196 		uint32_t gpr0_pri                    : 5;
8197 		uint32_t reserved_8_10               : 3;
8198 		uint32_t gpr1ns_pri                  : 5;
8199 		uint32_t reserved_16_18              : 3;
8200 		uint32_t gpr1sec_pri                 : 5;
8201 		uint32_t reserved_24_31              : 8;
8202 	} s;
8203 	/* struct ody_gicrx_dprir_s cn; */
8204 };
8205 typedef union ody_gicrx_dprir ody_gicrx_dprir_t;
8206 
8207 static inline uint64_t ODY_GICRX_DPRIR(uint64_t a) __attribute__ ((pure, always_inline));
8208 static inline uint64_t ODY_GICRX_DPRIR(uint64_t a)
8209 {
8210 	if (a <= 81)
8211 		return 0x80100009c018ll + 0x40000ll * ((a) & 0x7f);
8212 	__ody_csr_fatal("GICRX_DPRIR", 1, a, 0, 0, 0, 0, 0);
8213 }
8214 
8215 #define typedef_ODY_GICRX_DPRIR(a) ody_gicrx_dprir_t
8216 #define bustype_ODY_GICRX_DPRIR(a) CSR_TYPE_NCB32b
8217 #define basename_ODY_GICRX_DPRIR(a) "GICRX_DPRIR"
8218 #define device_bar_ODY_GICRX_DPRIR(a) 0x0 /* PF_BAR0 */
8219 #define busnum_ODY_GICRX_DPRIR(a) (a)
8220 #define arguments_ODY_GICRX_DPRIR(a) (a), -1, -1, -1
8221 
8222 /**
8223  * Register (NCB) gicr#_errinsr
8224  *
8225  * GICR Errinsr Register
8226  * The GICR0_ERRINSR characteristics are:
8227  *
8228  * * Purpose
8229  * This register can inject errors into the PPI RAM. You can use this register to test
8230  * your error recovery software.
8231  *
8232  * * Usage constraints
8233  * If GICD_SAC.GICTNS == 0, then only Secure software can access the contents of this register.
8234  */
8235 union ody_gicrx_errinsr {
8236 	uint64_t u;
8237 	struct ody_gicrx_errinsr_s {
8238 		uint64_t errins1loc                  : 9;
8239 		uint64_t reserved_9_14               : 6;
8240 		uint64_t errins1valid                : 1;
8241 		uint64_t errins2loc                  : 9;
8242 		uint64_t reserved_25_30              : 6;
8243 		uint64_t errins2valid                : 1;
8244 		uint64_t addr                        : 16;
8245 		uint64_t reserved_48_59              : 12;
8246 		uint64_t disablewritecheck           : 1;
8247 		uint64_t reserved_61_62              : 2;
8248 		uint64_t valid                       : 1;
8249 	} s;
8250 	/* struct ody_gicrx_errinsr_s cn; */
8251 };
8252 typedef union ody_gicrx_errinsr ody_gicrx_errinsr_t;
8253 
8254 static inline uint64_t ODY_GICRX_ERRINSR(uint64_t a) __attribute__ ((pure, always_inline));
8255 static inline uint64_t ODY_GICRX_ERRINSR(uint64_t a)
8256 {
8257 	if (a <= 81)
8258 		return 0x80100009f010ll + 0x40000ll * ((a) & 0x7f);
8259 	__ody_csr_fatal("GICRX_ERRINSR", 1, a, 0, 0, 0, 0, 0);
8260 }
8261 
8262 #define typedef_ODY_GICRX_ERRINSR(a) ody_gicrx_errinsr_t
8263 #define bustype_ODY_GICRX_ERRINSR(a) CSR_TYPE_NCB
8264 #define basename_ODY_GICRX_ERRINSR(a) "GICRX_ERRINSR"
8265 #define device_bar_ODY_GICRX_ERRINSR(a) 0x0 /* PF_BAR0 */
8266 #define busnum_ODY_GICRX_ERRINSR(a) (a)
8267 #define arguments_ODY_GICRX_ERRINSR(a) (a), -1, -1, -1
8268 
8269 /**
8270  * Register (NCB32b) gicr#_fctlr
8271  *
8272  * GICR Fctlr Register
8273  * The GICR0_FCTLR characteristics are:
8274  *
8275  * * Purpose
8276  * This register controls functions in the GCI such as Q-Channel, clock gating, and RAM scrubs.
8277  *
8278  * * Usage constraints
8279  * There are no usage constraints.
8280  */
8281 union ody_gicrx_fctlr {
8282 	uint32_t u;
8283 	struct ody_gicrx_fctlr_s {
8284 		uint32_t sip                         : 1;
8285 		uint32_t qdeny                       : 1;
8286 		uint32_t cgo                         : 3;
8287 		uint32_t reserved_5_31               : 27;
8288 	} s;
8289 	struct ody_gicrx_fctlr_cn {
8290 		uint32_t sip                         : 1;
8291 		uint32_t qdeny                       : 1;
8292 		uint32_t cgo                         : 3;
8293 		uint32_t reserved_5_9                : 5;
8294 		uint32_t reserved_10_31              : 22;
8295 	} cn;
8296 };
8297 typedef union ody_gicrx_fctlr ody_gicrx_fctlr_t;
8298 
8299 static inline uint64_t ODY_GICRX_FCTLR(uint64_t a) __attribute__ ((pure, always_inline));
8300 static inline uint64_t ODY_GICRX_FCTLR(uint64_t a)
8301 {
8302 	if (a <= 81)
8303 		return 0x801000080020ll + 0x40000ll * ((a) & 0x7f);
8304 	__ody_csr_fatal("GICRX_FCTLR", 1, a, 0, 0, 0, 0, 0);
8305 }
8306 
8307 #define typedef_ODY_GICRX_FCTLR(a) ody_gicrx_fctlr_t
8308 #define bustype_ODY_GICRX_FCTLR(a) CSR_TYPE_NCB32b
8309 #define basename_ODY_GICRX_FCTLR(a) "GICRX_FCTLR"
8310 #define device_bar_ODY_GICRX_FCTLR(a) 0x0 /* PF_BAR0 */
8311 #define busnum_ODY_GICRX_FCTLR(a) (a)
8312 #define arguments_ODY_GICRX_FCTLR(a) (a), -1, -1, -1
8313 
8314 /**
8315  * Register (NCB32b) gicr#_icactiver0
8316  *
8317  * GICR Icactiver0 Register
8318  * The GICR0_ICACTIVER0 characteristics are:
8319  *
8320  * * Purpose
8321  * Deactivates the corresponding SGI (IDs 0-15) or PPI (IDs 16-31). These registers are
8322  * used when saving and restoring GIC state.
8323  *
8324  * * Usage constraints
8325  * If GICD(A)_CTLR.DS==0, unless the GICR0_NSACR register permits Non-secure software
8326  * to control Group 0 and Secure Group 1 interrupts, any bits that correspond to Group
8327  * 0 or Secure Group 1 interrupts are accessible only by Secure accesses and are RAZ/WI
8328  * to Non-secure accesses.
8329  */
8330 union ody_gicrx_icactiver0 {
8331 	uint32_t u;
8332 	struct ody_gicrx_icactiver0_s {
8333 		uint32_t clear_active_bit0           : 1;
8334 		uint32_t clear_active_bit1           : 1;
8335 		uint32_t clear_active_bit2           : 1;
8336 		uint32_t clear_active_bit3           : 1;
8337 		uint32_t clear_active_bit4           : 1;
8338 		uint32_t clear_active_bit5           : 1;
8339 		uint32_t clear_active_bit6           : 1;
8340 		uint32_t clear_active_bit7           : 1;
8341 		uint32_t clear_active_bit8           : 1;
8342 		uint32_t clear_active_bit9           : 1;
8343 		uint32_t clear_active_bit10          : 1;
8344 		uint32_t clear_active_bit11          : 1;
8345 		uint32_t clear_active_bit12          : 1;
8346 		uint32_t clear_active_bit13          : 1;
8347 		uint32_t clear_active_bit14          : 1;
8348 		uint32_t clear_active_bit15          : 1;
8349 		uint32_t clear_active_bit16          : 1;
8350 		uint32_t clear_active_bit17          : 1;
8351 		uint32_t clear_active_bit18          : 1;
8352 		uint32_t clear_active_bit19          : 1;
8353 		uint32_t clear_active_bit20          : 1;
8354 		uint32_t clear_active_bit21          : 1;
8355 		uint32_t clear_active_bit22          : 1;
8356 		uint32_t clear_active_bit23          : 1;
8357 		uint32_t clear_active_bit24          : 1;
8358 		uint32_t clear_active_bit25          : 1;
8359 		uint32_t clear_active_bit26          : 1;
8360 		uint32_t clear_active_bit27          : 1;
8361 		uint32_t clear_active_bit28          : 1;
8362 		uint32_t clear_active_bit29          : 1;
8363 		uint32_t clear_active_bit30          : 1;
8364 		uint32_t clear_active_bit31          : 1;
8365 	} s;
8366 	/* struct ody_gicrx_icactiver0_s cn; */
8367 };
8368 typedef union ody_gicrx_icactiver0 ody_gicrx_icactiver0_t;
8369 
8370 static inline uint64_t ODY_GICRX_ICACTIVER0(uint64_t a) __attribute__ ((pure, always_inline));
8371 static inline uint64_t ODY_GICRX_ICACTIVER0(uint64_t a)
8372 {
8373 	if (a <= 81)
8374 		return 0x801000090380ll + 0x40000ll * ((a) & 0x7f);
8375 	__ody_csr_fatal("GICRX_ICACTIVER0", 1, a, 0, 0, 0, 0, 0);
8376 }
8377 
8378 #define typedef_ODY_GICRX_ICACTIVER0(a) ody_gicrx_icactiver0_t
8379 #define bustype_ODY_GICRX_ICACTIVER0(a) CSR_TYPE_NCB32b
8380 #define basename_ODY_GICRX_ICACTIVER0(a) "GICRX_ICACTIVER0"
8381 #define device_bar_ODY_GICRX_ICACTIVER0(a) 0x0 /* PF_BAR0 */
8382 #define busnum_ODY_GICRX_ICACTIVER0(a) (a)
8383 #define arguments_ODY_GICRX_ICACTIVER0(a) (a), -1, -1, -1
8384 
8385 /**
8386  * Register (NCB32b) gicr#_icactiver1e
8387  *
8388  * GICR Icactiver1e Register
8389  * The GICR0_ICACTIVER1E characteristics are:
8390  *
8391  * * Purpose
8392  * Deactivates the corresponding  extended range PPI. These registers are used when
8393  * saving and restoring GIC state.
8394  *
8395  * * Usage constraints
8396  * If GICD(A)_CTLR.DS==0, unless the GICR0_NSACR register permits Non-secure software
8397  * to control Group 0 and Secure Group 1 interrupts, any bits that correspond to Group
8398  * 0 or Secure Group 1 interrupts are accessible only by Secure accesses and are RAZ/WI
8399  * to Non-secure accesses.
8400  */
8401 union ody_gicrx_icactiver1e {
8402 	uint32_t u;
8403 	struct ody_gicrx_icactiver1e_s {
8404 		uint32_t clear_active_bit0           : 1;
8405 		uint32_t clear_active_bit1           : 1;
8406 		uint32_t clear_active_bit2           : 1;
8407 		uint32_t clear_active_bit3           : 1;
8408 		uint32_t clear_active_bit4           : 1;
8409 		uint32_t clear_active_bit5           : 1;
8410 		uint32_t clear_active_bit6           : 1;
8411 		uint32_t clear_active_bit7           : 1;
8412 		uint32_t clear_active_bit8           : 1;
8413 		uint32_t clear_active_bit9           : 1;
8414 		uint32_t clear_active_bit10          : 1;
8415 		uint32_t clear_active_bit11          : 1;
8416 		uint32_t clear_active_bit12          : 1;
8417 		uint32_t clear_active_bit13          : 1;
8418 		uint32_t clear_active_bit14          : 1;
8419 		uint32_t clear_active_bit15          : 1;
8420 		uint32_t clear_active_bit16          : 1;
8421 		uint32_t clear_active_bit17          : 1;
8422 		uint32_t clear_active_bit18          : 1;
8423 		uint32_t clear_active_bit19          : 1;
8424 		uint32_t clear_active_bit20          : 1;
8425 		uint32_t clear_active_bit21          : 1;
8426 		uint32_t clear_active_bit22          : 1;
8427 		uint32_t clear_active_bit23          : 1;
8428 		uint32_t clear_active_bit24          : 1;
8429 		uint32_t clear_active_bit25          : 1;
8430 		uint32_t clear_active_bit26          : 1;
8431 		uint32_t clear_active_bit27          : 1;
8432 		uint32_t clear_active_bit28          : 1;
8433 		uint32_t clear_active_bit29          : 1;
8434 		uint32_t clear_active_bit30          : 1;
8435 		uint32_t clear_active_bit31          : 1;
8436 	} s;
8437 	/* struct ody_gicrx_icactiver1e_s cn; */
8438 };
8439 typedef union ody_gicrx_icactiver1e ody_gicrx_icactiver1e_t;
8440 
8441 static inline uint64_t ODY_GICRX_ICACTIVER1E(uint64_t a) __attribute__ ((pure, always_inline));
8442 static inline uint64_t ODY_GICRX_ICACTIVER1E(uint64_t a)
8443 {
8444 	if (a <= 81)
8445 		return 0x801000090384ll + 0x40000ll * ((a) & 0x7f);
8446 	__ody_csr_fatal("GICRX_ICACTIVER1E", 1, a, 0, 0, 0, 0, 0);
8447 }
8448 
8449 #define typedef_ODY_GICRX_ICACTIVER1E(a) ody_gicrx_icactiver1e_t
8450 #define bustype_ODY_GICRX_ICACTIVER1E(a) CSR_TYPE_NCB32b
8451 #define basename_ODY_GICRX_ICACTIVER1E(a) "GICRX_ICACTIVER1E"
8452 #define device_bar_ODY_GICRX_ICACTIVER1E(a) 0x0 /* PF_BAR0 */
8453 #define busnum_ODY_GICRX_ICACTIVER1E(a) (a)
8454 #define arguments_ODY_GICRX_ICACTIVER1E(a) (a), -1, -1, -1
8455 
8456 /**
8457  * Register (NCB32b) gicr#_icenabler0
8458  *
8459  * GICR Icenabler0 Register
8460  * The GICR0_ICENABLER0 characteristics are:
8461  *
8462  * * Purpose
8463  * Disables forwarding of the corresponding SGI (IDs 0-15) or PPI (IDs 16-31) to the CPU interface.
8464  *
8465  * * Usage constraints
8466  * When GICD(A)_CTLR.DS==0, bits corresponding to Group 0 and Secure Group 1 interrupts
8467  * are RAZ/WI to Non-secure accesses.
8468  */
8469 union ody_gicrx_icenabler0 {
8470 	uint32_t u;
8471 	struct ody_gicrx_icenabler0_s {
8472 		uint32_t clear_enable_bit0           : 1;
8473 		uint32_t clear_enable_bit1           : 1;
8474 		uint32_t clear_enable_bit2           : 1;
8475 		uint32_t clear_enable_bit3           : 1;
8476 		uint32_t clear_enable_bit4           : 1;
8477 		uint32_t clear_enable_bit5           : 1;
8478 		uint32_t clear_enable_bit6           : 1;
8479 		uint32_t clear_enable_bit7           : 1;
8480 		uint32_t clear_enable_bit8           : 1;
8481 		uint32_t clear_enable_bit9           : 1;
8482 		uint32_t clear_enable_bit10          : 1;
8483 		uint32_t clear_enable_bit11          : 1;
8484 		uint32_t clear_enable_bit12          : 1;
8485 		uint32_t clear_enable_bit13          : 1;
8486 		uint32_t clear_enable_bit14          : 1;
8487 		uint32_t clear_enable_bit15          : 1;
8488 		uint32_t clear_enable_bit16          : 1;
8489 		uint32_t clear_enable_bit17          : 1;
8490 		uint32_t clear_enable_bit18          : 1;
8491 		uint32_t clear_enable_bit19          : 1;
8492 		uint32_t clear_enable_bit20          : 1;
8493 		uint32_t clear_enable_bit21          : 1;
8494 		uint32_t clear_enable_bit22          : 1;
8495 		uint32_t clear_enable_bit23          : 1;
8496 		uint32_t clear_enable_bit24          : 1;
8497 		uint32_t clear_enable_bit25          : 1;
8498 		uint32_t clear_enable_bit26          : 1;
8499 		uint32_t clear_enable_bit27          : 1;
8500 		uint32_t clear_enable_bit28          : 1;
8501 		uint32_t clear_enable_bit29          : 1;
8502 		uint32_t clear_enable_bit30          : 1;
8503 		uint32_t clear_enable_bit31          : 1;
8504 	} s;
8505 	/* struct ody_gicrx_icenabler0_s cn; */
8506 };
8507 typedef union ody_gicrx_icenabler0 ody_gicrx_icenabler0_t;
8508 
8509 static inline uint64_t ODY_GICRX_ICENABLER0(uint64_t a) __attribute__ ((pure, always_inline));
8510 static inline uint64_t ODY_GICRX_ICENABLER0(uint64_t a)
8511 {
8512 	if (a <= 81)
8513 		return 0x801000090180ll + 0x40000ll * ((a) & 0x7f);
8514 	__ody_csr_fatal("GICRX_ICENABLER0", 1, a, 0, 0, 0, 0, 0);
8515 }
8516 
8517 #define typedef_ODY_GICRX_ICENABLER0(a) ody_gicrx_icenabler0_t
8518 #define bustype_ODY_GICRX_ICENABLER0(a) CSR_TYPE_NCB32b
8519 #define basename_ODY_GICRX_ICENABLER0(a) "GICRX_ICENABLER0"
8520 #define device_bar_ODY_GICRX_ICENABLER0(a) 0x0 /* PF_BAR0 */
8521 #define busnum_ODY_GICRX_ICENABLER0(a) (a)
8522 #define arguments_ODY_GICRX_ICENABLER0(a) (a), -1, -1, -1
8523 
8524 /**
8525  * Register (NCB32b) gicr#_icenabler1e
8526  *
8527  * GICR Icenabler1e Register
8528  * The GICR0_ICENABLER1E characteristics are:
8529  *
8530  * * Purpose
8531  * Disables forwarding of the corresponding extended range PPI to the CPU interfaces.
8532  *
8533  * * Usage constraints
8534  * When GICD(A)_CTLR.DS==0, bits corresponding to Group 0 and Secure Group 1 interrupts
8535  * are RAZ/WI to Non-secure accesses.
8536  * A copy of this register is provided for each Redistributor.
8537  */
8538 union ody_gicrx_icenabler1e {
8539 	uint32_t u;
8540 	struct ody_gicrx_icenabler1e_s {
8541 		uint32_t clear_enable_bit0           : 1;
8542 		uint32_t clear_enable_bit1           : 1;
8543 		uint32_t clear_enable_bit2           : 1;
8544 		uint32_t clear_enable_bit3           : 1;
8545 		uint32_t clear_enable_bit4           : 1;
8546 		uint32_t clear_enable_bit5           : 1;
8547 		uint32_t clear_enable_bit6           : 1;
8548 		uint32_t clear_enable_bit7           : 1;
8549 		uint32_t clear_enable_bit8           : 1;
8550 		uint32_t clear_enable_bit9           : 1;
8551 		uint32_t clear_enable_bit10          : 1;
8552 		uint32_t clear_enable_bit11          : 1;
8553 		uint32_t clear_enable_bit12          : 1;
8554 		uint32_t clear_enable_bit13          : 1;
8555 		uint32_t clear_enable_bit14          : 1;
8556 		uint32_t clear_enable_bit15          : 1;
8557 		uint32_t clear_enable_bit16          : 1;
8558 		uint32_t clear_enable_bit17          : 1;
8559 		uint32_t clear_enable_bit18          : 1;
8560 		uint32_t clear_enable_bit19          : 1;
8561 		uint32_t clear_enable_bit20          : 1;
8562 		uint32_t clear_enable_bit21          : 1;
8563 		uint32_t clear_enable_bit22          : 1;
8564 		uint32_t clear_enable_bit23          : 1;
8565 		uint32_t clear_enable_bit24          : 1;
8566 		uint32_t clear_enable_bit25          : 1;
8567 		uint32_t clear_enable_bit26          : 1;
8568 		uint32_t clear_enable_bit27          : 1;
8569 		uint32_t clear_enable_bit28          : 1;
8570 		uint32_t clear_enable_bit29          : 1;
8571 		uint32_t clear_enable_bit30          : 1;
8572 		uint32_t clear_enable_bit31          : 1;
8573 	} s;
8574 	/* struct ody_gicrx_icenabler1e_s cn; */
8575 };
8576 typedef union ody_gicrx_icenabler1e ody_gicrx_icenabler1e_t;
8577 
8578 static inline uint64_t ODY_GICRX_ICENABLER1E(uint64_t a) __attribute__ ((pure, always_inline));
8579 static inline uint64_t ODY_GICRX_ICENABLER1E(uint64_t a)
8580 {
8581 	if (a <= 81)
8582 		return 0x801000090184ll + 0x40000ll * ((a) & 0x7f);
8583 	__ody_csr_fatal("GICRX_ICENABLER1E", 1, a, 0, 0, 0, 0, 0);
8584 }
8585 
8586 #define typedef_ODY_GICRX_ICENABLER1E(a) ody_gicrx_icenabler1e_t
8587 #define bustype_ODY_GICRX_ICENABLER1E(a) CSR_TYPE_NCB32b
8588 #define basename_ODY_GICRX_ICENABLER1E(a) "GICRX_ICENABLER1E"
8589 #define device_bar_ODY_GICRX_ICENABLER1E(a) 0x0 /* PF_BAR0 */
8590 #define busnum_ODY_GICRX_ICENABLER1E(a) (a)
8591 #define arguments_ODY_GICRX_ICENABLER1E(a) (a), -1, -1, -1
8592 
8593 /**
8594  * Register (NCB32b) gicr#_icerrr0
8595  *
8596  * GICR Icerrr0 Register
8597  * The GICR0_ICERRR0 characteristics are:
8598  *
8599  * * Purpose
8600  *
8601  * This register indicates if the SGI or PPI data has been corrupted in the GCI RAM.
8602  * Software can use this register to clear an SGI or PPI error.
8603  *
8604  * * Usage constraints
8605  * Only accessible by Secure accesses or when GICD(A)_DS.DS == 1.
8606  */
8607 union ody_gicrx_icerrr0 {
8608 	uint32_t u;
8609 	struct ody_gicrx_icerrr0_s {
8610 		uint32_t valid_bit0                  : 1;
8611 		uint32_t valid_bit1                  : 1;
8612 		uint32_t valid_bit2                  : 1;
8613 		uint32_t valid_bit3                  : 1;
8614 		uint32_t valid_bit4                  : 1;
8615 		uint32_t valid_bit5                  : 1;
8616 		uint32_t valid_bit6                  : 1;
8617 		uint32_t valid_bit7                  : 1;
8618 		uint32_t valid_bit8                  : 1;
8619 		uint32_t valid_bit9                  : 1;
8620 		uint32_t valid_bit10                 : 1;
8621 		uint32_t valid_bit11                 : 1;
8622 		uint32_t valid_bit12                 : 1;
8623 		uint32_t valid_bit13                 : 1;
8624 		uint32_t valid_bit14                 : 1;
8625 		uint32_t valid_bit15                 : 1;
8626 		uint32_t valid_bit16                 : 1;
8627 		uint32_t valid_bit17                 : 1;
8628 		uint32_t valid_bit18                 : 1;
8629 		uint32_t valid_bit19                 : 1;
8630 		uint32_t valid_bit20                 : 1;
8631 		uint32_t valid_bit21                 : 1;
8632 		uint32_t valid_bit22                 : 1;
8633 		uint32_t valid_bit23                 : 1;
8634 		uint32_t valid_bit24                 : 1;
8635 		uint32_t valid_bit25                 : 1;
8636 		uint32_t valid_bit26                 : 1;
8637 		uint32_t valid_bit27                 : 1;
8638 		uint32_t valid_bit28                 : 1;
8639 		uint32_t valid_bit29                 : 1;
8640 		uint32_t valid_bit30                 : 1;
8641 		uint32_t valid_bit31                 : 1;
8642 	} s;
8643 	/* struct ody_gicrx_icerrr0_s cn; */
8644 };
8645 typedef union ody_gicrx_icerrr0 ody_gicrx_icerrr0_t;
8646 
8647 static inline uint64_t ODY_GICRX_ICERRR0(uint64_t a) __attribute__ ((pure, always_inline));
8648 static inline uint64_t ODY_GICRX_ICERRR0(uint64_t a)
8649 {
8650 	if (a <= 81)
8651 		return 0x80100009c100ll + 0x40000ll * ((a) & 0x7f);
8652 	__ody_csr_fatal("GICRX_ICERRR0", 1, a, 0, 0, 0, 0, 0);
8653 }
8654 
8655 #define typedef_ODY_GICRX_ICERRR0(a) ody_gicrx_icerrr0_t
8656 #define bustype_ODY_GICRX_ICERRR0(a) CSR_TYPE_NCB32b
8657 #define basename_ODY_GICRX_ICERRR0(a) "GICRX_ICERRR0"
8658 #define device_bar_ODY_GICRX_ICERRR0(a) 0x0 /* PF_BAR0 */
8659 #define busnum_ODY_GICRX_ICERRR0(a) (a)
8660 #define arguments_ODY_GICRX_ICERRR0(a) (a), -1, -1, -1
8661 
8662 /**
8663  * Register (NCB32b) gicr#_icerrr1e
8664  *
8665  * GICR Icerrr1e Register
8666  * The GICR0_ICERRR1E characteristics are:
8667  *
8668  * * Purpose
8669  *
8670  * This register indicates if extended range PPI data has been corrupted in the GCI
8671  * RAM. Software can use this register to clear the error.
8672  *
8673  * * Usage constraints
8674  * Only accessible by Secure accesses or when GICD(A)_DS.DS == 1.
8675  */
8676 union ody_gicrx_icerrr1e {
8677 	uint32_t u;
8678 	struct ody_gicrx_icerrr1e_s {
8679 		uint32_t valid_bit0                  : 1;
8680 		uint32_t valid_bit1                  : 1;
8681 		uint32_t valid_bit2                  : 1;
8682 		uint32_t valid_bit3                  : 1;
8683 		uint32_t valid_bit4                  : 1;
8684 		uint32_t valid_bit5                  : 1;
8685 		uint32_t valid_bit6                  : 1;
8686 		uint32_t valid_bit7                  : 1;
8687 		uint32_t valid_bit8                  : 1;
8688 		uint32_t valid_bit9                  : 1;
8689 		uint32_t valid_bit10                 : 1;
8690 		uint32_t valid_bit11                 : 1;
8691 		uint32_t valid_bit12                 : 1;
8692 		uint32_t valid_bit13                 : 1;
8693 		uint32_t valid_bit14                 : 1;
8694 		uint32_t valid_bit15                 : 1;
8695 		uint32_t valid_bit16                 : 1;
8696 		uint32_t valid_bit17                 : 1;
8697 		uint32_t valid_bit18                 : 1;
8698 		uint32_t valid_bit19                 : 1;
8699 		uint32_t valid_bit20                 : 1;
8700 		uint32_t valid_bit21                 : 1;
8701 		uint32_t valid_bit22                 : 1;
8702 		uint32_t valid_bit23                 : 1;
8703 		uint32_t valid_bit24                 : 1;
8704 		uint32_t valid_bit25                 : 1;
8705 		uint32_t valid_bit26                 : 1;
8706 		uint32_t valid_bit27                 : 1;
8707 		uint32_t valid_bit28                 : 1;
8708 		uint32_t valid_bit29                 : 1;
8709 		uint32_t valid_bit30                 : 1;
8710 		uint32_t valid_bit31                 : 1;
8711 	} s;
8712 	/* struct ody_gicrx_icerrr1e_s cn; */
8713 };
8714 typedef union ody_gicrx_icerrr1e ody_gicrx_icerrr1e_t;
8715 
8716 static inline uint64_t ODY_GICRX_ICERRR1E(uint64_t a) __attribute__ ((pure, always_inline));
8717 static inline uint64_t ODY_GICRX_ICERRR1E(uint64_t a)
8718 {
8719 	if (a <= 81)
8720 		return 0x80100009c104ll + 0x40000ll * ((a) & 0x7f);
8721 	__ody_csr_fatal("GICRX_ICERRR1E", 1, a, 0, 0, 0, 0, 0);
8722 }
8723 
8724 #define typedef_ODY_GICRX_ICERRR1E(a) ody_gicrx_icerrr1e_t
8725 #define bustype_ODY_GICRX_ICERRR1E(a) CSR_TYPE_NCB32b
8726 #define basename_ODY_GICRX_ICERRR1E(a) "GICRX_ICERRR1E"
8727 #define device_bar_ODY_GICRX_ICERRR1E(a) 0x0 /* PF_BAR0 */
8728 #define busnum_ODY_GICRX_ICERRR1E(a) (a)
8729 #define arguments_ODY_GICRX_ICERRR1E(a) (a), -1, -1, -1
8730 
8731 /**
8732  * Register (NCB32b) gicr#_icfgr0
8733  *
8734  * GICR Icfgr0 Register
8735  * The GICR0_ICFGR0 characteristics are:
8736  *
8737  * * Purpose
8738  * Reports that all SGIs are edge triggered.
8739  *
8740  * * Usage constraints
8741  * When GICD_CTLR.DS==0, a register bit that corresponds to a Group 0 or Secure Group 1
8742  * interrupt is RAZ/WI to Non-secure accesses.
8743  */
8744 union ody_gicrx_icfgr0 {
8745 	uint32_t u;
8746 	struct ody_gicrx_icfgr0_s {
8747 		uint32_t int_config0                 : 2;
8748 		uint32_t int_config1                 : 2;
8749 		uint32_t int_config2                 : 2;
8750 		uint32_t int_config3                 : 2;
8751 		uint32_t int_config4                 : 2;
8752 		uint32_t int_config5                 : 2;
8753 		uint32_t int_config6                 : 2;
8754 		uint32_t int_config7                 : 2;
8755 		uint32_t int_config8                 : 2;
8756 		uint32_t int_config9                 : 2;
8757 		uint32_t int_config10                : 2;
8758 		uint32_t int_config11                : 2;
8759 		uint32_t int_config12                : 2;
8760 		uint32_t int_config13                : 2;
8761 		uint32_t int_config14                : 2;
8762 		uint32_t int_config15                : 2;
8763 	} s;
8764 	/* struct ody_gicrx_icfgr0_s cn; */
8765 };
8766 typedef union ody_gicrx_icfgr0 ody_gicrx_icfgr0_t;
8767 
8768 static inline uint64_t ODY_GICRX_ICFGR0(uint64_t a) __attribute__ ((pure, always_inline));
8769 static inline uint64_t ODY_GICRX_ICFGR0(uint64_t a)
8770 {
8771 	if (a <= 81)
8772 		return 0x801000090c00ll + 0x40000ll * ((a) & 0x7f);
8773 	__ody_csr_fatal("GICRX_ICFGR0", 1, a, 0, 0, 0, 0, 0);
8774 }
8775 
8776 #define typedef_ODY_GICRX_ICFGR0(a) ody_gicrx_icfgr0_t
8777 #define bustype_ODY_GICRX_ICFGR0(a) CSR_TYPE_NCB32b
8778 #define basename_ODY_GICRX_ICFGR0(a) "GICRX_ICFGR0"
8779 #define device_bar_ODY_GICRX_ICFGR0(a) 0x0 /* PF_BAR0 */
8780 #define busnum_ODY_GICRX_ICFGR0(a) (a)
8781 #define arguments_ODY_GICRX_ICFGR0(a) (a), -1, -1, -1
8782 
8783 /**
8784  * Register (NCB32b) gicr#_icfgr1
8785  *
8786  * GICR Icfgr1 Register
8787  * The GICR0_ICFGR0 characteristics are:
8788  *
8789  * * Purpose
8790  * Determines whether the corresponding PPI is edge-triggered or level-sensitive
8791  *
8792  * * Usage constraints
8793  * When GICD(A)_CTLR.DS==0, a register bit that corresponds to a Group 0 or Secure
8794  * Group 1 interrupt is RAZ/WI to Non-secure accesses.
8795  */
8796 union ody_gicrx_icfgr1 {
8797 	uint32_t u;
8798 	struct ody_gicrx_icfgr1_s {
8799 		uint32_t int_config0                 : 2;
8800 		uint32_t int_config1                 : 2;
8801 		uint32_t int_config2                 : 2;
8802 		uint32_t int_config3                 : 2;
8803 		uint32_t int_config4                 : 2;
8804 		uint32_t int_config5                 : 2;
8805 		uint32_t int_config6                 : 2;
8806 		uint32_t int_config7                 : 2;
8807 		uint32_t int_config8                 : 2;
8808 		uint32_t int_config9                 : 2;
8809 		uint32_t int_config10                : 2;
8810 		uint32_t int_config11                : 2;
8811 		uint32_t int_config12                : 2;
8812 		uint32_t int_config13                : 2;
8813 		uint32_t int_config14                : 2;
8814 		uint32_t int_config15                : 2;
8815 	} s;
8816 	/* struct ody_gicrx_icfgr1_s cn; */
8817 };
8818 typedef union ody_gicrx_icfgr1 ody_gicrx_icfgr1_t;
8819 
8820 static inline uint64_t ODY_GICRX_ICFGR1(uint64_t a) __attribute__ ((pure, always_inline));
8821 static inline uint64_t ODY_GICRX_ICFGR1(uint64_t a)
8822 {
8823 	if (a <= 81)
8824 		return 0x801000090c04ll + 0x40000ll * ((a) & 0x7f);
8825 	__ody_csr_fatal("GICRX_ICFGR1", 1, a, 0, 0, 0, 0, 0);
8826 }
8827 
8828 #define typedef_ODY_GICRX_ICFGR1(a) ody_gicrx_icfgr1_t
8829 #define bustype_ODY_GICRX_ICFGR1(a) CSR_TYPE_NCB32b
8830 #define basename_ODY_GICRX_ICFGR1(a) "GICRX_ICFGR1"
8831 #define device_bar_ODY_GICRX_ICFGR1(a) 0x0 /* PF_BAR0 */
8832 #define busnum_ODY_GICRX_ICFGR1(a) (a)
8833 #define arguments_ODY_GICRX_ICFGR1(a) (a), -1, -1, -1
8834 
8835 /**
8836  * Register (NCB32b) gicr#_icfgr2e
8837  *
8838  * GICR Icfgr2e Register
8839  * The GICR0_ICFGR2E characteristics are:
8840  *
8841  * * Purpose
8842  * Determines whether the corresponding extended range PPI (1056-1071) is edge-
8843  * triggered or level-sensitive
8844  *
8845  * * Usage constraints
8846  * When GICD_CTLR.DS==0, a register bit that corresponds to a Group 0 or Secure Group 1
8847  * interrupt is RAZ/WI to Non-secure accesses.
8848  */
8849 union ody_gicrx_icfgr2e {
8850 	uint32_t u;
8851 	struct ody_gicrx_icfgr2e_s {
8852 		uint32_t int_config0                 : 2;
8853 		uint32_t int_config1                 : 2;
8854 		uint32_t int_config2                 : 2;
8855 		uint32_t int_config3                 : 2;
8856 		uint32_t int_config4                 : 2;
8857 		uint32_t int_config5                 : 2;
8858 		uint32_t int_config6                 : 2;
8859 		uint32_t int_config7                 : 2;
8860 		uint32_t int_config8                 : 2;
8861 		uint32_t int_config9                 : 2;
8862 		uint32_t int_config10                : 2;
8863 		uint32_t int_config11                : 2;
8864 		uint32_t int_config12                : 2;
8865 		uint32_t int_config13                : 2;
8866 		uint32_t int_config14                : 2;
8867 		uint32_t int_config15                : 2;
8868 	} s;
8869 	/* struct ody_gicrx_icfgr2e_s cn; */
8870 };
8871 typedef union ody_gicrx_icfgr2e ody_gicrx_icfgr2e_t;
8872 
8873 static inline uint64_t ODY_GICRX_ICFGR2E(uint64_t a) __attribute__ ((pure, always_inline));
8874 static inline uint64_t ODY_GICRX_ICFGR2E(uint64_t a)
8875 {
8876 	if (a <= 81)
8877 		return 0x801000090c08ll + 0x40000ll * ((a) & 0x7f);
8878 	__ody_csr_fatal("GICRX_ICFGR2E", 1, a, 0, 0, 0, 0, 0);
8879 }
8880 
8881 #define typedef_ODY_GICRX_ICFGR2E(a) ody_gicrx_icfgr2e_t
8882 #define bustype_ODY_GICRX_ICFGR2E(a) CSR_TYPE_NCB32b
8883 #define basename_ODY_GICRX_ICFGR2E(a) "GICRX_ICFGR2E"
8884 #define device_bar_ODY_GICRX_ICFGR2E(a) 0x0 /* PF_BAR0 */
8885 #define busnum_ODY_GICRX_ICFGR2E(a) (a)
8886 #define arguments_ODY_GICRX_ICFGR2E(a) (a), -1, -1, -1
8887 
8888 /**
8889  * Register (NCB32b) gicr#_icfgr3e
8890  *
8891  * GICR Icfgr3e Register
8892  * The GICR0_ICFGR3E characteristics are:
8893  *
8894  * * Purpose
8895  * Determines whether the corresponding extended range PPI (1072-1087) is edge-
8896  * triggered or level-sensitive
8897  *
8898  * * Usage constraints
8899  * When GICD_CTLR.DS==0, a register bit that corresponds to a Group 0 or Secure Group 1
8900  * interrupt is RAZ/WI to Non-secure accesses.
8901  */
8902 union ody_gicrx_icfgr3e {
8903 	uint32_t u;
8904 	struct ody_gicrx_icfgr3e_s {
8905 		uint32_t int_config0                 : 2;
8906 		uint32_t int_config1                 : 2;
8907 		uint32_t int_config2                 : 2;
8908 		uint32_t int_config3                 : 2;
8909 		uint32_t int_config4                 : 2;
8910 		uint32_t int_config5                 : 2;
8911 		uint32_t int_config6                 : 2;
8912 		uint32_t int_config7                 : 2;
8913 		uint32_t int_config8                 : 2;
8914 		uint32_t int_config9                 : 2;
8915 		uint32_t int_config10                : 2;
8916 		uint32_t int_config11                : 2;
8917 		uint32_t int_config12                : 2;
8918 		uint32_t int_config13                : 2;
8919 		uint32_t int_config14                : 2;
8920 		uint32_t int_config15                : 2;
8921 	} s;
8922 	/* struct ody_gicrx_icfgr3e_s cn; */
8923 };
8924 typedef union ody_gicrx_icfgr3e ody_gicrx_icfgr3e_t;
8925 
8926 static inline uint64_t ODY_GICRX_ICFGR3E(uint64_t a) __attribute__ ((pure, always_inline));
8927 static inline uint64_t ODY_GICRX_ICFGR3E(uint64_t a)
8928 {
8929 	if (a <= 81)
8930 		return 0x801000090c0cll + 0x40000ll * ((a) & 0x7f);
8931 	__ody_csr_fatal("GICRX_ICFGR3E", 1, a, 0, 0, 0, 0, 0);
8932 }
8933 
8934 #define typedef_ODY_GICRX_ICFGR3E(a) ody_gicrx_icfgr3e_t
8935 #define bustype_ODY_GICRX_ICFGR3E(a) CSR_TYPE_NCB32b
8936 #define basename_ODY_GICRX_ICFGR3E(a) "GICRX_ICFGR3E"
8937 #define device_bar_ODY_GICRX_ICFGR3E(a) 0x0 /* PF_BAR0 */
8938 #define busnum_ODY_GICRX_ICFGR3E(a) (a)
8939 #define arguments_ODY_GICRX_ICFGR3E(a) (a), -1, -1, -1
8940 
8941 /**
8942  * Register (NCB32b) gicr#_icpendr0
8943  *
8944  * GICR Icpendr0 Register
8945  * The GICR0_ICPENDR0 characteristics are:
8946  *
8947  * * Purpose
8948  * Removes the pending state from the corresponding SGI (IDs 0-15) or PPI (IDs 16-31).
8949  *
8950  * * Usage constraints
8951  * If GICD(A)_CTLR.DS==0, unless the GICR0_NSACR register permits Non-secure software
8952  * to control Group 0 and Secure Group 1 interrupts, any bits that correspond to Group
8953  * 0 or Secure Group 1 interrupts are accessible only by Secure accesses and are RAZ/WI
8954  * to Non-secure accesses.
8955  */
8956 union ody_gicrx_icpendr0 {
8957 	uint32_t u;
8958 	struct ody_gicrx_icpendr0_s {
8959 		uint32_t clear_pending_bit0          : 1;
8960 		uint32_t clear_pending_bit1          : 1;
8961 		uint32_t clear_pending_bit2          : 1;
8962 		uint32_t clear_pending_bit3          : 1;
8963 		uint32_t clear_pending_bit4          : 1;
8964 		uint32_t clear_pending_bit5          : 1;
8965 		uint32_t clear_pending_bit6          : 1;
8966 		uint32_t clear_pending_bit7          : 1;
8967 		uint32_t clear_pending_bit8          : 1;
8968 		uint32_t clear_pending_bit9          : 1;
8969 		uint32_t clear_pending_bit10         : 1;
8970 		uint32_t clear_pending_bit11         : 1;
8971 		uint32_t clear_pending_bit12         : 1;
8972 		uint32_t clear_pending_bit13         : 1;
8973 		uint32_t clear_pending_bit14         : 1;
8974 		uint32_t clear_pending_bit15         : 1;
8975 		uint32_t clear_pending_bit16         : 1;
8976 		uint32_t clear_pending_bit17         : 1;
8977 		uint32_t clear_pending_bit18         : 1;
8978 		uint32_t clear_pending_bit19         : 1;
8979 		uint32_t clear_pending_bit20         : 1;
8980 		uint32_t clear_pending_bit21         : 1;
8981 		uint32_t clear_pending_bit22         : 1;
8982 		uint32_t clear_pending_bit23         : 1;
8983 		uint32_t clear_pending_bit24         : 1;
8984 		uint32_t clear_pending_bit25         : 1;
8985 		uint32_t clear_pending_bit26         : 1;
8986 		uint32_t clear_pending_bit27         : 1;
8987 		uint32_t clear_pending_bit28         : 1;
8988 		uint32_t clear_pending_bit29         : 1;
8989 		uint32_t clear_pending_bit30         : 1;
8990 		uint32_t clear_pending_bit31         : 1;
8991 	} s;
8992 	/* struct ody_gicrx_icpendr0_s cn; */
8993 };
8994 typedef union ody_gicrx_icpendr0 ody_gicrx_icpendr0_t;
8995 
8996 static inline uint64_t ODY_GICRX_ICPENDR0(uint64_t a) __attribute__ ((pure, always_inline));
8997 static inline uint64_t ODY_GICRX_ICPENDR0(uint64_t a)
8998 {
8999 	if (a <= 81)
9000 		return 0x801000090280ll + 0x40000ll * ((a) & 0x7f);
9001 	__ody_csr_fatal("GICRX_ICPENDR0", 1, a, 0, 0, 0, 0, 0);
9002 }
9003 
9004 #define typedef_ODY_GICRX_ICPENDR0(a) ody_gicrx_icpendr0_t
9005 #define bustype_ODY_GICRX_ICPENDR0(a) CSR_TYPE_NCB32b
9006 #define basename_ODY_GICRX_ICPENDR0(a) "GICRX_ICPENDR0"
9007 #define device_bar_ODY_GICRX_ICPENDR0(a) 0x0 /* PF_BAR0 */
9008 #define busnum_ODY_GICRX_ICPENDR0(a) (a)
9009 #define arguments_ODY_GICRX_ICPENDR0(a) (a), -1, -1, -1
9010 
9011 /**
9012  * Register (NCB32b) gicr#_icpendr1e
9013  *
9014  * GICR Icpendr1e Register
9015  * The GICR0_ICPENDR1E characteristics are:
9016  *
9017  * * Purpose
9018  * Removes the pending state from the corresponding  extended range PPI.
9019  *
9020  * * Usage constraints
9021  * If GICD(A)_CTLR.DS==0, unless the GICR0_NSACR register permits Non-secure software
9022  * to control Group 0 and Secure Group 1 interrupts, any bits that correspond to Group
9023  * 0 or Secure Group 1 interrupts are accessible only by Secure accesses and are RAZ/WI
9024  * to Non-secure accesses.
9025  */
9026 union ody_gicrx_icpendr1e {
9027 	uint32_t u;
9028 	struct ody_gicrx_icpendr1e_s {
9029 		uint32_t clear_pending_bit0          : 1;
9030 		uint32_t clear_pending_bit1          : 1;
9031 		uint32_t clear_pending_bit2          : 1;
9032 		uint32_t clear_pending_bit3          : 1;
9033 		uint32_t clear_pending_bit4          : 1;
9034 		uint32_t clear_pending_bit5          : 1;
9035 		uint32_t clear_pending_bit6          : 1;
9036 		uint32_t clear_pending_bit7          : 1;
9037 		uint32_t clear_pending_bit8          : 1;
9038 		uint32_t clear_pending_bit9          : 1;
9039 		uint32_t clear_pending_bit10         : 1;
9040 		uint32_t clear_pending_bit11         : 1;
9041 		uint32_t clear_pending_bit12         : 1;
9042 		uint32_t clear_pending_bit13         : 1;
9043 		uint32_t clear_pending_bit14         : 1;
9044 		uint32_t clear_pending_bit15         : 1;
9045 		uint32_t clear_pending_bit16         : 1;
9046 		uint32_t clear_pending_bit17         : 1;
9047 		uint32_t clear_pending_bit18         : 1;
9048 		uint32_t clear_pending_bit19         : 1;
9049 		uint32_t clear_pending_bit20         : 1;
9050 		uint32_t clear_pending_bit21         : 1;
9051 		uint32_t clear_pending_bit22         : 1;
9052 		uint32_t clear_pending_bit23         : 1;
9053 		uint32_t clear_pending_bit24         : 1;
9054 		uint32_t clear_pending_bit25         : 1;
9055 		uint32_t clear_pending_bit26         : 1;
9056 		uint32_t clear_pending_bit27         : 1;
9057 		uint32_t clear_pending_bit28         : 1;
9058 		uint32_t clear_pending_bit29         : 1;
9059 		uint32_t clear_pending_bit30         : 1;
9060 		uint32_t clear_pending_bit31         : 1;
9061 	} s;
9062 	/* struct ody_gicrx_icpendr1e_s cn; */
9063 };
9064 typedef union ody_gicrx_icpendr1e ody_gicrx_icpendr1e_t;
9065 
9066 static inline uint64_t ODY_GICRX_ICPENDR1E(uint64_t a) __attribute__ ((pure, always_inline));
9067 static inline uint64_t ODY_GICRX_ICPENDR1E(uint64_t a)
9068 {
9069 	if (a <= 81)
9070 		return 0x801000090284ll + 0x40000ll * ((a) & 0x7f);
9071 	__ody_csr_fatal("GICRX_ICPENDR1E", 1, a, 0, 0, 0, 0, 0);
9072 }
9073 
9074 #define typedef_ODY_GICRX_ICPENDR1E(a) ody_gicrx_icpendr1e_t
9075 #define bustype_ODY_GICRX_ICPENDR1E(a) CSR_TYPE_NCB32b
9076 #define basename_ODY_GICRX_ICPENDR1E(a) "GICRX_ICPENDR1E"
9077 #define device_bar_ODY_GICRX_ICPENDR1E(a) 0x0 /* PF_BAR0 */
9078 #define busnum_ODY_GICRX_ICPENDR1E(a) (a)
9079 #define arguments_ODY_GICRX_ICPENDR1E(a) (a), -1, -1, -1
9080 
9081 /**
9082  * Register (NCB32b) gicr#_ierrvr
9083  *
9084  * GICR Ierrvr Register
9085  * The GICR0_IERRVR characteristics are:
9086  *
9087  * This register is also referred to as GICR0_ICDERRR.
9088  *
9089  * * Purpose
9090  *
9091  * This register indicates that SGI programming has been corrupted in the SGI RAM in the distributor.
9092  * Software can use this register to acknowledge the error and enable reprogramming of
9093  * the affected SGIs
9094  *
9095  * * Usage constraints
9096  * Only accessible by Secure accesses or when GICD(A)_DS.DS === 1
9097  */
9098 union ody_gicrx_ierrvr {
9099 	uint32_t u;
9100 	struct ody_gicrx_ierrvr_s {
9101 		uint32_t valid_bit0                  : 1;
9102 		uint32_t valid_bit1                  : 1;
9103 		uint32_t valid_bit2                  : 1;
9104 		uint32_t valid_bit3                  : 1;
9105 		uint32_t valid_bit4                  : 1;
9106 		uint32_t valid_bit5                  : 1;
9107 		uint32_t valid_bit6                  : 1;
9108 		uint32_t valid_bit7                  : 1;
9109 		uint32_t valid_bit8                  : 1;
9110 		uint32_t valid_bit9                  : 1;
9111 		uint32_t valid_bit10                 : 1;
9112 		uint32_t valid_bit11                 : 1;
9113 		uint32_t valid_bit12                 : 1;
9114 		uint32_t valid_bit13                 : 1;
9115 		uint32_t valid_bit14                 : 1;
9116 		uint32_t valid_bit15                 : 1;
9117 		uint32_t valid_bit16                 : 1;
9118 		uint32_t valid_bit17                 : 1;
9119 		uint32_t valid_bit18                 : 1;
9120 		uint32_t valid_bit19                 : 1;
9121 		uint32_t valid_bit20                 : 1;
9122 		uint32_t valid_bit21                 : 1;
9123 		uint32_t valid_bit22                 : 1;
9124 		uint32_t valid_bit23                 : 1;
9125 		uint32_t valid_bit24                 : 1;
9126 		uint32_t valid_bit25                 : 1;
9127 		uint32_t valid_bit26                 : 1;
9128 		uint32_t valid_bit27                 : 1;
9129 		uint32_t valid_bit28                 : 1;
9130 		uint32_t valid_bit29                 : 1;
9131 		uint32_t valid_bit30                 : 1;
9132 		uint32_t valid_bit31                 : 1;
9133 	} s;
9134 	/* struct ody_gicrx_ierrvr_s cn; */
9135 };
9136 typedef union ody_gicrx_ierrvr ody_gicrx_ierrvr_t;
9137 
9138 static inline uint64_t ODY_GICRX_IERRVR(uint64_t a) __attribute__ ((pure, always_inline));
9139 static inline uint64_t ODY_GICRX_IERRVR(uint64_t a)
9140 {
9141 	if (a <= 81)
9142 		return 0x80100009c008ll + 0x40000ll * ((a) & 0x7f);
9143 	__ody_csr_fatal("GICRX_IERRVR", 1, a, 0, 0, 0, 0, 0);
9144 }
9145 
9146 #define typedef_ODY_GICRX_IERRVR(a) ody_gicrx_ierrvr_t
9147 #define bustype_ODY_GICRX_IERRVR(a) CSR_TYPE_NCB32b
9148 #define basename_ODY_GICRX_IERRVR(a) "GICRX_IERRVR"
9149 #define device_bar_ODY_GICRX_IERRVR(a) 0x0 /* PF_BAR0 */
9150 #define busnum_ODY_GICRX_IERRVR(a) (a)
9151 #define arguments_ODY_GICRX_IERRVR(a) (a), -1, -1, -1
9152 
9153 /**
9154  * Register (NCB32b) gicr#_igroupr0
9155  *
9156  * GICR Igroupr0 Register
9157  * The GICR0_IGROUPR0 characteristics are:
9158  *
9159  * * Purpose
9160  * Controls whether the corresponding SGI (IDs 0-15) or PPI (16-31) is in Group 0 or Group 1.
9161  *
9162  * * Usage constraints
9163  * When GICD_CTLR.DS == 0, the register is RAZ/WI to Non-secure accesses.
9164  */
9165 union ody_gicrx_igroupr0 {
9166 	uint32_t u;
9167 	struct ody_gicrx_igroupr0_s {
9168 		uint32_t group_status_bit0           : 1;
9169 		uint32_t group_status_bit1           : 1;
9170 		uint32_t group_status_bit2           : 1;
9171 		uint32_t group_status_bit3           : 1;
9172 		uint32_t group_status_bit4           : 1;
9173 		uint32_t group_status_bit5           : 1;
9174 		uint32_t group_status_bit6           : 1;
9175 		uint32_t group_status_bit7           : 1;
9176 		uint32_t group_status_bit8           : 1;
9177 		uint32_t group_status_bit9           : 1;
9178 		uint32_t group_status_bit10          : 1;
9179 		uint32_t group_status_bit11          : 1;
9180 		uint32_t group_status_bit12          : 1;
9181 		uint32_t group_status_bit13          : 1;
9182 		uint32_t group_status_bit14          : 1;
9183 		uint32_t group_status_bit15          : 1;
9184 		uint32_t group_status_bit16          : 1;
9185 		uint32_t group_status_bit17          : 1;
9186 		uint32_t group_status_bit18          : 1;
9187 		uint32_t group_status_bit19          : 1;
9188 		uint32_t group_status_bit20          : 1;
9189 		uint32_t group_status_bit21          : 1;
9190 		uint32_t group_status_bit22          : 1;
9191 		uint32_t group_status_bit23          : 1;
9192 		uint32_t group_status_bit24          : 1;
9193 		uint32_t group_status_bit25          : 1;
9194 		uint32_t group_status_bit26          : 1;
9195 		uint32_t group_status_bit27          : 1;
9196 		uint32_t group_status_bit28          : 1;
9197 		uint32_t group_status_bit29          : 1;
9198 		uint32_t group_status_bit30          : 1;
9199 		uint32_t group_status_bit31          : 1;
9200 	} s;
9201 	/* struct ody_gicrx_igroupr0_s cn; */
9202 };
9203 typedef union ody_gicrx_igroupr0 ody_gicrx_igroupr0_t;
9204 
9205 static inline uint64_t ODY_GICRX_IGROUPR0(uint64_t a) __attribute__ ((pure, always_inline));
9206 static inline uint64_t ODY_GICRX_IGROUPR0(uint64_t a)
9207 {
9208 	if (a <= 81)
9209 		return 0x801000090080ll + 0x40000ll * ((a) & 0x7f);
9210 	__ody_csr_fatal("GICRX_IGROUPR0", 1, a, 0, 0, 0, 0, 0);
9211 }
9212 
9213 #define typedef_ODY_GICRX_IGROUPR0(a) ody_gicrx_igroupr0_t
9214 #define bustype_ODY_GICRX_IGROUPR0(a) CSR_TYPE_NCB32b
9215 #define basename_ODY_GICRX_IGROUPR0(a) "GICRX_IGROUPR0"
9216 #define device_bar_ODY_GICRX_IGROUPR0(a) 0x0 /* PF_BAR0 */
9217 #define busnum_ODY_GICRX_IGROUPR0(a) (a)
9218 #define arguments_ODY_GICRX_IGROUPR0(a) (a), -1, -1, -1
9219 
9220 /**
9221  * Register (NCB32b) gicr#_igroupr1e
9222  *
9223  * GICR Igroupr1e Register
9224  * The GICR0_IGROUPR1E characteristics are:
9225  *
9226  * * Purpose
9227  * Controls whether the corresponding extended range PPI is in Group 0 or Group 1.
9228  *
9229  * * Usage constraints
9230  * When GICD_CTLR.DS == 0, the register is RAZ/WI to Non-secure accesses.
9231  */
9232 union ody_gicrx_igroupr1e {
9233 	uint32_t u;
9234 	struct ody_gicrx_igroupr1e_s {
9235 		uint32_t group_status_bit0           : 1;
9236 		uint32_t group_status_bit1           : 1;
9237 		uint32_t group_status_bit2           : 1;
9238 		uint32_t group_status_bit3           : 1;
9239 		uint32_t group_status_bit4           : 1;
9240 		uint32_t group_status_bit5           : 1;
9241 		uint32_t group_status_bit6           : 1;
9242 		uint32_t group_status_bit7           : 1;
9243 		uint32_t group_status_bit8           : 1;
9244 		uint32_t group_status_bit9           : 1;
9245 		uint32_t group_status_bit10          : 1;
9246 		uint32_t group_status_bit11          : 1;
9247 		uint32_t group_status_bit12          : 1;
9248 		uint32_t group_status_bit13          : 1;
9249 		uint32_t group_status_bit14          : 1;
9250 		uint32_t group_status_bit15          : 1;
9251 		uint32_t group_status_bit16          : 1;
9252 		uint32_t group_status_bit17          : 1;
9253 		uint32_t group_status_bit18          : 1;
9254 		uint32_t group_status_bit19          : 1;
9255 		uint32_t group_status_bit20          : 1;
9256 		uint32_t group_status_bit21          : 1;
9257 		uint32_t group_status_bit22          : 1;
9258 		uint32_t group_status_bit23          : 1;
9259 		uint32_t group_status_bit24          : 1;
9260 		uint32_t group_status_bit25          : 1;
9261 		uint32_t group_status_bit26          : 1;
9262 		uint32_t group_status_bit27          : 1;
9263 		uint32_t group_status_bit28          : 1;
9264 		uint32_t group_status_bit29          : 1;
9265 		uint32_t group_status_bit30          : 1;
9266 		uint32_t group_status_bit31          : 1;
9267 	} s;
9268 	/* struct ody_gicrx_igroupr1e_s cn; */
9269 };
9270 typedef union ody_gicrx_igroupr1e ody_gicrx_igroupr1e_t;
9271 
9272 static inline uint64_t ODY_GICRX_IGROUPR1E(uint64_t a) __attribute__ ((pure, always_inline));
9273 static inline uint64_t ODY_GICRX_IGROUPR1E(uint64_t a)
9274 {
9275 	if (a <= 81)
9276 		return 0x801000090084ll + 0x40000ll * ((a) & 0x7f);
9277 	__ody_csr_fatal("GICRX_IGROUPR1E", 1, a, 0, 0, 0, 0, 0);
9278 }
9279 
9280 #define typedef_ODY_GICRX_IGROUPR1E(a) ody_gicrx_igroupr1e_t
9281 #define bustype_ODY_GICRX_IGROUPR1E(a) CSR_TYPE_NCB32b
9282 #define basename_ODY_GICRX_IGROUPR1E(a) "GICRX_IGROUPR1E"
9283 #define device_bar_ODY_GICRX_IGROUPR1E(a) 0x0 /* PF_BAR0 */
9284 #define busnum_ODY_GICRX_IGROUPR1E(a) (a)
9285 #define arguments_ODY_GICRX_IGROUPR1E(a) (a), -1, -1, -1
9286 
9287 /**
9288  * Register (NCB32b) gicr#_igrpmodr0
9289  *
9290  * GICR Igrpmodr0 Register
9291  * The GICR0_IGRPMODR0 characteristics are:
9292  *
9293  * * Purpose
9294  * When GICD_CTLR.DS==0, this register together with the GICR0_IGROUPR0 register, controls
9295  * whether the corresponding interrupt is in:
9296  *
9297  * * Secure Group 0.
9298  * * Non-secure Group 1.
9299  * * Secure Group 1.
9300  *
9301  * * Usage constraints
9302  *
9303  * When GICD(A)_CTLR.DS==0, the register is RAZ/WI to Non-secure accesses.
9304  * When GICD(A)_CTLR.DS==1, the GICR0_IGRPMODR registers are RAZ/WI.
9305  */
9306 union ody_gicrx_igrpmodr0 {
9307 	uint32_t u;
9308 	struct ody_gicrx_igrpmodr0_s {
9309 		uint32_t group_modifier_bit0         : 1;
9310 		uint32_t group_modifier_bit1         : 1;
9311 		uint32_t group_modifier_bit2         : 1;
9312 		uint32_t group_modifier_bit3         : 1;
9313 		uint32_t group_modifier_bit4         : 1;
9314 		uint32_t group_modifier_bit5         : 1;
9315 		uint32_t group_modifier_bit6         : 1;
9316 		uint32_t group_modifier_bit7         : 1;
9317 		uint32_t group_modifier_bit8         : 1;
9318 		uint32_t group_modifier_bit9         : 1;
9319 		uint32_t group_modifier_bit10        : 1;
9320 		uint32_t group_modifier_bit11        : 1;
9321 		uint32_t group_modifier_bit12        : 1;
9322 		uint32_t group_modifier_bit13        : 1;
9323 		uint32_t group_modifier_bit14        : 1;
9324 		uint32_t group_modifier_bit15        : 1;
9325 		uint32_t group_modifier_bit16        : 1;
9326 		uint32_t group_modifier_bit17        : 1;
9327 		uint32_t group_modifier_bit18        : 1;
9328 		uint32_t group_modifier_bit19        : 1;
9329 		uint32_t group_modifier_bit20        : 1;
9330 		uint32_t group_modifier_bit21        : 1;
9331 		uint32_t group_modifier_bit22        : 1;
9332 		uint32_t group_modifier_bit23        : 1;
9333 		uint32_t group_modifier_bit24        : 1;
9334 		uint32_t group_modifier_bit25        : 1;
9335 		uint32_t group_modifier_bit26        : 1;
9336 		uint32_t group_modifier_bit27        : 1;
9337 		uint32_t group_modifier_bit28        : 1;
9338 		uint32_t group_modifier_bit29        : 1;
9339 		uint32_t group_modifier_bit30        : 1;
9340 		uint32_t group_modifier_bit31        : 1;
9341 	} s;
9342 	/* struct ody_gicrx_igrpmodr0_s cn; */
9343 };
9344 typedef union ody_gicrx_igrpmodr0 ody_gicrx_igrpmodr0_t;
9345 
9346 static inline uint64_t ODY_GICRX_IGRPMODR0(uint64_t a) __attribute__ ((pure, always_inline));
9347 static inline uint64_t ODY_GICRX_IGRPMODR0(uint64_t a)
9348 {
9349 	if (a <= 81)
9350 		return 0x801000090d00ll + 0x40000ll * ((a) & 0x7f);
9351 	__ody_csr_fatal("GICRX_IGRPMODR0", 1, a, 0, 0, 0, 0, 0);
9352 }
9353 
9354 #define typedef_ODY_GICRX_IGRPMODR0(a) ody_gicrx_igrpmodr0_t
9355 #define bustype_ODY_GICRX_IGRPMODR0(a) CSR_TYPE_NCB32b
9356 #define basename_ODY_GICRX_IGRPMODR0(a) "GICRX_IGRPMODR0"
9357 #define device_bar_ODY_GICRX_IGRPMODR0(a) 0x0 /* PF_BAR0 */
9358 #define busnum_ODY_GICRX_IGRPMODR0(a) (a)
9359 #define arguments_ODY_GICRX_IGRPMODR0(a) (a), -1, -1, -1
9360 
9361 /**
9362  * Register (NCB32b) gicr#_igrpmodr1e
9363  *
9364  * GICR Igrpmodr1e Register
9365  * The GICR0_IGRPMODR1E characteristics are:
9366  *
9367  * * Purpose
9368  * When GICD_CTLR.DS==0, this register together with the GICR0_IGROUPR1E register, controls
9369  * whether the corresponding interrupt is in:
9370  *
9371  * * Secure Group 0.
9372  * * Non-secure Group 1.
9373  * * When System register access is enabled, Secure Group 1.
9374  *
9375  * * Usage constraints
9376  *
9377  * When GICD(A)_CTLR.DS==0, the register is RAZ/WI to Non-secure accesses.
9378  * When GICD(A)_CTLR.DS==1, the GICR0_IGRPMODR registers are RAZ/WI.
9379  */
9380 union ody_gicrx_igrpmodr1e {
9381 	uint32_t u;
9382 	struct ody_gicrx_igrpmodr1e_s {
9383 		uint32_t group_modifier_bit0         : 1;
9384 		uint32_t group_modifier_bit1         : 1;
9385 		uint32_t group_modifier_bit2         : 1;
9386 		uint32_t group_modifier_bit3         : 1;
9387 		uint32_t group_modifier_bit4         : 1;
9388 		uint32_t group_modifier_bit5         : 1;
9389 		uint32_t group_modifier_bit6         : 1;
9390 		uint32_t group_modifier_bit7         : 1;
9391 		uint32_t group_modifier_bit8         : 1;
9392 		uint32_t group_modifier_bit9         : 1;
9393 		uint32_t group_modifier_bit10        : 1;
9394 		uint32_t group_modifier_bit11        : 1;
9395 		uint32_t group_modifier_bit12        : 1;
9396 		uint32_t group_modifier_bit13        : 1;
9397 		uint32_t group_modifier_bit14        : 1;
9398 		uint32_t group_modifier_bit15        : 1;
9399 		uint32_t group_modifier_bit16        : 1;
9400 		uint32_t group_modifier_bit17        : 1;
9401 		uint32_t group_modifier_bit18        : 1;
9402 		uint32_t group_modifier_bit19        : 1;
9403 		uint32_t group_modifier_bit20        : 1;
9404 		uint32_t group_modifier_bit21        : 1;
9405 		uint32_t group_modifier_bit22        : 1;
9406 		uint32_t group_modifier_bit23        : 1;
9407 		uint32_t group_modifier_bit24        : 1;
9408 		uint32_t group_modifier_bit25        : 1;
9409 		uint32_t group_modifier_bit26        : 1;
9410 		uint32_t group_modifier_bit27        : 1;
9411 		uint32_t group_modifier_bit28        : 1;
9412 		uint32_t group_modifier_bit29        : 1;
9413 		uint32_t group_modifier_bit30        : 1;
9414 		uint32_t group_modifier_bit31        : 1;
9415 	} s;
9416 	/* struct ody_gicrx_igrpmodr1e_s cn; */
9417 };
9418 typedef union ody_gicrx_igrpmodr1e ody_gicrx_igrpmodr1e_t;
9419 
9420 static inline uint64_t ODY_GICRX_IGRPMODR1E(uint64_t a) __attribute__ ((pure, always_inline));
9421 static inline uint64_t ODY_GICRX_IGRPMODR1E(uint64_t a)
9422 {
9423 	if (a <= 81)
9424 		return 0x801000090d04ll + 0x40000ll * ((a) & 0x7f);
9425 	__ody_csr_fatal("GICRX_IGRPMODR1E", 1, a, 0, 0, 0, 0, 0);
9426 }
9427 
9428 #define typedef_ODY_GICRX_IGRPMODR1E(a) ody_gicrx_igrpmodr1e_t
9429 #define bustype_ODY_GICRX_IGRPMODR1E(a) CSR_TYPE_NCB32b
9430 #define basename_ODY_GICRX_IGRPMODR1E(a) "GICRX_IGRPMODR1E"
9431 #define device_bar_ODY_GICRX_IGRPMODR1E(a) 0x0 /* PF_BAR0 */
9432 #define busnum_ODY_GICRX_IGRPMODR1E(a) (a)
9433 #define arguments_ODY_GICRX_IGRPMODR1E(a) (a), -1, -1, -1
9434 
9435 /**
9436  * Register (NCB32b) gicr#_iidr
9437  *
9438  * GICR Iidr Register
9439  * The GICR0_IIDR characteristics are:
9440  *
9441  * * Purpose
9442  * Provides information about the implementer and revision of the Redistributor.
9443  *
9444  * * Usage constraints
9445  * There are no usage constraints.
9446  */
9447 union ody_gicrx_iidr {
9448 	uint32_t u;
9449 	struct ody_gicrx_iidr_s {
9450 		uint32_t implementer                 : 12;
9451 		uint32_t revision                    : 4;
9452 		uint32_t variant                     : 4;
9453 		uint32_t reserved_20_23              : 4;
9454 		uint32_t productid                   : 8;
9455 	} s;
9456 	/* struct ody_gicrx_iidr_s cn; */
9457 };
9458 typedef union ody_gicrx_iidr ody_gicrx_iidr_t;
9459 
9460 static inline uint64_t ODY_GICRX_IIDR(uint64_t a) __attribute__ ((pure, always_inline));
9461 static inline uint64_t ODY_GICRX_IIDR(uint64_t a)
9462 {
9463 	if (a <= 81)
9464 		return 0x801000080004ll + 0x40000ll * ((a) & 0x7f);
9465 	__ody_csr_fatal("GICRX_IIDR", 1, a, 0, 0, 0, 0, 0);
9466 }
9467 
9468 #define typedef_ODY_GICRX_IIDR(a) ody_gicrx_iidr_t
9469 #define bustype_ODY_GICRX_IIDR(a) CSR_TYPE_NCB32b
9470 #define basename_ODY_GICRX_IIDR(a) "GICRX_IIDR"
9471 #define device_bar_ODY_GICRX_IIDR(a) 0x0 /* PF_BAR0 */
9472 #define busnum_ODY_GICRX_IIDR(a) (a)
9473 #define arguments_ODY_GICRX_IIDR(a) (a), -1, -1, -1
9474 
9475 /**
9476  * Register (NCB) gicr#_invallr
9477  *
9478  * GICR Invallr Register
9479  * The GICRR0_INVALLR characteristics are:
9480  *
9481  * * Purpose
9482  * Invalidates the cached configuration data of all Physical or Virtual LPIs on a PE or vPE
9483  *
9484  * * Usage constraints
9485  * When written with a 32-bit write to the lower half, the data is zero-extended to 64 bits.
9486  * 32-bit accesses to the upper half are not supported.
9487  *
9488  * A copy of this register is provided for each Redistributor.
9489  */
9490 union ody_gicrx_invallr {
9491 	uint64_t u;
9492 	struct ody_gicrx_invallr_s {
9493 		uint64_t reserved_0_31               : 32;
9494 		uint64_t vpeid                       : 16;
9495 		uint64_t reserved_48_62              : 15;
9496 		uint64_t v                           : 1;
9497 	} s;
9498 	/* struct ody_gicrx_invallr_s cn; */
9499 };
9500 typedef union ody_gicrx_invallr ody_gicrx_invallr_t;
9501 
9502 static inline uint64_t ODY_GICRX_INVALLR(uint64_t a) __attribute__ ((pure, always_inline));
9503 static inline uint64_t ODY_GICRX_INVALLR(uint64_t a)
9504 {
9505 	if (a <= 81)
9506 		return 0x8010000800b0ll + 0x40000ll * ((a) & 0x7f);
9507 	__ody_csr_fatal("GICRX_INVALLR", 1, a, 0, 0, 0, 0, 0);
9508 }
9509 
9510 #define typedef_ODY_GICRX_INVALLR(a) ody_gicrx_invallr_t
9511 #define bustype_ODY_GICRX_INVALLR(a) CSR_TYPE_NCB
9512 #define basename_ODY_GICRX_INVALLR(a) "GICRX_INVALLR"
9513 #define device_bar_ODY_GICRX_INVALLR(a) 0x0 /* PF_BAR0 */
9514 #define busnum_ODY_GICRX_INVALLR(a) (a)
9515 #define arguments_ODY_GICRX_INVALLR(a) (a), -1, -1, -1
9516 
9517 /**
9518  * Register (NCB) gicr#_invlpir
9519  *
9520  * GICR Invlpir Register
9521  * The GICR0_INVLPIR characteristics are:
9522  *
9523  * * Purpose
9524  * Invalidates the cached configuration data of a specified LPI
9525  *
9526  * * Usage constraints
9527  * When written with a 32-bit write to the lower half, the data is zero-extended to 64 bits.
9528  * 32-bit accesses to the upper half are not supported.
9529  *
9530  * A copy of this register is provided for each Redistributor.
9531  */
9532 union ody_gicrx_invlpir {
9533 	uint64_t u;
9534 	struct ody_gicrx_invlpir_s {
9535 		uint64_t intid                       : 32;
9536 		uint64_t vpeid                       : 16;
9537 		uint64_t reserved_48_62              : 15;
9538 		uint64_t v                           : 1;
9539 	} s;
9540 	/* struct ody_gicrx_invlpir_s cn; */
9541 };
9542 typedef union ody_gicrx_invlpir ody_gicrx_invlpir_t;
9543 
9544 static inline uint64_t ODY_GICRX_INVLPIR(uint64_t a) __attribute__ ((pure, always_inline));
9545 static inline uint64_t ODY_GICRX_INVLPIR(uint64_t a)
9546 {
9547 	if (a <= 81)
9548 		return 0x8010000800a0ll + 0x40000ll * ((a) & 0x7f);
9549 	__ody_csr_fatal("GICRX_INVLPIR", 1, a, 0, 0, 0, 0, 0);
9550 }
9551 
9552 #define typedef_ODY_GICRX_INVLPIR(a) ody_gicrx_invlpir_t
9553 #define bustype_ODY_GICRX_INVLPIR(a) CSR_TYPE_NCB
9554 #define basename_ODY_GICRX_INVLPIR(a) "GICRX_INVLPIR"
9555 #define device_bar_ODY_GICRX_INVLPIR(a) 0x0 /* PF_BAR0 */
9556 #define busnum_ODY_GICRX_INVLPIR(a) (a)
9557 #define arguments_ODY_GICRX_INVLPIR(a) (a), -1, -1, -1
9558 
9559 /**
9560  * Register (NCB32b) gicr#_ipriorityr10e
9561  *
9562  * GICR Ipriorityr10e Register
9563  * The GICR0_IPRIORITYR10E characteristics are:
9564  *
9565  * * Purpose
9566  * Holds the priority of the corresponding interrupt for extended range PPI IDs 1064-1067.
9567  *
9568  * * Usage constraints
9569  * When GICD(A)_CTLR.DS==0 a register bit that corresponds to a Group 0 or Secure Group
9570  * 1 interrupt is RAZ/WI to Non-secure accesses.
9571  *
9572  * These registers are byte-accessible.
9573  *
9574  * The GIC implements 5 bits of priority and in each field, unimplemented bits are RAZ/WI.
9575  */
9576 union ody_gicrx_ipriorityr10e {
9577 	uint32_t u;
9578 	struct ody_gicrx_ipriorityr10e_s {
9579 		uint32_t offset0                     : 8;
9580 		uint32_t offset1                     : 8;
9581 		uint32_t offset2                     : 8;
9582 		uint32_t offset3                     : 8;
9583 	} s;
9584 	/* struct ody_gicrx_ipriorityr10e_s cn; */
9585 };
9586 typedef union ody_gicrx_ipriorityr10e ody_gicrx_ipriorityr10e_t;
9587 
9588 static inline uint64_t ODY_GICRX_IPRIORITYR10E(uint64_t a) __attribute__ ((pure, always_inline));
9589 static inline uint64_t ODY_GICRX_IPRIORITYR10E(uint64_t a)
9590 {
9591 	if (a <= 81)
9592 		return 0x801000090428ll + 0x40000ll * ((a) & 0x7f);
9593 	__ody_csr_fatal("GICRX_IPRIORITYR10E", 1, a, 0, 0, 0, 0, 0);
9594 }
9595 
9596 #define typedef_ODY_GICRX_IPRIORITYR10E(a) ody_gicrx_ipriorityr10e_t
9597 #define bustype_ODY_GICRX_IPRIORITYR10E(a) CSR_TYPE_NCB32b
9598 #define basename_ODY_GICRX_IPRIORITYR10E(a) "GICRX_IPRIORITYR10E"
9599 #define device_bar_ODY_GICRX_IPRIORITYR10E(a) 0x0 /* PF_BAR0 */
9600 #define busnum_ODY_GICRX_IPRIORITYR10E(a) (a)
9601 #define arguments_ODY_GICRX_IPRIORITYR10E(a) (a), -1, -1, -1
9602 
9603 /**
9604  * Register (NCB32b) gicr#_ipriorityr11e
9605  *
9606  * GICR Ipriorityr11e Register
9607  * The GICR0_IPRIORITYR11E characteristics are:
9608  *
9609  * * Purpose
9610  * Holds the priority of the corresponding interrupt for extended range PPI IDs 1068-1071.
9611  *
9612  * * Usage constraints
9613  * When GICD(A)_CTLR.DS==0 a register bit that corresponds to a Group 0 or Secure Group
9614  * 1 interrupt is RAZ/WI to Non-secure accesses.
9615  *
9616  * These registers are byte-accessible.
9617  *
9618  * The GIC implements 5 bits of priority and in each field, unimplemented bits are RAZ/WI.
9619  */
9620 union ody_gicrx_ipriorityr11e {
9621 	uint32_t u;
9622 	struct ody_gicrx_ipriorityr11e_s {
9623 		uint32_t offset0                     : 8;
9624 		uint32_t offset1                     : 8;
9625 		uint32_t offset2                     : 8;
9626 		uint32_t offset3                     : 8;
9627 	} s;
9628 	/* struct ody_gicrx_ipriorityr11e_s cn; */
9629 };
9630 typedef union ody_gicrx_ipriorityr11e ody_gicrx_ipriorityr11e_t;
9631 
9632 static inline uint64_t ODY_GICRX_IPRIORITYR11E(uint64_t a) __attribute__ ((pure, always_inline));
9633 static inline uint64_t ODY_GICRX_IPRIORITYR11E(uint64_t a)
9634 {
9635 	if (a <= 81)
9636 		return 0x80100009042cll + 0x40000ll * ((a) & 0x7f);
9637 	__ody_csr_fatal("GICRX_IPRIORITYR11E", 1, a, 0, 0, 0, 0, 0);
9638 }
9639 
9640 #define typedef_ODY_GICRX_IPRIORITYR11E(a) ody_gicrx_ipriorityr11e_t
9641 #define bustype_ODY_GICRX_IPRIORITYR11E(a) CSR_TYPE_NCB32b
9642 #define basename_ODY_GICRX_IPRIORITYR11E(a) "GICRX_IPRIORITYR11E"
9643 #define device_bar_ODY_GICRX_IPRIORITYR11E(a) 0x0 /* PF_BAR0 */
9644 #define busnum_ODY_GICRX_IPRIORITYR11E(a) (a)
9645 #define arguments_ODY_GICRX_IPRIORITYR11E(a) (a), -1, -1, -1
9646 
9647 /**
9648  * Register (NCB32b) gicr#_ipriorityr12e
9649  *
9650  * GICR Ipriorityr12e Register
9651  * The GICR0_IPRIORITYR12E characteristics are:
9652  *
9653  * * Purpose
9654  *
9655  * Holds the priority of the corresponding interrupt for extended range PPI IDs 1072-1075.
9656  *
9657  * * Usage constraints
9658  * When GICD(A)_CTLR.DS==0 a register bit that corresponds to a Group 0 or Secure Group
9659  * 1 interrupt is RAZ/WI to Non-secure accesses.
9660  *
9661  * These registers are byte-accessible.
9662  *
9663  * The GIC implements 5 bits of priority and in each field, unimplemented bits are RAZ/WI.
9664  */
9665 union ody_gicrx_ipriorityr12e {
9666 	uint32_t u;
9667 	struct ody_gicrx_ipriorityr12e_s {
9668 		uint32_t offset0                     : 8;
9669 		uint32_t offset1                     : 8;
9670 		uint32_t offset2                     : 8;
9671 		uint32_t offset3                     : 8;
9672 	} s;
9673 	/* struct ody_gicrx_ipriorityr12e_s cn; */
9674 };
9675 typedef union ody_gicrx_ipriorityr12e ody_gicrx_ipriorityr12e_t;
9676 
9677 static inline uint64_t ODY_GICRX_IPRIORITYR12E(uint64_t a) __attribute__ ((pure, always_inline));
9678 static inline uint64_t ODY_GICRX_IPRIORITYR12E(uint64_t a)
9679 {
9680 	if (a <= 81)
9681 		return 0x801000090430ll + 0x40000ll * ((a) & 0x7f);
9682 	__ody_csr_fatal("GICRX_IPRIORITYR12E", 1, a, 0, 0, 0, 0, 0);
9683 }
9684 
9685 #define typedef_ODY_GICRX_IPRIORITYR12E(a) ody_gicrx_ipriorityr12e_t
9686 #define bustype_ODY_GICRX_IPRIORITYR12E(a) CSR_TYPE_NCB32b
9687 #define basename_ODY_GICRX_IPRIORITYR12E(a) "GICRX_IPRIORITYR12E"
9688 #define device_bar_ODY_GICRX_IPRIORITYR12E(a) 0x0 /* PF_BAR0 */
9689 #define busnum_ODY_GICRX_IPRIORITYR12E(a) (a)
9690 #define arguments_ODY_GICRX_IPRIORITYR12E(a) (a), -1, -1, -1
9691 
9692 /**
9693  * Register (NCB32b) gicr#_ipriorityr13e
9694  *
9695  * GICR Ipriorityr13e Register
9696  * The GICR0_IPRIORITYR13E characteristics are:
9697  *
9698  * * Purpose
9699  *
9700  * Holds the priority of the corresponding interrupt for extended range PPI IDs 1076-1079.
9701  *
9702  * * Usage constraints
9703  * When GICD(A)_CTLR.DS==0 a register bit that corresponds to a Group 0 or Secure Group
9704  * 1 interrupt is RAZ/WI to Non-secure accesses.
9705  *
9706  * These registers are byte-accessible.
9707  *
9708  * The GIC implements 5 bits of priority and in each field, unimplemented bits are RAZ/WI.
9709  */
9710 union ody_gicrx_ipriorityr13e {
9711 	uint32_t u;
9712 	struct ody_gicrx_ipriorityr13e_s {
9713 		uint32_t offset0                     : 8;
9714 		uint32_t offset1                     : 8;
9715 		uint32_t offset2                     : 8;
9716 		uint32_t offset3                     : 8;
9717 	} s;
9718 	/* struct ody_gicrx_ipriorityr13e_s cn; */
9719 };
9720 typedef union ody_gicrx_ipriorityr13e ody_gicrx_ipriorityr13e_t;
9721 
9722 static inline uint64_t ODY_GICRX_IPRIORITYR13E(uint64_t a) __attribute__ ((pure, always_inline));
9723 static inline uint64_t ODY_GICRX_IPRIORITYR13E(uint64_t a)
9724 {
9725 	if (a <= 81)
9726 		return 0x801000090434ll + 0x40000ll * ((a) & 0x7f);
9727 	__ody_csr_fatal("GICRX_IPRIORITYR13E", 1, a, 0, 0, 0, 0, 0);
9728 }
9729 
9730 #define typedef_ODY_GICRX_IPRIORITYR13E(a) ody_gicrx_ipriorityr13e_t
9731 #define bustype_ODY_GICRX_IPRIORITYR13E(a) CSR_TYPE_NCB32b
9732 #define basename_ODY_GICRX_IPRIORITYR13E(a) "GICRX_IPRIORITYR13E"
9733 #define device_bar_ODY_GICRX_IPRIORITYR13E(a) 0x0 /* PF_BAR0 */
9734 #define busnum_ODY_GICRX_IPRIORITYR13E(a) (a)
9735 #define arguments_ODY_GICRX_IPRIORITYR13E(a) (a), -1, -1, -1
9736 
9737 /**
9738  * Register (NCB32b) gicr#_ipriorityr14e
9739  *
9740  * GICR Ipriorityr14e Register
9741  * The GICR0_IPRIORITYR14E characteristics are:
9742  *
9743  * * Purpose
9744  *
9745  * Holds the priority of the corresponding interrupt for extended range PPI IDs 1080-1083.
9746  *
9747  * * Usage constraints
9748  * When GICD(A)_CTLR.DS==0 a register bit that corresponds to a Group 0 or Secure Group
9749  * 1 interrupt is RAZ/WI to Non-secure accesses.
9750  *
9751  * These registers are byte-accessible.
9752  *
9753  * The GIC implements 5 bits of priority and in each field, unimplemented bits are RAZ/WI.
9754  */
9755 union ody_gicrx_ipriorityr14e {
9756 	uint32_t u;
9757 	struct ody_gicrx_ipriorityr14e_s {
9758 		uint32_t offset0                     : 8;
9759 		uint32_t offset1                     : 8;
9760 		uint32_t offset2                     : 8;
9761 		uint32_t offset3                     : 8;
9762 	} s;
9763 	/* struct ody_gicrx_ipriorityr14e_s cn; */
9764 };
9765 typedef union ody_gicrx_ipriorityr14e ody_gicrx_ipriorityr14e_t;
9766 
9767 static inline uint64_t ODY_GICRX_IPRIORITYR14E(uint64_t a) __attribute__ ((pure, always_inline));
9768 static inline uint64_t ODY_GICRX_IPRIORITYR14E(uint64_t a)
9769 {
9770 	if (a <= 81)
9771 		return 0x801000090438ll + 0x40000ll * ((a) & 0x7f);
9772 	__ody_csr_fatal("GICRX_IPRIORITYR14E", 1, a, 0, 0, 0, 0, 0);
9773 }
9774 
9775 #define typedef_ODY_GICRX_IPRIORITYR14E(a) ody_gicrx_ipriorityr14e_t
9776 #define bustype_ODY_GICRX_IPRIORITYR14E(a) CSR_TYPE_NCB32b
9777 #define basename_ODY_GICRX_IPRIORITYR14E(a) "GICRX_IPRIORITYR14E"
9778 #define device_bar_ODY_GICRX_IPRIORITYR14E(a) 0x0 /* PF_BAR0 */
9779 #define busnum_ODY_GICRX_IPRIORITYR14E(a) (a)
9780 #define arguments_ODY_GICRX_IPRIORITYR14E(a) (a), -1, -1, -1
9781 
9782 /**
9783  * Register (NCB32b) gicr#_ipriorityr15e
9784  *
9785  * GICR Ipriorityr15e Register
9786  * The GICR0_IPRIORITYR15E characteristics are:
9787  *
9788  * * Purpose
9789  *
9790  * Holds the priority of the corresponding interrupt for extended range PPI IDs 1084-1087.
9791  *
9792  * * Usage constraints
9793  * When GICD(A)_CTLR.DS==0 a register bit that corresponds to a Group 0 or Secure Group
9794  * 1 interrupt is RAZ/WI to Non-secure accesses.
9795  *
9796  * These registers are byte-accessible.
9797  *
9798  * The GIC implements 5 bits of priority and in each field, unimplemented bits are RAZ/WI.
9799  */
9800 union ody_gicrx_ipriorityr15e {
9801 	uint32_t u;
9802 	struct ody_gicrx_ipriorityr15e_s {
9803 		uint32_t offset0                     : 8;
9804 		uint32_t offset1                     : 8;
9805 		uint32_t offset2                     : 8;
9806 		uint32_t offset3                     : 8;
9807 	} s;
9808 	/* struct ody_gicrx_ipriorityr15e_s cn; */
9809 };
9810 typedef union ody_gicrx_ipriorityr15e ody_gicrx_ipriorityr15e_t;
9811 
9812 static inline uint64_t ODY_GICRX_IPRIORITYR15E(uint64_t a) __attribute__ ((pure, always_inline));
9813 static inline uint64_t ODY_GICRX_IPRIORITYR15E(uint64_t a)
9814 {
9815 	if (a <= 81)
9816 		return 0x80100009043cll + 0x40000ll * ((a) & 0x7f);
9817 	__ody_csr_fatal("GICRX_IPRIORITYR15E", 1, a, 0, 0, 0, 0, 0);
9818 }
9819 
9820 #define typedef_ODY_GICRX_IPRIORITYR15E(a) ody_gicrx_ipriorityr15e_t
9821 #define bustype_ODY_GICRX_IPRIORITYR15E(a) CSR_TYPE_NCB32b
9822 #define basename_ODY_GICRX_IPRIORITYR15E(a) "GICRX_IPRIORITYR15E"
9823 #define device_bar_ODY_GICRX_IPRIORITYR15E(a) 0x0 /* PF_BAR0 */
9824 #define busnum_ODY_GICRX_IPRIORITYR15E(a) (a)
9825 #define arguments_ODY_GICRX_IPRIORITYR15E(a) (a), -1, -1, -1
9826 
9827 /**
9828  * Register (NCB32b) gicr#_ipriorityr8e
9829  *
9830  * GICR Ipriorityr8e Register
9831  * The GICR0_IPRIORITYR8E characteristics are:
9832  *
9833  * * Purpose
9834  * Holds the priority of the corresponding interrupt for extended range PPI IDs 1056-1059.
9835  *
9836  * * Usage constraints
9837  * When GICD(A)_CTLR.DS==0 a register bit that corresponds to a Group 0 or Secure Group
9838  * 1 interrupt is RAZ/WI to Non-secure accesses.
9839  *
9840  * These registers are byte-accessible.
9841  *
9842  * The GIC implements 5 bits of priority and in each field, unimplemented bits are RAZ/WI.
9843  */
9844 union ody_gicrx_ipriorityr8e {
9845 	uint32_t u;
9846 	struct ody_gicrx_ipriorityr8e_s {
9847 		uint32_t offset0                     : 8;
9848 		uint32_t offset1                     : 8;
9849 		uint32_t offset2                     : 8;
9850 		uint32_t offset3                     : 8;
9851 	} s;
9852 	/* struct ody_gicrx_ipriorityr8e_s cn; */
9853 };
9854 typedef union ody_gicrx_ipriorityr8e ody_gicrx_ipriorityr8e_t;
9855 
9856 static inline uint64_t ODY_GICRX_IPRIORITYR8E(uint64_t a) __attribute__ ((pure, always_inline));
9857 static inline uint64_t ODY_GICRX_IPRIORITYR8E(uint64_t a)
9858 {
9859 	if (a <= 81)
9860 		return 0x801000090420ll + 0x40000ll * ((a) & 0x7f);
9861 	__ody_csr_fatal("GICRX_IPRIORITYR8E", 1, a, 0, 0, 0, 0, 0);
9862 }
9863 
9864 #define typedef_ODY_GICRX_IPRIORITYR8E(a) ody_gicrx_ipriorityr8e_t
9865 #define bustype_ODY_GICRX_IPRIORITYR8E(a) CSR_TYPE_NCB32b
9866 #define basename_ODY_GICRX_IPRIORITYR8E(a) "GICRX_IPRIORITYR8E"
9867 #define device_bar_ODY_GICRX_IPRIORITYR8E(a) 0x0 /* PF_BAR0 */
9868 #define busnum_ODY_GICRX_IPRIORITYR8E(a) (a)
9869 #define arguments_ODY_GICRX_IPRIORITYR8E(a) (a), -1, -1, -1
9870 
9871 /**
9872  * Register (NCB32b) gicr#_ipriorityr9e
9873  *
9874  * GICR Ipriorityr9e Register
9875  * The GICR0_IPRIORITYR9E characteristics are:
9876  *
9877  * * Purpose
9878  * Holds the priority of the corresponding interrupt for extended range PPI IDs 1060-1063.
9879  *
9880  * * Usage constraints
9881  * When GICD(A)_CTLR.DS==0 a register bit that corresponds to a Group 0 or Secure Group
9882  * 1 interrupt is RAZ/WI to Non-secure accesses.
9883  *
9884  * These registers are byte-accessible.
9885  *
9886  * The GIC implements 5 bits of priority and in each field, unimplemented bits are RAZ/WI.
9887  */
9888 union ody_gicrx_ipriorityr9e {
9889 	uint32_t u;
9890 	struct ody_gicrx_ipriorityr9e_s {
9891 		uint32_t offset0                     : 8;
9892 		uint32_t offset1                     : 8;
9893 		uint32_t offset2                     : 8;
9894 		uint32_t offset3                     : 8;
9895 	} s;
9896 	/* struct ody_gicrx_ipriorityr9e_s cn; */
9897 };
9898 typedef union ody_gicrx_ipriorityr9e ody_gicrx_ipriorityr9e_t;
9899 
9900 static inline uint64_t ODY_GICRX_IPRIORITYR9E(uint64_t a) __attribute__ ((pure, always_inline));
9901 static inline uint64_t ODY_GICRX_IPRIORITYR9E(uint64_t a)
9902 {
9903 	if (a <= 81)
9904 		return 0x801000090424ll + 0x40000ll * ((a) & 0x7f);
9905 	__ody_csr_fatal("GICRX_IPRIORITYR9E", 1, a, 0, 0, 0, 0, 0);
9906 }
9907 
9908 #define typedef_ODY_GICRX_IPRIORITYR9E(a) ody_gicrx_ipriorityr9e_t
9909 #define bustype_ODY_GICRX_IPRIORITYR9E(a) CSR_TYPE_NCB32b
9910 #define basename_ODY_GICRX_IPRIORITYR9E(a) "GICRX_IPRIORITYR9E"
9911 #define device_bar_ODY_GICRX_IPRIORITYR9E(a) 0x0 /* PF_BAR0 */
9912 #define busnum_ODY_GICRX_IPRIORITYR9E(a) (a)
9913 #define arguments_ODY_GICRX_IPRIORITYR9E(a) (a), -1, -1, -1
9914 
9915 /**
9916  * Register (NCB32b) gicr#_ipriorityr_0
9917  *
9918  * GICR Ipriorityr0 Register
9919  * The GICR0_IPRIORITYR0 characteristics are:
9920  *
9921  * * Purpose
9922  * Holds the priority of the corresponding interrupt for SGIs 0-3.
9923  *
9924  * * Usage constraints
9925  * When GICD(A)_CTLR.DS==0 a register bit that corresponds to a Group 0 or Secure Group
9926  * 1 interrupt is RAZ/WI to Non-secure accesses.
9927  *
9928  * These registers are byte-accessible.
9929  *
9930  * The GIC implements 5 bits of priority and in each field, unimplemented bits are RAZ/WI.
9931  */
9932 union ody_gicrx_ipriorityr_0 {
9933 	uint32_t u;
9934 	struct ody_gicrx_ipriorityr_0_s {
9935 		uint32_t offset0                     : 8;
9936 		uint32_t offset1                     : 8;
9937 		uint32_t offset2                     : 8;
9938 		uint32_t offset3                     : 8;
9939 	} s;
9940 	/* struct ody_gicrx_ipriorityr_0_s cn; */
9941 };
9942 typedef union ody_gicrx_ipriorityr_0 ody_gicrx_ipriorityr_0_t;
9943 
9944 static inline uint64_t ODY_GICRX_IPRIORITYR_0(uint64_t a) __attribute__ ((pure, always_inline));
9945 static inline uint64_t ODY_GICRX_IPRIORITYR_0(uint64_t a)
9946 {
9947 	if (a <= 81)
9948 		return 0x801000090400ll + 0x40000ll * ((a) & 0x7f);
9949 	__ody_csr_fatal("GICRX_IPRIORITYR_0", 1, a, 0, 0, 0, 0, 0);
9950 }
9951 
9952 #define typedef_ODY_GICRX_IPRIORITYR_0(a) ody_gicrx_ipriorityr_0_t
9953 #define bustype_ODY_GICRX_IPRIORITYR_0(a) CSR_TYPE_NCB32b
9954 #define basename_ODY_GICRX_IPRIORITYR_0(a) "GICRX_IPRIORITYR_0"
9955 #define device_bar_ODY_GICRX_IPRIORITYR_0(a) 0x0 /* PF_BAR0 */
9956 #define busnum_ODY_GICRX_IPRIORITYR_0(a) (a)
9957 #define arguments_ODY_GICRX_IPRIORITYR_0(a) (a), -1, -1, -1
9958 
9959 /**
9960  * Register (NCB32b) gicr#_ipriorityr_1
9961  *
9962  * GICR Ipriorityr1 Register
9963  * The GICR0_IPRIORITYR1 characteristics are:
9964  *
9965  * * Purpose
9966  * Holds the priority of the corresponding interrupt for SGIs 4-7.
9967  *
9968  * * Usage constraints
9969  * When GICD(A)_CTLR.DS==0 a register bit that corresponds to a Group 0 or Secure Group
9970  * 1 interrupt is RAZ/WI to Non-secure accesses.
9971  *
9972  * These registers are byte-accessible.
9973  *
9974  * The GIC implements 5 bits of priority and in each field, unimplemented bits are RAZ/WI.
9975  */
9976 union ody_gicrx_ipriorityr_1 {
9977 	uint32_t u;
9978 	struct ody_gicrx_ipriorityr_1_s {
9979 		uint32_t offset0                     : 8;
9980 		uint32_t offset1                     : 8;
9981 		uint32_t offset2                     : 8;
9982 		uint32_t offset3                     : 8;
9983 	} s;
9984 	/* struct ody_gicrx_ipriorityr_1_s cn; */
9985 };
9986 typedef union ody_gicrx_ipriorityr_1 ody_gicrx_ipriorityr_1_t;
9987 
9988 static inline uint64_t ODY_GICRX_IPRIORITYR_1(uint64_t a) __attribute__ ((pure, always_inline));
9989 static inline uint64_t ODY_GICRX_IPRIORITYR_1(uint64_t a)
9990 {
9991 	if (a <= 81)
9992 		return 0x801000090404ll + 0x40000ll * ((a) & 0x7f);
9993 	__ody_csr_fatal("GICRX_IPRIORITYR_1", 1, a, 0, 0, 0, 0, 0);
9994 }
9995 
9996 #define typedef_ODY_GICRX_IPRIORITYR_1(a) ody_gicrx_ipriorityr_1_t
9997 #define bustype_ODY_GICRX_IPRIORITYR_1(a) CSR_TYPE_NCB32b
9998 #define basename_ODY_GICRX_IPRIORITYR_1(a) "GICRX_IPRIORITYR_1"
9999 #define device_bar_ODY_GICRX_IPRIORITYR_1(a) 0x0 /* PF_BAR0 */
10000 #define busnum_ODY_GICRX_IPRIORITYR_1(a) (a)
10001 #define arguments_ODY_GICRX_IPRIORITYR_1(a) (a), -1, -1, -1
10002 
10003 /**
10004  * Register (NCB32b) gicr#_ipriorityr_2
10005  *
10006  * GICR Ipriorityr2 Register
10007  * The GICR0_IPRIORITYR2 characteristics are:
10008  *
10009  * * Purpose
10010  * Holds the priority of the corresponding interrupt for SGIs 8-11.
10011  *
10012  * * Usage constraints
10013  * When GICD(A)_CTLR.DS==0 a register bit that corresponds to a Group 0 or Secure Group
10014  * 1 interrupt is RAZ/WI to Non-secure accesses.
10015  *
10016  * These registers are byte-accessible.
10017  *
10018  * The GIC implements 5 bits of priority and in each field, unimplemented bits are RAZ/WI.
10019  */
10020 union ody_gicrx_ipriorityr_2 {
10021 	uint32_t u;
10022 	struct ody_gicrx_ipriorityr_2_s {
10023 		uint32_t offset0                     : 8;
10024 		uint32_t offset1                     : 8;
10025 		uint32_t offset2                     : 8;
10026 		uint32_t offset3                     : 8;
10027 	} s;
10028 	/* struct ody_gicrx_ipriorityr_2_s cn; */
10029 };
10030 typedef union ody_gicrx_ipriorityr_2 ody_gicrx_ipriorityr_2_t;
10031 
10032 static inline uint64_t ODY_GICRX_IPRIORITYR_2(uint64_t a) __attribute__ ((pure, always_inline));
10033 static inline uint64_t ODY_GICRX_IPRIORITYR_2(uint64_t a)
10034 {
10035 	if (a <= 81)
10036 		return 0x801000090408ll + 0x40000ll * ((a) & 0x7f);
10037 	__ody_csr_fatal("GICRX_IPRIORITYR_2", 1, a, 0, 0, 0, 0, 0);
10038 }
10039 
10040 #define typedef_ODY_GICRX_IPRIORITYR_2(a) ody_gicrx_ipriorityr_2_t
10041 #define bustype_ODY_GICRX_IPRIORITYR_2(a) CSR_TYPE_NCB32b
10042 #define basename_ODY_GICRX_IPRIORITYR_2(a) "GICRX_IPRIORITYR_2"
10043 #define device_bar_ODY_GICRX_IPRIORITYR_2(a) 0x0 /* PF_BAR0 */
10044 #define busnum_ODY_GICRX_IPRIORITYR_2(a) (a)
10045 #define arguments_ODY_GICRX_IPRIORITYR_2(a) (a), -1, -1, -1
10046 
10047 /**
10048  * Register (NCB32b) gicr#_ipriorityr_3
10049  *
10050  * GICR Ipriorityr3 Register
10051  * The GICR0_IPRIORITYR3 characteristics are:
10052  *
10053  * * Purpose
10054  * Holds the priority of the corresponding interrupt for SGIs 12-15.
10055  *
10056  * * Usage constraints
10057  * When GICD(A)_CTLR.DS==0 a register bit that corresponds to a Group 0 or Secure Group
10058  * 1 interrupt is RAZ/WI to Non-secure accesses.
10059  *
10060  * These registers are byte-accessible.
10061  *
10062  * The GIC implements 5 bits of priority and in each field, unimplemented bits are RAZ/WI.
10063  */
10064 union ody_gicrx_ipriorityr_3 {
10065 	uint32_t u;
10066 	struct ody_gicrx_ipriorityr_3_s {
10067 		uint32_t offset0                     : 8;
10068 		uint32_t offset1                     : 8;
10069 		uint32_t offset2                     : 8;
10070 		uint32_t offset3                     : 8;
10071 	} s;
10072 	/* struct ody_gicrx_ipriorityr_3_s cn; */
10073 };
10074 typedef union ody_gicrx_ipriorityr_3 ody_gicrx_ipriorityr_3_t;
10075 
10076 static inline uint64_t ODY_GICRX_IPRIORITYR_3(uint64_t a) __attribute__ ((pure, always_inline));
10077 static inline uint64_t ODY_GICRX_IPRIORITYR_3(uint64_t a)
10078 {
10079 	if (a <= 81)
10080 		return 0x80100009040cll + 0x40000ll * ((a) & 0x7f);
10081 	__ody_csr_fatal("GICRX_IPRIORITYR_3", 1, a, 0, 0, 0, 0, 0);
10082 }
10083 
10084 #define typedef_ODY_GICRX_IPRIORITYR_3(a) ody_gicrx_ipriorityr_3_t
10085 #define bustype_ODY_GICRX_IPRIORITYR_3(a) CSR_TYPE_NCB32b
10086 #define basename_ODY_GICRX_IPRIORITYR_3(a) "GICRX_IPRIORITYR_3"
10087 #define device_bar_ODY_GICRX_IPRIORITYR_3(a) 0x0 /* PF_BAR0 */
10088 #define busnum_ODY_GICRX_IPRIORITYR_3(a) (a)
10089 #define arguments_ODY_GICRX_IPRIORITYR_3(a) (a), -1, -1, -1
10090 
10091 /**
10092  * Register (NCB32b) gicr#_ipriorityr_4
10093  *
10094  * GICR Ipriorityr4 Register
10095  * The GICR0_IPRIORITYR4 characteristics are:
10096  *
10097  * * Purpose
10098  * Holds the priority of the corresponding interrupt for PPIs 16-19.
10099  *
10100  * * Usage constraints
10101  * When GICD(A)_CTLR.DS==0 a register bit that corresponds to a Group 0 or Secure Group
10102  * 1 interrupt is RAZ/WI to Non-secure accesses.
10103  *
10104  * These registers are byte-accessible.
10105  *
10106  * The GIC implements 5 bits of priority and in each field, unimplemented bits are RAZ/WI.
10107  */
10108 union ody_gicrx_ipriorityr_4 {
10109 	uint32_t u;
10110 	struct ody_gicrx_ipriorityr_4_s {
10111 		uint32_t offset0                     : 8;
10112 		uint32_t offset1                     : 8;
10113 		uint32_t offset2                     : 8;
10114 		uint32_t offset3                     : 8;
10115 	} s;
10116 	/* struct ody_gicrx_ipriorityr_4_s cn; */
10117 };
10118 typedef union ody_gicrx_ipriorityr_4 ody_gicrx_ipriorityr_4_t;
10119 
10120 static inline uint64_t ODY_GICRX_IPRIORITYR_4(uint64_t a) __attribute__ ((pure, always_inline));
10121 static inline uint64_t ODY_GICRX_IPRIORITYR_4(uint64_t a)
10122 {
10123 	if (a <= 81)
10124 		return 0x801000090410ll + 0x40000ll * ((a) & 0x7f);
10125 	__ody_csr_fatal("GICRX_IPRIORITYR_4", 1, a, 0, 0, 0, 0, 0);
10126 }
10127 
10128 #define typedef_ODY_GICRX_IPRIORITYR_4(a) ody_gicrx_ipriorityr_4_t
10129 #define bustype_ODY_GICRX_IPRIORITYR_4(a) CSR_TYPE_NCB32b
10130 #define basename_ODY_GICRX_IPRIORITYR_4(a) "GICRX_IPRIORITYR_4"
10131 #define device_bar_ODY_GICRX_IPRIORITYR_4(a) 0x0 /* PF_BAR0 */
10132 #define busnum_ODY_GICRX_IPRIORITYR_4(a) (a)
10133 #define arguments_ODY_GICRX_IPRIORITYR_4(a) (a), -1, -1, -1
10134 
10135 /**
10136  * Register (NCB32b) gicr#_ipriorityr_5
10137  *
10138  * GICR Ipriorityr5 Register
10139  * The GICR0_IPRIORITYR5 characteristics are:
10140  *
10141  * * Purpose
10142  * Holds the priority of the corresponding interrupt for PPIs 20-23.
10143  *
10144  * * Usage constraints
10145  * When GICD(A)_CTLR.DS==0 a register bit that corresponds to a Group 0 or Secure Group
10146  * 1 interrupt is RAZ/WI to Non-secure accesses.
10147  *
10148  * These registers are byte-accessible.
10149  *
10150  * The GIC implements 5 bits of priority and in each field, unimplemented bits are RAZ/WI.
10151  */
10152 union ody_gicrx_ipriorityr_5 {
10153 	uint32_t u;
10154 	struct ody_gicrx_ipriorityr_5_s {
10155 		uint32_t offset0                     : 8;
10156 		uint32_t offset1                     : 8;
10157 		uint32_t offset2                     : 8;
10158 		uint32_t offset3                     : 8;
10159 	} s;
10160 	/* struct ody_gicrx_ipriorityr_5_s cn; */
10161 };
10162 typedef union ody_gicrx_ipriorityr_5 ody_gicrx_ipriorityr_5_t;
10163 
10164 static inline uint64_t ODY_GICRX_IPRIORITYR_5(uint64_t a) __attribute__ ((pure, always_inline));
10165 static inline uint64_t ODY_GICRX_IPRIORITYR_5(uint64_t a)
10166 {
10167 	if (a <= 81)
10168 		return 0x801000090414ll + 0x40000ll * ((a) & 0x7f);
10169 	__ody_csr_fatal("GICRX_IPRIORITYR_5", 1, a, 0, 0, 0, 0, 0);
10170 }
10171 
10172 #define typedef_ODY_GICRX_IPRIORITYR_5(a) ody_gicrx_ipriorityr_5_t
10173 #define bustype_ODY_GICRX_IPRIORITYR_5(a) CSR_TYPE_NCB32b
10174 #define basename_ODY_GICRX_IPRIORITYR_5(a) "GICRX_IPRIORITYR_5"
10175 #define device_bar_ODY_GICRX_IPRIORITYR_5(a) 0x0 /* PF_BAR0 */
10176 #define busnum_ODY_GICRX_IPRIORITYR_5(a) (a)
10177 #define arguments_ODY_GICRX_IPRIORITYR_5(a) (a), -1, -1, -1
10178 
10179 /**
10180  * Register (NCB32b) gicr#_ipriorityr_6
10181  *
10182  * GICR Ipriorityr6 Register
10183  * The GICR0_IPRIORITYR6 characteristics are:
10184  *
10185  * * Purpose
10186  * Holds the priority of the corresponding interrupt for PPIs 24-27.
10187  *
10188  * * Usage constraints
10189  * When GICD(A)_CTLR.DS==0 a register bit that corresponds to a Group 0 or Secure Group
10190  * 1 interrupt is RAZ/WI to Non-secure accesses.
10191  *
10192  * These registers are byte-accessible.
10193  *
10194  * The GIC implements 5 bits of priority and in each field, unimplemented bits are RAZ/WI.
10195  */
10196 union ody_gicrx_ipriorityr_6 {
10197 	uint32_t u;
10198 	struct ody_gicrx_ipriorityr_6_s {
10199 		uint32_t offset0                     : 8;
10200 		uint32_t offset1                     : 8;
10201 		uint32_t offset2                     : 8;
10202 		uint32_t offset3                     : 8;
10203 	} s;
10204 	/* struct ody_gicrx_ipriorityr_6_s cn; */
10205 };
10206 typedef union ody_gicrx_ipriorityr_6 ody_gicrx_ipriorityr_6_t;
10207 
10208 static inline uint64_t ODY_GICRX_IPRIORITYR_6(uint64_t a) __attribute__ ((pure, always_inline));
10209 static inline uint64_t ODY_GICRX_IPRIORITYR_6(uint64_t a)
10210 {
10211 	if (a <= 81)
10212 		return 0x801000090418ll + 0x40000ll * ((a) & 0x7f);
10213 	__ody_csr_fatal("GICRX_IPRIORITYR_6", 1, a, 0, 0, 0, 0, 0);
10214 }
10215 
10216 #define typedef_ODY_GICRX_IPRIORITYR_6(a) ody_gicrx_ipriorityr_6_t
10217 #define bustype_ODY_GICRX_IPRIORITYR_6(a) CSR_TYPE_NCB32b
10218 #define basename_ODY_GICRX_IPRIORITYR_6(a) "GICRX_IPRIORITYR_6"
10219 #define device_bar_ODY_GICRX_IPRIORITYR_6(a) 0x0 /* PF_BAR0 */
10220 #define busnum_ODY_GICRX_IPRIORITYR_6(a) (a)
10221 #define arguments_ODY_GICRX_IPRIORITYR_6(a) (a), -1, -1, -1
10222 
10223 /**
10224  * Register (NCB32b) gicr#_ipriorityr_7
10225  *
10226  * GICR Ipriorityr7 Register
10227  * The GICR0_IPRIORITYR7 characteristics are:
10228  *
10229  * * Purpose
10230  * Holds the priority of the corresponding interrupt for PPIs 28-31.
10231  *
10232  * * Usage constraints
10233  * When GICD(A)_CTLR.DS==0 a register bit that corresponds to a Group 0 or Secure Group
10234  * 1 interrupt is RAZ/WI to Non-secure accesses.
10235  *
10236  * These registers are byte-accessible.
10237  *
10238  * The GIC implements 5 bits of priority and in each field, unimplemented bits are RAZ/WI.
10239  */
10240 union ody_gicrx_ipriorityr_7 {
10241 	uint32_t u;
10242 	struct ody_gicrx_ipriorityr_7_s {
10243 		uint32_t offset0                     : 8;
10244 		uint32_t offset1                     : 8;
10245 		uint32_t offset2                     : 8;
10246 		uint32_t offset3                     : 8;
10247 	} s;
10248 	/* struct ody_gicrx_ipriorityr_7_s cn; */
10249 };
10250 typedef union ody_gicrx_ipriorityr_7 ody_gicrx_ipriorityr_7_t;
10251 
10252 static inline uint64_t ODY_GICRX_IPRIORITYR_7(uint64_t a) __attribute__ ((pure, always_inline));
10253 static inline uint64_t ODY_GICRX_IPRIORITYR_7(uint64_t a)
10254 {
10255 	if (a <= 81)
10256 		return 0x80100009041cll + 0x40000ll * ((a) & 0x7f);
10257 	__ody_csr_fatal("GICRX_IPRIORITYR_7", 1, a, 0, 0, 0, 0, 0);
10258 }
10259 
10260 #define typedef_ODY_GICRX_IPRIORITYR_7(a) ody_gicrx_ipriorityr_7_t
10261 #define bustype_ODY_GICRX_IPRIORITYR_7(a) CSR_TYPE_NCB32b
10262 #define basename_ODY_GICRX_IPRIORITYR_7(a) "GICRX_IPRIORITYR_7"
10263 #define device_bar_ODY_GICRX_IPRIORITYR_7(a) 0x0 /* PF_BAR0 */
10264 #define busnum_ODY_GICRX_IPRIORITYR_7(a) (a)
10265 #define arguments_ODY_GICRX_IPRIORITYR_7(a) (a), -1, -1, -1
10266 
10267 /**
10268  * Register (NCB32b) gicr#_isactiver0
10269  *
10270  * GICR Isactiver0 Register
10271  * The GICR0_ISACTIVER0 characteristics are:
10272  *
10273  * * Purpose
10274  * Activates the corresponding SGI (IDs 0-15) or PPI (IDs 16-31). These registers are
10275  * used when saving and restoring GIC state.
10276  *
10277  * * Usage constraints
10278  * If GICD(A)_CTLR.DS==0, unless the GICR0_NSACR register permits Non-secure software
10279  * to control Group 0 and Secure Group 1 interrupts, any bits that correspond to Group
10280  * 0 or Secure Group 1 interrupts are accessible only by Secure accesses and are RAZ/WI
10281  * to Non-secure accesses.
10282  */
10283 union ody_gicrx_isactiver0 {
10284 	uint32_t u;
10285 	struct ody_gicrx_isactiver0_s {
10286 		uint32_t set_active_bit0             : 1;
10287 		uint32_t set_active_bit1             : 1;
10288 		uint32_t set_active_bit2             : 1;
10289 		uint32_t set_active_bit3             : 1;
10290 		uint32_t set_active_bit4             : 1;
10291 		uint32_t set_active_bit5             : 1;
10292 		uint32_t set_active_bit6             : 1;
10293 		uint32_t set_active_bit7             : 1;
10294 		uint32_t set_active_bit8             : 1;
10295 		uint32_t set_active_bit9             : 1;
10296 		uint32_t set_active_bit10            : 1;
10297 		uint32_t set_active_bit11            : 1;
10298 		uint32_t set_active_bit12            : 1;
10299 		uint32_t set_active_bit13            : 1;
10300 		uint32_t set_active_bit14            : 1;
10301 		uint32_t set_active_bit15            : 1;
10302 		uint32_t set_active_bit16            : 1;
10303 		uint32_t set_active_bit17            : 1;
10304 		uint32_t set_active_bit18            : 1;
10305 		uint32_t set_active_bit19            : 1;
10306 		uint32_t set_active_bit20            : 1;
10307 		uint32_t set_active_bit21            : 1;
10308 		uint32_t set_active_bit22            : 1;
10309 		uint32_t set_active_bit23            : 1;
10310 		uint32_t set_active_bit24            : 1;
10311 		uint32_t set_active_bit25            : 1;
10312 		uint32_t set_active_bit26            : 1;
10313 		uint32_t set_active_bit27            : 1;
10314 		uint32_t set_active_bit28            : 1;
10315 		uint32_t set_active_bit29            : 1;
10316 		uint32_t set_active_bit30            : 1;
10317 		uint32_t set_active_bit31            : 1;
10318 	} s;
10319 	/* struct ody_gicrx_isactiver0_s cn; */
10320 };
10321 typedef union ody_gicrx_isactiver0 ody_gicrx_isactiver0_t;
10322 
10323 static inline uint64_t ODY_GICRX_ISACTIVER0(uint64_t a) __attribute__ ((pure, always_inline));
10324 static inline uint64_t ODY_GICRX_ISACTIVER0(uint64_t a)
10325 {
10326 	if (a <= 81)
10327 		return 0x801000090300ll + 0x40000ll * ((a) & 0x7f);
10328 	__ody_csr_fatal("GICRX_ISACTIVER0", 1, a, 0, 0, 0, 0, 0);
10329 }
10330 
10331 #define typedef_ODY_GICRX_ISACTIVER0(a) ody_gicrx_isactiver0_t
10332 #define bustype_ODY_GICRX_ISACTIVER0(a) CSR_TYPE_NCB32b
10333 #define basename_ODY_GICRX_ISACTIVER0(a) "GICRX_ISACTIVER0"
10334 #define device_bar_ODY_GICRX_ISACTIVER0(a) 0x0 /* PF_BAR0 */
10335 #define busnum_ODY_GICRX_ISACTIVER0(a) (a)
10336 #define arguments_ODY_GICRX_ISACTIVER0(a) (a), -1, -1, -1
10337 
10338 /**
10339  * Register (NCB32b) gicr#_isactiver1e
10340  *
10341  * GICR Isactiver1e Register
10342  * The GICR0_ISACTIVER1E characteristics are:
10343  *
10344  * * Purpose
10345  * Activates the corresponding  extended range PPI. These registers are used when
10346  * saving and restoring GIC state.
10347  *
10348  * * Usage constraints
10349  * If GICD(A)_CTLR.DS==0, unless the GICR0_NSACR register permits Non-secure software
10350  * to control Group 0 and Secure Group 1 interrupts, any bits that correspond to Group
10351  * 0 or Secure Group 1 interrupts are accessible only by Secure accesses and are RAZ/WI
10352  * to Non-secure accesses.
10353  */
10354 union ody_gicrx_isactiver1e {
10355 	uint32_t u;
10356 	struct ody_gicrx_isactiver1e_s {
10357 		uint32_t set_active_bit0             : 1;
10358 		uint32_t set_active_bit1             : 1;
10359 		uint32_t set_active_bit2             : 1;
10360 		uint32_t set_active_bit3             : 1;
10361 		uint32_t set_active_bit4             : 1;
10362 		uint32_t set_active_bit5             : 1;
10363 		uint32_t set_active_bit6             : 1;
10364 		uint32_t set_active_bit7             : 1;
10365 		uint32_t set_active_bit8             : 1;
10366 		uint32_t set_active_bit9             : 1;
10367 		uint32_t set_active_bit10            : 1;
10368 		uint32_t set_active_bit11            : 1;
10369 		uint32_t set_active_bit12            : 1;
10370 		uint32_t set_active_bit13            : 1;
10371 		uint32_t set_active_bit14            : 1;
10372 		uint32_t set_active_bit15            : 1;
10373 		uint32_t set_active_bit16            : 1;
10374 		uint32_t set_active_bit17            : 1;
10375 		uint32_t set_active_bit18            : 1;
10376 		uint32_t set_active_bit19            : 1;
10377 		uint32_t set_active_bit20            : 1;
10378 		uint32_t set_active_bit21            : 1;
10379 		uint32_t set_active_bit22            : 1;
10380 		uint32_t set_active_bit23            : 1;
10381 		uint32_t set_active_bit24            : 1;
10382 		uint32_t set_active_bit25            : 1;
10383 		uint32_t set_active_bit26            : 1;
10384 		uint32_t set_active_bit27            : 1;
10385 		uint32_t set_active_bit28            : 1;
10386 		uint32_t set_active_bit29            : 1;
10387 		uint32_t set_active_bit30            : 1;
10388 		uint32_t set_active_bit31            : 1;
10389 	} s;
10390 	/* struct ody_gicrx_isactiver1e_s cn; */
10391 };
10392 typedef union ody_gicrx_isactiver1e ody_gicrx_isactiver1e_t;
10393 
10394 static inline uint64_t ODY_GICRX_ISACTIVER1E(uint64_t a) __attribute__ ((pure, always_inline));
10395 static inline uint64_t ODY_GICRX_ISACTIVER1E(uint64_t a)
10396 {
10397 	if (a <= 81)
10398 		return 0x801000090304ll + 0x40000ll * ((a) & 0x7f);
10399 	__ody_csr_fatal("GICRX_ISACTIVER1E", 1, a, 0, 0, 0, 0, 0);
10400 }
10401 
10402 #define typedef_ODY_GICRX_ISACTIVER1E(a) ody_gicrx_isactiver1e_t
10403 #define bustype_ODY_GICRX_ISACTIVER1E(a) CSR_TYPE_NCB32b
10404 #define basename_ODY_GICRX_ISACTIVER1E(a) "GICRX_ISACTIVER1E"
10405 #define device_bar_ODY_GICRX_ISACTIVER1E(a) 0x0 /* PF_BAR0 */
10406 #define busnum_ODY_GICRX_ISACTIVER1E(a) (a)
10407 #define arguments_ODY_GICRX_ISACTIVER1E(a) (a), -1, -1, -1
10408 
10409 /**
10410  * Register (NCB32b) gicr#_isenabler0
10411  *
10412  * GICR Isenabler0 Register
10413  * The GICR0_ISENABLER0 characteristics are:
10414  *
10415  * * Purpose
10416  * Enables forwarding of the corresponding SGI (IDs 0-15) or PPI (IDs 16-31) to the CPU interface.
10417  *
10418  * * Usage constraints
10419  * When GICD(A)_CTLR.DS==0, bits corresponding to Group 0 and Secure Group 1 interrupts
10420  * are RAZ/WI to Non-secure accesses.
10421  */
10422 union ody_gicrx_isenabler0 {
10423 	uint32_t u;
10424 	struct ody_gicrx_isenabler0_s {
10425 		uint32_t set_enable_bit0             : 1;
10426 		uint32_t set_enable_bit1             : 1;
10427 		uint32_t set_enable_bit2             : 1;
10428 		uint32_t set_enable_bit3             : 1;
10429 		uint32_t set_enable_bit4             : 1;
10430 		uint32_t set_enable_bit5             : 1;
10431 		uint32_t set_enable_bit6             : 1;
10432 		uint32_t set_enable_bit7             : 1;
10433 		uint32_t set_enable_bit8             : 1;
10434 		uint32_t set_enable_bit9             : 1;
10435 		uint32_t set_enable_bit10            : 1;
10436 		uint32_t set_enable_bit11            : 1;
10437 		uint32_t set_enable_bit12            : 1;
10438 		uint32_t set_enable_bit13            : 1;
10439 		uint32_t set_enable_bit14            : 1;
10440 		uint32_t set_enable_bit15            : 1;
10441 		uint32_t set_enable_bit16            : 1;
10442 		uint32_t set_enable_bit17            : 1;
10443 		uint32_t set_enable_bit18            : 1;
10444 		uint32_t set_enable_bit19            : 1;
10445 		uint32_t set_enable_bit20            : 1;
10446 		uint32_t set_enable_bit21            : 1;
10447 		uint32_t set_enable_bit22            : 1;
10448 		uint32_t set_enable_bit23            : 1;
10449 		uint32_t set_enable_bit24            : 1;
10450 		uint32_t set_enable_bit25            : 1;
10451 		uint32_t set_enable_bit26            : 1;
10452 		uint32_t set_enable_bit27            : 1;
10453 		uint32_t set_enable_bit28            : 1;
10454 		uint32_t set_enable_bit29            : 1;
10455 		uint32_t set_enable_bit30            : 1;
10456 		uint32_t set_enable_bit31            : 1;
10457 	} s;
10458 	/* struct ody_gicrx_isenabler0_s cn; */
10459 };
10460 typedef union ody_gicrx_isenabler0 ody_gicrx_isenabler0_t;
10461 
10462 static inline uint64_t ODY_GICRX_ISENABLER0(uint64_t a) __attribute__ ((pure, always_inline));
10463 static inline uint64_t ODY_GICRX_ISENABLER0(uint64_t a)
10464 {
10465 	if (a <= 81)
10466 		return 0x801000090100ll + 0x40000ll * ((a) & 0x7f);
10467 	__ody_csr_fatal("GICRX_ISENABLER0", 1, a, 0, 0, 0, 0, 0);
10468 }
10469 
10470 #define typedef_ODY_GICRX_ISENABLER0(a) ody_gicrx_isenabler0_t
10471 #define bustype_ODY_GICRX_ISENABLER0(a) CSR_TYPE_NCB32b
10472 #define basename_ODY_GICRX_ISENABLER0(a) "GICRX_ISENABLER0"
10473 #define device_bar_ODY_GICRX_ISENABLER0(a) 0x0 /* PF_BAR0 */
10474 #define busnum_ODY_GICRX_ISENABLER0(a) (a)
10475 #define arguments_ODY_GICRX_ISENABLER0(a) (a), -1, -1, -1
10476 
10477 /**
10478  * Register (NCB32b) gicr#_isenabler1e
10479  *
10480  * GICR Isenabler1e Register
10481  * The GICR0_ISENABLER1E characteristics are:
10482  *
10483  * * Purpose
10484  * Enables forwarding of the corresponding extended range PPI to the CPU interface.
10485  *
10486  * * Usage constraints
10487  * When GICD(A)_CTLR.DS==0, bits corresponding to Group 0 and Secure Group 1 interrupts
10488  * are RAZ/WI to Non-secure accesses.
10489  */
10490 union ody_gicrx_isenabler1e {
10491 	uint32_t u;
10492 	struct ody_gicrx_isenabler1e_s {
10493 		uint32_t set_enable_bit0             : 1;
10494 		uint32_t set_enable_bit1             : 1;
10495 		uint32_t set_enable_bit2             : 1;
10496 		uint32_t set_enable_bit3             : 1;
10497 		uint32_t set_enable_bit4             : 1;
10498 		uint32_t set_enable_bit5             : 1;
10499 		uint32_t set_enable_bit6             : 1;
10500 		uint32_t set_enable_bit7             : 1;
10501 		uint32_t set_enable_bit8             : 1;
10502 		uint32_t set_enable_bit9             : 1;
10503 		uint32_t set_enable_bit10            : 1;
10504 		uint32_t set_enable_bit11            : 1;
10505 		uint32_t set_enable_bit12            : 1;
10506 		uint32_t set_enable_bit13            : 1;
10507 		uint32_t set_enable_bit14            : 1;
10508 		uint32_t set_enable_bit15            : 1;
10509 		uint32_t set_enable_bit16            : 1;
10510 		uint32_t set_enable_bit17            : 1;
10511 		uint32_t set_enable_bit18            : 1;
10512 		uint32_t set_enable_bit19            : 1;
10513 		uint32_t set_enable_bit20            : 1;
10514 		uint32_t set_enable_bit21            : 1;
10515 		uint32_t set_enable_bit22            : 1;
10516 		uint32_t set_enable_bit23            : 1;
10517 		uint32_t set_enable_bit24            : 1;
10518 		uint32_t set_enable_bit25            : 1;
10519 		uint32_t set_enable_bit26            : 1;
10520 		uint32_t set_enable_bit27            : 1;
10521 		uint32_t set_enable_bit28            : 1;
10522 		uint32_t set_enable_bit29            : 1;
10523 		uint32_t set_enable_bit30            : 1;
10524 		uint32_t set_enable_bit31            : 1;
10525 	} s;
10526 	/* struct ody_gicrx_isenabler1e_s cn; */
10527 };
10528 typedef union ody_gicrx_isenabler1e ody_gicrx_isenabler1e_t;
10529 
10530 static inline uint64_t ODY_GICRX_ISENABLER1E(uint64_t a) __attribute__ ((pure, always_inline));
10531 static inline uint64_t ODY_GICRX_ISENABLER1E(uint64_t a)
10532 {
10533 	if (a <= 81)
10534 		return 0x801000090104ll + 0x40000ll * ((a) & 0x7f);
10535 	__ody_csr_fatal("GICRX_ISENABLER1E", 1, a, 0, 0, 0, 0, 0);
10536 }
10537 
10538 #define typedef_ODY_GICRX_ISENABLER1E(a) ody_gicrx_isenabler1e_t
10539 #define bustype_ODY_GICRX_ISENABLER1E(a) CSR_TYPE_NCB32b
10540 #define basename_ODY_GICRX_ISENABLER1E(a) "GICRX_ISENABLER1E"
10541 #define device_bar_ODY_GICRX_ISENABLER1E(a) 0x0 /* PF_BAR0 */
10542 #define busnum_ODY_GICRX_ISENABLER1E(a) (a)
10543 #define arguments_ODY_GICRX_ISENABLER1E(a) (a), -1, -1, -1
10544 
10545 /**
10546  * Register (NCB32b) gicr#_iserrr0
10547  *
10548  * GICR Iserrr0 Register
10549  * The GICR0_ISERRR0 characteristics are:
10550  *
10551  * * Purpose
10552  *
10553  * This register indicates if the SGI or PPI data has been corrupted in the GCI RAM.
10554  * For testing purposes, software can use this register to set the error.
10555  *
10556  * * Usage constraints
10557  * Only accessible by Secure accesses or when GICD(A)_DS.DS == 1.
10558  */
10559 union ody_gicrx_iserrr0 {
10560 	uint32_t u;
10561 	struct ody_gicrx_iserrr0_s {
10562 		uint32_t valid_bit0                  : 1;
10563 		uint32_t valid_bit1                  : 1;
10564 		uint32_t valid_bit2                  : 1;
10565 		uint32_t valid_bit3                  : 1;
10566 		uint32_t valid_bit4                  : 1;
10567 		uint32_t valid_bit5                  : 1;
10568 		uint32_t valid_bit6                  : 1;
10569 		uint32_t valid_bit7                  : 1;
10570 		uint32_t valid_bit8                  : 1;
10571 		uint32_t valid_bit9                  : 1;
10572 		uint32_t valid_bit10                 : 1;
10573 		uint32_t valid_bit11                 : 1;
10574 		uint32_t valid_bit12                 : 1;
10575 		uint32_t valid_bit13                 : 1;
10576 		uint32_t valid_bit14                 : 1;
10577 		uint32_t valid_bit15                 : 1;
10578 		uint32_t valid_bit16                 : 1;
10579 		uint32_t valid_bit17                 : 1;
10580 		uint32_t valid_bit18                 : 1;
10581 		uint32_t valid_bit19                 : 1;
10582 		uint32_t valid_bit20                 : 1;
10583 		uint32_t valid_bit21                 : 1;
10584 		uint32_t valid_bit22                 : 1;
10585 		uint32_t valid_bit23                 : 1;
10586 		uint32_t valid_bit24                 : 1;
10587 		uint32_t valid_bit25                 : 1;
10588 		uint32_t valid_bit26                 : 1;
10589 		uint32_t valid_bit27                 : 1;
10590 		uint32_t valid_bit28                 : 1;
10591 		uint32_t valid_bit29                 : 1;
10592 		uint32_t valid_bit30                 : 1;
10593 		uint32_t valid_bit31                 : 1;
10594 	} s;
10595 	/* struct ody_gicrx_iserrr0_s cn; */
10596 };
10597 typedef union ody_gicrx_iserrr0 ody_gicrx_iserrr0_t;
10598 
10599 static inline uint64_t ODY_GICRX_ISERRR0(uint64_t a) __attribute__ ((pure, always_inline));
10600 static inline uint64_t ODY_GICRX_ISERRR0(uint64_t a)
10601 {
10602 	if (a <= 81)
10603 		return 0x80100009c180ll + 0x40000ll * ((a) & 0x7f);
10604 	__ody_csr_fatal("GICRX_ISERRR0", 1, a, 0, 0, 0, 0, 0);
10605 }
10606 
10607 #define typedef_ODY_GICRX_ISERRR0(a) ody_gicrx_iserrr0_t
10608 #define bustype_ODY_GICRX_ISERRR0(a) CSR_TYPE_NCB32b
10609 #define basename_ODY_GICRX_ISERRR0(a) "GICRX_ISERRR0"
10610 #define device_bar_ODY_GICRX_ISERRR0(a) 0x0 /* PF_BAR0 */
10611 #define busnum_ODY_GICRX_ISERRR0(a) (a)
10612 #define arguments_ODY_GICRX_ISERRR0(a) (a), -1, -1, -1
10613 
10614 /**
10615  * Register (NCB32b) gicr#_iserrr1e
10616  *
10617  * GICR Iserrr1e Register
10618  * The GICR0_ISERRR1E characteristics are:
10619  *
10620  * * Purpose
10621  *
10622  * This register indicates if extended range PPI data has been corrupted in the GCI
10623  * RAM. For testing purposes, software can use this register to set the error.
10624  *
10625  * * Usage constraints
10626  * Only accessible by Secure accesses or when GICD(A)_DS.DS == 1.
10627  */
10628 union ody_gicrx_iserrr1e {
10629 	uint32_t u;
10630 	struct ody_gicrx_iserrr1e_s {
10631 		uint32_t valid_bit0                  : 1;
10632 		uint32_t valid_bit1                  : 1;
10633 		uint32_t valid_bit2                  : 1;
10634 		uint32_t valid_bit3                  : 1;
10635 		uint32_t valid_bit4                  : 1;
10636 		uint32_t valid_bit5                  : 1;
10637 		uint32_t valid_bit6                  : 1;
10638 		uint32_t valid_bit7                  : 1;
10639 		uint32_t valid_bit8                  : 1;
10640 		uint32_t valid_bit9                  : 1;
10641 		uint32_t valid_bit10                 : 1;
10642 		uint32_t valid_bit11                 : 1;
10643 		uint32_t valid_bit12                 : 1;
10644 		uint32_t valid_bit13                 : 1;
10645 		uint32_t valid_bit14                 : 1;
10646 		uint32_t valid_bit15                 : 1;
10647 		uint32_t valid_bit16                 : 1;
10648 		uint32_t valid_bit17                 : 1;
10649 		uint32_t valid_bit18                 : 1;
10650 		uint32_t valid_bit19                 : 1;
10651 		uint32_t valid_bit20                 : 1;
10652 		uint32_t valid_bit21                 : 1;
10653 		uint32_t valid_bit22                 : 1;
10654 		uint32_t valid_bit23                 : 1;
10655 		uint32_t valid_bit24                 : 1;
10656 		uint32_t valid_bit25                 : 1;
10657 		uint32_t valid_bit26                 : 1;
10658 		uint32_t valid_bit27                 : 1;
10659 		uint32_t valid_bit28                 : 1;
10660 		uint32_t valid_bit29                 : 1;
10661 		uint32_t valid_bit30                 : 1;
10662 		uint32_t valid_bit31                 : 1;
10663 	} s;
10664 	/* struct ody_gicrx_iserrr1e_s cn; */
10665 };
10666 typedef union ody_gicrx_iserrr1e ody_gicrx_iserrr1e_t;
10667 
10668 static inline uint64_t ODY_GICRX_ISERRR1E(uint64_t a) __attribute__ ((pure, always_inline));
10669 static inline uint64_t ODY_GICRX_ISERRR1E(uint64_t a)
10670 {
10671 	if (a <= 81)
10672 		return 0x80100009c184ll + 0x40000ll * ((a) & 0x7f);
10673 	__ody_csr_fatal("GICRX_ISERRR1E", 1, a, 0, 0, 0, 0, 0);
10674 }
10675 
10676 #define typedef_ODY_GICRX_ISERRR1E(a) ody_gicrx_iserrr1e_t
10677 #define bustype_ODY_GICRX_ISERRR1E(a) CSR_TYPE_NCB32b
10678 #define basename_ODY_GICRX_ISERRR1E(a) "GICRX_ISERRR1E"
10679 #define device_bar_ODY_GICRX_ISERRR1E(a) 0x0 /* PF_BAR0 */
10680 #define busnum_ODY_GICRX_ISERRR1E(a) (a)
10681 #define arguments_ODY_GICRX_ISERRR1E(a) (a), -1, -1, -1
10682 
10683 /**
10684  * Register (NCB32b) gicr#_ispendr0
10685  *
10686  * GICR Ispendr0 Register
10687  * The GICR0_ISPENDR0 characteristics are:
10688  *
10689  * * Purpose
10690  * Adds the pending state to the corresponding SGI (IDs 0-15) or PPI (IDs 16-31).
10691  *
10692  * * Usage constraints
10693  * If GICD(A)_CTLR.DS==0, unless the GICR0_NSACR register permits Non-secure software
10694  * to control Group 0 and Secure Group 1 interrupts, any bits that correspond to Group
10695  * 0 or Secure Group 1 interrupts are accessible only by Secure accesses and are RAZ/WI
10696  * to Non-secure accesses.
10697  */
10698 union ody_gicrx_ispendr0 {
10699 	uint32_t u;
10700 	struct ody_gicrx_ispendr0_s {
10701 		uint32_t set_pending_bit0            : 1;
10702 		uint32_t set_pending_bit1            : 1;
10703 		uint32_t set_pending_bit2            : 1;
10704 		uint32_t set_pending_bit3            : 1;
10705 		uint32_t set_pending_bit4            : 1;
10706 		uint32_t set_pending_bit5            : 1;
10707 		uint32_t set_pending_bit6            : 1;
10708 		uint32_t set_pending_bit7            : 1;
10709 		uint32_t set_pending_bit8            : 1;
10710 		uint32_t set_pending_bit9            : 1;
10711 		uint32_t set_pending_bit10           : 1;
10712 		uint32_t set_pending_bit11           : 1;
10713 		uint32_t set_pending_bit12           : 1;
10714 		uint32_t set_pending_bit13           : 1;
10715 		uint32_t set_pending_bit14           : 1;
10716 		uint32_t set_pending_bit15           : 1;
10717 		uint32_t set_pending_bit16           : 1;
10718 		uint32_t set_pending_bit17           : 1;
10719 		uint32_t set_pending_bit18           : 1;
10720 		uint32_t set_pending_bit19           : 1;
10721 		uint32_t set_pending_bit20           : 1;
10722 		uint32_t set_pending_bit21           : 1;
10723 		uint32_t set_pending_bit22           : 1;
10724 		uint32_t set_pending_bit23           : 1;
10725 		uint32_t set_pending_bit24           : 1;
10726 		uint32_t set_pending_bit25           : 1;
10727 		uint32_t set_pending_bit26           : 1;
10728 		uint32_t set_pending_bit27           : 1;
10729 		uint32_t set_pending_bit28           : 1;
10730 		uint32_t set_pending_bit29           : 1;
10731 		uint32_t set_pending_bit30           : 1;
10732 		uint32_t set_pending_bit31           : 1;
10733 	} s;
10734 	/* struct ody_gicrx_ispendr0_s cn; */
10735 };
10736 typedef union ody_gicrx_ispendr0 ody_gicrx_ispendr0_t;
10737 
10738 static inline uint64_t ODY_GICRX_ISPENDR0(uint64_t a) __attribute__ ((pure, always_inline));
10739 static inline uint64_t ODY_GICRX_ISPENDR0(uint64_t a)
10740 {
10741 	if (a <= 81)
10742 		return 0x801000090200ll + 0x40000ll * ((a) & 0x7f);
10743 	__ody_csr_fatal("GICRX_ISPENDR0", 1, a, 0, 0, 0, 0, 0);
10744 }
10745 
10746 #define typedef_ODY_GICRX_ISPENDR0(a) ody_gicrx_ispendr0_t
10747 #define bustype_ODY_GICRX_ISPENDR0(a) CSR_TYPE_NCB32b
10748 #define basename_ODY_GICRX_ISPENDR0(a) "GICRX_ISPENDR0"
10749 #define device_bar_ODY_GICRX_ISPENDR0(a) 0x0 /* PF_BAR0 */
10750 #define busnum_ODY_GICRX_ISPENDR0(a) (a)
10751 #define arguments_ODY_GICRX_ISPENDR0(a) (a), -1, -1, -1
10752 
10753 /**
10754  * Register (NCB32b) gicr#_ispendr1e
10755  *
10756  * GICR Ispendr1e Register
10757  * The GICR0_ISPENDR1E characteristics are:
10758  *
10759  * * Purpose
10760  * Adds the pending state to the corresponding  extended range PPI.
10761  *
10762  * * Usage constraints
10763  * If GICD(A)_CTLR.DS==0, unless the GICR0_NSACR register permits Non-secure software
10764  * to control Group 0 and Secure Group 1 interrupts, any bits that correspond to Group
10765  * 0 or Secure Group 1 interrupts are accessible only by Secure accesses and are RAZ/WI
10766  * to Non-secure accesses.
10767  */
10768 union ody_gicrx_ispendr1e {
10769 	uint32_t u;
10770 	struct ody_gicrx_ispendr1e_s {
10771 		uint32_t set_pending_bit0            : 1;
10772 		uint32_t set_pending_bit1            : 1;
10773 		uint32_t set_pending_bit2            : 1;
10774 		uint32_t set_pending_bit3            : 1;
10775 		uint32_t set_pending_bit4            : 1;
10776 		uint32_t set_pending_bit5            : 1;
10777 		uint32_t set_pending_bit6            : 1;
10778 		uint32_t set_pending_bit7            : 1;
10779 		uint32_t set_pending_bit8            : 1;
10780 		uint32_t set_pending_bit9            : 1;
10781 		uint32_t set_pending_bit10           : 1;
10782 		uint32_t set_pending_bit11           : 1;
10783 		uint32_t set_pending_bit12           : 1;
10784 		uint32_t set_pending_bit13           : 1;
10785 		uint32_t set_pending_bit14           : 1;
10786 		uint32_t set_pending_bit15           : 1;
10787 		uint32_t set_pending_bit16           : 1;
10788 		uint32_t set_pending_bit17           : 1;
10789 		uint32_t set_pending_bit18           : 1;
10790 		uint32_t set_pending_bit19           : 1;
10791 		uint32_t set_pending_bit20           : 1;
10792 		uint32_t set_pending_bit21           : 1;
10793 		uint32_t set_pending_bit22           : 1;
10794 		uint32_t set_pending_bit23           : 1;
10795 		uint32_t set_pending_bit24           : 1;
10796 		uint32_t set_pending_bit25           : 1;
10797 		uint32_t set_pending_bit26           : 1;
10798 		uint32_t set_pending_bit27           : 1;
10799 		uint32_t set_pending_bit28           : 1;
10800 		uint32_t set_pending_bit29           : 1;
10801 		uint32_t set_pending_bit30           : 1;
10802 		uint32_t set_pending_bit31           : 1;
10803 	} s;
10804 	/* struct ody_gicrx_ispendr1e_s cn; */
10805 };
10806 typedef union ody_gicrx_ispendr1e ody_gicrx_ispendr1e_t;
10807 
10808 static inline uint64_t ODY_GICRX_ISPENDR1E(uint64_t a) __attribute__ ((pure, always_inline));
10809 static inline uint64_t ODY_GICRX_ISPENDR1E(uint64_t a)
10810 {
10811 	if (a <= 81)
10812 		return 0x801000090204ll + 0x40000ll * ((a) & 0x7f);
10813 	__ody_csr_fatal("GICRX_ISPENDR1E", 1, a, 0, 0, 0, 0, 0);
10814 }
10815 
10816 #define typedef_ODY_GICRX_ISPENDR1E(a) ody_gicrx_ispendr1e_t
10817 #define bustype_ODY_GICRX_ISPENDR1E(a) CSR_TYPE_NCB32b
10818 #define basename_ODY_GICRX_ISPENDR1E(a) "GICRX_ISPENDR1E"
10819 #define device_bar_ODY_GICRX_ISPENDR1E(a) 0x0 /* PF_BAR0 */
10820 #define busnum_ODY_GICRX_ISPENDR1E(a) (a)
10821 #define arguments_ODY_GICRX_ISPENDR1E(a) (a), -1, -1, -1
10822 
10823 /**
10824  * Register (NCB32b) gicr#_miscstatusr
10825  *
10826  * GICR Miscstatusr Register
10827  * The GICR0_MISCSTATUSR characteristics are:
10828  *
10829  * * Purpose
10830  * Use this register to test the integration of the cpu_active and wake_request input
10831  * signals. You can also use the register to debug the CPU interface enables as seen by
10832  * the GIC
10833  *
10834  * * Usage constraints
10835  * There are no usage constraints.
10836  */
10837 union ody_gicrx_miscstatusr {
10838 	uint32_t u;
10839 	struct ody_gicrx_miscstatusr_s {
10840 		uint32_t enablegrp0                  : 1;
10841 		uint32_t enablegrp1_ns               : 1;
10842 		uint32_t enablegrp1_s                : 1;
10843 		uint32_t reserved_3                  : 1;
10844 		uint32_t access_type                 : 1;
10845 		uint32_t reserved_5_29               : 25;
10846 		uint32_t wake_request                : 1;
10847 		uint32_t cpu_active                  : 1;
10848 	} s;
10849 	/* struct ody_gicrx_miscstatusr_s cn; */
10850 };
10851 typedef union ody_gicrx_miscstatusr ody_gicrx_miscstatusr_t;
10852 
10853 static inline uint64_t ODY_GICRX_MISCSTATUSR(uint64_t a) __attribute__ ((pure, always_inline));
10854 static inline uint64_t ODY_GICRX_MISCSTATUSR(uint64_t a)
10855 {
10856 	if (a <= 81)
10857 		return 0x80100009c000ll + 0x40000ll * ((a) & 0x7f);
10858 	__ody_csr_fatal("GICRX_MISCSTATUSR", 1, a, 0, 0, 0, 0, 0);
10859 }
10860 
10861 #define typedef_ODY_GICRX_MISCSTATUSR(a) ody_gicrx_miscstatusr_t
10862 #define bustype_ODY_GICRX_MISCSTATUSR(a) CSR_TYPE_NCB32b
10863 #define basename_ODY_GICRX_MISCSTATUSR(a) "GICRX_MISCSTATUSR"
10864 #define device_bar_ODY_GICRX_MISCSTATUSR(a) 0x0 /* PF_BAR0 */
10865 #define busnum_ODY_GICRX_MISCSTATUSR(a) (a)
10866 #define arguments_ODY_GICRX_MISCSTATUSR(a) (a), -1, -1, -1
10867 
10868 /**
10869  * Register (NCB32b) gicr#_mpamidr
10870  *
10871  * GICR Mpamidr Register
10872  * GICR() MPAMIDR
10873  * The GICR0_MPAMIDR characteristics are:
10874  *
10875  * * Purpose
10876  *
10877  * Reports the maximum supported PARTID and PMG values.
10878  *
10879  * * Usage constraints
10880  * There are no usage constraints.
10881  */
10882 union ody_gicrx_mpamidr {
10883 	uint32_t u;
10884 	struct ody_gicrx_mpamidr_s {
10885 		uint32_t partid_max                  : 9;
10886 		uint32_t reserved_9_15               : 7;
10887 		uint32_t pmg_max                     : 1;
10888 		uint32_t reserved_17_31              : 15;
10889 	} s;
10890 	/* struct ody_gicrx_mpamidr_s cn; */
10891 };
10892 typedef union ody_gicrx_mpamidr ody_gicrx_mpamidr_t;
10893 
10894 static inline uint64_t ODY_GICRX_MPAMIDR(uint64_t a) __attribute__ ((pure, always_inline));
10895 static inline uint64_t ODY_GICRX_MPAMIDR(uint64_t a)
10896 {
10897 	if (a <= 81)
10898 		return 0x801000080018ll + 0x40000ll * ((a) & 0x7f);
10899 	__ody_csr_fatal("GICRX_MPAMIDR", 1, a, 0, 0, 0, 0, 0);
10900 }
10901 
10902 #define typedef_ODY_GICRX_MPAMIDR(a) ody_gicrx_mpamidr_t
10903 #define bustype_ODY_GICRX_MPAMIDR(a) CSR_TYPE_NCB32b
10904 #define basename_ODY_GICRX_MPAMIDR(a) "GICRX_MPAMIDR"
10905 #define device_bar_ODY_GICRX_MPAMIDR(a) 0x0 /* PF_BAR0 */
10906 #define busnum_ODY_GICRX_MPAMIDR(a) (a)
10907 #define arguments_ODY_GICRX_MPAMIDR(a) (a), -1, -1, -1
10908 
10909 /**
10910  * Register (NCB32b) gicr#_nsacr
10911  *
10912  * GICR Nsacr Register
10913  * The GICR0_NSACR characteristics are:
10914  *
10915  * * Purpose
10916  * Enables Secure software to permit Non-secure software to create SGIs targeting the
10917  * PE connected to this Redistributor by writing to ICC_SGI1R_EL1, ICC_ASGI1R_EL1 or
10918  * ICC_SGI0R_EL1.
10919  *
10920  * * Usage constraints
10921  * When GICD_CTLR.DS == 1, this register is RAZ/WI.
10922  * When GICD_CTLR.DS == 0, this register is Secure, and is RAZ/WI to Non-secure accesses.
10923  *
10924  * * Configurations
10925  * A copy of this register is provided for each Redistributor.`
10926  */
10927 union ody_gicrx_nsacr {
10928 	uint32_t u;
10929 	struct ody_gicrx_nsacr_s {
10930 		uint32_t ns_access0                  : 2;
10931 		uint32_t ns_access1                  : 2;
10932 		uint32_t ns_access2                  : 2;
10933 		uint32_t ns_access3                  : 2;
10934 		uint32_t ns_access4                  : 2;
10935 		uint32_t ns_access5                  : 2;
10936 		uint32_t ns_access6                  : 2;
10937 		uint32_t ns_access7                  : 2;
10938 		uint32_t ns_access8                  : 2;
10939 		uint32_t ns_access9                  : 2;
10940 		uint32_t ns_access10                 : 2;
10941 		uint32_t ns_access11                 : 2;
10942 		uint32_t ns_access12                 : 2;
10943 		uint32_t ns_access13                 : 2;
10944 		uint32_t ns_access14                 : 2;
10945 		uint32_t ns_access15                 : 2;
10946 	} s;
10947 	/* struct ody_gicrx_nsacr_s cn; */
10948 };
10949 typedef union ody_gicrx_nsacr ody_gicrx_nsacr_t;
10950 
10951 static inline uint64_t ODY_GICRX_NSACR(uint64_t a) __attribute__ ((pure, always_inline));
10952 static inline uint64_t ODY_GICRX_NSACR(uint64_t a)
10953 {
10954 	if (a <= 81)
10955 		return 0x801000090e00ll + 0x40000ll * ((a) & 0x7f);
10956 	__ody_csr_fatal("GICRX_NSACR", 1, a, 0, 0, 0, 0, 0);
10957 }
10958 
10959 #define typedef_ODY_GICRX_NSACR(a) ody_gicrx_nsacr_t
10960 #define bustype_ODY_GICRX_NSACR(a) CSR_TYPE_NCB32b
10961 #define basename_ODY_GICRX_NSACR(a) "GICRX_NSACR"
10962 #define device_bar_ODY_GICRX_NSACR(a) 0x0 /* PF_BAR0 */
10963 #define busnum_ODY_GICRX_NSACR(a) (a)
10964 #define arguments_ODY_GICRX_NSACR(a) (a), -1, -1, -1
10965 
10966 /**
10967  * Register (NCB32b) gicr#_partidr
10968  *
10969  * GICR Partidr Register
10970  * GICR() PARTIDR
10971  * The GICR0_PARTIDR characteristics are:
10972  *
10973  * * Purpose
10974  *
10975  * Sets the PARTID and PMG values used for memory accesses by the Redistributor
10976  *
10977  * * Usage constraints
10978  * There are no usage constraints
10979  *
10980  * \> *Note*
10981  * \> This register is shared across all PEs on the GIC.
10982  */
10983 union ody_gicrx_partidr {
10984 	uint32_t u;
10985 	struct ody_gicrx_partidr_s {
10986 		uint32_t partid                      : 9;
10987 		uint32_t reserved_9_15               : 7;
10988 		uint32_t pmg                         : 1;
10989 		uint32_t reserved_17_31              : 15;
10990 	} s;
10991 	/* struct ody_gicrx_partidr_s cn; */
10992 };
10993 typedef union ody_gicrx_partidr ody_gicrx_partidr_t;
10994 
10995 static inline uint64_t ODY_GICRX_PARTIDR(uint64_t a) __attribute__ ((pure, always_inline));
10996 static inline uint64_t ODY_GICRX_PARTIDR(uint64_t a)
10997 {
10998 	if (a <= 81)
10999 		return 0x80100008001cll + 0x40000ll * ((a) & 0x7f);
11000 	__ody_csr_fatal("GICRX_PARTIDR", 1, a, 0, 0, 0, 0, 0);
11001 }
11002 
11003 #define typedef_ODY_GICRX_PARTIDR(a) ody_gicrx_partidr_t
11004 #define bustype_ODY_GICRX_PARTIDR(a) CSR_TYPE_NCB32b
11005 #define basename_ODY_GICRX_PARTIDR(a) "GICRX_PARTIDR"
11006 #define device_bar_ODY_GICRX_PARTIDR(a) 0x0 /* PF_BAR0 */
11007 #define busnum_ODY_GICRX_PARTIDR(a) (a)
11008 #define arguments_ODY_GICRX_PARTIDR(a) (a), -1, -1, -1
11009 
11010 /**
11011  * Register (NCB) gicr#_pendbaser
11012  *
11013  * GICR Pendbaser Register
11014  * The GICR0_PENDBASER characteristics are:
11015  *
11016  * * Purpose
11017  * Specifies the base address, Shareability and Cacheability of accesses to the LPI Pending table.
11018  *
11019  * * Usage constraints
11020  * A copy of this register is provided for each Redistributor, however, some fields are
11021  * shared according to GICR0_TYPER.CommonLPIAff and should be programmed to matching
11022  * values.
11023  */
11024 union ody_gicrx_pendbaser {
11025 	uint64_t u;
11026 	struct ody_gicrx_pendbaser_s {
11027 		uint64_t reserved_0_6                : 7;
11028 		uint64_t cacheability                : 3;
11029 		uint64_t shareability                : 2;
11030 		uint64_t reserved_12_15              : 4;
11031 		uint64_t physicaladdress             : 36;
11032 		uint64_t reserved_52_55              : 4;
11033 		uint64_t outercacheability           : 3;
11034 		uint64_t reserved_59_61              : 3;
11035 		uint64_t pendingtablezero            : 1;
11036 		uint64_t reserved_63                 : 1;
11037 	} s;
11038 	/* struct ody_gicrx_pendbaser_s cn; */
11039 };
11040 typedef union ody_gicrx_pendbaser ody_gicrx_pendbaser_t;
11041 
11042 static inline uint64_t ODY_GICRX_PENDBASER(uint64_t a) __attribute__ ((pure, always_inline));
11043 static inline uint64_t ODY_GICRX_PENDBASER(uint64_t a)
11044 {
11045 	if (a <= 81)
11046 		return 0x801000080078ll + 0x40000ll * ((a) & 0x7f);
11047 	__ody_csr_fatal("GICRX_PENDBASER", 1, a, 0, 0, 0, 0, 0);
11048 }
11049 
11050 #define typedef_ODY_GICRX_PENDBASER(a) ody_gicrx_pendbaser_t
11051 #define bustype_ODY_GICRX_PENDBASER(a) CSR_TYPE_NCB
11052 #define basename_ODY_GICRX_PENDBASER(a) "GICRX_PENDBASER"
11053 #define device_bar_ODY_GICRX_PENDBASER(a) 0x0 /* PF_BAR0 */
11054 #define busnum_ODY_GICRX_PENDBASER(a) (a)
11055 #define arguments_ODY_GICRX_PENDBASER(a) (a), -1, -1, -1
11056 
11057 /**
11058  * Register (NCB32b) gicr#_pidr0
11059  *
11060  * GICR Pidr0 Register
11061  * The GICR0_PIDR0 characteristics are:
11062  *
11063  * * Purpose
11064  * This register returns byte[0] of the peripheral ID of the GIC Redistributor page.
11065  *
11066  * * Usage constraints
11067  * There are no usage constraints.
11068  */
11069 union ody_gicrx_pidr0 {
11070 	uint32_t u;
11071 	struct ody_gicrx_pidr0_s {
11072 		uint32_t part_0                      : 8;
11073 		uint32_t reserved_8_31               : 24;
11074 	} s;
11075 	/* struct ody_gicrx_pidr0_s cn; */
11076 };
11077 typedef union ody_gicrx_pidr0 ody_gicrx_pidr0_t;
11078 
11079 static inline uint64_t ODY_GICRX_PIDR0(uint64_t a) __attribute__ ((pure, always_inline));
11080 static inline uint64_t ODY_GICRX_PIDR0(uint64_t a)
11081 {
11082 	if (a <= 81)
11083 		return 0x80100008ffe0ll + 0x40000ll * ((a) & 0x7f);
11084 	__ody_csr_fatal("GICRX_PIDR0", 1, a, 0, 0, 0, 0, 0);
11085 }
11086 
11087 #define typedef_ODY_GICRX_PIDR0(a) ody_gicrx_pidr0_t
11088 #define bustype_ODY_GICRX_PIDR0(a) CSR_TYPE_NCB32b
11089 #define basename_ODY_GICRX_PIDR0(a) "GICRX_PIDR0"
11090 #define device_bar_ODY_GICRX_PIDR0(a) 0x0 /* PF_BAR0 */
11091 #define busnum_ODY_GICRX_PIDR0(a) (a)
11092 #define arguments_ODY_GICRX_PIDR0(a) (a), -1, -1, -1
11093 
11094 /**
11095  * Register (NCB32b) gicr#_pidr1
11096  *
11097  * GICR Pidr1 Register
11098  * The GICR0_PIDR1 characteristics are:
11099  *
11100  * * Purpose
11101  * This register returns byte[1] of the peripheral ID of the GIC Redistributor page.
11102  *
11103  * * Usage constraints
11104  * There are no usage constraints.
11105  */
11106 union ody_gicrx_pidr1 {
11107 	uint32_t u;
11108 	struct ody_gicrx_pidr1_s {
11109 		uint32_t part_1                      : 4;
11110 		uint32_t des_0                       : 4;
11111 		uint32_t reserved_8_31               : 24;
11112 	} s;
11113 	/* struct ody_gicrx_pidr1_s cn; */
11114 };
11115 typedef union ody_gicrx_pidr1 ody_gicrx_pidr1_t;
11116 
11117 static inline uint64_t ODY_GICRX_PIDR1(uint64_t a) __attribute__ ((pure, always_inline));
11118 static inline uint64_t ODY_GICRX_PIDR1(uint64_t a)
11119 {
11120 	if (a <= 81)
11121 		return 0x80100008ffe4ll + 0x40000ll * ((a) & 0x7f);
11122 	__ody_csr_fatal("GICRX_PIDR1", 1, a, 0, 0, 0, 0, 0);
11123 }
11124 
11125 #define typedef_ODY_GICRX_PIDR1(a) ody_gicrx_pidr1_t
11126 #define bustype_ODY_GICRX_PIDR1(a) CSR_TYPE_NCB32b
11127 #define basename_ODY_GICRX_PIDR1(a) "GICRX_PIDR1"
11128 #define device_bar_ODY_GICRX_PIDR1(a) 0x0 /* PF_BAR0 */
11129 #define busnum_ODY_GICRX_PIDR1(a) (a)
11130 #define arguments_ODY_GICRX_PIDR1(a) (a), -1, -1, -1
11131 
11132 /**
11133  * Register (NCB32b) gicr#_pidr2
11134  *
11135  * GICR Pidr2 Register
11136  * The GICR0_PIDR2 characteristics are:
11137  *
11138  * * Purpose
11139  * This register returns byte[2] of the peripheral ID of the GIC Redistributor page.
11140  *
11141  * * Usage constraints
11142  * There are no usage constraints.
11143  */
11144 union ody_gicrx_pidr2 {
11145 	uint32_t u;
11146 	struct ody_gicrx_pidr2_s {
11147 		uint32_t des_1                       : 3;
11148 		uint32_t jedec                       : 1;
11149 		uint32_t revision                    : 4;
11150 		uint32_t reserved_8_31               : 24;
11151 	} s;
11152 	/* struct ody_gicrx_pidr2_s cn; */
11153 };
11154 typedef union ody_gicrx_pidr2 ody_gicrx_pidr2_t;
11155 
11156 static inline uint64_t ODY_GICRX_PIDR2(uint64_t a) __attribute__ ((pure, always_inline));
11157 static inline uint64_t ODY_GICRX_PIDR2(uint64_t a)
11158 {
11159 	if (a <= 81)
11160 		return 0x80100008ffe8ll + 0x40000ll * ((a) & 0x7f);
11161 	__ody_csr_fatal("GICRX_PIDR2", 1, a, 0, 0, 0, 0, 0);
11162 }
11163 
11164 #define typedef_ODY_GICRX_PIDR2(a) ody_gicrx_pidr2_t
11165 #define bustype_ODY_GICRX_PIDR2(a) CSR_TYPE_NCB32b
11166 #define basename_ODY_GICRX_PIDR2(a) "GICRX_PIDR2"
11167 #define device_bar_ODY_GICRX_PIDR2(a) 0x0 /* PF_BAR0 */
11168 #define busnum_ODY_GICRX_PIDR2(a) (a)
11169 #define arguments_ODY_GICRX_PIDR2(a) (a), -1, -1, -1
11170 
11171 /**
11172  * Register (NCB32b) gicr#_pidr3
11173  *
11174  * GICR Pidr3 Register
11175  * The GICR0_PIDR3 characteristics are:
11176  *
11177  * * Purpose
11178  * This register returns byte[3] of the peripheral ID of the GIC Redistributor page.
11179  *
11180  * * Usage constraints
11181  * There are no usage constraints.
11182  */
11183 union ody_gicrx_pidr3 {
11184 	uint32_t u;
11185 	struct ody_gicrx_pidr3_s {
11186 		uint32_t cmod                        : 3;
11187 		uint32_t reserved_3                  : 1;
11188 		uint32_t revand                      : 4;
11189 		uint32_t reserved_8_31               : 24;
11190 	} s;
11191 	/* struct ody_gicrx_pidr3_s cn; */
11192 };
11193 typedef union ody_gicrx_pidr3 ody_gicrx_pidr3_t;
11194 
11195 static inline uint64_t ODY_GICRX_PIDR3(uint64_t a) __attribute__ ((pure, always_inline));
11196 static inline uint64_t ODY_GICRX_PIDR3(uint64_t a)
11197 {
11198 	if (a <= 81)
11199 		return 0x80100008ffecll + 0x40000ll * ((a) & 0x7f);
11200 	__ody_csr_fatal("GICRX_PIDR3", 1, a, 0, 0, 0, 0, 0);
11201 }
11202 
11203 #define typedef_ODY_GICRX_PIDR3(a) ody_gicrx_pidr3_t
11204 #define bustype_ODY_GICRX_PIDR3(a) CSR_TYPE_NCB32b
11205 #define basename_ODY_GICRX_PIDR3(a) "GICRX_PIDR3"
11206 #define device_bar_ODY_GICRX_PIDR3(a) 0x0 /* PF_BAR0 */
11207 #define busnum_ODY_GICRX_PIDR3(a) (a)
11208 #define arguments_ODY_GICRX_PIDR3(a) (a), -1, -1, -1
11209 
11210 /**
11211  * Register (NCB32b) gicr#_pidr4
11212  *
11213  * GICR Pidr4 Register
11214  * The GICR0_PIDR4 characteristics are:
11215  *
11216  * * Purpose
11217  * This register returns byte[4] of the peripheral ID of the GIC Redistributor page.
11218  *
11219  * * Usage constraints
11220  * There are no usage constraints.
11221  */
11222 union ody_gicrx_pidr4 {
11223 	uint32_t u;
11224 	struct ody_gicrx_pidr4_s {
11225 		uint32_t des_2                       : 4;
11226 		uint32_t size                        : 4;
11227 		uint32_t reserved_8_31               : 24;
11228 	} s;
11229 	/* struct ody_gicrx_pidr4_s cn; */
11230 };
11231 typedef union ody_gicrx_pidr4 ody_gicrx_pidr4_t;
11232 
11233 static inline uint64_t ODY_GICRX_PIDR4(uint64_t a) __attribute__ ((pure, always_inline));
11234 static inline uint64_t ODY_GICRX_PIDR4(uint64_t a)
11235 {
11236 	if (a <= 81)
11237 		return 0x80100008ffd0ll + 0x40000ll * ((a) & 0x7f);
11238 	__ody_csr_fatal("GICRX_PIDR4", 1, a, 0, 0, 0, 0, 0);
11239 }
11240 
11241 #define typedef_ODY_GICRX_PIDR4(a) ody_gicrx_pidr4_t
11242 #define bustype_ODY_GICRX_PIDR4(a) CSR_TYPE_NCB32b
11243 #define basename_ODY_GICRX_PIDR4(a) "GICRX_PIDR4"
11244 #define device_bar_ODY_GICRX_PIDR4(a) 0x0 /* PF_BAR0 */
11245 #define busnum_ODY_GICRX_PIDR4(a) (a)
11246 #define arguments_ODY_GICRX_PIDR4(a) (a), -1, -1, -1
11247 
11248 /**
11249  * Register (NCB32b) gicr#_pidr5
11250  *
11251  * GICR Pidr5 Register
11252  * The GICR0_PIDR5 characteristics are:
11253  *
11254  * * Purpose
11255  * This register returns byte[5] of the peripheral ID of the GIC Redistributor page.
11256  *
11257  * * Usage constraints
11258  * There are no usage constraints.
11259  */
11260 union ody_gicrx_pidr5 {
11261 	uint32_t u;
11262 	struct ody_gicrx_pidr5_s {
11263 		uint32_t reserved_0_31               : 32;
11264 	} s;
11265 	struct ody_gicrx_pidr5_cn {
11266 		uint32_t reserved_0_7                : 8;
11267 		uint32_t reserved_8_31               : 24;
11268 	} cn;
11269 };
11270 typedef union ody_gicrx_pidr5 ody_gicrx_pidr5_t;
11271 
11272 static inline uint64_t ODY_GICRX_PIDR5(uint64_t a) __attribute__ ((pure, always_inline));
11273 static inline uint64_t ODY_GICRX_PIDR5(uint64_t a)
11274 {
11275 	if (a <= 81)
11276 		return 0x80100008ffd4ll + 0x40000ll * ((a) & 0x7f);
11277 	__ody_csr_fatal("GICRX_PIDR5", 1, a, 0, 0, 0, 0, 0);
11278 }
11279 
11280 #define typedef_ODY_GICRX_PIDR5(a) ody_gicrx_pidr5_t
11281 #define bustype_ODY_GICRX_PIDR5(a) CSR_TYPE_NCB32b
11282 #define basename_ODY_GICRX_PIDR5(a) "GICRX_PIDR5"
11283 #define device_bar_ODY_GICRX_PIDR5(a) 0x0 /* PF_BAR0 */
11284 #define busnum_ODY_GICRX_PIDR5(a) (a)
11285 #define arguments_ODY_GICRX_PIDR5(a) (a), -1, -1, -1
11286 
11287 /**
11288  * Register (NCB32b) gicr#_pidr6
11289  *
11290  * GICR Pidr6 Register
11291  * The GICR0_PIDR6 characteristics are:
11292  *
11293  * * Purpose
11294  * This register returns byte[6] of the peripheral ID of the GIC Redistributor page.
11295  *
11296  * * Usage constraints
11297  * There are no usage constraints.
11298  */
11299 union ody_gicrx_pidr6 {
11300 	uint32_t u;
11301 	struct ody_gicrx_pidr6_s {
11302 		uint32_t reserved_0_31               : 32;
11303 	} s;
11304 	struct ody_gicrx_pidr6_cn {
11305 		uint32_t reserved_0_7                : 8;
11306 		uint32_t reserved_8_31               : 24;
11307 	} cn;
11308 };
11309 typedef union ody_gicrx_pidr6 ody_gicrx_pidr6_t;
11310 
11311 static inline uint64_t ODY_GICRX_PIDR6(uint64_t a) __attribute__ ((pure, always_inline));
11312 static inline uint64_t ODY_GICRX_PIDR6(uint64_t a)
11313 {
11314 	if (a <= 81)
11315 		return 0x80100008ffd8ll + 0x40000ll * ((a) & 0x7f);
11316 	__ody_csr_fatal("GICRX_PIDR6", 1, a, 0, 0, 0, 0, 0);
11317 }
11318 
11319 #define typedef_ODY_GICRX_PIDR6(a) ody_gicrx_pidr6_t
11320 #define bustype_ODY_GICRX_PIDR6(a) CSR_TYPE_NCB32b
11321 #define basename_ODY_GICRX_PIDR6(a) "GICRX_PIDR6"
11322 #define device_bar_ODY_GICRX_PIDR6(a) 0x0 /* PF_BAR0 */
11323 #define busnum_ODY_GICRX_PIDR6(a) (a)
11324 #define arguments_ODY_GICRX_PIDR6(a) (a), -1, -1, -1
11325 
11326 /**
11327  * Register (NCB32b) gicr#_pidr7
11328  *
11329  * GICR Pidr7 Register
11330  * The GICR0_PIDR7 characteristics are:
11331  *
11332  * * Purpose
11333  * This register returns byte[7] of the peripheral ID of the GIC Redistributor page.
11334  *
11335  * * Usage constraints
11336  * There are no usage constraints.
11337  */
11338 union ody_gicrx_pidr7 {
11339 	uint32_t u;
11340 	struct ody_gicrx_pidr7_s {
11341 		uint32_t reserved_0_31               : 32;
11342 	} s;
11343 	struct ody_gicrx_pidr7_cn {
11344 		uint32_t reserved_0_7                : 8;
11345 		uint32_t reserved_8_31               : 24;
11346 	} cn;
11347 };
11348 typedef union ody_gicrx_pidr7 ody_gicrx_pidr7_t;
11349 
11350 static inline uint64_t ODY_GICRX_PIDR7(uint64_t a) __attribute__ ((pure, always_inline));
11351 static inline uint64_t ODY_GICRX_PIDR7(uint64_t a)
11352 {
11353 	if (a <= 81)
11354 		return 0x80100008ffdcll + 0x40000ll * ((a) & 0x7f);
11355 	__ody_csr_fatal("GICRX_PIDR7", 1, a, 0, 0, 0, 0, 0);
11356 }
11357 
11358 #define typedef_ODY_GICRX_PIDR7(a) ody_gicrx_pidr7_t
11359 #define bustype_ODY_GICRX_PIDR7(a) CSR_TYPE_NCB32b
11360 #define basename_ODY_GICRX_PIDR7(a) "GICRX_PIDR7"
11361 #define device_bar_ODY_GICRX_PIDR7(a) 0x0 /* PF_BAR0 */
11362 #define busnum_ODY_GICRX_PIDR7(a) (a)
11363 #define arguments_ODY_GICRX_PIDR7(a) (a), -1, -1, -1
11364 
11365 /**
11366  * Register (NCB) gicr#_propbaser
11367  *
11368  * GICR Propbaser Register
11369  * The GICR0_PROPBASER characteristics are:
11370  *
11371  * * Purpose
11372  * Specifies the base address,  Shareability and Cacheability of accesses to the LPI
11373  * Configuration table.
11374  *
11375  * * Usage constraints
11376  * A copy of this register is provided for each Redistributor, however, the state is
11377  * shared according to GICR0_TYPER.CommonLPIAff and should be programmed to matching
11378  * values.
11379  */
11380 union ody_gicrx_propbaser {
11381 	uint64_t u;
11382 	struct ody_gicrx_propbaser_s {
11383 		uint64_t idbits                      : 5;
11384 		uint64_t reserved_5_6                : 2;
11385 		uint64_t cacheability                : 3;
11386 		uint64_t shareability                : 2;
11387 		uint64_t physicaladdress             : 40;
11388 		uint64_t reserved_52_55              : 4;
11389 		uint64_t outercacheability           : 3;
11390 		uint64_t reserved_59_63              : 5;
11391 	} s;
11392 	/* struct ody_gicrx_propbaser_s cn; */
11393 };
11394 typedef union ody_gicrx_propbaser ody_gicrx_propbaser_t;
11395 
11396 static inline uint64_t ODY_GICRX_PROPBASER(uint64_t a) __attribute__ ((pure, always_inline));
11397 static inline uint64_t ODY_GICRX_PROPBASER(uint64_t a)
11398 {
11399 	if (a <= 81)
11400 		return 0x801000080070ll + 0x40000ll * ((a) & 0x7f);
11401 	__ody_csr_fatal("GICRX_PROPBASER", 1, a, 0, 0, 0, 0, 0);
11402 }
11403 
11404 #define typedef_ODY_GICRX_PROPBASER(a) ody_gicrx_propbaser_t
11405 #define bustype_ODY_GICRX_PROPBASER(a) CSR_TYPE_NCB
11406 #define basename_ODY_GICRX_PROPBASER(a) "GICRX_PROPBASER"
11407 #define device_bar_ODY_GICRX_PROPBASER(a) 0x0 /* PF_BAR0 */
11408 #define busnum_ODY_GICRX_PROPBASER(a) (a)
11409 #define arguments_ODY_GICRX_PROPBASER(a) (a), -1, -1, -1
11410 
11411 /**
11412  * Register (NCB32b) gicr#_pwrr
11413  *
11414  * GICR Pwrr Register
11415  * The GICR0_PWRR characteristics are:
11416  *
11417  * * Purpose
11418  * This register controls the powerup sequence of the Redistributors. Software must
11419  * write to this register during the powerup sequence.
11420  *
11421  * * Usage constraints
11422  * Only accessible by Secure accesses or when GICD(A)_DS.DS == 1.
11423  */
11424 union ody_gicrx_pwrr {
11425 	uint32_t u;
11426 	struct ody_gicrx_pwrr_s {
11427 		uint32_t rdpd                        : 1;
11428 		uint32_t rdag                        : 1;
11429 		uint32_t rdgpd                       : 1;
11430 		uint32_t rdgpo                       : 1;
11431 		uint32_t reserved_4_7                : 4;
11432 		uint32_t rdgo                        : 7;
11433 		uint32_t rdg                         : 9;
11434 		uint32_t reserved_24_31              : 8;
11435 	} s;
11436 	/* struct ody_gicrx_pwrr_s cn; */
11437 };
11438 typedef union ody_gicrx_pwrr ody_gicrx_pwrr_t;
11439 
11440 static inline uint64_t ODY_GICRX_PWRR(uint64_t a) __attribute__ ((pure, always_inline));
11441 static inline uint64_t ODY_GICRX_PWRR(uint64_t a)
11442 {
11443 	if (a <= 81)
11444 		return 0x801000080024ll + 0x40000ll * ((a) & 0x7f);
11445 	__ody_csr_fatal("GICRX_PWRR", 1, a, 0, 0, 0, 0, 0);
11446 }
11447 
11448 #define typedef_ODY_GICRX_PWRR(a) ody_gicrx_pwrr_t
11449 #define bustype_ODY_GICRX_PWRR(a) CSR_TYPE_NCB32b
11450 #define basename_ODY_GICRX_PWRR(a) "GICRX_PWRR"
11451 #define device_bar_ODY_GICRX_PWRR(a) 0x0 /* PF_BAR0 */
11452 #define busnum_ODY_GICRX_PWRR(a) (a)
11453 #define arguments_ODY_GICRX_PWRR(a) (a), -1, -1, -1
11454 
11455 /**
11456  * Register (NCB) gicr#_sgidr
11457  *
11458  * GICR Sgidr Register
11459  * The GICR0_SGIDR characteristics are:
11460  *
11461  * * Purpose
11462  * This register controls the default value of SGI settings, for use in the case of a
11463  * Double-bit Error Detect Error (DEDERR).
11464  *
11465  * * Usage constraints
11466  * Only accessible by Secure accesses or when GICD(A)_DS.DS == 1.
11467  *
11468  * \> *Note*
11469  * \> This register is shared across all PEs on the GIC
11470  */
11471 union ody_gicrx_sgidr {
11472 	uint64_t u;
11473 	struct ody_gicrx_sgidr_s {
11474 		uint64_t nsacr0                      : 1;
11475 		uint64_t grp0                        : 1;
11476 		uint64_t grpmod0                     : 1;
11477 		uint64_t reserved_3                  : 1;
11478 		uint64_t nsacr1                      : 1;
11479 		uint64_t grp1                        : 1;
11480 		uint64_t grpmod1                     : 1;
11481 		uint64_t reserved_7                  : 1;
11482 		uint64_t nsacr2                      : 1;
11483 		uint64_t grp2                        : 1;
11484 		uint64_t grpmod2                     : 1;
11485 		uint64_t reserved_11                 : 1;
11486 		uint64_t nsacr3                      : 1;
11487 		uint64_t grp3                        : 1;
11488 		uint64_t grpmod3                     : 1;
11489 		uint64_t reserved_15                 : 1;
11490 		uint64_t nsacr4                      : 1;
11491 		uint64_t grp4                        : 1;
11492 		uint64_t grpmod4                     : 1;
11493 		uint64_t reserved_19                 : 1;
11494 		uint64_t nsacr5                      : 1;
11495 		uint64_t grp5                        : 1;
11496 		uint64_t grpmod5                     : 1;
11497 		uint64_t reserved_23                 : 1;
11498 		uint64_t nsacr6                      : 1;
11499 		uint64_t grp6                        : 1;
11500 		uint64_t grpmod6                     : 1;
11501 		uint64_t reserved_27                 : 1;
11502 		uint64_t nsacr7                      : 1;
11503 		uint64_t grp7                        : 1;
11504 		uint64_t grpmod7                     : 1;
11505 		uint64_t reserved_31                 : 1;
11506 		uint64_t nsacr8                      : 1;
11507 		uint64_t grp8                        : 1;
11508 		uint64_t grpmod8                     : 1;
11509 		uint64_t reserved_35                 : 1;
11510 		uint64_t nsacr9                      : 1;
11511 		uint64_t grp9                        : 1;
11512 		uint64_t grpmod9                     : 1;
11513 		uint64_t reserved_39                 : 1;
11514 		uint64_t nsacr10                     : 1;
11515 		uint64_t grp10                       : 1;
11516 		uint64_t grpmod10                    : 1;
11517 		uint64_t reserved_43                 : 1;
11518 		uint64_t nsacr11                     : 1;
11519 		uint64_t grp11                       : 1;
11520 		uint64_t grpmod11                    : 1;
11521 		uint64_t reserved_47                 : 1;
11522 		uint64_t nsacr12                     : 1;
11523 		uint64_t grp12                       : 1;
11524 		uint64_t grpmod12                    : 1;
11525 		uint64_t reserved_51                 : 1;
11526 		uint64_t nsacr13                     : 1;
11527 		uint64_t grp13                       : 1;
11528 		uint64_t grpmod13                    : 1;
11529 		uint64_t reserved_55                 : 1;
11530 		uint64_t nsacr14                     : 1;
11531 		uint64_t grp14                       : 1;
11532 		uint64_t grpmod14                    : 1;
11533 		uint64_t reserved_59                 : 1;
11534 		uint64_t nsacr15                     : 1;
11535 		uint64_t grp15                       : 1;
11536 		uint64_t grpmod15                    : 1;
11537 		uint64_t reserved_63                 : 1;
11538 	} s;
11539 	/* struct ody_gicrx_sgidr_s cn; */
11540 };
11541 typedef union ody_gicrx_sgidr ody_gicrx_sgidr_t;
11542 
11543 static inline uint64_t ODY_GICRX_SGIDR(uint64_t a) __attribute__ ((pure, always_inline));
11544 static inline uint64_t ODY_GICRX_SGIDR(uint64_t a)
11545 {
11546 	if (a <= 81)
11547 		return 0x80100009c010ll + 0x40000ll * ((a) & 0x7f);
11548 	__ody_csr_fatal("GICRX_SGIDR", 1, a, 0, 0, 0, 0, 0);
11549 }
11550 
11551 #define typedef_ODY_GICRX_SGIDR(a) ody_gicrx_sgidr_t
11552 #define bustype_ODY_GICRX_SGIDR(a) CSR_TYPE_NCB
11553 #define basename_ODY_GICRX_SGIDR(a) "GICRX_SGIDR"
11554 #define device_bar_ODY_GICRX_SGIDR(a) 0x0 /* PF_BAR0 */
11555 #define busnum_ODY_GICRX_SGIDR(a) (a)
11556 #define arguments_ODY_GICRX_SGIDR(a) (a), -1, -1, -1
11557 
11558 /**
11559  * Register (NCB32b) gicr#_statusr
11560  *
11561  * GICR Statusr Register
11562  * The GICR0_STATUS characteristics are:
11563  *
11564  * * Purpose
11565  * This register is not used.
11566  *
11567  * See the GICT register page for details of error reporting by the GIC
11568  *
11569  * * Usage constraints
11570  * There are no usage constraints.
11571  */
11572 union ody_gicrx_statusr {
11573 	uint32_t u;
11574 	struct ody_gicrx_statusr_s {
11575 		uint32_t reserved_0_31               : 32;
11576 	} s;
11577 	/* struct ody_gicrx_statusr_s cn; */
11578 };
11579 typedef union ody_gicrx_statusr ody_gicrx_statusr_t;
11580 
11581 static inline uint64_t ODY_GICRX_STATUSR(uint64_t a) __attribute__ ((pure, always_inline));
11582 static inline uint64_t ODY_GICRX_STATUSR(uint64_t a)
11583 {
11584 	if (a <= 81)
11585 		return 0x801000080010ll + 0x40000ll * ((a) & 0x7f);
11586 	__ody_csr_fatal("GICRX_STATUSR", 1, a, 0, 0, 0, 0, 0);
11587 }
11588 
11589 #define typedef_ODY_GICRX_STATUSR(a) ody_gicrx_statusr_t
11590 #define bustype_ODY_GICRX_STATUSR(a) CSR_TYPE_NCB32b
11591 #define basename_ODY_GICRX_STATUSR(a) "GICRX_STATUSR"
11592 #define device_bar_ODY_GICRX_STATUSR(a) 0x0 /* PF_BAR0 */
11593 #define busnum_ODY_GICRX_STATUSR(a) (a)
11594 #define arguments_ODY_GICRX_STATUSR(a) (a), -1, -1, -1
11595 
11596 /**
11597  * Register (NCB32b) gicr#_syncr
11598  *
11599  * GICR Syncr Register
11600  * The GICR0_SYNCR characteristics are:
11601  *
11602  * * Purpose
11603  * Indicates completion of register based invalidation operations.
11604  *
11605  * * Usage constraints
11606  * None
11607  *
11608  * A copy of this register is provided for each Redistributor.
11609  */
11610 union ody_gicrx_syncr {
11611 	uint32_t u;
11612 	struct ody_gicrx_syncr_s {
11613 		uint32_t busy                        : 1;
11614 		uint32_t reserved_1_31               : 31;
11615 	} s;
11616 	/* struct ody_gicrx_syncr_s cn; */
11617 };
11618 typedef union ody_gicrx_syncr ody_gicrx_syncr_t;
11619 
11620 static inline uint64_t ODY_GICRX_SYNCR(uint64_t a) __attribute__ ((pure, always_inline));
11621 static inline uint64_t ODY_GICRX_SYNCR(uint64_t a)
11622 {
11623 	if (a <= 81)
11624 		return 0x8010000800c0ll + 0x40000ll * ((a) & 0x7f);
11625 	__ody_csr_fatal("GICRX_SYNCR", 1, a, 0, 0, 0, 0, 0);
11626 }
11627 
11628 #define typedef_ODY_GICRX_SYNCR(a) ody_gicrx_syncr_t
11629 #define bustype_ODY_GICRX_SYNCR(a) CSR_TYPE_NCB32b
11630 #define basename_ODY_GICRX_SYNCR(a) "GICRX_SYNCR"
11631 #define device_bar_ODY_GICRX_SYNCR(a) 0x0 /* PF_BAR0 */
11632 #define busnum_ODY_GICRX_SYNCR(a) (a)
11633 #define arguments_ODY_GICRX_SYNCR(a) (a), -1, -1, -1
11634 
11635 /**
11636  * Register (NCB) gicr#_typer
11637  *
11638  * GICR Typer Register
11639  * The GICR0_TYPER characteristics are:
11640  *
11641  * * Purpose
11642  * Provides information about the configuration of this Redistributor.
11643  *
11644  * * Usage constraints
11645  * There are no usage constraints
11646  */
11647 union ody_gicrx_typer {
11648 	uint64_t u;
11649 	struct ody_gicrx_typer_s {
11650 		uint64_t plpis                       : 1;
11651 		uint64_t vlpis                       : 1;
11652 		uint64_t dirty                       : 1;
11653 		uint64_t directlpi                   : 1;
11654 		uint64_t last                        : 1;
11655 		uint64_t dpgs                        : 1;
11656 		uint64_t mpam                        : 1;
11657 		uint64_t rvpeid                      : 1;
11658 		uint64_t processornumber             : 16;
11659 		uint64_t commonlpiaff                : 2;
11660 		uint64_t vsgi                        : 1;
11661 		uint64_t ppinum                      : 5;
11662 		uint64_t affinityvalue               : 32;
11663 	} s;
11664 	/* struct ody_gicrx_typer_s cn; */
11665 };
11666 typedef union ody_gicrx_typer ody_gicrx_typer_t;
11667 
11668 static inline uint64_t ODY_GICRX_TYPER(uint64_t a) __attribute__ ((pure, always_inline));
11669 static inline uint64_t ODY_GICRX_TYPER(uint64_t a)
11670 {
11671 	if (a <= 81)
11672 		return 0x801000080008ll + 0x40000ll * ((a) & 0x7f);
11673 	__ody_csr_fatal("GICRX_TYPER", 1, a, 0, 0, 0, 0, 0);
11674 }
11675 
11676 #define typedef_ODY_GICRX_TYPER(a) ody_gicrx_typer_t
11677 #define bustype_ODY_GICRX_TYPER(a) CSR_TYPE_NCB
11678 #define basename_ODY_GICRX_TYPER(a) "GICRX_TYPER"
11679 #define device_bar_ODY_GICRX_TYPER(a) 0x0 /* PF_BAR0 */
11680 #define busnum_ODY_GICRX_TYPER(a) (a)
11681 #define arguments_ODY_GICRX_TYPER(a) (a), -1, -1, -1
11682 
11683 /**
11684  * Register (NCB) gicr#_vcfgbaser
11685  *
11686  * GICR Vcfgbaser Register
11687  * The GICR0_VCFGBASER characteristics are:
11688  *
11689  * * Purpose
11690  * This register returns the access attributes of the vPE CFG table.
11691  *
11692  * * Usage constraints
11693  * There are no usage constraints.
11694  */
11695 union ody_gicrx_vcfgbaser {
11696 	uint64_t u;
11697 	struct ody_gicrx_vcfgbaser_s {
11698 		uint64_t size                        : 7;
11699 		uint64_t innercache                  : 3;
11700 		uint64_t shareability                : 2;
11701 		uint64_t addr                        : 40;
11702 		uint64_t reserved_52                 : 1;
11703 		uint64_t page_size                   : 2;
11704 		uint64_t indirect                    : 1;
11705 		uint64_t outercache                  : 3;
11706 		uint64_t entry_size                  : 3;
11707 		uint64_t sleep                       : 1;
11708 		uint64_t valid                       : 1;
11709 	} s;
11710 	/* struct ody_gicrx_vcfgbaser_s cn; */
11711 };
11712 typedef union ody_gicrx_vcfgbaser ody_gicrx_vcfgbaser_t;
11713 
11714 static inline uint64_t ODY_GICRX_VCFGBASER(uint64_t a) __attribute__ ((pure, always_inline));
11715 static inline uint64_t ODY_GICRX_VCFGBASER(uint64_t a)
11716 {
11717 	if (a <= 81)
11718 		return 0x8010000ac100ll + 0x40000ll * ((a) & 0x7f);
11719 	__ody_csr_fatal("GICRX_VCFGBASER", 1, a, 0, 0, 0, 0, 0);
11720 }
11721 
11722 #define typedef_ODY_GICRX_VCFGBASER(a) ody_gicrx_vcfgbaser_t
11723 #define bustype_ODY_GICRX_VCFGBASER(a) CSR_TYPE_NCB
11724 #define basename_ODY_GICRX_VCFGBASER(a) "GICRX_VCFGBASER"
11725 #define device_bar_ODY_GICRX_VCFGBASER(a) 0x0 /* PF_BAR0 */
11726 #define busnum_ODY_GICRX_VCFGBASER(a) (a)
11727 #define arguments_ODY_GICRX_VCFGBASER(a) (a), -1, -1, -1
11728 
11729 /**
11730  * Register (NCB) gicr#_verrr
11731  *
11732  * GICR Verrr Register
11733  * The GICR_VERRR characteristics are:
11734  *
11735  * * Purpose
11736  * This register can set and clear the error bit for a vPE in the vICM RAM.
11737  * You can use the register to find vPEs with an error and obtain vPE information from
11738  * the vTGT and VICM RAMs.
11739  *
11740  * * Usage constraints
11741  * Only accessible using a 64-bit access.
11742  */
11743 union ody_gicrx_verrr {
11744 	uint64_t u;
11745 	struct ody_gicrx_verrr_s {
11746 		uint64_t vpeid                       : 11;
11747 		uint64_t reserved_11_13              : 3;
11748 		uint64_t readblock                   : 3;
11749 		uint64_t reserved_17_59              : 43;
11750 		uint64_t opcode                      : 2;
11751 		uint64_t response                    : 1;
11752 		uint64_t busy                        : 1;
11753 	} s;
11754 	/* struct ody_gicrx_verrr_s cn; */
11755 };
11756 typedef union ody_gicrx_verrr ody_gicrx_verrr_t;
11757 
11758 static inline uint64_t ODY_GICRX_VERRR(uint64_t a) __attribute__ ((pure, always_inline));
11759 static inline uint64_t ODY_GICRX_VERRR(uint64_t a)
11760 {
11761 	if (a <= 81)
11762 		return 0x8010000ae100ll + 0x40000ll * ((a) & 0x7f);
11763 	__ody_csr_fatal("GICRX_VERRR", 1, a, 0, 0, 0, 0, 0);
11764 }
11765 
11766 #define typedef_ODY_GICRX_VERRR(a) ody_gicrx_verrr_t
11767 #define bustype_ODY_GICRX_VERRR(a) CSR_TYPE_NCB
11768 #define basename_ODY_GICRX_VERRR(a) "GICRX_VERRR"
11769 #define device_bar_ODY_GICRX_VERRR(a) 0x0 /* PF_BAR0 */
11770 #define busnum_ODY_GICRX_VERRR(a) (a)
11771 #define arguments_ODY_GICRX_VERRR(a) (a), -1, -1, -1
11772 
11773 /**
11774  * Register (NCB32b) gicr#_vfctlr
11775  *
11776  * GICR Vfctlr Register
11777  * The GICR0_VFCTLR characteristics are:
11778  *
11779  * * Purpose
11780  * This register controls the non-Architectural features associated with virtual
11781  * interrupts in the GIC.
11782  *
11783  * * Usage constraints
11784  * Only accessible by Secure accesses or when GICD(A)_DS.DS == 1.
11785  */
11786 union ody_gicrx_vfctlr {
11787 	uint32_t u;
11788 	struct ody_gicrx_vfctlr_s {
11789 		uint32_t credlim                     : 1;
11790 		uint32_t sgilim                      : 1;
11791 		uint32_t lpilim                      : 1;
11792 		uint32_t credlimcount                : 2;
11793 		uint32_t reserved_5_31               : 27;
11794 	} s;
11795 	struct ody_gicrx_vfctlr_cn {
11796 		uint32_t credlim                     : 1;
11797 		uint32_t sgilim                      : 1;
11798 		uint32_t lpilim                      : 1;
11799 		uint32_t credlimcount                : 2;
11800 		uint32_t reserved_5_8                : 4;
11801 		uint32_t reserved_9                  : 1;
11802 		uint32_t reserved_10_31              : 22;
11803 	} cn;
11804 };
11805 typedef union ody_gicrx_vfctlr ody_gicrx_vfctlr_t;
11806 
11807 static inline uint64_t ODY_GICRX_VFCTLR(uint64_t a) __attribute__ ((pure, always_inline));
11808 static inline uint64_t ODY_GICRX_VFCTLR(uint64_t a)
11809 {
11810 	if (a <= 81)
11811 		return 0x8010000ac000ll + 0x40000ll * ((a) & 0x7f);
11812 	__ody_csr_fatal("GICRX_VFCTLR", 1, a, 0, 0, 0, 0, 0);
11813 }
11814 
11815 #define typedef_ODY_GICRX_VFCTLR(a) ody_gicrx_vfctlr_t
11816 #define bustype_ODY_GICRX_VFCTLR(a) CSR_TYPE_NCB32b
11817 #define basename_ODY_GICRX_VFCTLR(a) "GICRX_VFCTLR"
11818 #define device_bar_ODY_GICRX_VFCTLR(a) 0x0 /* PF_BAR0 */
11819 #define busnum_ODY_GICRX_VFCTLR(a) (a)
11820 #define arguments_ODY_GICRX_VFCTLR(a) (a), -1, -1, -1
11821 
11822 /**
11823  * Register (NCB32b) gicr#_vinvchipr
11824  *
11825  * GICR Vinvchipr Register
11826  * The GICR_VINVCHIPR characteristics are:
11827  *
11828  * * Purpose
11829  *
11830  * This register is RES0.
11831  */
11832 union ody_gicrx_vinvchipr {
11833 	uint32_t u;
11834 	struct ody_gicrx_vinvchipr_s {
11835 		uint32_t chiplist                    : 1;
11836 		uint32_t reserved_1_29               : 29;
11837 		uint32_t vid                         : 1;
11838 		uint32_t valid                       : 1;
11839 	} s;
11840 	/* struct ody_gicrx_vinvchipr_s cn; */
11841 };
11842 typedef union ody_gicrx_vinvchipr ody_gicrx_vinvchipr_t;
11843 
11844 static inline uint64_t ODY_GICRX_VINVCHIPR(uint64_t a) __attribute__ ((pure, always_inline));
11845 static inline uint64_t ODY_GICRX_VINVCHIPR(uint64_t a)
11846 {
11847 	if (a <= 81)
11848 		return 0x8010000a0120ll + 0x40000ll * ((a) & 0x7f);
11849 	__ody_csr_fatal("GICRX_VINVCHIPR", 1, a, 0, 0, 0, 0, 0);
11850 }
11851 
11852 #define typedef_ODY_GICRX_VINVCHIPR(a) ody_gicrx_vinvchipr_t
11853 #define bustype_ODY_GICRX_VINVCHIPR(a) CSR_TYPE_NCB32b
11854 #define basename_ODY_GICRX_VINVCHIPR(a) "GICRX_VINVCHIPR"
11855 #define device_bar_ODY_GICRX_VINVCHIPR(a) 0x0 /* PF_BAR0 */
11856 #define busnum_ODY_GICRX_VINVCHIPR(a) (a)
11857 #define arguments_ODY_GICRX_VINVCHIPR(a) (a), -1, -1, -1
11858 
11859 /**
11860  * Register (NCB) gicr#_vpendbaser
11861  *
11862  * GICR Vpendbaser Register
11863  * The GICR0_VPENDBASER characteristics are:
11864  *
11865  * * Purpose
11866  * Specifies the base address of the memory that holds the virtual LPI Pending table
11867  * for the currently scheduled virtual machine.
11868  *
11869  * * Usage constraints
11870  * There are no usage constraints.
11871  */
11872 union ody_gicrx_vpendbaser {
11873 	uint64_t u;
11874 	struct ody_gicrx_vpendbaser_s {
11875 		uint64_t vpeid                       : 11;
11876 		uint64_t reserved_11_57              : 47;
11877 		uint64_t vgrp1en                     : 1;
11878 		uint64_t vgrp0en                     : 1;
11879 		uint64_t dirty                       : 1;
11880 		uint64_t pendinglast                 : 1;
11881 		uint64_t doorbell                    : 1;
11882 		uint64_t valid                       : 1;
11883 	} s;
11884 	/* struct ody_gicrx_vpendbaser_s cn; */
11885 };
11886 typedef union ody_gicrx_vpendbaser ody_gicrx_vpendbaser_t;
11887 
11888 static inline uint64_t ODY_GICRX_VPENDBASER(uint64_t a) __attribute__ ((pure, always_inline));
11889 static inline uint64_t ODY_GICRX_VPENDBASER(uint64_t a)
11890 {
11891 	if (a <= 81)
11892 		return 0x8010000a0078ll + 0x40000ll * ((a) & 0x7f);
11893 	__ody_csr_fatal("GICRX_VPENDBASER", 1, a, 0, 0, 0, 0, 0);
11894 }
11895 
11896 #define typedef_ODY_GICRX_VPENDBASER(a) ody_gicrx_vpendbaser_t
11897 #define bustype_ODY_GICRX_VPENDBASER(a) CSR_TYPE_NCB
11898 #define basename_ODY_GICRX_VPENDBASER(a) "GICRX_VPENDBASER"
11899 #define device_bar_ODY_GICRX_VPENDBASER(a) 0x0 /* PF_BAR0 */
11900 #define busnum_ODY_GICRX_VPENDBASER(a) (a)
11901 #define arguments_ODY_GICRX_VPENDBASER(a) (a), -1, -1, -1
11902 
11903 /**
11904  * Register (NCB) gicr#_vpropbaser
11905  *
11906  * GICR Vpropbaser Register
11907  * The GICR0_VPROPBASER characteristics are:
11908  *
11909  * * Purpose
11910  * Specifies the base address of the memory that holds the vPE Configuration table.
11911  *
11912  * * Usage constraints
11913  * There are no usage constraints.
11914  */
11915 union ody_gicrx_vpropbaser {
11916 	uint64_t u;
11917 	struct ody_gicrx_vpropbaser_s {
11918 		uint64_t size                        : 7;
11919 		uint64_t innercache                  : 3;
11920 		uint64_t shareability                : 2;
11921 		uint64_t addr                        : 40;
11922 		uint64_t z                           : 1;
11923 		uint64_t page_size                   : 2;
11924 		uint64_t indirect                    : 1;
11925 		uint64_t outercache                  : 3;
11926 		uint64_t entry_size                  : 3;
11927 		uint64_t reserved_62                 : 1;
11928 		uint64_t valid                       : 1;
11929 	} s;
11930 	/* struct ody_gicrx_vpropbaser_s cn; */
11931 };
11932 typedef union ody_gicrx_vpropbaser ody_gicrx_vpropbaser_t;
11933 
11934 static inline uint64_t ODY_GICRX_VPROPBASER(uint64_t a) __attribute__ ((pure, always_inline));
11935 static inline uint64_t ODY_GICRX_VPROPBASER(uint64_t a)
11936 {
11937 	if (a <= 81)
11938 		return 0x8010000a0070ll + 0x40000ll * ((a) & 0x7f);
11939 	__ody_csr_fatal("GICRX_VPROPBASER", 1, a, 0, 0, 0, 0, 0);
11940 }
11941 
11942 #define typedef_ODY_GICRX_VPROPBASER(a) ody_gicrx_vpropbaser_t
11943 #define bustype_ODY_GICRX_VPROPBASER(a) CSR_TYPE_NCB
11944 #define basename_ODY_GICRX_VPROPBASER(a) "GICRX_VPROPBASER"
11945 #define device_bar_ODY_GICRX_VPROPBASER(a) 0x0 /* PF_BAR0 */
11946 #define busnum_ODY_GICRX_VPROPBASER(a) (a)
11947 #define arguments_ODY_GICRX_VPROPBASER(a) (a), -1, -1, -1
11948 
11949 /**
11950  * Register (NCB32b) gicr#_vsgipendr
11951  *
11952  * GICR Vsgipendr Register
11953  * The GICR_VSGIPENDR characteristics are:
11954  *
11955  * * Purpose
11956  * Requests the pending state of virtual SGIs for a specified vPE.
11957  *
11958  * * Usage constraints
11959  * There are no usage constraints.
11960  */
11961 union ody_gicrx_vsgipendr {
11962 	uint32_t u;
11963 	struct ody_gicrx_vsgipendr_s {
11964 		uint32_t pending                     : 16;
11965 		uint32_t reserved_16_30              : 15;
11966 		uint32_t busy                        : 1;
11967 	} s;
11968 	/* struct ody_gicrx_vsgipendr_s cn; */
11969 };
11970 typedef union ody_gicrx_vsgipendr ody_gicrx_vsgipendr_t;
11971 
11972 static inline uint64_t ODY_GICRX_VSGIPENDR(uint64_t a) __attribute__ ((pure, always_inline));
11973 static inline uint64_t ODY_GICRX_VSGIPENDR(uint64_t a)
11974 {
11975 	if (a <= 81)
11976 		return 0x8010000a0088ll + 0x40000ll * ((a) & 0x7f);
11977 	__ody_csr_fatal("GICRX_VSGIPENDR", 1, a, 0, 0, 0, 0, 0);
11978 }
11979 
11980 #define typedef_ODY_GICRX_VSGIPENDR(a) ody_gicrx_vsgipendr_t
11981 #define bustype_ODY_GICRX_VSGIPENDR(a) CSR_TYPE_NCB32b
11982 #define basename_ODY_GICRX_VSGIPENDR(a) "GICRX_VSGIPENDR"
11983 #define device_bar_ODY_GICRX_VSGIPENDR(a) 0x0 /* PF_BAR0 */
11984 #define busnum_ODY_GICRX_VSGIPENDR(a) (a)
11985 #define arguments_ODY_GICRX_VSGIPENDR(a) (a), -1, -1, -1
11986 
11987 /**
11988  * Register (NCB) gicr#_vsgir
11989  *
11990  * GICR Vsgir Register
11991  * The GICR_VSGIR characteristics are:
11992  * *Purpose
11993  * Requests the pending state of virtual SGIs for a specified vPE.
11994  *
11995  * *Usage constraints
11996  * 64-bit access only.
11997  */
11998 union ody_gicrx_vsgir {
11999 	uint64_t u;
12000 	struct ody_gicrx_vsgir_s {
12001 		uint64_t vpeid                       : 11;
12002 		uint64_t reserved_11_63              : 53;
12003 	} s;
12004 	/* struct ody_gicrx_vsgir_s cn; */
12005 };
12006 typedef union ody_gicrx_vsgir ody_gicrx_vsgir_t;
12007 
12008 static inline uint64_t ODY_GICRX_VSGIR(uint64_t a) __attribute__ ((pure, always_inline));
12009 static inline uint64_t ODY_GICRX_VSGIR(uint64_t a)
12010 {
12011 	if (a <= 81)
12012 		return 0x8010000a0080ll + 0x40000ll * ((a) & 0x7f);
12013 	__ody_csr_fatal("GICRX_VSGIR", 1, a, 0, 0, 0, 0, 0);
12014 }
12015 
12016 #define typedef_ODY_GICRX_VSGIR(a) ody_gicrx_vsgir_t
12017 #define bustype_ODY_GICRX_VSGIR(a) CSR_TYPE_NCB
12018 #define basename_ODY_GICRX_VSGIR(a) "GICRX_VSGIR"
12019 #define device_bar_ODY_GICRX_VSGIR(a) 0x0 /* PF_BAR0 */
12020 #define busnum_ODY_GICRX_VSGIR(a) (a)
12021 #define arguments_ODY_GICRX_VSGIR(a) (a), -1, -1, -1
12022 
12023 /**
12024  * Register (NCB32b) gicr#_waker
12025  *
12026  * GICR Waker Register
12027  * The GICR0_WAKER characteristics are:
12028  *
12029  * * Purpose
12030  * Permits software to control the behavior of the WakeRequest power management signal
12031  * corresponding to the Redistributor. Power management operations follow the rules in
12032  * Power management section in TRM.
12033  *
12034  * * Usage constraints
12035  * Secure only when GICD_CTLR.DS==0, this is a Secure register.
12036  */
12037 union ody_gicrx_waker {
12038 	uint32_t u;
12039 	struct ody_gicrx_waker_s {
12040 		uint32_t sleep                       : 1;
12041 		uint32_t processorsleep              : 1;
12042 		uint32_t childrenasleep              : 1;
12043 		uint32_t reserved_3_30               : 28;
12044 		uint32_t quiescent                   : 1;
12045 	} s;
12046 	/* struct ody_gicrx_waker_s cn; */
12047 };
12048 typedef union ody_gicrx_waker ody_gicrx_waker_t;
12049 
12050 static inline uint64_t ODY_GICRX_WAKER(uint64_t a) __attribute__ ((pure, always_inline));
12051 static inline uint64_t ODY_GICRX_WAKER(uint64_t a)
12052 {
12053 	if (a <= 81)
12054 		return 0x801000080014ll + 0x40000ll * ((a) & 0x7f);
12055 	__ody_csr_fatal("GICRX_WAKER", 1, a, 0, 0, 0, 0, 0);
12056 }
12057 
12058 #define typedef_ODY_GICRX_WAKER(a) ody_gicrx_waker_t
12059 #define bustype_ODY_GICRX_WAKER(a) CSR_TYPE_NCB32b
12060 #define basename_ODY_GICRX_WAKER(a) "GICRX_WAKER"
12061 #define device_bar_ODY_GICRX_WAKER(a) 0x0 /* PF_BAR0 */
12062 #define busnum_ODY_GICRX_WAKER(a) (a)
12063 #define arguments_ODY_GICRX_WAKER(a) (a), -1, -1, -1
12064 
12065 /**
12066  * Register (NCB32b) gict_cidr0
12067  *
12068  * GICT Cidr0 Register
12069  * The GICT_CIDR0 characteristics are:
12070  *
12071  * * Purpose
12072  * This register is one of the Component Identification Registers and returns the first
12073  * part of the Preamble.
12074  *
12075  * * Usage constraints
12076  * There are no usage constraints.
12077  */
12078 union ody_gict_cidr0 {
12079 	uint32_t u;
12080 	struct ody_gict_cidr0_s {
12081 		uint32_t prmbl_0                     : 8;
12082 		uint32_t reserved_8_31               : 24;
12083 	} s;
12084 	/* struct ody_gict_cidr0_s cn; */
12085 };
12086 typedef union ody_gict_cidr0 ody_gict_cidr0_t;
12087 
12088 #define ODY_GICT_CIDR0 ODY_GICT_CIDR0_FUNC()
12089 static inline uint64_t ODY_GICT_CIDR0_FUNC(void) __attribute__ ((pure, always_inline));
12090 static inline uint64_t ODY_GICT_CIDR0_FUNC(void)
12091 {
12092 	return 0x80100002fff0ll;
12093 }
12094 
12095 #define typedef_ODY_GICT_CIDR0 ody_gict_cidr0_t
12096 #define bustype_ODY_GICT_CIDR0 CSR_TYPE_NCB32b
12097 #define basename_ODY_GICT_CIDR0 "GICT_CIDR0"
12098 #define device_bar_ODY_GICT_CIDR0 0x0 /* PF_BAR0 */
12099 #define busnum_ODY_GICT_CIDR0 0
12100 #define arguments_ODY_GICT_CIDR0 -1, -1, -1, -1
12101 
12102 /**
12103  * Register (NCB32b) gict_cidr1
12104  *
12105  * GICT Cidr1 Register
12106  * The GICT_CIDR1 characteristics are:
12107  *
12108  * * Purpose
12109  * This register is one of the Component Identification Registers and returns the
12110  * second part of the Preamble as well as the Component Class.
12111  *
12112  * * Usage constraints
12113  * There are no usage constraints.
12114  */
12115 union ody_gict_cidr1 {
12116 	uint32_t u;
12117 	struct ody_gict_cidr1_s {
12118 		uint32_t prmbl_1                     : 4;
12119 		uint32_t class_f                     : 4;
12120 		uint32_t reserved_8_31               : 24;
12121 	} s;
12122 	/* struct ody_gict_cidr1_s cn; */
12123 };
12124 typedef union ody_gict_cidr1 ody_gict_cidr1_t;
12125 
12126 #define ODY_GICT_CIDR1 ODY_GICT_CIDR1_FUNC()
12127 static inline uint64_t ODY_GICT_CIDR1_FUNC(void) __attribute__ ((pure, always_inline));
12128 static inline uint64_t ODY_GICT_CIDR1_FUNC(void)
12129 {
12130 	return 0x80100002fff4ll;
12131 }
12132 
12133 #define typedef_ODY_GICT_CIDR1 ody_gict_cidr1_t
12134 #define bustype_ODY_GICT_CIDR1 CSR_TYPE_NCB32b
12135 #define basename_ODY_GICT_CIDR1 "GICT_CIDR1"
12136 #define device_bar_ODY_GICT_CIDR1 0x0 /* PF_BAR0 */
12137 #define busnum_ODY_GICT_CIDR1 0
12138 #define arguments_ODY_GICT_CIDR1 -1, -1, -1, -1
12139 
12140 /**
12141  * Register (NCB32b) gict_cidr2
12142  *
12143  * GICT Cidr2 Register
12144  * The GICT_CIDR2 characteristics are:
12145  *
12146  * * Purpose
12147  * This register is one of the Component Identification Registers and returns the third
12148  * part of the Preamble.
12149  *
12150  * * Usage constraints
12151  * There are no usage constraints.
12152  */
12153 union ody_gict_cidr2 {
12154 	uint32_t u;
12155 	struct ody_gict_cidr2_s {
12156 		uint32_t prmbl_2                     : 8;
12157 		uint32_t reserved_8_31               : 24;
12158 	} s;
12159 	/* struct ody_gict_cidr2_s cn; */
12160 };
12161 typedef union ody_gict_cidr2 ody_gict_cidr2_t;
12162 
12163 #define ODY_GICT_CIDR2 ODY_GICT_CIDR2_FUNC()
12164 static inline uint64_t ODY_GICT_CIDR2_FUNC(void) __attribute__ ((pure, always_inline));
12165 static inline uint64_t ODY_GICT_CIDR2_FUNC(void)
12166 {
12167 	return 0x80100002fff8ll;
12168 }
12169 
12170 #define typedef_ODY_GICT_CIDR2 ody_gict_cidr2_t
12171 #define bustype_ODY_GICT_CIDR2 CSR_TYPE_NCB32b
12172 #define basename_ODY_GICT_CIDR2 "GICT_CIDR2"
12173 #define device_bar_ODY_GICT_CIDR2 0x0 /* PF_BAR0 */
12174 #define busnum_ODY_GICT_CIDR2 0
12175 #define arguments_ODY_GICT_CIDR2 -1, -1, -1, -1
12176 
12177 /**
12178  * Register (NCB32b) gict_cidr3
12179  *
12180  * GICT Cidr3 Register
12181  * The GICT_CIDR3 characteristics are:
12182  *
12183  * * Purpose
12184  * This register is one of the Component Identification Registers and returns the
12185  * fourth part of the Preamble.
12186  *
12187  * * Usage constraints
12188  * There are no usage constraints.
12189  */
12190 union ody_gict_cidr3 {
12191 	uint32_t u;
12192 	struct ody_gict_cidr3_s {
12193 		uint32_t prmbl_3                     : 8;
12194 		uint32_t reserved_8_31               : 24;
12195 	} s;
12196 	/* struct ody_gict_cidr3_s cn; */
12197 };
12198 typedef union ody_gict_cidr3 ody_gict_cidr3_t;
12199 
12200 #define ODY_GICT_CIDR3 ODY_GICT_CIDR3_FUNC()
12201 static inline uint64_t ODY_GICT_CIDR3_FUNC(void) __attribute__ ((pure, always_inline));
12202 static inline uint64_t ODY_GICT_CIDR3_FUNC(void)
12203 {
12204 	return 0x80100002fffcll;
12205 }
12206 
12207 #define typedef_ODY_GICT_CIDR3 ody_gict_cidr3_t
12208 #define bustype_ODY_GICT_CIDR3 CSR_TYPE_NCB32b
12209 #define basename_ODY_GICT_CIDR3 "GICT_CIDR3"
12210 #define device_bar_ODY_GICT_CIDR3 0x0 /* PF_BAR0 */
12211 #define busnum_ODY_GICT_CIDR3 0
12212 #define arguments_ODY_GICT_CIDR3 -1, -1, -1, -1
12213 
12214 /**
12215  * Register (NCB32b) gict_devarch
12216  *
12217  * GICT Devarch Register
12218  * The GICT_DEVARCH characteristics are:
12219  *
12220  * * Purpose
12221  * Stores the Device Architecture ID
12222  *
12223  * * Usage constraints
12224  * If GICD(A)_SAC.GICTNS == 0, then only Secure software can access the functions of this register.
12225  */
12226 union ody_gict_devarch {
12227 	uint32_t u;
12228 	struct ody_gict_devarch_s {
12229 		uint32_t archid                      : 12;
12230 		uint32_t reserved_12_15              : 4;
12231 		uint32_t revision                    : 4;
12232 		uint32_t present                     : 1;
12233 		uint32_t architect                   : 11;
12234 	} s;
12235 	/* struct ody_gict_devarch_s cn; */
12236 };
12237 typedef union ody_gict_devarch ody_gict_devarch_t;
12238 
12239 #define ODY_GICT_DEVARCH ODY_GICT_DEVARCH_FUNC()
12240 static inline uint64_t ODY_GICT_DEVARCH_FUNC(void) __attribute__ ((pure, always_inline));
12241 static inline uint64_t ODY_GICT_DEVARCH_FUNC(void)
12242 {
12243 	return 0x80100002ffbcll;
12244 }
12245 
12246 #define typedef_ODY_GICT_DEVARCH ody_gict_devarch_t
12247 #define bustype_ODY_GICT_DEVARCH CSR_TYPE_NCB32b
12248 #define basename_ODY_GICT_DEVARCH "GICT_DEVARCH"
12249 #define device_bar_ODY_GICT_DEVARCH 0x0 /* PF_BAR0 */
12250 #define busnum_ODY_GICT_DEVARCH 0
12251 #define arguments_ODY_GICT_DEVARCH -1, -1, -1, -1
12252 
12253 /**
12254  * Register (NCB32b) gict_devid
12255  *
12256  * GICT Devid Register
12257  * The GICT_DEVID characteristics are:
12258  *
12259  * * Purpose
12260  * This register returns information about the configuration of the GIC-700 GICT such
12261  * as whether an LPI or ITS is available.
12262  *
12263  * * Usage constraints
12264  * If GICD(A)_SAC.GICTNS == 0, then only Secure software can read this register.
12265  *
12266  * \> *Note*
12267  * \> GICT_DEVID was previously known as GICT_ERRIDR.
12268  */
12269 union ody_gict_devid {
12270 	uint32_t u;
12271 	struct ody_gict_devid_s {
12272 		uint32_t numrecords                  : 16;
12273 		uint32_t reserved_16_31              : 16;
12274 	} s;
12275 	/* struct ody_gict_devid_s cn; */
12276 };
12277 typedef union ody_gict_devid ody_gict_devid_t;
12278 
12279 #define ODY_GICT_DEVID ODY_GICT_DEVID_FUNC()
12280 static inline uint64_t ODY_GICT_DEVID_FUNC(void) __attribute__ ((pure, always_inline));
12281 static inline uint64_t ODY_GICT_DEVID_FUNC(void)
12282 {
12283 	return 0x80100002ffc8ll;
12284 }
12285 
12286 #define typedef_ODY_GICT_DEVID ody_gict_devid_t
12287 #define bustype_ODY_GICT_DEVID CSR_TYPE_NCB32b
12288 #define basename_ODY_GICT_DEVID "GICT_DEVID"
12289 #define device_bar_ODY_GICT_DEVID 0x0 /* PF_BAR0 */
12290 #define busnum_ODY_GICT_DEVID 0
12291 #define arguments_ODY_GICT_DEVID -1, -1, -1, -1
12292 
12293 /**
12294  * Register (NCB) gict_err#_addr
12295  *
12296  * GICT Err Addr Register
12297  * The GICT_ERR0ADDR characteristics are:
12298  *
12299  * * Purpose
12300  * This register contains the address and security status of the write. This register
12301  * is only present for GICT software record 0.
12302  *
12303  * * Usage constraints
12304  * If GICD(A)_SAC.GICTNS == 0, then only Secure software can access the contents of this register.
12305  * Ignores writes if GICT_ERR0STATUS.AV == 1.
12306  * All bits are RAZ/WI if GICT_ERR0STATUS.IERR = 0, 12, or 13.
12307  */
12308 union ody_gict_errx_addr {
12309 	uint64_t u;
12310 	struct ody_gict_errx_addr_s {
12311 		uint64_t paddr                       : 48;
12312 		uint64_t reserved_48_62              : 15;
12313 		uint64_t ns_f                        : 1;
12314 	} s;
12315 	/* struct ody_gict_errx_addr_s cn; */
12316 };
12317 typedef union ody_gict_errx_addr ody_gict_errx_addr_t;
12318 
12319 static inline uint64_t ODY_GICT_ERRX_ADDR(uint64_t a) __attribute__ ((pure, always_inline));
12320 static inline uint64_t ODY_GICT_ERRX_ADDR(uint64_t a)
12321 {
12322 	if (a <= 27)
12323 		return 0x801000020018ll + 0x40ll * ((a) & 0x1f);
12324 	__ody_csr_fatal("GICT_ERRX_ADDR", 1, a, 0, 0, 0, 0, 0);
12325 }
12326 
12327 #define typedef_ODY_GICT_ERRX_ADDR(a) ody_gict_errx_addr_t
12328 #define bustype_ODY_GICT_ERRX_ADDR(a) CSR_TYPE_NCB
12329 #define basename_ODY_GICT_ERRX_ADDR(a) "GICT_ERRX_ADDR"
12330 #define device_bar_ODY_GICT_ERRX_ADDR(a) 0x0 /* PF_BAR0 */
12331 #define busnum_ODY_GICT_ERRX_ADDR(a) (a)
12332 #define arguments_ODY_GICT_ERRX_ADDR(a) (a), -1, -1, -1
12333 
12334 /**
12335  * Register (NCB) gict_err#_ctlr
12336  *
12337  * GICT Err Ctlr Register
12338  * The GICT_ERR0CTLR characteristics are:
12339  *
12340  * * Purpose
12341  * This register controls how interrupts are handled.
12342  *
12343  * * Usage constraints
12344  * If GICD(A)_SAC.GICTNS == 0, then only Secure software can access the contents of this register.
12345  */
12346 union ody_gict_errx_ctlr {
12347 	uint64_t u;
12348 	struct ody_gict_errx_ctlr_s {
12349 		uint64_t reserved_0_1                : 2;
12350 		uint64_t ui                          : 1;
12351 		uint64_t fi                          : 1;
12352 		uint64_t ue                          : 1;
12353 		uint64_t reserved_5_7                : 3;
12354 		uint64_t cfi                         : 1;
12355 		uint64_t reserved_9_14               : 6;
12356 		uint64_t rp                          : 1;
12357 		uint64_t reserved_16_31              : 16;
12358 		uint64_t dis_col_oor                 : 1;
12359 		uint64_t dis_deact                   : 1;
12360 		uint64_t dis_spi_oor                 : 2;
12361 		uint64_t dis_spi_dst                 : 1;
12362 		uint64_t dis_sgi                     : 1;
12363 		uint64_t dis_ace                     : 1;
12364 		uint64_t reserved_39_63              : 25;
12365 	} s;
12366 	/* struct ody_gict_errx_ctlr_s cn; */
12367 };
12368 typedef union ody_gict_errx_ctlr ody_gict_errx_ctlr_t;
12369 
12370 static inline uint64_t ODY_GICT_ERRX_CTLR(uint64_t a) __attribute__ ((pure, always_inline));
12371 static inline uint64_t ODY_GICT_ERRX_CTLR(uint64_t a)
12372 {
12373 	if (a <= 27)
12374 		return 0x801000020008ll + 0x40ll * ((a) & 0x1f);
12375 	__ody_csr_fatal("GICT_ERRX_CTLR", 1, a, 0, 0, 0, 0, 0);
12376 }
12377 
12378 #define typedef_ODY_GICT_ERRX_CTLR(a) ody_gict_errx_ctlr_t
12379 #define bustype_ODY_GICT_ERRX_CTLR(a) CSR_TYPE_NCB
12380 #define basename_ODY_GICT_ERRX_CTLR(a) "GICT_ERRX_CTLR"
12381 #define device_bar_ODY_GICT_ERRX_CTLR(a) 0x0 /* PF_BAR0 */
12382 #define busnum_ODY_GICT_ERRX_CTLR(a) (a)
12383 #define arguments_ODY_GICT_ERRX_CTLR(a) (a), -1, -1, -1
12384 
12385 /**
12386  * Register (NCB) gict_err#_fr
12387  *
12388  * GICT Err Fr Register
12389  * The GICT_ERR0FR characteristics are:
12390  *
12391  * * Purpose
12392  * This register returns information about the Armv8.2 RAS features that the GIC-700 implements.
12393  *
12394  * * Usage constraints
12395  * If GICD(A)_SAC.GICTNS == 0, then only Secure software can access the contents of this register.
12396  */
12397 union ody_gict_errx_fr {
12398 	uint64_t u;
12399 	struct ody_gict_errx_fr_s {
12400 		uint64_t ed                          : 2;
12401 		uint64_t de                          : 2;
12402 		uint64_t ui                          : 2;
12403 		uint64_t fi                          : 2;
12404 		uint64_t ue                          : 2;
12405 		uint64_t cfi                         : 2;
12406 		uint64_t cec                         : 3;
12407 		uint64_t rp                          : 1;
12408 		uint64_t reserved_16_63              : 48;
12409 	} s;
12410 	/* struct ody_gict_errx_fr_s cn; */
12411 };
12412 typedef union ody_gict_errx_fr ody_gict_errx_fr_t;
12413 
12414 static inline uint64_t ODY_GICT_ERRX_FR(uint64_t a) __attribute__ ((pure, always_inline));
12415 static inline uint64_t ODY_GICT_ERRX_FR(uint64_t a)
12416 {
12417 	if (a <= 27)
12418 		return 0x801000020000ll + 0x40ll * ((a) & 0x1f);
12419 	__ody_csr_fatal("GICT_ERRX_FR", 1, a, 0, 0, 0, 0, 0);
12420 }
12421 
12422 #define typedef_ODY_GICT_ERRX_FR(a) ody_gict_errx_fr_t
12423 #define bustype_ODY_GICT_ERRX_FR(a) CSR_TYPE_NCB
12424 #define basename_ODY_GICT_ERRX_FR(a) "GICT_ERRX_FR"
12425 #define device_bar_ODY_GICT_ERRX_FR(a) 0x0 /* PF_BAR0 */
12426 #define busnum_ODY_GICT_ERRX_FR(a) (a)
12427 #define arguments_ODY_GICT_ERRX_FR(a) (a), -1, -1, -1
12428 
12429 /**
12430  * Register (NCB) gict_err#_misc0_a
12431  *
12432  * GICT Err Misc0 A Register
12433  * The GICT_ERR0MISC0 characteristics are:
12434  *
12435  * * Purpose
12436  * This register contains the Corrected error counter and information that assists with
12437  * identifying the RAM in which the error was detected.
12438  * For error record 0, it will contain information that assists with identifying where
12439  * the SW error was detected.
12440  *
12441  * * Usage constraints
12442  * If GICD(A)_SAC.GICTNS == 0, then only Secure software can access the contents of this register.
12443  * If GICT_ERRSTATUS.MV == 1, then GICT_ERRMISC0 ignores writes to the Data field.
12444  */
12445 union ody_gict_errx_misc0_a {
12446 	uint64_t u;
12447 	struct ody_gict_errx_misc0_a_s {
12448 		uint64_t data                        : 32;
12449 		uint64_t cnt                         : 8;
12450 		uint64_t of                          : 1;
12451 		uint64_t re                          : 1;
12452 		uint64_t reserved_42_63              : 22;
12453 	} s;
12454 	/* struct ody_gict_errx_misc0_a_s cn; */
12455 };
12456 typedef union ody_gict_errx_misc0_a ody_gict_errx_misc0_a_t;
12457 
12458 static inline uint64_t ODY_GICT_ERRX_MISC0_A(uint64_t a) __attribute__ ((pure, always_inline));
12459 static inline uint64_t ODY_GICT_ERRX_MISC0_A(uint64_t a)
12460 {
12461 	if (a <= 27)
12462 		return 0x801000020020ll + 0x40ll * ((a) & 0x1f);
12463 	__ody_csr_fatal("GICT_ERRX_MISC0_A", 1, a, 0, 0, 0, 0, 0);
12464 }
12465 
12466 #define typedef_ODY_GICT_ERRX_MISC0_A(a) ody_gict_errx_misc0_a_t
12467 #define bustype_ODY_GICT_ERRX_MISC0_A(a) CSR_TYPE_NCB
12468 #define basename_ODY_GICT_ERRX_MISC0_A(a) "GICT_ERRX_MISC0_A"
12469 #define device_bar_ODY_GICT_ERRX_MISC0_A(a) 0x0 /* PF_BAR0 */
12470 #define busnum_ODY_GICT_ERRX_MISC0_A(a) (a)
12471 #define arguments_ODY_GICT_ERRX_MISC0_A(a) (a), -1, -1, -1
12472 
12473 /**
12474  * Register (NCB) gict_err#_misc1_b
12475  *
12476  * GICT Err Misc1 B Register
12477  * The GICT_ERR0MISC1 characteristics are:
12478  *
12479  * * Purpose
12480  * This register contains the data value of an uncorrectable error in the LPI RAM, TGT-
12481  * LPI RAM, or ITS software information. The register is not present for other error
12482  * records.
12483  *
12484  * * Usage constraints
12485  * If GICD(A)_SAC.GICTNS == 0, then only Secure software can access the contents of this register.
12486  * If GICT_ERRSTATUS.MV == 1, then GICT_ERRMISC1 ignores writes.
12487  */
12488 union ody_gict_errx_misc1_b {
12489 	uint64_t u;
12490 	struct ody_gict_errx_misc1_b_s {
12491 		uint64_t data                        : 64;
12492 	} s;
12493 	/* struct ody_gict_errx_misc1_b_s cn; */
12494 };
12495 typedef union ody_gict_errx_misc1_b ody_gict_errx_misc1_b_t;
12496 
12497 static inline uint64_t ODY_GICT_ERRX_MISC1_B(uint64_t a) __attribute__ ((pure, always_inline));
12498 static inline uint64_t ODY_GICT_ERRX_MISC1_B(uint64_t a)
12499 {
12500 	if (a <= 27)
12501 		return 0x801000020028ll + 0x40ll * ((a) & 0x1f);
12502 	__ody_csr_fatal("GICT_ERRX_MISC1_B", 1, a, 0, 0, 0, 0, 0);
12503 }
12504 
12505 #define typedef_ODY_GICT_ERRX_MISC1_B(a) ody_gict_errx_misc1_b_t
12506 #define bustype_ODY_GICT_ERRX_MISC1_B(a) CSR_TYPE_NCB
12507 #define basename_ODY_GICT_ERRX_MISC1_B(a) "GICT_ERRX_MISC1_B"
12508 #define device_bar_ODY_GICT_ERRX_MISC1_B(a) 0x0 /* PF_BAR0 */
12509 #define busnum_ODY_GICT_ERRX_MISC1_B(a) (a)
12510 #define arguments_ODY_GICT_ERRX_MISC1_B(a) (a), -1, -1, -1
12511 
12512 /**
12513  * Register (NCB) gict_err#_status
12514  *
12515  * GICT Err Status Register
12516  * The GICT_ERR0STATUS characteristics are:
12517  *
12518  * * Purpose
12519  * This register indicates information relating to the recorded errors. Error record 0
12520  * is for SW errors
12521  *
12522  * * Usage constraints
12523  * If GICD(A)_SAC.GICTNS == 0, then only Secure software can access the contents of this register.
12524  */
12525 union ody_gict_errx_status {
12526 	uint64_t u;
12527 	struct ody_gict_errx_status_s {
12528 		uint64_t serr                        : 8;
12529 		uint64_t ierr                        : 8;
12530 		uint64_t reserved_16_19              : 4;
12531 		uint64_t uet                         : 2;
12532 		uint64_t reserved_22_23              : 2;
12533 		uint64_t ce                          : 2;
12534 		uint64_t mv                          : 1;
12535 		uint64_t of                          : 1;
12536 		uint64_t er                          : 1;
12537 		uint64_t ue                          : 1;
12538 		uint64_t v                           : 1;
12539 		uint64_t av                          : 1;
12540 		uint64_t reserved_32_63              : 32;
12541 	} s;
12542 	/* struct ody_gict_errx_status_s cn; */
12543 };
12544 typedef union ody_gict_errx_status ody_gict_errx_status_t;
12545 
12546 static inline uint64_t ODY_GICT_ERRX_STATUS(uint64_t a) __attribute__ ((pure, always_inline));
12547 static inline uint64_t ODY_GICT_ERRX_STATUS(uint64_t a)
12548 {
12549 	if (a <= 27)
12550 		return 0x801000020010ll + 0x40ll * ((a) & 0x1f);
12551 	__ody_csr_fatal("GICT_ERRX_STATUS", 1, a, 0, 0, 0, 0, 0);
12552 }
12553 
12554 #define typedef_ODY_GICT_ERRX_STATUS(a) ody_gict_errx_status_t
12555 #define bustype_ODY_GICT_ERRX_STATUS(a) CSR_TYPE_NCB
12556 #define basename_ODY_GICT_ERRX_STATUS(a) "GICT_ERRX_STATUS"
12557 #define device_bar_ODY_GICT_ERRX_STATUS(a) 0x0 /* PF_BAR0 */
12558 #define busnum_ODY_GICT_ERRX_STATUS(a) (a)
12559 #define arguments_ODY_GICT_ERRX_STATUS(a) (a), -1, -1, -1
12560 
12561 /**
12562  * Register (NCB) gict_errgsr0
12563  *
12564  * GICT Errgsr0 Register
12565  * The GICT_ERRGSR0 characteristics are:
12566  *
12567  * * Purpose
12568  * This register shows the status of the GIC-700 Armv8.2 RAS architecture-compliant error records for
12569  * correctable and uncorrectable RAM ECC errors, ITS command and translation errors, and uncorrectable
12570  * software errors.
12571  *
12572  * * Usage constraints
12573  * There are no usage constraints.
12574  */
12575 union ody_gict_errgsr0 {
12576 	uint64_t u;
12577 	struct ody_gict_errgsr0_s {
12578 		uint64_t status                      : 64;
12579 	} s;
12580 	/* struct ody_gict_errgsr0_s cn; */
12581 };
12582 typedef union ody_gict_errgsr0 ody_gict_errgsr0_t;
12583 
12584 #define ODY_GICT_ERRGSR0 ODY_GICT_ERRGSR0_FUNC()
12585 static inline uint64_t ODY_GICT_ERRGSR0_FUNC(void) __attribute__ ((pure, always_inline));
12586 static inline uint64_t ODY_GICT_ERRGSR0_FUNC(void)
12587 {
12588 	return 0x80100002e000ll;
12589 }
12590 
12591 #define typedef_ODY_GICT_ERRGSR0 ody_gict_errgsr0_t
12592 #define bustype_ODY_GICT_ERRGSR0 CSR_TYPE_NCB
12593 #define basename_ODY_GICT_ERRGSR0 "GICT_ERRGSR0"
12594 #define device_bar_ODY_GICT_ERRGSR0 0x0 /* PF_BAR0 */
12595 #define busnum_ODY_GICT_ERRGSR0 0
12596 #define arguments_ODY_GICT_ERRGSR0 -1, -1, -1, -1
12597 
12598 /**
12599  * Register (NCB) gict_errirqcr#
12600  *
12601  * GICT Errirqcr Register
12602  * The GICT_ERRIRQCR0 characteristics are:
12603  *
12604  * * Purpose
12605  * GICT_ERRIRQCR0 controls which SPI is generated when a fault handling interrupt occurs.
12606  *
12607  * * Usage constraints
12608  * If GICD(A)_SAC.GICTNS == 0, then only Secure software can access the functions of this register.
12609  */
12610 union ody_gict_errirqcrx {
12611 	uint64_t u;
12612 	struct ody_gict_errirqcrx_s {
12613 		uint64_t spiid                       : 13;
12614 		uint64_t reserved_13_63              : 51;
12615 	} s;
12616 	/* struct ody_gict_errirqcrx_s cn; */
12617 };
12618 typedef union ody_gict_errirqcrx ody_gict_errirqcrx_t;
12619 
12620 static inline uint64_t ODY_GICT_ERRIRQCRX(uint64_t a) __attribute__ ((pure, always_inline));
12621 static inline uint64_t ODY_GICT_ERRIRQCRX(uint64_t a)
12622 {
12623 	if (a <= 1)
12624 		return 0x80100002e800ll + 8ll * ((a) & 0x1);
12625 	__ody_csr_fatal("GICT_ERRIRQCRX", 1, a, 0, 0, 0, 0, 0);
12626 }
12627 
12628 #define typedef_ODY_GICT_ERRIRQCRX(a) ody_gict_errirqcrx_t
12629 #define bustype_ODY_GICT_ERRIRQCRX(a) CSR_TYPE_NCB
12630 #define basename_ODY_GICT_ERRIRQCRX(a) "GICT_ERRIRQCRX"
12631 #define device_bar_ODY_GICT_ERRIRQCRX(a) 0x0 /* PF_BAR0 */
12632 #define busnum_ODY_GICT_ERRIRQCRX(a) (a)
12633 #define arguments_ODY_GICT_ERRIRQCRX(a) (a), -1, -1, -1
12634 
12635 /**
12636  * Register (NCB32b) gict_pidr0
12637  *
12638  * GICT Pidr0 Register
12639  * The GICT_PIDR0 characteristics are:
12640  *
12641  * * Purpose
12642  * This register returns byte[0] of the peripheral ID of the GIC Trace and Debug page.
12643  *
12644  * * Usage constraints
12645  * There are no usage constraints.
12646  */
12647 union ody_gict_pidr0 {
12648 	uint32_t u;
12649 	struct ody_gict_pidr0_s {
12650 		uint32_t part_0                      : 8;
12651 		uint32_t reserved_8_31               : 24;
12652 	} s;
12653 	/* struct ody_gict_pidr0_s cn; */
12654 };
12655 typedef union ody_gict_pidr0 ody_gict_pidr0_t;
12656 
12657 #define ODY_GICT_PIDR0 ODY_GICT_PIDR0_FUNC()
12658 static inline uint64_t ODY_GICT_PIDR0_FUNC(void) __attribute__ ((pure, always_inline));
12659 static inline uint64_t ODY_GICT_PIDR0_FUNC(void)
12660 {
12661 	return 0x80100002ffe0ll;
12662 }
12663 
12664 #define typedef_ODY_GICT_PIDR0 ody_gict_pidr0_t
12665 #define bustype_ODY_GICT_PIDR0 CSR_TYPE_NCB32b
12666 #define basename_ODY_GICT_PIDR0 "GICT_PIDR0"
12667 #define device_bar_ODY_GICT_PIDR0 0x0 /* PF_BAR0 */
12668 #define busnum_ODY_GICT_PIDR0 0
12669 #define arguments_ODY_GICT_PIDR0 -1, -1, -1, -1
12670 
12671 /**
12672  * Register (NCB32b) gict_pidr1
12673  *
12674  * GICT Pidr1 Register
12675  * The GICT_PIDR1 characteristics are:
12676  *
12677  * * Purpose
12678  * This register returns byte[1] of the peripheral ID of the GIC Trace and Debug page.
12679  *
12680  * * Usage constraints
12681  * There are no usage constraints.
12682  */
12683 union ody_gict_pidr1 {
12684 	uint32_t u;
12685 	struct ody_gict_pidr1_s {
12686 		uint32_t part_1                      : 4;
12687 		uint32_t des_0                       : 4;
12688 		uint32_t reserved_8_31               : 24;
12689 	} s;
12690 	/* struct ody_gict_pidr1_s cn; */
12691 };
12692 typedef union ody_gict_pidr1 ody_gict_pidr1_t;
12693 
12694 #define ODY_GICT_PIDR1 ODY_GICT_PIDR1_FUNC()
12695 static inline uint64_t ODY_GICT_PIDR1_FUNC(void) __attribute__ ((pure, always_inline));
12696 static inline uint64_t ODY_GICT_PIDR1_FUNC(void)
12697 {
12698 	return 0x80100002ffe4ll;
12699 }
12700 
12701 #define typedef_ODY_GICT_PIDR1 ody_gict_pidr1_t
12702 #define bustype_ODY_GICT_PIDR1 CSR_TYPE_NCB32b
12703 #define basename_ODY_GICT_PIDR1 "GICT_PIDR1"
12704 #define device_bar_ODY_GICT_PIDR1 0x0 /* PF_BAR0 */
12705 #define busnum_ODY_GICT_PIDR1 0
12706 #define arguments_ODY_GICT_PIDR1 -1, -1, -1, -1
12707 
12708 /**
12709  * Register (NCB32b) gict_pidr2
12710  *
12711  * GICT Pidr2 Register
12712  * The GICT_PIDR2 characteristics are:
12713  *
12714  * * Purpose
12715  * This register returns byte[2] of the peripheral ID of the GIC Trace and Debug page.
12716  *
12717  * * Usage constraints
12718  * There are no usage constraints.
12719  */
12720 union ody_gict_pidr2 {
12721 	uint32_t u;
12722 	struct ody_gict_pidr2_s {
12723 		uint32_t des_1                       : 3;
12724 		uint32_t jedec                       : 1;
12725 		uint32_t revision                    : 4;
12726 		uint32_t reserved_8_31               : 24;
12727 	} s;
12728 	/* struct ody_gict_pidr2_s cn; */
12729 };
12730 typedef union ody_gict_pidr2 ody_gict_pidr2_t;
12731 
12732 #define ODY_GICT_PIDR2 ODY_GICT_PIDR2_FUNC()
12733 static inline uint64_t ODY_GICT_PIDR2_FUNC(void) __attribute__ ((pure, always_inline));
12734 static inline uint64_t ODY_GICT_PIDR2_FUNC(void)
12735 {
12736 	return 0x80100002ffe8ll;
12737 }
12738 
12739 #define typedef_ODY_GICT_PIDR2 ody_gict_pidr2_t
12740 #define bustype_ODY_GICT_PIDR2 CSR_TYPE_NCB32b
12741 #define basename_ODY_GICT_PIDR2 "GICT_PIDR2"
12742 #define device_bar_ODY_GICT_PIDR2 0x0 /* PF_BAR0 */
12743 #define busnum_ODY_GICT_PIDR2 0
12744 #define arguments_ODY_GICT_PIDR2 -1, -1, -1, -1
12745 
12746 /**
12747  * Register (NCB32b) gict_pidr3
12748  *
12749  * GICT Pidr3 Register
12750  * The GICT_PIDR3 characteristics are:
12751  *
12752  * * Purpose
12753  * This register returns byte[3] of the peripheral ID of the GIC Trace and Debug page.
12754  *
12755  * * Usage constraints
12756  * There are no usage constraints.
12757  */
12758 union ody_gict_pidr3 {
12759 	uint32_t u;
12760 	struct ody_gict_pidr3_s {
12761 		uint32_t cmod                        : 3;
12762 		uint32_t reserved_3                  : 1;
12763 		uint32_t revand                      : 4;
12764 		uint32_t reserved_8_31               : 24;
12765 	} s;
12766 	/* struct ody_gict_pidr3_s cn; */
12767 };
12768 typedef union ody_gict_pidr3 ody_gict_pidr3_t;
12769 
12770 #define ODY_GICT_PIDR3 ODY_GICT_PIDR3_FUNC()
12771 static inline uint64_t ODY_GICT_PIDR3_FUNC(void) __attribute__ ((pure, always_inline));
12772 static inline uint64_t ODY_GICT_PIDR3_FUNC(void)
12773 {
12774 	return 0x80100002ffecll;
12775 }
12776 
12777 #define typedef_ODY_GICT_PIDR3 ody_gict_pidr3_t
12778 #define bustype_ODY_GICT_PIDR3 CSR_TYPE_NCB32b
12779 #define basename_ODY_GICT_PIDR3 "GICT_PIDR3"
12780 #define device_bar_ODY_GICT_PIDR3 0x0 /* PF_BAR0 */
12781 #define busnum_ODY_GICT_PIDR3 0
12782 #define arguments_ODY_GICT_PIDR3 -1, -1, -1, -1
12783 
12784 /**
12785  * Register (NCB32b) gict_pidr4
12786  *
12787  * GICT Pidr4 Register
12788  * The GICT_PIDR4 characteristics are:
12789  *
12790  * * Purpose
12791  * This register returns byte[4] of the peripheral ID of the GIC Trace and Debug page.
12792  *
12793  * * Usage constraints
12794  * There are no usage constraints.
12795  */
12796 union ody_gict_pidr4 {
12797 	uint32_t u;
12798 	struct ody_gict_pidr4_s {
12799 		uint32_t des_2                       : 4;
12800 		uint32_t size                        : 4;
12801 		uint32_t reserved_8_31               : 24;
12802 	} s;
12803 	/* struct ody_gict_pidr4_s cn; */
12804 };
12805 typedef union ody_gict_pidr4 ody_gict_pidr4_t;
12806 
12807 #define ODY_GICT_PIDR4 ODY_GICT_PIDR4_FUNC()
12808 static inline uint64_t ODY_GICT_PIDR4_FUNC(void) __attribute__ ((pure, always_inline));
12809 static inline uint64_t ODY_GICT_PIDR4_FUNC(void)
12810 {
12811 	return 0x80100002ffd0ll;
12812 }
12813 
12814 #define typedef_ODY_GICT_PIDR4 ody_gict_pidr4_t
12815 #define bustype_ODY_GICT_PIDR4 CSR_TYPE_NCB32b
12816 #define basename_ODY_GICT_PIDR4 "GICT_PIDR4"
12817 #define device_bar_ODY_GICT_PIDR4 0x0 /* PF_BAR0 */
12818 #define busnum_ODY_GICT_PIDR4 0
12819 #define arguments_ODY_GICT_PIDR4 -1, -1, -1, -1
12820 
12821 /**
12822  * Register (NCB32b) gict_pidr5
12823  *
12824  * GICT Pidr5 Register
12825  * The GICT_PIDR5 characteristics are:
12826  *
12827  * * Purpose
12828  * This register returns byte[5] of the peripheral ID of the GIC Trace and Debug page.
12829  *
12830  * * Usage constraints
12831  * There are no usage constraints.
12832  */
12833 union ody_gict_pidr5 {
12834 	uint32_t u;
12835 	struct ody_gict_pidr5_s {
12836 		uint32_t reserved_0_31               : 32;
12837 	} s;
12838 	struct ody_gict_pidr5_cn {
12839 		uint32_t reserved_0_7                : 8;
12840 		uint32_t reserved_8_31               : 24;
12841 	} cn;
12842 };
12843 typedef union ody_gict_pidr5 ody_gict_pidr5_t;
12844 
12845 #define ODY_GICT_PIDR5 ODY_GICT_PIDR5_FUNC()
12846 static inline uint64_t ODY_GICT_PIDR5_FUNC(void) __attribute__ ((pure, always_inline));
12847 static inline uint64_t ODY_GICT_PIDR5_FUNC(void)
12848 {
12849 	return 0x80100002ffd4ll;
12850 }
12851 
12852 #define typedef_ODY_GICT_PIDR5 ody_gict_pidr5_t
12853 #define bustype_ODY_GICT_PIDR5 CSR_TYPE_NCB32b
12854 #define basename_ODY_GICT_PIDR5 "GICT_PIDR5"
12855 #define device_bar_ODY_GICT_PIDR5 0x0 /* PF_BAR0 */
12856 #define busnum_ODY_GICT_PIDR5 0
12857 #define arguments_ODY_GICT_PIDR5 -1, -1, -1, -1
12858 
12859 /**
12860  * Register (NCB32b) gict_pidr6
12861  *
12862  * GICT Pidr6 Register
12863  * The GICT_PIDR6 characteristics are:
12864  *
12865  * * Purpose
12866  * This register returns byte[6] of the peripheral ID of the GIC Trace and Debug page.
12867  *
12868  * * Usage constraints
12869  * There are no usage constraints.
12870  */
12871 union ody_gict_pidr6 {
12872 	uint32_t u;
12873 	struct ody_gict_pidr6_s {
12874 		uint32_t reserved_0_31               : 32;
12875 	} s;
12876 	struct ody_gict_pidr6_cn {
12877 		uint32_t reserved_0_7                : 8;
12878 		uint32_t reserved_8_31               : 24;
12879 	} cn;
12880 };
12881 typedef union ody_gict_pidr6 ody_gict_pidr6_t;
12882 
12883 #define ODY_GICT_PIDR6 ODY_GICT_PIDR6_FUNC()
12884 static inline uint64_t ODY_GICT_PIDR6_FUNC(void) __attribute__ ((pure, always_inline));
12885 static inline uint64_t ODY_GICT_PIDR6_FUNC(void)
12886 {
12887 	return 0x80100002ffd8ll;
12888 }
12889 
12890 #define typedef_ODY_GICT_PIDR6 ody_gict_pidr6_t
12891 #define bustype_ODY_GICT_PIDR6 CSR_TYPE_NCB32b
12892 #define basename_ODY_GICT_PIDR6 "GICT_PIDR6"
12893 #define device_bar_ODY_GICT_PIDR6 0x0 /* PF_BAR0 */
12894 #define busnum_ODY_GICT_PIDR6 0
12895 #define arguments_ODY_GICT_PIDR6 -1, -1, -1, -1
12896 
12897 /**
12898  * Register (NCB32b) gict_pidr7
12899  *
12900  * GICT Pidr7 Register
12901  * The GICT_PIDR7 characteristics are:
12902  *
12903  * * Purpose
12904  * This register returns byte[7] of the peripheral ID of the GIC Trace and Debug page.
12905  *
12906  * * Usage constraints
12907  * There are no usage constraints.
12908  */
12909 union ody_gict_pidr7 {
12910 	uint32_t u;
12911 	struct ody_gict_pidr7_s {
12912 		uint32_t reserved_0_31               : 32;
12913 	} s;
12914 	struct ody_gict_pidr7_cn {
12915 		uint32_t reserved_0_7                : 8;
12916 		uint32_t reserved_8_31               : 24;
12917 	} cn;
12918 };
12919 typedef union ody_gict_pidr7 ody_gict_pidr7_t;
12920 
12921 #define ODY_GICT_PIDR7 ODY_GICT_PIDR7_FUNC()
12922 static inline uint64_t ODY_GICT_PIDR7_FUNC(void) __attribute__ ((pure, always_inline));
12923 static inline uint64_t ODY_GICT_PIDR7_FUNC(void)
12924 {
12925 	return 0x80100002ffdcll;
12926 }
12927 
12928 #define typedef_ODY_GICT_PIDR7 ody_gict_pidr7_t
12929 #define bustype_ODY_GICT_PIDR7 CSR_TYPE_NCB32b
12930 #define basename_ODY_GICT_PIDR7 "GICT_PIDR7"
12931 #define device_bar_ODY_GICT_PIDR7 0x0 /* PF_BAR0 */
12932 #define busnum_ODY_GICT_PIDR7 0
12933 #define arguments_ODY_GICT_PIDR7 -1, -1, -1, -1
12934 
12935 /**
12936  * Register (NCB) gits0_baser0
12937  *
12938  * GITS0 Baser0 Register
12939  * The GITS0_BASER0 characteristics are:
12940  *
12941  * * Purpose
12942  * Specifies the base address and size of the ITS Device translation tables.
12943  *
12944  * * Usage constraints
12945  * Bits [63:32] and bits [31:0] are accessible independently.
12946  *
12947  * When GITS0_CTLR.Enabled == 1 or GITS0_CTLR.Quiescent == 0, writing this register is UNPREDICTABLE.
12948  */
12949 union ody_gits0_baser0 {
12950 	uint64_t u;
12951 	struct ody_gits0_baser0_s {
12952 		uint64_t size                        : 8;
12953 		uint64_t pagesize                    : 2;
12954 		uint64_t shareability                : 2;
12955 		uint64_t physicaladdress             : 36;
12956 		uint64_t entrysize                   : 5;
12957 		uint64_t outercacheability           : 3;
12958 		uint64_t type_f                      : 3;
12959 		uint64_t cacheability                : 3;
12960 		uint64_t indirect                    : 1;
12961 		uint64_t valid                       : 1;
12962 	} s;
12963 	/* struct ody_gits0_baser0_s cn; */
12964 };
12965 typedef union ody_gits0_baser0 ody_gits0_baser0_t;
12966 
12967 #define ODY_GITS0_BASER0 ODY_GITS0_BASER0_FUNC()
12968 static inline uint64_t ODY_GITS0_BASER0_FUNC(void) __attribute__ ((pure, always_inline));
12969 static inline uint64_t ODY_GITS0_BASER0_FUNC(void)
12970 {
12971 	return 0x801000040100ll;
12972 }
12973 
12974 #define typedef_ODY_GITS0_BASER0 ody_gits0_baser0_t
12975 #define bustype_ODY_GITS0_BASER0 CSR_TYPE_NCB
12976 #define basename_ODY_GITS0_BASER0 "GITS0_BASER0"
12977 #define device_bar_ODY_GITS0_BASER0 0x0 /* PF_BAR0 */
12978 #define busnum_ODY_GITS0_BASER0 0
12979 #define arguments_ODY_GITS0_BASER0 -1, -1, -1, -1
12980 
12981 /**
12982  * Register (NCB) gits0_baser1
12983  *
12984  * GITS0 Baser1 Register
12985  * The GITS0_BASER1 characteristics are:
12986  *
12987  * * Purpose
12988  * Specifies the base address and size of the ITS Collection translation tables.
12989  *
12990  * * Usage constraints
12991  * Bits [63:32] and bits [31:0] are accessible independently.
12992  *
12993  * When GITS0_CTLR.Enabled == 1 or GITS0_CTLR.Quiescent == 0, writing this register is UNPREDICTABLE.
12994  */
12995 union ody_gits0_baser1 {
12996 	uint64_t u;
12997 	struct ody_gits0_baser1_s {
12998 		uint64_t size                        : 8;
12999 		uint64_t pagesize                    : 2;
13000 		uint64_t shareability                : 2;
13001 		uint64_t physicaladdress             : 36;
13002 		uint64_t entrysize                   : 5;
13003 		uint64_t outercacheability           : 3;
13004 		uint64_t type_f                      : 3;
13005 		uint64_t cacheability                : 3;
13006 		uint64_t indirect                    : 1;
13007 		uint64_t valid                       : 1;
13008 	} s;
13009 	/* struct ody_gits0_baser1_s cn; */
13010 };
13011 typedef union ody_gits0_baser1 ody_gits0_baser1_t;
13012 
13013 #define ODY_GITS0_BASER1 ODY_GITS0_BASER1_FUNC()
13014 static inline uint64_t ODY_GITS0_BASER1_FUNC(void) __attribute__ ((pure, always_inline));
13015 static inline uint64_t ODY_GITS0_BASER1_FUNC(void)
13016 {
13017 	return 0x801000040108ll;
13018 }
13019 
13020 #define typedef_ODY_GITS0_BASER1 ody_gits0_baser1_t
13021 #define bustype_ODY_GITS0_BASER1 CSR_TYPE_NCB
13022 #define basename_ODY_GITS0_BASER1 "GITS0_BASER1"
13023 #define device_bar_ODY_GITS0_BASER1 0x0 /* PF_BAR0 */
13024 #define busnum_ODY_GITS0_BASER1 0
13025 #define arguments_ODY_GITS0_BASER1 -1, -1, -1, -1
13026 
13027 /**
13028  * Register (NCB) gits0_baser2
13029  *
13030  * GITS0 Baser2 Register
13031  * The GITS0_BASER2 characteristics are:
13032  *
13033  * * Purpose
13034  * Specifies the base address and size of the ITS vPE translation tables.
13035  *
13036  * * Usage constraints
13037  * Bits [63:32] and bits [31:0] are accessible independently.
13038  *
13039  * When GITS0_CTLR.Enabled == 1 or GITS0_CTLR.Quiescent == 0, writing this register is UNPREDICTABLE.
13040  */
13041 union ody_gits0_baser2 {
13042 	uint64_t u;
13043 	struct ody_gits0_baser2_s {
13044 		uint64_t size                        : 8;
13045 		uint64_t pagesize                    : 2;
13046 		uint64_t shareability                : 2;
13047 		uint64_t physicaladdress             : 36;
13048 		uint64_t entrysize                   : 5;
13049 		uint64_t outercacheability           : 3;
13050 		uint64_t type_f                      : 3;
13051 		uint64_t cacheability                : 3;
13052 		uint64_t indirect                    : 1;
13053 		uint64_t valid                       : 1;
13054 	} s;
13055 	/* struct ody_gits0_baser2_s cn; */
13056 };
13057 typedef union ody_gits0_baser2 ody_gits0_baser2_t;
13058 
13059 #define ODY_GITS0_BASER2 ODY_GITS0_BASER2_FUNC()
13060 static inline uint64_t ODY_GITS0_BASER2_FUNC(void) __attribute__ ((pure, always_inline));
13061 static inline uint64_t ODY_GITS0_BASER2_FUNC(void)
13062 {
13063 	return 0x801000040110ll;
13064 }
13065 
13066 #define typedef_ODY_GITS0_BASER2 ody_gits0_baser2_t
13067 #define bustype_ODY_GITS0_BASER2 CSR_TYPE_NCB
13068 #define basename_ODY_GITS0_BASER2 "GITS0_BASER2"
13069 #define device_bar_ODY_GITS0_BASER2 0x0 /* PF_BAR0 */
13070 #define busnum_ODY_GITS0_BASER2 0
13071 #define arguments_ODY_GITS0_BASER2 -1, -1, -1, -1
13072 
13073 /**
13074  * Register (NCB) gits0_baser3
13075  *
13076  * GITS0 Baser3 Register
13077  * This register is RES0.
13078  */
13079 union ody_gits0_baser3 {
13080 	uint64_t u;
13081 	struct ody_gits0_baser3_s {
13082 		uint64_t reserved_0_63               : 64;
13083 	} s;
13084 	/* struct ody_gits0_baser3_s cn; */
13085 };
13086 typedef union ody_gits0_baser3 ody_gits0_baser3_t;
13087 
13088 #define ODY_GITS0_BASER3 ODY_GITS0_BASER3_FUNC()
13089 static inline uint64_t ODY_GITS0_BASER3_FUNC(void) __attribute__ ((pure, always_inline));
13090 static inline uint64_t ODY_GITS0_BASER3_FUNC(void)
13091 {
13092 	return 0x801000040118ll;
13093 }
13094 
13095 #define typedef_ODY_GITS0_BASER3 ody_gits0_baser3_t
13096 #define bustype_ODY_GITS0_BASER3 CSR_TYPE_NCB
13097 #define basename_ODY_GITS0_BASER3 "GITS0_BASER3"
13098 #define device_bar_ODY_GITS0_BASER3 0x0 /* PF_BAR0 */
13099 #define busnum_ODY_GITS0_BASER3 0
13100 #define arguments_ODY_GITS0_BASER3 -1, -1, -1, -1
13101 
13102 /**
13103  * Register (NCB) gits0_baser4
13104  *
13105  * GITS0 Baser4 Register
13106  * This register is RES0.
13107  */
13108 union ody_gits0_baser4 {
13109 	uint64_t u;
13110 	struct ody_gits0_baser4_s {
13111 		uint64_t reserved_0_63               : 64;
13112 	} s;
13113 	/* struct ody_gits0_baser4_s cn; */
13114 };
13115 typedef union ody_gits0_baser4 ody_gits0_baser4_t;
13116 
13117 #define ODY_GITS0_BASER4 ODY_GITS0_BASER4_FUNC()
13118 static inline uint64_t ODY_GITS0_BASER4_FUNC(void) __attribute__ ((pure, always_inline));
13119 static inline uint64_t ODY_GITS0_BASER4_FUNC(void)
13120 {
13121 	return 0x801000040120ll;
13122 }
13123 
13124 #define typedef_ODY_GITS0_BASER4 ody_gits0_baser4_t
13125 #define bustype_ODY_GITS0_BASER4 CSR_TYPE_NCB
13126 #define basename_ODY_GITS0_BASER4 "GITS0_BASER4"
13127 #define device_bar_ODY_GITS0_BASER4 0x0 /* PF_BAR0 */
13128 #define busnum_ODY_GITS0_BASER4 0
13129 #define arguments_ODY_GITS0_BASER4 -1, -1, -1, -1
13130 
13131 /**
13132  * Register (NCB) gits0_baser5
13133  *
13134  * GITS0 Baser5 Register
13135  * This register is RES0.
13136  */
13137 union ody_gits0_baser5 {
13138 	uint64_t u;
13139 	struct ody_gits0_baser5_s {
13140 		uint64_t reserved_0_63               : 64;
13141 	} s;
13142 	/* struct ody_gits0_baser5_s cn; */
13143 };
13144 typedef union ody_gits0_baser5 ody_gits0_baser5_t;
13145 
13146 #define ODY_GITS0_BASER5 ODY_GITS0_BASER5_FUNC()
13147 static inline uint64_t ODY_GITS0_BASER5_FUNC(void) __attribute__ ((pure, always_inline));
13148 static inline uint64_t ODY_GITS0_BASER5_FUNC(void)
13149 {
13150 	return 0x801000040128ll;
13151 }
13152 
13153 #define typedef_ODY_GITS0_BASER5 ody_gits0_baser5_t
13154 #define bustype_ODY_GITS0_BASER5 CSR_TYPE_NCB
13155 #define basename_ODY_GITS0_BASER5 "GITS0_BASER5"
13156 #define device_bar_ODY_GITS0_BASER5 0x0 /* PF_BAR0 */
13157 #define busnum_ODY_GITS0_BASER5 0
13158 #define arguments_ODY_GITS0_BASER5 -1, -1, -1, -1
13159 
13160 /**
13161  * Register (NCB) gits0_baser6
13162  *
13163  * GITS0 Baser6 Register
13164  * This register is RES0.
13165  */
13166 union ody_gits0_baser6 {
13167 	uint64_t u;
13168 	struct ody_gits0_baser6_s {
13169 		uint64_t reserved_0_63               : 64;
13170 	} s;
13171 	/* struct ody_gits0_baser6_s cn; */
13172 };
13173 typedef union ody_gits0_baser6 ody_gits0_baser6_t;
13174 
13175 #define ODY_GITS0_BASER6 ODY_GITS0_BASER6_FUNC()
13176 static inline uint64_t ODY_GITS0_BASER6_FUNC(void) __attribute__ ((pure, always_inline));
13177 static inline uint64_t ODY_GITS0_BASER6_FUNC(void)
13178 {
13179 	return 0x801000040130ll;
13180 }
13181 
13182 #define typedef_ODY_GITS0_BASER6 ody_gits0_baser6_t
13183 #define bustype_ODY_GITS0_BASER6 CSR_TYPE_NCB
13184 #define basename_ODY_GITS0_BASER6 "GITS0_BASER6"
13185 #define device_bar_ODY_GITS0_BASER6 0x0 /* PF_BAR0 */
13186 #define busnum_ODY_GITS0_BASER6 0
13187 #define arguments_ODY_GITS0_BASER6 -1, -1, -1, -1
13188 
13189 /**
13190  * Register (NCB) gits0_baser7
13191  *
13192  * GITS0 Baser7 Register
13193  * This register is RES0.
13194  */
13195 union ody_gits0_baser7 {
13196 	uint64_t u;
13197 	struct ody_gits0_baser7_s {
13198 		uint64_t reserved_0_63               : 64;
13199 	} s;
13200 	/* struct ody_gits0_baser7_s cn; */
13201 };
13202 typedef union ody_gits0_baser7 ody_gits0_baser7_t;
13203 
13204 #define ODY_GITS0_BASER7 ODY_GITS0_BASER7_FUNC()
13205 static inline uint64_t ODY_GITS0_BASER7_FUNC(void) __attribute__ ((pure, always_inline));
13206 static inline uint64_t ODY_GITS0_BASER7_FUNC(void)
13207 {
13208 	return 0x801000040138ll;
13209 }
13210 
13211 #define typedef_ODY_GITS0_BASER7 ody_gits0_baser7_t
13212 #define bustype_ODY_GITS0_BASER7 CSR_TYPE_NCB
13213 #define basename_ODY_GITS0_BASER7 "GITS0_BASER7"
13214 #define device_bar_ODY_GITS0_BASER7 0x0 /* PF_BAR0 */
13215 #define busnum_ODY_GITS0_BASER7 0
13216 #define arguments_ODY_GITS0_BASER7 -1, -1, -1, -1
13217 
13218 /**
13219  * Register (NCB) gits0_c_errinsr
13220  *
13221  * GITS0 C Errinsr Register
13222  * The GITS0_C_ERRINSR characteristics are:
13223  *
13224  * * Purpose
13225  * This register can inject errors into the ITS Device cache RAM if ECC is enabaled.
13226  * You can use this register to test your error recovery software.
13227  *
13228  * * Usage constraints
13229  * If GICD(A)_SAC.GICTNS == 0, then only Secure software can access the contents of this register.
13230  *
13231  * \> *Note*
13232  * \> The bit assignments within this register depend on whether a write access or read access occurs.
13233  */
13234 union ody_gits0_c_errinsr {
13235 	uint64_t u;
13236 	struct ody_gits0_c_errinsr_s {
13237 		uint64_t errins1loc                  : 9;
13238 		uint64_t reserved_9_14               : 6;
13239 		uint64_t errins1valid                : 1;
13240 		uint64_t errins2loc                  : 9;
13241 		uint64_t reserved_25_30              : 6;
13242 		uint64_t errins2valid                : 1;
13243 		uint64_t addr                        : 16;
13244 		uint64_t reserved_48_59              : 12;
13245 		uint64_t disablewritecheck           : 1;
13246 		uint64_t reserved_61_62              : 2;
13247 		uint64_t valid                       : 1;
13248 	} s;
13249 	/* struct ody_gits0_c_errinsr_s cn; */
13250 };
13251 typedef union ody_gits0_c_errinsr ody_gits0_c_errinsr_t;
13252 
13253 #define ODY_GITS0_C_ERRINSR ODY_GITS0_C_ERRINSR_FUNC()
13254 static inline uint64_t ODY_GITS0_C_ERRINSR_FUNC(void) __attribute__ ((pure, always_inline));
13255 static inline uint64_t ODY_GITS0_C_ERRINSR_FUNC(void)
13256 {
13257 	return 0x80100004c010ll;
13258 }
13259 
13260 #define typedef_ODY_GITS0_C_ERRINSR ody_gits0_c_errinsr_t
13261 #define bustype_ODY_GITS0_C_ERRINSR CSR_TYPE_NCB
13262 #define basename_ODY_GITS0_C_ERRINSR "GITS0_C_ERRINSR"
13263 #define device_bar_ODY_GITS0_C_ERRINSR 0x0 /* PF_BAR0 */
13264 #define busnum_ODY_GITS0_C_ERRINSR 0
13265 #define arguments_ODY_GITS0_C_ERRINSR -1, -1, -1, -1
13266 
13267 /**
13268  * Register (NCB) gits0_cbaser
13269  *
13270  * GITS0 Cbaser Register
13271  * The GITS0_CBASER characteristics are:
13272  *
13273  * * Purpose
13274  * Specifies the base address and size of the ITS command queue
13275  *
13276  * * Usage constraints
13277  * When GITS0_CTLR.Enabled == 1 or GITS0_CTLR.Quiescent == 0, writing this register is UNPREDICTABLE.
13278  *
13279  * Bits [63:32] and bits [31:0] are accessible separately
13280  *
13281  * \> *Note*
13282  *
13283  * \> * The command queue is a circular buffer and wraps at Physical Address [47:0] +
13284  * (4096 * (Size + 1)).
13285  * \> * When this register is successfully written, the value of GITS0_CREADR is set to zero.
13286  */
13287 union ody_gits0_cbaser {
13288 	uint64_t u;
13289 	struct ody_gits0_cbaser_s {
13290 		uint64_t size                        : 8;
13291 		uint64_t reserved_8_9                : 2;
13292 		uint64_t shareability                : 2;
13293 		uint64_t physicaladdress             : 40;
13294 		uint64_t reserved_52                 : 1;
13295 		uint64_t outercacheability           : 3;
13296 		uint64_t reserved_56_58              : 3;
13297 		uint64_t cacheability                : 3;
13298 		uint64_t reserved_62                 : 1;
13299 		uint64_t valid                       : 1;
13300 	} s;
13301 	/* struct ody_gits0_cbaser_s cn; */
13302 };
13303 typedef union ody_gits0_cbaser ody_gits0_cbaser_t;
13304 
13305 #define ODY_GITS0_CBASER ODY_GITS0_CBASER_FUNC()
13306 static inline uint64_t ODY_GITS0_CBASER_FUNC(void) __attribute__ ((pure, always_inline));
13307 static inline uint64_t ODY_GITS0_CBASER_FUNC(void)
13308 {
13309 	return 0x801000040080ll;
13310 }
13311 
13312 #define typedef_ODY_GITS0_CBASER ody_gits0_cbaser_t
13313 #define bustype_ODY_GITS0_CBASER CSR_TYPE_NCB
13314 #define basename_ODY_GITS0_CBASER "GITS0_CBASER"
13315 #define device_bar_ODY_GITS0_CBASER 0x0 /* PF_BAR0 */
13316 #define busnum_ODY_GITS0_CBASER 0
13317 #define arguments_ODY_GITS0_CBASER -1, -1, -1, -1
13318 
13319 /**
13320  * Register (NCB) gits0_cfgid
13321  *
13322  * GITS0 Cfgid Register
13323  * The GITS0S_CFGID characteristics are:
13324  *
13325  * * Purpose
13326  * This register returns information about the configuration of the ITS block such as its ID number.
13327  *
13328  * * Usage constraints
13329  * There are no usage constraints.
13330  */
13331 union ody_gits0_cfgid {
13332 	uint64_t u;
13333 	struct ody_gits0_cfgid_s {
13334 		uint64_t its_number                  : 8;
13335 		uint64_t lpi_credit_count            : 4;
13336 		uint64_t target_bits                 : 4;
13337 		uint64_t msi_64                      : 1;
13338 		uint64_t low_latency_support         : 1;
13339 		uint64_t cache_ecc                   : 1;
13340 		uint64_t reserved_19                 : 1;
13341 		uint64_t collection_cache_index_bits : 4;
13342 		uint64_t device_cache_index_bits     : 4;
13343 		uint64_t event_cache_index_bits      : 4;
13344 		uint64_t vpe_bits                    : 4;
13345 		uint64_t low_latency_lpi_credit_count : 4;
13346 		uint64_t reserved_40_63              : 24;
13347 	} s;
13348 	/* struct ody_gits0_cfgid_s cn; */
13349 };
13350 typedef union ody_gits0_cfgid ody_gits0_cfgid_t;
13351 
13352 #define ODY_GITS0_CFGID ODY_GITS0_CFGID_FUNC()
13353 static inline uint64_t ODY_GITS0_CFGID_FUNC(void) __attribute__ ((pure, always_inline));
13354 static inline uint64_t ODY_GITS0_CFGID_FUNC(void)
13355 {
13356 	return 0x80100004f000ll;
13357 }
13358 
13359 #define typedef_ODY_GITS0_CFGID ody_gits0_cfgid_t
13360 #define bustype_ODY_GITS0_CFGID CSR_TYPE_NCB
13361 #define basename_ODY_GITS0_CFGID "GITS0_CFGID"
13362 #define device_bar_ODY_GITS0_CFGID 0x0 /* PF_BAR0 */
13363 #define busnum_ODY_GITS0_CFGID 0
13364 #define arguments_ODY_GITS0_CFGID -1, -1, -1, -1
13365 
13366 /**
13367  * Register (NCB32b) gits0_cidr0
13368  *
13369  * GITS0 Cidr0 Register
13370  * The GITS0_CIDR0 characteristics are:
13371  *
13372  * * Purpose
13373  * This register is one of the Component Identification Registers and returns the first
13374  * part of the Preamble.
13375  *
13376  * * Usage constraints
13377  * There are no usage constraints.
13378  */
13379 union ody_gits0_cidr0 {
13380 	uint32_t u;
13381 	struct ody_gits0_cidr0_s {
13382 		uint32_t prmbl_0                     : 8;
13383 		uint32_t reserved_8_31               : 24;
13384 	} s;
13385 	/* struct ody_gits0_cidr0_s cn; */
13386 };
13387 typedef union ody_gits0_cidr0 ody_gits0_cidr0_t;
13388 
13389 #define ODY_GITS0_CIDR0 ODY_GITS0_CIDR0_FUNC()
13390 static inline uint64_t ODY_GITS0_CIDR0_FUNC(void) __attribute__ ((pure, always_inline));
13391 static inline uint64_t ODY_GITS0_CIDR0_FUNC(void)
13392 {
13393 	return 0x80100004fff0ll;
13394 }
13395 
13396 #define typedef_ODY_GITS0_CIDR0 ody_gits0_cidr0_t
13397 #define bustype_ODY_GITS0_CIDR0 CSR_TYPE_NCB32b
13398 #define basename_ODY_GITS0_CIDR0 "GITS0_CIDR0"
13399 #define device_bar_ODY_GITS0_CIDR0 0x0 /* PF_BAR0 */
13400 #define busnum_ODY_GITS0_CIDR0 0
13401 #define arguments_ODY_GITS0_CIDR0 -1, -1, -1, -1
13402 
13403 /**
13404  * Register (NCB32b) gits0_cidr1
13405  *
13406  * GITS0 Cidr1 Register
13407  * The GITS0_CIDR1 characteristics are:
13408  *
13409  * * Purpose
13410  * This register is one of the Component Identification Registers and returns the
13411  * second part of the Preamble as well as the Component Class.
13412  *
13413  * * Usage constraints
13414  * There are no usage constraints.
13415  */
13416 union ody_gits0_cidr1 {
13417 	uint32_t u;
13418 	struct ody_gits0_cidr1_s {
13419 		uint32_t prmbl_1                     : 4;
13420 		uint32_t class_f                     : 4;
13421 		uint32_t reserved_8_31               : 24;
13422 	} s;
13423 	/* struct ody_gits0_cidr1_s cn; */
13424 };
13425 typedef union ody_gits0_cidr1 ody_gits0_cidr1_t;
13426 
13427 #define ODY_GITS0_CIDR1 ODY_GITS0_CIDR1_FUNC()
13428 static inline uint64_t ODY_GITS0_CIDR1_FUNC(void) __attribute__ ((pure, always_inline));
13429 static inline uint64_t ODY_GITS0_CIDR1_FUNC(void)
13430 {
13431 	return 0x80100004fff4ll;
13432 }
13433 
13434 #define typedef_ODY_GITS0_CIDR1 ody_gits0_cidr1_t
13435 #define bustype_ODY_GITS0_CIDR1 CSR_TYPE_NCB32b
13436 #define basename_ODY_GITS0_CIDR1 "GITS0_CIDR1"
13437 #define device_bar_ODY_GITS0_CIDR1 0x0 /* PF_BAR0 */
13438 #define busnum_ODY_GITS0_CIDR1 0
13439 #define arguments_ODY_GITS0_CIDR1 -1, -1, -1, -1
13440 
13441 /**
13442  * Register (NCB32b) gits0_cidr2
13443  *
13444  * GITS0 Cidr2 Register
13445  * The GITS0_CIDR2 characteristics are:
13446  *
13447  * * Purpose
13448  * This register is one of the Component Identification Registers and returns the third
13449  * part of the Preamble.
13450  *
13451  * * Usage constraints
13452  * There are no usage constraints.
13453  */
13454 union ody_gits0_cidr2 {
13455 	uint32_t u;
13456 	struct ody_gits0_cidr2_s {
13457 		uint32_t prmbl_2                     : 8;
13458 		uint32_t reserved_8_31               : 24;
13459 	} s;
13460 	/* struct ody_gits0_cidr2_s cn; */
13461 };
13462 typedef union ody_gits0_cidr2 ody_gits0_cidr2_t;
13463 
13464 #define ODY_GITS0_CIDR2 ODY_GITS0_CIDR2_FUNC()
13465 static inline uint64_t ODY_GITS0_CIDR2_FUNC(void) __attribute__ ((pure, always_inline));
13466 static inline uint64_t ODY_GITS0_CIDR2_FUNC(void)
13467 {
13468 	return 0x80100004fff8ll;
13469 }
13470 
13471 #define typedef_ODY_GITS0_CIDR2 ody_gits0_cidr2_t
13472 #define bustype_ODY_GITS0_CIDR2 CSR_TYPE_NCB32b
13473 #define basename_ODY_GITS0_CIDR2 "GITS0_CIDR2"
13474 #define device_bar_ODY_GITS0_CIDR2 0x0 /* PF_BAR0 */
13475 #define busnum_ODY_GITS0_CIDR2 0
13476 #define arguments_ODY_GITS0_CIDR2 -1, -1, -1, -1
13477 
13478 /**
13479  * Register (NCB32b) gits0_cidr3
13480  *
13481  * GITS0 Cidr3 Register
13482  * The GITS0_CIDR3 characteristics are:
13483  *
13484  * * Purpose
13485  * This register is one of the Component Identification Registers and returns the
13486  * fourth part of the Preamble.
13487  *
13488  * * Usage constraints
13489  * There are no usage constraints.
13490  */
13491 union ody_gits0_cidr3 {
13492 	uint32_t u;
13493 	struct ody_gits0_cidr3_s {
13494 		uint32_t prmbl_3                     : 8;
13495 		uint32_t reserved_8_31               : 24;
13496 	} s;
13497 	/* struct ody_gits0_cidr3_s cn; */
13498 };
13499 typedef union ody_gits0_cidr3 ody_gits0_cidr3_t;
13500 
13501 #define ODY_GITS0_CIDR3 ODY_GITS0_CIDR3_FUNC()
13502 static inline uint64_t ODY_GITS0_CIDR3_FUNC(void) __attribute__ ((pure, always_inline));
13503 static inline uint64_t ODY_GITS0_CIDR3_FUNC(void)
13504 {
13505 	return 0x80100004fffcll;
13506 }
13507 
13508 #define typedef_ODY_GITS0_CIDR3 ody_gits0_cidr3_t
13509 #define bustype_ODY_GITS0_CIDR3 CSR_TYPE_NCB32b
13510 #define basename_ODY_GITS0_CIDR3 "GITS0_CIDR3"
13511 #define device_bar_ODY_GITS0_CIDR3 0x0 /* PF_BAR0 */
13512 #define busnum_ODY_GITS0_CIDR3 0
13513 #define arguments_ODY_GITS0_CIDR3 -1, -1, -1, -1
13514 
13515 /**
13516  * Register (NCB) gits0_creadr
13517  *
13518  * GITS0 Creadr Register
13519  * The GITS0_CREADR characteristics are:
13520  *
13521  * * Purpose
13522  * Specifies the offset from GITS0_CBASER where the ITS reads the next ITS command.
13523  *
13524  * * Usage constraints
13525  * This register is cleared to 0 when a value is written to GITS0_CBASER.
13526  *
13527  * Bits [63:32] and bits [31:0] are accessible separately.
13528  */
13529 union ody_gits0_creadr {
13530 	uint64_t u;
13531 	struct ody_gits0_creadr_s {
13532 		uint64_t stalled                     : 1;
13533 		uint64_t reserved_1_4                : 4;
13534 		uint64_t offset                      : 15;
13535 		uint64_t reserved_20_63              : 44;
13536 	} s;
13537 	/* struct ody_gits0_creadr_s cn; */
13538 };
13539 typedef union ody_gits0_creadr ody_gits0_creadr_t;
13540 
13541 #define ODY_GITS0_CREADR ODY_GITS0_CREADR_FUNC()
13542 static inline uint64_t ODY_GITS0_CREADR_FUNC(void) __attribute__ ((pure, always_inline));
13543 static inline uint64_t ODY_GITS0_CREADR_FUNC(void)
13544 {
13545 	return 0x801000040090ll;
13546 }
13547 
13548 #define typedef_ODY_GITS0_CREADR ody_gits0_creadr_t
13549 #define bustype_ODY_GITS0_CREADR CSR_TYPE_NCB
13550 #define basename_ODY_GITS0_CREADR "GITS0_CREADR"
13551 #define device_bar_ODY_GITS0_CREADR 0x0 /* PF_BAR0 */
13552 #define busnum_ODY_GITS0_CREADR 0
13553 #define arguments_ODY_GITS0_CREADR -1, -1, -1, -1
13554 
13555 /**
13556  * Register (NCB32b) gits0_ctlr
13557  *
13558  * GITS0 Ctlr Register
13559  * The GITS0_CTLR characteristics are:
13560  *
13561  * * Purpose
13562  * Controls the operation of an ITS.
13563  *
13564  * * Usage constraints
13565  * There are no usage constraints.
13566  */
13567 union ody_gits0_ctlr {
13568 	uint32_t u;
13569 	struct ody_gits0_ctlr_s {
13570 		uint32_t enabled                     : 1;
13571 		uint32_t reserved_1_30               : 30;
13572 		uint32_t quiescent                   : 1;
13573 	} s;
13574 	/* struct ody_gits0_ctlr_s cn; */
13575 };
13576 typedef union ody_gits0_ctlr ody_gits0_ctlr_t;
13577 
13578 #define ODY_GITS0_CTLR ODY_GITS0_CTLR_FUNC()
13579 static inline uint64_t ODY_GITS0_CTLR_FUNC(void) __attribute__ ((pure, always_inline));
13580 static inline uint64_t ODY_GITS0_CTLR_FUNC(void)
13581 {
13582 	return 0x801000040000ll;
13583 }
13584 
13585 #define typedef_ODY_GITS0_CTLR ody_gits0_ctlr_t
13586 #define bustype_ODY_GITS0_CTLR CSR_TYPE_NCB32b
13587 #define basename_ODY_GITS0_CTLR "GITS0_CTLR"
13588 #define device_bar_ODY_GITS0_CTLR 0x0 /* PF_BAR0 */
13589 #define busnum_ODY_GITS0_CTLR 0
13590 #define arguments_ODY_GITS0_CTLR -1, -1, -1, -1
13591 
13592 /**
13593  * Register (NCB) gits0_cwriter
13594  *
13595  * GITS0 Cwriter Register
13596  * The GITS0_CWRITER characteristics are:
13597  *
13598  * * Purpose
13599  * Specifies the offset from GITS0_CBASER where software writes the next ITS command.
13600  *
13601  * * Usage constraints
13602  * If GITS0_CWRITER is written with a value outside of the valid range specified by
13603  * GITS0_CBASER.Physical_Address and GITS0_CBASER.Size then the command queue is
13604  * considered invalid, and no further commands are processed until GITS0_CWRITER is
13605  * written with a value that is in the valid range.
13606  *
13607  * Bits [63:32] and bits [31:0] are accessible separately
13608  */
13609 union ody_gits0_cwriter {
13610 	uint64_t u;
13611 	struct ody_gits0_cwriter_s {
13612 		uint64_t retry                       : 1;
13613 		uint64_t reserved_1_4                : 4;
13614 		uint64_t offset                      : 15;
13615 		uint64_t reserved_20_63              : 44;
13616 	} s;
13617 	/* struct ody_gits0_cwriter_s cn; */
13618 };
13619 typedef union ody_gits0_cwriter ody_gits0_cwriter_t;
13620 
13621 #define ODY_GITS0_CWRITER ODY_GITS0_CWRITER_FUNC()
13622 static inline uint64_t ODY_GITS0_CWRITER_FUNC(void) __attribute__ ((pure, always_inline));
13623 static inline uint64_t ODY_GITS0_CWRITER_FUNC(void)
13624 {
13625 	return 0x801000040088ll;
13626 }
13627 
13628 #define typedef_ODY_GITS0_CWRITER ody_gits0_cwriter_t
13629 #define bustype_ODY_GITS0_CWRITER CSR_TYPE_NCB
13630 #define basename_ODY_GITS0_CWRITER "GITS0_CWRITER"
13631 #define device_bar_ODY_GITS0_CWRITER 0x0 /* PF_BAR0 */
13632 #define busnum_ODY_GITS0_CWRITER 0
13633 #define arguments_ODY_GITS0_CWRITER -1, -1, -1, -1
13634 
13635 /**
13636  * Register (NCB) gits0_d_errinsr
13637  *
13638  * GITS0 D Errinsr Register
13639  * The GITS0_D_ERRINSR characteristics are:
13640  *
13641  * * Purpose
13642  * This register can inject errors into the ITS Device cache RAM if ECC is enabaled.
13643  * You can use this register to test your error recovery software.
13644  *
13645  * * Usage constraints
13646  * If GICD(A)_SAC.GICTNS == 0, then only Secure software can access the contents of this register.
13647  *
13648  * \> *Note*
13649  * \> The bit assignments within this register depend on whether a write access or read access occurs.
13650  */
13651 union ody_gits0_d_errinsr {
13652 	uint64_t u;
13653 	struct ody_gits0_d_errinsr_s {
13654 		uint64_t errins1loc                  : 9;
13655 		uint64_t reserved_9_14               : 6;
13656 		uint64_t errins1valid                : 1;
13657 		uint64_t errins2loc                  : 9;
13658 		uint64_t reserved_25_30              : 6;
13659 		uint64_t errins2valid                : 1;
13660 		uint64_t addr                        : 16;
13661 		uint64_t reserved_48_59              : 12;
13662 		uint64_t disablewritecheck           : 1;
13663 		uint64_t reserved_61_62              : 2;
13664 		uint64_t valid                       : 1;
13665 	} s;
13666 	/* struct ody_gits0_d_errinsr_s cn; */
13667 };
13668 typedef union ody_gits0_d_errinsr ody_gits0_d_errinsr_t;
13669 
13670 #define ODY_GITS0_D_ERRINSR ODY_GITS0_D_ERRINSR_FUNC()
13671 static inline uint64_t ODY_GITS0_D_ERRINSR_FUNC(void) __attribute__ ((pure, always_inline));
13672 static inline uint64_t ODY_GITS0_D_ERRINSR_FUNC(void)
13673 {
13674 	return 0x80100004c000ll;
13675 }
13676 
13677 #define typedef_ODY_GITS0_D_ERRINSR ody_gits0_d_errinsr_t
13678 #define bustype_ODY_GITS0_D_ERRINSR CSR_TYPE_NCB
13679 #define basename_ODY_GITS0_D_ERRINSR "GITS0_D_ERRINSR"
13680 #define device_bar_ODY_GITS0_D_ERRINSR 0x0 /* PF_BAR0 */
13681 #define busnum_ODY_GITS0_D_ERRINSR 0
13682 #define arguments_ODY_GITS0_D_ERRINSR -1, -1, -1, -1
13683 
13684 /**
13685  * Register (NCB32b) gits0_fctlr
13686  *
13687  * GITS0 Fctlr Register
13688  * The GITS0_FCTLR characteristics are:
13689  *
13690  * * Purpose
13691  * This register controls functions in the ITS such as cache invalidation, clock
13692  * gating, and the scrubbing of all RAMs.
13693  *
13694  * * Usage constraints
13695  * There are no usage constraints.
13696  */
13697 union ody_gits0_fctlr {
13698 	uint32_t u;
13699 	struct ody_gits0_fctlr_s {
13700 		uint32_t sip                         : 1;
13701 		uint32_t lte                         : 1;
13702 		uint32_t uee                         : 1;
13703 		uint32_t cee                         : 1;
13704 		uint32_t cgo                         : 3;
13705 		uint32_t leo                         : 1;
13706 		uint32_t aee                         : 1;
13707 		uint32_t qd                          : 1;
13708 		uint32_t qak                         : 1;
13709 		uint32_t poison_check                : 1;
13710 		uint32_t ll_lpi_cr_init              : 2;
13711 		uint32_t reserved_14_15              : 2;
13712 		uint32_t icc                         : 1;
13713 		uint32_t idc                         : 1;
13714 		uint32_t iec                         : 1;
13715 		uint32_t reserved_19                 : 1;
13716 		uint32_t lpi_cr_init                 : 4;
13717 		uint32_t reserved_24_27              : 4;
13718 		uint32_t cmd_flush                   : 2;
13719 		uint32_t pwe                         : 1;
13720 		uint32_t dcc                         : 1;
13721 	} s;
13722 	/* struct ody_gits0_fctlr_s cn; */
13723 };
13724 typedef union ody_gits0_fctlr ody_gits0_fctlr_t;
13725 
13726 #define ODY_GITS0_FCTLR ODY_GITS0_FCTLR_FUNC()
13727 static inline uint64_t ODY_GITS0_FCTLR_FUNC(void) __attribute__ ((pure, always_inline));
13728 static inline uint64_t ODY_GITS0_FCTLR_FUNC(void)
13729 {
13730 	return 0x801000040020ll;
13731 }
13732 
13733 #define typedef_ODY_GITS0_FCTLR ody_gits0_fctlr_t
13734 #define bustype_ODY_GITS0_FCTLR CSR_TYPE_NCB32b
13735 #define basename_ODY_GITS0_FCTLR "GITS0_FCTLR"
13736 #define device_bar_ODY_GITS0_FCTLR 0x0 /* PF_BAR0 */
13737 #define busnum_ODY_GITS0_FCTLR 0
13738 #define arguments_ODY_GITS0_FCTLR -1, -1, -1, -1
13739 
13740 /**
13741  * Register (NCB32b) gits0_iidr
13742  *
13743  * GITS0 Iidr Register
13744  * The GITS0_IIDR characteristics are:
13745  *
13746  * * Purpose
13747  * Provides information about the implementer and revision of the ITS.
13748  *
13749  * * Usage constraints
13750  * There are no usage constraints.
13751  */
13752 union ody_gits0_iidr {
13753 	uint32_t u;
13754 	struct ody_gits0_iidr_s {
13755 		uint32_t implementer                 : 12;
13756 		uint32_t revision                    : 4;
13757 		uint32_t variant                     : 4;
13758 		uint32_t reserved_20_23              : 4;
13759 		uint32_t productid                   : 8;
13760 	} s;
13761 	/* struct ody_gits0_iidr_s cn; */
13762 };
13763 typedef union ody_gits0_iidr ody_gits0_iidr_t;
13764 
13765 #define ODY_GITS0_IIDR ODY_GITS0_IIDR_FUNC()
13766 static inline uint64_t ODY_GITS0_IIDR_FUNC(void) __attribute__ ((pure, always_inline));
13767 static inline uint64_t ODY_GITS0_IIDR_FUNC(void)
13768 {
13769 	return 0x801000040004ll;
13770 }
13771 
13772 #define typedef_ODY_GITS0_IIDR ody_gits0_iidr_t
13773 #define bustype_ODY_GITS0_IIDR CSR_TYPE_NCB32b
13774 #define basename_ODY_GITS0_IIDR "GITS0_IIDR"
13775 #define device_bar_ODY_GITS0_IIDR 0x0 /* PF_BAR0 */
13776 #define busnum_ODY_GITS0_IIDR 0
13777 #define arguments_ODY_GITS0_IIDR -1, -1, -1, -1
13778 
13779 /**
13780  * Register (NCB32b) gits0_mpamidr
13781  *
13782  * GITS0 Mpamidr Register
13783  * The GITS0_MPAMIDR characteristics are:
13784  *
13785  * * Purpose
13786  * Reports the maximum support PARTID and PMG values
13787  *
13788  * * Usage constraints
13789  * There are no usage constraints.
13790  */
13791 union ody_gits0_mpamidr {
13792 	uint32_t u;
13793 	struct ody_gits0_mpamidr_s {
13794 		uint32_t partid_max                  : 16;
13795 		uint32_t pmg_max                     : 8;
13796 		uint32_t reserved_24_31              : 8;
13797 	} s;
13798 	/* struct ody_gits0_mpamidr_s cn; */
13799 };
13800 typedef union ody_gits0_mpamidr ody_gits0_mpamidr_t;
13801 
13802 #define ODY_GITS0_MPAMIDR ODY_GITS0_MPAMIDR_FUNC()
13803 static inline uint64_t ODY_GITS0_MPAMIDR_FUNC(void) __attribute__ ((pure, always_inline));
13804 static inline uint64_t ODY_GITS0_MPAMIDR_FUNC(void)
13805 {
13806 	return 0x801000040010ll;
13807 }
13808 
13809 #define typedef_ODY_GITS0_MPAMIDR ody_gits0_mpamidr_t
13810 #define bustype_ODY_GITS0_MPAMIDR CSR_TYPE_NCB32b
13811 #define basename_ODY_GITS0_MPAMIDR "GITS0_MPAMIDR"
13812 #define device_bar_ODY_GITS0_MPAMIDR 0x0 /* PF_BAR0 */
13813 #define busnum_ODY_GITS0_MPAMIDR 0
13814 #define arguments_ODY_GITS0_MPAMIDR -1, -1, -1, -1
13815 
13816 /**
13817  * Register (NCB32b) gits0_mpidr
13818  *
13819  * GITS0 Mpidr Register
13820  * The GITS0_MPIDR characteristics are:
13821  *
13822  * * Purpose
13823  * Reports ITS's affinity when the vPE Table is shared with Redistributors.
13824  *
13825  * * Usage constraints
13826  * There are no usage constraints.
13827  */
13828 union ody_gits0_mpidr {
13829 	uint32_t u;
13830 	struct ody_gits0_mpidr_s {
13831 		uint32_t reserved_0_7                : 8;
13832 		uint32_t aff1                        : 8;
13833 		uint32_t aff2                        : 8;
13834 		uint32_t aff3                        : 8;
13835 	} s;
13836 	/* struct ody_gits0_mpidr_s cn; */
13837 };
13838 typedef union ody_gits0_mpidr ody_gits0_mpidr_t;
13839 
13840 #define ODY_GITS0_MPIDR ODY_GITS0_MPIDR_FUNC()
13841 static inline uint64_t ODY_GITS0_MPIDR_FUNC(void) __attribute__ ((pure, always_inline));
13842 static inline uint64_t ODY_GITS0_MPIDR_FUNC(void)
13843 {
13844 	return 0x801000040018ll;
13845 }
13846 
13847 #define typedef_ODY_GITS0_MPIDR ody_gits0_mpidr_t
13848 #define bustype_ODY_GITS0_MPIDR CSR_TYPE_NCB32b
13849 #define basename_ODY_GITS0_MPIDR "GITS0_MPIDR"
13850 #define device_bar_ODY_GITS0_MPIDR 0x0 /* PF_BAR0 */
13851 #define busnum_ODY_GITS0_MPIDR 0
13852 #define arguments_ODY_GITS0_MPIDR -1, -1, -1, -1
13853 
13854 /**
13855  * Register (NCB) gits0_opr
13856  *
13857  * GITS0 Opr Register
13858  * The GITS0_OPR characteristics are:
13859  *
13860  * * Purpose
13861  * This register controls a range of implementation defined ITS test features.
13862  */
13863 union ody_gits0_opr {
13864 	uint64_t u;
13865 	struct ody_gits0_opr_s {
13866 		uint64_t event_id                    : 20;
13867 		uint64_t reserved_20_31              : 12;
13868 		uint64_t device_id                   : 24;
13869 		uint64_t reserved_56_59              : 4;
13870 		uint64_t lock_type                   : 4;
13871 	} s;
13872 	/* struct ody_gits0_opr_s cn; */
13873 };
13874 typedef union ody_gits0_opr ody_gits0_opr_t;
13875 
13876 #define ODY_GITS0_OPR ODY_GITS0_OPR_FUNC()
13877 static inline uint64_t ODY_GITS0_OPR_FUNC(void) __attribute__ ((pure, always_inline));
13878 static inline uint64_t ODY_GITS0_OPR_FUNC(void)
13879 {
13880 	return 0x801000040028ll;
13881 }
13882 
13883 #define typedef_ODY_GITS0_OPR ody_gits0_opr_t
13884 #define bustype_ODY_GITS0_OPR CSR_TYPE_NCB
13885 #define basename_ODY_GITS0_OPR "GITS0_OPR"
13886 #define device_bar_ODY_GITS0_OPR 0x0 /* PF_BAR0 */
13887 #define busnum_ODY_GITS0_OPR 0
13888 #define arguments_ODY_GITS0_OPR -1, -1, -1, -1
13889 
13890 /**
13891  * Register (NCB) gits0_opsr
13892  *
13893  * GITS0 Opsr Register
13894  * The GITS0_OPSR characteristics are:
13895  *
13896  * * Purpose
13897  * This register indicates the results of GITS0_OPR operations
13898  */
13899 union ody_gits0_opsr {
13900 	uint64_t u;
13901 	struct ody_gits0_opsr_s {
13902 		uint64_t pid                         : 16;
13903 		uint64_t reserved_16_31              : 16;
13904 		uint64_t target                      : 14;
13905 		uint64_t reserved_46_47              : 2;
13906 		uint64_t entry_locked                : 1;
13907 		uint64_t virt                        : 1;
13908 		uint64_t reserved_50_60              : 11;
13909 		uint64_t request_in_progress         : 1;
13910 		uint64_t request_pass                : 1;
13911 		uint64_t request_complete            : 1;
13912 	} s;
13913 	/* struct ody_gits0_opsr_s cn; */
13914 };
13915 typedef union ody_gits0_opsr ody_gits0_opsr_t;
13916 
13917 #define ODY_GITS0_OPSR ODY_GITS0_OPSR_FUNC()
13918 static inline uint64_t ODY_GITS0_OPSR_FUNC(void) __attribute__ ((pure, always_inline));
13919 static inline uint64_t ODY_GITS0_OPSR_FUNC(void)
13920 {
13921 	return 0x801000040030ll;
13922 }
13923 
13924 #define typedef_ODY_GITS0_OPSR ody_gits0_opsr_t
13925 #define bustype_ODY_GITS0_OPSR CSR_TYPE_NCB
13926 #define basename_ODY_GITS0_OPSR "GITS0_OPSR"
13927 #define device_bar_ODY_GITS0_OPSR 0x0 /* PF_BAR0 */
13928 #define busnum_ODY_GITS0_OPSR 0
13929 #define arguments_ODY_GITS0_OPSR -1, -1, -1, -1
13930 
13931 /**
13932  * Register (NCB32b) gits0_partidr
13933  *
13934  * GITS0 Partidr Register
13935  * The GITS0_PARTIDR characteristics are:
13936  *
13937  * * Purpose
13938  * Reports the maximum support PARTID and PMG values
13939  *
13940  * * Usage constraints
13941  * There are no usage constraints.
13942  */
13943 union ody_gits0_partidr {
13944 	uint32_t u;
13945 	struct ody_gits0_partidr_s {
13946 		uint32_t partid                      : 9;
13947 		uint32_t reserved_9_15               : 7;
13948 		uint32_t pmg                         : 1;
13949 		uint32_t reserved_17_31              : 15;
13950 	} s;
13951 	/* struct ody_gits0_partidr_s cn; */
13952 };
13953 typedef union ody_gits0_partidr ody_gits0_partidr_t;
13954 
13955 #define ODY_GITS0_PARTIDR ODY_GITS0_PARTIDR_FUNC()
13956 static inline uint64_t ODY_GITS0_PARTIDR_FUNC(void) __attribute__ ((pure, always_inline));
13957 static inline uint64_t ODY_GITS0_PARTIDR_FUNC(void)
13958 {
13959 	return 0x801000040014ll;
13960 }
13961 
13962 #define typedef_ODY_GITS0_PARTIDR ody_gits0_partidr_t
13963 #define bustype_ODY_GITS0_PARTIDR CSR_TYPE_NCB32b
13964 #define basename_ODY_GITS0_PARTIDR "GITS0_PARTIDR"
13965 #define device_bar_ODY_GITS0_PARTIDR 0x0 /* PF_BAR0 */
13966 #define busnum_ODY_GITS0_PARTIDR 0
13967 #define arguments_ODY_GITS0_PARTIDR -1, -1, -1, -1
13968 
13969 /**
13970  * Register (NCB32b) gits0_pidr0
13971  *
13972  * GITS0 Pidr0 Register
13973  * The GITS0_PIDR0 characteristics are:
13974  *
13975  * * Purpose
13976  * This register returns byte[0] of the peripheral ID of the Interrupt Translation Service page.
13977  *
13978  * * Usage constraints
13979  * There are no usage constraints.
13980  */
13981 union ody_gits0_pidr0 {
13982 	uint32_t u;
13983 	struct ody_gits0_pidr0_s {
13984 		uint32_t part_0                      : 8;
13985 		uint32_t reserved_8_31               : 24;
13986 	} s;
13987 	/* struct ody_gits0_pidr0_s cn; */
13988 };
13989 typedef union ody_gits0_pidr0 ody_gits0_pidr0_t;
13990 
13991 #define ODY_GITS0_PIDR0 ODY_GITS0_PIDR0_FUNC()
13992 static inline uint64_t ODY_GITS0_PIDR0_FUNC(void) __attribute__ ((pure, always_inline));
13993 static inline uint64_t ODY_GITS0_PIDR0_FUNC(void)
13994 {
13995 	return 0x80100004ffe0ll;
13996 }
13997 
13998 #define typedef_ODY_GITS0_PIDR0 ody_gits0_pidr0_t
13999 #define bustype_ODY_GITS0_PIDR0 CSR_TYPE_NCB32b
14000 #define basename_ODY_GITS0_PIDR0 "GITS0_PIDR0"
14001 #define device_bar_ODY_GITS0_PIDR0 0x0 /* PF_BAR0 */
14002 #define busnum_ODY_GITS0_PIDR0 0
14003 #define arguments_ODY_GITS0_PIDR0 -1, -1, -1, -1
14004 
14005 /**
14006  * Register (NCB32b) gits0_pidr1
14007  *
14008  * GITS0 Pidr1 Register
14009  * The GITS0_PIDR1 characteristics are:
14010  *
14011  * * Purpose
14012  * This register returns byte[1] of the peripheral ID of the Interrupt Translation Service page.
14013  *
14014  * * Usage constraints
14015  * There are no usage constraints.
14016  */
14017 union ody_gits0_pidr1 {
14018 	uint32_t u;
14019 	struct ody_gits0_pidr1_s {
14020 		uint32_t part_1                      : 4;
14021 		uint32_t des_0                       : 4;
14022 		uint32_t reserved_8_31               : 24;
14023 	} s;
14024 	/* struct ody_gits0_pidr1_s cn; */
14025 };
14026 typedef union ody_gits0_pidr1 ody_gits0_pidr1_t;
14027 
14028 #define ODY_GITS0_PIDR1 ODY_GITS0_PIDR1_FUNC()
14029 static inline uint64_t ODY_GITS0_PIDR1_FUNC(void) __attribute__ ((pure, always_inline));
14030 static inline uint64_t ODY_GITS0_PIDR1_FUNC(void)
14031 {
14032 	return 0x80100004ffe4ll;
14033 }
14034 
14035 #define typedef_ODY_GITS0_PIDR1 ody_gits0_pidr1_t
14036 #define bustype_ODY_GITS0_PIDR1 CSR_TYPE_NCB32b
14037 #define basename_ODY_GITS0_PIDR1 "GITS0_PIDR1"
14038 #define device_bar_ODY_GITS0_PIDR1 0x0 /* PF_BAR0 */
14039 #define busnum_ODY_GITS0_PIDR1 0
14040 #define arguments_ODY_GITS0_PIDR1 -1, -1, -1, -1
14041 
14042 /**
14043  * Register (NCB32b) gits0_pidr2
14044  *
14045  * GITS0 Pidr2 Register
14046  * The GITS0_PIDR2 characteristics are:
14047  *
14048  * * Purpose
14049  * This register returns byte[2] of the peripheral ID of the Interrupt Translation Service page.
14050  *
14051  * * Usage constraints
14052  * There are no usage constraints.
14053  */
14054 union ody_gits0_pidr2 {
14055 	uint32_t u;
14056 	struct ody_gits0_pidr2_s {
14057 		uint32_t des_1                       : 3;
14058 		uint32_t jedec                       : 1;
14059 		uint32_t revision                    : 4;
14060 		uint32_t reserved_8_31               : 24;
14061 	} s;
14062 	/* struct ody_gits0_pidr2_s cn; */
14063 };
14064 typedef union ody_gits0_pidr2 ody_gits0_pidr2_t;
14065 
14066 #define ODY_GITS0_PIDR2 ODY_GITS0_PIDR2_FUNC()
14067 static inline uint64_t ODY_GITS0_PIDR2_FUNC(void) __attribute__ ((pure, always_inline));
14068 static inline uint64_t ODY_GITS0_PIDR2_FUNC(void)
14069 {
14070 	return 0x80100004ffe8ll;
14071 }
14072 
14073 #define typedef_ODY_GITS0_PIDR2 ody_gits0_pidr2_t
14074 #define bustype_ODY_GITS0_PIDR2 CSR_TYPE_NCB32b
14075 #define basename_ODY_GITS0_PIDR2 "GITS0_PIDR2"
14076 #define device_bar_ODY_GITS0_PIDR2 0x0 /* PF_BAR0 */
14077 #define busnum_ODY_GITS0_PIDR2 0
14078 #define arguments_ODY_GITS0_PIDR2 -1, -1, -1, -1
14079 
14080 /**
14081  * Register (NCB32b) gits0_pidr3
14082  *
14083  * GITS0 Pidr3 Register
14084  * The GITS0_PIDR3 characteristics are:
14085  *
14086  * * Purpose
14087  * This register returns byte[3] of the peripheral ID of the Interrupt Translation Service page.
14088  *
14089  * * Usage constraints
14090  * There are no usage constraints.
14091  */
14092 union ody_gits0_pidr3 {
14093 	uint32_t u;
14094 	struct ody_gits0_pidr3_s {
14095 		uint32_t cmod                        : 3;
14096 		uint32_t reserved_3                  : 1;
14097 		uint32_t revand                      : 4;
14098 		uint32_t reserved_8_31               : 24;
14099 	} s;
14100 	/* struct ody_gits0_pidr3_s cn; */
14101 };
14102 typedef union ody_gits0_pidr3 ody_gits0_pidr3_t;
14103 
14104 #define ODY_GITS0_PIDR3 ODY_GITS0_PIDR3_FUNC()
14105 static inline uint64_t ODY_GITS0_PIDR3_FUNC(void) __attribute__ ((pure, always_inline));
14106 static inline uint64_t ODY_GITS0_PIDR3_FUNC(void)
14107 {
14108 	return 0x80100004ffecll;
14109 }
14110 
14111 #define typedef_ODY_GITS0_PIDR3 ody_gits0_pidr3_t
14112 #define bustype_ODY_GITS0_PIDR3 CSR_TYPE_NCB32b
14113 #define basename_ODY_GITS0_PIDR3 "GITS0_PIDR3"
14114 #define device_bar_ODY_GITS0_PIDR3 0x0 /* PF_BAR0 */
14115 #define busnum_ODY_GITS0_PIDR3 0
14116 #define arguments_ODY_GITS0_PIDR3 -1, -1, -1, -1
14117 
14118 /**
14119  * Register (NCB32b) gits0_pidr4
14120  *
14121  * GITS0 Pidr4 Register
14122  * The GITS0_PIDR4 characteristics are:
14123  *
14124  * * Purpose
14125  * This register returns byte[4] of the peripheral ID of the Interrupt Translation Service page.
14126  *
14127  * * Usage constraints
14128  * There are no usage constraints.
14129  */
14130 union ody_gits0_pidr4 {
14131 	uint32_t u;
14132 	struct ody_gits0_pidr4_s {
14133 		uint32_t des_2                       : 4;
14134 		uint32_t size                        : 4;
14135 		uint32_t reserved_8_31               : 24;
14136 	} s;
14137 	/* struct ody_gits0_pidr4_s cn; */
14138 };
14139 typedef union ody_gits0_pidr4 ody_gits0_pidr4_t;
14140 
14141 #define ODY_GITS0_PIDR4 ODY_GITS0_PIDR4_FUNC()
14142 static inline uint64_t ODY_GITS0_PIDR4_FUNC(void) __attribute__ ((pure, always_inline));
14143 static inline uint64_t ODY_GITS0_PIDR4_FUNC(void)
14144 {
14145 	return 0x80100004ffd0ll;
14146 }
14147 
14148 #define typedef_ODY_GITS0_PIDR4 ody_gits0_pidr4_t
14149 #define bustype_ODY_GITS0_PIDR4 CSR_TYPE_NCB32b
14150 #define basename_ODY_GITS0_PIDR4 "GITS0_PIDR4"
14151 #define device_bar_ODY_GITS0_PIDR4 0x0 /* PF_BAR0 */
14152 #define busnum_ODY_GITS0_PIDR4 0
14153 #define arguments_ODY_GITS0_PIDR4 -1, -1, -1, -1
14154 
14155 /**
14156  * Register (NCB32b) gits0_pidr5
14157  *
14158  * GITS0 Pidr5 Register
14159  * The GITS0_PIDR5 characteristics are:
14160  *
14161  * * Purpose
14162  * This register returns byte[5] of the peripheral ID of the Interrupt Translation Service page.
14163  *
14164  * * Usage constraints
14165  * There are no usage constraints.
14166  */
14167 union ody_gits0_pidr5 {
14168 	uint32_t u;
14169 	struct ody_gits0_pidr5_s {
14170 		uint32_t reserved_0_31               : 32;
14171 	} s;
14172 	struct ody_gits0_pidr5_cn {
14173 		uint32_t reserved_0_7                : 8;
14174 		uint32_t reserved_8_31               : 24;
14175 	} cn;
14176 };
14177 typedef union ody_gits0_pidr5 ody_gits0_pidr5_t;
14178 
14179 #define ODY_GITS0_PIDR5 ODY_GITS0_PIDR5_FUNC()
14180 static inline uint64_t ODY_GITS0_PIDR5_FUNC(void) __attribute__ ((pure, always_inline));
14181 static inline uint64_t ODY_GITS0_PIDR5_FUNC(void)
14182 {
14183 	return 0x80100004ffd4ll;
14184 }
14185 
14186 #define typedef_ODY_GITS0_PIDR5 ody_gits0_pidr5_t
14187 #define bustype_ODY_GITS0_PIDR5 CSR_TYPE_NCB32b
14188 #define basename_ODY_GITS0_PIDR5 "GITS0_PIDR5"
14189 #define device_bar_ODY_GITS0_PIDR5 0x0 /* PF_BAR0 */
14190 #define busnum_ODY_GITS0_PIDR5 0
14191 #define arguments_ODY_GITS0_PIDR5 -1, -1, -1, -1
14192 
14193 /**
14194  * Register (NCB32b) gits0_pidr6
14195  *
14196  * GITS0 Pidr6 Register
14197  * The GITS0_PIDR6 characteristics are:
14198  *
14199  * * Purpose
14200  * This register returns byte[6] of the peripheral ID of the Interrupt Translation Service page.
14201  *
14202  * * Usage constraints
14203  * There are no usage constraints.
14204  */
14205 union ody_gits0_pidr6 {
14206 	uint32_t u;
14207 	struct ody_gits0_pidr6_s {
14208 		uint32_t reserved_0_31               : 32;
14209 	} s;
14210 	struct ody_gits0_pidr6_cn {
14211 		uint32_t reserved_0_7                : 8;
14212 		uint32_t reserved_8_31               : 24;
14213 	} cn;
14214 };
14215 typedef union ody_gits0_pidr6 ody_gits0_pidr6_t;
14216 
14217 #define ODY_GITS0_PIDR6 ODY_GITS0_PIDR6_FUNC()
14218 static inline uint64_t ODY_GITS0_PIDR6_FUNC(void) __attribute__ ((pure, always_inline));
14219 static inline uint64_t ODY_GITS0_PIDR6_FUNC(void)
14220 {
14221 	return 0x80100004ffd8ll;
14222 }
14223 
14224 #define typedef_ODY_GITS0_PIDR6 ody_gits0_pidr6_t
14225 #define bustype_ODY_GITS0_PIDR6 CSR_TYPE_NCB32b
14226 #define basename_ODY_GITS0_PIDR6 "GITS0_PIDR6"
14227 #define device_bar_ODY_GITS0_PIDR6 0x0 /* PF_BAR0 */
14228 #define busnum_ODY_GITS0_PIDR6 0
14229 #define arguments_ODY_GITS0_PIDR6 -1, -1, -1, -1
14230 
14231 /**
14232  * Register (NCB32b) gits0_pidr7
14233  *
14234  * GITS0 Pidr7 Register
14235  * The GITS0_PIDR7 characteristics are:
14236  *
14237  * * Purpose
14238  * This register returns byte[7] of the peripheral ID of the Interrupt Translation Service page.
14239  *
14240  * * Usage constraints
14241  * There are no usage constraints.
14242  */
14243 union ody_gits0_pidr7 {
14244 	uint32_t u;
14245 	struct ody_gits0_pidr7_s {
14246 		uint32_t reserved_0_31               : 32;
14247 	} s;
14248 	struct ody_gits0_pidr7_cn {
14249 		uint32_t reserved_0_7                : 8;
14250 		uint32_t reserved_8_31               : 24;
14251 	} cn;
14252 };
14253 typedef union ody_gits0_pidr7 ody_gits0_pidr7_t;
14254 
14255 #define ODY_GITS0_PIDR7 ODY_GITS0_PIDR7_FUNC()
14256 static inline uint64_t ODY_GITS0_PIDR7_FUNC(void) __attribute__ ((pure, always_inline));
14257 static inline uint64_t ODY_GITS0_PIDR7_FUNC(void)
14258 {
14259 	return 0x80100004ffdcll;
14260 }
14261 
14262 #define typedef_ODY_GITS0_PIDR7 ody_gits0_pidr7_t
14263 #define bustype_ODY_GITS0_PIDR7 CSR_TYPE_NCB32b
14264 #define basename_ODY_GITS0_PIDR7 "GITS0_PIDR7"
14265 #define device_bar_ODY_GITS0_PIDR7 0x0 /* PF_BAR0 */
14266 #define busnum_ODY_GITS0_PIDR7 0
14267 #define arguments_ODY_GITS0_PIDR7 -1, -1, -1, -1
14268 
14269 /**
14270  * Register (NCB) gits0_sgir
14271  *
14272  * GITS0 Sgir Register
14273  * The GITS0_SGIR characteristics are:
14274  *
14275  * * Purpose
14276  * Written by software to signal a virtual SGI for routing by the ITS.
14277  *
14278  * * Usage constraints
14279  * There are no usage constraints.
14280  */
14281 union ody_gits0_sgir {
14282 	uint64_t u;
14283 	struct ody_gits0_sgir_s {
14284 		uint64_t vintid                      : 4;
14285 		uint64_t reserved_4_31               : 28;
14286 		uint64_t vpeid                       : 11;
14287 		uint64_t reserved_43_63              : 21;
14288 	} s;
14289 	/* struct ody_gits0_sgir_s cn; */
14290 };
14291 typedef union ody_gits0_sgir ody_gits0_sgir_t;
14292 
14293 #define ODY_GITS0_SGIR ODY_GITS0_SGIR_FUNC()
14294 static inline uint64_t ODY_GITS0_SGIR_FUNC(void) __attribute__ ((pure, always_inline));
14295 static inline uint64_t ODY_GITS0_SGIR_FUNC(void)
14296 {
14297 	return 0x801000060020ll;
14298 }
14299 
14300 #define typedef_ODY_GITS0_SGIR ody_gits0_sgir_t
14301 #define bustype_ODY_GITS0_SGIR CSR_TYPE_NCB
14302 #define basename_ODY_GITS0_SGIR "GITS0_SGIR"
14303 #define device_bar_ODY_GITS0_SGIR 0x0 /* PF_BAR0 */
14304 #define busnum_ODY_GITS0_SGIR 0
14305 #define arguments_ODY_GITS0_SGIR -1, -1, -1, -1
14306 
14307 /**
14308  * Register (NCB32b) gits0_translater
14309  *
14310  * GITS0 Translater Register
14311  * The GITS0_TRANSLATER characteristics are:
14312  *
14313  * * Purpose
14314  * Written by a requesting Device to signal an interrupt for translation by the ITS
14315  *
14316  * * Usage constraints
14317  * This register should not be accessed directly by Software.
14318  */
14319 union ody_gits0_translater {
14320 	uint32_t u;
14321 	struct ody_gits0_translater_s {
14322 		uint32_t interruptid                 : 32;
14323 	} s;
14324 	/* struct ody_gits0_translater_s cn; */
14325 };
14326 typedef union ody_gits0_translater ody_gits0_translater_t;
14327 
14328 #define ODY_GITS0_TRANSLATER ODY_GITS0_TRANSLATER_FUNC()
14329 static inline uint64_t ODY_GITS0_TRANSLATER_FUNC(void) __attribute__ ((pure, always_inline));
14330 static inline uint64_t ODY_GITS0_TRANSLATER_FUNC(void)
14331 {
14332 	return 0x801000050040ll;
14333 }
14334 
14335 #define typedef_ODY_GITS0_TRANSLATER ody_gits0_translater_t
14336 #define bustype_ODY_GITS0_TRANSLATER CSR_TYPE_NCB32b
14337 #define basename_ODY_GITS0_TRANSLATER "GITS0_TRANSLATER"
14338 #define device_bar_ODY_GITS0_TRANSLATER 0x0 /* PF_BAR0 */
14339 #define busnum_ODY_GITS0_TRANSLATER 0
14340 #define arguments_ODY_GITS0_TRANSLATER -1, -1, -1, -1
14341 
14342 /**
14343  * Register (NCB) gits0_typer
14344  *
14345  * GITS0 Typer Register
14346  * The GITS0_TYPER characteristics are:
14347  *
14348  * * Purpose
14349  * Specifies the features that an ITS supports.
14350  *
14351  * * Usage constraints
14352  * There are no usage constraints.
14353  */
14354 union ody_gits0_typer {
14355 	uint64_t u;
14356 	struct ody_gits0_typer_s {
14357 		uint64_t physical                    : 1;
14358 		uint64_t virtual_f                   : 1;
14359 		uint64_t cct                         : 1;
14360 		uint64_t reserved_3                  : 1;
14361 		uint64_t ittentrysize                : 4;
14362 		uint64_t idbits                      : 5;
14363 		uint64_t devbits                     : 5;
14364 		uint64_t seis                        : 1;
14365 		uint64_t pta                         : 1;
14366 		uint64_t reserved_20_23              : 4;
14367 		uint64_t hcc                         : 8;
14368 		uint64_t cidbits                     : 4;
14369 		uint64_t cil                         : 1;
14370 		uint64_t vmovp                       : 1;
14371 		uint64_t mpam                        : 1;
14372 		uint64_t vsgi                        : 1;
14373 		uint64_t vmapp                       : 1;
14374 		uint64_t svpet                       : 2;
14375 		uint64_t nid                         : 1;
14376 		uint64_t reserved_44_45              : 2;
14377 		uint64_t inv                         : 1;
14378 		uint64_t reserved_47_63              : 17;
14379 	} s;
14380 	/* struct ody_gits0_typer_s cn; */
14381 };
14382 typedef union ody_gits0_typer ody_gits0_typer_t;
14383 
14384 #define ODY_GITS0_TYPER ODY_GITS0_TYPER_FUNC()
14385 static inline uint64_t ODY_GITS0_TYPER_FUNC(void) __attribute__ ((pure, always_inline));
14386 static inline uint64_t ODY_GITS0_TYPER_FUNC(void)
14387 {
14388 	return 0x801000040008ll;
14389 }
14390 
14391 #define typedef_ODY_GITS0_TYPER ody_gits0_typer_t
14392 #define bustype_ODY_GITS0_TYPER CSR_TYPE_NCB
14393 #define basename_ODY_GITS0_TYPER "GITS0_TYPER"
14394 #define device_bar_ODY_GITS0_TYPER 0x0 /* PF_BAR0 */
14395 #define busnum_ODY_GITS0_TYPER 0
14396 #define arguments_ODY_GITS0_TYPER -1, -1, -1, -1
14397 
14398 /**
14399  * Register (NCB) gits0_v_errinsr
14400  *
14401  * GITS0 V Errinsr Register
14402  * The GITS0_V_ERRINSR characteristics are:
14403  *
14404  * * Purpose
14405  * This register can inject errors into the ITS Event cache RAM if ECC is enabaled.
14406  * You can use this register to test your error recovery software.
14407  * * Usage constraints
14408  * If GICD(A)_SAC.GICTNS == 0, then only Secure software can access the contents of this register.
14409  *
14410  * \> *Note*
14411  * \> The bit assignments within this register depend on whether a write access or read access occurs.
14412  */
14413 union ody_gits0_v_errinsr {
14414 	uint64_t u;
14415 	struct ody_gits0_v_errinsr_s {
14416 		uint64_t errins1loc                  : 9;
14417 		uint64_t reserved_9_14               : 6;
14418 		uint64_t errins1valid                : 1;
14419 		uint64_t errins2loc                  : 9;
14420 		uint64_t reserved_25_30              : 6;
14421 		uint64_t errins2valid                : 1;
14422 		uint64_t addr                        : 16;
14423 		uint64_t reserved_48_59              : 12;
14424 		uint64_t disablewritecheck           : 1;
14425 		uint64_t reserved_61_62              : 2;
14426 		uint64_t valid                       : 1;
14427 	} s;
14428 	/* struct ody_gits0_v_errinsr_s cn; */
14429 };
14430 typedef union ody_gits0_v_errinsr ody_gits0_v_errinsr_t;
14431 
14432 #define ODY_GITS0_V_ERRINSR ODY_GITS0_V_ERRINSR_FUNC()
14433 static inline uint64_t ODY_GITS0_V_ERRINSR_FUNC(void) __attribute__ ((pure, always_inline));
14434 static inline uint64_t ODY_GITS0_V_ERRINSR_FUNC(void)
14435 {
14436 	return 0x80100004c008ll;
14437 }
14438 
14439 #define typedef_ODY_GITS0_V_ERRINSR ody_gits0_v_errinsr_t
14440 #define bustype_ODY_GITS0_V_ERRINSR CSR_TYPE_NCB
14441 #define basename_ODY_GITS0_V_ERRINSR "GITS0_V_ERRINSR"
14442 #define device_bar_ODY_GITS0_V_ERRINSR 0x0 /* PF_BAR0 */
14443 #define busnum_ODY_GITS0_V_ERRINSR 0
14444 #define arguments_ODY_GITS0_V_ERRINSR -1, -1, -1, -1
14445 
14446 #endif /* __ODY_CSRS_GIC_H__ */
14447