xref: /rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-apa.h (revision 12d80bbbf6031228bdd910eccb03bb185e8df527)
1*4b8b8d74SJaiprakash Singh #ifndef __ODY_CSRS_APA_H__
2*4b8b8d74SJaiprakash Singh #define __ODY_CSRS_APA_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  * APA.
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 apa_bar_e
24*4b8b8d74SJaiprakash Singh  *
25*4b8b8d74SJaiprakash Singh  * APA Base Address Register Enumeration
26*4b8b8d74SJaiprakash Singh  * Enumerates the base address registers.
27*4b8b8d74SJaiprakash Singh  */
28*4b8b8d74SJaiprakash Singh #define ODY_APA_BAR_E_APAX_PF_BAR0(a) (0x87e349000000ll + 0x1000000ll * (a))
29*4b8b8d74SJaiprakash Singh #define ODY_APA_BAR_E_APAX_PF_BAR0_SIZE 0x100000ull
30*4b8b8d74SJaiprakash Singh #define ODY_APA_BAR_E_APAX_PF_BAR4(a) (0x87e349100000ll + 0x1000000ll * (a))
31*4b8b8d74SJaiprakash Singh #define ODY_APA_BAR_E_APAX_PF_BAR4_SIZE 0x100000ull
32*4b8b8d74SJaiprakash Singh 
33*4b8b8d74SJaiprakash Singh /**
34*4b8b8d74SJaiprakash Singh  * Enumeration apa_int_vec_e
35*4b8b8d74SJaiprakash Singh  *
36*4b8b8d74SJaiprakash Singh  * APA MSI-X Vector Enumeration
37*4b8b8d74SJaiprakash Singh  * Enumerates the MSI-X interrupt vectors.
38*4b8b8d74SJaiprakash Singh  */
39*4b8b8d74SJaiprakash Singh #define ODY_APA_INT_VEC_E_APA_APAT_INT (5)
40*4b8b8d74SJaiprakash Singh #define ODY_APA_INT_VEC_E_APA_CLUSTER_PPU_INT_CLEAR (1)
41*4b8b8d74SJaiprakash Singh #define ODY_APA_INT_VEC_E_APA_CLUSTER_PPU_INT_SET (0)
42*4b8b8d74SJaiprakash Singh #define ODY_APA_INT_VEC_E_APA_CORE_ECC_INT (7)
43*4b8b8d74SJaiprakash Singh #define ODY_APA_INT_VEC_E_APA_CORE_PPU_INT_CLEAR (3)
44*4b8b8d74SJaiprakash Singh #define ODY_APA_INT_VEC_E_APA_CORE_PPU_INT_SET (2)
45*4b8b8d74SJaiprakash Singh #define ODY_APA_INT_VEC_E_APA_ECC_INT (6)
46*4b8b8d74SJaiprakash Singh #define ODY_APA_INT_VEC_E_APA_WDOG_INT (4)
47*4b8b8d74SJaiprakash Singh 
48*4b8b8d74SJaiprakash Singh /**
49*4b8b8d74SJaiprakash Singh  * Enumeration apa_pll_sel_e
50*4b8b8d74SJaiprakash Singh  *
51*4b8b8d74SJaiprakash Singh  * APA PLL Selection Enumeration
52*4b8b8d74SJaiprakash Singh  * Enumerates the values of APA_PLL[NEXT_PLL_SEL] and APA_PLL[CUR_PLL_SEL].
53*4b8b8d74SJaiprakash Singh  */
54*4b8b8d74SJaiprakash Singh #define ODY_APA_PLL_SEL_E_ARO (6)
55*4b8b8d74SJaiprakash Singh #define ODY_APA_PLL_SEL_E_BYPASS (2)
56*4b8b8d74SJaiprakash Singh #define ODY_APA_PLL_SEL_E_OFF (3)
57*4b8b8d74SJaiprakash Singh #define ODY_APA_PLL_SEL_E_PLL0 (4)
58*4b8b8d74SJaiprakash Singh #define ODY_APA_PLL_SEL_E_PLL1 (5)
59*4b8b8d74SJaiprakash Singh #define ODY_APA_PLL_SEL_E_REFCLK (1)
60*4b8b8d74SJaiprakash Singh #define ODY_APA_PLL_SEL_E_RSVD (7)
61*4b8b8d74SJaiprakash Singh #define ODY_APA_PLL_SEL_E_RUNT (0)
62*4b8b8d74SJaiprakash Singh 
63*4b8b8d74SJaiprakash Singh /**
64*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_apat_int_ena_w1c
65*4b8b8d74SJaiprakash Singh  *
66*4b8b8d74SJaiprakash Singh  * APA APAT Interrupt Enable Clear Registers
67*4b8b8d74SJaiprakash Singh  * This register clears interrupt enable bits.
68*4b8b8d74SJaiprakash Singh  */
69*4b8b8d74SJaiprakash Singh union ody_apax_apat_int_ena_w1c {
70*4b8b8d74SJaiprakash Singh 	uint64_t u;
71*4b8b8d74SJaiprakash Singh 	struct ody_apax_apat_int_ena_w1c_s {
72*4b8b8d74SJaiprakash Singh 		uint64_t apat                        : 1;
73*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1_63               : 63;
74*4b8b8d74SJaiprakash Singh 	} s;
75*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_apat_int_ena_w1c_s cn; */
76*4b8b8d74SJaiprakash Singh };
77*4b8b8d74SJaiprakash Singh typedef union ody_apax_apat_int_ena_w1c ody_apax_apat_int_ena_w1c_t;
78*4b8b8d74SJaiprakash Singh 
79*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_INT_ENA_W1C(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_APAT_INT_ENA_W1C(uint64_t a)80*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_INT_ENA_W1C(uint64_t a)
81*4b8b8d74SJaiprakash Singh {
82*4b8b8d74SJaiprakash Singh 	if (a <= 89)
83*4b8b8d74SJaiprakash Singh 		return 0x87e349001e10ll + 0x1000000ll * ((a) & 0x7f);
84*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_APAT_INT_ENA_W1C", 1, a, 0, 0, 0, 0, 0);
85*4b8b8d74SJaiprakash Singh }
86*4b8b8d74SJaiprakash Singh 
87*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_APAT_INT_ENA_W1C(a) ody_apax_apat_int_ena_w1c_t
88*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_APAT_INT_ENA_W1C(a) CSR_TYPE_RSL
89*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_APAT_INT_ENA_W1C(a) "APAX_APAT_INT_ENA_W1C"
90*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_APAT_INT_ENA_W1C(a) 0x0 /* PF_BAR0 */
91*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_APAT_INT_ENA_W1C(a) (a)
92*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_APAT_INT_ENA_W1C(a) (a), -1, -1, -1
93*4b8b8d74SJaiprakash Singh 
94*4b8b8d74SJaiprakash Singh /**
95*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_apat_int_ena_w1s
96*4b8b8d74SJaiprakash Singh  *
97*4b8b8d74SJaiprakash Singh  * APA APAT Interrupt Enable Set Registers
98*4b8b8d74SJaiprakash Singh  * This register sets interrupt enable bits.
99*4b8b8d74SJaiprakash Singh  */
100*4b8b8d74SJaiprakash Singh union ody_apax_apat_int_ena_w1s {
101*4b8b8d74SJaiprakash Singh 	uint64_t u;
102*4b8b8d74SJaiprakash Singh 	struct ody_apax_apat_int_ena_w1s_s {
103*4b8b8d74SJaiprakash Singh 		uint64_t apat                        : 1;
104*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1_63               : 63;
105*4b8b8d74SJaiprakash Singh 	} s;
106*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_apat_int_ena_w1s_s cn; */
107*4b8b8d74SJaiprakash Singh };
108*4b8b8d74SJaiprakash Singh typedef union ody_apax_apat_int_ena_w1s ody_apax_apat_int_ena_w1s_t;
109*4b8b8d74SJaiprakash Singh 
110*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_INT_ENA_W1S(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_APAT_INT_ENA_W1S(uint64_t a)111*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_INT_ENA_W1S(uint64_t a)
112*4b8b8d74SJaiprakash Singh {
113*4b8b8d74SJaiprakash Singh 	if (a <= 89)
114*4b8b8d74SJaiprakash Singh 		return 0x87e349001e18ll + 0x1000000ll * ((a) & 0x7f);
115*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_APAT_INT_ENA_W1S", 1, a, 0, 0, 0, 0, 0);
116*4b8b8d74SJaiprakash Singh }
117*4b8b8d74SJaiprakash Singh 
118*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_APAT_INT_ENA_W1S(a) ody_apax_apat_int_ena_w1s_t
119*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_APAT_INT_ENA_W1S(a) CSR_TYPE_RSL
120*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_APAT_INT_ENA_W1S(a) "APAX_APAT_INT_ENA_W1S"
121*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_APAT_INT_ENA_W1S(a) 0x0 /* PF_BAR0 */
122*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_APAT_INT_ENA_W1S(a) (a)
123*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_APAT_INT_ENA_W1S(a) (a), -1, -1, -1
124*4b8b8d74SJaiprakash Singh 
125*4b8b8d74SJaiprakash Singh /**
126*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_apat_int_w1c
127*4b8b8d74SJaiprakash Singh  *
128*4b8b8d74SJaiprakash Singh  * APA APAT Interrupt Register
129*4b8b8d74SJaiprakash Singh  * This register is reports interrupt status.
130*4b8b8d74SJaiprakash Singh  */
131*4b8b8d74SJaiprakash Singh union ody_apax_apat_int_w1c {
132*4b8b8d74SJaiprakash Singh 	uint64_t u;
133*4b8b8d74SJaiprakash Singh 	struct ody_apax_apat_int_w1c_s {
134*4b8b8d74SJaiprakash Singh 		uint64_t apat                        : 1;
135*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1_63               : 63;
136*4b8b8d74SJaiprakash Singh 	} s;
137*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_apat_int_w1c_s cn; */
138*4b8b8d74SJaiprakash Singh };
139*4b8b8d74SJaiprakash Singh typedef union ody_apax_apat_int_w1c ody_apax_apat_int_w1c_t;
140*4b8b8d74SJaiprakash Singh 
141*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_INT_W1C(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_APAT_INT_W1C(uint64_t a)142*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_INT_W1C(uint64_t a)
143*4b8b8d74SJaiprakash Singh {
144*4b8b8d74SJaiprakash Singh 	if (a <= 89)
145*4b8b8d74SJaiprakash Singh 		return 0x87e349001e00ll + 0x1000000ll * ((a) & 0x7f);
146*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_APAT_INT_W1C", 1, a, 0, 0, 0, 0, 0);
147*4b8b8d74SJaiprakash Singh }
148*4b8b8d74SJaiprakash Singh 
149*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_APAT_INT_W1C(a) ody_apax_apat_int_w1c_t
150*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_APAT_INT_W1C(a) CSR_TYPE_RSL
151*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_APAT_INT_W1C(a) "APAX_APAT_INT_W1C"
152*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_APAT_INT_W1C(a) 0x0 /* PF_BAR0 */
153*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_APAT_INT_W1C(a) (a)
154*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_APAT_INT_W1C(a) (a), -1, -1, -1
155*4b8b8d74SJaiprakash Singh 
156*4b8b8d74SJaiprakash Singh /**
157*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_apat_int_w1s
158*4b8b8d74SJaiprakash Singh  *
159*4b8b8d74SJaiprakash Singh  * APA APAT Interrupt Set Registers
160*4b8b8d74SJaiprakash Singh  * This register sets interrupt bits.
161*4b8b8d74SJaiprakash Singh  */
162*4b8b8d74SJaiprakash Singh union ody_apax_apat_int_w1s {
163*4b8b8d74SJaiprakash Singh 	uint64_t u;
164*4b8b8d74SJaiprakash Singh 	struct ody_apax_apat_int_w1s_s {
165*4b8b8d74SJaiprakash Singh 		uint64_t apat                        : 1;
166*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1_63               : 63;
167*4b8b8d74SJaiprakash Singh 	} s;
168*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_apat_int_w1s_s cn; */
169*4b8b8d74SJaiprakash Singh };
170*4b8b8d74SJaiprakash Singh typedef union ody_apax_apat_int_w1s ody_apax_apat_int_w1s_t;
171*4b8b8d74SJaiprakash Singh 
172*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_INT_W1S(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_APAT_INT_W1S(uint64_t a)173*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_INT_W1S(uint64_t a)
174*4b8b8d74SJaiprakash Singh {
175*4b8b8d74SJaiprakash Singh 	if (a <= 89)
176*4b8b8d74SJaiprakash Singh 		return 0x87e349001e08ll + 0x1000000ll * ((a) & 0x7f);
177*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_APAT_INT_W1S", 1, a, 0, 0, 0, 0, 0);
178*4b8b8d74SJaiprakash Singh }
179*4b8b8d74SJaiprakash Singh 
180*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_APAT_INT_W1S(a) ody_apax_apat_int_w1s_t
181*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_APAT_INT_W1S(a) CSR_TYPE_RSL
182*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_APAT_INT_W1S(a) "APAX_APAT_INT_W1S"
183*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_APAT_INT_W1S(a) 0x0 /* PF_BAR0 */
184*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_APAT_INT_W1S(a) (a)
185*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_APAT_INT_W1S(a) (a), -1, -1, -1
186*4b8b8d74SJaiprakash Singh 
187*4b8b8d74SJaiprakash Singh /**
188*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_apat_rdat#
189*4b8b8d74SJaiprakash Singh  *
190*4b8b8d74SJaiprakash Singh  * APA APAT Read Data Register
191*4b8b8d74SJaiprakash Singh  */
192*4b8b8d74SJaiprakash Singh union ody_apax_apat_rdatx {
193*4b8b8d74SJaiprakash Singh 	uint64_t u;
194*4b8b8d74SJaiprakash Singh 	struct ody_apax_apat_rdatx_s {
195*4b8b8d74SJaiprakash Singh 		uint64_t dat                         : 64;
196*4b8b8d74SJaiprakash Singh 	} s;
197*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_apat_rdatx_s cn; */
198*4b8b8d74SJaiprakash Singh };
199*4b8b8d74SJaiprakash Singh typedef union ody_apax_apat_rdatx ody_apax_apat_rdatx_t;
200*4b8b8d74SJaiprakash Singh 
201*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_RDATX(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_APAX_APAT_RDATX(uint64_t a,uint64_t b)202*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_RDATX(uint64_t a, uint64_t b)
203*4b8b8d74SJaiprakash Singh {
204*4b8b8d74SJaiprakash Singh 	if ((a <= 89) && (b <= 3))
205*4b8b8d74SJaiprakash Singh 		return 0x87e349001240ll + 0x1000000ll * ((a) & 0x7f) + 8ll * ((b) & 0x3);
206*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_APAT_RDATX", 2, a, b, 0, 0, 0, 0);
207*4b8b8d74SJaiprakash Singh }
208*4b8b8d74SJaiprakash Singh 
209*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_APAT_RDATX(a, b) ody_apax_apat_rdatx_t
210*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_APAT_RDATX(a, b) CSR_TYPE_RSL
211*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_APAT_RDATX(a, b) "APAX_APAT_RDATX"
212*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_APAT_RDATX(a, b) 0x0 /* PF_BAR0 */
213*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_APAT_RDATX(a, b) (a)
214*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_APAT_RDATX(a, b) (a), (b), -1, -1
215*4b8b8d74SJaiprakash Singh 
216*4b8b8d74SJaiprakash Singh /**
217*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_apat_req
218*4b8b8d74SJaiprakash Singh  *
219*4b8b8d74SJaiprakash Singh  * APA APAT Request Register
220*4b8b8d74SJaiprakash Singh  * This register records information about an APAT trapped request.  See CHI-D
221*4b8b8d74SJaiprakash Singh  * specifications for more information.
222*4b8b8d74SJaiprakash Singh  */
223*4b8b8d74SJaiprakash Singh union ody_apax_apat_req {
224*4b8b8d74SJaiprakash Singh 	uint64_t u;
225*4b8b8d74SJaiprakash Singh 	struct ody_apax_apat_req_s {
226*4b8b8d74SJaiprakash Singh 		uint64_t txnid                       : 12;
227*4b8b8d74SJaiprakash Singh 		uint64_t size                        : 3;
228*4b8b8d74SJaiprakash Singh 		uint64_t tracetag                    : 1;
229*4b8b8d74SJaiprakash Singh 		uint64_t opcode                      : 7;
230*4b8b8d74SJaiprakash Singh 		uint64_t endian                      : 1;
231*4b8b8d74SJaiprakash Singh 		uint64_t device                      : 1;
232*4b8b8d74SJaiprakash Singh 		uint64_t reserved_25_55              : 31;
233*4b8b8d74SJaiprakash Singh 		uint64_t index                       : 5;
234*4b8b8d74SJaiprakash Singh 		uint64_t reserved_61                 : 1;
235*4b8b8d74SJaiprakash Singh 		uint64_t has_apat_ext                : 1;
236*4b8b8d74SJaiprakash Singh 		uint64_t valid                       : 1;
237*4b8b8d74SJaiprakash Singh 	} s;
238*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_apat_req_s cn; */
239*4b8b8d74SJaiprakash Singh };
240*4b8b8d74SJaiprakash Singh typedef union ody_apax_apat_req ody_apax_apat_req_t;
241*4b8b8d74SJaiprakash Singh 
242*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_REQ(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_APAT_REQ(uint64_t a)243*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_REQ(uint64_t a)
244*4b8b8d74SJaiprakash Singh {
245*4b8b8d74SJaiprakash Singh 	if (a <= 89)
246*4b8b8d74SJaiprakash Singh 		return 0x87e349001200ll + 0x1000000ll * ((a) & 0x7f);
247*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_APAT_REQ", 1, a, 0, 0, 0, 0, 0);
248*4b8b8d74SJaiprakash Singh }
249*4b8b8d74SJaiprakash Singh 
250*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_APAT_REQ(a) ody_apax_apat_req_t
251*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_APAT_REQ(a) CSR_TYPE_RSL
252*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_APAT_REQ(a) "APAX_APAT_REQ"
253*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_APAT_REQ(a) 0x0 /* PF_BAR0 */
254*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_APAT_REQ(a) (a)
255*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_APAT_REQ(a) (a), -1, -1, -1
256*4b8b8d74SJaiprakash Singh 
257*4b8b8d74SJaiprakash Singh /**
258*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_apat_req_addr
259*4b8b8d74SJaiprakash Singh  *
260*4b8b8d74SJaiprakash Singh  * APA APAT Request Address Register
261*4b8b8d74SJaiprakash Singh  * This register records the physical address of the trapped request.
262*4b8b8d74SJaiprakash Singh  */
263*4b8b8d74SJaiprakash Singh union ody_apax_apat_req_addr {
264*4b8b8d74SJaiprakash Singh 	uint64_t u;
265*4b8b8d74SJaiprakash Singh 	struct ody_apax_apat_req_addr_s {
266*4b8b8d74SJaiprakash Singh 		uint64_t addr                        : 48;
267*4b8b8d74SJaiprakash Singh 		uint64_t reserved_48_61              : 14;
268*4b8b8d74SJaiprakash Singh 		uint64_t ns                          : 1;
269*4b8b8d74SJaiprakash Singh 		uint64_t reserved_63                 : 1;
270*4b8b8d74SJaiprakash Singh 	} s;
271*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_apat_req_addr_s cn; */
272*4b8b8d74SJaiprakash Singh };
273*4b8b8d74SJaiprakash Singh typedef union ody_apax_apat_req_addr ody_apax_apat_req_addr_t;
274*4b8b8d74SJaiprakash Singh 
275*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_REQ_ADDR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_APAT_REQ_ADDR(uint64_t a)276*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_REQ_ADDR(uint64_t a)
277*4b8b8d74SJaiprakash Singh {
278*4b8b8d74SJaiprakash Singh 	if (a <= 89)
279*4b8b8d74SJaiprakash Singh 		return 0x87e349001208ll + 0x1000000ll * ((a) & 0x7f);
280*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_APAT_REQ_ADDR", 1, a, 0, 0, 0, 0, 0);
281*4b8b8d74SJaiprakash Singh }
282*4b8b8d74SJaiprakash Singh 
283*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_APAT_REQ_ADDR(a) ody_apax_apat_req_addr_t
284*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_APAT_REQ_ADDR(a) CSR_TYPE_RSL
285*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_APAT_REQ_ADDR(a) "APAX_APAT_REQ_ADDR"
286*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_APAT_REQ_ADDR(a) 0x0 /* PF_BAR0 */
287*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_APAT_REQ_ADDR(a) (a)
288*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_APAT_REQ_ADDR(a) (a), -1, -1, -1
289*4b8b8d74SJaiprakash Singh 
290*4b8b8d74SJaiprakash Singh /**
291*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_apat_rsp
292*4b8b8d74SJaiprakash Singh  *
293*4b8b8d74SJaiprakash Singh  * APA APAT Response Register
294*4b8b8d74SJaiprakash Singh  */
295*4b8b8d74SJaiprakash Singh union ody_apax_apat_rsp {
296*4b8b8d74SJaiprakash Singh 	uint64_t u;
297*4b8b8d74SJaiprakash Singh 	struct ody_apax_apat_rsp_s {
298*4b8b8d74SJaiprakash Singh 		uint64_t resperr                     : 2;
299*4b8b8d74SJaiprakash Singh 		uint64_t reserved_2_63               : 62;
300*4b8b8d74SJaiprakash Singh 	} s;
301*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_apat_rsp_s cn; */
302*4b8b8d74SJaiprakash Singh };
303*4b8b8d74SJaiprakash Singh typedef union ody_apax_apat_rsp ody_apax_apat_rsp_t;
304*4b8b8d74SJaiprakash Singh 
305*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_RSP(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_APAT_RSP(uint64_t a)306*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_RSP(uint64_t a)
307*4b8b8d74SJaiprakash Singh {
308*4b8b8d74SJaiprakash Singh 	if (a <= 89)
309*4b8b8d74SJaiprakash Singh 		return 0x87e349001210ll + 0x1000000ll * ((a) & 0x7f);
310*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_APAT_RSP", 1, a, 0, 0, 0, 0, 0);
311*4b8b8d74SJaiprakash Singh }
312*4b8b8d74SJaiprakash Singh 
313*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_APAT_RSP(a) ody_apax_apat_rsp_t
314*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_APAT_RSP(a) CSR_TYPE_RSL
315*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_APAT_RSP(a) "APAX_APAT_RSP"
316*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_APAT_RSP(a) 0x0 /* PF_BAR0 */
317*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_APAT_RSP(a) (a)
318*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_APAT_RSP(a) (a), -1, -1, -1
319*4b8b8d74SJaiprakash Singh 
320*4b8b8d74SJaiprakash Singh /**
321*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_apat_vec#_addr
322*4b8b8d74SJaiprakash Singh  *
323*4b8b8d74SJaiprakash Singh  * APA APAT Vector Address Register
324*4b8b8d74SJaiprakash Singh  * This register configures the address trapper.
325*4b8b8d74SJaiprakash Singh  */
326*4b8b8d74SJaiprakash Singh union ody_apax_apat_vecx_addr {
327*4b8b8d74SJaiprakash Singh 	uint64_t u;
328*4b8b8d74SJaiprakash Singh 	struct ody_apax_apat_vecx_addr_s {
329*4b8b8d74SJaiprakash Singh 		uint64_t addr                        : 48;
330*4b8b8d74SJaiprakash Singh 		uint64_t reserved_48_61              : 14;
331*4b8b8d74SJaiprakash Singh 		uint64_t ns                          : 1;
332*4b8b8d74SJaiprakash Singh 		uint64_t valid                       : 1;
333*4b8b8d74SJaiprakash Singh 	} s;
334*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_apat_vecx_addr_s cn; */
335*4b8b8d74SJaiprakash Singh };
336*4b8b8d74SJaiprakash Singh typedef union ody_apax_apat_vecx_addr ody_apax_apat_vecx_addr_t;
337*4b8b8d74SJaiprakash Singh 
338*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_VECX_ADDR(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_APAX_APAT_VECX_ADDR(uint64_t a,uint64_t b)339*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_VECX_ADDR(uint64_t a, uint64_t b)
340*4b8b8d74SJaiprakash Singh {
341*4b8b8d74SJaiprakash Singh 	if ((a <= 89) && (b <= 31))
342*4b8b8d74SJaiprakash Singh 		return 0x87e349001000ll + 0x1000000ll * ((a) & 0x7f) + 0x10ll * ((b) & 0x1f);
343*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_APAT_VECX_ADDR", 2, a, b, 0, 0, 0, 0);
344*4b8b8d74SJaiprakash Singh }
345*4b8b8d74SJaiprakash Singh 
346*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_APAT_VECX_ADDR(a, b) ody_apax_apat_vecx_addr_t
347*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_APAT_VECX_ADDR(a, b) CSR_TYPE_RSL
348*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_APAT_VECX_ADDR(a, b) "APAX_APAT_VECX_ADDR"
349*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_APAT_VECX_ADDR(a, b) 0x0 /* PF_BAR0 */
350*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_APAT_VECX_ADDR(a, b) (a)
351*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_APAT_VECX_ADDR(a, b) (a), (b), -1, -1
352*4b8b8d74SJaiprakash Singh 
353*4b8b8d74SJaiprakash Singh /**
354*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_apat_vec#_mask
355*4b8b8d74SJaiprakash Singh  *
356*4b8b8d74SJaiprakash Singh  * APA APAT_VEC_MASK Register
357*4b8b8d74SJaiprakash Singh  * Mask bits.  1 means corresponding NS/ADDR bits must match in the request.
358*4b8b8d74SJaiprakash Singh  */
359*4b8b8d74SJaiprakash Singh union ody_apax_apat_vecx_mask {
360*4b8b8d74SJaiprakash Singh 	uint64_t u;
361*4b8b8d74SJaiprakash Singh 	struct ody_apax_apat_vecx_mask_s {
362*4b8b8d74SJaiprakash Singh 		uint64_t addr                        : 48;
363*4b8b8d74SJaiprakash Singh 		uint64_t reserved_48_61              : 14;
364*4b8b8d74SJaiprakash Singh 		uint64_t ns                          : 1;
365*4b8b8d74SJaiprakash Singh 		uint64_t reserved_63                 : 1;
366*4b8b8d74SJaiprakash Singh 	} s;
367*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_apat_vecx_mask_s cn; */
368*4b8b8d74SJaiprakash Singh };
369*4b8b8d74SJaiprakash Singh typedef union ody_apax_apat_vecx_mask ody_apax_apat_vecx_mask_t;
370*4b8b8d74SJaiprakash Singh 
371*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_VECX_MASK(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_APAX_APAT_VECX_MASK(uint64_t a,uint64_t b)372*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_VECX_MASK(uint64_t a, uint64_t b)
373*4b8b8d74SJaiprakash Singh {
374*4b8b8d74SJaiprakash Singh 	if ((a <= 89) && (b <= 31))
375*4b8b8d74SJaiprakash Singh 		return 0x87e349001008ll + 0x1000000ll * ((a) & 0x7f) + 0x10ll * ((b) & 0x1f);
376*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_APAT_VECX_MASK", 2, a, b, 0, 0, 0, 0);
377*4b8b8d74SJaiprakash Singh }
378*4b8b8d74SJaiprakash Singh 
379*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_APAT_VECX_MASK(a, b) ody_apax_apat_vecx_mask_t
380*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_APAT_VECX_MASK(a, b) CSR_TYPE_RSL
381*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_APAT_VECX_MASK(a, b) "APAX_APAT_VECX_MASK"
382*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_APAT_VECX_MASK(a, b) 0x0 /* PF_BAR0 */
383*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_APAT_VECX_MASK(a, b) (a)
384*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_APAT_VECX_MASK(a, b) (a), (b), -1, -1
385*4b8b8d74SJaiprakash Singh 
386*4b8b8d74SJaiprakash Singh /**
387*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_apat_wdat#
388*4b8b8d74SJaiprakash Singh  *
389*4b8b8d74SJaiprakash Singh  * APA APAT Write Data Register
390*4b8b8d74SJaiprakash Singh  */
391*4b8b8d74SJaiprakash Singh union ody_apax_apat_wdatx {
392*4b8b8d74SJaiprakash Singh 	uint64_t u;
393*4b8b8d74SJaiprakash Singh 	struct ody_apax_apat_wdatx_s {
394*4b8b8d74SJaiprakash Singh 		uint64_t dat                         : 64;
395*4b8b8d74SJaiprakash Singh 	} s;
396*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_apat_wdatx_s cn; */
397*4b8b8d74SJaiprakash Singh };
398*4b8b8d74SJaiprakash Singh typedef union ody_apax_apat_wdatx ody_apax_apat_wdatx_t;
399*4b8b8d74SJaiprakash Singh 
400*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_WDATX(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_APAX_APAT_WDATX(uint64_t a,uint64_t b)401*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_WDATX(uint64_t a, uint64_t b)
402*4b8b8d74SJaiprakash Singh {
403*4b8b8d74SJaiprakash Singh 	if ((a <= 89) && (b <= 3))
404*4b8b8d74SJaiprakash Singh 		return 0x87e349001220ll + 0x1000000ll * ((a) & 0x7f) + 8ll * ((b) & 0x3);
405*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_APAT_WDATX", 2, a, b, 0, 0, 0, 0);
406*4b8b8d74SJaiprakash Singh }
407*4b8b8d74SJaiprakash Singh 
408*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_APAT_WDATX(a, b) ody_apax_apat_wdatx_t
409*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_APAT_WDATX(a, b) CSR_TYPE_RSL
410*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_APAT_WDATX(a, b) "APAX_APAT_WDATX"
411*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_APAT_WDATX(a, b) 0x0 /* PF_BAR0 */
412*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_APAT_WDATX(a, b) (a)
413*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_APAT_WDATX(a, b) (a), (b), -1, -1
414*4b8b8d74SJaiprakash Singh 
415*4b8b8d74SJaiprakash Singh /**
416*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_apat_wdat_be
417*4b8b8d74SJaiprakash Singh  *
418*4b8b8d74SJaiprakash Singh  * APA APAT Write Data Byte Enable Register
419*4b8b8d74SJaiprakash Singh  */
420*4b8b8d74SJaiprakash Singh union ody_apax_apat_wdat_be {
421*4b8b8d74SJaiprakash Singh 	uint64_t u;
422*4b8b8d74SJaiprakash Singh 	struct ody_apax_apat_wdat_be_s {
423*4b8b8d74SJaiprakash Singh 		uint64_t byte_en                     : 32;
424*4b8b8d74SJaiprakash Singh 		uint64_t reserved_32_63              : 32;
425*4b8b8d74SJaiprakash Singh 	} s;
426*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_apat_wdat_be_s cn; */
427*4b8b8d74SJaiprakash Singh };
428*4b8b8d74SJaiprakash Singh typedef union ody_apax_apat_wdat_be ody_apax_apat_wdat_be_t;
429*4b8b8d74SJaiprakash Singh 
430*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_WDAT_BE(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_APAT_WDAT_BE(uint64_t a)431*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_APAT_WDAT_BE(uint64_t a)
432*4b8b8d74SJaiprakash Singh {
433*4b8b8d74SJaiprakash Singh 	if (a <= 89)
434*4b8b8d74SJaiprakash Singh 		return 0x87e349001218ll + 0x1000000ll * ((a) & 0x7f);
435*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_APAT_WDAT_BE", 1, a, 0, 0, 0, 0, 0);
436*4b8b8d74SJaiprakash Singh }
437*4b8b8d74SJaiprakash Singh 
438*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_APAT_WDAT_BE(a) ody_apax_apat_wdat_be_t
439*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_APAT_WDAT_BE(a) CSR_TYPE_RSL
440*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_APAT_WDAT_BE(a) "APAX_APAT_WDAT_BE"
441*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_APAT_WDAT_BE(a) 0x0 /* PF_BAR0 */
442*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_APAT_WDAT_BE(a) (a)
443*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_APAT_WDAT_BE(a) (a), -1, -1, -1
444*4b8b8d74SJaiprakash Singh 
445*4b8b8d74SJaiprakash Singh /**
446*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_core_ecc_int_ena_w1c
447*4b8b8d74SJaiprakash Singh  *
448*4b8b8d74SJaiprakash Singh  * APA Core ECC Interrupt Enable Clear Registers
449*4b8b8d74SJaiprakash Singh  * This register clears interrupt enable bits.
450*4b8b8d74SJaiprakash Singh  */
451*4b8b8d74SJaiprakash Singh union ody_apax_core_ecc_int_ena_w1c {
452*4b8b8d74SJaiprakash Singh 	uint64_t u;
453*4b8b8d74SJaiprakash Singh 	struct ody_apax_core_ecc_int_ena_w1c_s {
454*4b8b8d74SJaiprakash Singh 		uint64_t core_err                    : 1;
455*4b8b8d74SJaiprakash Singh 		uint64_t core_fault                  : 1;
456*4b8b8d74SJaiprakash Singh 		uint64_t reserved_2_63               : 62;
457*4b8b8d74SJaiprakash Singh 	} s;
458*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_core_ecc_int_ena_w1c_s cn; */
459*4b8b8d74SJaiprakash Singh };
460*4b8b8d74SJaiprakash Singh typedef union ody_apax_core_ecc_int_ena_w1c ody_apax_core_ecc_int_ena_w1c_t;
461*4b8b8d74SJaiprakash Singh 
462*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_CORE_ECC_INT_ENA_W1C(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_CORE_ECC_INT_ENA_W1C(uint64_t a)463*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_CORE_ECC_INT_ENA_W1C(uint64_t a)
464*4b8b8d74SJaiprakash Singh {
465*4b8b8d74SJaiprakash Singh 	if (a <= 89)
466*4b8b8d74SJaiprakash Singh 		return 0x87e349001e70ll + 0x1000000ll * ((a) & 0x7f);
467*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_CORE_ECC_INT_ENA_W1C", 1, a, 0, 0, 0, 0, 0);
468*4b8b8d74SJaiprakash Singh }
469*4b8b8d74SJaiprakash Singh 
470*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_CORE_ECC_INT_ENA_W1C(a) ody_apax_core_ecc_int_ena_w1c_t
471*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_CORE_ECC_INT_ENA_W1C(a) CSR_TYPE_RSL
472*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_CORE_ECC_INT_ENA_W1C(a) "APAX_CORE_ECC_INT_ENA_W1C"
473*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_CORE_ECC_INT_ENA_W1C(a) 0x0 /* PF_BAR0 */
474*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_CORE_ECC_INT_ENA_W1C(a) (a)
475*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_CORE_ECC_INT_ENA_W1C(a) (a), -1, -1, -1
476*4b8b8d74SJaiprakash Singh 
477*4b8b8d74SJaiprakash Singh /**
478*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_core_ecc_int_ena_w1s
479*4b8b8d74SJaiprakash Singh  *
480*4b8b8d74SJaiprakash Singh  * APA Core ECC Interrupt Enable Set Registers
481*4b8b8d74SJaiprakash Singh  * This register sets interrupt enable bits.
482*4b8b8d74SJaiprakash Singh  */
483*4b8b8d74SJaiprakash Singh union ody_apax_core_ecc_int_ena_w1s {
484*4b8b8d74SJaiprakash Singh 	uint64_t u;
485*4b8b8d74SJaiprakash Singh 	struct ody_apax_core_ecc_int_ena_w1s_s {
486*4b8b8d74SJaiprakash Singh 		uint64_t core_err                    : 1;
487*4b8b8d74SJaiprakash Singh 		uint64_t core_fault                  : 1;
488*4b8b8d74SJaiprakash Singh 		uint64_t reserved_2_63               : 62;
489*4b8b8d74SJaiprakash Singh 	} s;
490*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_core_ecc_int_ena_w1s_s cn; */
491*4b8b8d74SJaiprakash Singh };
492*4b8b8d74SJaiprakash Singh typedef union ody_apax_core_ecc_int_ena_w1s ody_apax_core_ecc_int_ena_w1s_t;
493*4b8b8d74SJaiprakash Singh 
494*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_CORE_ECC_INT_ENA_W1S(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_CORE_ECC_INT_ENA_W1S(uint64_t a)495*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_CORE_ECC_INT_ENA_W1S(uint64_t a)
496*4b8b8d74SJaiprakash Singh {
497*4b8b8d74SJaiprakash Singh 	if (a <= 89)
498*4b8b8d74SJaiprakash Singh 		return 0x87e349001e78ll + 0x1000000ll * ((a) & 0x7f);
499*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_CORE_ECC_INT_ENA_W1S", 1, a, 0, 0, 0, 0, 0);
500*4b8b8d74SJaiprakash Singh }
501*4b8b8d74SJaiprakash Singh 
502*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_CORE_ECC_INT_ENA_W1S(a) ody_apax_core_ecc_int_ena_w1s_t
503*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_CORE_ECC_INT_ENA_W1S(a) CSR_TYPE_RSL
504*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_CORE_ECC_INT_ENA_W1S(a) "APAX_CORE_ECC_INT_ENA_W1S"
505*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_CORE_ECC_INT_ENA_W1S(a) 0x0 /* PF_BAR0 */
506*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_CORE_ECC_INT_ENA_W1S(a) (a)
507*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_CORE_ECC_INT_ENA_W1S(a) (a), -1, -1, -1
508*4b8b8d74SJaiprakash Singh 
509*4b8b8d74SJaiprakash Singh /**
510*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_core_ecc_int_w1c
511*4b8b8d74SJaiprakash Singh  *
512*4b8b8d74SJaiprakash Singh  * APA Core ECC Interrupt Register
513*4b8b8d74SJaiprakash Singh  * This register reports interrupt status for the Cluster/Core ECC.
514*4b8b8d74SJaiprakash Singh  */
515*4b8b8d74SJaiprakash Singh union ody_apax_core_ecc_int_w1c {
516*4b8b8d74SJaiprakash Singh 	uint64_t u;
517*4b8b8d74SJaiprakash Singh 	struct ody_apax_core_ecc_int_w1c_s {
518*4b8b8d74SJaiprakash Singh 		uint64_t core_err                    : 1;
519*4b8b8d74SJaiprakash Singh 		uint64_t core_fault                  : 1;
520*4b8b8d74SJaiprakash Singh 		uint64_t reserved_2_63               : 62;
521*4b8b8d74SJaiprakash Singh 	} s;
522*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_core_ecc_int_w1c_s cn; */
523*4b8b8d74SJaiprakash Singh };
524*4b8b8d74SJaiprakash Singh typedef union ody_apax_core_ecc_int_w1c ody_apax_core_ecc_int_w1c_t;
525*4b8b8d74SJaiprakash Singh 
526*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_CORE_ECC_INT_W1C(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_CORE_ECC_INT_W1C(uint64_t a)527*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_CORE_ECC_INT_W1C(uint64_t a)
528*4b8b8d74SJaiprakash Singh {
529*4b8b8d74SJaiprakash Singh 	if (a <= 89)
530*4b8b8d74SJaiprakash Singh 		return 0x87e349001e60ll + 0x1000000ll * ((a) & 0x7f);
531*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_CORE_ECC_INT_W1C", 1, a, 0, 0, 0, 0, 0);
532*4b8b8d74SJaiprakash Singh }
533*4b8b8d74SJaiprakash Singh 
534*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_CORE_ECC_INT_W1C(a) ody_apax_core_ecc_int_w1c_t
535*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_CORE_ECC_INT_W1C(a) CSR_TYPE_RSL
536*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_CORE_ECC_INT_W1C(a) "APAX_CORE_ECC_INT_W1C"
537*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_CORE_ECC_INT_W1C(a) 0x0 /* PF_BAR0 */
538*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_CORE_ECC_INT_W1C(a) (a)
539*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_CORE_ECC_INT_W1C(a) (a), -1, -1, -1
540*4b8b8d74SJaiprakash Singh 
541*4b8b8d74SJaiprakash Singh /**
542*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_core_ecc_int_w1s
543*4b8b8d74SJaiprakash Singh  *
544*4b8b8d74SJaiprakash Singh  * APA Core ECC Interrupt Set Registers
545*4b8b8d74SJaiprakash Singh  * This register sets interrupt bits.
546*4b8b8d74SJaiprakash Singh  */
547*4b8b8d74SJaiprakash Singh union ody_apax_core_ecc_int_w1s {
548*4b8b8d74SJaiprakash Singh 	uint64_t u;
549*4b8b8d74SJaiprakash Singh 	struct ody_apax_core_ecc_int_w1s_s {
550*4b8b8d74SJaiprakash Singh 		uint64_t core_err                    : 1;
551*4b8b8d74SJaiprakash Singh 		uint64_t core_fault                  : 1;
552*4b8b8d74SJaiprakash Singh 		uint64_t reserved_2_63               : 62;
553*4b8b8d74SJaiprakash Singh 	} s;
554*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_core_ecc_int_w1s_s cn; */
555*4b8b8d74SJaiprakash Singh };
556*4b8b8d74SJaiprakash Singh typedef union ody_apax_core_ecc_int_w1s ody_apax_core_ecc_int_w1s_t;
557*4b8b8d74SJaiprakash Singh 
558*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_CORE_ECC_INT_W1S(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_CORE_ECC_INT_W1S(uint64_t a)559*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_CORE_ECC_INT_W1S(uint64_t a)
560*4b8b8d74SJaiprakash Singh {
561*4b8b8d74SJaiprakash Singh 	if (a <= 89)
562*4b8b8d74SJaiprakash Singh 		return 0x87e349001e68ll + 0x1000000ll * ((a) & 0x7f);
563*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_CORE_ECC_INT_W1S", 1, a, 0, 0, 0, 0, 0);
564*4b8b8d74SJaiprakash Singh }
565*4b8b8d74SJaiprakash Singh 
566*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_CORE_ECC_INT_W1S(a) ody_apax_core_ecc_int_w1s_t
567*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_CORE_ECC_INT_W1S(a) CSR_TYPE_RSL
568*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_CORE_ECC_INT_W1S(a) "APAX_CORE_ECC_INT_W1S"
569*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_CORE_ECC_INT_W1S(a) 0x0 /* PF_BAR0 */
570*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_CORE_ECC_INT_W1S(a) (a)
571*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_CORE_ECC_INT_W1S(a) (a), -1, -1, -1
572*4b8b8d74SJaiprakash Singh 
573*4b8b8d74SJaiprakash Singh /**
574*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_ctl
575*4b8b8d74SJaiprakash Singh  *
576*4b8b8d74SJaiprakash Singh  * APA Control Register
577*4b8b8d74SJaiprakash Singh  * This register contains miscellaneous APA control fields.
578*4b8b8d74SJaiprakash Singh  */
579*4b8b8d74SJaiprakash Singh union ody_apax_ctl {
580*4b8b8d74SJaiprakash Singh 	uint64_t u;
581*4b8b8d74SJaiprakash Singh 	struct ody_apax_ctl_s {
582*4b8b8d74SJaiprakash Singh 		uint64_t dis_accel                   : 1;
583*4b8b8d74SJaiprakash Singh 		uint64_t dis_lmtst                   : 1;
584*4b8b8d74SJaiprakash Singh 		uint64_t dis_gwc                     : 1;
585*4b8b8d74SJaiprakash Singh 		uint64_t dis_wdog_core_clean         : 1;
586*4b8b8d74SJaiprakash Singh 		uint64_t dis_wdog_struct_dat_clean   : 1;
587*4b8b8d74SJaiprakash Singh 		uint64_t dis_wdog_struct_rqb_clean   : 1;
588*4b8b8d74SJaiprakash Singh 		uint64_t dis_wdog_struct_txnid_clean : 1;
589*4b8b8d74SJaiprakash Singh 		uint64_t dis_wdog_struct_crd_clean   : 1;
590*4b8b8d74SJaiprakash Singh 		uint64_t dvm_filter                  : 2;
591*4b8b8d74SJaiprakash Singh 		uint64_t dis_wdog_during_apat        : 1;
592*4b8b8d74SJaiprakash Singh 		uint64_t cbusy_override_value        : 1;
593*4b8b8d74SJaiprakash Singh 		uint64_t dis_cbusy_override          : 1;
594*4b8b8d74SJaiprakash Singh 		uint64_t pfc_ns_access               : 1;
595*4b8b8d74SJaiprakash Singh 		uint64_t reserved_14_31              : 18;
596*4b8b8d74SJaiprakash Singh 		uint64_t apa_crclk_force_on          : 1;
597*4b8b8d74SJaiprakash Singh 		uint64_t lsa_crclk_force_on          : 1;
598*4b8b8d74SJaiprakash Singh 		uint64_t reserved_34_63              : 30;
599*4b8b8d74SJaiprakash Singh 	} s;
600*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_ctl_s cn; */
601*4b8b8d74SJaiprakash Singh };
602*4b8b8d74SJaiprakash Singh typedef union ody_apax_ctl ody_apax_ctl_t;
603*4b8b8d74SJaiprakash Singh 
604*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_CTL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_CTL(uint64_t a)605*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_CTL(uint64_t a)
606*4b8b8d74SJaiprakash Singh {
607*4b8b8d74SJaiprakash Singh 	if (a <= 89)
608*4b8b8d74SJaiprakash Singh 		return 0x87e349001500ll + 0x1000000ll * ((a) & 0x7f);
609*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_CTL", 1, a, 0, 0, 0, 0, 0);
610*4b8b8d74SJaiprakash Singh }
611*4b8b8d74SJaiprakash Singh 
612*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_CTL(a) ody_apax_ctl_t
613*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_CTL(a) CSR_TYPE_RSL
614*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_CTL(a) "APAX_CTL"
615*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_CTL(a) 0x0 /* PF_BAR0 */
616*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_CTL(a) (a)
617*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_CTL(a) (a), -1, -1, -1
618*4b8b8d74SJaiprakash Singh 
619*4b8b8d74SJaiprakash Singh /**
620*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_derr_info
621*4b8b8d74SJaiprakash Singh  *
622*4b8b8d74SJaiprakash Singh  * APA Data Error Info Register
623*4b8b8d74SJaiprakash Singh  * This register records error information for Data Error interrupts occurring in data
624*4b8b8d74SJaiprakash Singh  * incoming from the mesh. The first [DATMBE] error will lock the
625*4b8b8d74SJaiprakash Singh  * register until the logged error type is cleared; [DATSBE] errors
626*4b8b8d74SJaiprakash Singh  * lock the register until either the logged error type is cleared or a [DATMBE]
627*4b8b8d74SJaiprakash Singh  * error is logged. Only one of [DATMBE, DATSBE] should be set at a time. In the
628*4b8b8d74SJaiprakash Singh  * event the register is read with all [*MBE] and [*SBE] equal to 0 during
629*4b8b8d74SJaiprakash Singh  * interrupt handling that is an indication that, due to a register set/clear race,
630*4b8b8d74SJaiprakash Singh  * information about one or more errors was lost while processing an earlier
631*4b8b8d74SJaiprakash Singh  * error.
632*4b8b8d74SJaiprakash Singh  */
633*4b8b8d74SJaiprakash Singh union ody_apax_derr_info {
634*4b8b8d74SJaiprakash Singh 	uint64_t u;
635*4b8b8d74SJaiprakash Singh 	struct ody_apax_derr_info_s {
636*4b8b8d74SJaiprakash Singh 		uint64_t srcid                       : 11;
637*4b8b8d74SJaiprakash Singh 		uint64_t opcode                      : 7;
638*4b8b8d74SJaiprakash Singh 		uint64_t reserved_18_61              : 44;
639*4b8b8d74SJaiprakash Singh 		uint64_t dat_mbe                     : 1;
640*4b8b8d74SJaiprakash Singh 		uint64_t dat_sbe                     : 1;
641*4b8b8d74SJaiprakash Singh 	} s;
642*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_derr_info_s cn; */
643*4b8b8d74SJaiprakash Singh };
644*4b8b8d74SJaiprakash Singh typedef union ody_apax_derr_info ody_apax_derr_info_t;
645*4b8b8d74SJaiprakash Singh 
646*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_DERR_INFO(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_DERR_INFO(uint64_t a)647*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_DERR_INFO(uint64_t a)
648*4b8b8d74SJaiprakash Singh {
649*4b8b8d74SJaiprakash Singh 	if (a <= 89)
650*4b8b8d74SJaiprakash Singh 		return 0x87e349001530ll + 0x1000000ll * ((a) & 0x7f);
651*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_DERR_INFO", 1, a, 0, 0, 0, 0, 0);
652*4b8b8d74SJaiprakash Singh }
653*4b8b8d74SJaiprakash Singh 
654*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_DERR_INFO(a) ody_apax_derr_info_t
655*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_DERR_INFO(a) CSR_TYPE_RSL
656*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_DERR_INFO(a) "APAX_DERR_INFO"
657*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_DERR_INFO(a) 0x0 /* PF_BAR0 */
658*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_DERR_INFO(a) (a)
659*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_DERR_INFO(a) (a), -1, -1, -1
660*4b8b8d74SJaiprakash Singh 
661*4b8b8d74SJaiprakash Singh /**
662*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_dispblk
663*4b8b8d74SJaiprakash Singh  *
664*4b8b8d74SJaiprakash Singh  * APA Dispatch Block Register
665*4b8b8d74SJaiprakash Singh  * This register throttles the core instruction dispatch.  This is meant to be used by
666*4b8b8d74SJaiprakash Singh  * the SCP to mitigate overheat cases.
667*4b8b8d74SJaiprakash Singh  */
668*4b8b8d74SJaiprakash Singh union ody_apax_dispblk {
669*4b8b8d74SJaiprakash Singh 	uint64_t u;
670*4b8b8d74SJaiprakash Singh 	struct ody_apax_dispblk_s {
671*4b8b8d74SJaiprakash Singh 		uint64_t count                       : 8;
672*4b8b8d74SJaiprakash Singh 		uint64_t reserved_8_14               : 7;
673*4b8b8d74SJaiprakash Singh 		uint64_t en                          : 1;
674*4b8b8d74SJaiprakash Singh 		uint64_t reserved_16_63              : 48;
675*4b8b8d74SJaiprakash Singh 	} s;
676*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_dispblk_s cn; */
677*4b8b8d74SJaiprakash Singh };
678*4b8b8d74SJaiprakash Singh typedef union ody_apax_dispblk ody_apax_dispblk_t;
679*4b8b8d74SJaiprakash Singh 
680*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_DISPBLK(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_DISPBLK(uint64_t a)681*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_DISPBLK(uint64_t a)
682*4b8b8d74SJaiprakash Singh {
683*4b8b8d74SJaiprakash Singh 	if (a <= 89)
684*4b8b8d74SJaiprakash Singh 		return 0x87e349001700ll + 0x1000000ll * ((a) & 0x7f);
685*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_DISPBLK", 1, a, 0, 0, 0, 0, 0);
686*4b8b8d74SJaiprakash Singh }
687*4b8b8d74SJaiprakash Singh 
688*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_DISPBLK(a) ody_apax_dispblk_t
689*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_DISPBLK(a) CSR_TYPE_RSL
690*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_DISPBLK(a) "APAX_DISPBLK"
691*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_DISPBLK(a) 0x0 /* PF_BAR0 */
692*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_DISPBLK(a) (a)
693*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_DISPBLK(a) (a), -1, -1, -1
694*4b8b8d74SJaiprakash Singh 
695*4b8b8d74SJaiprakash Singh /**
696*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_ecc_ctl
697*4b8b8d74SJaiprakash Singh  *
698*4b8b8d74SJaiprakash Singh  * APA ECC Generation/Checking Control Register
699*4b8b8d74SJaiprakash Singh  * Controls ECC Generation/Checking.
700*4b8b8d74SJaiprakash Singh  */
701*4b8b8d74SJaiprakash Singh union ody_apax_ecc_ctl {
702*4b8b8d74SJaiprakash Singh 	uint64_t u;
703*4b8b8d74SJaiprakash Singh 	struct ody_apax_ecc_ctl_s {
704*4b8b8d74SJaiprakash Singh 		uint64_t flip_datacheck_0            : 1;
705*4b8b8d74SJaiprakash Singh 		uint64_t flip_datacheck_1            : 1;
706*4b8b8d74SJaiprakash Singh 		uint64_t flip_datacheck_9            : 1;
707*4b8b8d74SJaiprakash Singh 		uint64_t flip_datacheck_10           : 1;
708*4b8b8d74SJaiprakash Singh 		uint64_t psn_dis                     : 1;
709*4b8b8d74SJaiprakash Singh 		uint64_t cor_dis                     : 1;
710*4b8b8d74SJaiprakash Singh 		uint64_t reserved_6_63               : 58;
711*4b8b8d74SJaiprakash Singh 	} s;
712*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_ecc_ctl_s cn; */
713*4b8b8d74SJaiprakash Singh };
714*4b8b8d74SJaiprakash Singh typedef union ody_apax_ecc_ctl ody_apax_ecc_ctl_t;
715*4b8b8d74SJaiprakash Singh 
716*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_ECC_CTL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_ECC_CTL(uint64_t a)717*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_ECC_CTL(uint64_t a)
718*4b8b8d74SJaiprakash Singh {
719*4b8b8d74SJaiprakash Singh 	if (a <= 89)
720*4b8b8d74SJaiprakash Singh 		return 0x87e349001508ll + 0x1000000ll * ((a) & 0x7f);
721*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_ECC_CTL", 1, a, 0, 0, 0, 0, 0);
722*4b8b8d74SJaiprakash Singh }
723*4b8b8d74SJaiprakash Singh 
724*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_ECC_CTL(a) ody_apax_ecc_ctl_t
725*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_ECC_CTL(a) CSR_TYPE_RSL
726*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_ECC_CTL(a) "APAX_ECC_CTL"
727*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_ECC_CTL(a) 0x0 /* PF_BAR0 */
728*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_ECC_CTL(a) (a)
729*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_ECC_CTL(a) (a), -1, -1, -1
730*4b8b8d74SJaiprakash Singh 
731*4b8b8d74SJaiprakash Singh /**
732*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_ecc_int_ena_w1c
733*4b8b8d74SJaiprakash Singh  *
734*4b8b8d74SJaiprakash Singh  * APA ECC Interrupt Enable Clear Registers
735*4b8b8d74SJaiprakash Singh  * This register clears interrupt enable bits.
736*4b8b8d74SJaiprakash Singh  */
737*4b8b8d74SJaiprakash Singh union ody_apax_ecc_int_ena_w1c {
738*4b8b8d74SJaiprakash Singh 	uint64_t u;
739*4b8b8d74SJaiprakash Singh 	struct ody_apax_ecc_int_ena_w1c_s {
740*4b8b8d74SJaiprakash Singh 		uint64_t rsp_perr                    : 1;
741*4b8b8d74SJaiprakash Singh 		uint64_t snp_perr                    : 1;
742*4b8b8d74SJaiprakash Singh 		uint64_t dat_perr                    : 1;
743*4b8b8d74SJaiprakash Singh 		uint64_t dat_mbe                     : 1;
744*4b8b8d74SJaiprakash Singh 		uint64_t dat_sbe                     : 1;
745*4b8b8d74SJaiprakash Singh 		uint64_t reserved_5_63               : 59;
746*4b8b8d74SJaiprakash Singh 	} s;
747*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_ecc_int_ena_w1c_s cn; */
748*4b8b8d74SJaiprakash Singh };
749*4b8b8d74SJaiprakash Singh typedef union ody_apax_ecc_int_ena_w1c ody_apax_ecc_int_ena_w1c_t;
750*4b8b8d74SJaiprakash Singh 
751*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_ECC_INT_ENA_W1C(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_ECC_INT_ENA_W1C(uint64_t a)752*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_ECC_INT_ENA_W1C(uint64_t a)
753*4b8b8d74SJaiprakash Singh {
754*4b8b8d74SJaiprakash Singh 	if (a <= 89)
755*4b8b8d74SJaiprakash Singh 		return 0x87e349001e50ll + 0x1000000ll * ((a) & 0x7f);
756*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_ECC_INT_ENA_W1C", 1, a, 0, 0, 0, 0, 0);
757*4b8b8d74SJaiprakash Singh }
758*4b8b8d74SJaiprakash Singh 
759*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_ECC_INT_ENA_W1C(a) ody_apax_ecc_int_ena_w1c_t
760*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_ECC_INT_ENA_W1C(a) CSR_TYPE_RSL
761*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_ECC_INT_ENA_W1C(a) "APAX_ECC_INT_ENA_W1C"
762*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_ECC_INT_ENA_W1C(a) 0x0 /* PF_BAR0 */
763*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_ECC_INT_ENA_W1C(a) (a)
764*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_ECC_INT_ENA_W1C(a) (a), -1, -1, -1
765*4b8b8d74SJaiprakash Singh 
766*4b8b8d74SJaiprakash Singh /**
767*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_ecc_int_ena_w1s
768*4b8b8d74SJaiprakash Singh  *
769*4b8b8d74SJaiprakash Singh  * APA ECC Interrupt Enable Set Registers
770*4b8b8d74SJaiprakash Singh  * This register sets interrupt enable bits.
771*4b8b8d74SJaiprakash Singh  */
772*4b8b8d74SJaiprakash Singh union ody_apax_ecc_int_ena_w1s {
773*4b8b8d74SJaiprakash Singh 	uint64_t u;
774*4b8b8d74SJaiprakash Singh 	struct ody_apax_ecc_int_ena_w1s_s {
775*4b8b8d74SJaiprakash Singh 		uint64_t rsp_perr                    : 1;
776*4b8b8d74SJaiprakash Singh 		uint64_t snp_perr                    : 1;
777*4b8b8d74SJaiprakash Singh 		uint64_t dat_perr                    : 1;
778*4b8b8d74SJaiprakash Singh 		uint64_t dat_mbe                     : 1;
779*4b8b8d74SJaiprakash Singh 		uint64_t dat_sbe                     : 1;
780*4b8b8d74SJaiprakash Singh 		uint64_t reserved_5_63               : 59;
781*4b8b8d74SJaiprakash Singh 	} s;
782*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_ecc_int_ena_w1s_s cn; */
783*4b8b8d74SJaiprakash Singh };
784*4b8b8d74SJaiprakash Singh typedef union ody_apax_ecc_int_ena_w1s ody_apax_ecc_int_ena_w1s_t;
785*4b8b8d74SJaiprakash Singh 
786*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_ECC_INT_ENA_W1S(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_ECC_INT_ENA_W1S(uint64_t a)787*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_ECC_INT_ENA_W1S(uint64_t a)
788*4b8b8d74SJaiprakash Singh {
789*4b8b8d74SJaiprakash Singh 	if (a <= 89)
790*4b8b8d74SJaiprakash Singh 		return 0x87e349001e58ll + 0x1000000ll * ((a) & 0x7f);
791*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_ECC_INT_ENA_W1S", 1, a, 0, 0, 0, 0, 0);
792*4b8b8d74SJaiprakash Singh }
793*4b8b8d74SJaiprakash Singh 
794*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_ECC_INT_ENA_W1S(a) ody_apax_ecc_int_ena_w1s_t
795*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_ECC_INT_ENA_W1S(a) CSR_TYPE_RSL
796*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_ECC_INT_ENA_W1S(a) "APAX_ECC_INT_ENA_W1S"
797*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_ECC_INT_ENA_W1S(a) 0x0 /* PF_BAR0 */
798*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_ECC_INT_ENA_W1S(a) (a)
799*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_ECC_INT_ENA_W1S(a) (a), -1, -1, -1
800*4b8b8d74SJaiprakash Singh 
801*4b8b8d74SJaiprakash Singh /**
802*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_ecc_int_w1c
803*4b8b8d74SJaiprakash Singh  *
804*4b8b8d74SJaiprakash Singh  * APA ECC Interrupt Register
805*4b8b8d74SJaiprakash Singh  * This register is reports interrupt status.
806*4b8b8d74SJaiprakash Singh  */
807*4b8b8d74SJaiprakash Singh union ody_apax_ecc_int_w1c {
808*4b8b8d74SJaiprakash Singh 	uint64_t u;
809*4b8b8d74SJaiprakash Singh 	struct ody_apax_ecc_int_w1c_s {
810*4b8b8d74SJaiprakash Singh 		uint64_t rsp_perr                    : 1;
811*4b8b8d74SJaiprakash Singh 		uint64_t snp_perr                    : 1;
812*4b8b8d74SJaiprakash Singh 		uint64_t dat_perr                    : 1;
813*4b8b8d74SJaiprakash Singh 		uint64_t dat_mbe                     : 1;
814*4b8b8d74SJaiprakash Singh 		uint64_t dat_sbe                     : 1;
815*4b8b8d74SJaiprakash Singh 		uint64_t reserved_5_63               : 59;
816*4b8b8d74SJaiprakash Singh 	} s;
817*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_ecc_int_w1c_s cn; */
818*4b8b8d74SJaiprakash Singh };
819*4b8b8d74SJaiprakash Singh typedef union ody_apax_ecc_int_w1c ody_apax_ecc_int_w1c_t;
820*4b8b8d74SJaiprakash Singh 
821*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_ECC_INT_W1C(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_ECC_INT_W1C(uint64_t a)822*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_ECC_INT_W1C(uint64_t a)
823*4b8b8d74SJaiprakash Singh {
824*4b8b8d74SJaiprakash Singh 	if (a <= 89)
825*4b8b8d74SJaiprakash Singh 		return 0x87e349001e40ll + 0x1000000ll * ((a) & 0x7f);
826*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_ECC_INT_W1C", 1, a, 0, 0, 0, 0, 0);
827*4b8b8d74SJaiprakash Singh }
828*4b8b8d74SJaiprakash Singh 
829*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_ECC_INT_W1C(a) ody_apax_ecc_int_w1c_t
830*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_ECC_INT_W1C(a) CSR_TYPE_RSL
831*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_ECC_INT_W1C(a) "APAX_ECC_INT_W1C"
832*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_ECC_INT_W1C(a) 0x0 /* PF_BAR0 */
833*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_ECC_INT_W1C(a) (a)
834*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_ECC_INT_W1C(a) (a), -1, -1, -1
835*4b8b8d74SJaiprakash Singh 
836*4b8b8d74SJaiprakash Singh /**
837*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_ecc_int_w1s
838*4b8b8d74SJaiprakash Singh  *
839*4b8b8d74SJaiprakash Singh  * APA ECC Interrupt Set Registers
840*4b8b8d74SJaiprakash Singh  * This register sets interrupt bits.
841*4b8b8d74SJaiprakash Singh  */
842*4b8b8d74SJaiprakash Singh union ody_apax_ecc_int_w1s {
843*4b8b8d74SJaiprakash Singh 	uint64_t u;
844*4b8b8d74SJaiprakash Singh 	struct ody_apax_ecc_int_w1s_s {
845*4b8b8d74SJaiprakash Singh 		uint64_t rsp_perr                    : 1;
846*4b8b8d74SJaiprakash Singh 		uint64_t snp_perr                    : 1;
847*4b8b8d74SJaiprakash Singh 		uint64_t dat_perr                    : 1;
848*4b8b8d74SJaiprakash Singh 		uint64_t dat_mbe                     : 1;
849*4b8b8d74SJaiprakash Singh 		uint64_t dat_sbe                     : 1;
850*4b8b8d74SJaiprakash Singh 		uint64_t reserved_5_63               : 59;
851*4b8b8d74SJaiprakash Singh 	} s;
852*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_ecc_int_w1s_s cn; */
853*4b8b8d74SJaiprakash Singh };
854*4b8b8d74SJaiprakash Singh typedef union ody_apax_ecc_int_w1s ody_apax_ecc_int_w1s_t;
855*4b8b8d74SJaiprakash Singh 
856*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_ECC_INT_W1S(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_ECC_INT_W1S(uint64_t a)857*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_ECC_INT_W1S(uint64_t a)
858*4b8b8d74SJaiprakash Singh {
859*4b8b8d74SJaiprakash Singh 	if (a <= 89)
860*4b8b8d74SJaiprakash Singh 		return 0x87e349001e48ll + 0x1000000ll * ((a) & 0x7f);
861*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_ECC_INT_W1S", 1, a, 0, 0, 0, 0, 0);
862*4b8b8d74SJaiprakash Singh }
863*4b8b8d74SJaiprakash Singh 
864*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_ECC_INT_W1S(a) ody_apax_ecc_int_w1s_t
865*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_ECC_INT_W1S(a) CSR_TYPE_RSL
866*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_ECC_INT_W1S(a) "APAX_ECC_INT_W1S"
867*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_ECC_INT_W1S(a) 0x0 /* PF_BAR0 */
868*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_ECC_INT_W1S(a) (a)
869*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_ECC_INT_W1S(a) (a), -1, -1, -1
870*4b8b8d74SJaiprakash Singh 
871*4b8b8d74SJaiprakash Singh /**
872*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_gti_offset
873*4b8b8d74SJaiprakash Singh  *
874*4b8b8d74SJaiprakash Singh  * APA Global Timestamp Offset Register
875*4b8b8d74SJaiprakash Singh  * The amount to add to the global timestamp, in whatever units the timestamp uses
876*4b8b8d74SJaiprakash Singh  * (generally 1ns).  This is used to compensate for the propagation latency of the
877*4b8b8d74SJaiprakash Singh  * global timstamp bus to all the cores.
878*4b8b8d74SJaiprakash Singh  */
879*4b8b8d74SJaiprakash Singh union ody_apax_gti_offset {
880*4b8b8d74SJaiprakash Singh 	uint64_t u;
881*4b8b8d74SJaiprakash Singh 	struct ody_apax_gti_offset_s {
882*4b8b8d74SJaiprakash Singh 		uint64_t offset                      : 8;
883*4b8b8d74SJaiprakash Singh 		uint64_t reserved_8_63               : 56;
884*4b8b8d74SJaiprakash Singh 	} s;
885*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_gti_offset_s cn; */
886*4b8b8d74SJaiprakash Singh };
887*4b8b8d74SJaiprakash Singh typedef union ody_apax_gti_offset ody_apax_gti_offset_t;
888*4b8b8d74SJaiprakash Singh 
889*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_GTI_OFFSET(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_GTI_OFFSET(uint64_t a)890*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_GTI_OFFSET(uint64_t a)
891*4b8b8d74SJaiprakash Singh {
892*4b8b8d74SJaiprakash Singh 	if (a <= 89)
893*4b8b8d74SJaiprakash Singh 		return 0x87e349001708ll + 0x1000000ll * ((a) & 0x7f);
894*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_GTI_OFFSET", 1, a, 0, 0, 0, 0, 0);
895*4b8b8d74SJaiprakash Singh }
896*4b8b8d74SJaiprakash Singh 
897*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_GTI_OFFSET(a) ody_apax_gti_offset_t
898*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_GTI_OFFSET(a) CSR_TYPE_RSL
899*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_GTI_OFFSET(a) "APAX_GTI_OFFSET"
900*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_GTI_OFFSET(a) 0x0 /* PF_BAR0 */
901*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_GTI_OFFSET(a) (a)
902*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_GTI_OFFSET(a) (a), -1, -1, -1
903*4b8b8d74SJaiprakash Singh 
904*4b8b8d74SJaiprakash Singh /**
905*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_man_pll
906*4b8b8d74SJaiprakash Singh  *
907*4b8b8d74SJaiprakash Singh  * APA Manual PLL Control Register
908*4b8b8d74SJaiprakash Singh  * These registers are used in conjunction with the APA_PLL registers when
909*4b8b8d74SJaiprakash Singh  * the APA_PLL[NEXT_MAN] field is set.  Indexed by APA_PLL_E.
910*4b8b8d74SJaiprakash Singh  * These register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
911*4b8b8d74SJaiprakash Singh  *
912*4b8b8d74SJaiprakash Singh  * The logic associated with the PLL functions can only process one operation at a time.
913*4b8b8d74SJaiprakash Singh  * Writes to this register should only occur when both the APA_PLL[NEXT_PGM] and
914*4b8b8d74SJaiprakash Singh  * APA_PLL[NEXT_SWITCH] fields are zero.
915*4b8b8d74SJaiprakash Singh  *
916*4b8b8d74SJaiprakash Singh  * This register is always reset on a chip domain reset.
917*4b8b8d74SJaiprakash Singh  */
918*4b8b8d74SJaiprakash Singh union ody_apax_man_pll {
919*4b8b8d74SJaiprakash Singh 	uint64_t u;
920*4b8b8d74SJaiprakash Singh 	struct ody_apax_man_pll_s {
921*4b8b8d74SJaiprakash Singh 		uint64_t update_rate                 : 10;
922*4b8b8d74SJaiprakash Singh 		uint64_t dlf_ki                      : 5;
923*4b8b8d74SJaiprakash Singh 		uint64_t dlf_kp                      : 5;
924*4b8b8d74SJaiprakash Singh 		uint64_t icp                         : 4;
925*4b8b8d74SJaiprakash Singh 		uint64_t vco_fract                   : 10;
926*4b8b8d74SJaiprakash Singh 		uint64_t vco_mul                     : 10;
927*4b8b8d74SJaiprakash Singh 		uint64_t bw                          : 2;
928*4b8b8d74SJaiprakash Singh 		uint64_t post_div                    : 9;
929*4b8b8d74SJaiprakash Singh 		uint64_t reserved_55                 : 1;
930*4b8b8d74SJaiprakash Singh 		uint64_t ref_div                     : 4;
931*4b8b8d74SJaiprakash Singh 		uint64_t power_down                  : 3;
932*4b8b8d74SJaiprakash Singh 		uint64_t reserved_63                 : 1;
933*4b8b8d74SJaiprakash Singh 	} s;
934*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_man_pll_s cn; */
935*4b8b8d74SJaiprakash Singh };
936*4b8b8d74SJaiprakash Singh typedef union ody_apax_man_pll ody_apax_man_pll_t;
937*4b8b8d74SJaiprakash Singh 
938*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_MAN_PLL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_MAN_PLL(uint64_t a)939*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_MAN_PLL(uint64_t a)
940*4b8b8d74SJaiprakash Singh {
941*4b8b8d74SJaiprakash Singh 	if (a <= 89)
942*4b8b8d74SJaiprakash Singh 		return 0x87e349004008ll + 0x1000000ll * ((a) & 0x7f);
943*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_MAN_PLL", 1, a, 0, 0, 0, 0, 0);
944*4b8b8d74SJaiprakash Singh }
945*4b8b8d74SJaiprakash Singh 
946*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_MAN_PLL(a) ody_apax_man_pll_t
947*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_MAN_PLL(a) CSR_TYPE_RSL
948*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_MAN_PLL(a) "APAX_MAN_PLL"
949*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_MAN_PLL(a) 0x0 /* PF_BAR0 */
950*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_MAN_PLL(a) (a)
951*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_MAN_PLL(a) (a), -1, -1, -1
952*4b8b8d74SJaiprakash Singh 
953*4b8b8d74SJaiprakash Singh /**
954*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_msix_pba#
955*4b8b8d74SJaiprakash Singh  *
956*4b8b8d74SJaiprakash Singh  * APA MSI-X Pending Bit Array Registers
957*4b8b8d74SJaiprakash Singh  * This register is the MSI-X PBA table, the bit number is indexed by the APA_INT_VEC_E enumeration.
958*4b8b8d74SJaiprakash Singh  */
959*4b8b8d74SJaiprakash Singh union ody_apax_msix_pbax {
960*4b8b8d74SJaiprakash Singh 	uint64_t u;
961*4b8b8d74SJaiprakash Singh 	struct ody_apax_msix_pbax_s {
962*4b8b8d74SJaiprakash Singh 		uint64_t pend                        : 64;
963*4b8b8d74SJaiprakash Singh 	} s;
964*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_msix_pbax_s cn; */
965*4b8b8d74SJaiprakash Singh };
966*4b8b8d74SJaiprakash Singh typedef union ody_apax_msix_pbax ody_apax_msix_pbax_t;
967*4b8b8d74SJaiprakash Singh 
968*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_MSIX_PBAX(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_APAX_MSIX_PBAX(uint64_t a,uint64_t b)969*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_MSIX_PBAX(uint64_t a, uint64_t b)
970*4b8b8d74SJaiprakash Singh {
971*4b8b8d74SJaiprakash Singh 	if ((a <= 89) && (b == 0))
972*4b8b8d74SJaiprakash Singh 		return 0x87e3491f0000ll + 0x1000000ll * ((a) & 0x7f);
973*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_MSIX_PBAX", 2, a, b, 0, 0, 0, 0);
974*4b8b8d74SJaiprakash Singh }
975*4b8b8d74SJaiprakash Singh 
976*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_MSIX_PBAX(a, b) ody_apax_msix_pbax_t
977*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_MSIX_PBAX(a, b) CSR_TYPE_RSL
978*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_MSIX_PBAX(a, b) "APAX_MSIX_PBAX"
979*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_MSIX_PBAX(a, b) 0x4 /* PF_BAR4 */
980*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_MSIX_PBAX(a, b) (a)
981*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_MSIX_PBAX(a, b) (a), (b), -1, -1
982*4b8b8d74SJaiprakash Singh 
983*4b8b8d74SJaiprakash Singh /**
984*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_msix_vec#_addr
985*4b8b8d74SJaiprakash Singh  *
986*4b8b8d74SJaiprakash Singh  * APA MSI-X Vector Table Address Registers
987*4b8b8d74SJaiprakash Singh  * This register is the MSI-X vector table, indexed by the APA_INT_VEC_E enumeration.
988*4b8b8d74SJaiprakash Singh  */
989*4b8b8d74SJaiprakash Singh union ody_apax_msix_vecx_addr {
990*4b8b8d74SJaiprakash Singh 	uint64_t u;
991*4b8b8d74SJaiprakash Singh 	struct ody_apax_msix_vecx_addr_s {
992*4b8b8d74SJaiprakash Singh 		uint64_t secvec                      : 1;
993*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1                  : 1;
994*4b8b8d74SJaiprakash Singh 		uint64_t addr                        : 51;
995*4b8b8d74SJaiprakash Singh 		uint64_t reserved_53_63              : 11;
996*4b8b8d74SJaiprakash Singh 	} s;
997*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_msix_vecx_addr_s cn; */
998*4b8b8d74SJaiprakash Singh };
999*4b8b8d74SJaiprakash Singh typedef union ody_apax_msix_vecx_addr ody_apax_msix_vecx_addr_t;
1000*4b8b8d74SJaiprakash Singh 
1001*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_MSIX_VECX_ADDR(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_APAX_MSIX_VECX_ADDR(uint64_t a,uint64_t b)1002*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_MSIX_VECX_ADDR(uint64_t a, uint64_t b)
1003*4b8b8d74SJaiprakash Singh {
1004*4b8b8d74SJaiprakash Singh 	if ((a <= 89) && (b <= 7))
1005*4b8b8d74SJaiprakash Singh 		return 0x87e349100000ll + 0x1000000ll * ((a) & 0x7f) + 0x10ll * ((b) & 0x7);
1006*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_MSIX_VECX_ADDR", 2, a, b, 0, 0, 0, 0);
1007*4b8b8d74SJaiprakash Singh }
1008*4b8b8d74SJaiprakash Singh 
1009*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_MSIX_VECX_ADDR(a, b) ody_apax_msix_vecx_addr_t
1010*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_MSIX_VECX_ADDR(a, b) CSR_TYPE_RSL
1011*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_MSIX_VECX_ADDR(a, b) "APAX_MSIX_VECX_ADDR"
1012*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_MSIX_VECX_ADDR(a, b) 0x4 /* PF_BAR4 */
1013*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_MSIX_VECX_ADDR(a, b) (a)
1014*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_MSIX_VECX_ADDR(a, b) (a), (b), -1, -1
1015*4b8b8d74SJaiprakash Singh 
1016*4b8b8d74SJaiprakash Singh /**
1017*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_msix_vec#_ctl
1018*4b8b8d74SJaiprakash Singh  *
1019*4b8b8d74SJaiprakash Singh  * APA MSI-X Vector Table Control and Data Registers
1020*4b8b8d74SJaiprakash Singh  * This register is the MSI-X vector table, indexed by the APA_INT_VEC_E enumeration.
1021*4b8b8d74SJaiprakash Singh  */
1022*4b8b8d74SJaiprakash Singh union ody_apax_msix_vecx_ctl {
1023*4b8b8d74SJaiprakash Singh 	uint64_t u;
1024*4b8b8d74SJaiprakash Singh 	struct ody_apax_msix_vecx_ctl_s {
1025*4b8b8d74SJaiprakash Singh 		uint64_t data                        : 32;
1026*4b8b8d74SJaiprakash Singh 		uint64_t mask                        : 1;
1027*4b8b8d74SJaiprakash Singh 		uint64_t reserved_33_63              : 31;
1028*4b8b8d74SJaiprakash Singh 	} s;
1029*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_msix_vecx_ctl_s cn; */
1030*4b8b8d74SJaiprakash Singh };
1031*4b8b8d74SJaiprakash Singh typedef union ody_apax_msix_vecx_ctl ody_apax_msix_vecx_ctl_t;
1032*4b8b8d74SJaiprakash Singh 
1033*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_MSIX_VECX_CTL(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_APAX_MSIX_VECX_CTL(uint64_t a,uint64_t b)1034*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_MSIX_VECX_CTL(uint64_t a, uint64_t b)
1035*4b8b8d74SJaiprakash Singh {
1036*4b8b8d74SJaiprakash Singh 	if ((a <= 89) && (b <= 7))
1037*4b8b8d74SJaiprakash Singh 		return 0x87e349100008ll + 0x1000000ll * ((a) & 0x7f) + 0x10ll * ((b) & 0x7);
1038*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_MSIX_VECX_CTL", 2, a, b, 0, 0, 0, 0);
1039*4b8b8d74SJaiprakash Singh }
1040*4b8b8d74SJaiprakash Singh 
1041*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_MSIX_VECX_CTL(a, b) ody_apax_msix_vecx_ctl_t
1042*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_MSIX_VECX_CTL(a, b) CSR_TYPE_RSL
1043*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_MSIX_VECX_CTL(a, b) "APAX_MSIX_VECX_CTL"
1044*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_MSIX_VECX_CTL(a, b) 0x4 /* PF_BAR4 */
1045*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_MSIX_VECX_CTL(a, b) (a)
1046*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_MSIX_VECX_CTL(a, b) (a), (b), -1, -1
1047*4b8b8d74SJaiprakash Singh 
1048*4b8b8d74SJaiprakash Singh /**
1049*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_nderr_info
1050*4b8b8d74SJaiprakash Singh  *
1051*4b8b8d74SJaiprakash Singh  * APA Non-Data Error Info Register
1052*4b8b8d74SJaiprakash Singh  * This register records error information for Non-Data Error interrupts
1053*4b8b8d74SJaiprakash Singh  * [RSP_PERR, DAT_PERR, SNP_PERR]. The first [RSP_PERR, DAT_PERR, SNP_PERR] error
1054*4b8b8d74SJaiprakash Singh  * will lock the register until the logged error type is cleared.
1055*4b8b8d74SJaiprakash Singh  */
1056*4b8b8d74SJaiprakash Singh union ody_apax_nderr_info {
1057*4b8b8d74SJaiprakash Singh 	uint64_t u;
1058*4b8b8d74SJaiprakash Singh 	struct ody_apax_nderr_info_s {
1059*4b8b8d74SJaiprakash Singh 		uint64_t srcid                       : 11;
1060*4b8b8d74SJaiprakash Singh 		uint64_t opcode                      : 7;
1061*4b8b8d74SJaiprakash Singh 		uint64_t reserved_18_57              : 40;
1062*4b8b8d74SJaiprakash Singh 		uint64_t snp_perr                    : 1;
1063*4b8b8d74SJaiprakash Singh 		uint64_t dat_perr                    : 1;
1064*4b8b8d74SJaiprakash Singh 		uint64_t rsp_perr                    : 1;
1065*4b8b8d74SJaiprakash Singh 		uint64_t reserved_61_63              : 3;
1066*4b8b8d74SJaiprakash Singh 	} s;
1067*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_nderr_info_s cn; */
1068*4b8b8d74SJaiprakash Singh };
1069*4b8b8d74SJaiprakash Singh typedef union ody_apax_nderr_info ody_apax_nderr_info_t;
1070*4b8b8d74SJaiprakash Singh 
1071*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_NDERR_INFO(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_NDERR_INFO(uint64_t a)1072*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_NDERR_INFO(uint64_t a)
1073*4b8b8d74SJaiprakash Singh {
1074*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1075*4b8b8d74SJaiprakash Singh 		return 0x87e349001528ll + 0x1000000ll * ((a) & 0x7f);
1076*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_NDERR_INFO", 1, a, 0, 0, 0, 0, 0);
1077*4b8b8d74SJaiprakash Singh }
1078*4b8b8d74SJaiprakash Singh 
1079*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_NDERR_INFO(a) ody_apax_nderr_info_t
1080*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_NDERR_INFO(a) CSR_TYPE_RSL
1081*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_NDERR_INFO(a) "APAX_NDERR_INFO"
1082*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_NDERR_INFO(a) 0x0 /* PF_BAR0 */
1083*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_NDERR_INFO(a) (a)
1084*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_NDERR_INFO(a) (a), -1, -1, -1
1085*4b8b8d74SJaiprakash Singh 
1086*4b8b8d74SJaiprakash Singh /**
1087*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_pfc#
1088*4b8b8d74SJaiprakash Singh  *
1089*4b8b8d74SJaiprakash Singh  * APA Performance Counter Registers
1090*4b8b8d74SJaiprakash Singh  */
1091*4b8b8d74SJaiprakash Singh union ody_apax_pfcx {
1092*4b8b8d74SJaiprakash Singh 	uint64_t u;
1093*4b8b8d74SJaiprakash Singh 	struct ody_apax_pfcx_s {
1094*4b8b8d74SJaiprakash Singh 		uint64_t count                       : 64;
1095*4b8b8d74SJaiprakash Singh 	} s;
1096*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_pfcx_s cn; */
1097*4b8b8d74SJaiprakash Singh };
1098*4b8b8d74SJaiprakash Singh typedef union ody_apax_pfcx ody_apax_pfcx_t;
1099*4b8b8d74SJaiprakash Singh 
1100*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_PFCX(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_APAX_PFCX(uint64_t a,uint64_t b)1101*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_PFCX(uint64_t a, uint64_t b)
1102*4b8b8d74SJaiprakash Singh {
1103*4b8b8d74SJaiprakash Singh 	if ((a <= 89) && (b <= 5))
1104*4b8b8d74SJaiprakash Singh 		return 0x87e349010000ll + 0x1000000ll * ((a) & 0x7f) + 8ll * ((b) & 0x7);
1105*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_PFCX", 2, a, b, 0, 0, 0, 0);
1106*4b8b8d74SJaiprakash Singh }
1107*4b8b8d74SJaiprakash Singh 
1108*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_PFCX(a, b) ody_apax_pfcx_t
1109*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_PFCX(a, b) CSR_TYPE_RSL
1110*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_PFCX(a, b) "APAX_PFCX"
1111*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_PFCX(a, b) 0x0 /* PF_BAR0 */
1112*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_PFCX(a, b) (a)
1113*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_PFCX(a, b) (a), (b), -1, -1
1114*4b8b8d74SJaiprakash Singh 
1115*4b8b8d74SJaiprakash Singh /**
1116*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_pll
1117*4b8b8d74SJaiprakash Singh  *
1118*4b8b8d74SJaiprakash Singh  * APA PLL Control Register
1119*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
1120*4b8b8d74SJaiprakash Singh  * Each index of this register controls a PLL on the chip.  The register is used for
1121*4b8b8d74SJaiprakash Singh  * typical programming operations and is supplemented with the APA_MAN_PLL
1122*4b8b8d74SJaiprakash Singh  * register when selected.  Indexed by APA_PLL_E.
1123*4b8b8d74SJaiprakash Singh  *
1124*4b8b8d74SJaiprakash Singh  * The logic associated with the PLL functions can only process one operation at a time.
1125*4b8b8d74SJaiprakash Singh  * Writes to this register and to both APA_MAN_PLL and APA_TEST_PLL should only occur
1126*4b8b8d74SJaiprakash Singh  * when both the NEXT_PGM and NEXT_SWITCH fields are zero.  It is typically necessary
1127*4b8b8d74SJaiprakash Singh  * to poll this register to confirm this.
1128*4b8b8d74SJaiprakash Singh  *
1129*4b8b8d74SJaiprakash Singh  * The register fields are returned to reset values on a chip domain reset unless
1130*4b8b8d74SJaiprakash Singh  * specifically noted.
1131*4b8b8d74SJaiprakash Singh  */
1132*4b8b8d74SJaiprakash Singh union ody_apax_pll {
1133*4b8b8d74SJaiprakash Singh 	uint64_t u;
1134*4b8b8d74SJaiprakash Singh 	struct ody_apax_pll_s {
1135*4b8b8d74SJaiprakash Singh 		uint64_t next_switch                 : 16;
1136*4b8b8d74SJaiprakash Singh 		uint64_t next_pgm                    : 1;
1137*4b8b8d74SJaiprakash Singh 		uint64_t next_man                    : 1;
1138*4b8b8d74SJaiprakash Singh 		uint64_t reserved_18_20              : 3;
1139*4b8b8d74SJaiprakash Singh 		uint64_t next_pll_sel                : 3;
1140*4b8b8d74SJaiprakash Singh 		uint64_t next_mul                    : 7;
1141*4b8b8d74SJaiprakash Singh 		uint64_t reserved_31                 : 1;
1142*4b8b8d74SJaiprakash Singh 		uint64_t init_mul                    : 7;
1143*4b8b8d74SJaiprakash Singh 		uint64_t reserved_39                 : 1;
1144*4b8b8d74SJaiprakash Singh 		uint64_t max_mul                     : 7;
1145*4b8b8d74SJaiprakash Singh 		uint64_t reserved_47                 : 1;
1146*4b8b8d74SJaiprakash Singh 		uint64_t cur_mul                     : 7;
1147*4b8b8d74SJaiprakash Singh 		uint64_t no_rst_chip                 : 1;
1148*4b8b8d74SJaiprakash Singh 		uint64_t no_auto_pgm                 : 1;
1149*4b8b8d74SJaiprakash Singh 		uint64_t cur_pll_sel                 : 3;
1150*4b8b8d74SJaiprakash Singh 		uint64_t reserved_60                 : 1;
1151*4b8b8d74SJaiprakash Singh 		uint64_t alt_ref                     : 1;
1152*4b8b8d74SJaiprakash Singh 		uint64_t pll1_present                : 1;
1153*4b8b8d74SJaiprakash Singh 		uint64_t aro_present                 : 1;
1154*4b8b8d74SJaiprakash Singh 	} s;
1155*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_pll_s cn; */
1156*4b8b8d74SJaiprakash Singh };
1157*4b8b8d74SJaiprakash Singh typedef union ody_apax_pll ody_apax_pll_t;
1158*4b8b8d74SJaiprakash Singh 
1159*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_PLL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_PLL(uint64_t a)1160*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_PLL(uint64_t a)
1161*4b8b8d74SJaiprakash Singh {
1162*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1163*4b8b8d74SJaiprakash Singh 		return 0x87e349004000ll + 0x1000000ll * ((a) & 0x7f);
1164*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_PLL", 1, a, 0, 0, 0, 0, 0);
1165*4b8b8d74SJaiprakash Singh }
1166*4b8b8d74SJaiprakash Singh 
1167*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_PLL(a) ody_apax_pll_t
1168*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_PLL(a) CSR_TYPE_RSL
1169*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_PLL(a) "APAX_PLL"
1170*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_PLL(a) 0x0 /* PF_BAR0 */
1171*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_PLL(a) (a)
1172*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_PLL(a) (a), -1, -1, -1
1173*4b8b8d74SJaiprakash Singh 
1174*4b8b8d74SJaiprakash Singh /**
1175*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_pllro_status
1176*4b8b8d74SJaiprakash Singh  *
1177*4b8b8d74SJaiprakash Singh  * APA PLLRO Status Register
1178*4b8b8d74SJaiprakash Singh  */
1179*4b8b8d74SJaiprakash Singh union ody_apax_pllro_status {
1180*4b8b8d74SJaiprakash Singh 	uint64_t u;
1181*4b8b8d74SJaiprakash Singh 	struct ody_apax_pllro_status_s {
1182*4b8b8d74SJaiprakash Singh 		uint64_t status                      : 32;
1183*4b8b8d74SJaiprakash Singh 		uint64_t droop                       : 1;
1184*4b8b8d74SJaiprakash Singh 		uint64_t reserved_33_63              : 31;
1185*4b8b8d74SJaiprakash Singh 	} s;
1186*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_pllro_status_s cn; */
1187*4b8b8d74SJaiprakash Singh };
1188*4b8b8d74SJaiprakash Singh typedef union ody_apax_pllro_status ody_apax_pllro_status_t;
1189*4b8b8d74SJaiprakash Singh 
1190*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_PLLRO_STATUS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_PLLRO_STATUS(uint64_t a)1191*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_PLLRO_STATUS(uint64_t a)
1192*4b8b8d74SJaiprakash Singh {
1193*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1194*4b8b8d74SJaiprakash Singh 		return 0x87e349001f00ll + 0x1000000ll * ((a) & 0x7f);
1195*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_PLLRO_STATUS", 1, a, 0, 0, 0, 0, 0);
1196*4b8b8d74SJaiprakash Singh }
1197*4b8b8d74SJaiprakash Singh 
1198*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_PLLRO_STATUS(a) ody_apax_pllro_status_t
1199*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_PLLRO_STATUS(a) CSR_TYPE_RSL
1200*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_PLLRO_STATUS(a) "APAX_PLLRO_STATUS"
1201*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_PLLRO_STATUS(a) 0x0 /* PF_BAR0 */
1202*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_PLLRO_STATUS(a) (a)
1203*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_PLLRO_STATUS(a) (a), -1, -1, -1
1204*4b8b8d74SJaiprakash Singh 
1205*4b8b8d74SJaiprakash Singh /**
1206*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_prf
1207*4b8b8d74SJaiprakash Singh  *
1208*4b8b8d74SJaiprakash Singh  * APA Performance Counter Control Register
1209*4b8b8d74SJaiprakash Singh  * This register controls measurement of the number of sent/received flits from APA
1210*4b8b8d74SJaiprakash Singh  * to/from the Xcalibur mesh.
1211*4b8b8d74SJaiprakash Singh  */
1212*4b8b8d74SJaiprakash Singh union ody_apax_prf {
1213*4b8b8d74SJaiprakash Singh 	uint64_t u;
1214*4b8b8d74SJaiprakash Singh 	struct ody_apax_prf_s {
1215*4b8b8d74SJaiprakash Singh 		uint64_t tx_req_en                   : 1;
1216*4b8b8d74SJaiprakash Singh 		uint64_t tx_rsp_en                   : 1;
1217*4b8b8d74SJaiprakash Singh 		uint64_t tx_dat_en                   : 1;
1218*4b8b8d74SJaiprakash Singh 		uint64_t rx_rsp_en                   : 1;
1219*4b8b8d74SJaiprakash Singh 		uint64_t rx_snp_en                   : 1;
1220*4b8b8d74SJaiprakash Singh 		uint64_t rx_dat_en                   : 1;
1221*4b8b8d74SJaiprakash Singh 		uint64_t reserved_6_63               : 58;
1222*4b8b8d74SJaiprakash Singh 	} s;
1223*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_prf_s cn; */
1224*4b8b8d74SJaiprakash Singh };
1225*4b8b8d74SJaiprakash Singh typedef union ody_apax_prf ody_apax_prf_t;
1226*4b8b8d74SJaiprakash Singh 
1227*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_PRF(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_PRF(uint64_t a)1228*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_PRF(uint64_t a)
1229*4b8b8d74SJaiprakash Singh {
1230*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1231*4b8b8d74SJaiprakash Singh 		return 0x87e349010100ll + 0x1000000ll * ((a) & 0x7f);
1232*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_PRF", 1, a, 0, 0, 0, 0, 0);
1233*4b8b8d74SJaiprakash Singh }
1234*4b8b8d74SJaiprakash Singh 
1235*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_PRF(a) ody_apax_prf_t
1236*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_PRF(a) CSR_TYPE_RSL
1237*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_PRF(a) "APAX_PRF"
1238*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_PRF(a) 0x0 /* PF_BAR0 */
1239*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_PRF(a) (a)
1240*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_PRF(a) (a), -1, -1, -1
1241*4b8b8d74SJaiprakash Singh 
1242*4b8b8d74SJaiprakash Singh /**
1243*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_rvbaraddr
1244*4b8b8d74SJaiprakash Singh  *
1245*4b8b8d74SJaiprakash Singh  * APA Reset Base Address Register
1246*4b8b8d74SJaiprakash Singh  */
1247*4b8b8d74SJaiprakash Singh union ody_apax_rvbaraddr {
1248*4b8b8d74SJaiprakash Singh 	uint64_t u;
1249*4b8b8d74SJaiprakash Singh 	struct ody_apax_rvbaraddr_s {
1250*4b8b8d74SJaiprakash Singh 		uint64_t reserved_0_1                : 2;
1251*4b8b8d74SJaiprakash Singh 		uint64_t addr                        : 46;
1252*4b8b8d74SJaiprakash Singh 		uint64_t reserved_48_63              : 16;
1253*4b8b8d74SJaiprakash Singh 	} s;
1254*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_rvbaraddr_s cn; */
1255*4b8b8d74SJaiprakash Singh };
1256*4b8b8d74SJaiprakash Singh typedef union ody_apax_rvbaraddr ody_apax_rvbaraddr_t;
1257*4b8b8d74SJaiprakash Singh 
1258*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_RVBARADDR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_RVBARADDR(uint64_t a)1259*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_RVBARADDR(uint64_t a)
1260*4b8b8d74SJaiprakash Singh {
1261*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1262*4b8b8d74SJaiprakash Singh 		return 0x87e349001400ll + 0x1000000ll * ((a) & 0x7f);
1263*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_RVBARADDR", 1, a, 0, 0, 0, 0, 0);
1264*4b8b8d74SJaiprakash Singh }
1265*4b8b8d74SJaiprakash Singh 
1266*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_RVBARADDR(a) ody_apax_rvbaraddr_t
1267*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_RVBARADDR(a) CSR_TYPE_RSL
1268*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_RVBARADDR(a) "APAX_RVBARADDR"
1269*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_RVBARADDR(a) 0x0 /* PF_BAR0 */
1270*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_RVBARADDR(a) (a)
1271*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_RVBARADDR(a) (a), -1, -1, -1
1272*4b8b8d74SJaiprakash Singh 
1273*4b8b8d74SJaiprakash Singh /**
1274*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_test_pll
1275*4b8b8d74SJaiprakash Singh  *
1276*4b8b8d74SJaiprakash Singh  * APA PLL Test Register
1277*4b8b8d74SJaiprakash Singh  * This register controls manual ARO programming and Test features.
1278*4b8b8d74SJaiprakash Singh  *
1279*4b8b8d74SJaiprakash Singh  * The logic associated with the PLL functions can only process one operation at a time.
1280*4b8b8d74SJaiprakash Singh  * Writes to this register should only occur when both the APA_PLL[NEXT_PGM] and
1281*4b8b8d74SJaiprakash Singh  * APA_PLL[NEXT_SWITCH] fields are zero.  Additionally a read operation should occur
1282*4b8b8d74SJaiprakash Singh  * between writes to this register to allow time for the test setting to be transmitted
1283*4b8b8d74SJaiprakash Singh  * successfully before new setting are applied.
1284*4b8b8d74SJaiprakash Singh  */
1285*4b8b8d74SJaiprakash Singh union ody_apax_test_pll {
1286*4b8b8d74SJaiprakash Singh 	uint64_t u;
1287*4b8b8d74SJaiprakash Singh 	struct ody_apax_test_pll_s {
1288*4b8b8d74SJaiprakash Singh 		uint64_t stop_cnt                    : 32;
1289*4b8b8d74SJaiprakash Singh 		uint64_t stop_clk                    : 1;
1290*4b8b8d74SJaiprakash Singh 		uint64_t msc_enable                  : 1;
1291*4b8b8d74SJaiprakash Singh 		uint64_t testclk_pll1                : 1;
1292*4b8b8d74SJaiprakash Singh 		uint64_t reserved_35_39              : 5;
1293*4b8b8d74SJaiprakash Singh 		uint64_t test_ana                    : 5;
1294*4b8b8d74SJaiprakash Singh 		uint64_t test_rsvd                   : 3;
1295*4b8b8d74SJaiprakash Singh 		uint64_t reserved_48_63              : 16;
1296*4b8b8d74SJaiprakash Singh 	} s;
1297*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_test_pll_s cn; */
1298*4b8b8d74SJaiprakash Singh };
1299*4b8b8d74SJaiprakash Singh typedef union ody_apax_test_pll ody_apax_test_pll_t;
1300*4b8b8d74SJaiprakash Singh 
1301*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_TEST_PLL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_TEST_PLL(uint64_t a)1302*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_TEST_PLL(uint64_t a)
1303*4b8b8d74SJaiprakash Singh {
1304*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1305*4b8b8d74SJaiprakash Singh 		return 0x87e349004010ll + 0x1000000ll * ((a) & 0x7f);
1306*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_TEST_PLL", 1, a, 0, 0, 0, 0, 0);
1307*4b8b8d74SJaiprakash Singh }
1308*4b8b8d74SJaiprakash Singh 
1309*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_TEST_PLL(a) ody_apax_test_pll_t
1310*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_TEST_PLL(a) CSR_TYPE_RSL
1311*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_TEST_PLL(a) "APAX_TEST_PLL"
1312*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_TEST_PLL(a) 0x0 /* PF_BAR0 */
1313*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_TEST_PLL(a) (a)
1314*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_TEST_PLL(a) (a), -1, -1, -1
1315*4b8b8d74SJaiprakash Singh 
1316*4b8b8d74SJaiprakash Singh /**
1317*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_wdog_core
1318*4b8b8d74SJaiprakash Singh  *
1319*4b8b8d74SJaiprakash Singh  * APA Watchdog Core Register
1320*4b8b8d74SJaiprakash Singh  * This register configures the timeouts for a core to receive responses.
1321*4b8b8d74SJaiprakash Singh  */
1322*4b8b8d74SJaiprakash Singh union ody_apax_wdog_core {
1323*4b8b8d74SJaiprakash Singh 	uint64_t u;
1324*4b8b8d74SJaiprakash Singh 	struct ody_apax_wdog_core_s {
1325*4b8b8d74SJaiprakash Singh 		uint64_t timeout                     : 31;
1326*4b8b8d74SJaiprakash Singh 		uint64_t enable                      : 1;
1327*4b8b8d74SJaiprakash Singh 		uint64_t reserved_32_63              : 32;
1328*4b8b8d74SJaiprakash Singh 	} s;
1329*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_wdog_core_s cn; */
1330*4b8b8d74SJaiprakash Singh };
1331*4b8b8d74SJaiprakash Singh typedef union ody_apax_wdog_core ody_apax_wdog_core_t;
1332*4b8b8d74SJaiprakash Singh 
1333*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_WDOG_CORE(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_WDOG_CORE(uint64_t a)1334*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_WDOG_CORE(uint64_t a)
1335*4b8b8d74SJaiprakash Singh {
1336*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1337*4b8b8d74SJaiprakash Singh 		return 0x87e349001300ll + 0x1000000ll * ((a) & 0x7f);
1338*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_WDOG_CORE", 1, a, 0, 0, 0, 0, 0);
1339*4b8b8d74SJaiprakash Singh }
1340*4b8b8d74SJaiprakash Singh 
1341*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_WDOG_CORE(a) ody_apax_wdog_core_t
1342*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_WDOG_CORE(a) CSR_TYPE_RSL
1343*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_WDOG_CORE(a) "APAX_WDOG_CORE"
1344*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_WDOG_CORE(a) 0x0 /* PF_BAR0 */
1345*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_WDOG_CORE(a) (a)
1346*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_WDOG_CORE(a) (a), -1, -1, -1
1347*4b8b8d74SJaiprakash Singh 
1348*4b8b8d74SJaiprakash Singh /**
1349*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_wdog_core_diag
1350*4b8b8d74SJaiprakash Singh  *
1351*4b8b8d74SJaiprakash Singh  * APA Watchdog Core Diagnostic Register
1352*4b8b8d74SJaiprakash Singh  * This register reports and captures wdog timeouts for core. Timeouts indicate that
1353*4b8b8d74SJaiprakash Singh  * the core did not receive all the expected responses.
1354*4b8b8d74SJaiprakash Singh  */
1355*4b8b8d74SJaiprakash Singh union ody_apax_wdog_core_diag {
1356*4b8b8d74SJaiprakash Singh 	uint64_t u;
1357*4b8b8d74SJaiprakash Singh 	struct ody_apax_wdog_core_diag_s {
1358*4b8b8d74SJaiprakash Singh 		uint64_t txnid                       : 12;
1359*4b8b8d74SJaiprakash Singh 		uint64_t reqt                        : 3;
1360*4b8b8d74SJaiprakash Singh 		uint64_t epoch                       : 1;
1361*4b8b8d74SJaiprakash Singh 		uint64_t state                       : 4;
1362*4b8b8d74SJaiprakash Singh 		uint64_t reserved_20_29              : 10;
1363*4b8b8d74SJaiprakash Singh 		uint64_t stale                       : 1;
1364*4b8b8d74SJaiprakash Singh 		uint64_t multi                       : 1;
1365*4b8b8d74SJaiprakash Singh 		uint64_t reserved_32_63              : 32;
1366*4b8b8d74SJaiprakash Singh 	} s;
1367*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_wdog_core_diag_s cn; */
1368*4b8b8d74SJaiprakash Singh };
1369*4b8b8d74SJaiprakash Singh typedef union ody_apax_wdog_core_diag ody_apax_wdog_core_diag_t;
1370*4b8b8d74SJaiprakash Singh 
1371*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_WDOG_CORE_DIAG(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_WDOG_CORE_DIAG(uint64_t a)1372*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_WDOG_CORE_DIAG(uint64_t a)
1373*4b8b8d74SJaiprakash Singh {
1374*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1375*4b8b8d74SJaiprakash Singh 		return 0x87e349001310ll + 0x1000000ll * ((a) & 0x7f);
1376*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_WDOG_CORE_DIAG", 1, a, 0, 0, 0, 0, 0);
1377*4b8b8d74SJaiprakash Singh }
1378*4b8b8d74SJaiprakash Singh 
1379*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_WDOG_CORE_DIAG(a) ody_apax_wdog_core_diag_t
1380*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_WDOG_CORE_DIAG(a) CSR_TYPE_RSL
1381*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_WDOG_CORE_DIAG(a) "APAX_WDOG_CORE_DIAG"
1382*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_WDOG_CORE_DIAG(a) 0x0 /* PF_BAR0 */
1383*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_WDOG_CORE_DIAG(a) (a)
1384*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_WDOG_CORE_DIAG(a) (a), -1, -1, -1
1385*4b8b8d74SJaiprakash Singh 
1386*4b8b8d74SJaiprakash Singh /**
1387*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_wdog_int_ena_w1c
1388*4b8b8d74SJaiprakash Singh  *
1389*4b8b8d74SJaiprakash Singh  * APA Watchdog Interrupt Enable Clear Registers
1390*4b8b8d74SJaiprakash Singh  * This register clears interrupt enable bits.
1391*4b8b8d74SJaiprakash Singh  */
1392*4b8b8d74SJaiprakash Singh union ody_apax_wdog_int_ena_w1c {
1393*4b8b8d74SJaiprakash Singh 	uint64_t u;
1394*4b8b8d74SJaiprakash Singh 	struct ody_apax_wdog_int_ena_w1c_s {
1395*4b8b8d74SJaiprakash Singh 		uint64_t wdog_core                   : 1;
1396*4b8b8d74SJaiprakash Singh 		uint64_t wdog_struct_crd             : 1;
1397*4b8b8d74SJaiprakash Singh 		uint64_t wdog_struct_dat             : 1;
1398*4b8b8d74SJaiprakash Singh 		uint64_t wdog_struct_rqb             : 1;
1399*4b8b8d74SJaiprakash Singh 		uint64_t wdog_struct_txnid           : 1;
1400*4b8b8d74SJaiprakash Singh 		uint64_t reserved_5_63               : 59;
1401*4b8b8d74SJaiprakash Singh 	} s;
1402*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_wdog_int_ena_w1c_s cn; */
1403*4b8b8d74SJaiprakash Singh };
1404*4b8b8d74SJaiprakash Singh typedef union ody_apax_wdog_int_ena_w1c ody_apax_wdog_int_ena_w1c_t;
1405*4b8b8d74SJaiprakash Singh 
1406*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_WDOG_INT_ENA_W1C(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_WDOG_INT_ENA_W1C(uint64_t a)1407*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_WDOG_INT_ENA_W1C(uint64_t a)
1408*4b8b8d74SJaiprakash Singh {
1409*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1410*4b8b8d74SJaiprakash Singh 		return 0x87e349001e30ll + 0x1000000ll * ((a) & 0x7f);
1411*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_WDOG_INT_ENA_W1C", 1, a, 0, 0, 0, 0, 0);
1412*4b8b8d74SJaiprakash Singh }
1413*4b8b8d74SJaiprakash Singh 
1414*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_WDOG_INT_ENA_W1C(a) ody_apax_wdog_int_ena_w1c_t
1415*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_WDOG_INT_ENA_W1C(a) CSR_TYPE_RSL
1416*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_WDOG_INT_ENA_W1C(a) "APAX_WDOG_INT_ENA_W1C"
1417*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_WDOG_INT_ENA_W1C(a) 0x0 /* PF_BAR0 */
1418*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_WDOG_INT_ENA_W1C(a) (a)
1419*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_WDOG_INT_ENA_W1C(a) (a), -1, -1, -1
1420*4b8b8d74SJaiprakash Singh 
1421*4b8b8d74SJaiprakash Singh /**
1422*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_wdog_int_ena_w1s
1423*4b8b8d74SJaiprakash Singh  *
1424*4b8b8d74SJaiprakash Singh  * APA Watchdog Interrupt Enable Set Registers
1425*4b8b8d74SJaiprakash Singh  * This register sets interrupt enable bits.
1426*4b8b8d74SJaiprakash Singh  */
1427*4b8b8d74SJaiprakash Singh union ody_apax_wdog_int_ena_w1s {
1428*4b8b8d74SJaiprakash Singh 	uint64_t u;
1429*4b8b8d74SJaiprakash Singh 	struct ody_apax_wdog_int_ena_w1s_s {
1430*4b8b8d74SJaiprakash Singh 		uint64_t wdog_core                   : 1;
1431*4b8b8d74SJaiprakash Singh 		uint64_t wdog_struct_crd             : 1;
1432*4b8b8d74SJaiprakash Singh 		uint64_t wdog_struct_dat             : 1;
1433*4b8b8d74SJaiprakash Singh 		uint64_t wdog_struct_rqb             : 1;
1434*4b8b8d74SJaiprakash Singh 		uint64_t wdog_struct_txnid           : 1;
1435*4b8b8d74SJaiprakash Singh 		uint64_t reserved_5_63               : 59;
1436*4b8b8d74SJaiprakash Singh 	} s;
1437*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_wdog_int_ena_w1s_s cn; */
1438*4b8b8d74SJaiprakash Singh };
1439*4b8b8d74SJaiprakash Singh typedef union ody_apax_wdog_int_ena_w1s ody_apax_wdog_int_ena_w1s_t;
1440*4b8b8d74SJaiprakash Singh 
1441*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_WDOG_INT_ENA_W1S(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_WDOG_INT_ENA_W1S(uint64_t a)1442*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_WDOG_INT_ENA_W1S(uint64_t a)
1443*4b8b8d74SJaiprakash Singh {
1444*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1445*4b8b8d74SJaiprakash Singh 		return 0x87e349001e38ll + 0x1000000ll * ((a) & 0x7f);
1446*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_WDOG_INT_ENA_W1S", 1, a, 0, 0, 0, 0, 0);
1447*4b8b8d74SJaiprakash Singh }
1448*4b8b8d74SJaiprakash Singh 
1449*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_WDOG_INT_ENA_W1S(a) ody_apax_wdog_int_ena_w1s_t
1450*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_WDOG_INT_ENA_W1S(a) CSR_TYPE_RSL
1451*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_WDOG_INT_ENA_W1S(a) "APAX_WDOG_INT_ENA_W1S"
1452*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_WDOG_INT_ENA_W1S(a) 0x0 /* PF_BAR0 */
1453*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_WDOG_INT_ENA_W1S(a) (a)
1454*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_WDOG_INT_ENA_W1S(a) (a), -1, -1, -1
1455*4b8b8d74SJaiprakash Singh 
1456*4b8b8d74SJaiprakash Singh /**
1457*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_wdog_int_w1c
1458*4b8b8d74SJaiprakash Singh  *
1459*4b8b8d74SJaiprakash Singh  * APA Watchdog Interrupt Register
1460*4b8b8d74SJaiprakash Singh  * This register reports watchdog interrupt status.
1461*4b8b8d74SJaiprakash Singh  */
1462*4b8b8d74SJaiprakash Singh union ody_apax_wdog_int_w1c {
1463*4b8b8d74SJaiprakash Singh 	uint64_t u;
1464*4b8b8d74SJaiprakash Singh 	struct ody_apax_wdog_int_w1c_s {
1465*4b8b8d74SJaiprakash Singh 		uint64_t wdog_core                   : 1;
1466*4b8b8d74SJaiprakash Singh 		uint64_t wdog_struct_crd             : 1;
1467*4b8b8d74SJaiprakash Singh 		uint64_t wdog_struct_dat             : 1;
1468*4b8b8d74SJaiprakash Singh 		uint64_t wdog_struct_rqb             : 1;
1469*4b8b8d74SJaiprakash Singh 		uint64_t wdog_struct_txnid           : 1;
1470*4b8b8d74SJaiprakash Singh 		uint64_t reserved_5_63               : 59;
1471*4b8b8d74SJaiprakash Singh 	} s;
1472*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_wdog_int_w1c_s cn; */
1473*4b8b8d74SJaiprakash Singh };
1474*4b8b8d74SJaiprakash Singh typedef union ody_apax_wdog_int_w1c ody_apax_wdog_int_w1c_t;
1475*4b8b8d74SJaiprakash Singh 
1476*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_WDOG_INT_W1C(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_WDOG_INT_W1C(uint64_t a)1477*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_WDOG_INT_W1C(uint64_t a)
1478*4b8b8d74SJaiprakash Singh {
1479*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1480*4b8b8d74SJaiprakash Singh 		return 0x87e349001e20ll + 0x1000000ll * ((a) & 0x7f);
1481*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_WDOG_INT_W1C", 1, a, 0, 0, 0, 0, 0);
1482*4b8b8d74SJaiprakash Singh }
1483*4b8b8d74SJaiprakash Singh 
1484*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_WDOG_INT_W1C(a) ody_apax_wdog_int_w1c_t
1485*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_WDOG_INT_W1C(a) CSR_TYPE_RSL
1486*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_WDOG_INT_W1C(a) "APAX_WDOG_INT_W1C"
1487*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_WDOG_INT_W1C(a) 0x0 /* PF_BAR0 */
1488*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_WDOG_INT_W1C(a) (a)
1489*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_WDOG_INT_W1C(a) (a), -1, -1, -1
1490*4b8b8d74SJaiprakash Singh 
1491*4b8b8d74SJaiprakash Singh /**
1492*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_wdog_int_w1s
1493*4b8b8d74SJaiprakash Singh  *
1494*4b8b8d74SJaiprakash Singh  * APA Watchdog Interrupt Set Registers
1495*4b8b8d74SJaiprakash Singh  * This register sets interrupt bits.
1496*4b8b8d74SJaiprakash Singh  */
1497*4b8b8d74SJaiprakash Singh union ody_apax_wdog_int_w1s {
1498*4b8b8d74SJaiprakash Singh 	uint64_t u;
1499*4b8b8d74SJaiprakash Singh 	struct ody_apax_wdog_int_w1s_s {
1500*4b8b8d74SJaiprakash Singh 		uint64_t wdog_core                   : 1;
1501*4b8b8d74SJaiprakash Singh 		uint64_t wdog_struct_crd             : 1;
1502*4b8b8d74SJaiprakash Singh 		uint64_t wdog_struct_dat             : 1;
1503*4b8b8d74SJaiprakash Singh 		uint64_t wdog_struct_rqb             : 1;
1504*4b8b8d74SJaiprakash Singh 		uint64_t wdog_struct_txnid           : 1;
1505*4b8b8d74SJaiprakash Singh 		uint64_t reserved_5_63               : 59;
1506*4b8b8d74SJaiprakash Singh 	} s;
1507*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_wdog_int_w1s_s cn; */
1508*4b8b8d74SJaiprakash Singh };
1509*4b8b8d74SJaiprakash Singh typedef union ody_apax_wdog_int_w1s ody_apax_wdog_int_w1s_t;
1510*4b8b8d74SJaiprakash Singh 
1511*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_WDOG_INT_W1S(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_WDOG_INT_W1S(uint64_t a)1512*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_WDOG_INT_W1S(uint64_t a)
1513*4b8b8d74SJaiprakash Singh {
1514*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1515*4b8b8d74SJaiprakash Singh 		return 0x87e349001e28ll + 0x1000000ll * ((a) & 0x7f);
1516*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_WDOG_INT_W1S", 1, a, 0, 0, 0, 0, 0);
1517*4b8b8d74SJaiprakash Singh }
1518*4b8b8d74SJaiprakash Singh 
1519*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_WDOG_INT_W1S(a) ody_apax_wdog_int_w1s_t
1520*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_WDOG_INT_W1S(a) CSR_TYPE_RSL
1521*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_WDOG_INT_W1S(a) "APAX_WDOG_INT_W1S"
1522*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_WDOG_INT_W1S(a) 0x0 /* PF_BAR0 */
1523*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_WDOG_INT_W1S(a) (a)
1524*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_WDOG_INT_W1S(a) (a), -1, -1, -1
1525*4b8b8d74SJaiprakash Singh 
1526*4b8b8d74SJaiprakash Singh /**
1527*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_wdog_struct
1528*4b8b8d74SJaiprakash Singh  *
1529*4b8b8d74SJaiprakash Singh  * APA Watchdog Structure Register
1530*4b8b8d74SJaiprakash Singh  * This register configures the timeouts for APA internal structures to clear.
1531*4b8b8d74SJaiprakash Singh  */
1532*4b8b8d74SJaiprakash Singh union ody_apax_wdog_struct {
1533*4b8b8d74SJaiprakash Singh 	uint64_t u;
1534*4b8b8d74SJaiprakash Singh 	struct ody_apax_wdog_struct_s {
1535*4b8b8d74SJaiprakash Singh 		uint64_t timeout                     : 31;
1536*4b8b8d74SJaiprakash Singh 		uint64_t enable                      : 1;
1537*4b8b8d74SJaiprakash Singh 		uint64_t reserved_32_63              : 32;
1538*4b8b8d74SJaiprakash Singh 	} s;
1539*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_wdog_struct_s cn; */
1540*4b8b8d74SJaiprakash Singh };
1541*4b8b8d74SJaiprakash Singh typedef union ody_apax_wdog_struct ody_apax_wdog_struct_t;
1542*4b8b8d74SJaiprakash Singh 
1543*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_WDOG_STRUCT(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_WDOG_STRUCT(uint64_t a)1544*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_WDOG_STRUCT(uint64_t a)
1545*4b8b8d74SJaiprakash Singh {
1546*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1547*4b8b8d74SJaiprakash Singh 		return 0x87e349001308ll + 0x1000000ll * ((a) & 0x7f);
1548*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_WDOG_STRUCT", 1, a, 0, 0, 0, 0, 0);
1549*4b8b8d74SJaiprakash Singh }
1550*4b8b8d74SJaiprakash Singh 
1551*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_WDOG_STRUCT(a) ody_apax_wdog_struct_t
1552*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_WDOG_STRUCT(a) CSR_TYPE_RSL
1553*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_WDOG_STRUCT(a) "APAX_WDOG_STRUCT"
1554*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_WDOG_STRUCT(a) 0x0 /* PF_BAR0 */
1555*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_WDOG_STRUCT(a) (a)
1556*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_WDOG_STRUCT(a) (a), -1, -1, -1
1557*4b8b8d74SJaiprakash Singh 
1558*4b8b8d74SJaiprakash Singh /**
1559*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_wdog_struct_crd_diag
1560*4b8b8d74SJaiprakash Singh  *
1561*4b8b8d74SJaiprakash Singh  * APA Watchdog Structure Credit Diagnostic Register
1562*4b8b8d74SJaiprakash Singh  * This register reports and captures watchdog timeouts for CRD, which indicates that
1563*4b8b8d74SJaiprakash Singh  * an unexpected CHI protocol credit was received.
1564*4b8b8d74SJaiprakash Singh  */
1565*4b8b8d74SJaiprakash Singh union ody_apax_wdog_struct_crd_diag {
1566*4b8b8d74SJaiprakash Singh 	uint64_t u;
1567*4b8b8d74SJaiprakash Singh 	struct ody_apax_wdog_struct_crd_diag_s {
1568*4b8b8d74SJaiprakash Singh 		uint64_t pcrdtype                    : 4;
1569*4b8b8d74SJaiprakash Singh 		uint64_t tgtid                       : 11;
1570*4b8b8d74SJaiprakash Singh 		uint64_t reserved_15_29              : 15;
1571*4b8b8d74SJaiprakash Singh 		uint64_t stale                       : 1;
1572*4b8b8d74SJaiprakash Singh 		uint64_t multi                       : 1;
1573*4b8b8d74SJaiprakash Singh 		uint64_t reserved_32_63              : 32;
1574*4b8b8d74SJaiprakash Singh 	} s;
1575*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_wdog_struct_crd_diag_s cn; */
1576*4b8b8d74SJaiprakash Singh };
1577*4b8b8d74SJaiprakash Singh typedef union ody_apax_wdog_struct_crd_diag ody_apax_wdog_struct_crd_diag_t;
1578*4b8b8d74SJaiprakash Singh 
1579*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_WDOG_STRUCT_CRD_DIAG(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_WDOG_STRUCT_CRD_DIAG(uint64_t a)1580*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_WDOG_STRUCT_CRD_DIAG(uint64_t a)
1581*4b8b8d74SJaiprakash Singh {
1582*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1583*4b8b8d74SJaiprakash Singh 		return 0x87e349001318ll + 0x1000000ll * ((a) & 0x7f);
1584*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_WDOG_STRUCT_CRD_DIAG", 1, a, 0, 0, 0, 0, 0);
1585*4b8b8d74SJaiprakash Singh }
1586*4b8b8d74SJaiprakash Singh 
1587*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_WDOG_STRUCT_CRD_DIAG(a) ody_apax_wdog_struct_crd_diag_t
1588*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_WDOG_STRUCT_CRD_DIAG(a) CSR_TYPE_RSL
1589*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_WDOG_STRUCT_CRD_DIAG(a) "APAX_WDOG_STRUCT_CRD_DIAG"
1590*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_WDOG_STRUCT_CRD_DIAG(a) 0x0 /* PF_BAR0 */
1591*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_WDOG_STRUCT_CRD_DIAG(a) (a)
1592*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_WDOG_STRUCT_CRD_DIAG(a) (a), -1, -1, -1
1593*4b8b8d74SJaiprakash Singh 
1594*4b8b8d74SJaiprakash Singh /**
1595*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_wdog_struct_dat_diag
1596*4b8b8d74SJaiprakash Singh  *
1597*4b8b8d74SJaiprakash Singh  * APA WDOG STRUCT DAT DIAG Register
1598*4b8b8d74SJaiprakash Singh  * This register reports and captures watchdog timeouts for DAT, which indicates that
1599*4b8b8d74SJaiprakash Singh  * write data for a store did not get sent.
1600*4b8b8d74SJaiprakash Singh  */
1601*4b8b8d74SJaiprakash Singh union ody_apax_wdog_struct_dat_diag {
1602*4b8b8d74SJaiprakash Singh 	uint64_t u;
1603*4b8b8d74SJaiprakash Singh 	struct ody_apax_wdog_struct_dat_diag_s {
1604*4b8b8d74SJaiprakash Singh 		uint64_t dbid                        : 12;
1605*4b8b8d74SJaiprakash Singh 		uint64_t tgtid                       : 11;
1606*4b8b8d74SJaiprakash Singh 		uint64_t has_dbid                    : 1;
1607*4b8b8d74SJaiprakash Singh 		uint64_t datst0                      : 3;
1608*4b8b8d74SJaiprakash Singh 		uint64_t datst1                      : 3;
1609*4b8b8d74SJaiprakash Singh 		uint64_t datst2                      : 3;
1610*4b8b8d74SJaiprakash Singh 		uint64_t datst3                      : 3;
1611*4b8b8d74SJaiprakash Singh 		uint64_t has_lsw_idx                 : 1;
1612*4b8b8d74SJaiprakash Singh 		uint64_t reserved_37_61              : 25;
1613*4b8b8d74SJaiprakash Singh 		uint64_t stale                       : 1;
1614*4b8b8d74SJaiprakash Singh 		uint64_t multi                       : 1;
1615*4b8b8d74SJaiprakash Singh 	} s;
1616*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_wdog_struct_dat_diag_s cn; */
1617*4b8b8d74SJaiprakash Singh };
1618*4b8b8d74SJaiprakash Singh typedef union ody_apax_wdog_struct_dat_diag ody_apax_wdog_struct_dat_diag_t;
1619*4b8b8d74SJaiprakash Singh 
1620*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_WDOG_STRUCT_DAT_DIAG(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_WDOG_STRUCT_DAT_DIAG(uint64_t a)1621*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_WDOG_STRUCT_DAT_DIAG(uint64_t a)
1622*4b8b8d74SJaiprakash Singh {
1623*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1624*4b8b8d74SJaiprakash Singh 		return 0x87e349001330ll + 0x1000000ll * ((a) & 0x7f);
1625*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_WDOG_STRUCT_DAT_DIAG", 1, a, 0, 0, 0, 0, 0);
1626*4b8b8d74SJaiprakash Singh }
1627*4b8b8d74SJaiprakash Singh 
1628*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_WDOG_STRUCT_DAT_DIAG(a) ody_apax_wdog_struct_dat_diag_t
1629*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_WDOG_STRUCT_DAT_DIAG(a) CSR_TYPE_RSL
1630*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_WDOG_STRUCT_DAT_DIAG(a) "APAX_WDOG_STRUCT_DAT_DIAG"
1631*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_WDOG_STRUCT_DAT_DIAG(a) 0x0 /* PF_BAR0 */
1632*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_WDOG_STRUCT_DAT_DIAG(a) (a)
1633*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_WDOG_STRUCT_DAT_DIAG(a) (a), -1, -1, -1
1634*4b8b8d74SJaiprakash Singh 
1635*4b8b8d74SJaiprakash Singh /**
1636*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_wdog_struct_rqb_diag
1637*4b8b8d74SJaiprakash Singh  *
1638*4b8b8d74SJaiprakash Singh  * APA WDOG STRUCT RQB DIAG Register
1639*4b8b8d74SJaiprakash Singh  * This register reports and captures watchdog timeouts for RQB, which indicates that a
1640*4b8b8d74SJaiprakash Singh  * request has not been acknowledged.
1641*4b8b8d74SJaiprakash Singh  */
1642*4b8b8d74SJaiprakash Singh union ody_apax_wdog_struct_rqb_diag {
1643*4b8b8d74SJaiprakash Singh 	uint64_t u;
1644*4b8b8d74SJaiprakash Singh 	struct ody_apax_wdog_struct_rqb_diag_s {
1645*4b8b8d74SJaiprakash Singh 		uint64_t reserved_0_11               : 12;
1646*4b8b8d74SJaiprakash Singh 		uint64_t txnid_new                   : 12;
1647*4b8b8d74SJaiprakash Singh 		uint64_t pcrdtype                    : 4;
1648*4b8b8d74SJaiprakash Singh 		uint64_t tgtid                       : 11;
1649*4b8b8d74SJaiprakash Singh 		uint64_t reserved_39                 : 1;
1650*4b8b8d74SJaiprakash Singh 		uint64_t state                       : 3;
1651*4b8b8d74SJaiprakash Singh 		uint64_t reserved_43_61              : 19;
1652*4b8b8d74SJaiprakash Singh 		uint64_t stale                       : 1;
1653*4b8b8d74SJaiprakash Singh 		uint64_t multi                       : 1;
1654*4b8b8d74SJaiprakash Singh 	} s;
1655*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_wdog_struct_rqb_diag_s cn; */
1656*4b8b8d74SJaiprakash Singh };
1657*4b8b8d74SJaiprakash Singh typedef union ody_apax_wdog_struct_rqb_diag ody_apax_wdog_struct_rqb_diag_t;
1658*4b8b8d74SJaiprakash Singh 
1659*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_WDOG_STRUCT_RQB_DIAG(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_WDOG_STRUCT_RQB_DIAG(uint64_t a)1660*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_WDOG_STRUCT_RQB_DIAG(uint64_t a)
1661*4b8b8d74SJaiprakash Singh {
1662*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1663*4b8b8d74SJaiprakash Singh 		return 0x87e349001328ll + 0x1000000ll * ((a) & 0x7f);
1664*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_WDOG_STRUCT_RQB_DIAG", 1, a, 0, 0, 0, 0, 0);
1665*4b8b8d74SJaiprakash Singh }
1666*4b8b8d74SJaiprakash Singh 
1667*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_WDOG_STRUCT_RQB_DIAG(a) ody_apax_wdog_struct_rqb_diag_t
1668*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_WDOG_STRUCT_RQB_DIAG(a) CSR_TYPE_RSL
1669*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_WDOG_STRUCT_RQB_DIAG(a) "APAX_WDOG_STRUCT_RQB_DIAG"
1670*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_WDOG_STRUCT_RQB_DIAG(a) 0x0 /* PF_BAR0 */
1671*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_WDOG_STRUCT_RQB_DIAG(a) (a)
1672*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_WDOG_STRUCT_RQB_DIAG(a) (a), -1, -1, -1
1673*4b8b8d74SJaiprakash Singh 
1674*4b8b8d74SJaiprakash Singh /**
1675*4b8b8d74SJaiprakash Singh  * Register (RSL) apa#_wdog_struct_txnid_diag
1676*4b8b8d74SJaiprakash Singh  *
1677*4b8b8d74SJaiprakash Singh  * APA WDOG STRUCT TXNID DIAG Register
1678*4b8b8d74SJaiprakash Singh  * This register reports and captures watchdog timeouts for TXNID, which indicates that
1679*4b8b8d74SJaiprakash Singh  * a completion was not received.
1680*4b8b8d74SJaiprakash Singh  */
1681*4b8b8d74SJaiprakash Singh union ody_apax_wdog_struct_txnid_diag {
1682*4b8b8d74SJaiprakash Singh 	uint64_t u;
1683*4b8b8d74SJaiprakash Singh 	struct ody_apax_wdog_struct_txnid_diag_s {
1684*4b8b8d74SJaiprakash Singh 		uint64_t txnid_orig                  : 12;
1685*4b8b8d74SJaiprakash Singh 		uint64_t txnid_new                   : 8;
1686*4b8b8d74SJaiprakash Singh 		uint64_t reserved_20_29              : 10;
1687*4b8b8d74SJaiprakash Singh 		uint64_t stale                       : 1;
1688*4b8b8d74SJaiprakash Singh 		uint64_t multi                       : 1;
1689*4b8b8d74SJaiprakash Singh 		uint64_t reserved_32_63              : 32;
1690*4b8b8d74SJaiprakash Singh 	} s;
1691*4b8b8d74SJaiprakash Singh 	/* struct ody_apax_wdog_struct_txnid_diag_s cn; */
1692*4b8b8d74SJaiprakash Singh };
1693*4b8b8d74SJaiprakash Singh typedef union ody_apax_wdog_struct_txnid_diag ody_apax_wdog_struct_txnid_diag_t;
1694*4b8b8d74SJaiprakash Singh 
1695*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_WDOG_STRUCT_TXNID_DIAG(uint64_t a) __attribute__ ((pure, always_inline));
ODY_APAX_WDOG_STRUCT_TXNID_DIAG(uint64_t a)1696*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_APAX_WDOG_STRUCT_TXNID_DIAG(uint64_t a)
1697*4b8b8d74SJaiprakash Singh {
1698*4b8b8d74SJaiprakash Singh 	if (a <= 89)
1699*4b8b8d74SJaiprakash Singh 		return 0x87e349001320ll + 0x1000000ll * ((a) & 0x7f);
1700*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("APAX_WDOG_STRUCT_TXNID_DIAG", 1, a, 0, 0, 0, 0, 0);
1701*4b8b8d74SJaiprakash Singh }
1702*4b8b8d74SJaiprakash Singh 
1703*4b8b8d74SJaiprakash Singh #define typedef_ODY_APAX_WDOG_STRUCT_TXNID_DIAG(a) ody_apax_wdog_struct_txnid_diag_t
1704*4b8b8d74SJaiprakash Singh #define bustype_ODY_APAX_WDOG_STRUCT_TXNID_DIAG(a) CSR_TYPE_RSL
1705*4b8b8d74SJaiprakash Singh #define basename_ODY_APAX_WDOG_STRUCT_TXNID_DIAG(a) "APAX_WDOG_STRUCT_TXNID_DIAG"
1706*4b8b8d74SJaiprakash Singh #define device_bar_ODY_APAX_WDOG_STRUCT_TXNID_DIAG(a) 0x0 /* PF_BAR0 */
1707*4b8b8d74SJaiprakash Singh #define busnum_ODY_APAX_WDOG_STRUCT_TXNID_DIAG(a) (a)
1708*4b8b8d74SJaiprakash Singh #define arguments_ODY_APAX_WDOG_STRUCT_TXNID_DIAG(a) (a), -1, -1, -1
1709*4b8b8d74SJaiprakash Singh 
1710*4b8b8d74SJaiprakash Singh #endif /* __ODY_CSRS_APA_H__ */
1711