xref: /rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-dsuub.h (revision 12d80bbbf6031228bdd910eccb03bb185e8df527)
1*4b8b8d74SJaiprakash Singh #ifndef __ODY_CSRS_DSUUB_H__
2*4b8b8d74SJaiprakash Singh #define __ODY_CSRS_DSUUB_H__
3*4b8b8d74SJaiprakash Singh /* This file is auto-generated. Do not edit */
4*4b8b8d74SJaiprakash Singh 
5*4b8b8d74SJaiprakash Singh /***********************license start***********************************
6*4b8b8d74SJaiprakash Singh * Copyright (C) 2021-2026 Marvell.
7*4b8b8d74SJaiprakash Singh * SPDX-License-Identifier: BSD-3-Clause
8*4b8b8d74SJaiprakash Singh * https://spdx.org/licenses
9*4b8b8d74SJaiprakash Singh ***********************license end**************************************/
10*4b8b8d74SJaiprakash Singh 
11*4b8b8d74SJaiprakash Singh 
12*4b8b8d74SJaiprakash Singh /**
13*4b8b8d74SJaiprakash Singh  * @file
14*4b8b8d74SJaiprakash Singh  *
15*4b8b8d74SJaiprakash Singh  * Configuration and status register (CSR) address and type definitions for
16*4b8b8d74SJaiprakash Singh  * DSUUB.
17*4b8b8d74SJaiprakash Singh  *
18*4b8b8d74SJaiprakash Singh  * This file is auto generated. Do not edit.
19*4b8b8d74SJaiprakash Singh  *
20*4b8b8d74SJaiprakash Singh  */
21*4b8b8d74SJaiprakash Singh 
22*4b8b8d74SJaiprakash Singh /**
23*4b8b8d74SJaiprakash Singh  * Enumeration dsuub_bar_e
24*4b8b8d74SJaiprakash Singh  *
25*4b8b8d74SJaiprakash Singh  * DSUUB Base Address Register Enumeration
26*4b8b8d74SJaiprakash Singh  * Enumerates the base address registers.
27*4b8b8d74SJaiprakash Singh  */
28*4b8b8d74SJaiprakash Singh #define ODY_DSUUB_BAR_E_DSUUBX_PF_BAR0(a) (0x87e2ef000000ll + 0x1000000ll * (a))
29*4b8b8d74SJaiprakash Singh #define ODY_DSUUB_BAR_E_DSUUBX_PF_BAR0_SIZE 0x1000000ull
30*4b8b8d74SJaiprakash Singh 
31*4b8b8d74SJaiprakash Singh /**
32*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amcfgr
33*4b8b8d74SJaiprakash Singh  *
34*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Configuration Register
35*4b8b8d74SJaiprakash Singh  * Global configuration register for the activity monitors.
36*4b8b8d74SJaiprakash Singh  *
37*4b8b8d74SJaiprakash Singh  * Provides information on supported features, the number of counter groups implemented, the total
38*4b8b8d74SJaiprakash Singh  * number of activity monitor event counters implemented, and the size of the counters. AMCFGR is
39*4b8b8d74SJaiprakash Singh  * applicable to both the architected and the auxiliary counter groups.
40*4b8b8d74SJaiprakash Singh  */
41*4b8b8d74SJaiprakash Singh union ody_dsuubx_amcfgr {
42*4b8b8d74SJaiprakash Singh 	uint32_t u;
43*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amcfgr_s {
44*4b8b8d74SJaiprakash Singh 		uint32_t n                           : 8;
45*4b8b8d74SJaiprakash Singh 		uint32_t size                        : 6;
46*4b8b8d74SJaiprakash Singh 		uint32_t reserved_14_23              : 10;
47*4b8b8d74SJaiprakash Singh 		uint32_t hdbg                        : 1;
48*4b8b8d74SJaiprakash Singh 		uint32_t reserved_25_27              : 3;
49*4b8b8d74SJaiprakash Singh 		uint32_t ncg                         : 4;
50*4b8b8d74SJaiprakash Singh 	} s;
51*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amcfgr_s cn; */
52*4b8b8d74SJaiprakash Singh };
53*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amcfgr ody_dsuubx_amcfgr_t;
54*4b8b8d74SJaiprakash Singh 
55*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMCFGR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMCFGR(uint64_t a)56*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMCFGR(uint64_t a)
57*4b8b8d74SJaiprakash Singh {
58*4b8b8d74SJaiprakash Singh 	if (a <= 89)
59*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090e00ll + 0x1000000ll * ((a) & 0x7f);
60*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMCFGR", 1, a, 0, 0, 0, 0, 0);
61*4b8b8d74SJaiprakash Singh }
62*4b8b8d74SJaiprakash Singh 
63*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMCFGR(a) ody_dsuubx_amcfgr_t
64*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMCFGR(a) CSR_TYPE_RSL32b
65*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMCFGR(a) "DSUUBX_AMCFGR"
66*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMCFGR(a) 0x0 /* PF_BAR0 */
67*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMCFGR(a) (a)
68*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMCFGR(a) (a), -1, -1, -1
69*4b8b8d74SJaiprakash Singh 
70*4b8b8d74SJaiprakash Singh /**
71*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amcgcr
72*4b8b8d74SJaiprakash Singh  *
73*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Counter Group Configuration Register
74*4b8b8d74SJaiprakash Singh  * Provides information on the number of activity monitor event counters implemented within each
75*4b8b8d74SJaiprakash Singh  * counter group.
76*4b8b8d74SJaiprakash Singh  */
77*4b8b8d74SJaiprakash Singh union ody_dsuubx_amcgcr {
78*4b8b8d74SJaiprakash Singh 	uint32_t u;
79*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amcgcr_s {
80*4b8b8d74SJaiprakash Singh 		uint32_t cg0nc                       : 8;
81*4b8b8d74SJaiprakash Singh 		uint32_t cg1nc                       : 8;
82*4b8b8d74SJaiprakash Singh 		uint32_t reserved_16_31              : 16;
83*4b8b8d74SJaiprakash Singh 	} s;
84*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amcgcr_s cn; */
85*4b8b8d74SJaiprakash Singh };
86*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amcgcr ody_dsuubx_amcgcr_t;
87*4b8b8d74SJaiprakash Singh 
88*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMCGCR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMCGCR(uint64_t a)89*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMCGCR(uint64_t a)
90*4b8b8d74SJaiprakash Singh {
91*4b8b8d74SJaiprakash Singh 	if (a <= 89)
92*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090ce0ll + 0x1000000ll * ((a) & 0x7f);
93*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMCGCR", 1, a, 0, 0, 0, 0, 0);
94*4b8b8d74SJaiprakash Singh }
95*4b8b8d74SJaiprakash Singh 
96*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMCGCR(a) ody_dsuubx_amcgcr_t
97*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMCGCR(a) CSR_TYPE_RSL32b
98*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMCGCR(a) "DSUUBX_AMCGCR"
99*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMCGCR(a) 0x0 /* PF_BAR0 */
100*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMCGCR(a) (a)
101*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMCGCR(a) (a), -1, -1, -1
102*4b8b8d74SJaiprakash Singh 
103*4b8b8d74SJaiprakash Singh /**
104*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amcidr0
105*4b8b8d74SJaiprakash Singh  *
106*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Component Identification Register 0
107*4b8b8d74SJaiprakash Singh  * Provides information to identify an activity monitors component.
108*4b8b8d74SJaiprakash Singh  *
109*4b8b8d74SJaiprakash Singh  * For more information, see 'About the Component identification scheme'.
110*4b8b8d74SJaiprakash Singh  */
111*4b8b8d74SJaiprakash Singh union ody_dsuubx_amcidr0 {
112*4b8b8d74SJaiprakash Singh 	uint32_t u;
113*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amcidr0_s {
114*4b8b8d74SJaiprakash Singh 		uint32_t prmbl_0                     : 8;
115*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
116*4b8b8d74SJaiprakash Singh 	} s;
117*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amcidr0_s cn; */
118*4b8b8d74SJaiprakash Singh };
119*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amcidr0 ody_dsuubx_amcidr0_t;
120*4b8b8d74SJaiprakash Singh 
121*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMCIDR0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMCIDR0(uint64_t a)122*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMCIDR0(uint64_t a)
123*4b8b8d74SJaiprakash Singh {
124*4b8b8d74SJaiprakash Singh 	if (a <= 89)
125*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090ff0ll + 0x1000000ll * ((a) & 0x7f);
126*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMCIDR0", 1, a, 0, 0, 0, 0, 0);
127*4b8b8d74SJaiprakash Singh }
128*4b8b8d74SJaiprakash Singh 
129*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMCIDR0(a) ody_dsuubx_amcidr0_t
130*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMCIDR0(a) CSR_TYPE_RSL32b
131*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMCIDR0(a) "DSUUBX_AMCIDR0"
132*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMCIDR0(a) 0x0 /* PF_BAR0 */
133*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMCIDR0(a) (a)
134*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMCIDR0(a) (a), -1, -1, -1
135*4b8b8d74SJaiprakash Singh 
136*4b8b8d74SJaiprakash Singh /**
137*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amcidr1
138*4b8b8d74SJaiprakash Singh  *
139*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Component Identification Register 1
140*4b8b8d74SJaiprakash Singh  * Provides information to identify an activity monitors component.
141*4b8b8d74SJaiprakash Singh  *
142*4b8b8d74SJaiprakash Singh  * For more information, see 'About the Component identification scheme'.
143*4b8b8d74SJaiprakash Singh  */
144*4b8b8d74SJaiprakash Singh union ody_dsuubx_amcidr1 {
145*4b8b8d74SJaiprakash Singh 	uint32_t u;
146*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amcidr1_s {
147*4b8b8d74SJaiprakash Singh 		uint32_t prmbl_1                     : 4;
148*4b8b8d74SJaiprakash Singh 		uint32_t clas                        : 4;
149*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
150*4b8b8d74SJaiprakash Singh 	} s;
151*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amcidr1_s cn; */
152*4b8b8d74SJaiprakash Singh };
153*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amcidr1 ody_dsuubx_amcidr1_t;
154*4b8b8d74SJaiprakash Singh 
155*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMCIDR1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMCIDR1(uint64_t a)156*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMCIDR1(uint64_t a)
157*4b8b8d74SJaiprakash Singh {
158*4b8b8d74SJaiprakash Singh 	if (a <= 89)
159*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090ff4ll + 0x1000000ll * ((a) & 0x7f);
160*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMCIDR1", 1, a, 0, 0, 0, 0, 0);
161*4b8b8d74SJaiprakash Singh }
162*4b8b8d74SJaiprakash Singh 
163*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMCIDR1(a) ody_dsuubx_amcidr1_t
164*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMCIDR1(a) CSR_TYPE_RSL32b
165*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMCIDR1(a) "DSUUBX_AMCIDR1"
166*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMCIDR1(a) 0x0 /* PF_BAR0 */
167*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMCIDR1(a) (a)
168*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMCIDR1(a) (a), -1, -1, -1
169*4b8b8d74SJaiprakash Singh 
170*4b8b8d74SJaiprakash Singh /**
171*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amcidr2
172*4b8b8d74SJaiprakash Singh  *
173*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Component Identification Register 2
174*4b8b8d74SJaiprakash Singh  * Provides information to identify an activity monitors component.
175*4b8b8d74SJaiprakash Singh  *
176*4b8b8d74SJaiprakash Singh  * For more information, see 'About the Component identification scheme'.
177*4b8b8d74SJaiprakash Singh  */
178*4b8b8d74SJaiprakash Singh union ody_dsuubx_amcidr2 {
179*4b8b8d74SJaiprakash Singh 	uint32_t u;
180*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amcidr2_s {
181*4b8b8d74SJaiprakash Singh 		uint32_t prmbl_2                     : 8;
182*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
183*4b8b8d74SJaiprakash Singh 	} s;
184*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amcidr2_s cn; */
185*4b8b8d74SJaiprakash Singh };
186*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amcidr2 ody_dsuubx_amcidr2_t;
187*4b8b8d74SJaiprakash Singh 
188*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMCIDR2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMCIDR2(uint64_t a)189*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMCIDR2(uint64_t a)
190*4b8b8d74SJaiprakash Singh {
191*4b8b8d74SJaiprakash Singh 	if (a <= 89)
192*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090ff8ll + 0x1000000ll * ((a) & 0x7f);
193*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMCIDR2", 1, a, 0, 0, 0, 0, 0);
194*4b8b8d74SJaiprakash Singh }
195*4b8b8d74SJaiprakash Singh 
196*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMCIDR2(a) ody_dsuubx_amcidr2_t
197*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMCIDR2(a) CSR_TYPE_RSL32b
198*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMCIDR2(a) "DSUUBX_AMCIDR2"
199*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMCIDR2(a) 0x0 /* PF_BAR0 */
200*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMCIDR2(a) (a)
201*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMCIDR2(a) (a), -1, -1, -1
202*4b8b8d74SJaiprakash Singh 
203*4b8b8d74SJaiprakash Singh /**
204*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amcidr3
205*4b8b8d74SJaiprakash Singh  *
206*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Component Identification Register 2
207*4b8b8d74SJaiprakash Singh  * Provides information to identify an activity monitors component.
208*4b8b8d74SJaiprakash Singh  *
209*4b8b8d74SJaiprakash Singh  * For more information, see 'About the Component identification scheme'.
210*4b8b8d74SJaiprakash Singh  */
211*4b8b8d74SJaiprakash Singh union ody_dsuubx_amcidr3 {
212*4b8b8d74SJaiprakash Singh 	uint32_t u;
213*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amcidr3_s {
214*4b8b8d74SJaiprakash Singh 		uint32_t prmbl_3                     : 8;
215*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
216*4b8b8d74SJaiprakash Singh 	} s;
217*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amcidr3_s cn; */
218*4b8b8d74SJaiprakash Singh };
219*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amcidr3 ody_dsuubx_amcidr3_t;
220*4b8b8d74SJaiprakash Singh 
221*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMCIDR3(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMCIDR3(uint64_t a)222*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMCIDR3(uint64_t a)
223*4b8b8d74SJaiprakash Singh {
224*4b8b8d74SJaiprakash Singh 	if (a <= 89)
225*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090ffcll + 0x1000000ll * ((a) & 0x7f);
226*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMCIDR3", 1, a, 0, 0, 0, 0, 0);
227*4b8b8d74SJaiprakash Singh }
228*4b8b8d74SJaiprakash Singh 
229*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMCIDR3(a) ody_dsuubx_amcidr3_t
230*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMCIDR3(a) CSR_TYPE_RSL32b
231*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMCIDR3(a) "DSUUBX_AMCIDR3"
232*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMCIDR3(a) 0x0 /* PF_BAR0 */
233*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMCIDR3(a) (a)
234*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMCIDR3(a) (a), -1, -1, -1
235*4b8b8d74SJaiprakash Singh 
236*4b8b8d74SJaiprakash Singh /**
237*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amcntenclr0
238*4b8b8d74SJaiprakash Singh  *
239*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Count Enable Clear Register 0
240*4b8b8d74SJaiprakash Singh  * Disable control bits for the architected activity monitors event counters, AMEVCNTR0\<n\>.
241*4b8b8d74SJaiprakash Singh  */
242*4b8b8d74SJaiprakash Singh union ody_dsuubx_amcntenclr0 {
243*4b8b8d74SJaiprakash Singh 	uint32_t u;
244*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amcntenclr0_s {
245*4b8b8d74SJaiprakash Singh 		uint32_t p                           : 32;
246*4b8b8d74SJaiprakash Singh 	} s;
247*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amcntenclr0_s cn; */
248*4b8b8d74SJaiprakash Singh };
249*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amcntenclr0 ody_dsuubx_amcntenclr0_t;
250*4b8b8d74SJaiprakash Singh 
251*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMCNTENCLR0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMCNTENCLR0(uint64_t a)252*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMCNTENCLR0(uint64_t a)
253*4b8b8d74SJaiprakash Singh {
254*4b8b8d74SJaiprakash Singh 	if (a <= 89)
255*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090c20ll + 0x1000000ll * ((a) & 0x7f);
256*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMCNTENCLR0", 1, a, 0, 0, 0, 0, 0);
257*4b8b8d74SJaiprakash Singh }
258*4b8b8d74SJaiprakash Singh 
259*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMCNTENCLR0(a) ody_dsuubx_amcntenclr0_t
260*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMCNTENCLR0(a) CSR_TYPE_RSL32b
261*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMCNTENCLR0(a) "DSUUBX_AMCNTENCLR0"
262*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMCNTENCLR0(a) 0x0 /* PF_BAR0 */
263*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMCNTENCLR0(a) (a)
264*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMCNTENCLR0(a) (a), -1, -1, -1
265*4b8b8d74SJaiprakash Singh 
266*4b8b8d74SJaiprakash Singh /**
267*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amcntenclr1
268*4b8b8d74SJaiprakash Singh  *
269*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Count Enable Clear Register 1
270*4b8b8d74SJaiprakash Singh  * Disable control bits for the architected activity monitors event counters, AMEVCNTR1\<n\>.
271*4b8b8d74SJaiprakash Singh  */
272*4b8b8d74SJaiprakash Singh union ody_dsuubx_amcntenclr1 {
273*4b8b8d74SJaiprakash Singh 	uint32_t u;
274*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amcntenclr1_s {
275*4b8b8d74SJaiprakash Singh 		uint32_t p                           : 32;
276*4b8b8d74SJaiprakash Singh 	} s;
277*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amcntenclr1_s cn; */
278*4b8b8d74SJaiprakash Singh };
279*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amcntenclr1 ody_dsuubx_amcntenclr1_t;
280*4b8b8d74SJaiprakash Singh 
281*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMCNTENCLR1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMCNTENCLR1(uint64_t a)282*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMCNTENCLR1(uint64_t a)
283*4b8b8d74SJaiprakash Singh {
284*4b8b8d74SJaiprakash Singh 	if (a <= 89)
285*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090c24ll + 0x1000000ll * ((a) & 0x7f);
286*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMCNTENCLR1", 1, a, 0, 0, 0, 0, 0);
287*4b8b8d74SJaiprakash Singh }
288*4b8b8d74SJaiprakash Singh 
289*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMCNTENCLR1(a) ody_dsuubx_amcntenclr1_t
290*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMCNTENCLR1(a) CSR_TYPE_RSL32b
291*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMCNTENCLR1(a) "DSUUBX_AMCNTENCLR1"
292*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMCNTENCLR1(a) 0x0 /* PF_BAR0 */
293*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMCNTENCLR1(a) (a)
294*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMCNTENCLR1(a) (a), -1, -1, -1
295*4b8b8d74SJaiprakash Singh 
296*4b8b8d74SJaiprakash Singh /**
297*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amcntenset0
298*4b8b8d74SJaiprakash Singh  *
299*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Count Enable Set Register 0
300*4b8b8d74SJaiprakash Singh  * Enable control bits for the architected activity monitors event counters, AMEVCNTR0\<n\>.
301*4b8b8d74SJaiprakash Singh  */
302*4b8b8d74SJaiprakash Singh union ody_dsuubx_amcntenset0 {
303*4b8b8d74SJaiprakash Singh 	uint32_t u;
304*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amcntenset0_s {
305*4b8b8d74SJaiprakash Singh 		uint32_t p                           : 32;
306*4b8b8d74SJaiprakash Singh 	} s;
307*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amcntenset0_s cn; */
308*4b8b8d74SJaiprakash Singh };
309*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amcntenset0 ody_dsuubx_amcntenset0_t;
310*4b8b8d74SJaiprakash Singh 
311*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMCNTENSET0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMCNTENSET0(uint64_t a)312*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMCNTENSET0(uint64_t a)
313*4b8b8d74SJaiprakash Singh {
314*4b8b8d74SJaiprakash Singh 	if (a <= 89)
315*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090c00ll + 0x1000000ll * ((a) & 0x7f);
316*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMCNTENSET0", 1, a, 0, 0, 0, 0, 0);
317*4b8b8d74SJaiprakash Singh }
318*4b8b8d74SJaiprakash Singh 
319*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMCNTENSET0(a) ody_dsuubx_amcntenset0_t
320*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMCNTENSET0(a) CSR_TYPE_RSL32b
321*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMCNTENSET0(a) "DSUUBX_AMCNTENSET0"
322*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMCNTENSET0(a) 0x0 /* PF_BAR0 */
323*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMCNTENSET0(a) (a)
324*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMCNTENSET0(a) (a), -1, -1, -1
325*4b8b8d74SJaiprakash Singh 
326*4b8b8d74SJaiprakash Singh /**
327*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amcntenset1
328*4b8b8d74SJaiprakash Singh  *
329*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Count Enable Set Register 1
330*4b8b8d74SJaiprakash Singh  * Enable control bits for the auxiliary activity monitors event counters, AMEVCNTR1\<n\>.
331*4b8b8d74SJaiprakash Singh  */
332*4b8b8d74SJaiprakash Singh union ody_dsuubx_amcntenset1 {
333*4b8b8d74SJaiprakash Singh 	uint32_t u;
334*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amcntenset1_s {
335*4b8b8d74SJaiprakash Singh 		uint32_t p                           : 32;
336*4b8b8d74SJaiprakash Singh 	} s;
337*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amcntenset1_s cn; */
338*4b8b8d74SJaiprakash Singh };
339*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amcntenset1 ody_dsuubx_amcntenset1_t;
340*4b8b8d74SJaiprakash Singh 
341*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMCNTENSET1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMCNTENSET1(uint64_t a)342*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMCNTENSET1(uint64_t a)
343*4b8b8d74SJaiprakash Singh {
344*4b8b8d74SJaiprakash Singh 	if (a <= 89)
345*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090c04ll + 0x1000000ll * ((a) & 0x7f);
346*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMCNTENSET1", 1, a, 0, 0, 0, 0, 0);
347*4b8b8d74SJaiprakash Singh }
348*4b8b8d74SJaiprakash Singh 
349*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMCNTENSET1(a) ody_dsuubx_amcntenset1_t
350*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMCNTENSET1(a) CSR_TYPE_RSL32b
351*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMCNTENSET1(a) "DSUUBX_AMCNTENSET1"
352*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMCNTENSET1(a) 0x0 /* PF_BAR0 */
353*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMCNTENSET1(a) (a)
354*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMCNTENSET1(a) (a), -1, -1, -1
355*4b8b8d74SJaiprakash Singh 
356*4b8b8d74SJaiprakash Singh /**
357*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amcr
358*4b8b8d74SJaiprakash Singh  *
359*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Control Register
360*4b8b8d74SJaiprakash Singh  * Global control register for the activity monitors implementation. AMCR is applicable to both the
361*4b8b8d74SJaiprakash Singh  * architected and the auxiliary counter groups.
362*4b8b8d74SJaiprakash Singh  */
363*4b8b8d74SJaiprakash Singh union ody_dsuubx_amcr {
364*4b8b8d74SJaiprakash Singh 	uint32_t u;
365*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amcr_s {
366*4b8b8d74SJaiprakash Singh 		uint32_t reserved_0_9                : 10;
367*4b8b8d74SJaiprakash Singh 		uint32_t hdbg                        : 1;
368*4b8b8d74SJaiprakash Singh 		uint32_t reserved_11_31              : 21;
369*4b8b8d74SJaiprakash Singh 	} s;
370*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amcr_s cn; */
371*4b8b8d74SJaiprakash Singh };
372*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amcr ody_dsuubx_amcr_t;
373*4b8b8d74SJaiprakash Singh 
374*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMCR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMCR(uint64_t a)375*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMCR(uint64_t a)
376*4b8b8d74SJaiprakash Singh {
377*4b8b8d74SJaiprakash Singh 	if (a <= 89)
378*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090e04ll + 0x1000000ll * ((a) & 0x7f);
379*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMCR", 1, a, 0, 0, 0, 0, 0);
380*4b8b8d74SJaiprakash Singh }
381*4b8b8d74SJaiprakash Singh 
382*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMCR(a) ody_dsuubx_amcr_t
383*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMCR(a) CSR_TYPE_RSL32b
384*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMCR(a) "DSUUBX_AMCR"
385*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMCR(a) 0x0 /* PF_BAR0 */
386*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMCR(a) (a)
387*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMCR(a) (a), -1, -1, -1
388*4b8b8d74SJaiprakash Singh 
389*4b8b8d74SJaiprakash Singh /**
390*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amdevaff0
391*4b8b8d74SJaiprakash Singh  *
392*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Device Affinity Register 0
393*4b8b8d74SJaiprakash Singh  * Copy of the low half of the PE MPIDR_EL1 register that allows a debugger to determine which PE
394*4b8b8d74SJaiprakash Singh  * in a multiprocessor system the AMU component relates to.
395*4b8b8d74SJaiprakash Singh  */
396*4b8b8d74SJaiprakash Singh union ody_dsuubx_amdevaff0 {
397*4b8b8d74SJaiprakash Singh 	uint32_t u;
398*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amdevaff0_s {
399*4b8b8d74SJaiprakash Singh 		uint32_t mpidrel1lo                  : 32;
400*4b8b8d74SJaiprakash Singh 	} s;
401*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amdevaff0_s cn; */
402*4b8b8d74SJaiprakash Singh };
403*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amdevaff0 ody_dsuubx_amdevaff0_t;
404*4b8b8d74SJaiprakash Singh 
405*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMDEVAFF0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMDEVAFF0(uint64_t a)406*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMDEVAFF0(uint64_t a)
407*4b8b8d74SJaiprakash Singh {
408*4b8b8d74SJaiprakash Singh 	if (a <= 89)
409*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090fa8ll + 0x1000000ll * ((a) & 0x7f);
410*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMDEVAFF0", 1, a, 0, 0, 0, 0, 0);
411*4b8b8d74SJaiprakash Singh }
412*4b8b8d74SJaiprakash Singh 
413*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMDEVAFF0(a) ody_dsuubx_amdevaff0_t
414*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMDEVAFF0(a) CSR_TYPE_RSL32b
415*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMDEVAFF0(a) "DSUUBX_AMDEVAFF0"
416*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMDEVAFF0(a) 0x0 /* PF_BAR0 */
417*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMDEVAFF0(a) (a)
418*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMDEVAFF0(a) (a), -1, -1, -1
419*4b8b8d74SJaiprakash Singh 
420*4b8b8d74SJaiprakash Singh /**
421*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amdevaff1
422*4b8b8d74SJaiprakash Singh  *
423*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Device Affinity Register 1
424*4b8b8d74SJaiprakash Singh  * Copy of the high half of the PE MPIDR_EL1 register that allows a debugger to determine which PE
425*4b8b8d74SJaiprakash Singh  * in a multiprocessor system the AMU component relates to.
426*4b8b8d74SJaiprakash Singh  */
427*4b8b8d74SJaiprakash Singh union ody_dsuubx_amdevaff1 {
428*4b8b8d74SJaiprakash Singh 	uint32_t u;
429*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amdevaff1_s {
430*4b8b8d74SJaiprakash Singh 		uint32_t mpidrel1hi                  : 32;
431*4b8b8d74SJaiprakash Singh 	} s;
432*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amdevaff1_s cn; */
433*4b8b8d74SJaiprakash Singh };
434*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amdevaff1 ody_dsuubx_amdevaff1_t;
435*4b8b8d74SJaiprakash Singh 
436*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMDEVAFF1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMDEVAFF1(uint64_t a)437*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMDEVAFF1(uint64_t a)
438*4b8b8d74SJaiprakash Singh {
439*4b8b8d74SJaiprakash Singh 	if (a <= 89)
440*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090facll + 0x1000000ll * ((a) & 0x7f);
441*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMDEVAFF1", 1, a, 0, 0, 0, 0, 0);
442*4b8b8d74SJaiprakash Singh }
443*4b8b8d74SJaiprakash Singh 
444*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMDEVAFF1(a) ody_dsuubx_amdevaff1_t
445*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMDEVAFF1(a) CSR_TYPE_RSL32b
446*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMDEVAFF1(a) "DSUUBX_AMDEVAFF1"
447*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMDEVAFF1(a) 0x0 /* PF_BAR0 */
448*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMDEVAFF1(a) (a)
449*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMDEVAFF1(a) (a), -1, -1, -1
450*4b8b8d74SJaiprakash Singh 
451*4b8b8d74SJaiprakash Singh /**
452*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amdevarch
453*4b8b8d74SJaiprakash Singh  *
454*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Device Architecture Register
455*4b8b8d74SJaiprakash Singh  * Identifies the programmers' model architecture of the AMU component.
456*4b8b8d74SJaiprakash Singh  */
457*4b8b8d74SJaiprakash Singh union ody_dsuubx_amdevarch {
458*4b8b8d74SJaiprakash Singh 	uint32_t u;
459*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amdevarch_s {
460*4b8b8d74SJaiprakash Singh 		uint32_t archid                      : 16;
461*4b8b8d74SJaiprakash Singh 		uint32_t revision                    : 4;
462*4b8b8d74SJaiprakash Singh 		uint32_t present                     : 1;
463*4b8b8d74SJaiprakash Singh 		uint32_t architect                   : 11;
464*4b8b8d74SJaiprakash Singh 	} s;
465*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amdevarch_s cn; */
466*4b8b8d74SJaiprakash Singh };
467*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amdevarch ody_dsuubx_amdevarch_t;
468*4b8b8d74SJaiprakash Singh 
469*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMDEVARCH(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMDEVARCH(uint64_t a)470*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMDEVARCH(uint64_t a)
471*4b8b8d74SJaiprakash Singh {
472*4b8b8d74SJaiprakash Singh 	if (a <= 89)
473*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090fbcll + 0x1000000ll * ((a) & 0x7f);
474*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMDEVARCH", 1, a, 0, 0, 0, 0, 0);
475*4b8b8d74SJaiprakash Singh }
476*4b8b8d74SJaiprakash Singh 
477*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMDEVARCH(a) ody_dsuubx_amdevarch_t
478*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMDEVARCH(a) CSR_TYPE_RSL32b
479*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMDEVARCH(a) "DSUUBX_AMDEVARCH"
480*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMDEVARCH(a) 0x0 /* PF_BAR0 */
481*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMDEVARCH(a) (a)
482*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMDEVARCH(a) (a), -1, -1, -1
483*4b8b8d74SJaiprakash Singh 
484*4b8b8d74SJaiprakash Singh /**
485*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amdevtype
486*4b8b8d74SJaiprakash Singh  *
487*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Device Type Register
488*4b8b8d74SJaiprakash Singh  * Indicates to a debugger that this component is part of a PE's performance monitor interface.
489*4b8b8d74SJaiprakash Singh  */
490*4b8b8d74SJaiprakash Singh union ody_dsuubx_amdevtype {
491*4b8b8d74SJaiprakash Singh 	uint32_t u;
492*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amdevtype_s {
493*4b8b8d74SJaiprakash Singh 		uint32_t major                       : 4;
494*4b8b8d74SJaiprakash Singh 		uint32_t sub                         : 4;
495*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
496*4b8b8d74SJaiprakash Singh 	} s;
497*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amdevtype_s cn; */
498*4b8b8d74SJaiprakash Singh };
499*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amdevtype ody_dsuubx_amdevtype_t;
500*4b8b8d74SJaiprakash Singh 
501*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMDEVTYPE(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMDEVTYPE(uint64_t a)502*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMDEVTYPE(uint64_t a)
503*4b8b8d74SJaiprakash Singh {
504*4b8b8d74SJaiprakash Singh 	if (a <= 89)
505*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090fccll + 0x1000000ll * ((a) & 0x7f);
506*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMDEVTYPE", 1, a, 0, 0, 0, 0, 0);
507*4b8b8d74SJaiprakash Singh }
508*4b8b8d74SJaiprakash Singh 
509*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMDEVTYPE(a) ody_dsuubx_amdevtype_t
510*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMDEVTYPE(a) CSR_TYPE_RSL32b
511*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMDEVTYPE(a) "DSUUBX_AMDEVTYPE"
512*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMDEVTYPE(a) 0x0 /* PF_BAR0 */
513*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMDEVTYPE(a) (a)
514*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMDEVTYPE(a) (a), -1, -1, -1
515*4b8b8d74SJaiprakash Singh 
516*4b8b8d74SJaiprakash Singh /**
517*4b8b8d74SJaiprakash Singh  * Register (RSL) dsuub#_amevcntr00
518*4b8b8d74SJaiprakash Singh  *
519*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Event Type Registers 00
520*4b8b8d74SJaiprakash Singh  * Provides access to the architected activity monitor event counters.
521*4b8b8d74SJaiprakash Singh  */
522*4b8b8d74SJaiprakash Singh union ody_dsuubx_amevcntr00 {
523*4b8b8d74SJaiprakash Singh 	uint64_t u;
524*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amevcntr00_s {
525*4b8b8d74SJaiprakash Singh 		uint64_t acnt                        : 64;
526*4b8b8d74SJaiprakash Singh 	} s;
527*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amevcntr00_s cn; */
528*4b8b8d74SJaiprakash Singh };
529*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amevcntr00 ody_dsuubx_amevcntr00_t;
530*4b8b8d74SJaiprakash Singh 
531*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVCNTR00(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMEVCNTR00(uint64_t a)532*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVCNTR00(uint64_t a)
533*4b8b8d74SJaiprakash Singh {
534*4b8b8d74SJaiprakash Singh 	if (a <= 89)
535*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090000ll + 0x1000000ll * ((a) & 0x7f);
536*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMEVCNTR00", 1, a, 0, 0, 0, 0, 0);
537*4b8b8d74SJaiprakash Singh }
538*4b8b8d74SJaiprakash Singh 
539*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMEVCNTR00(a) ody_dsuubx_amevcntr00_t
540*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMEVCNTR00(a) CSR_TYPE_RSL
541*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMEVCNTR00(a) "DSUUBX_AMEVCNTR00"
542*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMEVCNTR00(a) 0x0 /* PF_BAR0 */
543*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMEVCNTR00(a) (a)
544*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMEVCNTR00(a) (a), -1, -1, -1
545*4b8b8d74SJaiprakash Singh 
546*4b8b8d74SJaiprakash Singh /**
547*4b8b8d74SJaiprakash Singh  * Register (RSL) dsuub#_amevcntr01
548*4b8b8d74SJaiprakash Singh  *
549*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Event Type Registers 01
550*4b8b8d74SJaiprakash Singh  * Provides access to the architected activity monitor event counters.
551*4b8b8d74SJaiprakash Singh  */
552*4b8b8d74SJaiprakash Singh union ody_dsuubx_amevcntr01 {
553*4b8b8d74SJaiprakash Singh 	uint64_t u;
554*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amevcntr01_s {
555*4b8b8d74SJaiprakash Singh 		uint64_t acnt                        : 64;
556*4b8b8d74SJaiprakash Singh 	} s;
557*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amevcntr01_s cn; */
558*4b8b8d74SJaiprakash Singh };
559*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amevcntr01 ody_dsuubx_amevcntr01_t;
560*4b8b8d74SJaiprakash Singh 
561*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVCNTR01(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMEVCNTR01(uint64_t a)562*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVCNTR01(uint64_t a)
563*4b8b8d74SJaiprakash Singh {
564*4b8b8d74SJaiprakash Singh 	if (a <= 89)
565*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090008ll + 0x1000000ll * ((a) & 0x7f);
566*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMEVCNTR01", 1, a, 0, 0, 0, 0, 0);
567*4b8b8d74SJaiprakash Singh }
568*4b8b8d74SJaiprakash Singh 
569*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMEVCNTR01(a) ody_dsuubx_amevcntr01_t
570*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMEVCNTR01(a) CSR_TYPE_RSL
571*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMEVCNTR01(a) "DSUUBX_AMEVCNTR01"
572*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMEVCNTR01(a) 0x0 /* PF_BAR0 */
573*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMEVCNTR01(a) (a)
574*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMEVCNTR01(a) (a), -1, -1, -1
575*4b8b8d74SJaiprakash Singh 
576*4b8b8d74SJaiprakash Singh /**
577*4b8b8d74SJaiprakash Singh  * Register (RSL) dsuub#_amevcntr02
578*4b8b8d74SJaiprakash Singh  *
579*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Event Type Registers 02
580*4b8b8d74SJaiprakash Singh  * Provides access to the architected activity monitor event counters.
581*4b8b8d74SJaiprakash Singh  */
582*4b8b8d74SJaiprakash Singh union ody_dsuubx_amevcntr02 {
583*4b8b8d74SJaiprakash Singh 	uint64_t u;
584*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amevcntr02_s {
585*4b8b8d74SJaiprakash Singh 		uint64_t acnt                        : 64;
586*4b8b8d74SJaiprakash Singh 	} s;
587*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amevcntr02_s cn; */
588*4b8b8d74SJaiprakash Singh };
589*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amevcntr02 ody_dsuubx_amevcntr02_t;
590*4b8b8d74SJaiprakash Singh 
591*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVCNTR02(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMEVCNTR02(uint64_t a)592*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVCNTR02(uint64_t a)
593*4b8b8d74SJaiprakash Singh {
594*4b8b8d74SJaiprakash Singh 	if (a <= 89)
595*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090010ll + 0x1000000ll * ((a) & 0x7f);
596*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMEVCNTR02", 1, a, 0, 0, 0, 0, 0);
597*4b8b8d74SJaiprakash Singh }
598*4b8b8d74SJaiprakash Singh 
599*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMEVCNTR02(a) ody_dsuubx_amevcntr02_t
600*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMEVCNTR02(a) CSR_TYPE_RSL
601*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMEVCNTR02(a) "DSUUBX_AMEVCNTR02"
602*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMEVCNTR02(a) 0x0 /* PF_BAR0 */
603*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMEVCNTR02(a) (a)
604*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMEVCNTR02(a) (a), -1, -1, -1
605*4b8b8d74SJaiprakash Singh 
606*4b8b8d74SJaiprakash Singh /**
607*4b8b8d74SJaiprakash Singh  * Register (RSL) dsuub#_amevcntr03
608*4b8b8d74SJaiprakash Singh  *
609*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Event Type Registers 03
610*4b8b8d74SJaiprakash Singh  * Provides access to the architected activity monitor event counters.
611*4b8b8d74SJaiprakash Singh  */
612*4b8b8d74SJaiprakash Singh union ody_dsuubx_amevcntr03 {
613*4b8b8d74SJaiprakash Singh 	uint64_t u;
614*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amevcntr03_s {
615*4b8b8d74SJaiprakash Singh 		uint64_t acnt                        : 64;
616*4b8b8d74SJaiprakash Singh 	} s;
617*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amevcntr03_s cn; */
618*4b8b8d74SJaiprakash Singh };
619*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amevcntr03 ody_dsuubx_amevcntr03_t;
620*4b8b8d74SJaiprakash Singh 
621*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVCNTR03(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMEVCNTR03(uint64_t a)622*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVCNTR03(uint64_t a)
623*4b8b8d74SJaiprakash Singh {
624*4b8b8d74SJaiprakash Singh 	if (a <= 89)
625*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090018ll + 0x1000000ll * ((a) & 0x7f);
626*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMEVCNTR03", 1, a, 0, 0, 0, 0, 0);
627*4b8b8d74SJaiprakash Singh }
628*4b8b8d74SJaiprakash Singh 
629*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMEVCNTR03(a) ody_dsuubx_amevcntr03_t
630*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMEVCNTR03(a) CSR_TYPE_RSL
631*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMEVCNTR03(a) "DSUUBX_AMEVCNTR03"
632*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMEVCNTR03(a) 0x0 /* PF_BAR0 */
633*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMEVCNTR03(a) (a)
634*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMEVCNTR03(a) (a), -1, -1, -1
635*4b8b8d74SJaiprakash Singh 
636*4b8b8d74SJaiprakash Singh /**
637*4b8b8d74SJaiprakash Singh  * Register (RSL) dsuub#_amevcntr10
638*4b8b8d74SJaiprakash Singh  *
639*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Event Type Registers 10
640*4b8b8d74SJaiprakash Singh  * Provides access to the auxiliary activity monitor event counters.
641*4b8b8d74SJaiprakash Singh  */
642*4b8b8d74SJaiprakash Singh union ody_dsuubx_amevcntr10 {
643*4b8b8d74SJaiprakash Singh 	uint64_t u;
644*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amevcntr10_s {
645*4b8b8d74SJaiprakash Singh 		uint64_t acnt                        : 64;
646*4b8b8d74SJaiprakash Singh 	} s;
647*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amevcntr10_s cn; */
648*4b8b8d74SJaiprakash Singh };
649*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amevcntr10 ody_dsuubx_amevcntr10_t;
650*4b8b8d74SJaiprakash Singh 
651*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVCNTR10(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMEVCNTR10(uint64_t a)652*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVCNTR10(uint64_t a)
653*4b8b8d74SJaiprakash Singh {
654*4b8b8d74SJaiprakash Singh 	if (a <= 89)
655*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090100ll + 0x1000000ll * ((a) & 0x7f);
656*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMEVCNTR10", 1, a, 0, 0, 0, 0, 0);
657*4b8b8d74SJaiprakash Singh }
658*4b8b8d74SJaiprakash Singh 
659*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMEVCNTR10(a) ody_dsuubx_amevcntr10_t
660*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMEVCNTR10(a) CSR_TYPE_RSL
661*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMEVCNTR10(a) "DSUUBX_AMEVCNTR10"
662*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMEVCNTR10(a) 0x0 /* PF_BAR0 */
663*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMEVCNTR10(a) (a)
664*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMEVCNTR10(a) (a), -1, -1, -1
665*4b8b8d74SJaiprakash Singh 
666*4b8b8d74SJaiprakash Singh /**
667*4b8b8d74SJaiprakash Singh  * Register (RSL) dsuub#_amevcntr11
668*4b8b8d74SJaiprakash Singh  *
669*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Event Type Registers 11
670*4b8b8d74SJaiprakash Singh  * Provides access to the auxiliary activity monitor event counters.
671*4b8b8d74SJaiprakash Singh  */
672*4b8b8d74SJaiprakash Singh union ody_dsuubx_amevcntr11 {
673*4b8b8d74SJaiprakash Singh 	uint64_t u;
674*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amevcntr11_s {
675*4b8b8d74SJaiprakash Singh 		uint64_t acnt                        : 64;
676*4b8b8d74SJaiprakash Singh 	} s;
677*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amevcntr11_s cn; */
678*4b8b8d74SJaiprakash Singh };
679*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amevcntr11 ody_dsuubx_amevcntr11_t;
680*4b8b8d74SJaiprakash Singh 
681*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVCNTR11(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMEVCNTR11(uint64_t a)682*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVCNTR11(uint64_t a)
683*4b8b8d74SJaiprakash Singh {
684*4b8b8d74SJaiprakash Singh 	if (a <= 89)
685*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090108ll + 0x1000000ll * ((a) & 0x7f);
686*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMEVCNTR11", 1, a, 0, 0, 0, 0, 0);
687*4b8b8d74SJaiprakash Singh }
688*4b8b8d74SJaiprakash Singh 
689*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMEVCNTR11(a) ody_dsuubx_amevcntr11_t
690*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMEVCNTR11(a) CSR_TYPE_RSL
691*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMEVCNTR11(a) "DSUUBX_AMEVCNTR11"
692*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMEVCNTR11(a) 0x0 /* PF_BAR0 */
693*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMEVCNTR11(a) (a)
694*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMEVCNTR11(a) (a), -1, -1, -1
695*4b8b8d74SJaiprakash Singh 
696*4b8b8d74SJaiprakash Singh /**
697*4b8b8d74SJaiprakash Singh  * Register (RSL) dsuub#_amevcntr12
698*4b8b8d74SJaiprakash Singh  *
699*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Event Type Registers 12
700*4b8b8d74SJaiprakash Singh  * Provides access to the auxiliary activity monitor event counters.
701*4b8b8d74SJaiprakash Singh  */
702*4b8b8d74SJaiprakash Singh union ody_dsuubx_amevcntr12 {
703*4b8b8d74SJaiprakash Singh 	uint64_t u;
704*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amevcntr12_s {
705*4b8b8d74SJaiprakash Singh 		uint64_t acnt                        : 64;
706*4b8b8d74SJaiprakash Singh 	} s;
707*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amevcntr12_s cn; */
708*4b8b8d74SJaiprakash Singh };
709*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amevcntr12 ody_dsuubx_amevcntr12_t;
710*4b8b8d74SJaiprakash Singh 
711*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVCNTR12(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMEVCNTR12(uint64_t a)712*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVCNTR12(uint64_t a)
713*4b8b8d74SJaiprakash Singh {
714*4b8b8d74SJaiprakash Singh 	if (a <= 89)
715*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090110ll + 0x1000000ll * ((a) & 0x7f);
716*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMEVCNTR12", 1, a, 0, 0, 0, 0, 0);
717*4b8b8d74SJaiprakash Singh }
718*4b8b8d74SJaiprakash Singh 
719*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMEVCNTR12(a) ody_dsuubx_amevcntr12_t
720*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMEVCNTR12(a) CSR_TYPE_RSL
721*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMEVCNTR12(a) "DSUUBX_AMEVCNTR12"
722*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMEVCNTR12(a) 0x0 /* PF_BAR0 */
723*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMEVCNTR12(a) (a)
724*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMEVCNTR12(a) (a), -1, -1, -1
725*4b8b8d74SJaiprakash Singh 
726*4b8b8d74SJaiprakash Singh /**
727*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amevtyper00
728*4b8b8d74SJaiprakash Singh  *
729*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Event Type Registers 00
730*4b8b8d74SJaiprakash Singh  * Provides information on the events that an architected activity monitor event counter AArch64-
731*4b8b8d74SJaiprakash Singh  * AMEVCNTR00_EL0 counts.
732*4b8b8d74SJaiprakash Singh  */
733*4b8b8d74SJaiprakash Singh union ody_dsuubx_amevtyper00 {
734*4b8b8d74SJaiprakash Singh 	uint32_t u;
735*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amevtyper00_s {
736*4b8b8d74SJaiprakash Singh 		uint32_t evtcount                    : 16;
737*4b8b8d74SJaiprakash Singh 		uint32_t reserved_16_31              : 16;
738*4b8b8d74SJaiprakash Singh 	} s;
739*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amevtyper00_cn {
740*4b8b8d74SJaiprakash Singh 		uint32_t evtcount                    : 16;
741*4b8b8d74SJaiprakash Singh 		uint32_t reserved_16_24              : 9;
742*4b8b8d74SJaiprakash Singh 		uint32_t reserved_25_31              : 7;
743*4b8b8d74SJaiprakash Singh 	} cn;
744*4b8b8d74SJaiprakash Singh };
745*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amevtyper00 ody_dsuubx_amevtyper00_t;
746*4b8b8d74SJaiprakash Singh 
747*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVTYPER00(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMEVTYPER00(uint64_t a)748*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVTYPER00(uint64_t a)
749*4b8b8d74SJaiprakash Singh {
750*4b8b8d74SJaiprakash Singh 	if (a <= 89)
751*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090400ll + 0x1000000ll * ((a) & 0x7f);
752*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMEVTYPER00", 1, a, 0, 0, 0, 0, 0);
753*4b8b8d74SJaiprakash Singh }
754*4b8b8d74SJaiprakash Singh 
755*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMEVTYPER00(a) ody_dsuubx_amevtyper00_t
756*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMEVTYPER00(a) CSR_TYPE_RSL32b
757*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMEVTYPER00(a) "DSUUBX_AMEVTYPER00"
758*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMEVTYPER00(a) 0x0 /* PF_BAR0 */
759*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMEVTYPER00(a) (a)
760*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMEVTYPER00(a) (a), -1, -1, -1
761*4b8b8d74SJaiprakash Singh 
762*4b8b8d74SJaiprakash Singh /**
763*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amevtyper01
764*4b8b8d74SJaiprakash Singh  *
765*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Event Type Registers 01
766*4b8b8d74SJaiprakash Singh  * Provides information on the events that an architected activity monitor event counter AArch64-
767*4b8b8d74SJaiprakash Singh  * AMEVCNTR01_EL0 counts.
768*4b8b8d74SJaiprakash Singh  */
769*4b8b8d74SJaiprakash Singh union ody_dsuubx_amevtyper01 {
770*4b8b8d74SJaiprakash Singh 	uint32_t u;
771*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amevtyper01_s {
772*4b8b8d74SJaiprakash Singh 		uint32_t evtcount                    : 16;
773*4b8b8d74SJaiprakash Singh 		uint32_t reserved_16_31              : 16;
774*4b8b8d74SJaiprakash Singh 	} s;
775*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amevtyper01_cn {
776*4b8b8d74SJaiprakash Singh 		uint32_t evtcount                    : 16;
777*4b8b8d74SJaiprakash Singh 		uint32_t reserved_16_24              : 9;
778*4b8b8d74SJaiprakash Singh 		uint32_t reserved_25_31              : 7;
779*4b8b8d74SJaiprakash Singh 	} cn;
780*4b8b8d74SJaiprakash Singh };
781*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amevtyper01 ody_dsuubx_amevtyper01_t;
782*4b8b8d74SJaiprakash Singh 
783*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVTYPER01(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMEVTYPER01(uint64_t a)784*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVTYPER01(uint64_t a)
785*4b8b8d74SJaiprakash Singh {
786*4b8b8d74SJaiprakash Singh 	if (a <= 89)
787*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090404ll + 0x1000000ll * ((a) & 0x7f);
788*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMEVTYPER01", 1, a, 0, 0, 0, 0, 0);
789*4b8b8d74SJaiprakash Singh }
790*4b8b8d74SJaiprakash Singh 
791*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMEVTYPER01(a) ody_dsuubx_amevtyper01_t
792*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMEVTYPER01(a) CSR_TYPE_RSL32b
793*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMEVTYPER01(a) "DSUUBX_AMEVTYPER01"
794*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMEVTYPER01(a) 0x0 /* PF_BAR0 */
795*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMEVTYPER01(a) (a)
796*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMEVTYPER01(a) (a), -1, -1, -1
797*4b8b8d74SJaiprakash Singh 
798*4b8b8d74SJaiprakash Singh /**
799*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amevtyper02
800*4b8b8d74SJaiprakash Singh  *
801*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Event Type Registers 02
802*4b8b8d74SJaiprakash Singh  * Provides information on the events that an architected activity monitor event counter AArch64-
803*4b8b8d74SJaiprakash Singh  * AMEVCNTR02_EL0 counts.
804*4b8b8d74SJaiprakash Singh  */
805*4b8b8d74SJaiprakash Singh union ody_dsuubx_amevtyper02 {
806*4b8b8d74SJaiprakash Singh 	uint32_t u;
807*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amevtyper02_s {
808*4b8b8d74SJaiprakash Singh 		uint32_t evtcount                    : 16;
809*4b8b8d74SJaiprakash Singh 		uint32_t reserved_16_31              : 16;
810*4b8b8d74SJaiprakash Singh 	} s;
811*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amevtyper02_cn {
812*4b8b8d74SJaiprakash Singh 		uint32_t evtcount                    : 16;
813*4b8b8d74SJaiprakash Singh 		uint32_t reserved_16_24              : 9;
814*4b8b8d74SJaiprakash Singh 		uint32_t reserved_25_31              : 7;
815*4b8b8d74SJaiprakash Singh 	} cn;
816*4b8b8d74SJaiprakash Singh };
817*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amevtyper02 ody_dsuubx_amevtyper02_t;
818*4b8b8d74SJaiprakash Singh 
819*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVTYPER02(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMEVTYPER02(uint64_t a)820*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVTYPER02(uint64_t a)
821*4b8b8d74SJaiprakash Singh {
822*4b8b8d74SJaiprakash Singh 	if (a <= 89)
823*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090408ll + 0x1000000ll * ((a) & 0x7f);
824*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMEVTYPER02", 1, a, 0, 0, 0, 0, 0);
825*4b8b8d74SJaiprakash Singh }
826*4b8b8d74SJaiprakash Singh 
827*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMEVTYPER02(a) ody_dsuubx_amevtyper02_t
828*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMEVTYPER02(a) CSR_TYPE_RSL32b
829*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMEVTYPER02(a) "DSUUBX_AMEVTYPER02"
830*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMEVTYPER02(a) 0x0 /* PF_BAR0 */
831*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMEVTYPER02(a) (a)
832*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMEVTYPER02(a) (a), -1, -1, -1
833*4b8b8d74SJaiprakash Singh 
834*4b8b8d74SJaiprakash Singh /**
835*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amevtyper03
836*4b8b8d74SJaiprakash Singh  *
837*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Event Type Registers 03
838*4b8b8d74SJaiprakash Singh  * Provides information on the events that an architected activity monitor event counter AArch64-
839*4b8b8d74SJaiprakash Singh  * AMEVCNTR03_EL0 counts.
840*4b8b8d74SJaiprakash Singh  */
841*4b8b8d74SJaiprakash Singh union ody_dsuubx_amevtyper03 {
842*4b8b8d74SJaiprakash Singh 	uint32_t u;
843*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amevtyper03_s {
844*4b8b8d74SJaiprakash Singh 		uint32_t evtcount                    : 16;
845*4b8b8d74SJaiprakash Singh 		uint32_t reserved_16_31              : 16;
846*4b8b8d74SJaiprakash Singh 	} s;
847*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amevtyper03_cn {
848*4b8b8d74SJaiprakash Singh 		uint32_t evtcount                    : 16;
849*4b8b8d74SJaiprakash Singh 		uint32_t reserved_16_24              : 9;
850*4b8b8d74SJaiprakash Singh 		uint32_t reserved_25_31              : 7;
851*4b8b8d74SJaiprakash Singh 	} cn;
852*4b8b8d74SJaiprakash Singh };
853*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amevtyper03 ody_dsuubx_amevtyper03_t;
854*4b8b8d74SJaiprakash Singh 
855*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVTYPER03(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMEVTYPER03(uint64_t a)856*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVTYPER03(uint64_t a)
857*4b8b8d74SJaiprakash Singh {
858*4b8b8d74SJaiprakash Singh 	if (a <= 89)
859*4b8b8d74SJaiprakash Singh 		return 0x87e2ef09040cll + 0x1000000ll * ((a) & 0x7f);
860*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMEVTYPER03", 1, a, 0, 0, 0, 0, 0);
861*4b8b8d74SJaiprakash Singh }
862*4b8b8d74SJaiprakash Singh 
863*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMEVTYPER03(a) ody_dsuubx_amevtyper03_t
864*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMEVTYPER03(a) CSR_TYPE_RSL32b
865*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMEVTYPER03(a) "DSUUBX_AMEVTYPER03"
866*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMEVTYPER03(a) 0x0 /* PF_BAR0 */
867*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMEVTYPER03(a) (a)
868*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMEVTYPER03(a) (a), -1, -1, -1
869*4b8b8d74SJaiprakash Singh 
870*4b8b8d74SJaiprakash Singh /**
871*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amevtyper10
872*4b8b8d74SJaiprakash Singh  *
873*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Event Type Registers 10
874*4b8b8d74SJaiprakash Singh  * Provides information on the events that an architected activity monitor event counter AArch64-
875*4b8b8d74SJaiprakash Singh  * AMEVCNTR10_EL0 counts.
876*4b8b8d74SJaiprakash Singh  */
877*4b8b8d74SJaiprakash Singh union ody_dsuubx_amevtyper10 {
878*4b8b8d74SJaiprakash Singh 	uint32_t u;
879*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amevtyper10_s {
880*4b8b8d74SJaiprakash Singh 		uint32_t evtcount                    : 16;
881*4b8b8d74SJaiprakash Singh 		uint32_t reserved_16_31              : 16;
882*4b8b8d74SJaiprakash Singh 	} s;
883*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amevtyper10_cn {
884*4b8b8d74SJaiprakash Singh 		uint32_t evtcount                    : 16;
885*4b8b8d74SJaiprakash Singh 		uint32_t reserved_16_24              : 9;
886*4b8b8d74SJaiprakash Singh 		uint32_t reserved_25_31              : 7;
887*4b8b8d74SJaiprakash Singh 	} cn;
888*4b8b8d74SJaiprakash Singh };
889*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amevtyper10 ody_dsuubx_amevtyper10_t;
890*4b8b8d74SJaiprakash Singh 
891*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVTYPER10(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMEVTYPER10(uint64_t a)892*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVTYPER10(uint64_t a)
893*4b8b8d74SJaiprakash Singh {
894*4b8b8d74SJaiprakash Singh 	if (a <= 89)
895*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090480ll + 0x1000000ll * ((a) & 0x7f);
896*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMEVTYPER10", 1, a, 0, 0, 0, 0, 0);
897*4b8b8d74SJaiprakash Singh }
898*4b8b8d74SJaiprakash Singh 
899*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMEVTYPER10(a) ody_dsuubx_amevtyper10_t
900*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMEVTYPER10(a) CSR_TYPE_RSL32b
901*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMEVTYPER10(a) "DSUUBX_AMEVTYPER10"
902*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMEVTYPER10(a) 0x0 /* PF_BAR0 */
903*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMEVTYPER10(a) (a)
904*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMEVTYPER10(a) (a), -1, -1, -1
905*4b8b8d74SJaiprakash Singh 
906*4b8b8d74SJaiprakash Singh /**
907*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amevtyper11
908*4b8b8d74SJaiprakash Singh  *
909*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Event Type Registers 11
910*4b8b8d74SJaiprakash Singh  * Provides information on the events that an architected activity monitor event counter AArch64-
911*4b8b8d74SJaiprakash Singh  * AMEVCNTR11_EL0 counts.
912*4b8b8d74SJaiprakash Singh  */
913*4b8b8d74SJaiprakash Singh union ody_dsuubx_amevtyper11 {
914*4b8b8d74SJaiprakash Singh 	uint32_t u;
915*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amevtyper11_s {
916*4b8b8d74SJaiprakash Singh 		uint32_t evtcount                    : 16;
917*4b8b8d74SJaiprakash Singh 		uint32_t reserved_16_31              : 16;
918*4b8b8d74SJaiprakash Singh 	} s;
919*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amevtyper11_cn {
920*4b8b8d74SJaiprakash Singh 		uint32_t evtcount                    : 16;
921*4b8b8d74SJaiprakash Singh 		uint32_t reserved_16_24              : 9;
922*4b8b8d74SJaiprakash Singh 		uint32_t reserved_25_31              : 7;
923*4b8b8d74SJaiprakash Singh 	} cn;
924*4b8b8d74SJaiprakash Singh };
925*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amevtyper11 ody_dsuubx_amevtyper11_t;
926*4b8b8d74SJaiprakash Singh 
927*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVTYPER11(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMEVTYPER11(uint64_t a)928*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVTYPER11(uint64_t a)
929*4b8b8d74SJaiprakash Singh {
930*4b8b8d74SJaiprakash Singh 	if (a <= 89)
931*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090484ll + 0x1000000ll * ((a) & 0x7f);
932*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMEVTYPER11", 1, a, 0, 0, 0, 0, 0);
933*4b8b8d74SJaiprakash Singh }
934*4b8b8d74SJaiprakash Singh 
935*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMEVTYPER11(a) ody_dsuubx_amevtyper11_t
936*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMEVTYPER11(a) CSR_TYPE_RSL32b
937*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMEVTYPER11(a) "DSUUBX_AMEVTYPER11"
938*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMEVTYPER11(a) 0x0 /* PF_BAR0 */
939*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMEVTYPER11(a) (a)
940*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMEVTYPER11(a) (a), -1, -1, -1
941*4b8b8d74SJaiprakash Singh 
942*4b8b8d74SJaiprakash Singh /**
943*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amevtyper12
944*4b8b8d74SJaiprakash Singh  *
945*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Event Type Registers 12
946*4b8b8d74SJaiprakash Singh  * Provides information on the events that an architected activity monitor event counter AArch64-
947*4b8b8d74SJaiprakash Singh  * AMEVCNTR12_EL0 counts.
948*4b8b8d74SJaiprakash Singh  */
949*4b8b8d74SJaiprakash Singh union ody_dsuubx_amevtyper12 {
950*4b8b8d74SJaiprakash Singh 	uint32_t u;
951*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amevtyper12_s {
952*4b8b8d74SJaiprakash Singh 		uint32_t evtcount                    : 16;
953*4b8b8d74SJaiprakash Singh 		uint32_t reserved_16_31              : 16;
954*4b8b8d74SJaiprakash Singh 	} s;
955*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amevtyper12_cn {
956*4b8b8d74SJaiprakash Singh 		uint32_t evtcount                    : 16;
957*4b8b8d74SJaiprakash Singh 		uint32_t reserved_16_24              : 9;
958*4b8b8d74SJaiprakash Singh 		uint32_t reserved_25_31              : 7;
959*4b8b8d74SJaiprakash Singh 	} cn;
960*4b8b8d74SJaiprakash Singh };
961*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amevtyper12 ody_dsuubx_amevtyper12_t;
962*4b8b8d74SJaiprakash Singh 
963*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVTYPER12(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMEVTYPER12(uint64_t a)964*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMEVTYPER12(uint64_t a)
965*4b8b8d74SJaiprakash Singh {
966*4b8b8d74SJaiprakash Singh 	if (a <= 89)
967*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090488ll + 0x1000000ll * ((a) & 0x7f);
968*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMEVTYPER12", 1, a, 0, 0, 0, 0, 0);
969*4b8b8d74SJaiprakash Singh }
970*4b8b8d74SJaiprakash Singh 
971*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMEVTYPER12(a) ody_dsuubx_amevtyper12_t
972*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMEVTYPER12(a) CSR_TYPE_RSL32b
973*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMEVTYPER12(a) "DSUUBX_AMEVTYPER12"
974*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMEVTYPER12(a) 0x0 /* PF_BAR0 */
975*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMEVTYPER12(a) (a)
976*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMEVTYPER12(a) (a), -1, -1, -1
977*4b8b8d74SJaiprakash Singh 
978*4b8b8d74SJaiprakash Singh /**
979*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_amiidr
980*4b8b8d74SJaiprakash Singh  *
981*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Implementation Identification Register
982*4b8b8d74SJaiprakash Singh  * Defines the implementer and revisions of the AMU.
983*4b8b8d74SJaiprakash Singh  */
984*4b8b8d74SJaiprakash Singh union ody_dsuubx_amiidr {
985*4b8b8d74SJaiprakash Singh 	uint32_t u;
986*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_amiidr_s {
987*4b8b8d74SJaiprakash Singh 		uint32_t implementer                 : 12;
988*4b8b8d74SJaiprakash Singh 		uint32_t revision                    : 4;
989*4b8b8d74SJaiprakash Singh 		uint32_t variant                     : 4;
990*4b8b8d74SJaiprakash Singh 		uint32_t productid                   : 12;
991*4b8b8d74SJaiprakash Singh 	} s;
992*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_amiidr_s cn; */
993*4b8b8d74SJaiprakash Singh };
994*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_amiidr ody_dsuubx_amiidr_t;
995*4b8b8d74SJaiprakash Singh 
996*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMIIDR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMIIDR(uint64_t a)997*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMIIDR(uint64_t a)
998*4b8b8d74SJaiprakash Singh {
999*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1000*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090e08ll + 0x1000000ll * ((a) & 0x7f);
1001*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMIIDR", 1, a, 0, 0, 0, 0, 0);
1002*4b8b8d74SJaiprakash Singh }
1003*4b8b8d74SJaiprakash Singh 
1004*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMIIDR(a) ody_dsuubx_amiidr_t
1005*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMIIDR(a) CSR_TYPE_RSL32b
1006*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMIIDR(a) "DSUUBX_AMIIDR"
1007*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMIIDR(a) 0x0 /* PF_BAR0 */
1008*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMIIDR(a) (a)
1009*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMIIDR(a) (a), -1, -1, -1
1010*4b8b8d74SJaiprakash Singh 
1011*4b8b8d74SJaiprakash Singh /**
1012*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_ampidr0
1013*4b8b8d74SJaiprakash Singh  *
1014*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Peripheral Identification Register 0
1015*4b8b8d74SJaiprakash Singh  * Provides information to identify an activity monitors component.
1016*4b8b8d74SJaiprakash Singh  *
1017*4b8b8d74SJaiprakash Singh  * For more information, see 'About the Peripheral identification scheme'.
1018*4b8b8d74SJaiprakash Singh  */
1019*4b8b8d74SJaiprakash Singh union ody_dsuubx_ampidr0 {
1020*4b8b8d74SJaiprakash Singh 	uint32_t u;
1021*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_ampidr0_s {
1022*4b8b8d74SJaiprakash Singh 		uint32_t part_0                      : 8;
1023*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
1024*4b8b8d74SJaiprakash Singh 	} s;
1025*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_ampidr0_s cn; */
1026*4b8b8d74SJaiprakash Singh };
1027*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_ampidr0 ody_dsuubx_ampidr0_t;
1028*4b8b8d74SJaiprakash Singh 
1029*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMPIDR0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMPIDR0(uint64_t a)1030*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMPIDR0(uint64_t a)
1031*4b8b8d74SJaiprakash Singh {
1032*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1033*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090fe0ll + 0x1000000ll * ((a) & 0x7f);
1034*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMPIDR0", 1, a, 0, 0, 0, 0, 0);
1035*4b8b8d74SJaiprakash Singh }
1036*4b8b8d74SJaiprakash Singh 
1037*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMPIDR0(a) ody_dsuubx_ampidr0_t
1038*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMPIDR0(a) CSR_TYPE_RSL32b
1039*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMPIDR0(a) "DSUUBX_AMPIDR0"
1040*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMPIDR0(a) 0x0 /* PF_BAR0 */
1041*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMPIDR0(a) (a)
1042*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMPIDR0(a) (a), -1, -1, -1
1043*4b8b8d74SJaiprakash Singh 
1044*4b8b8d74SJaiprakash Singh /**
1045*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_ampidr1
1046*4b8b8d74SJaiprakash Singh  *
1047*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Peripheral Identification Register 1
1048*4b8b8d74SJaiprakash Singh  * Provides information to identify an activity monitors component.
1049*4b8b8d74SJaiprakash Singh  *
1050*4b8b8d74SJaiprakash Singh  * For more information, see 'About the Peripheral identification scheme'.
1051*4b8b8d74SJaiprakash Singh  */
1052*4b8b8d74SJaiprakash Singh union ody_dsuubx_ampidr1 {
1053*4b8b8d74SJaiprakash Singh 	uint32_t u;
1054*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_ampidr1_s {
1055*4b8b8d74SJaiprakash Singh 		uint32_t part_1                      : 4;
1056*4b8b8d74SJaiprakash Singh 		uint32_t des_0                       : 4;
1057*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
1058*4b8b8d74SJaiprakash Singh 	} s;
1059*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_ampidr1_s cn; */
1060*4b8b8d74SJaiprakash Singh };
1061*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_ampidr1 ody_dsuubx_ampidr1_t;
1062*4b8b8d74SJaiprakash Singh 
1063*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMPIDR1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMPIDR1(uint64_t a)1064*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMPIDR1(uint64_t a)
1065*4b8b8d74SJaiprakash Singh {
1066*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1067*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090fe4ll + 0x1000000ll * ((a) & 0x7f);
1068*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMPIDR1", 1, a, 0, 0, 0, 0, 0);
1069*4b8b8d74SJaiprakash Singh }
1070*4b8b8d74SJaiprakash Singh 
1071*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMPIDR1(a) ody_dsuubx_ampidr1_t
1072*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMPIDR1(a) CSR_TYPE_RSL32b
1073*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMPIDR1(a) "DSUUBX_AMPIDR1"
1074*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMPIDR1(a) 0x0 /* PF_BAR0 */
1075*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMPIDR1(a) (a)
1076*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMPIDR1(a) (a), -1, -1, -1
1077*4b8b8d74SJaiprakash Singh 
1078*4b8b8d74SJaiprakash Singh /**
1079*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_ampidr2
1080*4b8b8d74SJaiprakash Singh  *
1081*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Peripheral Identification Register 2
1082*4b8b8d74SJaiprakash Singh  * Provides information to identify an activity monitors component.
1083*4b8b8d74SJaiprakash Singh  *
1084*4b8b8d74SJaiprakash Singh  * For more information, see 'About the Peripheral identification scheme'.
1085*4b8b8d74SJaiprakash Singh  */
1086*4b8b8d74SJaiprakash Singh union ody_dsuubx_ampidr2 {
1087*4b8b8d74SJaiprakash Singh 	uint32_t u;
1088*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_ampidr2_s {
1089*4b8b8d74SJaiprakash Singh 		uint32_t des_1                       : 3;
1090*4b8b8d74SJaiprakash Singh 		uint32_t jedec                       : 1;
1091*4b8b8d74SJaiprakash Singh 		uint32_t revision                    : 4;
1092*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
1093*4b8b8d74SJaiprakash Singh 	} s;
1094*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_ampidr2_s cn; */
1095*4b8b8d74SJaiprakash Singh };
1096*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_ampidr2 ody_dsuubx_ampidr2_t;
1097*4b8b8d74SJaiprakash Singh 
1098*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMPIDR2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMPIDR2(uint64_t a)1099*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMPIDR2(uint64_t a)
1100*4b8b8d74SJaiprakash Singh {
1101*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1102*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090fe8ll + 0x1000000ll * ((a) & 0x7f);
1103*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMPIDR2", 1, a, 0, 0, 0, 0, 0);
1104*4b8b8d74SJaiprakash Singh }
1105*4b8b8d74SJaiprakash Singh 
1106*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMPIDR2(a) ody_dsuubx_ampidr2_t
1107*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMPIDR2(a) CSR_TYPE_RSL32b
1108*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMPIDR2(a) "DSUUBX_AMPIDR2"
1109*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMPIDR2(a) 0x0 /* PF_BAR0 */
1110*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMPIDR2(a) (a)
1111*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMPIDR2(a) (a), -1, -1, -1
1112*4b8b8d74SJaiprakash Singh 
1113*4b8b8d74SJaiprakash Singh /**
1114*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_ampidr3
1115*4b8b8d74SJaiprakash Singh  *
1116*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Peripheral Identification Register 3
1117*4b8b8d74SJaiprakash Singh  * Provides information to identify an activity monitors component.
1118*4b8b8d74SJaiprakash Singh  *
1119*4b8b8d74SJaiprakash Singh  * For more information, see 'About the Peripheral identification scheme'.
1120*4b8b8d74SJaiprakash Singh  */
1121*4b8b8d74SJaiprakash Singh union ody_dsuubx_ampidr3 {
1122*4b8b8d74SJaiprakash Singh 	uint32_t u;
1123*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_ampidr3_s {
1124*4b8b8d74SJaiprakash Singh 		uint32_t cmod                        : 4;
1125*4b8b8d74SJaiprakash Singh 		uint32_t revand                      : 4;
1126*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
1127*4b8b8d74SJaiprakash Singh 	} s;
1128*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_ampidr3_s cn; */
1129*4b8b8d74SJaiprakash Singh };
1130*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_ampidr3 ody_dsuubx_ampidr3_t;
1131*4b8b8d74SJaiprakash Singh 
1132*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMPIDR3(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMPIDR3(uint64_t a)1133*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMPIDR3(uint64_t a)
1134*4b8b8d74SJaiprakash Singh {
1135*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1136*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090fecll + 0x1000000ll * ((a) & 0x7f);
1137*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMPIDR3", 1, a, 0, 0, 0, 0, 0);
1138*4b8b8d74SJaiprakash Singh }
1139*4b8b8d74SJaiprakash Singh 
1140*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMPIDR3(a) ody_dsuubx_ampidr3_t
1141*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMPIDR3(a) CSR_TYPE_RSL32b
1142*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMPIDR3(a) "DSUUBX_AMPIDR3"
1143*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMPIDR3(a) 0x0 /* PF_BAR0 */
1144*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMPIDR3(a) (a)
1145*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMPIDR3(a) (a), -1, -1, -1
1146*4b8b8d74SJaiprakash Singh 
1147*4b8b8d74SJaiprakash Singh /**
1148*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_ampidr4
1149*4b8b8d74SJaiprakash Singh  *
1150*4b8b8d74SJaiprakash Singh  * Dsuub Activity Monitors Peripheral Identification Register 4
1151*4b8b8d74SJaiprakash Singh  * Provides information to identify an activity monitors component.
1152*4b8b8d74SJaiprakash Singh  *
1153*4b8b8d74SJaiprakash Singh  * For more information, see 'About the Peripheral identification scheme'.
1154*4b8b8d74SJaiprakash Singh  */
1155*4b8b8d74SJaiprakash Singh union ody_dsuubx_ampidr4 {
1156*4b8b8d74SJaiprakash Singh 	uint32_t u;
1157*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_ampidr4_s {
1158*4b8b8d74SJaiprakash Singh 		uint32_t des_2                       : 4;
1159*4b8b8d74SJaiprakash Singh 		uint32_t size                        : 4;
1160*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
1161*4b8b8d74SJaiprakash Singh 	} s;
1162*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_ampidr4_s cn; */
1163*4b8b8d74SJaiprakash Singh };
1164*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_ampidr4 ody_dsuubx_ampidr4_t;
1165*4b8b8d74SJaiprakash Singh 
1166*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMPIDR4(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_AMPIDR4(uint64_t a)1167*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_AMPIDR4(uint64_t a)
1168*4b8b8d74SJaiprakash Singh {
1169*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1170*4b8b8d74SJaiprakash Singh 		return 0x87e2ef090fd0ll + 0x1000000ll * ((a) & 0x7f);
1171*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_AMPIDR4", 1, a, 0, 0, 0, 0, 0);
1172*4b8b8d74SJaiprakash Singh }
1173*4b8b8d74SJaiprakash Singh 
1174*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_AMPIDR4(a) ody_dsuubx_ampidr4_t
1175*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_AMPIDR4(a) CSR_TYPE_RSL32b
1176*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_AMPIDR4(a) "DSUUBX_AMPIDR4"
1177*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_AMPIDR4(a) 0x0 /* PF_BAR0 */
1178*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_AMPIDR4(a) (a)
1179*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_AMPIDR4(a) (a), -1, -1, -1
1180*4b8b8d74SJaiprakash Singh 
1181*4b8b8d74SJaiprakash Singh /**
1182*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_aidr
1183*4b8b8d74SJaiprakash Singh  *
1184*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Architecture Identification Register
1185*4b8b8d74SJaiprakash Singh  * This register identifies the PPU architecture revision.
1186*4b8b8d74SJaiprakash Singh  */
1187*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_aidr {
1188*4b8b8d74SJaiprakash Singh 	uint32_t u;
1189*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_aidr_s {
1190*4b8b8d74SJaiprakash Singh 		uint32_t arch_rev_minor              : 4;
1191*4b8b8d74SJaiprakash Singh 		uint32_t arch_rev_major              : 4;
1192*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
1193*4b8b8d74SJaiprakash Singh 	} s;
1194*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_aidr_s cn; */
1195*4b8b8d74SJaiprakash Singh };
1196*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_aidr ody_dsuubx_cluster_ppu_aidr_t;
1197*4b8b8d74SJaiprakash Singh 
1198*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_AIDR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_AIDR(uint64_t a)1199*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_AIDR(uint64_t a)
1200*4b8b8d74SJaiprakash Singh {
1201*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1202*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030fccll + 0x1000000ll * ((a) & 0x7f);
1203*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_AIDR", 1, a, 0, 0, 0, 0, 0);
1204*4b8b8d74SJaiprakash Singh }
1205*4b8b8d74SJaiprakash Singh 
1206*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_AIDR(a) ody_dsuubx_cluster_ppu_aidr_t
1207*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_AIDR(a) CSR_TYPE_RSL32b
1208*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_AIDR(a) "DSUUBX_CLUSTER_PPU_AIDR"
1209*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_AIDR(a) 0x0 /* PF_BAR0 */
1210*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_AIDR(a) (a)
1211*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_AIDR(a) (a), -1, -1, -1
1212*4b8b8d74SJaiprakash Singh 
1213*4b8b8d74SJaiprakash Singh /**
1214*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_aimr
1215*4b8b8d74SJaiprakash Singh  *
1216*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Additional Interrupt Mask Register
1217*4b8b8d74SJaiprakash Singh  * This register controls the events that assert the interrupt output. Additional event
1218*4b8b8d74SJaiprakash Singh  * masking controls
1219*4b8b8d74SJaiprakash Singh  * are in the Interrupt Mask Register (DSUUB_PPU_IMR), Input Edge Sensitivity Register
1220*4b8b8d74SJaiprakash Singh  * (DSUUB_PPU_IESR),
1221*4b8b8d74SJaiprakash Singh  * and the Operating Mode Active Edge Sensitivity Register (DSUUB_PPU_OPSR).
1222*4b8b8d74SJaiprakash Singh  *
1223*4b8b8d74SJaiprakash Singh  * When an interrupt event is masked an occurrence of the event does not set the corresponding bit
1224*4b8b8d74SJaiprakash Singh  * in the interrupt status register.
1225*4b8b8d74SJaiprakash Singh  */
1226*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_aimr {
1227*4b8b8d74SJaiprakash Singh 	uint32_t u;
1228*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_aimr_s {
1229*4b8b8d74SJaiprakash Singh 		uint32_t unspt_policy_irq_mask       : 1;
1230*4b8b8d74SJaiprakash Singh 		uint32_t dyn_accept_irq_mask         : 1;
1231*4b8b8d74SJaiprakash Singh 		uint32_t dyn_deny_irq_mask           : 1;
1232*4b8b8d74SJaiprakash Singh 		uint32_t sta_policy_pwr_irq_mask     : 1;
1233*4b8b8d74SJaiprakash Singh 		uint32_t sta_policy_op_irq_mask      : 1;
1234*4b8b8d74SJaiprakash Singh 		uint32_t reserved_5_31               : 27;
1235*4b8b8d74SJaiprakash Singh 	} s;
1236*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_aimr_s cn; */
1237*4b8b8d74SJaiprakash Singh };
1238*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_aimr ody_dsuubx_cluster_ppu_aimr_t;
1239*4b8b8d74SJaiprakash Singh 
1240*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_AIMR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_AIMR(uint64_t a)1241*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_AIMR(uint64_t a)
1242*4b8b8d74SJaiprakash Singh {
1243*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1244*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030034ll + 0x1000000ll * ((a) & 0x7f);
1245*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_AIMR", 1, a, 0, 0, 0, 0, 0);
1246*4b8b8d74SJaiprakash Singh }
1247*4b8b8d74SJaiprakash Singh 
1248*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_AIMR(a) ody_dsuubx_cluster_ppu_aimr_t
1249*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_AIMR(a) CSR_TYPE_RSL32b
1250*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_AIMR(a) "DSUUBX_CLUSTER_PPU_AIMR"
1251*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_AIMR(a) 0x0 /* PF_BAR0 */
1252*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_AIMR(a) (a)
1253*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_AIMR(a) (a), -1, -1, -1
1254*4b8b8d74SJaiprakash Singh 
1255*4b8b8d74SJaiprakash Singh /**
1256*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_aisr
1257*4b8b8d74SJaiprakash Singh  *
1258*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Additional Interrupt Status Register
1259*4b8b8d74SJaiprakash Singh  * This register contains information about events causing the assertion of the
1260*4b8b8d74SJaiprakash Singh  * interrupt output. It is
1261*4b8b8d74SJaiprakash Singh  * also used to clear interrupt events.
1262*4b8b8d74SJaiprakash Singh  *
1263*4b8b8d74SJaiprakash Singh  * A bit set to 1 indicates the event asserted the interrupt output. Multiple events
1264*4b8b8d74SJaiprakash Singh  * can be active at
1265*4b8b8d74SJaiprakash Singh  * the same time. When an interrupt event is masked an occurrence of that event does not set the
1266*4b8b8d74SJaiprakash Singh  * status bit.
1267*4b8b8d74SJaiprakash Singh  * A write of 1 to an event bit clears that event. A write of 0 has no effect. The
1268*4b8b8d74SJaiprakash Singh  * interrupt output
1269*4b8b8d74SJaiprakash Singh  * stays HIGH until all status bits in the Interrupt Status Register (DSUUB_PPU_ISR)
1270*4b8b8d74SJaiprakash Singh  * and the Additional
1271*4b8b8d74SJaiprakash Singh  * Interrupt Status Register (PPU_AISR) are set to 0b0.
1272*4b8b8d74SJaiprakash Singh  *
1273*4b8b8d74SJaiprakash Singh  * When an interrupt status is set to 1 in this register it sets the OTHER_IRQ bit in the Interrupt
1274*4b8b8d74SJaiprakash Singh  * Status Register (DSUUB_PPU_ISR). Status bits in this register are only cleared by
1275*4b8b8d74SJaiprakash Singh  * writing to this register.
1276*4b8b8d74SJaiprakash Singh  */
1277*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_aisr {
1278*4b8b8d74SJaiprakash Singh 	uint32_t u;
1279*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_aisr_s {
1280*4b8b8d74SJaiprakash Singh 		uint32_t unspt_policy_irq            : 1;
1281*4b8b8d74SJaiprakash Singh 		uint32_t dyn_accept_irq              : 1;
1282*4b8b8d74SJaiprakash Singh 		uint32_t dyn_deny_irq                : 1;
1283*4b8b8d74SJaiprakash Singh 		uint32_t sta_policy_pwr_irq          : 1;
1284*4b8b8d74SJaiprakash Singh 		uint32_t sta_policy_op_irq           : 1;
1285*4b8b8d74SJaiprakash Singh 		uint32_t reserved_5_31               : 27;
1286*4b8b8d74SJaiprakash Singh 	} s;
1287*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_aisr_s cn; */
1288*4b8b8d74SJaiprakash Singh };
1289*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_aisr ody_dsuubx_cluster_ppu_aisr_t;
1290*4b8b8d74SJaiprakash Singh 
1291*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_AISR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_AISR(uint64_t a)1292*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_AISR(uint64_t a)
1293*4b8b8d74SJaiprakash Singh {
1294*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1295*4b8b8d74SJaiprakash Singh 		return 0x87e2ef03003cll + 0x1000000ll * ((a) & 0x7f);
1296*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_AISR", 1, a, 0, 0, 0, 0, 0);
1297*4b8b8d74SJaiprakash Singh }
1298*4b8b8d74SJaiprakash Singh 
1299*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_AISR(a) ody_dsuubx_cluster_ppu_aisr_t
1300*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_AISR(a) CSR_TYPE_RSL32b
1301*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_AISR(a) "DSUUBX_CLUSTER_PPU_AISR"
1302*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_AISR(a) 0x0 /* PF_BAR0 */
1303*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_AISR(a) (a)
1304*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_AISR(a) (a), -1, -1, -1
1305*4b8b8d74SJaiprakash Singh 
1306*4b8b8d74SJaiprakash Singh /**
1307*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_cidr0
1308*4b8b8d74SJaiprakash Singh  *
1309*4b8b8d74SJaiprakash Singh  * DSUUB Cluster PPU Component Identification Register 0
1310*4b8b8d74SJaiprakash Singh  * Provides CoreSight discovery information.
1311*4b8b8d74SJaiprakash Singh  */
1312*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_cidr0 {
1313*4b8b8d74SJaiprakash Singh 	uint32_t u;
1314*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_cidr0_s {
1315*4b8b8d74SJaiprakash Singh 		uint32_t prmbl_0                     : 8;
1316*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
1317*4b8b8d74SJaiprakash Singh 	} s;
1318*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_cidr0_s cn; */
1319*4b8b8d74SJaiprakash Singh };
1320*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_cidr0 ody_dsuubx_cluster_ppu_cidr0_t;
1321*4b8b8d74SJaiprakash Singh 
1322*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_CIDR0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_CIDR0(uint64_t a)1323*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_CIDR0(uint64_t a)
1324*4b8b8d74SJaiprakash Singh {
1325*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1326*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030ff0ll + 0x1000000ll * ((a) & 0x7f);
1327*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_CIDR0", 1, a, 0, 0, 0, 0, 0);
1328*4b8b8d74SJaiprakash Singh }
1329*4b8b8d74SJaiprakash Singh 
1330*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_CIDR0(a) ody_dsuubx_cluster_ppu_cidr0_t
1331*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_CIDR0(a) CSR_TYPE_RSL32b
1332*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_CIDR0(a) "DSUUBX_CLUSTER_PPU_CIDR0"
1333*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_CIDR0(a) 0x0 /* PF_BAR0 */
1334*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_CIDR0(a) (a)
1335*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_CIDR0(a) (a), -1, -1, -1
1336*4b8b8d74SJaiprakash Singh 
1337*4b8b8d74SJaiprakash Singh /**
1338*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_cidr1
1339*4b8b8d74SJaiprakash Singh  *
1340*4b8b8d74SJaiprakash Singh  * DSUUB Cluster PPU Component Identification Register 1
1341*4b8b8d74SJaiprakash Singh  * Provides CoreSight discovery information.
1342*4b8b8d74SJaiprakash Singh  */
1343*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_cidr1 {
1344*4b8b8d74SJaiprakash Singh 	uint32_t u;
1345*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_cidr1_s {
1346*4b8b8d74SJaiprakash Singh 		uint32_t prmbl_1                     : 4;
1347*4b8b8d74SJaiprakash Singh 		uint32_t clas                        : 4;
1348*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
1349*4b8b8d74SJaiprakash Singh 	} s;
1350*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_cidr1_s cn; */
1351*4b8b8d74SJaiprakash Singh };
1352*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_cidr1 ody_dsuubx_cluster_ppu_cidr1_t;
1353*4b8b8d74SJaiprakash Singh 
1354*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_CIDR1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_CIDR1(uint64_t a)1355*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_CIDR1(uint64_t a)
1356*4b8b8d74SJaiprakash Singh {
1357*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1358*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030ff4ll + 0x1000000ll * ((a) & 0x7f);
1359*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_CIDR1", 1, a, 0, 0, 0, 0, 0);
1360*4b8b8d74SJaiprakash Singh }
1361*4b8b8d74SJaiprakash Singh 
1362*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_CIDR1(a) ody_dsuubx_cluster_ppu_cidr1_t
1363*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_CIDR1(a) CSR_TYPE_RSL32b
1364*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_CIDR1(a) "DSUUBX_CLUSTER_PPU_CIDR1"
1365*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_CIDR1(a) 0x0 /* PF_BAR0 */
1366*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_CIDR1(a) (a)
1367*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_CIDR1(a) (a), -1, -1, -1
1368*4b8b8d74SJaiprakash Singh 
1369*4b8b8d74SJaiprakash Singh /**
1370*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_cidr2
1371*4b8b8d74SJaiprakash Singh  *
1372*4b8b8d74SJaiprakash Singh  * DSUUB Cluster PPU Component Identification Register 2
1373*4b8b8d74SJaiprakash Singh  * Provides CoreSight discovery information.
1374*4b8b8d74SJaiprakash Singh  */
1375*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_cidr2 {
1376*4b8b8d74SJaiprakash Singh 	uint32_t u;
1377*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_cidr2_s {
1378*4b8b8d74SJaiprakash Singh 		uint32_t prmbl_2                     : 8;
1379*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
1380*4b8b8d74SJaiprakash Singh 	} s;
1381*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_cidr2_s cn; */
1382*4b8b8d74SJaiprakash Singh };
1383*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_cidr2 ody_dsuubx_cluster_ppu_cidr2_t;
1384*4b8b8d74SJaiprakash Singh 
1385*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_CIDR2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_CIDR2(uint64_t a)1386*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_CIDR2(uint64_t a)
1387*4b8b8d74SJaiprakash Singh {
1388*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1389*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030ff8ll + 0x1000000ll * ((a) & 0x7f);
1390*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_CIDR2", 1, a, 0, 0, 0, 0, 0);
1391*4b8b8d74SJaiprakash Singh }
1392*4b8b8d74SJaiprakash Singh 
1393*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_CIDR2(a) ody_dsuubx_cluster_ppu_cidr2_t
1394*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_CIDR2(a) CSR_TYPE_RSL32b
1395*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_CIDR2(a) "DSUUBX_CLUSTER_PPU_CIDR2"
1396*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_CIDR2(a) 0x0 /* PF_BAR0 */
1397*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_CIDR2(a) (a)
1398*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_CIDR2(a) (a), -1, -1, -1
1399*4b8b8d74SJaiprakash Singh 
1400*4b8b8d74SJaiprakash Singh /**
1401*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_dcdr0
1402*4b8b8d74SJaiprakash Singh  *
1403*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Device Control Delay Configuration Register 0
1404*4b8b8d74SJaiprakash Singh  * This register is used to program device control delay parameters.
1405*4b8b8d74SJaiprakash Singh  */
1406*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_dcdr0 {
1407*4b8b8d74SJaiprakash Singh 	uint32_t u;
1408*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_dcdr0_s {
1409*4b8b8d74SJaiprakash Singh 		uint32_t clken_rst_dly               : 8;
1410*4b8b8d74SJaiprakash Singh 		uint32_t iso_clken_dly               : 8;
1411*4b8b8d74SJaiprakash Singh 		uint32_t rst_hwstat_dly              : 8;
1412*4b8b8d74SJaiprakash Singh 		uint32_t reserved_24_31              : 8;
1413*4b8b8d74SJaiprakash Singh 	} s;
1414*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_dcdr0_s cn; */
1415*4b8b8d74SJaiprakash Singh };
1416*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_dcdr0 ody_dsuubx_cluster_ppu_dcdr0_t;
1417*4b8b8d74SJaiprakash Singh 
1418*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_DCDR0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_DCDR0(uint64_t a)1419*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_DCDR0(uint64_t a)
1420*4b8b8d74SJaiprakash Singh {
1421*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1422*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030170ll + 0x1000000ll * ((a) & 0x7f);
1423*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_DCDR0", 1, a, 0, 0, 0, 0, 0);
1424*4b8b8d74SJaiprakash Singh }
1425*4b8b8d74SJaiprakash Singh 
1426*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_DCDR0(a) ody_dsuubx_cluster_ppu_dcdr0_t
1427*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_DCDR0(a) CSR_TYPE_RSL32b
1428*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_DCDR0(a) "DSUUBX_CLUSTER_PPU_DCDR0"
1429*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_DCDR0(a) 0x0 /* PF_BAR0 */
1430*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_DCDR0(a) (a)
1431*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_DCDR0(a) (a), -1, -1, -1
1432*4b8b8d74SJaiprakash Singh 
1433*4b8b8d74SJaiprakash Singh /**
1434*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_dcdr1
1435*4b8b8d74SJaiprakash Singh  *
1436*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Device Control Delay Configuration Register 1
1437*4b8b8d74SJaiprakash Singh  * This register is used to program device control delay parameters.
1438*4b8b8d74SJaiprakash Singh  */
1439*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_dcdr1 {
1440*4b8b8d74SJaiprakash Singh 	uint32_t u;
1441*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_dcdr1_s {
1442*4b8b8d74SJaiprakash Singh 		uint32_t iso_rst_dly                 : 8;
1443*4b8b8d74SJaiprakash Singh 		uint32_t clken_iso_dly               : 8;
1444*4b8b8d74SJaiprakash Singh 		uint32_t reserved_16_31              : 16;
1445*4b8b8d74SJaiprakash Singh 	} s;
1446*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_dcdr1_s cn; */
1447*4b8b8d74SJaiprakash Singh };
1448*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_dcdr1 ody_dsuubx_cluster_ppu_dcdr1_t;
1449*4b8b8d74SJaiprakash Singh 
1450*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_DCDR1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_DCDR1(uint64_t a)1451*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_DCDR1(uint64_t a)
1452*4b8b8d74SJaiprakash Singh {
1453*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1454*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030174ll + 0x1000000ll * ((a) & 0x7f);
1455*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_DCDR1", 1, a, 0, 0, 0, 0, 0);
1456*4b8b8d74SJaiprakash Singh }
1457*4b8b8d74SJaiprakash Singh 
1458*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_DCDR1(a) ody_dsuubx_cluster_ppu_dcdr1_t
1459*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_DCDR1(a) CSR_TYPE_RSL32b
1460*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_DCDR1(a) "DSUUBX_CLUSTER_PPU_DCDR1"
1461*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_DCDR1(a) 0x0 /* PF_BAR0 */
1462*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_DCDR1(a) (a)
1463*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_DCDR1(a) (a), -1, -1, -1
1464*4b8b8d74SJaiprakash Singh 
1465*4b8b8d74SJaiprakash Singh /**
1466*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_disr
1467*4b8b8d74SJaiprakash Singh  *
1468*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Device Interface Input Current Status Register
1469*4b8b8d74SJaiprakash Singh  * This read-only register contains status reflecting the values of the device interface inputs.
1470*4b8b8d74SJaiprakash Singh  */
1471*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_disr {
1472*4b8b8d74SJaiprakash Singh 	uint32_t u;
1473*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_disr_s {
1474*4b8b8d74SJaiprakash Singh 		uint32_t pwr_devactive_status        : 11;
1475*4b8b8d74SJaiprakash Singh 		uint32_t reserved_11_23              : 13;
1476*4b8b8d74SJaiprakash Singh 		uint32_t op_devactive_status         : 3;
1477*4b8b8d74SJaiprakash Singh 		uint32_t reserved_27_31              : 5;
1478*4b8b8d74SJaiprakash Singh 	} s;
1479*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_disr_s cn; */
1480*4b8b8d74SJaiprakash Singh };
1481*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_disr ody_dsuubx_cluster_ppu_disr_t;
1482*4b8b8d74SJaiprakash Singh 
1483*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_DISR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_DISR(uint64_t a)1484*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_DISR(uint64_t a)
1485*4b8b8d74SJaiprakash Singh {
1486*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1487*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030010ll + 0x1000000ll * ((a) & 0x7f);
1488*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_DISR", 1, a, 0, 0, 0, 0, 0);
1489*4b8b8d74SJaiprakash Singh }
1490*4b8b8d74SJaiprakash Singh 
1491*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_DISR(a) ody_dsuubx_cluster_ppu_disr_t
1492*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_DISR(a) CSR_TYPE_RSL32b
1493*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_DISR(a) "DSUUBX_CLUSTER_PPU_DISR"
1494*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_DISR(a) 0x0 /* PF_BAR0 */
1495*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_DISR(a) (a)
1496*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_DISR(a) (a), -1, -1, -1
1497*4b8b8d74SJaiprakash Singh 
1498*4b8b8d74SJaiprakash Singh /**
1499*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_fulrr
1500*4b8b8d74SJaiprakash Singh  *
1501*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Full Retention RAM Configuration Register
1502*4b8b8d74SJaiprakash Singh  * This register controls bits [15:8] of the PCSMPSTATE output when in FULL_RET mode. These
1503*4b8b8d74SJaiprakash Singh  * outputs are used by the PCSM to configure the logic regions and RAMs that are retained.
1504*4b8b8d74SJaiprakash Singh  */
1505*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_fulrr {
1506*4b8b8d74SJaiprakash Singh 	uint32_t u;
1507*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_fulrr_s {
1508*4b8b8d74SJaiprakash Singh 		uint32_t full_ret_ram_cfg            : 8;
1509*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
1510*4b8b8d74SJaiprakash Singh 	} s;
1511*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_fulrr_s cn; */
1512*4b8b8d74SJaiprakash Singh };
1513*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_fulrr ody_dsuubx_cluster_ppu_fulrr_t;
1514*4b8b8d74SJaiprakash Singh 
1515*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_FULRR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_FULRR(uint64_t a)1516*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_FULRR(uint64_t a)
1517*4b8b8d74SJaiprakash Singh {
1518*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1519*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030054ll + 0x1000000ll * ((a) & 0x7f);
1520*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_FULRR", 1, a, 0, 0, 0, 0, 0);
1521*4b8b8d74SJaiprakash Singh }
1522*4b8b8d74SJaiprakash Singh 
1523*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_FULRR(a) ody_dsuubx_cluster_ppu_fulrr_t
1524*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_FULRR(a) CSR_TYPE_RSL32b
1525*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_FULRR(a) "DSUUBX_CLUSTER_PPU_FULRR"
1526*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_FULRR(a) 0x0 /* PF_BAR0 */
1527*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_FULRR(a) (a)
1528*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_FULRR(a) (a), -1, -1, -1
1529*4b8b8d74SJaiprakash Singh 
1530*4b8b8d74SJaiprakash Singh /**
1531*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_funrr
1532*4b8b8d74SJaiprakash Singh  *
1533*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Functional Retention RAM Configuration Register
1534*4b8b8d74SJaiprakash Singh  * This register is reserved.
1535*4b8b8d74SJaiprakash Singh  */
1536*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_funrr {
1537*4b8b8d74SJaiprakash Singh 	uint32_t u;
1538*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_funrr_s {
1539*4b8b8d74SJaiprakash Singh 		uint32_t func_ret_ram_cfg            : 8;
1540*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
1541*4b8b8d74SJaiprakash Singh 	} s;
1542*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_funrr_s cn; */
1543*4b8b8d74SJaiprakash Singh };
1544*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_funrr ody_dsuubx_cluster_ppu_funrr_t;
1545*4b8b8d74SJaiprakash Singh 
1546*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_FUNRR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_FUNRR(uint64_t a)1547*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_FUNRR(uint64_t a)
1548*4b8b8d74SJaiprakash Singh {
1549*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1550*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030050ll + 0x1000000ll * ((a) & 0x7f);
1551*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_FUNRR", 1, a, 0, 0, 0, 0, 0);
1552*4b8b8d74SJaiprakash Singh }
1553*4b8b8d74SJaiprakash Singh 
1554*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_FUNRR(a) ody_dsuubx_cluster_ppu_funrr_t
1555*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_FUNRR(a) CSR_TYPE_RSL32b
1556*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_FUNRR(a) "DSUUBX_CLUSTER_PPU_FUNRR"
1557*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_FUNRR(a) 0x0 /* PF_BAR0 */
1558*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_FUNRR(a) (a)
1559*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_FUNRR(a) (a), -1, -1, -1
1560*4b8b8d74SJaiprakash Singh 
1561*4b8b8d74SJaiprakash Singh /**
1562*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_idr0
1563*4b8b8d74SJaiprakash Singh  *
1564*4b8b8d74SJaiprakash Singh  * DSUUB Cluster PPU Identification Register 0
1565*4b8b8d74SJaiprakash Singh  * This read-only register contains information on the type and number of channels on the device
1566*4b8b8d74SJaiprakash Singh  * interface and power and operating modes supported.
1567*4b8b8d74SJaiprakash Singh  *
1568*4b8b8d74SJaiprakash Singh  * Additional information on optional features can be found in the PPU Identification
1569*4b8b8d74SJaiprakash Singh  * Register 1 (DSUUB_
1570*4b8b8d74SJaiprakash Singh  * PPU_IDR1).
1571*4b8b8d74SJaiprakash Singh  */
1572*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_idr0 {
1573*4b8b8d74SJaiprakash Singh 	uint32_t u;
1574*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_idr0_s {
1575*4b8b8d74SJaiprakash Singh 		uint32_t devchan                     : 4;
1576*4b8b8d74SJaiprakash Singh 		uint32_t num_opmode                  : 4;
1577*4b8b8d74SJaiprakash Singh 		uint32_t sta_off_spt                 : 1;
1578*4b8b8d74SJaiprakash Singh 		uint32_t sta_off_emu_spt             : 1;
1579*4b8b8d74SJaiprakash Singh 		uint32_t sta_mem_ret_spt             : 1;
1580*4b8b8d74SJaiprakash Singh 		uint32_t sta_mem_ret_emu_spt         : 1;
1581*4b8b8d74SJaiprakash Singh 		uint32_t sta_lgc_ret_spt             : 1;
1582*4b8b8d74SJaiprakash Singh 		uint32_t sta_mem_off_spt             : 1;
1583*4b8b8d74SJaiprakash Singh 		uint32_t sta_full_ret_spt            : 1;
1584*4b8b8d74SJaiprakash Singh 		uint32_t sta_func_ret_spt            : 1;
1585*4b8b8d74SJaiprakash Singh 		uint32_t sta_on_spt                  : 1;
1586*4b8b8d74SJaiprakash Singh 		uint32_t sta_wrm_rst_spt             : 1;
1587*4b8b8d74SJaiprakash Singh 		uint32_t sta_dbg_recov_spt           : 1;
1588*4b8b8d74SJaiprakash Singh 		uint32_t reserved_19                 : 1;
1589*4b8b8d74SJaiprakash Singh 		uint32_t dyn_off_spt                 : 1;
1590*4b8b8d74SJaiprakash Singh 		uint32_t dyn_off_emu_spt             : 1;
1591*4b8b8d74SJaiprakash Singh 		uint32_t dyn_mem_ret_spt             : 1;
1592*4b8b8d74SJaiprakash Singh 		uint32_t dyn_mem_ret_emu_spt         : 1;
1593*4b8b8d74SJaiprakash Singh 		uint32_t dyn_lgc_ret_spt             : 1;
1594*4b8b8d74SJaiprakash Singh 		uint32_t dyn_mem_off_spt             : 1;
1595*4b8b8d74SJaiprakash Singh 		uint32_t dyn_full_ret_spt            : 1;
1596*4b8b8d74SJaiprakash Singh 		uint32_t dyn_func_ret_spt            : 1;
1597*4b8b8d74SJaiprakash Singh 		uint32_t dyn_on_spt                  : 1;
1598*4b8b8d74SJaiprakash Singh 		uint32_t dyn_wrm_rst_spt             : 1;
1599*4b8b8d74SJaiprakash Singh 		uint32_t reserved_30_31              : 2;
1600*4b8b8d74SJaiprakash Singh 	} s;
1601*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_idr0_s cn; */
1602*4b8b8d74SJaiprakash Singh };
1603*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_idr0 ody_dsuubx_cluster_ppu_idr0_t;
1604*4b8b8d74SJaiprakash Singh 
1605*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_IDR0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_IDR0(uint64_t a)1606*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_IDR0(uint64_t a)
1607*4b8b8d74SJaiprakash Singh {
1608*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1609*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030fb0ll + 0x1000000ll * ((a) & 0x7f);
1610*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_IDR0", 1, a, 0, 0, 0, 0, 0);
1611*4b8b8d74SJaiprakash Singh }
1612*4b8b8d74SJaiprakash Singh 
1613*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_IDR0(a) ody_dsuubx_cluster_ppu_idr0_t
1614*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_IDR0(a) CSR_TYPE_RSL32b
1615*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_IDR0(a) "DSUUBX_CLUSTER_PPU_IDR0"
1616*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_IDR0(a) 0x0 /* PF_BAR0 */
1617*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_IDR0(a) (a)
1618*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_IDR0(a) (a), -1, -1, -1
1619*4b8b8d74SJaiprakash Singh 
1620*4b8b8d74SJaiprakash Singh /**
1621*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_idr1
1622*4b8b8d74SJaiprakash Singh  *
1623*4b8b8d74SJaiprakash Singh  * DSUUB Cluster PPU Identification Register 1
1624*4b8b8d74SJaiprakash Singh  * This read-only register contains information on the optional features and configurations that are
1625*4b8b8d74SJaiprakash Singh  * supported by this PPU.
1626*4b8b8d74SJaiprakash Singh  *
1627*4b8b8d74SJaiprakash Singh  * Additional information on optional features can be found in the PPU Identification
1628*4b8b8d74SJaiprakash Singh  * Register 0 (DSUUB_
1629*4b8b8d74SJaiprakash Singh  * PPU_IDR0).
1630*4b8b8d74SJaiprakash Singh  */
1631*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_idr1 {
1632*4b8b8d74SJaiprakash Singh 	uint32_t u;
1633*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_idr1_s {
1634*4b8b8d74SJaiprakash Singh 		uint32_t pwr_mode_entry_del_spt      : 1;
1635*4b8b8d74SJaiprakash Singh 		uint32_t sw_dev_del_spt              : 1;
1636*4b8b8d74SJaiprakash Singh 		uint32_t lock_spt                    : 1;
1637*4b8b8d74SJaiprakash Singh 		uint32_t reserved_3                  : 1;
1638*4b8b8d74SJaiprakash Singh 		uint32_t mem_ret_ram_reg             : 1;
1639*4b8b8d74SJaiprakash Singh 		uint32_t full_ret_ram_reg            : 1;
1640*4b8b8d74SJaiprakash Singh 		uint32_t func_ret_ram_reg            : 1;
1641*4b8b8d74SJaiprakash Singh 		uint32_t reserved_7                  : 1;
1642*4b8b8d74SJaiprakash Singh 		uint32_t sta_policy_pwr_irq_spt      : 1;
1643*4b8b8d74SJaiprakash Singh 		uint32_t sta_policy_op_irq_spt       : 1;
1644*4b8b8d74SJaiprakash Singh 		uint32_t op_active                   : 1;
1645*4b8b8d74SJaiprakash Singh 		uint32_t reserved_11                 : 1;
1646*4b8b8d74SJaiprakash Singh 		uint32_t off_mem_ret_trans           : 1;
1647*4b8b8d74SJaiprakash Singh 		uint32_t reserved_13_31              : 19;
1648*4b8b8d74SJaiprakash Singh 	} s;
1649*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_idr1_s cn; */
1650*4b8b8d74SJaiprakash Singh };
1651*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_idr1 ody_dsuubx_cluster_ppu_idr1_t;
1652*4b8b8d74SJaiprakash Singh 
1653*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_IDR1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_IDR1(uint64_t a)1654*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_IDR1(uint64_t a)
1655*4b8b8d74SJaiprakash Singh {
1656*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1657*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030fb4ll + 0x1000000ll * ((a) & 0x7f);
1658*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_IDR1", 1, a, 0, 0, 0, 0, 0);
1659*4b8b8d74SJaiprakash Singh }
1660*4b8b8d74SJaiprakash Singh 
1661*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_IDR1(a) ody_dsuubx_cluster_ppu_idr1_t
1662*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_IDR1(a) CSR_TYPE_RSL32b
1663*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_IDR1(a) "DSUUBX_CLUSTER_PPU_IDR1"
1664*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_IDR1(a) 0x0 /* PF_BAR0 */
1665*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_IDR1(a) (a)
1666*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_IDR1(a) (a), -1, -1, -1
1667*4b8b8d74SJaiprakash Singh 
1668*4b8b8d74SJaiprakash Singh /**
1669*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_iesr
1670*4b8b8d74SJaiprakash Singh  *
1671*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Input Edge Sensitivity Register
1672*4b8b8d74SJaiprakash Singh  * This register configures the transitions on the power mode DEVPACTIVE inputs that generate an
1673*4b8b8d74SJaiprakash Singh  * Input Edge interrupt event.
1674*4b8b8d74SJaiprakash Singh  *
1675*4b8b8d74SJaiprakash Singh  * When an event is masked an occurrence of the event does not set the corresponding bit in the
1676*4b8b8d74SJaiprakash Singh  * interrupt status register.
1677*4b8b8d74SJaiprakash Singh  */
1678*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_iesr {
1679*4b8b8d74SJaiprakash Singh 	uint32_t u;
1680*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_iesr_s {
1681*4b8b8d74SJaiprakash Singh 		uint32_t reserved_0_1                : 2;
1682*4b8b8d74SJaiprakash Singh 		uint32_t devactive01_edge            : 2;
1683*4b8b8d74SJaiprakash Singh 		uint32_t devactive02_edge            : 2;
1684*4b8b8d74SJaiprakash Singh 		uint32_t devactive03_edge            : 2;
1685*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_13               : 6;
1686*4b8b8d74SJaiprakash Singh 		uint32_t devactive07_edge            : 2;
1687*4b8b8d74SJaiprakash Singh 		uint32_t devactive08_edge            : 2;
1688*4b8b8d74SJaiprakash Singh 		uint32_t devactive09_edge            : 2;
1689*4b8b8d74SJaiprakash Singh 		uint32_t devactive10_edge            : 2;
1690*4b8b8d74SJaiprakash Singh 		uint32_t reserved_22_31              : 10;
1691*4b8b8d74SJaiprakash Singh 	} s;
1692*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_iesr_s cn; */
1693*4b8b8d74SJaiprakash Singh };
1694*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_iesr ody_dsuubx_cluster_ppu_iesr_t;
1695*4b8b8d74SJaiprakash Singh 
1696*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_IESR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_IESR(uint64_t a)1697*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_IESR(uint64_t a)
1698*4b8b8d74SJaiprakash Singh {
1699*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1700*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030040ll + 0x1000000ll * ((a) & 0x7f);
1701*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_IESR", 1, a, 0, 0, 0, 0, 0);
1702*4b8b8d74SJaiprakash Singh }
1703*4b8b8d74SJaiprakash Singh 
1704*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_IESR(a) ody_dsuubx_cluster_ppu_iesr_t
1705*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_IESR(a) CSR_TYPE_RSL32b
1706*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_IESR(a) "DSUUBX_CLUSTER_PPU_IESR"
1707*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_IESR(a) 0x0 /* PF_BAR0 */
1708*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_IESR(a) (a)
1709*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_IESR(a) (a), -1, -1, -1
1710*4b8b8d74SJaiprakash Singh 
1711*4b8b8d74SJaiprakash Singh /**
1712*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_iidr
1713*4b8b8d74SJaiprakash Singh  *
1714*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Implementation Identification Register
1715*4b8b8d74SJaiprakash Singh  * This register provides information about the implementer and implementation of the PPU.
1716*4b8b8d74SJaiprakash Singh  */
1717*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_iidr {
1718*4b8b8d74SJaiprakash Singh 	uint32_t u;
1719*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_iidr_s {
1720*4b8b8d74SJaiprakash Singh 		uint32_t implementer                 : 12;
1721*4b8b8d74SJaiprakash Singh 		uint32_t revision                    : 4;
1722*4b8b8d74SJaiprakash Singh 		uint32_t variant                     : 4;
1723*4b8b8d74SJaiprakash Singh 		uint32_t product_id                  : 12;
1724*4b8b8d74SJaiprakash Singh 	} s;
1725*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_iidr_s cn; */
1726*4b8b8d74SJaiprakash Singh };
1727*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_iidr ody_dsuubx_cluster_ppu_iidr_t;
1728*4b8b8d74SJaiprakash Singh 
1729*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_IIDR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_IIDR(uint64_t a)1730*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_IIDR(uint64_t a)
1731*4b8b8d74SJaiprakash Singh {
1732*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1733*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030fc8ll + 0x1000000ll * ((a) & 0x7f);
1734*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_IIDR", 1, a, 0, 0, 0, 0, 0);
1735*4b8b8d74SJaiprakash Singh }
1736*4b8b8d74SJaiprakash Singh 
1737*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_IIDR(a) ody_dsuubx_cluster_ppu_iidr_t
1738*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_IIDR(a) CSR_TYPE_RSL32b
1739*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_IIDR(a) "DSUUBX_CLUSTER_PPU_IIDR"
1740*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_IIDR(a) 0x0 /* PF_BAR0 */
1741*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_IIDR(a) (a)
1742*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_IIDR(a) (a), -1, -1, -1
1743*4b8b8d74SJaiprakash Singh 
1744*4b8b8d74SJaiprakash Singh /**
1745*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_imr
1746*4b8b8d74SJaiprakash Singh  *
1747*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Interrupt Mask Register
1748*4b8b8d74SJaiprakash Singh  * This register controls the events that assert the interrupt output. Additional event
1749*4b8b8d74SJaiprakash Singh  * masking controls
1750*4b8b8d74SJaiprakash Singh  * are in the Additional Interrupt Mask Register (DSUUB_PPU_AIMR), Input Edge
1751*4b8b8d74SJaiprakash Singh  * Sensitivity Register (DSUUB_
1752*4b8b8d74SJaiprakash Singh  * PPU_IESR), and the Operating Mode Active Edge Sensitivity Register (DSUUB_PPU_OPSR).
1753*4b8b8d74SJaiprakash Singh  *
1754*4b8b8d74SJaiprakash Singh  * When an interrupt event is masked an occurrence of the event does not set the corresponding bit
1755*4b8b8d74SJaiprakash Singh  * in the interrupt status register.
1756*4b8b8d74SJaiprakash Singh  */
1757*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_imr {
1758*4b8b8d74SJaiprakash Singh 	uint32_t u;
1759*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_imr_s {
1760*4b8b8d74SJaiprakash Singh 		uint32_t sta_policy_trn_irq_mask     : 1;
1761*4b8b8d74SJaiprakash Singh 		uint32_t sta_accept_irq_mask         : 1;
1762*4b8b8d74SJaiprakash Singh 		uint32_t sta_deny_irq_mask           : 1;
1763*4b8b8d74SJaiprakash Singh 		uint32_t emu_accept_irq_mask         : 1;
1764*4b8b8d74SJaiprakash Singh 		uint32_t emu_deny_irq_mask           : 1;
1765*4b8b8d74SJaiprakash Singh 		uint32_t locked_irq_mask             : 1;
1766*4b8b8d74SJaiprakash Singh 		uint32_t reserved_6_31               : 26;
1767*4b8b8d74SJaiprakash Singh 	} s;
1768*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_imr_s cn; */
1769*4b8b8d74SJaiprakash Singh };
1770*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_imr ody_dsuubx_cluster_ppu_imr_t;
1771*4b8b8d74SJaiprakash Singh 
1772*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_IMR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_IMR(uint64_t a)1773*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_IMR(uint64_t a)
1774*4b8b8d74SJaiprakash Singh {
1775*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1776*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030030ll + 0x1000000ll * ((a) & 0x7f);
1777*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_IMR", 1, a, 0, 0, 0, 0, 0);
1778*4b8b8d74SJaiprakash Singh }
1779*4b8b8d74SJaiprakash Singh 
1780*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_IMR(a) ody_dsuubx_cluster_ppu_imr_t
1781*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_IMR(a) CSR_TYPE_RSL32b
1782*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_IMR(a) "DSUUBX_CLUSTER_PPU_IMR"
1783*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_IMR(a) 0x0 /* PF_BAR0 */
1784*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_IMR(a) (a)
1785*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_IMR(a) (a), -1, -1, -1
1786*4b8b8d74SJaiprakash Singh 
1787*4b8b8d74SJaiprakash Singh /**
1788*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_isr
1789*4b8b8d74SJaiprakash Singh  *
1790*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Interrupt Status Register
1791*4b8b8d74SJaiprakash Singh  * This register contains information about events causing the assertion of the
1792*4b8b8d74SJaiprakash Singh  * interrupt output. It is
1793*4b8b8d74SJaiprakash Singh  * also used to clear interrupt events.
1794*4b8b8d74SJaiprakash Singh  *
1795*4b8b8d74SJaiprakash Singh  * A bit set to 1 indicates the event asserted the interrupt output. Multiple events
1796*4b8b8d74SJaiprakash Singh  * can be active at
1797*4b8b8d74SJaiprakash Singh  * the same time. When an interrupt event is masked an occurrence of that event does not set the
1798*4b8b8d74SJaiprakash Singh  * status bit.
1799*4b8b8d74SJaiprakash Singh  *
1800*4b8b8d74SJaiprakash Singh  * A write of 1 to an event bit clears that event. A write of 0 to a bit has no
1801*4b8b8d74SJaiprakash Singh  * effect. The interrupt
1802*4b8b8d74SJaiprakash Singh  * output stays HIGH until all status bits in the Interrupt Status Register (PPU_ISR)
1803*4b8b8d74SJaiprakash Singh  * and the Additional
1804*4b8b8d74SJaiprakash Singh  * Interrupt Status Register (DSUUB_PPU_AISR) are 0b0.
1805*4b8b8d74SJaiprakash Singh  *
1806*4b8b8d74SJaiprakash Singh  * When the OTHER_IRQ bit is set, this indicates an event from the Additional Interrupt Status
1807*4b8b8d74SJaiprakash Singh  * Register (PPU_AISR) has caused the interrupt output to be asserted. This bit cannot be cleared by
1808*4b8b8d74SJaiprakash Singh  * writing to this register. It must be cleared by writing to the active event in the
1809*4b8b8d74SJaiprakash Singh  * Additional Interrupt
1810*4b8b8d74SJaiprakash Singh  * Status Register (DSUUB_PPU_AISR).
1811*4b8b8d74SJaiprakash Singh  */
1812*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_isr {
1813*4b8b8d74SJaiprakash Singh 	uint32_t u;
1814*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_isr_s {
1815*4b8b8d74SJaiprakash Singh 		uint32_t sta_policy_trn_irq          : 1;
1816*4b8b8d74SJaiprakash Singh 		uint32_t sta_accept_irq              : 1;
1817*4b8b8d74SJaiprakash Singh 		uint32_t sta_deny_irq                : 1;
1818*4b8b8d74SJaiprakash Singh 		uint32_t emu_accept_irq              : 1;
1819*4b8b8d74SJaiprakash Singh 		uint32_t emu_deny_irq                : 1;
1820*4b8b8d74SJaiprakash Singh 		uint32_t locked_irq                  : 1;
1821*4b8b8d74SJaiprakash Singh 		uint32_t reserved_6                  : 1;
1822*4b8b8d74SJaiprakash Singh 		uint32_t other_irq                   : 1;
1823*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8                  : 1;
1824*4b8b8d74SJaiprakash Singh 		uint32_t pwr_active_edge_irq1        : 1;
1825*4b8b8d74SJaiprakash Singh 		uint32_t pwr_active_edge_irq2        : 1;
1826*4b8b8d74SJaiprakash Singh 		uint32_t pwr_active_edge_irq3        : 1;
1827*4b8b8d74SJaiprakash Singh 		uint32_t reserved_12_14              : 3;
1828*4b8b8d74SJaiprakash Singh 		uint32_t pwr_active_edge_irq7        : 1;
1829*4b8b8d74SJaiprakash Singh 		uint32_t pwr_active_edge_irq8        : 1;
1830*4b8b8d74SJaiprakash Singh 		uint32_t pwr_active_edge_irq9        : 1;
1831*4b8b8d74SJaiprakash Singh 		uint32_t pwr_active_edge_irq10       : 1;
1832*4b8b8d74SJaiprakash Singh 		uint32_t reserved_19_23              : 5;
1833*4b8b8d74SJaiprakash Singh 		uint32_t op_active_edge_irq0         : 1;
1834*4b8b8d74SJaiprakash Singh 		uint32_t op_active_edge_irq1         : 1;
1835*4b8b8d74SJaiprakash Singh 		uint32_t op_active_edge_irq2         : 1;
1836*4b8b8d74SJaiprakash Singh 		uint32_t reserved_27_31              : 5;
1837*4b8b8d74SJaiprakash Singh 	} s;
1838*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_isr_s cn; */
1839*4b8b8d74SJaiprakash Singh };
1840*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_isr ody_dsuubx_cluster_ppu_isr_t;
1841*4b8b8d74SJaiprakash Singh 
1842*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_ISR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_ISR(uint64_t a)1843*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_ISR(uint64_t a)
1844*4b8b8d74SJaiprakash Singh {
1845*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1846*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030038ll + 0x1000000ll * ((a) & 0x7f);
1847*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_ISR", 1, a, 0, 0, 0, 0, 0);
1848*4b8b8d74SJaiprakash Singh }
1849*4b8b8d74SJaiprakash Singh 
1850*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_ISR(a) ody_dsuubx_cluster_ppu_isr_t
1851*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_ISR(a) CSR_TYPE_RSL32b
1852*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_ISR(a) "DSUUBX_CLUSTER_PPU_ISR"
1853*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_ISR(a) 0x0 /* PF_BAR0 */
1854*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_ISR(a) (a)
1855*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_ISR(a) (a), -1, -1, -1
1856*4b8b8d74SJaiprakash Singh 
1857*4b8b8d74SJaiprakash Singh /**
1858*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_memrr
1859*4b8b8d74SJaiprakash Singh  *
1860*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Memory Retention RAM Configuration Register
1861*4b8b8d74SJaiprakash Singh  * This register controls bits [15:8] of the PCSMPSTATE output when in MEM_RET mode. These
1862*4b8b8d74SJaiprakash Singh  * outputs are used by the PCSM to configure the RAMs that are retained.
1863*4b8b8d74SJaiprakash Singh  */
1864*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_memrr {
1865*4b8b8d74SJaiprakash Singh 	uint32_t u;
1866*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_memrr_s {
1867*4b8b8d74SJaiprakash Singh 		uint32_t mem_ret_ram_cfg             : 8;
1868*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
1869*4b8b8d74SJaiprakash Singh 	} s;
1870*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_memrr_s cn; */
1871*4b8b8d74SJaiprakash Singh };
1872*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_memrr ody_dsuubx_cluster_ppu_memrr_t;
1873*4b8b8d74SJaiprakash Singh 
1874*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_MEMRR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_MEMRR(uint64_t a)1875*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_MEMRR(uint64_t a)
1876*4b8b8d74SJaiprakash Singh {
1877*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1878*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030058ll + 0x1000000ll * ((a) & 0x7f);
1879*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_MEMRR", 1, a, 0, 0, 0, 0, 0);
1880*4b8b8d74SJaiprakash Singh }
1881*4b8b8d74SJaiprakash Singh 
1882*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_MEMRR(a) ody_dsuubx_cluster_ppu_memrr_t
1883*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_MEMRR(a) CSR_TYPE_RSL32b
1884*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_MEMRR(a) "DSUUBX_CLUSTER_PPU_MEMRR"
1885*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_MEMRR(a) 0x0 /* PF_BAR0 */
1886*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_MEMRR(a) (a)
1887*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_MEMRR(a) (a), -1, -1, -1
1888*4b8b8d74SJaiprakash Singh 
1889*4b8b8d74SJaiprakash Singh /**
1890*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_misr
1891*4b8b8d74SJaiprakash Singh  *
1892*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Miscellaneous Input Current Status Register
1893*4b8b8d74SJaiprakash Singh  * This read-only register contains status reflecting the values of miscellaneous inputs.
1894*4b8b8d74SJaiprakash Singh  */
1895*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_misr {
1896*4b8b8d74SJaiprakash Singh 	uint32_t u;
1897*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_misr_s {
1898*4b8b8d74SJaiprakash Singh 		uint32_t pcsmpaccept_status          : 1;
1899*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_7                : 7;
1900*4b8b8d74SJaiprakash Singh 		uint32_t devaccept_status            : 1;
1901*4b8b8d74SJaiprakash Singh 		uint32_t reserved_9_15               : 7;
1902*4b8b8d74SJaiprakash Singh 		uint32_t devdeny_status              : 1;
1903*4b8b8d74SJaiprakash Singh 		uint32_t reserved_17_31              : 15;
1904*4b8b8d74SJaiprakash Singh 	} s;
1905*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_misr_s cn; */
1906*4b8b8d74SJaiprakash Singh };
1907*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_misr ody_dsuubx_cluster_ppu_misr_t;
1908*4b8b8d74SJaiprakash Singh 
1909*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_MISR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_MISR(uint64_t a)1910*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_MISR(uint64_t a)
1911*4b8b8d74SJaiprakash Singh {
1912*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1913*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030014ll + 0x1000000ll * ((a) & 0x7f);
1914*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_MISR", 1, a, 0, 0, 0, 0, 0);
1915*4b8b8d74SJaiprakash Singh }
1916*4b8b8d74SJaiprakash Singh 
1917*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_MISR(a) ody_dsuubx_cluster_ppu_misr_t
1918*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_MISR(a) CSR_TYPE_RSL32b
1919*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_MISR(a) "DSUUBX_CLUSTER_PPU_MISR"
1920*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_MISR(a) 0x0 /* PF_BAR0 */
1921*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_MISR(a) (a)
1922*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_MISR(a) (a), -1, -1, -1
1923*4b8b8d74SJaiprakash Singh 
1924*4b8b8d74SJaiprakash Singh /**
1925*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_opsr
1926*4b8b8d74SJaiprakash Singh  *
1927*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Input Edge Sensitivity Register
1928*4b8b8d74SJaiprakash Singh  * This register configures the transitions on the operating mode DEVPACTIVE inputs that generate
1929*4b8b8d74SJaiprakash Singh  * an Input Edge interrupt event.
1930*4b8b8d74SJaiprakash Singh  *
1931*4b8b8d74SJaiprakash Singh  * When an event is masked an occurrence of the event does not set the corresponding bit in the
1932*4b8b8d74SJaiprakash Singh  * interrupt status register.
1933*4b8b8d74SJaiprakash Singh  */
1934*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_opsr {
1935*4b8b8d74SJaiprakash Singh 	uint32_t u;
1936*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_opsr_s {
1937*4b8b8d74SJaiprakash Singh 		uint32_t devactive16_edge            : 2;
1938*4b8b8d74SJaiprakash Singh 		uint32_t devactive17_edge            : 2;
1939*4b8b8d74SJaiprakash Singh 		uint32_t devactive18_edge            : 2;
1940*4b8b8d74SJaiprakash Singh 		uint32_t reserved_6_31               : 26;
1941*4b8b8d74SJaiprakash Singh 	} s;
1942*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_opsr_s cn; */
1943*4b8b8d74SJaiprakash Singh };
1944*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_opsr ody_dsuubx_cluster_ppu_opsr_t;
1945*4b8b8d74SJaiprakash Singh 
1946*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_OPSR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_OPSR(uint64_t a)1947*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_OPSR(uint64_t a)
1948*4b8b8d74SJaiprakash Singh {
1949*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1950*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030044ll + 0x1000000ll * ((a) & 0x7f);
1951*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_OPSR", 1, a, 0, 0, 0, 0, 0);
1952*4b8b8d74SJaiprakash Singh }
1953*4b8b8d74SJaiprakash Singh 
1954*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_OPSR(a) ody_dsuubx_cluster_ppu_opsr_t
1955*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_OPSR(a) CSR_TYPE_RSL32b
1956*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_OPSR(a) "DSUUBX_CLUSTER_PPU_OPSR"
1957*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_OPSR(a) 0x0 /* PF_BAR0 */
1958*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_OPSR(a) (a)
1959*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_OPSR(a) (a), -1, -1, -1
1960*4b8b8d74SJaiprakash Singh 
1961*4b8b8d74SJaiprakash Singh /**
1962*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_pidr0
1963*4b8b8d74SJaiprakash Singh  *
1964*4b8b8d74SJaiprakash Singh  * DSUUB Cluster PPU Peripheral Identification Register 0
1965*4b8b8d74SJaiprakash Singh  * Provides CoreSight discovery information.
1966*4b8b8d74SJaiprakash Singh  */
1967*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_pidr0 {
1968*4b8b8d74SJaiprakash Singh 	uint32_t u;
1969*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_pidr0_s {
1970*4b8b8d74SJaiprakash Singh 		uint32_t part_0                      : 8;
1971*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
1972*4b8b8d74SJaiprakash Singh 	} s;
1973*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_pidr0_s cn; */
1974*4b8b8d74SJaiprakash Singh };
1975*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_pidr0 ody_dsuubx_cluster_ppu_pidr0_t;
1976*4b8b8d74SJaiprakash Singh 
1977*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PIDR0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_PIDR0(uint64_t a)1978*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PIDR0(uint64_t a)
1979*4b8b8d74SJaiprakash Singh {
1980*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1981*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030fe0ll + 0x1000000ll * ((a) & 0x7f);
1982*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_PIDR0", 1, a, 0, 0, 0, 0, 0);
1983*4b8b8d74SJaiprakash Singh }
1984*4b8b8d74SJaiprakash Singh 
1985*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_PIDR0(a) ody_dsuubx_cluster_ppu_pidr0_t
1986*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_PIDR0(a) CSR_TYPE_RSL32b
1987*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_PIDR0(a) "DSUUBX_CLUSTER_PPU_PIDR0"
1988*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_PIDR0(a) 0x0 /* PF_BAR0 */
1989*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_PIDR0(a) (a)
1990*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_PIDR0(a) (a), -1, -1, -1
1991*4b8b8d74SJaiprakash Singh 
1992*4b8b8d74SJaiprakash Singh /**
1993*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_pidr1
1994*4b8b8d74SJaiprakash Singh  *
1995*4b8b8d74SJaiprakash Singh  * DSUUB Cluster PPU Peripheral Identification Register 1
1996*4b8b8d74SJaiprakash Singh  * Provides CoreSight discovery information.
1997*4b8b8d74SJaiprakash Singh  */
1998*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_pidr1 {
1999*4b8b8d74SJaiprakash Singh 	uint32_t u;
2000*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_pidr1_s {
2001*4b8b8d74SJaiprakash Singh 		uint32_t part_1                      : 4;
2002*4b8b8d74SJaiprakash Singh 		uint32_t des_0                       : 4;
2003*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
2004*4b8b8d74SJaiprakash Singh 	} s;
2005*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_pidr1_s cn; */
2006*4b8b8d74SJaiprakash Singh };
2007*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_pidr1 ody_dsuubx_cluster_ppu_pidr1_t;
2008*4b8b8d74SJaiprakash Singh 
2009*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PIDR1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_PIDR1(uint64_t a)2010*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PIDR1(uint64_t a)
2011*4b8b8d74SJaiprakash Singh {
2012*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2013*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030fe4ll + 0x1000000ll * ((a) & 0x7f);
2014*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_PIDR1", 1, a, 0, 0, 0, 0, 0);
2015*4b8b8d74SJaiprakash Singh }
2016*4b8b8d74SJaiprakash Singh 
2017*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_PIDR1(a) ody_dsuubx_cluster_ppu_pidr1_t
2018*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_PIDR1(a) CSR_TYPE_RSL32b
2019*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_PIDR1(a) "DSUUBX_CLUSTER_PPU_PIDR1"
2020*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_PIDR1(a) 0x0 /* PF_BAR0 */
2021*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_PIDR1(a) (a)
2022*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_PIDR1(a) (a), -1, -1, -1
2023*4b8b8d74SJaiprakash Singh 
2024*4b8b8d74SJaiprakash Singh /**
2025*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_pidr2
2026*4b8b8d74SJaiprakash Singh  *
2027*4b8b8d74SJaiprakash Singh  * DSUUB Cluster PPU Peripheral Identification Register 2
2028*4b8b8d74SJaiprakash Singh  * Provides CoreSight discovery information.
2029*4b8b8d74SJaiprakash Singh  */
2030*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_pidr2 {
2031*4b8b8d74SJaiprakash Singh 	uint32_t u;
2032*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_pidr2_s {
2033*4b8b8d74SJaiprakash Singh 		uint32_t des_1                       : 3;
2034*4b8b8d74SJaiprakash Singh 		uint32_t jedec                       : 1;
2035*4b8b8d74SJaiprakash Singh 		uint32_t revision                    : 4;
2036*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
2037*4b8b8d74SJaiprakash Singh 	} s;
2038*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_pidr2_s cn; */
2039*4b8b8d74SJaiprakash Singh };
2040*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_pidr2 ody_dsuubx_cluster_ppu_pidr2_t;
2041*4b8b8d74SJaiprakash Singh 
2042*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PIDR2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_PIDR2(uint64_t a)2043*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PIDR2(uint64_t a)
2044*4b8b8d74SJaiprakash Singh {
2045*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2046*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030fe8ll + 0x1000000ll * ((a) & 0x7f);
2047*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_PIDR2", 1, a, 0, 0, 0, 0, 0);
2048*4b8b8d74SJaiprakash Singh }
2049*4b8b8d74SJaiprakash Singh 
2050*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_PIDR2(a) ody_dsuubx_cluster_ppu_pidr2_t
2051*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_PIDR2(a) CSR_TYPE_RSL32b
2052*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_PIDR2(a) "DSUUBX_CLUSTER_PPU_PIDR2"
2053*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_PIDR2(a) 0x0 /* PF_BAR0 */
2054*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_PIDR2(a) (a)
2055*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_PIDR2(a) (a), -1, -1, -1
2056*4b8b8d74SJaiprakash Singh 
2057*4b8b8d74SJaiprakash Singh /**
2058*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_pidr3
2059*4b8b8d74SJaiprakash Singh  *
2060*4b8b8d74SJaiprakash Singh  * DSUUB Cluster PPU Peripheral Identification Register 3
2061*4b8b8d74SJaiprakash Singh  * Provides CoreSight discovery information.
2062*4b8b8d74SJaiprakash Singh  */
2063*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_pidr3 {
2064*4b8b8d74SJaiprakash Singh 	uint32_t u;
2065*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_pidr3_s {
2066*4b8b8d74SJaiprakash Singh 		uint32_t cmod                        : 4;
2067*4b8b8d74SJaiprakash Singh 		uint32_t revand                      : 4;
2068*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
2069*4b8b8d74SJaiprakash Singh 	} s;
2070*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_pidr3_s cn; */
2071*4b8b8d74SJaiprakash Singh };
2072*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_pidr3 ody_dsuubx_cluster_ppu_pidr3_t;
2073*4b8b8d74SJaiprakash Singh 
2074*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PIDR3(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_PIDR3(uint64_t a)2075*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PIDR3(uint64_t a)
2076*4b8b8d74SJaiprakash Singh {
2077*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2078*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030fecll + 0x1000000ll * ((a) & 0x7f);
2079*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_PIDR3", 1, a, 0, 0, 0, 0, 0);
2080*4b8b8d74SJaiprakash Singh }
2081*4b8b8d74SJaiprakash Singh 
2082*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_PIDR3(a) ody_dsuubx_cluster_ppu_pidr3_t
2083*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_PIDR3(a) CSR_TYPE_RSL32b
2084*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_PIDR3(a) "DSUUBX_CLUSTER_PPU_PIDR3"
2085*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_PIDR3(a) 0x0 /* PF_BAR0 */
2086*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_PIDR3(a) (a)
2087*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_PIDR3(a) (a), -1, -1, -1
2088*4b8b8d74SJaiprakash Singh 
2089*4b8b8d74SJaiprakash Singh /**
2090*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_pidr4
2091*4b8b8d74SJaiprakash Singh  *
2092*4b8b8d74SJaiprakash Singh  * DSUUB Cluster PPU Peripheral Identification Register 4
2093*4b8b8d74SJaiprakash Singh  * Provides CoreSight discovery information.
2094*4b8b8d74SJaiprakash Singh  */
2095*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_pidr4 {
2096*4b8b8d74SJaiprakash Singh 	uint32_t u;
2097*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_pidr4_s {
2098*4b8b8d74SJaiprakash Singh 		uint32_t des_2                       : 4;
2099*4b8b8d74SJaiprakash Singh 		uint32_t size                        : 4;
2100*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
2101*4b8b8d74SJaiprakash Singh 	} s;
2102*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_pidr4_s cn; */
2103*4b8b8d74SJaiprakash Singh };
2104*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_pidr4 ody_dsuubx_cluster_ppu_pidr4_t;
2105*4b8b8d74SJaiprakash Singh 
2106*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PIDR4(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_PIDR4(uint64_t a)2107*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PIDR4(uint64_t a)
2108*4b8b8d74SJaiprakash Singh {
2109*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2110*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030fd0ll + 0x1000000ll * ((a) & 0x7f);
2111*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_PIDR4", 1, a, 0, 0, 0, 0, 0);
2112*4b8b8d74SJaiprakash Singh }
2113*4b8b8d74SJaiprakash Singh 
2114*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_PIDR4(a) ody_dsuubx_cluster_ppu_pidr4_t
2115*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_PIDR4(a) CSR_TYPE_RSL32b
2116*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_PIDR4(a) "DSUUBX_CLUSTER_PPU_PIDR4"
2117*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_PIDR4(a) 0x0 /* PF_BAR0 */
2118*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_PIDR4(a) (a)
2119*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_PIDR4(a) (a), -1, -1, -1
2120*4b8b8d74SJaiprakash Singh 
2121*4b8b8d74SJaiprakash Singh /**
2122*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_pidr5
2123*4b8b8d74SJaiprakash Singh  *
2124*4b8b8d74SJaiprakash Singh  * DSUUB Cluster PPU Peripheral Identification Register 5
2125*4b8b8d74SJaiprakash Singh  * Provides CoreSight discovery information.
2126*4b8b8d74SJaiprakash Singh  */
2127*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_pidr5 {
2128*4b8b8d74SJaiprakash Singh 	uint32_t u;
2129*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_pidr5_s {
2130*4b8b8d74SJaiprakash Singh 		uint32_t reserved_0_31               : 32;
2131*4b8b8d74SJaiprakash Singh 	} s;
2132*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_pidr5_s cn; */
2133*4b8b8d74SJaiprakash Singh };
2134*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_pidr5 ody_dsuubx_cluster_ppu_pidr5_t;
2135*4b8b8d74SJaiprakash Singh 
2136*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PIDR5(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_PIDR5(uint64_t a)2137*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PIDR5(uint64_t a)
2138*4b8b8d74SJaiprakash Singh {
2139*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2140*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030fd4ll + 0x1000000ll * ((a) & 0x7f);
2141*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_PIDR5", 1, a, 0, 0, 0, 0, 0);
2142*4b8b8d74SJaiprakash Singh }
2143*4b8b8d74SJaiprakash Singh 
2144*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_PIDR5(a) ody_dsuubx_cluster_ppu_pidr5_t
2145*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_PIDR5(a) CSR_TYPE_RSL32b
2146*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_PIDR5(a) "DSUUBX_CLUSTER_PPU_PIDR5"
2147*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_PIDR5(a) 0x0 /* PF_BAR0 */
2148*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_PIDR5(a) (a)
2149*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_PIDR5(a) (a), -1, -1, -1
2150*4b8b8d74SJaiprakash Singh 
2151*4b8b8d74SJaiprakash Singh /**
2152*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_pidr6
2153*4b8b8d74SJaiprakash Singh  *
2154*4b8b8d74SJaiprakash Singh  * DSUUB Cluster PPU Peripheral Identification Register 6
2155*4b8b8d74SJaiprakash Singh  * Provides CoreSight discovery information.
2156*4b8b8d74SJaiprakash Singh  */
2157*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_pidr6 {
2158*4b8b8d74SJaiprakash Singh 	uint32_t u;
2159*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_pidr6_s {
2160*4b8b8d74SJaiprakash Singh 		uint32_t reserved_0_31               : 32;
2161*4b8b8d74SJaiprakash Singh 	} s;
2162*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_pidr6_s cn; */
2163*4b8b8d74SJaiprakash Singh };
2164*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_pidr6 ody_dsuubx_cluster_ppu_pidr6_t;
2165*4b8b8d74SJaiprakash Singh 
2166*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PIDR6(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_PIDR6(uint64_t a)2167*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PIDR6(uint64_t a)
2168*4b8b8d74SJaiprakash Singh {
2169*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2170*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030fd8ll + 0x1000000ll * ((a) & 0x7f);
2171*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_PIDR6", 1, a, 0, 0, 0, 0, 0);
2172*4b8b8d74SJaiprakash Singh }
2173*4b8b8d74SJaiprakash Singh 
2174*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_PIDR6(a) ody_dsuubx_cluster_ppu_pidr6_t
2175*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_PIDR6(a) CSR_TYPE_RSL32b
2176*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_PIDR6(a) "DSUUBX_CLUSTER_PPU_PIDR6"
2177*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_PIDR6(a) 0x0 /* PF_BAR0 */
2178*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_PIDR6(a) (a)
2179*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_PIDR6(a) (a), -1, -1, -1
2180*4b8b8d74SJaiprakash Singh 
2181*4b8b8d74SJaiprakash Singh /**
2182*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_pidr7
2183*4b8b8d74SJaiprakash Singh  *
2184*4b8b8d74SJaiprakash Singh  * DSUUB Cluster PPU Peripheral Identification Register 7
2185*4b8b8d74SJaiprakash Singh  * Provides CoreSight discovery information.
2186*4b8b8d74SJaiprakash Singh  */
2187*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_pidr7 {
2188*4b8b8d74SJaiprakash Singh 	uint32_t u;
2189*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_pidr7_s {
2190*4b8b8d74SJaiprakash Singh 		uint32_t reserved_0_31               : 32;
2191*4b8b8d74SJaiprakash Singh 	} s;
2192*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_pidr7_s cn; */
2193*4b8b8d74SJaiprakash Singh };
2194*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_pidr7 ody_dsuubx_cluster_ppu_pidr7_t;
2195*4b8b8d74SJaiprakash Singh 
2196*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PIDR7(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_PIDR7(uint64_t a)2197*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PIDR7(uint64_t a)
2198*4b8b8d74SJaiprakash Singh {
2199*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2200*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030fdcll + 0x1000000ll * ((a) & 0x7f);
2201*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_PIDR7", 1, a, 0, 0, 0, 0, 0);
2202*4b8b8d74SJaiprakash Singh }
2203*4b8b8d74SJaiprakash Singh 
2204*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_PIDR7(a) ody_dsuubx_cluster_ppu_pidr7_t
2205*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_PIDR7(a) CSR_TYPE_RSL32b
2206*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_PIDR7(a) "DSUUBX_CLUSTER_PPU_PIDR7"
2207*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_PIDR7(a) 0x0 /* PF_BAR0 */
2208*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_PIDR7(a) (a)
2209*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_PIDR7(a) (a), -1, -1, -1
2210*4b8b8d74SJaiprakash Singh 
2211*4b8b8d74SJaiprakash Singh /**
2212*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_pmer
2213*4b8b8d74SJaiprakash Singh  *
2214*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Power Mode Emulation Enable Register
2215*4b8b8d74SJaiprakash Singh  * This register allows software to enable entry into emulated modes.
2216*4b8b8d74SJaiprakash Singh  */
2217*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_pmer {
2218*4b8b8d74SJaiprakash Singh 	uint32_t u;
2219*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_pmer_s {
2220*4b8b8d74SJaiprakash Singh 		uint32_t emu_en                      : 1;
2221*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_31               : 31;
2222*4b8b8d74SJaiprakash Singh 	} s;
2223*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_pmer_s cn; */
2224*4b8b8d74SJaiprakash Singh };
2225*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_pmer ody_dsuubx_cluster_ppu_pmer_t;
2226*4b8b8d74SJaiprakash Singh 
2227*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PMER(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_PMER(uint64_t a)2228*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PMER(uint64_t a)
2229*4b8b8d74SJaiprakash Singh {
2230*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2231*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030004ll + 0x1000000ll * ((a) & 0x7f);
2232*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_PMER", 1, a, 0, 0, 0, 0, 0);
2233*4b8b8d74SJaiprakash Singh }
2234*4b8b8d74SJaiprakash Singh 
2235*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_PMER(a) ody_dsuubx_cluster_ppu_pmer_t
2236*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_PMER(a) CSR_TYPE_RSL32b
2237*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_PMER(a) "DSUUBX_CLUSTER_PPU_PMER"
2238*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_PMER(a) 0x0 /* PF_BAR0 */
2239*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_PMER(a) (a)
2240*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_PMER(a) (a), -1, -1, -1
2241*4b8b8d74SJaiprakash Singh 
2242*4b8b8d74SJaiprakash Singh /**
2243*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_ptcr
2244*4b8b8d74SJaiprakash Singh  *
2245*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Power Mode Transition Register
2246*4b8b8d74SJaiprakash Singh  * This register contains settings which affect the behaviour of certain power mode transitions.
2247*4b8b8d74SJaiprakash Singh  */
2248*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_ptcr {
2249*4b8b8d74SJaiprakash Singh 	uint32_t u;
2250*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_ptcr_s {
2251*4b8b8d74SJaiprakash Singh 		uint32_t warm_rst_devreqen           : 1;
2252*4b8b8d74SJaiprakash Singh 		uint32_t dbg_recov_porst_en          : 1;
2253*4b8b8d74SJaiprakash Singh 		uint32_t reserved_2_31               : 30;
2254*4b8b8d74SJaiprakash Singh 	} s;
2255*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_ptcr_s cn; */
2256*4b8b8d74SJaiprakash Singh };
2257*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_ptcr ody_dsuubx_cluster_ppu_ptcr_t;
2258*4b8b8d74SJaiprakash Singh 
2259*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PTCR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_PTCR(uint64_t a)2260*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PTCR(uint64_t a)
2261*4b8b8d74SJaiprakash Singh {
2262*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2263*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030024ll + 0x1000000ll * ((a) & 0x7f);
2264*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_PTCR", 1, a, 0, 0, 0, 0, 0);
2265*4b8b8d74SJaiprakash Singh }
2266*4b8b8d74SJaiprakash Singh 
2267*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_PTCR(a) ody_dsuubx_cluster_ppu_ptcr_t
2268*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_PTCR(a) CSR_TYPE_RSL32b
2269*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_PTCR(a) "DSUUBX_CLUSTER_PPU_PTCR"
2270*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_PTCR(a) 0x0 /* PF_BAR0 */
2271*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_PTCR(a) (a)
2272*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_PTCR(a) (a), -1, -1, -1
2273*4b8b8d74SJaiprakash Singh 
2274*4b8b8d74SJaiprakash Singh /**
2275*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_pwcr
2276*4b8b8d74SJaiprakash Singh  *
2277*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Power Configuration Register
2278*4b8b8d74SJaiprakash Singh  * This register controls enabling and disabling of hardware control inputs to the PPU.
2279*4b8b8d74SJaiprakash Singh  *
2280*4b8b8d74SJaiprakash Singh  * Before software programs the DEVREQEN bits it must configure the PPU for static
2281*4b8b8d74SJaiprakash Singh  * transitions and ensure the requested power mode has been reached, this means that no
2282*4b8b8d74SJaiprakash Singh  * further transitions can occur, otherwise behavior is UNPREDICTABLE.
2283*4b8b8d74SJaiprakash Singh  *
2284*4b8b8d74SJaiprakash Singh  * The PWR_DEVACTIVEEN and OP_DEVACTIVEEN fields in this register control the ability of the
2285*4b8b8d74SJaiprakash Singh  * DEVACTIVE inputs to initiate power mode transitions, but not the ability to generate input edge
2286*4b8b8d74SJaiprakash Singh  * interrupt events.
2287*4b8b8d74SJaiprakash Singh  */
2288*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_pwcr {
2289*4b8b8d74SJaiprakash Singh 	uint32_t u;
2290*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_pwcr_s {
2291*4b8b8d74SJaiprakash Singh 		uint32_t devreqen                    : 1;
2292*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_8                : 8;
2293*4b8b8d74SJaiprakash Singh 		uint32_t pwr_devactiveen1            : 1;
2294*4b8b8d74SJaiprakash Singh 		uint32_t pwr_devactiveen2            : 1;
2295*4b8b8d74SJaiprakash Singh 		uint32_t pwr_devactiveen3            : 1;
2296*4b8b8d74SJaiprakash Singh 		uint32_t reserved_12                 : 1;
2297*4b8b8d74SJaiprakash Singh 		uint32_t pwr_devactiveen5            : 1;
2298*4b8b8d74SJaiprakash Singh 		uint32_t reserved_14                 : 1;
2299*4b8b8d74SJaiprakash Singh 		uint32_t pwr_devactiveen7            : 1;
2300*4b8b8d74SJaiprakash Singh 		uint32_t pwr_devactiveen8            : 1;
2301*4b8b8d74SJaiprakash Singh 		uint32_t pwr_devactiveen9            : 1;
2302*4b8b8d74SJaiprakash Singh 		uint32_t pwr_devactiveen10           : 1;
2303*4b8b8d74SJaiprakash Singh 		uint32_t reserved_19_23              : 5;
2304*4b8b8d74SJaiprakash Singh 		uint32_t op_devactiveen0             : 1;
2305*4b8b8d74SJaiprakash Singh 		uint32_t op_devactiveen1             : 1;
2306*4b8b8d74SJaiprakash Singh 		uint32_t op_devactiveen2             : 1;
2307*4b8b8d74SJaiprakash Singh 		uint32_t reserved_27_31              : 5;
2308*4b8b8d74SJaiprakash Singh 	} s;
2309*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_pwcr_s cn; */
2310*4b8b8d74SJaiprakash Singh };
2311*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_pwcr ody_dsuubx_cluster_ppu_pwcr_t;
2312*4b8b8d74SJaiprakash Singh 
2313*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PWCR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_PWCR(uint64_t a)2314*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PWCR(uint64_t a)
2315*4b8b8d74SJaiprakash Singh {
2316*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2317*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030020ll + 0x1000000ll * ((a) & 0x7f);
2318*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_PWCR", 1, a, 0, 0, 0, 0, 0);
2319*4b8b8d74SJaiprakash Singh }
2320*4b8b8d74SJaiprakash Singh 
2321*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_PWCR(a) ody_dsuubx_cluster_ppu_pwcr_t
2322*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_PWCR(a) CSR_TYPE_RSL32b
2323*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_PWCR(a) "DSUUBX_CLUSTER_PPU_PWCR"
2324*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_PWCR(a) 0x0 /* PF_BAR0 */
2325*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_PWCR(a) (a)
2326*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_PWCR(a) (a), -1, -1, -1
2327*4b8b8d74SJaiprakash Singh 
2328*4b8b8d74SJaiprakash Singh /**
2329*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_pwpr
2330*4b8b8d74SJaiprakash Singh  *
2331*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Power Policy Register
2332*4b8b8d74SJaiprakash Singh  * This register enables software to program both power and operating mode policy. It also contains
2333*4b8b8d74SJaiprakash Singh  * related settings including the enable for dynamic transitions and the lock enable.
2334*4b8b8d74SJaiprakash Singh  *
2335*4b8b8d74SJaiprakash Singh  * This register does not reflect the current power mode value. The current power mode of the
2336*4b8b8d74SJaiprakash Singh  * domain is reflected in the Power Status Register (DSUUB_PPU_PWSR).
2337*4b8b8d74SJaiprakash Singh  */
2338*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_pwpr {
2339*4b8b8d74SJaiprakash Singh 	uint32_t u;
2340*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_pwpr_s {
2341*4b8b8d74SJaiprakash Singh 		uint32_t pwr_policy                  : 4;
2342*4b8b8d74SJaiprakash Singh 		uint32_t reserved_4_7                : 4;
2343*4b8b8d74SJaiprakash Singh 		uint32_t pwr_dyn_en                  : 1;
2344*4b8b8d74SJaiprakash Singh 		uint32_t reserved_9_11               : 3;
2345*4b8b8d74SJaiprakash Singh 		uint32_t lock_en                     : 1;
2346*4b8b8d74SJaiprakash Singh 		uint32_t reserved_13_15              : 3;
2347*4b8b8d74SJaiprakash Singh 		uint32_t op_policy                   : 4;
2348*4b8b8d74SJaiprakash Singh 		uint32_t reserved_20_23              : 4;
2349*4b8b8d74SJaiprakash Singh 		uint32_t op_dyn_en                   : 1;
2350*4b8b8d74SJaiprakash Singh 		uint32_t reserved_25_31              : 7;
2351*4b8b8d74SJaiprakash Singh 	} s;
2352*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_pwpr_s cn; */
2353*4b8b8d74SJaiprakash Singh };
2354*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_pwpr ody_dsuubx_cluster_ppu_pwpr_t;
2355*4b8b8d74SJaiprakash Singh 
2356*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PWPR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_PWPR(uint64_t a)2357*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PWPR(uint64_t a)
2358*4b8b8d74SJaiprakash Singh {
2359*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2360*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030000ll + 0x1000000ll * ((a) & 0x7f);
2361*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_PWPR", 1, a, 0, 0, 0, 0, 0);
2362*4b8b8d74SJaiprakash Singh }
2363*4b8b8d74SJaiprakash Singh 
2364*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_PWPR(a) ody_dsuubx_cluster_ppu_pwpr_t
2365*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_PWPR(a) CSR_TYPE_RSL32b
2366*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_PWPR(a) "DSUUBX_CLUSTER_PPU_PWPR"
2367*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_PWPR(a) 0x0 /* PF_BAR0 */
2368*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_PWPR(a) (a)
2369*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_PWPR(a) (a), -1, -1, -1
2370*4b8b8d74SJaiprakash Singh 
2371*4b8b8d74SJaiprakash Singh /**
2372*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_pwsr
2373*4b8b8d74SJaiprakash Singh  *
2374*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Power Status Register
2375*4b8b8d74SJaiprakash Singh  * This read-only register contains status information for the power mode, operating mode, dynamic
2376*4b8b8d74SJaiprakash Singh  * transitions, and lock feature.
2377*4b8b8d74SJaiprakash Singh  */
2378*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_pwsr {
2379*4b8b8d74SJaiprakash Singh 	uint32_t u;
2380*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_pwsr_s {
2381*4b8b8d74SJaiprakash Singh 		uint32_t pwr_status                  : 4;
2382*4b8b8d74SJaiprakash Singh 		uint32_t reserved_4_7                : 4;
2383*4b8b8d74SJaiprakash Singh 		uint32_t pwr_dyn_status              : 1;
2384*4b8b8d74SJaiprakash Singh 		uint32_t reserved_9_11               : 3;
2385*4b8b8d74SJaiprakash Singh 		uint32_t lock_status                 : 1;
2386*4b8b8d74SJaiprakash Singh 		uint32_t reserved_13_15              : 3;
2387*4b8b8d74SJaiprakash Singh 		uint32_t op_status                   : 4;
2388*4b8b8d74SJaiprakash Singh 		uint32_t reserved_20_23              : 4;
2389*4b8b8d74SJaiprakash Singh 		uint32_t op_dyn_status               : 1;
2390*4b8b8d74SJaiprakash Singh 		uint32_t reserved_25_31              : 7;
2391*4b8b8d74SJaiprakash Singh 	} s;
2392*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_pwsr_s cn; */
2393*4b8b8d74SJaiprakash Singh };
2394*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_pwsr ody_dsuubx_cluster_ppu_pwsr_t;
2395*4b8b8d74SJaiprakash Singh 
2396*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PWSR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_PWSR(uint64_t a)2397*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_PWSR(uint64_t a)
2398*4b8b8d74SJaiprakash Singh {
2399*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2400*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030008ll + 0x1000000ll * ((a) & 0x7f);
2401*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_PWSR", 1, a, 0, 0, 0, 0, 0);
2402*4b8b8d74SJaiprakash Singh }
2403*4b8b8d74SJaiprakash Singh 
2404*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_PWSR(a) ody_dsuubx_cluster_ppu_pwsr_t
2405*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_PWSR(a) CSR_TYPE_RSL32b
2406*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_PWSR(a) "DSUUBX_CLUSTER_PPU_PWSR"
2407*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_PWSR(a) 0x0 /* PF_BAR0 */
2408*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_PWSR(a) (a)
2409*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_PWSR(a) (a), -1, -1, -1
2410*4b8b8d74SJaiprakash Singh 
2411*4b8b8d74SJaiprakash Singh /**
2412*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_stsr
2413*4b8b8d74SJaiprakash Singh  *
2414*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Stored Status Register
2415*4b8b8d74SJaiprakash Singh  * This register is reserved for P-Channel PPUs.
2416*4b8b8d74SJaiprakash Singh  */
2417*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_stsr {
2418*4b8b8d74SJaiprakash Singh 	uint32_t u;
2419*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_stsr_s {
2420*4b8b8d74SJaiprakash Singh 		uint32_t stored_devdeny              : 8;
2421*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
2422*4b8b8d74SJaiprakash Singh 	} s;
2423*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_stsr_s cn; */
2424*4b8b8d74SJaiprakash Singh };
2425*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_stsr ody_dsuubx_cluster_ppu_stsr_t;
2426*4b8b8d74SJaiprakash Singh 
2427*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_STSR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_STSR(uint64_t a)2428*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_STSR(uint64_t a)
2429*4b8b8d74SJaiprakash Singh {
2430*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2431*4b8b8d74SJaiprakash Singh 		return 0x87e2ef030018ll + 0x1000000ll * ((a) & 0x7f);
2432*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_STSR", 1, a, 0, 0, 0, 0, 0);
2433*4b8b8d74SJaiprakash Singh }
2434*4b8b8d74SJaiprakash Singh 
2435*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_STSR(a) ody_dsuubx_cluster_ppu_stsr_t
2436*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_STSR(a) CSR_TYPE_RSL32b
2437*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_STSR(a) "DSUUBX_CLUSTER_PPU_STSR"
2438*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_STSR(a) 0x0 /* PF_BAR0 */
2439*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_STSR(a) (a)
2440*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_STSR(a) (a), -1, -1, -1
2441*4b8b8d74SJaiprakash Singh 
2442*4b8b8d74SJaiprakash Singh /**
2443*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_cluster_ppu_unlk
2444*4b8b8d74SJaiprakash Singh  *
2445*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Unlock Register
2446*4b8b8d74SJaiprakash Singh  * This register allows software to unlock the PPU from a locked power mode.
2447*4b8b8d74SJaiprakash Singh  */
2448*4b8b8d74SJaiprakash Singh union ody_dsuubx_cluster_ppu_unlk {
2449*4b8b8d74SJaiprakash Singh 	uint32_t u;
2450*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cluster_ppu_unlk_s {
2451*4b8b8d74SJaiprakash Singh 		uint32_t unlock                      : 1;
2452*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_31               : 31;
2453*4b8b8d74SJaiprakash Singh 	} s;
2454*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cluster_ppu_unlk_s cn; */
2455*4b8b8d74SJaiprakash Singh };
2456*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cluster_ppu_unlk ody_dsuubx_cluster_ppu_unlk_t;
2457*4b8b8d74SJaiprakash Singh 
2458*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_UNLK(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTER_PPU_UNLK(uint64_t a)2459*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTER_PPU_UNLK(uint64_t a)
2460*4b8b8d74SJaiprakash Singh {
2461*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2462*4b8b8d74SJaiprakash Singh 		return 0x87e2ef03001cll + 0x1000000ll * ((a) & 0x7f);
2463*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTER_PPU_UNLK", 1, a, 0, 0, 0, 0, 0);
2464*4b8b8d74SJaiprakash Singh }
2465*4b8b8d74SJaiprakash Singh 
2466*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTER_PPU_UNLK(a) ody_dsuubx_cluster_ppu_unlk_t
2467*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTER_PPU_UNLK(a) CSR_TYPE_RSL32b
2468*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTER_PPU_UNLK(a) "DSUUBX_CLUSTER_PPU_UNLK"
2469*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTER_PPU_UNLK(a) 0x0 /* PF_BAR0 */
2470*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTER_PPU_UNLK(a) (a)
2471*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTER_PPU_UNLK(a) (a), -1, -1, -1
2472*4b8b8d74SJaiprakash Singh 
2473*4b8b8d74SJaiprakash Singh /**
2474*4b8b8d74SJaiprakash Singh  * Register (RSL) dsuub#_clusterbusqos
2475*4b8b8d74SJaiprakash Singh  *
2476*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Bus QoS Control Register
2477*4b8b8d74SJaiprakash Singh  * Determines the value driven on the CHI bus QoS field.
2478*4b8b8d74SJaiprakash Singh  */
2479*4b8b8d74SJaiprakash Singh union ody_dsuubx_clusterbusqos {
2480*4b8b8d74SJaiprakash Singh 	uint64_t u;
2481*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_clusterbusqos_s {
2482*4b8b8d74SJaiprakash Singh 		uint64_t qos                         : 4;
2483*4b8b8d74SJaiprakash Singh 		uint64_t reserved_4_63               : 60;
2484*4b8b8d74SJaiprakash Singh 	} s;
2485*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_clusterbusqos_s cn; */
2486*4b8b8d74SJaiprakash Singh };
2487*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_clusterbusqos ody_dsuubx_clusterbusqos_t;
2488*4b8b8d74SJaiprakash Singh 
2489*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERBUSQOS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTERBUSQOS(uint64_t a)2490*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERBUSQOS(uint64_t a)
2491*4b8b8d74SJaiprakash Singh {
2492*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2493*4b8b8d74SJaiprakash Singh 		return 0x87e2ef000048ll + 0x1000000ll * ((a) & 0x7f);
2494*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTERBUSQOS", 1, a, 0, 0, 0, 0, 0);
2495*4b8b8d74SJaiprakash Singh }
2496*4b8b8d74SJaiprakash Singh 
2497*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTERBUSQOS(a) ody_dsuubx_clusterbusqos_t
2498*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTERBUSQOS(a) CSR_TYPE_RSL
2499*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTERBUSQOS(a) "DSUUBX_CLUSTERBUSQOS"
2500*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTERBUSQOS(a) 0x0 /* PF_BAR0 */
2501*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTERBUSQOS(a) (a)
2502*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTERBUSQOS(a) (a), -1, -1, -1
2503*4b8b8d74SJaiprakash Singh 
2504*4b8b8d74SJaiprakash Singh /**
2505*4b8b8d74SJaiprakash Singh  * Register (RSL) dsuub#_clustercfr
2506*4b8b8d74SJaiprakash Singh  *
2507*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Configuration Register
2508*4b8b8d74SJaiprakash Singh  * Contains details of the hardware configuration of the cluster.
2509*4b8b8d74SJaiprakash Singh  */
2510*4b8b8d74SJaiprakash Singh union ody_dsuubx_clustercfr {
2511*4b8b8d74SJaiprakash Singh 	uint64_t u;
2512*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_clustercfr_s {
2513*4b8b8d74SJaiprakash Singh 		uint64_t numcore                     : 3;
2514*4b8b8d74SJaiprakash Singh 		uint64_t reserved_3                  : 1;
2515*4b8b8d74SJaiprakash Singh 		uint64_t numpe                       : 4;
2516*4b8b8d74SJaiprakash Singh 		uint64_t reserved_8                  : 1;
2517*4b8b8d74SJaiprakash Singh 		uint64_t l3                          : 1;
2518*4b8b8d74SJaiprakash Singh 		uint64_t wrlat                       : 2;
2519*4b8b8d74SJaiprakash Singh 		uint64_t rdlat                       : 1;
2520*4b8b8d74SJaiprakash Singh 		uint64_t rdslc                       : 1;
2521*4b8b8d74SJaiprakash Singh 		uint64_t ecc                         : 1;
2522*4b8b8d74SJaiprakash Singh 		uint64_t nummas                      : 2;
2523*4b8b8d74SJaiprakash Singh 		uint64_t mas                         : 1;
2524*4b8b8d74SJaiprakash Singh 		uint64_t reserved_18                 : 1;
2525*4b8b8d74SJaiprakash Singh 		uint64_t acpw                        : 1;
2526*4b8b8d74SJaiprakash Singh 		uint64_t acp                         : 1;
2527*4b8b8d74SJaiprakash Singh 		uint64_t reserved_21                 : 1;
2528*4b8b8d74SJaiprakash Singh 		uint64_t ppw                         : 1;
2529*4b8b8d74SJaiprakash Singh 		uint64_t pp                          : 1;
2530*4b8b8d74SJaiprakash Singh 		uint64_t reserved_24                 : 1;
2531*4b8b8d74SJaiprakash Singh 		uint64_t trsh                        : 2;
2532*4b8b8d74SJaiprakash Singh 		uint64_t trsv                        : 2;
2533*4b8b8d74SJaiprakash Singh 		uint64_t crs                         : 16;
2534*4b8b8d74SJaiprakash Singh 		uint64_t reserved_45_50              : 6;
2535*4b8b8d74SJaiprakash Singh 		uint64_t l3slc                       : 3;
2536*4b8b8d74SJaiprakash Singh 		uint64_t reserved_54                 : 1;
2537*4b8b8d74SJaiprakash Singh 		uint64_t sfidx                       : 4;
2538*4b8b8d74SJaiprakash Singh 		uint64_t sfway                       : 2;
2539*4b8b8d74SJaiprakash Singh 		uint64_t nodes                       : 3;
2540*4b8b8d74SJaiprakash Singh 	} s;
2541*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_clustercfr_s cn; */
2542*4b8b8d74SJaiprakash Singh };
2543*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_clustercfr ody_dsuubx_clustercfr_t;
2544*4b8b8d74SJaiprakash Singh 
2545*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERCFR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTERCFR(uint64_t a)2546*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERCFR(uint64_t a)
2547*4b8b8d74SJaiprakash Singh {
2548*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2549*4b8b8d74SJaiprakash Singh 		return 0x87e2ef000050ll + 0x1000000ll * ((a) & 0x7f);
2550*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTERCFR", 1, a, 0, 0, 0, 0, 0);
2551*4b8b8d74SJaiprakash Singh }
2552*4b8b8d74SJaiprakash Singh 
2553*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTERCFR(a) ody_dsuubx_clustercfr_t
2554*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTERCFR(a) CSR_TYPE_RSL
2555*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTERCFR(a) "DSUUBX_CLUSTERCFR"
2556*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTERCFR(a) 0x0 /* PF_BAR0 */
2557*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTERCFR(a) (a)
2558*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTERCFR(a) (a), -1, -1, -1
2559*4b8b8d74SJaiprakash Singh 
2560*4b8b8d74SJaiprakash Singh /**
2561*4b8b8d74SJaiprakash Singh  * Register (RSL) dsuub#_clusterectlr
2562*4b8b8d74SJaiprakash Singh  *
2563*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Extended Control Register
2564*4b8b8d74SJaiprakash Singh  * This register should be used for dynamically changing implementation specific
2565*4b8b8d74SJaiprakash Singh  * control bits.
2566*4b8b8d74SJaiprakash Singh  */
2567*4b8b8d74SJaiprakash Singh union ody_dsuubx_clusterectlr {
2568*4b8b8d74SJaiprakash Singh 	uint64_t u;
2569*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_clusterectlr_s {
2570*4b8b8d74SJaiprakash Singh 		uint64_t reserved_0                  : 1;
2571*4b8b8d74SJaiprakash Singh 		uint64_t enpoisnpp                   : 1;
2572*4b8b8d74SJaiprakash Singh 		uint64_t disevpwr                    : 1;
2573*4b8b8d74SJaiprakash Singh 		uint64_t disevict                    : 1;
2574*4b8b8d74SJaiprakash Singh 		uint64_t enpoisn                     : 1;
2575*4b8b8d74SJaiprakash Singh 		uint64_t nol3stash                   : 2;
2576*4b8b8d74SJaiprakash Singh 		uint64_t disatom                     : 1;
2577*4b8b8d74SJaiprakash Singh 		uint64_t pfmtch                      : 3;
2578*4b8b8d74SJaiprakash Singh 		uint64_t reserved_11_14              : 4;
2579*4b8b8d74SJaiprakash Singh 		uint64_t l3wrlat                     : 2;
2580*4b8b8d74SJaiprakash Singh 		uint64_t l3rdlat                     : 1;
2581*4b8b8d74SJaiprakash Singh 		uint64_t reserved_18_41              : 24;
2582*4b8b8d74SJaiprakash Singh 		uint64_t dsfp                        : 1;
2583*4b8b8d74SJaiprakash Singh 		uint64_t efc                         : 1;
2584*4b8b8d74SJaiprakash Singh 		uint64_t dcc                         : 2;
2585*4b8b8d74SJaiprakash Singh 		uint64_t reserved_46_63              : 18;
2586*4b8b8d74SJaiprakash Singh 	} s;
2587*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_clusterectlr_s cn; */
2588*4b8b8d74SJaiprakash Singh };
2589*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_clusterectlr ody_dsuubx_clusterectlr_t;
2590*4b8b8d74SJaiprakash Singh 
2591*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERECTLR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTERECTLR(uint64_t a)2592*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERECTLR(uint64_t a)
2593*4b8b8d74SJaiprakash Singh {
2594*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2595*4b8b8d74SJaiprakash Singh 		return 0x87e2ef000060ll + 0x1000000ll * ((a) & 0x7f);
2596*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTERECTLR", 1, a, 0, 0, 0, 0, 0);
2597*4b8b8d74SJaiprakash Singh }
2598*4b8b8d74SJaiprakash Singh 
2599*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTERECTLR(a) ody_dsuubx_clusterectlr_t
2600*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTERECTLR(a) CSR_TYPE_RSL
2601*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTERECTLR(a) "DSUUBX_CLUSTERECTLR"
2602*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTERECTLR(a) 0x0 /* PF_BAR0 */
2603*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTERECTLR(a) (a)
2604*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTERECTLR(a) (a), -1, -1, -1
2605*4b8b8d74SJaiprakash Singh 
2606*4b8b8d74SJaiprakash Singh /**
2607*4b8b8d74SJaiprakash Singh  * Register (RSL) dsuub#_clusteridr
2608*4b8b8d74SJaiprakash Singh  *
2609*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Main Revision Register
2610*4b8b8d74SJaiprakash Singh  * Holds the revision and patch level of the cluster.
2611*4b8b8d74SJaiprakash Singh  */
2612*4b8b8d74SJaiprakash Singh union ody_dsuubx_clusteridr {
2613*4b8b8d74SJaiprakash Singh 	uint64_t u;
2614*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_clusteridr_s {
2615*4b8b8d74SJaiprakash Singh 		uint64_t revision                    : 4;
2616*4b8b8d74SJaiprakash Singh 		uint64_t variant                     : 4;
2617*4b8b8d74SJaiprakash Singh 		uint64_t reserved_8_63               : 56;
2618*4b8b8d74SJaiprakash Singh 	} s;
2619*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_clusteridr_s cn; */
2620*4b8b8d74SJaiprakash Singh };
2621*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_clusteridr ody_dsuubx_clusteridr_t;
2622*4b8b8d74SJaiprakash Singh 
2623*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERIDR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTERIDR(uint64_t a)2624*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERIDR(uint64_t a)
2625*4b8b8d74SJaiprakash Singh {
2626*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2627*4b8b8d74SJaiprakash Singh 		return 0x87e2ef000000ll + 0x1000000ll * ((a) & 0x7f);
2628*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTERIDR", 1, a, 0, 0, 0, 0, 0);
2629*4b8b8d74SJaiprakash Singh }
2630*4b8b8d74SJaiprakash Singh 
2631*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTERIDR(a) ody_dsuubx_clusteridr_t
2632*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTERIDR(a) CSR_TYPE_RSL
2633*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTERIDR(a) "DSUUBX_CLUSTERIDR"
2634*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTERIDR(a) 0x0 /* PF_BAR0 */
2635*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTERIDR(a) (a)
2636*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTERIDR(a) (a), -1, -1, -1
2637*4b8b8d74SJaiprakash Singh 
2638*4b8b8d74SJaiprakash Singh /**
2639*4b8b8d74SJaiprakash Singh  * Register (RSL) dsuub#_clusterl3dnth0
2640*4b8b8d74SJaiprakash Singh  *
2641*4b8b8d74SJaiprakash Singh  * DSUUB Cluster L3 Downsize Threshold0 Register
2642*4b8b8d74SJaiprakash Singh  * This register is intended for use in algorithms for determining when to power up or
2643*4b8b8d74SJaiprakash Singh  * down cache portions.
2644*4b8b8d74SJaiprakash Singh  */
2645*4b8b8d74SJaiprakash Singh union ody_dsuubx_clusterl3dnth0 {
2646*4b8b8d74SJaiprakash Singh 	uint64_t u;
2647*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_clusterl3dnth0_s {
2648*4b8b8d74SJaiprakash Singh 		uint64_t dnth0                       : 32;
2649*4b8b8d74SJaiprakash Singh 		uint64_t reserved_32_63              : 32;
2650*4b8b8d74SJaiprakash Singh 	} s;
2651*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_clusterl3dnth0_s cn; */
2652*4b8b8d74SJaiprakash Singh };
2653*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_clusterl3dnth0 ody_dsuubx_clusterl3dnth0_t;
2654*4b8b8d74SJaiprakash Singh 
2655*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERL3DNTH0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTERL3DNTH0(uint64_t a)2656*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERL3DNTH0(uint64_t a)
2657*4b8b8d74SJaiprakash Singh {
2658*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2659*4b8b8d74SJaiprakash Singh 		return 0x87e2ef000028ll + 0x1000000ll * ((a) & 0x7f);
2660*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTERL3DNTH0", 1, a, 0, 0, 0, 0, 0);
2661*4b8b8d74SJaiprakash Singh }
2662*4b8b8d74SJaiprakash Singh 
2663*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTERL3DNTH0(a) ody_dsuubx_clusterl3dnth0_t
2664*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTERL3DNTH0(a) CSR_TYPE_RSL
2665*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTERL3DNTH0(a) "DSUUBX_CLUSTERL3DNTH0"
2666*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTERL3DNTH0(a) 0x0 /* PF_BAR0 */
2667*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTERL3DNTH0(a) (a)
2668*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTERL3DNTH0(a) (a), -1, -1, -1
2669*4b8b8d74SJaiprakash Singh 
2670*4b8b8d74SJaiprakash Singh /**
2671*4b8b8d74SJaiprakash Singh  * Register (RSL) dsuub#_clusterl3dnth1
2672*4b8b8d74SJaiprakash Singh  *
2673*4b8b8d74SJaiprakash Singh  * DSUUB Cluster L3 Downsize Threshold1 Register
2674*4b8b8d74SJaiprakash Singh  * This register is intended for use in algorithms for determining when to power up or
2675*4b8b8d74SJaiprakash Singh  * down cache portions.
2676*4b8b8d74SJaiprakash Singh  */
2677*4b8b8d74SJaiprakash Singh union ody_dsuubx_clusterl3dnth1 {
2678*4b8b8d74SJaiprakash Singh 	uint64_t u;
2679*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_clusterl3dnth1_s {
2680*4b8b8d74SJaiprakash Singh 		uint64_t dnth0                       : 32;
2681*4b8b8d74SJaiprakash Singh 		uint64_t reserved_32_63              : 32;
2682*4b8b8d74SJaiprakash Singh 	} s;
2683*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_clusterl3dnth1_s cn; */
2684*4b8b8d74SJaiprakash Singh };
2685*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_clusterl3dnth1 ody_dsuubx_clusterl3dnth1_t;
2686*4b8b8d74SJaiprakash Singh 
2687*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERL3DNTH1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTERL3DNTH1(uint64_t a)2688*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERL3DNTH1(uint64_t a)
2689*4b8b8d74SJaiprakash Singh {
2690*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2691*4b8b8d74SJaiprakash Singh 		return 0x87e2ef000030ll + 0x1000000ll * ((a) & 0x7f);
2692*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTERL3DNTH1", 1, a, 0, 0, 0, 0, 0);
2693*4b8b8d74SJaiprakash Singh }
2694*4b8b8d74SJaiprakash Singh 
2695*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTERL3DNTH1(a) ody_dsuubx_clusterl3dnth1_t
2696*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTERL3DNTH1(a) CSR_TYPE_RSL
2697*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTERL3DNTH1(a) "DSUUBX_CLUSTERL3DNTH1"
2698*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTERL3DNTH1(a) 0x0 /* PF_BAR0 */
2699*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTERL3DNTH1(a) (a)
2700*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTERL3DNTH1(a) (a), -1, -1, -1
2701*4b8b8d74SJaiprakash Singh 
2702*4b8b8d74SJaiprakash Singh /**
2703*4b8b8d74SJaiprakash Singh  * Register (RSL) dsuub#_clusterl3hit
2704*4b8b8d74SJaiprakash Singh  *
2705*4b8b8d74SJaiprakash Singh  * DSUUB Cluster L3 Hit Counter Register
2706*4b8b8d74SJaiprakash Singh  * This register is intended for use in algorithms for determining when to power up or
2707*4b8b8d74SJaiprakash Singh  * down cache portions.
2708*4b8b8d74SJaiprakash Singh  */
2709*4b8b8d74SJaiprakash Singh union ody_dsuubx_clusterl3hit {
2710*4b8b8d74SJaiprakash Singh 	uint64_t u;
2711*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_clusterl3hit_s {
2712*4b8b8d74SJaiprakash Singh 		uint64_t hitcnt                      : 32;
2713*4b8b8d74SJaiprakash Singh 		uint64_t reserved_32_63              : 32;
2714*4b8b8d74SJaiprakash Singh 	} s;
2715*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_clusterl3hit_s cn; */
2716*4b8b8d74SJaiprakash Singh };
2717*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_clusterl3hit ody_dsuubx_clusterl3hit_t;
2718*4b8b8d74SJaiprakash Singh 
2719*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERL3HIT(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTERL3HIT(uint64_t a)2720*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERL3HIT(uint64_t a)
2721*4b8b8d74SJaiprakash Singh {
2722*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2723*4b8b8d74SJaiprakash Singh 		return 0x87e2ef000018ll + 0x1000000ll * ((a) & 0x7f);
2724*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTERL3HIT", 1, a, 0, 0, 0, 0, 0);
2725*4b8b8d74SJaiprakash Singh }
2726*4b8b8d74SJaiprakash Singh 
2727*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTERL3HIT(a) ody_dsuubx_clusterl3hit_t
2728*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTERL3HIT(a) CSR_TYPE_RSL
2729*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTERL3HIT(a) "DSUUBX_CLUSTERL3HIT"
2730*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTERL3HIT(a) 0x0 /* PF_BAR0 */
2731*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTERL3HIT(a) (a)
2732*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTERL3HIT(a) (a), -1, -1, -1
2733*4b8b8d74SJaiprakash Singh 
2734*4b8b8d74SJaiprakash Singh /**
2735*4b8b8d74SJaiprakash Singh  * Register (RSL) dsuub#_clusterl3miss
2736*4b8b8d74SJaiprakash Singh  *
2737*4b8b8d74SJaiprakash Singh  * DSUUB Cluster L3 Miss Counter Register
2738*4b8b8d74SJaiprakash Singh  * This register is intended for use in algorithms for determining when to power up or
2739*4b8b8d74SJaiprakash Singh  * down cache portions.
2740*4b8b8d74SJaiprakash Singh  */
2741*4b8b8d74SJaiprakash Singh union ody_dsuubx_clusterl3miss {
2742*4b8b8d74SJaiprakash Singh 	uint64_t u;
2743*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_clusterl3miss_s {
2744*4b8b8d74SJaiprakash Singh 		uint64_t misscnt                     : 32;
2745*4b8b8d74SJaiprakash Singh 		uint64_t reserved_32_63              : 32;
2746*4b8b8d74SJaiprakash Singh 	} s;
2747*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_clusterl3miss_s cn; */
2748*4b8b8d74SJaiprakash Singh };
2749*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_clusterl3miss ody_dsuubx_clusterl3miss_t;
2750*4b8b8d74SJaiprakash Singh 
2751*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERL3MISS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTERL3MISS(uint64_t a)2752*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERL3MISS(uint64_t a)
2753*4b8b8d74SJaiprakash Singh {
2754*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2755*4b8b8d74SJaiprakash Singh 		return 0x87e2ef000020ll + 0x1000000ll * ((a) & 0x7f);
2756*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTERL3MISS", 1, a, 0, 0, 0, 0, 0);
2757*4b8b8d74SJaiprakash Singh }
2758*4b8b8d74SJaiprakash Singh 
2759*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTERL3MISS(a) ody_dsuubx_clusterl3miss_t
2760*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTERL3MISS(a) CSR_TYPE_RSL
2761*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTERL3MISS(a) "DSUUBX_CLUSTERL3MISS"
2762*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTERL3MISS(a) 0x0 /* PF_BAR0 */
2763*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTERL3MISS(a) (a)
2764*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTERL3MISS(a) (a), -1, -1, -1
2765*4b8b8d74SJaiprakash Singh 
2766*4b8b8d74SJaiprakash Singh /**
2767*4b8b8d74SJaiprakash Singh  * Register (RSL) dsuub#_clusterl3upth0
2768*4b8b8d74SJaiprakash Singh  *
2769*4b8b8d74SJaiprakash Singh  * DSUUB Cluster L3 Upsize Threshold0 Register
2770*4b8b8d74SJaiprakash Singh  * This register is intended for use in algorithms for determining when to power up or
2771*4b8b8d74SJaiprakash Singh  * down cache portions.
2772*4b8b8d74SJaiprakash Singh  */
2773*4b8b8d74SJaiprakash Singh union ody_dsuubx_clusterl3upth0 {
2774*4b8b8d74SJaiprakash Singh 	uint64_t u;
2775*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_clusterl3upth0_s {
2776*4b8b8d74SJaiprakash Singh 		uint64_t upth0                       : 32;
2777*4b8b8d74SJaiprakash Singh 		uint64_t reserved_32_63              : 32;
2778*4b8b8d74SJaiprakash Singh 	} s;
2779*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_clusterl3upth0_s cn; */
2780*4b8b8d74SJaiprakash Singh };
2781*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_clusterl3upth0 ody_dsuubx_clusterl3upth0_t;
2782*4b8b8d74SJaiprakash Singh 
2783*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERL3UPTH0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTERL3UPTH0(uint64_t a)2784*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERL3UPTH0(uint64_t a)
2785*4b8b8d74SJaiprakash Singh {
2786*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2787*4b8b8d74SJaiprakash Singh 		return 0x87e2ef000038ll + 0x1000000ll * ((a) & 0x7f);
2788*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTERL3UPTH0", 1, a, 0, 0, 0, 0, 0);
2789*4b8b8d74SJaiprakash Singh }
2790*4b8b8d74SJaiprakash Singh 
2791*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTERL3UPTH0(a) ody_dsuubx_clusterl3upth0_t
2792*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTERL3UPTH0(a) CSR_TYPE_RSL
2793*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTERL3UPTH0(a) "DSUUBX_CLUSTERL3UPTH0"
2794*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTERL3UPTH0(a) 0x0 /* PF_BAR0 */
2795*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTERL3UPTH0(a) (a)
2796*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTERL3UPTH0(a) (a), -1, -1, -1
2797*4b8b8d74SJaiprakash Singh 
2798*4b8b8d74SJaiprakash Singh /**
2799*4b8b8d74SJaiprakash Singh  * Register (RSL) dsuub#_clusterl3upth1
2800*4b8b8d74SJaiprakash Singh  *
2801*4b8b8d74SJaiprakash Singh  * DSUUB Cluster L3 Upsize Threshold1 Register
2802*4b8b8d74SJaiprakash Singh  * This register is intended for use in algorithms for determining when to power up or
2803*4b8b8d74SJaiprakash Singh  * down cache portions.
2804*4b8b8d74SJaiprakash Singh  */
2805*4b8b8d74SJaiprakash Singh union ody_dsuubx_clusterl3upth1 {
2806*4b8b8d74SJaiprakash Singh 	uint64_t u;
2807*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_clusterl3upth1_s {
2808*4b8b8d74SJaiprakash Singh 		uint64_t upth1                       : 32;
2809*4b8b8d74SJaiprakash Singh 		uint64_t reserved_32_63              : 32;
2810*4b8b8d74SJaiprakash Singh 	} s;
2811*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_clusterl3upth1_s cn; */
2812*4b8b8d74SJaiprakash Singh };
2813*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_clusterl3upth1 ody_dsuubx_clusterl3upth1_t;
2814*4b8b8d74SJaiprakash Singh 
2815*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERL3UPTH1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTERL3UPTH1(uint64_t a)2816*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERL3UPTH1(uint64_t a)
2817*4b8b8d74SJaiprakash Singh {
2818*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2819*4b8b8d74SJaiprakash Singh 		return 0x87e2ef000040ll + 0x1000000ll * ((a) & 0x7f);
2820*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTERL3UPTH1", 1, a, 0, 0, 0, 0, 0);
2821*4b8b8d74SJaiprakash Singh }
2822*4b8b8d74SJaiprakash Singh 
2823*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTERL3UPTH1(a) ody_dsuubx_clusterl3upth1_t
2824*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTERL3UPTH1(a) CSR_TYPE_RSL
2825*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTERL3UPTH1(a) "DSUUBX_CLUSTERL3UPTH1"
2826*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTERL3UPTH1(a) 0x0 /* PF_BAR0 */
2827*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTERL3UPTH1(a) (a)
2828*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTERL3UPTH1(a) (a), -1, -1, -1
2829*4b8b8d74SJaiprakash Singh 
2830*4b8b8d74SJaiprakash Singh /**
2831*4b8b8d74SJaiprakash Singh  * Register (RSL) dsuub#_clusterpwrctlr
2832*4b8b8d74SJaiprakash Singh  *
2833*4b8b8d74SJaiprakash Singh  * DSUUB Cluster Power Control Register
2834*4b8b8d74SJaiprakash Singh  * This register controls power features of the cluster.
2835*4b8b8d74SJaiprakash Singh  */
2836*4b8b8d74SJaiprakash Singh union ody_dsuubx_clusterpwrctlr {
2837*4b8b8d74SJaiprakash Singh 	uint64_t u;
2838*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_clusterpwrctlr_s {
2839*4b8b8d74SJaiprakash Singh 		uint64_t retctl                      : 3;
2840*4b8b8d74SJaiprakash Singh 		uint64_t reserved_3                  : 1;
2841*4b8b8d74SJaiprakash Singh 		uint64_t prtnrq                      : 2;
2842*4b8b8d74SJaiprakash Singh 		uint64_t slcrq                       : 1;
2843*4b8b8d74SJaiprakash Singh 		uint64_t reserved_7_11               : 5;
2844*4b8b8d74SJaiprakash Singh 		uint64_t autoprtn                    : 3;
2845*4b8b8d74SJaiprakash Singh 		uint64_t reserved_15_17              : 3;
2846*4b8b8d74SJaiprakash Singh 		uint64_t lslp                        : 1;
2847*4b8b8d74SJaiprakash Singh 		uint64_t reserved_19_63              : 45;
2848*4b8b8d74SJaiprakash Singh 	} s;
2849*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_clusterpwrctlr_s cn; */
2850*4b8b8d74SJaiprakash Singh };
2851*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_clusterpwrctlr ody_dsuubx_clusterpwrctlr_t;
2852*4b8b8d74SJaiprakash Singh 
2853*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERPWRCTLR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTERPWRCTLR(uint64_t a)2854*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERPWRCTLR(uint64_t a)
2855*4b8b8d74SJaiprakash Singh {
2856*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2857*4b8b8d74SJaiprakash Singh 		return 0x87e2ef000010ll + 0x1000000ll * ((a) & 0x7f);
2858*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTERPWRCTLR", 1, a, 0, 0, 0, 0, 0);
2859*4b8b8d74SJaiprakash Singh }
2860*4b8b8d74SJaiprakash Singh 
2861*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTERPWRCTLR(a) ody_dsuubx_clusterpwrctlr_t
2862*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTERPWRCTLR(a) CSR_TYPE_RSL
2863*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTERPWRCTLR(a) "DSUUBX_CLUSTERPWRCTLR"
2864*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTERPWRCTLR(a) 0x0 /* PF_BAR0 */
2865*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTERPWRCTLR(a) (a)
2866*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTERPWRCTLR(a) (a), -1, -1, -1
2867*4b8b8d74SJaiprakash Singh 
2868*4b8b8d74SJaiprakash Singh /**
2869*4b8b8d74SJaiprakash Singh  * Register (RSL) dsuub#_clusterrevidr
2870*4b8b8d74SJaiprakash Singh  *
2871*4b8b8d74SJaiprakash Singh  * DSUUB Cluster ECO ID Register
2872*4b8b8d74SJaiprakash Singh  * Enables ECO patches to be applied to the cluster level to be identified by software.
2873*4b8b8d74SJaiprakash Singh  */
2874*4b8b8d74SJaiprakash Singh union ody_dsuubx_clusterrevidr {
2875*4b8b8d74SJaiprakash Singh 	uint64_t u;
2876*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_clusterrevidr_s {
2877*4b8b8d74SJaiprakash Singh 		uint64_t ecoid                       : 64;
2878*4b8b8d74SJaiprakash Singh 	} s;
2879*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_clusterrevidr_s cn; */
2880*4b8b8d74SJaiprakash Singh };
2881*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_clusterrevidr ody_dsuubx_clusterrevidr_t;
2882*4b8b8d74SJaiprakash Singh 
2883*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERREVIDR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CLUSTERREVIDR(uint64_t a)2884*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CLUSTERREVIDR(uint64_t a)
2885*4b8b8d74SJaiprakash Singh {
2886*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2887*4b8b8d74SJaiprakash Singh 		return 0x87e2ef000008ll + 0x1000000ll * ((a) & 0x7f);
2888*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CLUSTERREVIDR", 1, a, 0, 0, 0, 0, 0);
2889*4b8b8d74SJaiprakash Singh }
2890*4b8b8d74SJaiprakash Singh 
2891*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CLUSTERREVIDR(a) ody_dsuubx_clusterrevidr_t
2892*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CLUSTERREVIDR(a) CSR_TYPE_RSL
2893*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CLUSTERREVIDR(a) "DSUUBX_CLUSTERREVIDR"
2894*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CLUSTERREVIDR(a) 0x0 /* PF_BAR0 */
2895*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CLUSTERREVIDR(a) (a)
2896*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CLUSTERREVIDR(a) (a), -1, -1, -1
2897*4b8b8d74SJaiprakash Singh 
2898*4b8b8d74SJaiprakash Singh /**
2899*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_aidr
2900*4b8b8d74SJaiprakash Singh  *
2901*4b8b8d74SJaiprakash Singh  * DSUUB Core Architecture Identification Register
2902*4b8b8d74SJaiprakash Singh  * This register identifies the PPU architecture revision.
2903*4b8b8d74SJaiprakash Singh  */
2904*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_aidr {
2905*4b8b8d74SJaiprakash Singh 	uint32_t u;
2906*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_aidr_s {
2907*4b8b8d74SJaiprakash Singh 		uint32_t arch_rev_minor              : 4;
2908*4b8b8d74SJaiprakash Singh 		uint32_t arch_rev_major              : 4;
2909*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
2910*4b8b8d74SJaiprakash Singh 	} s;
2911*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_aidr_s cn; */
2912*4b8b8d74SJaiprakash Singh };
2913*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_aidr ody_dsuubx_core_ppu_aidr_t;
2914*4b8b8d74SJaiprakash Singh 
2915*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_AIDR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_AIDR(uint64_t a)2916*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_AIDR(uint64_t a)
2917*4b8b8d74SJaiprakash Singh {
2918*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2919*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080fccll + 0x1000000ll * ((a) & 0x7f);
2920*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_AIDR", 1, a, 0, 0, 0, 0, 0);
2921*4b8b8d74SJaiprakash Singh }
2922*4b8b8d74SJaiprakash Singh 
2923*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_AIDR(a) ody_dsuubx_core_ppu_aidr_t
2924*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_AIDR(a) CSR_TYPE_RSL32b
2925*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_AIDR(a) "DSUUBX_CORE_PPU_AIDR"
2926*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_AIDR(a) 0x0 /* PF_BAR0 */
2927*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_AIDR(a) (a)
2928*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_AIDR(a) (a), -1, -1, -1
2929*4b8b8d74SJaiprakash Singh 
2930*4b8b8d74SJaiprakash Singh /**
2931*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_aimr
2932*4b8b8d74SJaiprakash Singh  *
2933*4b8b8d74SJaiprakash Singh  * DSUUB Core Additional Interrupt Mask Register
2934*4b8b8d74SJaiprakash Singh  * This register controls the events that assert the interrupt output. Additional event
2935*4b8b8d74SJaiprakash Singh  * masking controls
2936*4b8b8d74SJaiprakash Singh  * are in the Interrupt Mask Register (PPU_IMR), Input Edge Sensitivity Register (PPU_IESR), and the
2937*4b8b8d74SJaiprakash Singh  * Operating Mode Active Edge Sensitivity Register (PPU_OPSR).
2938*4b8b8d74SJaiprakash Singh  *
2939*4b8b8d74SJaiprakash Singh  * When an interrupt event is masked an occurrence of the event does not set the corresponding bit
2940*4b8b8d74SJaiprakash Singh  * in the interrupt status register.
2941*4b8b8d74SJaiprakash Singh  */
2942*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_aimr {
2943*4b8b8d74SJaiprakash Singh 	uint32_t u;
2944*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_aimr_s {
2945*4b8b8d74SJaiprakash Singh 		uint32_t unspt_policy_irq_mask       : 1;
2946*4b8b8d74SJaiprakash Singh 		uint32_t dyn_accept_irq_mask         : 1;
2947*4b8b8d74SJaiprakash Singh 		uint32_t dyn_deny_irq_mask           : 1;
2948*4b8b8d74SJaiprakash Singh 		uint32_t reserved_3_31               : 29;
2949*4b8b8d74SJaiprakash Singh 	} s;
2950*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_aimr_s cn; */
2951*4b8b8d74SJaiprakash Singh };
2952*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_aimr ody_dsuubx_core_ppu_aimr_t;
2953*4b8b8d74SJaiprakash Singh 
2954*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_AIMR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_AIMR(uint64_t a)2955*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_AIMR(uint64_t a)
2956*4b8b8d74SJaiprakash Singh {
2957*4b8b8d74SJaiprakash Singh 	if (a <= 89)
2958*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080034ll + 0x1000000ll * ((a) & 0x7f);
2959*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_AIMR", 1, a, 0, 0, 0, 0, 0);
2960*4b8b8d74SJaiprakash Singh }
2961*4b8b8d74SJaiprakash Singh 
2962*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_AIMR(a) ody_dsuubx_core_ppu_aimr_t
2963*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_AIMR(a) CSR_TYPE_RSL32b
2964*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_AIMR(a) "DSUUBX_CORE_PPU_AIMR"
2965*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_AIMR(a) 0x0 /* PF_BAR0 */
2966*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_AIMR(a) (a)
2967*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_AIMR(a) (a), -1, -1, -1
2968*4b8b8d74SJaiprakash Singh 
2969*4b8b8d74SJaiprakash Singh /**
2970*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_aisr
2971*4b8b8d74SJaiprakash Singh  *
2972*4b8b8d74SJaiprakash Singh  * DSUUB Core Additional Interrupt Status Register
2973*4b8b8d74SJaiprakash Singh  * This register contains information about events causing the assertion of the
2974*4b8b8d74SJaiprakash Singh  * interrupt output. It is
2975*4b8b8d74SJaiprakash Singh  * also used to clear interrupt events.
2976*4b8b8d74SJaiprakash Singh  *
2977*4b8b8d74SJaiprakash Singh  * A bit set to 1 indicates the event asserted the interrupt output. Multiple events can be active
2978*4b8b8d74SJaiprakash Singh  * at the same time. When an interrupt event is masked by the corresponding bit in PPU_AIMR, an
2979*4b8b8d74SJaiprakash Singh  * occurrence of that event does not set the status bit.
2980*4b8b8d74SJaiprakash Singh  * A write of 1 to a set event bit clears that event. A write of 0 has no effect. The interrupt
2981*4b8b8d74SJaiprakash Singh  * output stays HIGH until all status bits in the Interrupt Status Register (PPU_ISR)
2982*4b8b8d74SJaiprakash Singh  * and the Additional
2983*4b8b8d74SJaiprakash Singh  * Interrupt Status Register (PPU_AISR) are set to 0b0.
2984*4b8b8d74SJaiprakash Singh  *
2985*4b8b8d74SJaiprakash Singh  * When an interrupt status is set to 1 in this register it sets the OTHER_IRQ bit in the Interrupt
2986*4b8b8d74SJaiprakash Singh  * Status Register (PPU_ISR). Status bits in this register (PPU_AISR) are only cleared
2987*4b8b8d74SJaiprakash Singh  * by writing to this
2988*4b8b8d74SJaiprakash Singh  * register.
2989*4b8b8d74SJaiprakash Singh  */
2990*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_aisr {
2991*4b8b8d74SJaiprakash Singh 	uint32_t u;
2992*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_aisr_s {
2993*4b8b8d74SJaiprakash Singh 		uint32_t unspt_policy_irq            : 1;
2994*4b8b8d74SJaiprakash Singh 		uint32_t dyn_accept_irq              : 1;
2995*4b8b8d74SJaiprakash Singh 		uint32_t dyn_deny_irq                : 1;
2996*4b8b8d74SJaiprakash Singh 		uint32_t reserved_3_31               : 29;
2997*4b8b8d74SJaiprakash Singh 	} s;
2998*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_aisr_s cn; */
2999*4b8b8d74SJaiprakash Singh };
3000*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_aisr ody_dsuubx_core_ppu_aisr_t;
3001*4b8b8d74SJaiprakash Singh 
3002*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_AISR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_AISR(uint64_t a)3003*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_AISR(uint64_t a)
3004*4b8b8d74SJaiprakash Singh {
3005*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3006*4b8b8d74SJaiprakash Singh 		return 0x87e2ef08003cll + 0x1000000ll * ((a) & 0x7f);
3007*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_AISR", 1, a, 0, 0, 0, 0, 0);
3008*4b8b8d74SJaiprakash Singh }
3009*4b8b8d74SJaiprakash Singh 
3010*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_AISR(a) ody_dsuubx_core_ppu_aisr_t
3011*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_AISR(a) CSR_TYPE_RSL32b
3012*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_AISR(a) "DSUUBX_CORE_PPU_AISR"
3013*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_AISR(a) 0x0 /* PF_BAR0 */
3014*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_AISR(a) (a)
3015*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_AISR(a) (a), -1, -1, -1
3016*4b8b8d74SJaiprakash Singh 
3017*4b8b8d74SJaiprakash Singh /**
3018*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_cidr0
3019*4b8b8d74SJaiprakash Singh  *
3020*4b8b8d74SJaiprakash Singh  * DSUUB Core PPU Component Identification Register 0
3021*4b8b8d74SJaiprakash Singh  * Provides CoreSight discovery information.
3022*4b8b8d74SJaiprakash Singh  */
3023*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_cidr0 {
3024*4b8b8d74SJaiprakash Singh 	uint32_t u;
3025*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_cidr0_s {
3026*4b8b8d74SJaiprakash Singh 		uint32_t prmbl_0                     : 8;
3027*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
3028*4b8b8d74SJaiprakash Singh 	} s;
3029*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_cidr0_s cn; */
3030*4b8b8d74SJaiprakash Singh };
3031*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_cidr0 ody_dsuubx_core_ppu_cidr0_t;
3032*4b8b8d74SJaiprakash Singh 
3033*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_CIDR0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_CIDR0(uint64_t a)3034*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_CIDR0(uint64_t a)
3035*4b8b8d74SJaiprakash Singh {
3036*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3037*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080ff0ll + 0x1000000ll * ((a) & 0x7f);
3038*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_CIDR0", 1, a, 0, 0, 0, 0, 0);
3039*4b8b8d74SJaiprakash Singh }
3040*4b8b8d74SJaiprakash Singh 
3041*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_CIDR0(a) ody_dsuubx_core_ppu_cidr0_t
3042*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_CIDR0(a) CSR_TYPE_RSL32b
3043*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_CIDR0(a) "DSUUBX_CORE_PPU_CIDR0"
3044*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_CIDR0(a) 0x0 /* PF_BAR0 */
3045*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_CIDR0(a) (a)
3046*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_CIDR0(a) (a), -1, -1, -1
3047*4b8b8d74SJaiprakash Singh 
3048*4b8b8d74SJaiprakash Singh /**
3049*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_cidr1
3050*4b8b8d74SJaiprakash Singh  *
3051*4b8b8d74SJaiprakash Singh  * DSUUB Core PPU Component Identification Register 1
3052*4b8b8d74SJaiprakash Singh  * Provides CoreSight discovery information.
3053*4b8b8d74SJaiprakash Singh  */
3054*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_cidr1 {
3055*4b8b8d74SJaiprakash Singh 	uint32_t u;
3056*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_cidr1_s {
3057*4b8b8d74SJaiprakash Singh 		uint32_t prmbl_1                     : 4;
3058*4b8b8d74SJaiprakash Singh 		uint32_t clas                        : 4;
3059*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
3060*4b8b8d74SJaiprakash Singh 	} s;
3061*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_cidr1_s cn; */
3062*4b8b8d74SJaiprakash Singh };
3063*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_cidr1 ody_dsuubx_core_ppu_cidr1_t;
3064*4b8b8d74SJaiprakash Singh 
3065*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_CIDR1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_CIDR1(uint64_t a)3066*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_CIDR1(uint64_t a)
3067*4b8b8d74SJaiprakash Singh {
3068*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3069*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080ff4ll + 0x1000000ll * ((a) & 0x7f);
3070*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_CIDR1", 1, a, 0, 0, 0, 0, 0);
3071*4b8b8d74SJaiprakash Singh }
3072*4b8b8d74SJaiprakash Singh 
3073*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_CIDR1(a) ody_dsuubx_core_ppu_cidr1_t
3074*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_CIDR1(a) CSR_TYPE_RSL32b
3075*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_CIDR1(a) "DSUUBX_CORE_PPU_CIDR1"
3076*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_CIDR1(a) 0x0 /* PF_BAR0 */
3077*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_CIDR1(a) (a)
3078*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_CIDR1(a) (a), -1, -1, -1
3079*4b8b8d74SJaiprakash Singh 
3080*4b8b8d74SJaiprakash Singh /**
3081*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_cidr2
3082*4b8b8d74SJaiprakash Singh  *
3083*4b8b8d74SJaiprakash Singh  * DSUUB Core PPU Component Identification Register 2
3084*4b8b8d74SJaiprakash Singh  * Provides CoreSight discovery information.
3085*4b8b8d74SJaiprakash Singh  */
3086*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_cidr2 {
3087*4b8b8d74SJaiprakash Singh 	uint32_t u;
3088*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_cidr2_s {
3089*4b8b8d74SJaiprakash Singh 		uint32_t prmbl_2                     : 8;
3090*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
3091*4b8b8d74SJaiprakash Singh 	} s;
3092*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_cidr2_s cn; */
3093*4b8b8d74SJaiprakash Singh };
3094*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_cidr2 ody_dsuubx_core_ppu_cidr2_t;
3095*4b8b8d74SJaiprakash Singh 
3096*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_CIDR2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_CIDR2(uint64_t a)3097*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_CIDR2(uint64_t a)
3098*4b8b8d74SJaiprakash Singh {
3099*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3100*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080ff8ll + 0x1000000ll * ((a) & 0x7f);
3101*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_CIDR2", 1, a, 0, 0, 0, 0, 0);
3102*4b8b8d74SJaiprakash Singh }
3103*4b8b8d74SJaiprakash Singh 
3104*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_CIDR2(a) ody_dsuubx_core_ppu_cidr2_t
3105*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_CIDR2(a) CSR_TYPE_RSL32b
3106*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_CIDR2(a) "DSUUBX_CORE_PPU_CIDR2"
3107*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_CIDR2(a) 0x0 /* PF_BAR0 */
3108*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_CIDR2(a) (a)
3109*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_CIDR2(a) (a), -1, -1, -1
3110*4b8b8d74SJaiprakash Singh 
3111*4b8b8d74SJaiprakash Singh /**
3112*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_dcdr0
3113*4b8b8d74SJaiprakash Singh  *
3114*4b8b8d74SJaiprakash Singh  * DSUUB Core Device Control Delay Configuration Register 0
3115*4b8b8d74SJaiprakash Singh  * This register is used to program device control delay parameters.
3116*4b8b8d74SJaiprakash Singh  */
3117*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_dcdr0 {
3118*4b8b8d74SJaiprakash Singh 	uint32_t u;
3119*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_dcdr0_s {
3120*4b8b8d74SJaiprakash Singh 		uint32_t clken_rst_dly               : 8;
3121*4b8b8d74SJaiprakash Singh 		uint32_t iso_clken_dly               : 8;
3122*4b8b8d74SJaiprakash Singh 		uint32_t rst_hwstat_dly              : 8;
3123*4b8b8d74SJaiprakash Singh 		uint32_t reserved_24_31              : 8;
3124*4b8b8d74SJaiprakash Singh 	} s;
3125*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_dcdr0_s cn; */
3126*4b8b8d74SJaiprakash Singh };
3127*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_dcdr0 ody_dsuubx_core_ppu_dcdr0_t;
3128*4b8b8d74SJaiprakash Singh 
3129*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_DCDR0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_DCDR0(uint64_t a)3130*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_DCDR0(uint64_t a)
3131*4b8b8d74SJaiprakash Singh {
3132*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3133*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080170ll + 0x1000000ll * ((a) & 0x7f);
3134*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_DCDR0", 1, a, 0, 0, 0, 0, 0);
3135*4b8b8d74SJaiprakash Singh }
3136*4b8b8d74SJaiprakash Singh 
3137*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_DCDR0(a) ody_dsuubx_core_ppu_dcdr0_t
3138*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_DCDR0(a) CSR_TYPE_RSL32b
3139*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_DCDR0(a) "DSUUBX_CORE_PPU_DCDR0"
3140*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_DCDR0(a) 0x0 /* PF_BAR0 */
3141*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_DCDR0(a) (a)
3142*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_DCDR0(a) (a), -1, -1, -1
3143*4b8b8d74SJaiprakash Singh 
3144*4b8b8d74SJaiprakash Singh /**
3145*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_dcdr1
3146*4b8b8d74SJaiprakash Singh  *
3147*4b8b8d74SJaiprakash Singh  * DSUUB Core Device Control Delay Configuration Register 1
3148*4b8b8d74SJaiprakash Singh  * This register is used to program device control delay parameters.
3149*4b8b8d74SJaiprakash Singh  */
3150*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_dcdr1 {
3151*4b8b8d74SJaiprakash Singh 	uint32_t u;
3152*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_dcdr1_s {
3153*4b8b8d74SJaiprakash Singh 		uint32_t iso_rst_dly                 : 8;
3154*4b8b8d74SJaiprakash Singh 		uint32_t clken_iso_dly               : 8;
3155*4b8b8d74SJaiprakash Singh 		uint32_t reserved_16_31              : 16;
3156*4b8b8d74SJaiprakash Singh 	} s;
3157*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_dcdr1_s cn; */
3158*4b8b8d74SJaiprakash Singh };
3159*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_dcdr1 ody_dsuubx_core_ppu_dcdr1_t;
3160*4b8b8d74SJaiprakash Singh 
3161*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_DCDR1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_DCDR1(uint64_t a)3162*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_DCDR1(uint64_t a)
3163*4b8b8d74SJaiprakash Singh {
3164*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3165*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080174ll + 0x1000000ll * ((a) & 0x7f);
3166*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_DCDR1", 1, a, 0, 0, 0, 0, 0);
3167*4b8b8d74SJaiprakash Singh }
3168*4b8b8d74SJaiprakash Singh 
3169*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_DCDR1(a) ody_dsuubx_core_ppu_dcdr1_t
3170*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_DCDR1(a) CSR_TYPE_RSL32b
3171*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_DCDR1(a) "DSUUBX_CORE_PPU_DCDR1"
3172*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_DCDR1(a) 0x0 /* PF_BAR0 */
3173*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_DCDR1(a) (a)
3174*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_DCDR1(a) (a), -1, -1, -1
3175*4b8b8d74SJaiprakash Singh 
3176*4b8b8d74SJaiprakash Singh /**
3177*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_disr
3178*4b8b8d74SJaiprakash Singh  *
3179*4b8b8d74SJaiprakash Singh  * DSUUB Core Device Interface Input Current Status Register
3180*4b8b8d74SJaiprakash Singh  * This read-only register contains status reflecting the values of the device interface inputs.
3181*4b8b8d74SJaiprakash Singh  */
3182*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_disr {
3183*4b8b8d74SJaiprakash Singh 	uint32_t u;
3184*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_disr_s {
3185*4b8b8d74SJaiprakash Singh 		uint32_t pwr_devactive_status        : 11;
3186*4b8b8d74SJaiprakash Singh 		uint32_t reserved_11_31              : 21;
3187*4b8b8d74SJaiprakash Singh 	} s;
3188*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_disr_s cn; */
3189*4b8b8d74SJaiprakash Singh };
3190*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_disr ody_dsuubx_core_ppu_disr_t;
3191*4b8b8d74SJaiprakash Singh 
3192*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_DISR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_DISR(uint64_t a)3193*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_DISR(uint64_t a)
3194*4b8b8d74SJaiprakash Singh {
3195*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3196*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080010ll + 0x1000000ll * ((a) & 0x7f);
3197*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_DISR", 1, a, 0, 0, 0, 0, 0);
3198*4b8b8d74SJaiprakash Singh }
3199*4b8b8d74SJaiprakash Singh 
3200*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_DISR(a) ody_dsuubx_core_ppu_disr_t
3201*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_DISR(a) CSR_TYPE_RSL32b
3202*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_DISR(a) "DSUUBX_CORE_PPU_DISR"
3203*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_DISR(a) 0x0 /* PF_BAR0 */
3204*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_DISR(a) (a)
3205*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_DISR(a) (a), -1, -1, -1
3206*4b8b8d74SJaiprakash Singh 
3207*4b8b8d74SJaiprakash Singh /**
3208*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_fulrr
3209*4b8b8d74SJaiprakash Singh  *
3210*4b8b8d74SJaiprakash Singh  * DSUUB Core Full Retention RAM Configuration Register
3211*4b8b8d74SJaiprakash Singh  * This register controls bits [15:8] of the PCSMPSTATE output when in FULL_RET mode. These
3212*4b8b8d74SJaiprakash Singh  * outputs are used by the PCSM to configure the logic regions and RAMs that are retained.
3213*4b8b8d74SJaiprakash Singh  */
3214*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_fulrr {
3215*4b8b8d74SJaiprakash Singh 	uint32_t u;
3216*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_fulrr_s {
3217*4b8b8d74SJaiprakash Singh 		uint32_t full_ret_ram_cfg            : 8;
3218*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
3219*4b8b8d74SJaiprakash Singh 	} s;
3220*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_fulrr_s cn; */
3221*4b8b8d74SJaiprakash Singh };
3222*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_fulrr ody_dsuubx_core_ppu_fulrr_t;
3223*4b8b8d74SJaiprakash Singh 
3224*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_FULRR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_FULRR(uint64_t a)3225*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_FULRR(uint64_t a)
3226*4b8b8d74SJaiprakash Singh {
3227*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3228*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080054ll + 0x1000000ll * ((a) & 0x7f);
3229*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_FULRR", 1, a, 0, 0, 0, 0, 0);
3230*4b8b8d74SJaiprakash Singh }
3231*4b8b8d74SJaiprakash Singh 
3232*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_FULRR(a) ody_dsuubx_core_ppu_fulrr_t
3233*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_FULRR(a) CSR_TYPE_RSL32b
3234*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_FULRR(a) "DSUUBX_CORE_PPU_FULRR"
3235*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_FULRR(a) 0x0 /* PF_BAR0 */
3236*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_FULRR(a) (a)
3237*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_FULRR(a) (a), -1, -1, -1
3238*4b8b8d74SJaiprakash Singh 
3239*4b8b8d74SJaiprakash Singh /**
3240*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_funrr
3241*4b8b8d74SJaiprakash Singh  *
3242*4b8b8d74SJaiprakash Singh  * DSUUB Core Functional Retention RAM Configuration Register
3243*4b8b8d74SJaiprakash Singh  * This register is reserved.
3244*4b8b8d74SJaiprakash Singh  */
3245*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_funrr {
3246*4b8b8d74SJaiprakash Singh 	uint32_t u;
3247*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_funrr_s {
3248*4b8b8d74SJaiprakash Singh 		uint32_t func_ret_ram_cfg            : 8;
3249*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
3250*4b8b8d74SJaiprakash Singh 	} s;
3251*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_funrr_s cn; */
3252*4b8b8d74SJaiprakash Singh };
3253*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_funrr ody_dsuubx_core_ppu_funrr_t;
3254*4b8b8d74SJaiprakash Singh 
3255*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_FUNRR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_FUNRR(uint64_t a)3256*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_FUNRR(uint64_t a)
3257*4b8b8d74SJaiprakash Singh {
3258*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3259*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080050ll + 0x1000000ll * ((a) & 0x7f);
3260*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_FUNRR", 1, a, 0, 0, 0, 0, 0);
3261*4b8b8d74SJaiprakash Singh }
3262*4b8b8d74SJaiprakash Singh 
3263*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_FUNRR(a) ody_dsuubx_core_ppu_funrr_t
3264*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_FUNRR(a) CSR_TYPE_RSL32b
3265*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_FUNRR(a) "DSUUBX_CORE_PPU_FUNRR"
3266*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_FUNRR(a) 0x0 /* PF_BAR0 */
3267*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_FUNRR(a) (a)
3268*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_FUNRR(a) (a), -1, -1, -1
3269*4b8b8d74SJaiprakash Singh 
3270*4b8b8d74SJaiprakash Singh /**
3271*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_idr0
3272*4b8b8d74SJaiprakash Singh  *
3273*4b8b8d74SJaiprakash Singh  * DSUUB Core PPU Identification Register 0
3274*4b8b8d74SJaiprakash Singh  * This read-only register contains information on the type and number of channels on the device
3275*4b8b8d74SJaiprakash Singh  * interface and power and operating modes supported.
3276*4b8b8d74SJaiprakash Singh  *
3277*4b8b8d74SJaiprakash Singh  * Additional information on optional features can be found in the PPU Identification Register 1
3278*4b8b8d74SJaiprakash Singh  * (PPU_IDR1).
3279*4b8b8d74SJaiprakash Singh  */
3280*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_idr0 {
3281*4b8b8d74SJaiprakash Singh 	uint32_t u;
3282*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_idr0_s {
3283*4b8b8d74SJaiprakash Singh 		uint32_t devchan                     : 4;
3284*4b8b8d74SJaiprakash Singh 		uint32_t num_opmode                  : 4;
3285*4b8b8d74SJaiprakash Singh 		uint32_t sta_off_spt                 : 1;
3286*4b8b8d74SJaiprakash Singh 		uint32_t sta_off_emu_spt             : 1;
3287*4b8b8d74SJaiprakash Singh 		uint32_t sta_mem_ret_spt             : 1;
3288*4b8b8d74SJaiprakash Singh 		uint32_t sta_mem_ret_emu_spt         : 1;
3289*4b8b8d74SJaiprakash Singh 		uint32_t sta_lgc_ret_spt             : 1;
3290*4b8b8d74SJaiprakash Singh 		uint32_t sta_mem_off_spt             : 1;
3291*4b8b8d74SJaiprakash Singh 		uint32_t sta_full_ret_spt            : 1;
3292*4b8b8d74SJaiprakash Singh 		uint32_t sta_func_ret_spt            : 1;
3293*4b8b8d74SJaiprakash Singh 		uint32_t sta_on_spt                  : 1;
3294*4b8b8d74SJaiprakash Singh 		uint32_t sta_wrm_rst_spt             : 1;
3295*4b8b8d74SJaiprakash Singh 		uint32_t sta_dbg_recov_spt           : 1;
3296*4b8b8d74SJaiprakash Singh 		uint32_t reserved_19                 : 1;
3297*4b8b8d74SJaiprakash Singh 		uint32_t dyn_off_spt                 : 1;
3298*4b8b8d74SJaiprakash Singh 		uint32_t dyn_off_emu_spt             : 1;
3299*4b8b8d74SJaiprakash Singh 		uint32_t dyn_mem_ret_spt             : 1;
3300*4b8b8d74SJaiprakash Singh 		uint32_t dyn_mem_ret_emu_spt         : 1;
3301*4b8b8d74SJaiprakash Singh 		uint32_t dyn_lgc_ret_spt             : 1;
3302*4b8b8d74SJaiprakash Singh 		uint32_t dyn_mem_off_spt             : 1;
3303*4b8b8d74SJaiprakash Singh 		uint32_t dyn_full_ret_spt            : 1;
3304*4b8b8d74SJaiprakash Singh 		uint32_t dyn_func_ret_spt            : 1;
3305*4b8b8d74SJaiprakash Singh 		uint32_t dyn_on_spt                  : 1;
3306*4b8b8d74SJaiprakash Singh 		uint32_t dyn_wrm_rst_spt             : 1;
3307*4b8b8d74SJaiprakash Singh 		uint32_t reserved_30_31              : 2;
3308*4b8b8d74SJaiprakash Singh 	} s;
3309*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_idr0_s cn; */
3310*4b8b8d74SJaiprakash Singh };
3311*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_idr0 ody_dsuubx_core_ppu_idr0_t;
3312*4b8b8d74SJaiprakash Singh 
3313*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_IDR0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_IDR0(uint64_t a)3314*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_IDR0(uint64_t a)
3315*4b8b8d74SJaiprakash Singh {
3316*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3317*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080fb0ll + 0x1000000ll * ((a) & 0x7f);
3318*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_IDR0", 1, a, 0, 0, 0, 0, 0);
3319*4b8b8d74SJaiprakash Singh }
3320*4b8b8d74SJaiprakash Singh 
3321*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_IDR0(a) ody_dsuubx_core_ppu_idr0_t
3322*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_IDR0(a) CSR_TYPE_RSL32b
3323*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_IDR0(a) "DSUUBX_CORE_PPU_IDR0"
3324*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_IDR0(a) 0x0 /* PF_BAR0 */
3325*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_IDR0(a) (a)
3326*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_IDR0(a) (a), -1, -1, -1
3327*4b8b8d74SJaiprakash Singh 
3328*4b8b8d74SJaiprakash Singh /**
3329*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_idr1
3330*4b8b8d74SJaiprakash Singh  *
3331*4b8b8d74SJaiprakash Singh  * DSUUB Core PPU Identification Register 1
3332*4b8b8d74SJaiprakash Singh  * This read-only register contains information on the optional features and configurations that are
3333*4b8b8d74SJaiprakash Singh  * supported by this PPU.
3334*4b8b8d74SJaiprakash Singh  *
3335*4b8b8d74SJaiprakash Singh  * Additional information on optional features can be found in the PPU Identification Register 0
3336*4b8b8d74SJaiprakash Singh  * (PPU_IDR0).
3337*4b8b8d74SJaiprakash Singh  */
3338*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_idr1 {
3339*4b8b8d74SJaiprakash Singh 	uint32_t u;
3340*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_idr1_s {
3341*4b8b8d74SJaiprakash Singh 		uint32_t pwr_mode_entry_del_spt      : 1;
3342*4b8b8d74SJaiprakash Singh 		uint32_t sw_dev_del_spt              : 1;
3343*4b8b8d74SJaiprakash Singh 		uint32_t lock_spt                    : 1;
3344*4b8b8d74SJaiprakash Singh 		uint32_t reserved_3                  : 1;
3345*4b8b8d74SJaiprakash Singh 		uint32_t mem_ret_ram_reg             : 1;
3346*4b8b8d74SJaiprakash Singh 		uint32_t full_ret_ram_reg            : 1;
3347*4b8b8d74SJaiprakash Singh 		uint32_t func_ret_ram_reg            : 1;
3348*4b8b8d74SJaiprakash Singh 		uint32_t reserved_7                  : 1;
3349*4b8b8d74SJaiprakash Singh 		uint32_t sta_policy_pwr_irq_spt      : 1;
3350*4b8b8d74SJaiprakash Singh 		uint32_t reserved_9_11               : 3;
3351*4b8b8d74SJaiprakash Singh 		uint32_t off_mem_ret_trans           : 1;
3352*4b8b8d74SJaiprakash Singh 		uint32_t reserved_13_31              : 19;
3353*4b8b8d74SJaiprakash Singh 	} s;
3354*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_idr1_s cn; */
3355*4b8b8d74SJaiprakash Singh };
3356*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_idr1 ody_dsuubx_core_ppu_idr1_t;
3357*4b8b8d74SJaiprakash Singh 
3358*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_IDR1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_IDR1(uint64_t a)3359*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_IDR1(uint64_t a)
3360*4b8b8d74SJaiprakash Singh {
3361*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3362*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080fb4ll + 0x1000000ll * ((a) & 0x7f);
3363*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_IDR1", 1, a, 0, 0, 0, 0, 0);
3364*4b8b8d74SJaiprakash Singh }
3365*4b8b8d74SJaiprakash Singh 
3366*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_IDR1(a) ody_dsuubx_core_ppu_idr1_t
3367*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_IDR1(a) CSR_TYPE_RSL32b
3368*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_IDR1(a) "DSUUBX_CORE_PPU_IDR1"
3369*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_IDR1(a) 0x0 /* PF_BAR0 */
3370*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_IDR1(a) (a)
3371*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_IDR1(a) (a), -1, -1, -1
3372*4b8b8d74SJaiprakash Singh 
3373*4b8b8d74SJaiprakash Singh /**
3374*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_iesr
3375*4b8b8d74SJaiprakash Singh  *
3376*4b8b8d74SJaiprakash Singh  * DSUUB Core Input Edge Sensitivity Register
3377*4b8b8d74SJaiprakash Singh  * This register configures the transitions on the power mode DEVPACTIVE inputs that generate an
3378*4b8b8d74SJaiprakash Singh  * Input Edge interrupt event.
3379*4b8b8d74SJaiprakash Singh  *
3380*4b8b8d74SJaiprakash Singh  * When an event is masked an occurrence of the event does not set the corresponding bit in the
3381*4b8b8d74SJaiprakash Singh  * interrupt status register.
3382*4b8b8d74SJaiprakash Singh  */
3383*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_iesr {
3384*4b8b8d74SJaiprakash Singh 	uint32_t u;
3385*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_iesr_s {
3386*4b8b8d74SJaiprakash Singh 		uint32_t reserved_0_1                : 2;
3387*4b8b8d74SJaiprakash Singh 		uint32_t devactive01_edge            : 2;
3388*4b8b8d74SJaiprakash Singh 		uint32_t reserved_4_9                : 6;
3389*4b8b8d74SJaiprakash Singh 		uint32_t devactive05_edge            : 2;
3390*4b8b8d74SJaiprakash Singh 		uint32_t reserved_12_13              : 2;
3391*4b8b8d74SJaiprakash Singh 		uint32_t devactive07_edge            : 2;
3392*4b8b8d74SJaiprakash Singh 		uint32_t devactive08_edge            : 2;
3393*4b8b8d74SJaiprakash Singh 		uint32_t devactive09_edge            : 2;
3394*4b8b8d74SJaiprakash Singh 		uint32_t devactive10_edge            : 2;
3395*4b8b8d74SJaiprakash Singh 		uint32_t reserved_22_31              : 10;
3396*4b8b8d74SJaiprakash Singh 	} s;
3397*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_iesr_s cn; */
3398*4b8b8d74SJaiprakash Singh };
3399*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_iesr ody_dsuubx_core_ppu_iesr_t;
3400*4b8b8d74SJaiprakash Singh 
3401*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_IESR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_IESR(uint64_t a)3402*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_IESR(uint64_t a)
3403*4b8b8d74SJaiprakash Singh {
3404*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3405*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080040ll + 0x1000000ll * ((a) & 0x7f);
3406*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_IESR", 1, a, 0, 0, 0, 0, 0);
3407*4b8b8d74SJaiprakash Singh }
3408*4b8b8d74SJaiprakash Singh 
3409*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_IESR(a) ody_dsuubx_core_ppu_iesr_t
3410*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_IESR(a) CSR_TYPE_RSL32b
3411*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_IESR(a) "DSUUBX_CORE_PPU_IESR"
3412*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_IESR(a) 0x0 /* PF_BAR0 */
3413*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_IESR(a) (a)
3414*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_IESR(a) (a), -1, -1, -1
3415*4b8b8d74SJaiprakash Singh 
3416*4b8b8d74SJaiprakash Singh /**
3417*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_iidr
3418*4b8b8d74SJaiprakash Singh  *
3419*4b8b8d74SJaiprakash Singh  * DSUUB Core Implementation Identification Register
3420*4b8b8d74SJaiprakash Singh  * This register provides information about the implementer and implementation of the PPU.
3421*4b8b8d74SJaiprakash Singh  */
3422*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_iidr {
3423*4b8b8d74SJaiprakash Singh 	uint32_t u;
3424*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_iidr_s {
3425*4b8b8d74SJaiprakash Singh 		uint32_t implementer                 : 12;
3426*4b8b8d74SJaiprakash Singh 		uint32_t revision                    : 4;
3427*4b8b8d74SJaiprakash Singh 		uint32_t variant                     : 4;
3428*4b8b8d74SJaiprakash Singh 		uint32_t product_id                  : 12;
3429*4b8b8d74SJaiprakash Singh 	} s;
3430*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_iidr_s cn; */
3431*4b8b8d74SJaiprakash Singh };
3432*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_iidr ody_dsuubx_core_ppu_iidr_t;
3433*4b8b8d74SJaiprakash Singh 
3434*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_IIDR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_IIDR(uint64_t a)3435*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_IIDR(uint64_t a)
3436*4b8b8d74SJaiprakash Singh {
3437*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3438*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080fc8ll + 0x1000000ll * ((a) & 0x7f);
3439*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_IIDR", 1, a, 0, 0, 0, 0, 0);
3440*4b8b8d74SJaiprakash Singh }
3441*4b8b8d74SJaiprakash Singh 
3442*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_IIDR(a) ody_dsuubx_core_ppu_iidr_t
3443*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_IIDR(a) CSR_TYPE_RSL32b
3444*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_IIDR(a) "DSUUBX_CORE_PPU_IIDR"
3445*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_IIDR(a) 0x0 /* PF_BAR0 */
3446*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_IIDR(a) (a)
3447*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_IIDR(a) (a), -1, -1, -1
3448*4b8b8d74SJaiprakash Singh 
3449*4b8b8d74SJaiprakash Singh /**
3450*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_imr
3451*4b8b8d74SJaiprakash Singh  *
3452*4b8b8d74SJaiprakash Singh  * DSUUB Core Interrupt Mask Register
3453*4b8b8d74SJaiprakash Singh  * This register controls the events that assert the interrupt output. Additional event
3454*4b8b8d74SJaiprakash Singh  * masking controls
3455*4b8b8d74SJaiprakash Singh  * are in the Additional Interrupt Mask Register (DSUUB_PPU_AIMR), Input Edge
3456*4b8b8d74SJaiprakash Singh  * Sensitivity Register (DSUUB_
3457*4b8b8d74SJaiprakash Singh  * PPU_IESR), and the Operating Mode Active Edge Sensitivity Register (DSUUB_PPU_OPSR).
3458*4b8b8d74SJaiprakash Singh  *
3459*4b8b8d74SJaiprakash Singh  * When an interrupt event is masked an occurrence of the event does not set the corresponding bit
3460*4b8b8d74SJaiprakash Singh  * in the interrupt status register.
3461*4b8b8d74SJaiprakash Singh  */
3462*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_imr {
3463*4b8b8d74SJaiprakash Singh 	uint32_t u;
3464*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_imr_s {
3465*4b8b8d74SJaiprakash Singh 		uint32_t sta_policy_trn_irq_mask     : 1;
3466*4b8b8d74SJaiprakash Singh 		uint32_t sta_accept_irq_mask         : 1;
3467*4b8b8d74SJaiprakash Singh 		uint32_t sta_deny_irq_mask           : 1;
3468*4b8b8d74SJaiprakash Singh 		uint32_t emu_accept_irq_mask         : 1;
3469*4b8b8d74SJaiprakash Singh 		uint32_t emu_deny_irq_mask           : 1;
3470*4b8b8d74SJaiprakash Singh 		uint32_t locked_irq_mask             : 1;
3471*4b8b8d74SJaiprakash Singh 		uint32_t reserved_6_31               : 26;
3472*4b8b8d74SJaiprakash Singh 	} s;
3473*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_imr_s cn; */
3474*4b8b8d74SJaiprakash Singh };
3475*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_imr ody_dsuubx_core_ppu_imr_t;
3476*4b8b8d74SJaiprakash Singh 
3477*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_IMR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_IMR(uint64_t a)3478*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_IMR(uint64_t a)
3479*4b8b8d74SJaiprakash Singh {
3480*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3481*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080030ll + 0x1000000ll * ((a) & 0x7f);
3482*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_IMR", 1, a, 0, 0, 0, 0, 0);
3483*4b8b8d74SJaiprakash Singh }
3484*4b8b8d74SJaiprakash Singh 
3485*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_IMR(a) ody_dsuubx_core_ppu_imr_t
3486*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_IMR(a) CSR_TYPE_RSL32b
3487*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_IMR(a) "DSUUBX_CORE_PPU_IMR"
3488*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_IMR(a) 0x0 /* PF_BAR0 */
3489*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_IMR(a) (a)
3490*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_IMR(a) (a), -1, -1, -1
3491*4b8b8d74SJaiprakash Singh 
3492*4b8b8d74SJaiprakash Singh /**
3493*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_isr
3494*4b8b8d74SJaiprakash Singh  *
3495*4b8b8d74SJaiprakash Singh  * DSUUB Core Interrupt Status Register
3496*4b8b8d74SJaiprakash Singh  * This register contains information about events causing the assertion of the
3497*4b8b8d74SJaiprakash Singh  * interrupt output. It is
3498*4b8b8d74SJaiprakash Singh  * also used to clear interrupt events.
3499*4b8b8d74SJaiprakash Singh  *
3500*4b8b8d74SJaiprakash Singh  * A bit set to 1 indicates the event asserted the interrupt output. Multiple events
3501*4b8b8d74SJaiprakash Singh  * can be active at
3502*4b8b8d74SJaiprakash Singh  * the same time. When an interrupt event is masked an occurrence of that event does not set the
3503*4b8b8d74SJaiprakash Singh  * status bit.
3504*4b8b8d74SJaiprakash Singh  *
3505*4b8b8d74SJaiprakash Singh  * A write of 1 to an event bit clears that event. A write of 0 to a bit has no
3506*4b8b8d74SJaiprakash Singh  * effect. The interrupt
3507*4b8b8d74SJaiprakash Singh  * output stays HIGH until all status bits in the Interrupt Status Register (PPU_ISR)
3508*4b8b8d74SJaiprakash Singh  * and the Additional
3509*4b8b8d74SJaiprakash Singh  * Interrupt Status Register (PPU_AISR) are 0b0.
3510*4b8b8d74SJaiprakash Singh  *
3511*4b8b8d74SJaiprakash Singh  * When the OTHER_IRQ bit is set, this indicates an event from the Additional Interrupt Status
3512*4b8b8d74SJaiprakash Singh  * Register (PPU_AISR) has caused the interrupt output to be asserted. This bit cannot be cleared by
3513*4b8b8d74SJaiprakash Singh  * writing to this register. It must be cleared by writing to the active event in the
3514*4b8b8d74SJaiprakash Singh  * Additional Interrupt
3515*4b8b8d74SJaiprakash Singh  * Status Register (PPU_AISR).
3516*4b8b8d74SJaiprakash Singh  */
3517*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_isr {
3518*4b8b8d74SJaiprakash Singh 	uint32_t u;
3519*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_isr_s {
3520*4b8b8d74SJaiprakash Singh 		uint32_t sta_policy_trn_irq          : 1;
3521*4b8b8d74SJaiprakash Singh 		uint32_t sta_accept_irq              : 1;
3522*4b8b8d74SJaiprakash Singh 		uint32_t sta_deny_irq                : 1;
3523*4b8b8d74SJaiprakash Singh 		uint32_t emu_accept_irq              : 1;
3524*4b8b8d74SJaiprakash Singh 		uint32_t emu_deny_irq                : 1;
3525*4b8b8d74SJaiprakash Singh 		uint32_t locked_irq                  : 1;
3526*4b8b8d74SJaiprakash Singh 		uint32_t reserved_6                  : 1;
3527*4b8b8d74SJaiprakash Singh 		uint32_t other_irq                   : 1;
3528*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8                  : 1;
3529*4b8b8d74SJaiprakash Singh 		uint32_t pwr_active_edge_irq1        : 1;
3530*4b8b8d74SJaiprakash Singh 		uint32_t reserved_10_12              : 3;
3531*4b8b8d74SJaiprakash Singh 		uint32_t pwr_active_edge_irq5        : 1;
3532*4b8b8d74SJaiprakash Singh 		uint32_t reserved_14                 : 1;
3533*4b8b8d74SJaiprakash Singh 		uint32_t pwr_active_edge_irq7        : 1;
3534*4b8b8d74SJaiprakash Singh 		uint32_t pwr_active_edge_irq8        : 1;
3535*4b8b8d74SJaiprakash Singh 		uint32_t pwr_active_edge_irq9        : 1;
3536*4b8b8d74SJaiprakash Singh 		uint32_t pwr_active_edge_irq10       : 1;
3537*4b8b8d74SJaiprakash Singh 		uint32_t reserved_19_31              : 13;
3538*4b8b8d74SJaiprakash Singh 	} s;
3539*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_isr_s cn; */
3540*4b8b8d74SJaiprakash Singh };
3541*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_isr ody_dsuubx_core_ppu_isr_t;
3542*4b8b8d74SJaiprakash Singh 
3543*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_ISR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_ISR(uint64_t a)3544*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_ISR(uint64_t a)
3545*4b8b8d74SJaiprakash Singh {
3546*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3547*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080038ll + 0x1000000ll * ((a) & 0x7f);
3548*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_ISR", 1, a, 0, 0, 0, 0, 0);
3549*4b8b8d74SJaiprakash Singh }
3550*4b8b8d74SJaiprakash Singh 
3551*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_ISR(a) ody_dsuubx_core_ppu_isr_t
3552*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_ISR(a) CSR_TYPE_RSL32b
3553*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_ISR(a) "DSUUBX_CORE_PPU_ISR"
3554*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_ISR(a) 0x0 /* PF_BAR0 */
3555*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_ISR(a) (a)
3556*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_ISR(a) (a), -1, -1, -1
3557*4b8b8d74SJaiprakash Singh 
3558*4b8b8d74SJaiprakash Singh /**
3559*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_memrr
3560*4b8b8d74SJaiprakash Singh  *
3561*4b8b8d74SJaiprakash Singh  * DSUUB Core Memory Retention RAM Configuration Register
3562*4b8b8d74SJaiprakash Singh  * This register controls bits [15:8] of the PCSMPSTATE output when in MEM_RET mode. These
3563*4b8b8d74SJaiprakash Singh  * outputs are used by the PCSM to configure the RAMs that are retained.
3564*4b8b8d74SJaiprakash Singh  */
3565*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_memrr {
3566*4b8b8d74SJaiprakash Singh 	uint32_t u;
3567*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_memrr_s {
3568*4b8b8d74SJaiprakash Singh 		uint32_t reserved_0_31               : 32;
3569*4b8b8d74SJaiprakash Singh 	} s;
3570*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_memrr_s cn; */
3571*4b8b8d74SJaiprakash Singh };
3572*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_memrr ody_dsuubx_core_ppu_memrr_t;
3573*4b8b8d74SJaiprakash Singh 
3574*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_MEMRR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_MEMRR(uint64_t a)3575*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_MEMRR(uint64_t a)
3576*4b8b8d74SJaiprakash Singh {
3577*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3578*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080058ll + 0x1000000ll * ((a) & 0x7f);
3579*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_MEMRR", 1, a, 0, 0, 0, 0, 0);
3580*4b8b8d74SJaiprakash Singh }
3581*4b8b8d74SJaiprakash Singh 
3582*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_MEMRR(a) ody_dsuubx_core_ppu_memrr_t
3583*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_MEMRR(a) CSR_TYPE_RSL32b
3584*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_MEMRR(a) "DSUUBX_CORE_PPU_MEMRR"
3585*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_MEMRR(a) 0x0 /* PF_BAR0 */
3586*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_MEMRR(a) (a)
3587*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_MEMRR(a) (a), -1, -1, -1
3588*4b8b8d74SJaiprakash Singh 
3589*4b8b8d74SJaiprakash Singh /**
3590*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_misr
3591*4b8b8d74SJaiprakash Singh  *
3592*4b8b8d74SJaiprakash Singh  * DSUUB Core Miscellaneous Input Current Status Register
3593*4b8b8d74SJaiprakash Singh  * This read-only register contains status reflecting the values of miscellaneous inputs.
3594*4b8b8d74SJaiprakash Singh  */
3595*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_misr {
3596*4b8b8d74SJaiprakash Singh 	uint32_t u;
3597*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_misr_s {
3598*4b8b8d74SJaiprakash Singh 		uint32_t pcsmpaccept_status          : 1;
3599*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_7                : 7;
3600*4b8b8d74SJaiprakash Singh 		uint32_t devaccept_status            : 1;
3601*4b8b8d74SJaiprakash Singh 		uint32_t reserved_9_15               : 7;
3602*4b8b8d74SJaiprakash Singh 		uint32_t devdeny_status              : 1;
3603*4b8b8d74SJaiprakash Singh 		uint32_t reserved_17_31              : 15;
3604*4b8b8d74SJaiprakash Singh 	} s;
3605*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_misr_s cn; */
3606*4b8b8d74SJaiprakash Singh };
3607*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_misr ody_dsuubx_core_ppu_misr_t;
3608*4b8b8d74SJaiprakash Singh 
3609*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_MISR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_MISR(uint64_t a)3610*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_MISR(uint64_t a)
3611*4b8b8d74SJaiprakash Singh {
3612*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3613*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080014ll + 0x1000000ll * ((a) & 0x7f);
3614*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_MISR", 1, a, 0, 0, 0, 0, 0);
3615*4b8b8d74SJaiprakash Singh }
3616*4b8b8d74SJaiprakash Singh 
3617*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_MISR(a) ody_dsuubx_core_ppu_misr_t
3618*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_MISR(a) CSR_TYPE_RSL32b
3619*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_MISR(a) "DSUUBX_CORE_PPU_MISR"
3620*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_MISR(a) 0x0 /* PF_BAR0 */
3621*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_MISR(a) (a)
3622*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_MISR(a) (a), -1, -1, -1
3623*4b8b8d74SJaiprakash Singh 
3624*4b8b8d74SJaiprakash Singh /**
3625*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_opsr
3626*4b8b8d74SJaiprakash Singh  *
3627*4b8b8d74SJaiprakash Singh  * DSUUB Core Input Edge Sensitivity Register
3628*4b8b8d74SJaiprakash Singh  * This register configures the transitions on the operating mode DEVPACTIVE inputs that generate
3629*4b8b8d74SJaiprakash Singh  * an Input Edge interrupt event.
3630*4b8b8d74SJaiprakash Singh  *
3631*4b8b8d74SJaiprakash Singh  * When an event is masked an occurrence of the event does not set the corresponding bit in the
3632*4b8b8d74SJaiprakash Singh  * interrupt status register.
3633*4b8b8d74SJaiprakash Singh  */
3634*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_opsr {
3635*4b8b8d74SJaiprakash Singh 	uint32_t u;
3636*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_opsr_s {
3637*4b8b8d74SJaiprakash Singh 		uint32_t reserved_0_31               : 32;
3638*4b8b8d74SJaiprakash Singh 	} s;
3639*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_opsr_s cn; */
3640*4b8b8d74SJaiprakash Singh };
3641*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_opsr ody_dsuubx_core_ppu_opsr_t;
3642*4b8b8d74SJaiprakash Singh 
3643*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_OPSR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_OPSR(uint64_t a)3644*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_OPSR(uint64_t a)
3645*4b8b8d74SJaiprakash Singh {
3646*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3647*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080044ll + 0x1000000ll * ((a) & 0x7f);
3648*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_OPSR", 1, a, 0, 0, 0, 0, 0);
3649*4b8b8d74SJaiprakash Singh }
3650*4b8b8d74SJaiprakash Singh 
3651*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_OPSR(a) ody_dsuubx_core_ppu_opsr_t
3652*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_OPSR(a) CSR_TYPE_RSL32b
3653*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_OPSR(a) "DSUUBX_CORE_PPU_OPSR"
3654*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_OPSR(a) 0x0 /* PF_BAR0 */
3655*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_OPSR(a) (a)
3656*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_OPSR(a) (a), -1, -1, -1
3657*4b8b8d74SJaiprakash Singh 
3658*4b8b8d74SJaiprakash Singh /**
3659*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_pidr0
3660*4b8b8d74SJaiprakash Singh  *
3661*4b8b8d74SJaiprakash Singh  * DSUUB Core PPU Peripheral Identification Register 0
3662*4b8b8d74SJaiprakash Singh  * Provides CoreSight discovery information.
3663*4b8b8d74SJaiprakash Singh  */
3664*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_pidr0 {
3665*4b8b8d74SJaiprakash Singh 	uint32_t u;
3666*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_pidr0_s {
3667*4b8b8d74SJaiprakash Singh 		uint32_t part_0                      : 8;
3668*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
3669*4b8b8d74SJaiprakash Singh 	} s;
3670*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_pidr0_s cn; */
3671*4b8b8d74SJaiprakash Singh };
3672*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_pidr0 ody_dsuubx_core_ppu_pidr0_t;
3673*4b8b8d74SJaiprakash Singh 
3674*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PIDR0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_PIDR0(uint64_t a)3675*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PIDR0(uint64_t a)
3676*4b8b8d74SJaiprakash Singh {
3677*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3678*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080fe0ll + 0x1000000ll * ((a) & 0x7f);
3679*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_PIDR0", 1, a, 0, 0, 0, 0, 0);
3680*4b8b8d74SJaiprakash Singh }
3681*4b8b8d74SJaiprakash Singh 
3682*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_PIDR0(a) ody_dsuubx_core_ppu_pidr0_t
3683*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_PIDR0(a) CSR_TYPE_RSL32b
3684*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_PIDR0(a) "DSUUBX_CORE_PPU_PIDR0"
3685*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_PIDR0(a) 0x0 /* PF_BAR0 */
3686*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_PIDR0(a) (a)
3687*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_PIDR0(a) (a), -1, -1, -1
3688*4b8b8d74SJaiprakash Singh 
3689*4b8b8d74SJaiprakash Singh /**
3690*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_pidr1
3691*4b8b8d74SJaiprakash Singh  *
3692*4b8b8d74SJaiprakash Singh  * DSUUB Core PPU Peripheral Identification Register 1
3693*4b8b8d74SJaiprakash Singh  * Provides CoreSight discovery information.
3694*4b8b8d74SJaiprakash Singh  */
3695*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_pidr1 {
3696*4b8b8d74SJaiprakash Singh 	uint32_t u;
3697*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_pidr1_s {
3698*4b8b8d74SJaiprakash Singh 		uint32_t part_1                      : 4;
3699*4b8b8d74SJaiprakash Singh 		uint32_t des_0                       : 4;
3700*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
3701*4b8b8d74SJaiprakash Singh 	} s;
3702*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_pidr1_s cn; */
3703*4b8b8d74SJaiprakash Singh };
3704*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_pidr1 ody_dsuubx_core_ppu_pidr1_t;
3705*4b8b8d74SJaiprakash Singh 
3706*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PIDR1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_PIDR1(uint64_t a)3707*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PIDR1(uint64_t a)
3708*4b8b8d74SJaiprakash Singh {
3709*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3710*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080fe4ll + 0x1000000ll * ((a) & 0x7f);
3711*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_PIDR1", 1, a, 0, 0, 0, 0, 0);
3712*4b8b8d74SJaiprakash Singh }
3713*4b8b8d74SJaiprakash Singh 
3714*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_PIDR1(a) ody_dsuubx_core_ppu_pidr1_t
3715*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_PIDR1(a) CSR_TYPE_RSL32b
3716*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_PIDR1(a) "DSUUBX_CORE_PPU_PIDR1"
3717*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_PIDR1(a) 0x0 /* PF_BAR0 */
3718*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_PIDR1(a) (a)
3719*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_PIDR1(a) (a), -1, -1, -1
3720*4b8b8d74SJaiprakash Singh 
3721*4b8b8d74SJaiprakash Singh /**
3722*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_pidr2
3723*4b8b8d74SJaiprakash Singh  *
3724*4b8b8d74SJaiprakash Singh  * DSUUB Core PPU Peripheral Identification Register 2
3725*4b8b8d74SJaiprakash Singh  * Provides CoreSight discovery information.
3726*4b8b8d74SJaiprakash Singh  */
3727*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_pidr2 {
3728*4b8b8d74SJaiprakash Singh 	uint32_t u;
3729*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_pidr2_s {
3730*4b8b8d74SJaiprakash Singh 		uint32_t des_1                       : 3;
3731*4b8b8d74SJaiprakash Singh 		uint32_t jedec                       : 1;
3732*4b8b8d74SJaiprakash Singh 		uint32_t revision                    : 4;
3733*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
3734*4b8b8d74SJaiprakash Singh 	} s;
3735*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_pidr2_s cn; */
3736*4b8b8d74SJaiprakash Singh };
3737*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_pidr2 ody_dsuubx_core_ppu_pidr2_t;
3738*4b8b8d74SJaiprakash Singh 
3739*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PIDR2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_PIDR2(uint64_t a)3740*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PIDR2(uint64_t a)
3741*4b8b8d74SJaiprakash Singh {
3742*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3743*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080fe8ll + 0x1000000ll * ((a) & 0x7f);
3744*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_PIDR2", 1, a, 0, 0, 0, 0, 0);
3745*4b8b8d74SJaiprakash Singh }
3746*4b8b8d74SJaiprakash Singh 
3747*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_PIDR2(a) ody_dsuubx_core_ppu_pidr2_t
3748*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_PIDR2(a) CSR_TYPE_RSL32b
3749*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_PIDR2(a) "DSUUBX_CORE_PPU_PIDR2"
3750*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_PIDR2(a) 0x0 /* PF_BAR0 */
3751*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_PIDR2(a) (a)
3752*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_PIDR2(a) (a), -1, -1, -1
3753*4b8b8d74SJaiprakash Singh 
3754*4b8b8d74SJaiprakash Singh /**
3755*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_pidr3
3756*4b8b8d74SJaiprakash Singh  *
3757*4b8b8d74SJaiprakash Singh  * DSUUB Core PPU Peripheral Identification Register 3
3758*4b8b8d74SJaiprakash Singh  * Provides CoreSight discovery information.
3759*4b8b8d74SJaiprakash Singh  */
3760*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_pidr3 {
3761*4b8b8d74SJaiprakash Singh 	uint32_t u;
3762*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_pidr3_s {
3763*4b8b8d74SJaiprakash Singh 		uint32_t cmod                        : 4;
3764*4b8b8d74SJaiprakash Singh 		uint32_t revand                      : 4;
3765*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
3766*4b8b8d74SJaiprakash Singh 	} s;
3767*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_pidr3_s cn; */
3768*4b8b8d74SJaiprakash Singh };
3769*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_pidr3 ody_dsuubx_core_ppu_pidr3_t;
3770*4b8b8d74SJaiprakash Singh 
3771*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PIDR3(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_PIDR3(uint64_t a)3772*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PIDR3(uint64_t a)
3773*4b8b8d74SJaiprakash Singh {
3774*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3775*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080fecll + 0x1000000ll * ((a) & 0x7f);
3776*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_PIDR3", 1, a, 0, 0, 0, 0, 0);
3777*4b8b8d74SJaiprakash Singh }
3778*4b8b8d74SJaiprakash Singh 
3779*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_PIDR3(a) ody_dsuubx_core_ppu_pidr3_t
3780*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_PIDR3(a) CSR_TYPE_RSL32b
3781*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_PIDR3(a) "DSUUBX_CORE_PPU_PIDR3"
3782*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_PIDR3(a) 0x0 /* PF_BAR0 */
3783*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_PIDR3(a) (a)
3784*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_PIDR3(a) (a), -1, -1, -1
3785*4b8b8d74SJaiprakash Singh 
3786*4b8b8d74SJaiprakash Singh /**
3787*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_pidr4
3788*4b8b8d74SJaiprakash Singh  *
3789*4b8b8d74SJaiprakash Singh  * DSUUB Core PPU Peripheral Identification Register 4
3790*4b8b8d74SJaiprakash Singh  * Provides CoreSight discovery information.
3791*4b8b8d74SJaiprakash Singh  */
3792*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_pidr4 {
3793*4b8b8d74SJaiprakash Singh 	uint32_t u;
3794*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_pidr4_s {
3795*4b8b8d74SJaiprakash Singh 		uint32_t des_2                       : 4;
3796*4b8b8d74SJaiprakash Singh 		uint32_t size                        : 4;
3797*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
3798*4b8b8d74SJaiprakash Singh 	} s;
3799*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_pidr4_s cn; */
3800*4b8b8d74SJaiprakash Singh };
3801*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_pidr4 ody_dsuubx_core_ppu_pidr4_t;
3802*4b8b8d74SJaiprakash Singh 
3803*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PIDR4(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_PIDR4(uint64_t a)3804*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PIDR4(uint64_t a)
3805*4b8b8d74SJaiprakash Singh {
3806*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3807*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080fd0ll + 0x1000000ll * ((a) & 0x7f);
3808*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_PIDR4", 1, a, 0, 0, 0, 0, 0);
3809*4b8b8d74SJaiprakash Singh }
3810*4b8b8d74SJaiprakash Singh 
3811*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_PIDR4(a) ody_dsuubx_core_ppu_pidr4_t
3812*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_PIDR4(a) CSR_TYPE_RSL32b
3813*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_PIDR4(a) "DSUUBX_CORE_PPU_PIDR4"
3814*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_PIDR4(a) 0x0 /* PF_BAR0 */
3815*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_PIDR4(a) (a)
3816*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_PIDR4(a) (a), -1, -1, -1
3817*4b8b8d74SJaiprakash Singh 
3818*4b8b8d74SJaiprakash Singh /**
3819*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_pidr5
3820*4b8b8d74SJaiprakash Singh  *
3821*4b8b8d74SJaiprakash Singh  * DSUUB Core PPU Peripheral Identification Register 5
3822*4b8b8d74SJaiprakash Singh  * Provides CoreSight discovery information.
3823*4b8b8d74SJaiprakash Singh  */
3824*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_pidr5 {
3825*4b8b8d74SJaiprakash Singh 	uint32_t u;
3826*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_pidr5_s {
3827*4b8b8d74SJaiprakash Singh 		uint32_t reserved_0_31               : 32;
3828*4b8b8d74SJaiprakash Singh 	} s;
3829*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_pidr5_s cn; */
3830*4b8b8d74SJaiprakash Singh };
3831*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_pidr5 ody_dsuubx_core_ppu_pidr5_t;
3832*4b8b8d74SJaiprakash Singh 
3833*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PIDR5(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_PIDR5(uint64_t a)3834*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PIDR5(uint64_t a)
3835*4b8b8d74SJaiprakash Singh {
3836*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3837*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080fd4ll + 0x1000000ll * ((a) & 0x7f);
3838*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_PIDR5", 1, a, 0, 0, 0, 0, 0);
3839*4b8b8d74SJaiprakash Singh }
3840*4b8b8d74SJaiprakash Singh 
3841*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_PIDR5(a) ody_dsuubx_core_ppu_pidr5_t
3842*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_PIDR5(a) CSR_TYPE_RSL32b
3843*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_PIDR5(a) "DSUUBX_CORE_PPU_PIDR5"
3844*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_PIDR5(a) 0x0 /* PF_BAR0 */
3845*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_PIDR5(a) (a)
3846*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_PIDR5(a) (a), -1, -1, -1
3847*4b8b8d74SJaiprakash Singh 
3848*4b8b8d74SJaiprakash Singh /**
3849*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_pidr6
3850*4b8b8d74SJaiprakash Singh  *
3851*4b8b8d74SJaiprakash Singh  * DSUUB Core PPU Peripheral Identification Register 6
3852*4b8b8d74SJaiprakash Singh  * Provides CoreSight discovery information.
3853*4b8b8d74SJaiprakash Singh  */
3854*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_pidr6 {
3855*4b8b8d74SJaiprakash Singh 	uint32_t u;
3856*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_pidr6_s {
3857*4b8b8d74SJaiprakash Singh 		uint32_t reserved_0_31               : 32;
3858*4b8b8d74SJaiprakash Singh 	} s;
3859*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_pidr6_s cn; */
3860*4b8b8d74SJaiprakash Singh };
3861*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_pidr6 ody_dsuubx_core_ppu_pidr6_t;
3862*4b8b8d74SJaiprakash Singh 
3863*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PIDR6(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_PIDR6(uint64_t a)3864*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PIDR6(uint64_t a)
3865*4b8b8d74SJaiprakash Singh {
3866*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3867*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080fd8ll + 0x1000000ll * ((a) & 0x7f);
3868*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_PIDR6", 1, a, 0, 0, 0, 0, 0);
3869*4b8b8d74SJaiprakash Singh }
3870*4b8b8d74SJaiprakash Singh 
3871*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_PIDR6(a) ody_dsuubx_core_ppu_pidr6_t
3872*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_PIDR6(a) CSR_TYPE_RSL32b
3873*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_PIDR6(a) "DSUUBX_CORE_PPU_PIDR6"
3874*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_PIDR6(a) 0x0 /* PF_BAR0 */
3875*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_PIDR6(a) (a)
3876*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_PIDR6(a) (a), -1, -1, -1
3877*4b8b8d74SJaiprakash Singh 
3878*4b8b8d74SJaiprakash Singh /**
3879*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_pidr7
3880*4b8b8d74SJaiprakash Singh  *
3881*4b8b8d74SJaiprakash Singh  * DSUUB Core PPU Peripheral Identification Register 7
3882*4b8b8d74SJaiprakash Singh  * Provides CoreSight discovery information.
3883*4b8b8d74SJaiprakash Singh  */
3884*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_pidr7 {
3885*4b8b8d74SJaiprakash Singh 	uint32_t u;
3886*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_pidr7_s {
3887*4b8b8d74SJaiprakash Singh 		uint32_t reserved_0_31               : 32;
3888*4b8b8d74SJaiprakash Singh 	} s;
3889*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_pidr7_s cn; */
3890*4b8b8d74SJaiprakash Singh };
3891*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_pidr7 ody_dsuubx_core_ppu_pidr7_t;
3892*4b8b8d74SJaiprakash Singh 
3893*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PIDR7(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_PIDR7(uint64_t a)3894*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PIDR7(uint64_t a)
3895*4b8b8d74SJaiprakash Singh {
3896*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3897*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080fdcll + 0x1000000ll * ((a) & 0x7f);
3898*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_PIDR7", 1, a, 0, 0, 0, 0, 0);
3899*4b8b8d74SJaiprakash Singh }
3900*4b8b8d74SJaiprakash Singh 
3901*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_PIDR7(a) ody_dsuubx_core_ppu_pidr7_t
3902*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_PIDR7(a) CSR_TYPE_RSL32b
3903*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_PIDR7(a) "DSUUBX_CORE_PPU_PIDR7"
3904*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_PIDR7(a) 0x0 /* PF_BAR0 */
3905*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_PIDR7(a) (a)
3906*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_PIDR7(a) (a), -1, -1, -1
3907*4b8b8d74SJaiprakash Singh 
3908*4b8b8d74SJaiprakash Singh /**
3909*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_pmer
3910*4b8b8d74SJaiprakash Singh  *
3911*4b8b8d74SJaiprakash Singh  * DSUUB Core Power Mode Emulation Enable Register
3912*4b8b8d74SJaiprakash Singh  * This register allows software to enable entry into emulated modes.
3913*4b8b8d74SJaiprakash Singh  */
3914*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_pmer {
3915*4b8b8d74SJaiprakash Singh 	uint32_t u;
3916*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_pmer_s {
3917*4b8b8d74SJaiprakash Singh 		uint32_t emu_en                      : 1;
3918*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_31               : 31;
3919*4b8b8d74SJaiprakash Singh 	} s;
3920*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_pmer_s cn; */
3921*4b8b8d74SJaiprakash Singh };
3922*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_pmer ody_dsuubx_core_ppu_pmer_t;
3923*4b8b8d74SJaiprakash Singh 
3924*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PMER(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_PMER(uint64_t a)3925*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PMER(uint64_t a)
3926*4b8b8d74SJaiprakash Singh {
3927*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3928*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080004ll + 0x1000000ll * ((a) & 0x7f);
3929*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_PMER", 1, a, 0, 0, 0, 0, 0);
3930*4b8b8d74SJaiprakash Singh }
3931*4b8b8d74SJaiprakash Singh 
3932*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_PMER(a) ody_dsuubx_core_ppu_pmer_t
3933*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_PMER(a) CSR_TYPE_RSL32b
3934*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_PMER(a) "DSUUBX_CORE_PPU_PMER"
3935*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_PMER(a) 0x0 /* PF_BAR0 */
3936*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_PMER(a) (a)
3937*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_PMER(a) (a), -1, -1, -1
3938*4b8b8d74SJaiprakash Singh 
3939*4b8b8d74SJaiprakash Singh /**
3940*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_ptcr
3941*4b8b8d74SJaiprakash Singh  *
3942*4b8b8d74SJaiprakash Singh  * DSUUB Core Power Mode Transition Register
3943*4b8b8d74SJaiprakash Singh  * This register contains settings which affect the behaviour of certain power mode transitions.
3944*4b8b8d74SJaiprakash Singh  */
3945*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_ptcr {
3946*4b8b8d74SJaiprakash Singh 	uint32_t u;
3947*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_ptcr_s {
3948*4b8b8d74SJaiprakash Singh 		uint32_t warm_rst_devreqen           : 1;
3949*4b8b8d74SJaiprakash Singh 		uint32_t dbg_recov_porst_en          : 1;
3950*4b8b8d74SJaiprakash Singh 		uint32_t reserved_2_31               : 30;
3951*4b8b8d74SJaiprakash Singh 	} s;
3952*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_ptcr_s cn; */
3953*4b8b8d74SJaiprakash Singh };
3954*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_ptcr ody_dsuubx_core_ppu_ptcr_t;
3955*4b8b8d74SJaiprakash Singh 
3956*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PTCR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_PTCR(uint64_t a)3957*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PTCR(uint64_t a)
3958*4b8b8d74SJaiprakash Singh {
3959*4b8b8d74SJaiprakash Singh 	if (a <= 89)
3960*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080024ll + 0x1000000ll * ((a) & 0x7f);
3961*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_PTCR", 1, a, 0, 0, 0, 0, 0);
3962*4b8b8d74SJaiprakash Singh }
3963*4b8b8d74SJaiprakash Singh 
3964*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_PTCR(a) ody_dsuubx_core_ppu_ptcr_t
3965*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_PTCR(a) CSR_TYPE_RSL32b
3966*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_PTCR(a) "DSUUBX_CORE_PPU_PTCR"
3967*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_PTCR(a) 0x0 /* PF_BAR0 */
3968*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_PTCR(a) (a)
3969*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_PTCR(a) (a), -1, -1, -1
3970*4b8b8d74SJaiprakash Singh 
3971*4b8b8d74SJaiprakash Singh /**
3972*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_pwcr
3973*4b8b8d74SJaiprakash Singh  *
3974*4b8b8d74SJaiprakash Singh  * DSUUB Core Power Configuration Register
3975*4b8b8d74SJaiprakash Singh  * This register controls enabling and disabling of hardware control inputs to the PPU.
3976*4b8b8d74SJaiprakash Singh  *
3977*4b8b8d74SJaiprakash Singh  * Before software programs the DEVREQEN bits it must configure the PPU for static
3978*4b8b8d74SJaiprakash Singh  * transitions and ensure the requested power mode has been reached, this means that no
3979*4b8b8d74SJaiprakash Singh  * further transitions can occur, otherwise behavior is UNPREDICTABLE.
3980*4b8b8d74SJaiprakash Singh  *
3981*4b8b8d74SJaiprakash Singh  * The PWR_DEVACTIVEEN and OP_DEVACTIVEEN fields in this register control the ability of the
3982*4b8b8d74SJaiprakash Singh  * DEVACTIVE inputs to initiate power mode transitions, but not the ability to generate input edge
3983*4b8b8d74SJaiprakash Singh  * interrupt events.
3984*4b8b8d74SJaiprakash Singh  */
3985*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_pwcr {
3986*4b8b8d74SJaiprakash Singh 	uint32_t u;
3987*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_pwcr_s {
3988*4b8b8d74SJaiprakash Singh 		uint32_t devreqen                    : 1;
3989*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_8                : 8;
3990*4b8b8d74SJaiprakash Singh 		uint32_t pwr_devactiveen1            : 1;
3991*4b8b8d74SJaiprakash Singh 		uint32_t reserved_10_12              : 3;
3992*4b8b8d74SJaiprakash Singh 		uint32_t pwr_devactiveen5            : 1;
3993*4b8b8d74SJaiprakash Singh 		uint32_t reserved_14                 : 1;
3994*4b8b8d74SJaiprakash Singh 		uint32_t pwr_devactiveen7            : 1;
3995*4b8b8d74SJaiprakash Singh 		uint32_t pwr_devactiveen8            : 1;
3996*4b8b8d74SJaiprakash Singh 		uint32_t pwr_devactiveen9            : 1;
3997*4b8b8d74SJaiprakash Singh 		uint32_t pwr_devactiveen10           : 1;
3998*4b8b8d74SJaiprakash Singh 		uint32_t reserved_19_31              : 13;
3999*4b8b8d74SJaiprakash Singh 	} s;
4000*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_pwcr_s cn; */
4001*4b8b8d74SJaiprakash Singh };
4002*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_pwcr ody_dsuubx_core_ppu_pwcr_t;
4003*4b8b8d74SJaiprakash Singh 
4004*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PWCR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_PWCR(uint64_t a)4005*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PWCR(uint64_t a)
4006*4b8b8d74SJaiprakash Singh {
4007*4b8b8d74SJaiprakash Singh 	if (a <= 89)
4008*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080020ll + 0x1000000ll * ((a) & 0x7f);
4009*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_PWCR", 1, a, 0, 0, 0, 0, 0);
4010*4b8b8d74SJaiprakash Singh }
4011*4b8b8d74SJaiprakash Singh 
4012*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_PWCR(a) ody_dsuubx_core_ppu_pwcr_t
4013*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_PWCR(a) CSR_TYPE_RSL32b
4014*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_PWCR(a) "DSUUBX_CORE_PPU_PWCR"
4015*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_PWCR(a) 0x0 /* PF_BAR0 */
4016*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_PWCR(a) (a)
4017*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_PWCR(a) (a), -1, -1, -1
4018*4b8b8d74SJaiprakash Singh 
4019*4b8b8d74SJaiprakash Singh /**
4020*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_pwpr
4021*4b8b8d74SJaiprakash Singh  *
4022*4b8b8d74SJaiprakash Singh  * DSUUB Core Power Policy Register
4023*4b8b8d74SJaiprakash Singh  * This register enables software to program both power and operating mode policy. It also contains
4024*4b8b8d74SJaiprakash Singh  * related settings including the enable for dynamic transitions and the lock enable.
4025*4b8b8d74SJaiprakash Singh  *
4026*4b8b8d74SJaiprakash Singh  * This register does not reflect the current power mode value. The current power mode of the
4027*4b8b8d74SJaiprakash Singh  * domain is reflected in the Power Status Register (PPU_PWSR).
4028*4b8b8d74SJaiprakash Singh  */
4029*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_pwpr {
4030*4b8b8d74SJaiprakash Singh 	uint32_t u;
4031*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_pwpr_s {
4032*4b8b8d74SJaiprakash Singh 		uint32_t pwr_policy                  : 4;
4033*4b8b8d74SJaiprakash Singh 		uint32_t reserved_4_7                : 4;
4034*4b8b8d74SJaiprakash Singh 		uint32_t pwr_dyn_en                  : 1;
4035*4b8b8d74SJaiprakash Singh 		uint32_t reserved_9_11               : 3;
4036*4b8b8d74SJaiprakash Singh 		uint32_t lock_en                     : 1;
4037*4b8b8d74SJaiprakash Singh 		uint32_t reserved_13_31              : 19;
4038*4b8b8d74SJaiprakash Singh 	} s;
4039*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_pwpr_s cn; */
4040*4b8b8d74SJaiprakash Singh };
4041*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_pwpr ody_dsuubx_core_ppu_pwpr_t;
4042*4b8b8d74SJaiprakash Singh 
4043*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PWPR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_PWPR(uint64_t a)4044*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PWPR(uint64_t a)
4045*4b8b8d74SJaiprakash Singh {
4046*4b8b8d74SJaiprakash Singh 	if (a <= 89)
4047*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080000ll + 0x1000000ll * ((a) & 0x7f);
4048*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_PWPR", 1, a, 0, 0, 0, 0, 0);
4049*4b8b8d74SJaiprakash Singh }
4050*4b8b8d74SJaiprakash Singh 
4051*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_PWPR(a) ody_dsuubx_core_ppu_pwpr_t
4052*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_PWPR(a) CSR_TYPE_RSL32b
4053*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_PWPR(a) "DSUUBX_CORE_PPU_PWPR"
4054*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_PWPR(a) 0x0 /* PF_BAR0 */
4055*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_PWPR(a) (a)
4056*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_PWPR(a) (a), -1, -1, -1
4057*4b8b8d74SJaiprakash Singh 
4058*4b8b8d74SJaiprakash Singh /**
4059*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_pwsr
4060*4b8b8d74SJaiprakash Singh  *
4061*4b8b8d74SJaiprakash Singh  * DSUUB Core Power Status Register
4062*4b8b8d74SJaiprakash Singh  * This read-only register contains status information for the power mode, operating mode, dynamic
4063*4b8b8d74SJaiprakash Singh  * transitions, and lock feature.
4064*4b8b8d74SJaiprakash Singh  */
4065*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_pwsr {
4066*4b8b8d74SJaiprakash Singh 	uint32_t u;
4067*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_pwsr_s {
4068*4b8b8d74SJaiprakash Singh 		uint32_t pwr_status                  : 4;
4069*4b8b8d74SJaiprakash Singh 		uint32_t reserved_4_7                : 4;
4070*4b8b8d74SJaiprakash Singh 		uint32_t pwr_dyn_status              : 1;
4071*4b8b8d74SJaiprakash Singh 		uint32_t reserved_9_11               : 3;
4072*4b8b8d74SJaiprakash Singh 		uint32_t lock_status                 : 1;
4073*4b8b8d74SJaiprakash Singh 		uint32_t reserved_13_31              : 19;
4074*4b8b8d74SJaiprakash Singh 	} s;
4075*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_pwsr_s cn; */
4076*4b8b8d74SJaiprakash Singh };
4077*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_pwsr ody_dsuubx_core_ppu_pwsr_t;
4078*4b8b8d74SJaiprakash Singh 
4079*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PWSR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_PWSR(uint64_t a)4080*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_PWSR(uint64_t a)
4081*4b8b8d74SJaiprakash Singh {
4082*4b8b8d74SJaiprakash Singh 	if (a <= 89)
4083*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080008ll + 0x1000000ll * ((a) & 0x7f);
4084*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_PWSR", 1, a, 0, 0, 0, 0, 0);
4085*4b8b8d74SJaiprakash Singh }
4086*4b8b8d74SJaiprakash Singh 
4087*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_PWSR(a) ody_dsuubx_core_ppu_pwsr_t
4088*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_PWSR(a) CSR_TYPE_RSL32b
4089*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_PWSR(a) "DSUUBX_CORE_PPU_PWSR"
4090*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_PWSR(a) 0x0 /* PF_BAR0 */
4091*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_PWSR(a) (a)
4092*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_PWSR(a) (a), -1, -1, -1
4093*4b8b8d74SJaiprakash Singh 
4094*4b8b8d74SJaiprakash Singh /**
4095*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_stsr
4096*4b8b8d74SJaiprakash Singh  *
4097*4b8b8d74SJaiprakash Singh  * DSUUB Core Stored Status Register
4098*4b8b8d74SJaiprakash Singh  * This register is reserved for P-Channel PPUs.
4099*4b8b8d74SJaiprakash Singh  */
4100*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_stsr {
4101*4b8b8d74SJaiprakash Singh 	uint32_t u;
4102*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_stsr_s {
4103*4b8b8d74SJaiprakash Singh 		uint32_t stored_devdeny              : 8;
4104*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
4105*4b8b8d74SJaiprakash Singh 	} s;
4106*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_stsr_s cn; */
4107*4b8b8d74SJaiprakash Singh };
4108*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_stsr ody_dsuubx_core_ppu_stsr_t;
4109*4b8b8d74SJaiprakash Singh 
4110*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_STSR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_STSR(uint64_t a)4111*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_STSR(uint64_t a)
4112*4b8b8d74SJaiprakash Singh {
4113*4b8b8d74SJaiprakash Singh 	if (a <= 89)
4114*4b8b8d74SJaiprakash Singh 		return 0x87e2ef080018ll + 0x1000000ll * ((a) & 0x7f);
4115*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_STSR", 1, a, 0, 0, 0, 0, 0);
4116*4b8b8d74SJaiprakash Singh }
4117*4b8b8d74SJaiprakash Singh 
4118*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_STSR(a) ody_dsuubx_core_ppu_stsr_t
4119*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_STSR(a) CSR_TYPE_RSL32b
4120*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_STSR(a) "DSUUBX_CORE_PPU_STSR"
4121*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_STSR(a) 0x0 /* PF_BAR0 */
4122*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_STSR(a) (a)
4123*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_STSR(a) (a), -1, -1, -1
4124*4b8b8d74SJaiprakash Singh 
4125*4b8b8d74SJaiprakash Singh /**
4126*4b8b8d74SJaiprakash Singh  * Register (RSL32b) dsuub#_core_ppu_unlk
4127*4b8b8d74SJaiprakash Singh  *
4128*4b8b8d74SJaiprakash Singh  * DSUUB Core Unlock Register
4129*4b8b8d74SJaiprakash Singh  * This register allows software to unlock the PPU from a locked power mode.
4130*4b8b8d74SJaiprakash Singh  */
4131*4b8b8d74SJaiprakash Singh union ody_dsuubx_core_ppu_unlk {
4132*4b8b8d74SJaiprakash Singh 	uint32_t u;
4133*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_core_ppu_unlk_s {
4134*4b8b8d74SJaiprakash Singh 		uint32_t unlock                      : 1;
4135*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_31               : 31;
4136*4b8b8d74SJaiprakash Singh 	} s;
4137*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_core_ppu_unlk_s cn; */
4138*4b8b8d74SJaiprakash Singh };
4139*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_core_ppu_unlk ody_dsuubx_core_ppu_unlk_t;
4140*4b8b8d74SJaiprakash Singh 
4141*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_UNLK(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CORE_PPU_UNLK(uint64_t a)4142*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CORE_PPU_UNLK(uint64_t a)
4143*4b8b8d74SJaiprakash Singh {
4144*4b8b8d74SJaiprakash Singh 	if (a <= 89)
4145*4b8b8d74SJaiprakash Singh 		return 0x87e2ef08001cll + 0x1000000ll * ((a) & 0x7f);
4146*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CORE_PPU_UNLK", 1, a, 0, 0, 0, 0, 0);
4147*4b8b8d74SJaiprakash Singh }
4148*4b8b8d74SJaiprakash Singh 
4149*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CORE_PPU_UNLK(a) ody_dsuubx_core_ppu_unlk_t
4150*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CORE_PPU_UNLK(a) CSR_TYPE_RSL32b
4151*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CORE_PPU_UNLK(a) "DSUUBX_CORE_PPU_UNLK"
4152*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CORE_PPU_UNLK(a) 0x0 /* PF_BAR0 */
4153*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CORE_PPU_UNLK(a) (a)
4154*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CORE_PPU_UNLK(a) (a), -1, -1, -1
4155*4b8b8d74SJaiprakash Singh 
4156*4b8b8d74SJaiprakash Singh /**
4157*4b8b8d74SJaiprakash Singh  * Register (RSL) dsuub#_cpumpmmcr_el3
4158*4b8b8d74SJaiprakash Singh  *
4159*4b8b8d74SJaiprakash Singh  * Dsuub MPMM Control Register
4160*4b8b8d74SJaiprakash Singh  * This register controls whether MPMM is enabled and selects the currently active MPMM "gear."
4161*4b8b8d74SJaiprakash Singh  */
4162*4b8b8d74SJaiprakash Singh union ody_dsuubx_cpumpmmcr_el3 {
4163*4b8b8d74SJaiprakash Singh 	uint64_t u;
4164*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cpumpmmcr_el3_s {
4165*4b8b8d74SJaiprakash Singh 		uint64_t mpmm_en                     : 1;
4166*4b8b8d74SJaiprakash Singh 		uint64_t mpmm_gear                   : 2;
4167*4b8b8d74SJaiprakash Singh 		uint64_t reserved_3_63               : 61;
4168*4b8b8d74SJaiprakash Singh 	} s;
4169*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cpumpmmcr_el3_s cn; */
4170*4b8b8d74SJaiprakash Singh };
4171*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cpumpmmcr_el3 ody_dsuubx_cpumpmmcr_el3_t;
4172*4b8b8d74SJaiprakash Singh 
4173*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CPUMPMMCR_EL3(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CPUMPMMCR_EL3(uint64_t a)4174*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CPUMPMMCR_EL3(uint64_t a)
4175*4b8b8d74SJaiprakash Singh {
4176*4b8b8d74SJaiprakash Singh 	if (a <= 89)
4177*4b8b8d74SJaiprakash Singh 		return 0x87e2ef0b0010ll + 0x1000000ll * ((a) & 0x7f);
4178*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CPUMPMMCR_EL3", 1, a, 0, 0, 0, 0, 0);
4179*4b8b8d74SJaiprakash Singh }
4180*4b8b8d74SJaiprakash Singh 
4181*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CPUMPMMCR_EL3(a) ody_dsuubx_cpumpmmcr_el3_t
4182*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CPUMPMMCR_EL3(a) CSR_TYPE_RSL
4183*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CPUMPMMCR_EL3(a) "DSUUBX_CPUMPMMCR_EL3"
4184*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CPUMPMMCR_EL3(a) 0x0 /* PF_BAR0 */
4185*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CPUMPMMCR_EL3(a) (a)
4186*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CPUMPMMCR_EL3(a) (a), -1, -1, -1
4187*4b8b8d74SJaiprakash Singh 
4188*4b8b8d74SJaiprakash Singh /**
4189*4b8b8d74SJaiprakash Singh  * Register (RSL) dsuub#_cpuppmcr_el3
4190*4b8b8d74SJaiprakash Singh  *
4191*4b8b8d74SJaiprakash Singh  * Dsuub Global PPM Configuration Register
4192*4b8b8d74SJaiprakash Singh  * This register controls global PPM features and allows discovery of the PPM implementation details.
4193*4b8b8d74SJaiprakash Singh  */
4194*4b8b8d74SJaiprakash Singh union ody_dsuubx_cpuppmcr_el3 {
4195*4b8b8d74SJaiprakash Singh 	uint64_t u;
4196*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cpuppmcr_el3_s {
4197*4b8b8d74SJaiprakash Singh 		uint64_t mpmmpinctl                  : 1;
4198*4b8b8d74SJaiprakash Singh 		uint64_t pdppinctl                   : 1;
4199*4b8b8d74SJaiprakash Singh 		uint64_t reserved_2_7                : 6;
4200*4b8b8d74SJaiprakash Singh 		uint64_t mpmm_gears                  : 3;
4201*4b8b8d74SJaiprakash Singh 		uint64_t reserved_11_15              : 5;
4202*4b8b8d74SJaiprakash Singh 		uint64_t pdp_setps                   : 2;
4203*4b8b8d74SJaiprakash Singh 		uint64_t pdp_extms                   : 1;
4204*4b8b8d74SJaiprakash Singh 		uint64_t reserved_19_63              : 45;
4205*4b8b8d74SJaiprakash Singh 	} s;
4206*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cpuppmcr_el3_s cn; */
4207*4b8b8d74SJaiprakash Singh };
4208*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cpuppmcr_el3 ody_dsuubx_cpuppmcr_el3_t;
4209*4b8b8d74SJaiprakash Singh 
4210*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CPUPPMCR_EL3(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CPUPPMCR_EL3(uint64_t a)4211*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CPUPPMCR_EL3(uint64_t a)
4212*4b8b8d74SJaiprakash Singh {
4213*4b8b8d74SJaiprakash Singh 	if (a <= 89)
4214*4b8b8d74SJaiprakash Singh 		return 0x87e2ef0b0000ll + 0x1000000ll * ((a) & 0x7f);
4215*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CPUPPMCR_EL3", 1, a, 0, 0, 0, 0, 0);
4216*4b8b8d74SJaiprakash Singh }
4217*4b8b8d74SJaiprakash Singh 
4218*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CPUPPMCR_EL3(a) ody_dsuubx_cpuppmcr_el3_t
4219*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CPUPPMCR_EL3(a) CSR_TYPE_RSL
4220*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CPUPPMCR_EL3(a) "DSUUBX_CPUPPMCR_EL3"
4221*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CPUPPMCR_EL3(a) 0x0 /* PF_BAR0 */
4222*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CPUPPMCR_EL3(a) (a)
4223*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CPUPPMCR_EL3(a) (a), -1, -1, -1
4224*4b8b8d74SJaiprakash Singh 
4225*4b8b8d74SJaiprakash Singh /**
4226*4b8b8d74SJaiprakash Singh  * Register (RSL) dsuub#_cpuppmpdpcr_el1
4227*4b8b8d74SJaiprakash Singh  *
4228*4b8b8d74SJaiprakash Singh  * Dsuub PDP Control Register
4229*4b8b8d74SJaiprakash Singh  * This register controls the aggressiveness of the PDP feature. The core and external memory
4230*4b8b8d74SJaiprakash Singh  * system reduction features may be independently controlled.
4231*4b8b8d74SJaiprakash Singh  */
4232*4b8b8d74SJaiprakash Singh union ody_dsuubx_cpuppmpdpcr_el1 {
4233*4b8b8d74SJaiprakash Singh 	uint64_t u;
4234*4b8b8d74SJaiprakash Singh 	struct ody_dsuubx_cpuppmpdpcr_el1_s {
4235*4b8b8d74SJaiprakash Singh 		uint64_t pdp_core_set                : 2;
4236*4b8b8d74SJaiprakash Singh 		uint64_t reserved_2_31               : 30;
4237*4b8b8d74SJaiprakash Singh 		uint64_t pdp_extms_set               : 2;
4238*4b8b8d74SJaiprakash Singh 		uint64_t reserved_34_63              : 30;
4239*4b8b8d74SJaiprakash Singh 	} s;
4240*4b8b8d74SJaiprakash Singh 	/* struct ody_dsuubx_cpuppmpdpcr_el1_s cn; */
4241*4b8b8d74SJaiprakash Singh };
4242*4b8b8d74SJaiprakash Singh typedef union ody_dsuubx_cpuppmpdpcr_el1 ody_dsuubx_cpuppmpdpcr_el1_t;
4243*4b8b8d74SJaiprakash Singh 
4244*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CPUPPMPDPCR_EL1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_DSUUBX_CPUPPMPDPCR_EL1(uint64_t a)4245*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_DSUUBX_CPUPPMPDPCR_EL1(uint64_t a)
4246*4b8b8d74SJaiprakash Singh {
4247*4b8b8d74SJaiprakash Singh 	if (a <= 89)
4248*4b8b8d74SJaiprakash Singh 		return 0x87e2ef0b0020ll + 0x1000000ll * ((a) & 0x7f);
4249*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("DSUUBX_CPUPPMPDPCR_EL1", 1, a, 0, 0, 0, 0, 0);
4250*4b8b8d74SJaiprakash Singh }
4251*4b8b8d74SJaiprakash Singh 
4252*4b8b8d74SJaiprakash Singh #define typedef_ODY_DSUUBX_CPUPPMPDPCR_EL1(a) ody_dsuubx_cpuppmpdpcr_el1_t
4253*4b8b8d74SJaiprakash Singh #define bustype_ODY_DSUUBX_CPUPPMPDPCR_EL1(a) CSR_TYPE_RSL
4254*4b8b8d74SJaiprakash Singh #define basename_ODY_DSUUBX_CPUPPMPDPCR_EL1(a) "DSUUBX_CPUPPMPDPCR_EL1"
4255*4b8b8d74SJaiprakash Singh #define device_bar_ODY_DSUUBX_CPUPPMPDPCR_EL1(a) 0x0 /* PF_BAR0 */
4256*4b8b8d74SJaiprakash Singh #define busnum_ODY_DSUUBX_CPUPPMPDPCR_EL1(a) (a)
4257*4b8b8d74SJaiprakash Singh #define arguments_ODY_DSUUBX_CPUPPMPDPCR_EL1(a) (a), -1, -1, -1
4258*4b8b8d74SJaiprakash Singh 
4259*4b8b8d74SJaiprakash Singh #endif /* __ODY_CSRS_DSUUB_H__ */
4260