xref: /rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-mrml.h (revision 12d80bbbf6031228bdd910eccb03bb185e8df527)
1*4b8b8d74SJaiprakash Singh #ifndef __ODY_CSRS_MRML_H__
2*4b8b8d74SJaiprakash Singh #define __ODY_CSRS_MRML_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  * MRML.
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 mrml_bar_e
24*4b8b8d74SJaiprakash Singh  *
25*4b8b8d74SJaiprakash Singh  * MRML Base Address Register Enumeration
26*4b8b8d74SJaiprakash Singh  * Enumerates the base address registers.
27*4b8b8d74SJaiprakash Singh  */
28*4b8b8d74SJaiprakash Singh #define ODY_MRML_BAR_E_MRML_PF_BAR0 (0x87e0fc000000ll)
29*4b8b8d74SJaiprakash Singh #define ODY_MRML_BAR_E_MRML_PF_BAR0_SIZE 0x40000ull
30*4b8b8d74SJaiprakash Singh #define ODY_MRML_BAR_E_MRML_PF_BAR4 (0x87e0fcf00000ll)
31*4b8b8d74SJaiprakash Singh #define ODY_MRML_BAR_E_MRML_PF_BAR4_SIZE 0x100000ull
32*4b8b8d74SJaiprakash Singh 
33*4b8b8d74SJaiprakash Singh /**
34*4b8b8d74SJaiprakash Singh  * Enumeration mrml_int_vec_e
35*4b8b8d74SJaiprakash Singh  *
36*4b8b8d74SJaiprakash Singh  * MRML MSI-X Vector Enumeration
37*4b8b8d74SJaiprakash Singh  * Enumerates the MSI-X interrupt vectors.
38*4b8b8d74SJaiprakash Singh  */
39*4b8b8d74SJaiprakash Singh #define ODY_MRML_INT_VEC_E_INTS (0)
40*4b8b8d74SJaiprakash Singh 
41*4b8b8d74SJaiprakash Singh /**
42*4b8b8d74SJaiprakash Singh  * Register (RSL) mrml_active_pc
43*4b8b8d74SJaiprakash Singh  *
44*4b8b8d74SJaiprakash Singh  * MRML Conditional Clock Counter Register
45*4b8b8d74SJaiprakash Singh  * This register counts conditional clocks for power management.
46*4b8b8d74SJaiprakash Singh  * This register is reset on chip reset.
47*4b8b8d74SJaiprakash Singh  */
48*4b8b8d74SJaiprakash Singh union ody_mrml_active_pc {
49*4b8b8d74SJaiprakash Singh 	uint64_t u;
50*4b8b8d74SJaiprakash Singh 	struct ody_mrml_active_pc_s {
51*4b8b8d74SJaiprakash Singh 		uint64_t count                       : 64;
52*4b8b8d74SJaiprakash Singh 	} s;
53*4b8b8d74SJaiprakash Singh 	/* struct ody_mrml_active_pc_s cn; */
54*4b8b8d74SJaiprakash Singh };
55*4b8b8d74SJaiprakash Singh typedef union ody_mrml_active_pc ody_mrml_active_pc_t;
56*4b8b8d74SJaiprakash Singh 
57*4b8b8d74SJaiprakash Singh #define ODY_MRML_ACTIVE_PC ODY_MRML_ACTIVE_PC_FUNC()
58*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_ACTIVE_PC_FUNC(void) __attribute__ ((pure, always_inline));
ODY_MRML_ACTIVE_PC_FUNC(void)59*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_ACTIVE_PC_FUNC(void)
60*4b8b8d74SJaiprakash Singh {
61*4b8b8d74SJaiprakash Singh 	return 0x87e0fc000010ll;
62*4b8b8d74SJaiprakash Singh }
63*4b8b8d74SJaiprakash Singh 
64*4b8b8d74SJaiprakash Singh #define typedef_ODY_MRML_ACTIVE_PC ody_mrml_active_pc_t
65*4b8b8d74SJaiprakash Singh #define bustype_ODY_MRML_ACTIVE_PC CSR_TYPE_RSL
66*4b8b8d74SJaiprakash Singh #define basename_ODY_MRML_ACTIVE_PC "MRML_ACTIVE_PC"
67*4b8b8d74SJaiprakash Singh #define device_bar_ODY_MRML_ACTIVE_PC 0x0 /* PF_BAR0 */
68*4b8b8d74SJaiprakash Singh #define busnum_ODY_MRML_ACTIVE_PC 0
69*4b8b8d74SJaiprakash Singh #define arguments_ODY_MRML_ACTIVE_PC -1, -1, -1, -1
70*4b8b8d74SJaiprakash Singh 
71*4b8b8d74SJaiprakash Singh /**
72*4b8b8d74SJaiprakash Singh  * Register (RSL) mrml_cmd_to
73*4b8b8d74SJaiprakash Singh  *
74*4b8b8d74SJaiprakash Singh  * MRML Command Timeout Register
75*4b8b8d74SJaiprakash Singh  */
76*4b8b8d74SJaiprakash Singh union ody_mrml_cmd_to {
77*4b8b8d74SJaiprakash Singh 	uint64_t u;
78*4b8b8d74SJaiprakash Singh 	struct ody_mrml_cmd_to_s {
79*4b8b8d74SJaiprakash Singh 		uint64_t tovalue                     : 32;
80*4b8b8d74SJaiprakash Singh 		uint64_t reserved_32_62              : 31;
81*4b8b8d74SJaiprakash Singh 		uint64_t ack_dis                     : 1;
82*4b8b8d74SJaiprakash Singh 	} s;
83*4b8b8d74SJaiprakash Singh 	/* struct ody_mrml_cmd_to_s cn; */
84*4b8b8d74SJaiprakash Singh };
85*4b8b8d74SJaiprakash Singh typedef union ody_mrml_cmd_to ody_mrml_cmd_to_t;
86*4b8b8d74SJaiprakash Singh 
87*4b8b8d74SJaiprakash Singh #define ODY_MRML_CMD_TO ODY_MRML_CMD_TO_FUNC()
88*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_CMD_TO_FUNC(void) __attribute__ ((pure, always_inline));
ODY_MRML_CMD_TO_FUNC(void)89*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_CMD_TO_FUNC(void)
90*4b8b8d74SJaiprakash Singh {
91*4b8b8d74SJaiprakash Singh 	return 0x87e0fc000008ll;
92*4b8b8d74SJaiprakash Singh }
93*4b8b8d74SJaiprakash Singh 
94*4b8b8d74SJaiprakash Singh #define typedef_ODY_MRML_CMD_TO ody_mrml_cmd_to_t
95*4b8b8d74SJaiprakash Singh #define bustype_ODY_MRML_CMD_TO CSR_TYPE_RSL
96*4b8b8d74SJaiprakash Singh #define basename_ODY_MRML_CMD_TO "MRML_CMD_TO"
97*4b8b8d74SJaiprakash Singh #define device_bar_ODY_MRML_CMD_TO 0x0 /* PF_BAR0 */
98*4b8b8d74SJaiprakash Singh #define busnum_ODY_MRML_CMD_TO 0
99*4b8b8d74SJaiprakash Singh #define arguments_ODY_MRML_CMD_TO -1, -1, -1, -1
100*4b8b8d74SJaiprakash Singh 
101*4b8b8d74SJaiprakash Singh /**
102*4b8b8d74SJaiprakash Singh  * Register (RSL) mrml_config
103*4b8b8d74SJaiprakash Singh  *
104*4b8b8d74SJaiprakash Singh  * MRML Configuration Register
105*4b8b8d74SJaiprakash Singh  */
106*4b8b8d74SJaiprakash Singh union ody_mrml_config {
107*4b8b8d74SJaiprakash Singh 	uint64_t u;
108*4b8b8d74SJaiprakash Singh 	struct ody_mrml_config_s {
109*4b8b8d74SJaiprakash Singh 		uint64_t force_clk_en                : 1;
110*4b8b8d74SJaiprakash Singh 		uint64_t force_gibm_clk              : 1;
111*4b8b8d74SJaiprakash Singh 		uint64_t reserved_2_63               : 62;
112*4b8b8d74SJaiprakash Singh 	} s;
113*4b8b8d74SJaiprakash Singh 	/* struct ody_mrml_config_s cn; */
114*4b8b8d74SJaiprakash Singh };
115*4b8b8d74SJaiprakash Singh typedef union ody_mrml_config ody_mrml_config_t;
116*4b8b8d74SJaiprakash Singh 
117*4b8b8d74SJaiprakash Singh #define ODY_MRML_CONFIG ODY_MRML_CONFIG_FUNC()
118*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_CONFIG_FUNC(void) __attribute__ ((pure, always_inline));
ODY_MRML_CONFIG_FUNC(void)119*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_CONFIG_FUNC(void)
120*4b8b8d74SJaiprakash Singh {
121*4b8b8d74SJaiprakash Singh 	return 0x87e0fc002000ll;
122*4b8b8d74SJaiprakash Singh }
123*4b8b8d74SJaiprakash Singh 
124*4b8b8d74SJaiprakash Singh #define typedef_ODY_MRML_CONFIG ody_mrml_config_t
125*4b8b8d74SJaiprakash Singh #define bustype_ODY_MRML_CONFIG CSR_TYPE_RSL
126*4b8b8d74SJaiprakash Singh #define basename_ODY_MRML_CONFIG "MRML_CONFIG"
127*4b8b8d74SJaiprakash Singh #define device_bar_ODY_MRML_CONFIG 0x0 /* PF_BAR0 */
128*4b8b8d74SJaiprakash Singh #define busnum_ODY_MRML_CONFIG 0
129*4b8b8d74SJaiprakash Singh #define arguments_ODY_MRML_CONFIG -1, -1, -1, -1
130*4b8b8d74SJaiprakash Singh 
131*4b8b8d74SJaiprakash Singh /**
132*4b8b8d74SJaiprakash Singh  * Register (RSL) mrml_int_ena_w1c
133*4b8b8d74SJaiprakash Singh  *
134*4b8b8d74SJaiprakash Singh  * MRML Interrupt Enable Clear Register
135*4b8b8d74SJaiprakash Singh  * This register clears interrupt enable bits.
136*4b8b8d74SJaiprakash Singh  */
137*4b8b8d74SJaiprakash Singh union ody_mrml_int_ena_w1c {
138*4b8b8d74SJaiprakash Singh 	uint64_t u;
139*4b8b8d74SJaiprakash Singh 	struct ody_mrml_int_ena_w1c_s {
140*4b8b8d74SJaiprakash Singh 		uint64_t ocx_toe                     : 1;
141*4b8b8d74SJaiprakash Singh 		uint64_t local_toe                   : 1;
142*4b8b8d74SJaiprakash Singh 		uint64_t gibm                        : 1;
143*4b8b8d74SJaiprakash Singh 		uint64_t reserved_3_63               : 61;
144*4b8b8d74SJaiprakash Singh 	} s;
145*4b8b8d74SJaiprakash Singh 	/* struct ody_mrml_int_ena_w1c_s cn; */
146*4b8b8d74SJaiprakash Singh };
147*4b8b8d74SJaiprakash Singh typedef union ody_mrml_int_ena_w1c ody_mrml_int_ena_w1c_t;
148*4b8b8d74SJaiprakash Singh 
149*4b8b8d74SJaiprakash Singh #define ODY_MRML_INT_ENA_W1C ODY_MRML_INT_ENA_W1C_FUNC()
150*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_INT_ENA_W1C_FUNC(void) __attribute__ ((pure, always_inline));
ODY_MRML_INT_ENA_W1C_FUNC(void)151*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_INT_ENA_W1C_FUNC(void)
152*4b8b8d74SJaiprakash Singh {
153*4b8b8d74SJaiprakash Singh 	return 0x87e0fc000880ll;
154*4b8b8d74SJaiprakash Singh }
155*4b8b8d74SJaiprakash Singh 
156*4b8b8d74SJaiprakash Singh #define typedef_ODY_MRML_INT_ENA_W1C ody_mrml_int_ena_w1c_t
157*4b8b8d74SJaiprakash Singh #define bustype_ODY_MRML_INT_ENA_W1C CSR_TYPE_RSL
158*4b8b8d74SJaiprakash Singh #define basename_ODY_MRML_INT_ENA_W1C "MRML_INT_ENA_W1C"
159*4b8b8d74SJaiprakash Singh #define device_bar_ODY_MRML_INT_ENA_W1C 0x0 /* PF_BAR0 */
160*4b8b8d74SJaiprakash Singh #define busnum_ODY_MRML_INT_ENA_W1C 0
161*4b8b8d74SJaiprakash Singh #define arguments_ODY_MRML_INT_ENA_W1C -1, -1, -1, -1
162*4b8b8d74SJaiprakash Singh 
163*4b8b8d74SJaiprakash Singh /**
164*4b8b8d74SJaiprakash Singh  * Register (RSL) mrml_int_ena_w1s
165*4b8b8d74SJaiprakash Singh  *
166*4b8b8d74SJaiprakash Singh  * MRML Interrupt Enable Set Register
167*4b8b8d74SJaiprakash Singh  * This register sets interrupt enable bits.
168*4b8b8d74SJaiprakash Singh  */
169*4b8b8d74SJaiprakash Singh union ody_mrml_int_ena_w1s {
170*4b8b8d74SJaiprakash Singh 	uint64_t u;
171*4b8b8d74SJaiprakash Singh 	struct ody_mrml_int_ena_w1s_s {
172*4b8b8d74SJaiprakash Singh 		uint64_t ocx_toe                     : 1;
173*4b8b8d74SJaiprakash Singh 		uint64_t local_toe                   : 1;
174*4b8b8d74SJaiprakash Singh 		uint64_t gibm                        : 1;
175*4b8b8d74SJaiprakash Singh 		uint64_t reserved_3_63               : 61;
176*4b8b8d74SJaiprakash Singh 	} s;
177*4b8b8d74SJaiprakash Singh 	/* struct ody_mrml_int_ena_w1s_s cn; */
178*4b8b8d74SJaiprakash Singh };
179*4b8b8d74SJaiprakash Singh typedef union ody_mrml_int_ena_w1s ody_mrml_int_ena_w1s_t;
180*4b8b8d74SJaiprakash Singh 
181*4b8b8d74SJaiprakash Singh #define ODY_MRML_INT_ENA_W1S ODY_MRML_INT_ENA_W1S_FUNC()
182*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_INT_ENA_W1S_FUNC(void) __attribute__ ((pure, always_inline));
ODY_MRML_INT_ENA_W1S_FUNC(void)183*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_INT_ENA_W1S_FUNC(void)
184*4b8b8d74SJaiprakash Singh {
185*4b8b8d74SJaiprakash Singh 	return 0x87e0fc001000ll;
186*4b8b8d74SJaiprakash Singh }
187*4b8b8d74SJaiprakash Singh 
188*4b8b8d74SJaiprakash Singh #define typedef_ODY_MRML_INT_ENA_W1S ody_mrml_int_ena_w1s_t
189*4b8b8d74SJaiprakash Singh #define bustype_ODY_MRML_INT_ENA_W1S CSR_TYPE_RSL
190*4b8b8d74SJaiprakash Singh #define basename_ODY_MRML_INT_ENA_W1S "MRML_INT_ENA_W1S"
191*4b8b8d74SJaiprakash Singh #define device_bar_ODY_MRML_INT_ENA_W1S 0x0 /* PF_BAR0 */
192*4b8b8d74SJaiprakash Singh #define busnum_ODY_MRML_INT_ENA_W1S 0
193*4b8b8d74SJaiprakash Singh #define arguments_ODY_MRML_INT_ENA_W1S -1, -1, -1, -1
194*4b8b8d74SJaiprakash Singh 
195*4b8b8d74SJaiprakash Singh /**
196*4b8b8d74SJaiprakash Singh  * Register (RSL) mrml_int_local_to
197*4b8b8d74SJaiprakash Singh  *
198*4b8b8d74SJaiprakash Singh  * MRML Local Node Timeout Register
199*4b8b8d74SJaiprakash Singh  * Configures local node timeouts.
200*4b8b8d74SJaiprakash Singh  */
201*4b8b8d74SJaiprakash Singh union ody_mrml_int_local_to {
202*4b8b8d74SJaiprakash Singh 	uint64_t u;
203*4b8b8d74SJaiprakash Singh 	struct ody_mrml_int_local_to_s {
204*4b8b8d74SJaiprakash Singh 		uint64_t tovalue                     : 32;
205*4b8b8d74SJaiprakash Singh 		uint64_t reserved_32_63              : 32;
206*4b8b8d74SJaiprakash Singh 	} s;
207*4b8b8d74SJaiprakash Singh 	/* struct ody_mrml_int_local_to_s cn; */
208*4b8b8d74SJaiprakash Singh };
209*4b8b8d74SJaiprakash Singh typedef union ody_mrml_int_local_to ody_mrml_int_local_to_t;
210*4b8b8d74SJaiprakash Singh 
211*4b8b8d74SJaiprakash Singh #define ODY_MRML_INT_LOCAL_TO ODY_MRML_INT_LOCAL_TO_FUNC()
212*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_INT_LOCAL_TO_FUNC(void) __attribute__ ((pure, always_inline));
ODY_MRML_INT_LOCAL_TO_FUNC(void)213*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_INT_LOCAL_TO_FUNC(void)
214*4b8b8d74SJaiprakash Singh {
215*4b8b8d74SJaiprakash Singh 	return 0x87e0fc000800ll;
216*4b8b8d74SJaiprakash Singh }
217*4b8b8d74SJaiprakash Singh 
218*4b8b8d74SJaiprakash Singh #define typedef_ODY_MRML_INT_LOCAL_TO ody_mrml_int_local_to_t
219*4b8b8d74SJaiprakash Singh #define bustype_ODY_MRML_INT_LOCAL_TO CSR_TYPE_RSL
220*4b8b8d74SJaiprakash Singh #define basename_ODY_MRML_INT_LOCAL_TO "MRML_INT_LOCAL_TO"
221*4b8b8d74SJaiprakash Singh #define device_bar_ODY_MRML_INT_LOCAL_TO 0x0 /* PF_BAR0 */
222*4b8b8d74SJaiprakash Singh #define busnum_ODY_MRML_INT_LOCAL_TO 0
223*4b8b8d74SJaiprakash Singh #define arguments_ODY_MRML_INT_LOCAL_TO -1, -1, -1, -1
224*4b8b8d74SJaiprakash Singh 
225*4b8b8d74SJaiprakash Singh /**
226*4b8b8d74SJaiprakash Singh  * Register (RSL) mrml_int_sum
227*4b8b8d74SJaiprakash Singh  *
228*4b8b8d74SJaiprakash Singh  * MRML Interrupt Summary Register
229*4b8b8d74SJaiprakash Singh  * This register contains the different interrupt summary bits of the MRML.
230*4b8b8d74SJaiprakash Singh  */
231*4b8b8d74SJaiprakash Singh union ody_mrml_int_sum {
232*4b8b8d74SJaiprakash Singh 	uint64_t u;
233*4b8b8d74SJaiprakash Singh 	struct ody_mrml_int_sum_s {
234*4b8b8d74SJaiprakash Singh 		uint64_t ocx_toe                     : 1;
235*4b8b8d74SJaiprakash Singh 		uint64_t local_toe                   : 1;
236*4b8b8d74SJaiprakash Singh 		uint64_t gibm                        : 1;
237*4b8b8d74SJaiprakash Singh 		uint64_t reserved_3_63               : 61;
238*4b8b8d74SJaiprakash Singh 	} s;
239*4b8b8d74SJaiprakash Singh 	/* struct ody_mrml_int_sum_s cn; */
240*4b8b8d74SJaiprakash Singh };
241*4b8b8d74SJaiprakash Singh typedef union ody_mrml_int_sum ody_mrml_int_sum_t;
242*4b8b8d74SJaiprakash Singh 
243*4b8b8d74SJaiprakash Singh #define ODY_MRML_INT_SUM ODY_MRML_INT_SUM_FUNC()
244*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_INT_SUM_FUNC(void) __attribute__ ((pure, always_inline));
ODY_MRML_INT_SUM_FUNC(void)245*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_INT_SUM_FUNC(void)
246*4b8b8d74SJaiprakash Singh {
247*4b8b8d74SJaiprakash Singh 	return 0x87e0fc000810ll;
248*4b8b8d74SJaiprakash Singh }
249*4b8b8d74SJaiprakash Singh 
250*4b8b8d74SJaiprakash Singh #define typedef_ODY_MRML_INT_SUM ody_mrml_int_sum_t
251*4b8b8d74SJaiprakash Singh #define bustype_ODY_MRML_INT_SUM CSR_TYPE_RSL
252*4b8b8d74SJaiprakash Singh #define basename_ODY_MRML_INT_SUM "MRML_INT_SUM"
253*4b8b8d74SJaiprakash Singh #define device_bar_ODY_MRML_INT_SUM 0x0 /* PF_BAR0 */
254*4b8b8d74SJaiprakash Singh #define busnum_ODY_MRML_INT_SUM 0
255*4b8b8d74SJaiprakash Singh #define arguments_ODY_MRML_INT_SUM -1, -1, -1, -1
256*4b8b8d74SJaiprakash Singh 
257*4b8b8d74SJaiprakash Singh /**
258*4b8b8d74SJaiprakash Singh  * Register (RSL) mrml_int_sum_w1s
259*4b8b8d74SJaiprakash Singh  *
260*4b8b8d74SJaiprakash Singh  * MRML Interrupt Set Register
261*4b8b8d74SJaiprakash Singh  * This register sets interrupt bits.
262*4b8b8d74SJaiprakash Singh  */
263*4b8b8d74SJaiprakash Singh union ody_mrml_int_sum_w1s {
264*4b8b8d74SJaiprakash Singh 	uint64_t u;
265*4b8b8d74SJaiprakash Singh 	struct ody_mrml_int_sum_w1s_s {
266*4b8b8d74SJaiprakash Singh 		uint64_t ocx_toe                     : 1;
267*4b8b8d74SJaiprakash Singh 		uint64_t local_toe                   : 1;
268*4b8b8d74SJaiprakash Singh 		uint64_t gibm                        : 1;
269*4b8b8d74SJaiprakash Singh 		uint64_t reserved_3_63               : 61;
270*4b8b8d74SJaiprakash Singh 	} s;
271*4b8b8d74SJaiprakash Singh 	/* struct ody_mrml_int_sum_w1s_s cn; */
272*4b8b8d74SJaiprakash Singh };
273*4b8b8d74SJaiprakash Singh typedef union ody_mrml_int_sum_w1s ody_mrml_int_sum_w1s_t;
274*4b8b8d74SJaiprakash Singh 
275*4b8b8d74SJaiprakash Singh #define ODY_MRML_INT_SUM_W1S ODY_MRML_INT_SUM_W1S_FUNC()
276*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_INT_SUM_W1S_FUNC(void) __attribute__ ((pure, always_inline));
ODY_MRML_INT_SUM_W1S_FUNC(void)277*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_INT_SUM_W1S_FUNC(void)
278*4b8b8d74SJaiprakash Singh {
279*4b8b8d74SJaiprakash Singh 	return 0x87e0fc000818ll;
280*4b8b8d74SJaiprakash Singh }
281*4b8b8d74SJaiprakash Singh 
282*4b8b8d74SJaiprakash Singh #define typedef_ODY_MRML_INT_SUM_W1S ody_mrml_int_sum_w1s_t
283*4b8b8d74SJaiprakash Singh #define bustype_ODY_MRML_INT_SUM_W1S CSR_TYPE_RSL
284*4b8b8d74SJaiprakash Singh #define basename_ODY_MRML_INT_SUM_W1S "MRML_INT_SUM_W1S"
285*4b8b8d74SJaiprakash Singh #define device_bar_ODY_MRML_INT_SUM_W1S 0x0 /* PF_BAR0 */
286*4b8b8d74SJaiprakash Singh #define busnum_ODY_MRML_INT_SUM_W1S 0
287*4b8b8d74SJaiprakash Singh #define arguments_ODY_MRML_INT_SUM_W1S -1, -1, -1, -1
288*4b8b8d74SJaiprakash Singh 
289*4b8b8d74SJaiprakash Singh /**
290*4b8b8d74SJaiprakash Singh  * Register (RSL) mrml_msix_pba#
291*4b8b8d74SJaiprakash Singh  *
292*4b8b8d74SJaiprakash Singh  * MRML MSI-X Pending Bit Array Registers
293*4b8b8d74SJaiprakash Singh  * This register is the MSI-X PBA table; the bit number is indexed by the MRML_INT_VEC_E enumeration.
294*4b8b8d74SJaiprakash Singh  */
295*4b8b8d74SJaiprakash Singh union ody_mrml_msix_pbax {
296*4b8b8d74SJaiprakash Singh 	uint64_t u;
297*4b8b8d74SJaiprakash Singh 	struct ody_mrml_msix_pbax_s {
298*4b8b8d74SJaiprakash Singh 		uint64_t pend                        : 64;
299*4b8b8d74SJaiprakash Singh 	} s;
300*4b8b8d74SJaiprakash Singh 	/* struct ody_mrml_msix_pbax_s cn; */
301*4b8b8d74SJaiprakash Singh };
302*4b8b8d74SJaiprakash Singh typedef union ody_mrml_msix_pbax ody_mrml_msix_pbax_t;
303*4b8b8d74SJaiprakash Singh 
304*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_MSIX_PBAX(uint64_t a) __attribute__ ((pure, always_inline));
ODY_MRML_MSIX_PBAX(uint64_t a)305*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_MSIX_PBAX(uint64_t a)
306*4b8b8d74SJaiprakash Singh {
307*4b8b8d74SJaiprakash Singh 	if (a == 0)
308*4b8b8d74SJaiprakash Singh 		return 0x87e0fcff0000ll;
309*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("MRML_MSIX_PBAX", 1, a, 0, 0, 0, 0, 0);
310*4b8b8d74SJaiprakash Singh }
311*4b8b8d74SJaiprakash Singh 
312*4b8b8d74SJaiprakash Singh #define typedef_ODY_MRML_MSIX_PBAX(a) ody_mrml_msix_pbax_t
313*4b8b8d74SJaiprakash Singh #define bustype_ODY_MRML_MSIX_PBAX(a) CSR_TYPE_RSL
314*4b8b8d74SJaiprakash Singh #define basename_ODY_MRML_MSIX_PBAX(a) "MRML_MSIX_PBAX"
315*4b8b8d74SJaiprakash Singh #define device_bar_ODY_MRML_MSIX_PBAX(a) 0x4 /* PF_BAR4 */
316*4b8b8d74SJaiprakash Singh #define busnum_ODY_MRML_MSIX_PBAX(a) (a)
317*4b8b8d74SJaiprakash Singh #define arguments_ODY_MRML_MSIX_PBAX(a) (a), -1, -1, -1
318*4b8b8d74SJaiprakash Singh 
319*4b8b8d74SJaiprakash Singh /**
320*4b8b8d74SJaiprakash Singh  * Register (RSL) mrml_msix_vec#_addr
321*4b8b8d74SJaiprakash Singh  *
322*4b8b8d74SJaiprakash Singh  * MRML MSI-X Vector-Table Address Register
323*4b8b8d74SJaiprakash Singh  * This register is the MSI-X vector table, indexed by the MRML_INT_VEC_E enumeration.
324*4b8b8d74SJaiprakash Singh  */
325*4b8b8d74SJaiprakash Singh union ody_mrml_msix_vecx_addr {
326*4b8b8d74SJaiprakash Singh 	uint64_t u;
327*4b8b8d74SJaiprakash Singh 	struct ody_mrml_msix_vecx_addr_s {
328*4b8b8d74SJaiprakash Singh 		uint64_t secvec                      : 1;
329*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1                  : 1;
330*4b8b8d74SJaiprakash Singh 		uint64_t addr                        : 51;
331*4b8b8d74SJaiprakash Singh 		uint64_t reserved_53_63              : 11;
332*4b8b8d74SJaiprakash Singh 	} s;
333*4b8b8d74SJaiprakash Singh 	/* struct ody_mrml_msix_vecx_addr_s cn; */
334*4b8b8d74SJaiprakash Singh };
335*4b8b8d74SJaiprakash Singh typedef union ody_mrml_msix_vecx_addr ody_mrml_msix_vecx_addr_t;
336*4b8b8d74SJaiprakash Singh 
337*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_MSIX_VECX_ADDR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_MRML_MSIX_VECX_ADDR(uint64_t a)338*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_MSIX_VECX_ADDR(uint64_t a)
339*4b8b8d74SJaiprakash Singh {
340*4b8b8d74SJaiprakash Singh 	if (a == 0)
341*4b8b8d74SJaiprakash Singh 		return 0x87e0fcf00000ll;
342*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("MRML_MSIX_VECX_ADDR", 1, a, 0, 0, 0, 0, 0);
343*4b8b8d74SJaiprakash Singh }
344*4b8b8d74SJaiprakash Singh 
345*4b8b8d74SJaiprakash Singh #define typedef_ODY_MRML_MSIX_VECX_ADDR(a) ody_mrml_msix_vecx_addr_t
346*4b8b8d74SJaiprakash Singh #define bustype_ODY_MRML_MSIX_VECX_ADDR(a) CSR_TYPE_RSL
347*4b8b8d74SJaiprakash Singh #define basename_ODY_MRML_MSIX_VECX_ADDR(a) "MRML_MSIX_VECX_ADDR"
348*4b8b8d74SJaiprakash Singh #define device_bar_ODY_MRML_MSIX_VECX_ADDR(a) 0x4 /* PF_BAR4 */
349*4b8b8d74SJaiprakash Singh #define busnum_ODY_MRML_MSIX_VECX_ADDR(a) (a)
350*4b8b8d74SJaiprakash Singh #define arguments_ODY_MRML_MSIX_VECX_ADDR(a) (a), -1, -1, -1
351*4b8b8d74SJaiprakash Singh 
352*4b8b8d74SJaiprakash Singh /**
353*4b8b8d74SJaiprakash Singh  * Register (RSL) mrml_msix_vec#_ctl
354*4b8b8d74SJaiprakash Singh  *
355*4b8b8d74SJaiprakash Singh  * MRML MSI-X Vector-Table Control and Data Register
356*4b8b8d74SJaiprakash Singh  * This register is the MSI-X vector table, indexed by the MRML_INT_VEC_E enumeration.
357*4b8b8d74SJaiprakash Singh  */
358*4b8b8d74SJaiprakash Singh union ody_mrml_msix_vecx_ctl {
359*4b8b8d74SJaiprakash Singh 	uint64_t u;
360*4b8b8d74SJaiprakash Singh 	struct ody_mrml_msix_vecx_ctl_s {
361*4b8b8d74SJaiprakash Singh 		uint64_t data                        : 32;
362*4b8b8d74SJaiprakash Singh 		uint64_t mask                        : 1;
363*4b8b8d74SJaiprakash Singh 		uint64_t reserved_33_63              : 31;
364*4b8b8d74SJaiprakash Singh 	} s;
365*4b8b8d74SJaiprakash Singh 	/* struct ody_mrml_msix_vecx_ctl_s cn; */
366*4b8b8d74SJaiprakash Singh };
367*4b8b8d74SJaiprakash Singh typedef union ody_mrml_msix_vecx_ctl ody_mrml_msix_vecx_ctl_t;
368*4b8b8d74SJaiprakash Singh 
369*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_MSIX_VECX_CTL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_MRML_MSIX_VECX_CTL(uint64_t a)370*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_MSIX_VECX_CTL(uint64_t a)
371*4b8b8d74SJaiprakash Singh {
372*4b8b8d74SJaiprakash Singh 	if (a == 0)
373*4b8b8d74SJaiprakash Singh 		return 0x87e0fcf00008ll;
374*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("MRML_MSIX_VECX_CTL", 1, a, 0, 0, 0, 0, 0);
375*4b8b8d74SJaiprakash Singh }
376*4b8b8d74SJaiprakash Singh 
377*4b8b8d74SJaiprakash Singh #define typedef_ODY_MRML_MSIX_VECX_CTL(a) ody_mrml_msix_vecx_ctl_t
378*4b8b8d74SJaiprakash Singh #define bustype_ODY_MRML_MSIX_VECX_CTL(a) CSR_TYPE_RSL
379*4b8b8d74SJaiprakash Singh #define basename_ODY_MRML_MSIX_VECX_CTL(a) "MRML_MSIX_VECX_CTL"
380*4b8b8d74SJaiprakash Singh #define device_bar_ODY_MRML_MSIX_VECX_CTL(a) 0x4 /* PF_BAR4 */
381*4b8b8d74SJaiprakash Singh #define busnum_ODY_MRML_MSIX_VECX_CTL(a) (a)
382*4b8b8d74SJaiprakash Singh #define arguments_ODY_MRML_MSIX_VECX_CTL(a) (a), -1, -1, -1
383*4b8b8d74SJaiprakash Singh 
384*4b8b8d74SJaiprakash Singh /**
385*4b8b8d74SJaiprakash Singh  * Register (RSL) mrml_ncb#_permit
386*4b8b8d74SJaiprakash Singh  *
387*4b8b8d74SJaiprakash Singh  * MRML NCB Bus Permit Registers
388*4b8b8d74SJaiprakash Singh  * This register sets the permissions for access to NCBDIDs address bits \<43:36\>.
389*4b8b8d74SJaiprakash Singh  * Also see and program identically IOBN_NCB()_PERMIT.
390*4b8b8d74SJaiprakash Singh  */
391*4b8b8d74SJaiprakash Singh union ody_mrml_ncbx_permit {
392*4b8b8d74SJaiprakash Singh 	uint64_t u;
393*4b8b8d74SJaiprakash Singh 	struct ody_mrml_ncbx_permit_s {
394*4b8b8d74SJaiprakash Singh 		uint64_t sec_dis                     : 1;
395*4b8b8d74SJaiprakash Singh 		uint64_t nsec_dis                    : 1;
396*4b8b8d74SJaiprakash Singh 		uint64_t xcp0_dis                    : 1;
397*4b8b8d74SJaiprakash Singh 		uint64_t xcp1_dis                    : 1;
398*4b8b8d74SJaiprakash Singh 		uint64_t xcp2_dis                    : 1;
399*4b8b8d74SJaiprakash Singh 		uint64_t reserved_5_6                : 2;
400*4b8b8d74SJaiprakash Singh 		uint64_t kill                        : 1;
401*4b8b8d74SJaiprakash Singh 		uint64_t lock                        : 1;
402*4b8b8d74SJaiprakash Singh 		uint64_t reserved_9_63               : 55;
403*4b8b8d74SJaiprakash Singh 	} s;
404*4b8b8d74SJaiprakash Singh 	/* struct ody_mrml_ncbx_permit_s cn; */
405*4b8b8d74SJaiprakash Singh };
406*4b8b8d74SJaiprakash Singh typedef union ody_mrml_ncbx_permit ody_mrml_ncbx_permit_t;
407*4b8b8d74SJaiprakash Singh 
408*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_NCBX_PERMIT(uint64_t a) __attribute__ ((pure, always_inline));
ODY_MRML_NCBX_PERMIT(uint64_t a)409*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_NCBX_PERMIT(uint64_t a)
410*4b8b8d74SJaiprakash Singh {
411*4b8b8d74SJaiprakash Singh 	if (a <= 255)
412*4b8b8d74SJaiprakash Singh 		return 0x87e0fc020000ll + 8ll * ((a) & 0xff);
413*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("MRML_NCBX_PERMIT", 1, a, 0, 0, 0, 0, 0);
414*4b8b8d74SJaiprakash Singh }
415*4b8b8d74SJaiprakash Singh 
416*4b8b8d74SJaiprakash Singh #define typedef_ODY_MRML_NCBX_PERMIT(a) ody_mrml_ncbx_permit_t
417*4b8b8d74SJaiprakash Singh #define bustype_ODY_MRML_NCBX_PERMIT(a) CSR_TYPE_RSL
418*4b8b8d74SJaiprakash Singh #define basename_ODY_MRML_NCBX_PERMIT(a) "MRML_NCBX_PERMIT"
419*4b8b8d74SJaiprakash Singh #define device_bar_ODY_MRML_NCBX_PERMIT(a) 0x0 /* PF_BAR0 */
420*4b8b8d74SJaiprakash Singh #define busnum_ODY_MRML_NCBX_PERMIT(a) (a)
421*4b8b8d74SJaiprakash Singh #define arguments_ODY_MRML_NCBX_PERMIT(a) (a), -1, -1, -1
422*4b8b8d74SJaiprakash Singh 
423*4b8b8d74SJaiprakash Singh /**
424*4b8b8d74SJaiprakash Singh  * Register (RSL) mrml_rsl#_permit
425*4b8b8d74SJaiprakash Singh  *
426*4b8b8d74SJaiprakash Singh  * MRML RSL Bus Permit Registers
427*4b8b8d74SJaiprakash Singh  * This register sets the permissions for access to the device's physical address bits \<33:24\>.
428*4b8b8d74SJaiprakash Singh  */
429*4b8b8d74SJaiprakash Singh union ody_mrml_rslx_permit {
430*4b8b8d74SJaiprakash Singh 	uint64_t u;
431*4b8b8d74SJaiprakash Singh 	struct ody_mrml_rslx_permit_s {
432*4b8b8d74SJaiprakash Singh 		uint64_t sec_dis                     : 1;
433*4b8b8d74SJaiprakash Singh 		uint64_t nsec_dis                    : 1;
434*4b8b8d74SJaiprakash Singh 		uint64_t xcp0_dis                    : 1;
435*4b8b8d74SJaiprakash Singh 		uint64_t xcp1_dis                    : 1;
436*4b8b8d74SJaiprakash Singh 		uint64_t xcp2_dis                    : 1;
437*4b8b8d74SJaiprakash Singh 		uint64_t reserved_5_6                : 2;
438*4b8b8d74SJaiprakash Singh 		uint64_t kill                        : 1;
439*4b8b8d74SJaiprakash Singh 		uint64_t lock                        : 1;
440*4b8b8d74SJaiprakash Singh 		uint64_t reserved_9_63               : 55;
441*4b8b8d74SJaiprakash Singh 	} s;
442*4b8b8d74SJaiprakash Singh 	/* struct ody_mrml_rslx_permit_s cn; */
443*4b8b8d74SJaiprakash Singh };
444*4b8b8d74SJaiprakash Singh typedef union ody_mrml_rslx_permit ody_mrml_rslx_permit_t;
445*4b8b8d74SJaiprakash Singh 
446*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_RSLX_PERMIT(uint64_t a) __attribute__ ((pure, always_inline));
ODY_MRML_RSLX_PERMIT(uint64_t a)447*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_RSLX_PERMIT(uint64_t a)
448*4b8b8d74SJaiprakash Singh {
449*4b8b8d74SJaiprakash Singh 	if (a <= 1023)
450*4b8b8d74SJaiprakash Singh 		return 0x87e0fc010000ll + 8ll * ((a) & 0x3ff);
451*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("MRML_RSLX_PERMIT", 1, a, 0, 0, 0, 0, 0);
452*4b8b8d74SJaiprakash Singh }
453*4b8b8d74SJaiprakash Singh 
454*4b8b8d74SJaiprakash Singh #define typedef_ODY_MRML_RSLX_PERMIT(a) ody_mrml_rslx_permit_t
455*4b8b8d74SJaiprakash Singh #define bustype_ODY_MRML_RSLX_PERMIT(a) CSR_TYPE_RSL
456*4b8b8d74SJaiprakash Singh #define basename_ODY_MRML_RSLX_PERMIT(a) "MRML_RSLX_PERMIT"
457*4b8b8d74SJaiprakash Singh #define device_bar_ODY_MRML_RSLX_PERMIT(a) 0x0 /* PF_BAR0 */
458*4b8b8d74SJaiprakash Singh #define busnum_ODY_MRML_RSLX_PERMIT(a) (a)
459*4b8b8d74SJaiprakash Singh #define arguments_ODY_MRML_RSLX_PERMIT(a) (a), -1, -1, -1
460*4b8b8d74SJaiprakash Singh 
461*4b8b8d74SJaiprakash Singh /**
462*4b8b8d74SJaiprakash Singh  * Register (RSL) mrml_scfg
463*4b8b8d74SJaiprakash Singh  *
464*4b8b8d74SJaiprakash Singh  * MRML RSL Secure Configuration Register
465*4b8b8d74SJaiprakash Singh  */
466*4b8b8d74SJaiprakash Singh union ody_mrml_scfg {
467*4b8b8d74SJaiprakash Singh 	uint64_t u;
468*4b8b8d74SJaiprakash Singh 	struct ody_mrml_scfg_s {
469*4b8b8d74SJaiprakash Singh 		uint64_t reserved_0_63               : 64;
470*4b8b8d74SJaiprakash Singh 	} s;
471*4b8b8d74SJaiprakash Singh 	/* struct ody_mrml_scfg_s cn; */
472*4b8b8d74SJaiprakash Singh };
473*4b8b8d74SJaiprakash Singh typedef union ody_mrml_scfg ody_mrml_scfg_t;
474*4b8b8d74SJaiprakash Singh 
475*4b8b8d74SJaiprakash Singh #define ODY_MRML_SCFG ODY_MRML_SCFG_FUNC()
476*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_SCFG_FUNC(void) __attribute__ ((pure, always_inline));
ODY_MRML_SCFG_FUNC(void)477*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_MRML_SCFG_FUNC(void)
478*4b8b8d74SJaiprakash Singh {
479*4b8b8d74SJaiprakash Singh 	return 0x87e0fc000000ll;
480*4b8b8d74SJaiprakash Singh }
481*4b8b8d74SJaiprakash Singh 
482*4b8b8d74SJaiprakash Singh #define typedef_ODY_MRML_SCFG ody_mrml_scfg_t
483*4b8b8d74SJaiprakash Singh #define bustype_ODY_MRML_SCFG CSR_TYPE_RSL
484*4b8b8d74SJaiprakash Singh #define basename_ODY_MRML_SCFG "MRML_SCFG"
485*4b8b8d74SJaiprakash Singh #define device_bar_ODY_MRML_SCFG 0x0 /* PF_BAR0 */
486*4b8b8d74SJaiprakash Singh #define busnum_ODY_MRML_SCFG 0
487*4b8b8d74SJaiprakash Singh #define arguments_ODY_MRML_SCFG -1, -1, -1, -1
488*4b8b8d74SJaiprakash Singh 
489*4b8b8d74SJaiprakash Singh #endif /* __ODY_CSRS_MRML_H__ */
490