xref: /rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-rst.h (revision 12d80bbbf6031228bdd910eccb03bb185e8df527)
1*4b8b8d74SJaiprakash Singh #ifndef __ODY_CSRS_RST_H__
2*4b8b8d74SJaiprakash Singh #define __ODY_CSRS_RST_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  * RST.
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 rst_bar_e
24*4b8b8d74SJaiprakash Singh  *
25*4b8b8d74SJaiprakash Singh  * RST Base Address Register Enumeration
26*4b8b8d74SJaiprakash Singh  * Enumerates the base address registers.
27*4b8b8d74SJaiprakash Singh  */
28*4b8b8d74SJaiprakash Singh #define ODY_RST_BAR_E_RST_PF_BAR0 (0x87e006000000ll)
29*4b8b8d74SJaiprakash Singh #define ODY_RST_BAR_E_RST_PF_BAR0_SIZE 0x10000ull
30*4b8b8d74SJaiprakash Singh #define ODY_RST_BAR_E_RST_PF_BAR2 (0x87e00a000000ll)
31*4b8b8d74SJaiprakash Singh #define ODY_RST_BAR_E_RST_PF_BAR2_SIZE 0x10000ull
32*4b8b8d74SJaiprakash Singh #define ODY_RST_BAR_E_RST_PF_BAR4 (0x87e006f00000ll)
33*4b8b8d74SJaiprakash Singh #define ODY_RST_BAR_E_RST_PF_BAR4_SIZE 0x100000ull
34*4b8b8d74SJaiprakash Singh 
35*4b8b8d74SJaiprakash Singh /**
36*4b8b8d74SJaiprakash Singh  * Enumeration rst_boot_method_e
37*4b8b8d74SJaiprakash Singh  *
38*4b8b8d74SJaiprakash Singh  * RST Primary Boot-strap Method Enumeration
39*4b8b8d74SJaiprakash Singh  * Enumerates the primary (first choice) and secondary (second choice) boot
40*4b8b8d74SJaiprakash Singh  * device. Primary boot method is selected with the straps
41*4b8b8d74SJaiprakash Singh  * GPIO_STRAP_PIN_E::BOOT_METHOD2..0, and secondary is selected with the straps
42*4b8b8d74SJaiprakash Singh  * GPIO_STRAP_PIN_E::BOOT_METHOD5..3.
43*4b8b8d74SJaiprakash Singh  *
44*4b8b8d74SJaiprakash Singh  * To disable the secondary method, use ::REMOTE.
45*4b8b8d74SJaiprakash Singh  */
46*4b8b8d74SJaiprakash Singh #define ODY_RST_BOOT_METHOD_E_I3C3 (0)
47*4b8b8d74SJaiprakash Singh #define ODY_RST_BOOT_METHOD_E_I3C4 (1)
48*4b8b8d74SJaiprakash Singh #define ODY_RST_BOOT_METHOD_E_REMOTE (7)
49*4b8b8d74SJaiprakash Singh #define ODY_RST_BOOT_METHOD_E_SPI0_CS0 (2)
50*4b8b8d74SJaiprakash Singh #define ODY_RST_BOOT_METHOD_E_SPI0_CS1 (3)
51*4b8b8d74SJaiprakash Singh #define ODY_RST_BOOT_METHOD_E_SPI1_CS0 (4)
52*4b8b8d74SJaiprakash Singh #define ODY_RST_BOOT_METHOD_E_SPI1_CS1 (5)
53*4b8b8d74SJaiprakash Singh #define ODY_RST_BOOT_METHOD_E_UART (6)
54*4b8b8d74SJaiprakash Singh 
55*4b8b8d74SJaiprakash Singh /**
56*4b8b8d74SJaiprakash Singh  * Enumeration rst_dev_e
57*4b8b8d74SJaiprakash Singh  *
58*4b8b8d74SJaiprakash Singh  * Programmable Reset Device Enumeration
59*4b8b8d74SJaiprakash Singh  * Enumerates devices that have programmable reset domains, and index {a} of RST_DEV_MAP().
60*4b8b8d74SJaiprakash Singh  */
61*4b8b8d74SJaiprakash Singh #define ODY_RST_DEV_E_AVS (1)
62*4b8b8d74SJaiprakash Singh #define ODY_RST_DEV_E_EMMC (0x19)
63*4b8b8d74SJaiprakash Singh #define ODY_RST_DEV_E_I3CX(a) (0x10 + (a))
64*4b8b8d74SJaiprakash Singh #define ODY_RST_DEV_E_MPIX(a) (2 + (a))
65*4b8b8d74SJaiprakash Singh #define ODY_RST_DEV_E_RFIFX(a) (0x28 + (a))
66*4b8b8d74SJaiprakash Singh #define ODY_RST_DEV_E_ROC_OCLA (0x18)
67*4b8b8d74SJaiprakash Singh #define ODY_RST_DEV_E_SGPIO (0x17)
68*4b8b8d74SJaiprakash Singh #define ODY_RST_DEV_E_SMI (0x16)
69*4b8b8d74SJaiprakash Singh #define ODY_RST_DEV_E_TWSX(a) (4 + (a))
70*4b8b8d74SJaiprakash Singh #define ODY_RST_DEV_E_UAAX(a) (0x1a + (a))
71*4b8b8d74SJaiprakash Singh 
72*4b8b8d74SJaiprakash Singh /**
73*4b8b8d74SJaiprakash Singh  * Enumeration rst_domain_e
74*4b8b8d74SJaiprakash Singh  *
75*4b8b8d74SJaiprakash Singh  * RST Domain Enumeration
76*4b8b8d74SJaiprakash Singh  * This enumerates the values of RST_DEV_MAP()[DMN].
77*4b8b8d74SJaiprakash Singh  */
78*4b8b8d74SJaiprakash Singh #define ODY_RST_DOMAIN_E_BPHY (5)
79*4b8b8d74SJaiprakash Singh #define ODY_RST_DOMAIN_E_CHIP (0)
80*4b8b8d74SJaiprakash Singh #define ODY_RST_DOMAIN_E_COLD (6)
81*4b8b8d74SJaiprakash Singh #define ODY_RST_DOMAIN_E_CORE (1)
82*4b8b8d74SJaiprakash Singh #define ODY_RST_DOMAIN_E_MCP (2)
83*4b8b8d74SJaiprakash Singh #define ODY_RST_DOMAIN_E_OFF (7)
84*4b8b8d74SJaiprakash Singh #define ODY_RST_DOMAIN_E_SCP (3)
85*4b8b8d74SJaiprakash Singh #define ODY_RST_DOMAIN_E_XCP2 (4)
86*4b8b8d74SJaiprakash Singh 
87*4b8b8d74SJaiprakash Singh /**
88*4b8b8d74SJaiprakash Singh  * Enumeration rst_int_vec_e
89*4b8b8d74SJaiprakash Singh  *
90*4b8b8d74SJaiprakash Singh  * RST MSI-X Vector Enumeration
91*4b8b8d74SJaiprakash Singh  * Enumerates the MSI-X interrupt vectors.
92*4b8b8d74SJaiprakash Singh  */
93*4b8b8d74SJaiprakash Singh #define ODY_RST_INT_VEC_E_INTS (0)
94*4b8b8d74SJaiprakash Singh 
95*4b8b8d74SJaiprakash Singh /**
96*4b8b8d74SJaiprakash Singh  * Enumeration rst_pll_e
97*4b8b8d74SJaiprakash Singh  *
98*4b8b8d74SJaiprakash Singh  * RST PLL Enumeration
99*4b8b8d74SJaiprakash Singh  * Enumerates the values of RST_PLL() and RST_MAN_PLL().
100*4b8b8d74SJaiprakash Singh  */
101*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_E_BCLK (0xc)
102*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_E_BCNCLK (0xd)
103*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_E_CPTCLK (5)
104*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_E_DFICLK (4)
105*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_E_DSPCLK (0xe)
106*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_E_IOCLK (3)
107*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_E_JESDCLK (0xf)
108*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_E_MESHCLK (1)
109*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_E_NCLK (0xb)
110*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_E_NETCLK (2)
111*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_E_PCIE0CLK (6)
112*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_E_PCIE1CLK (7)
113*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_E_PCIE2CLK (8)
114*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_E_PCIE3CLK (9)
115*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_E_SCLK (0)
116*4b8b8d74SJaiprakash Singh 
117*4b8b8d74SJaiprakash Singh /**
118*4b8b8d74SJaiprakash Singh  * Enumeration rst_pll_sel_e
119*4b8b8d74SJaiprakash Singh  *
120*4b8b8d74SJaiprakash Singh  * RST PLL Selection Enumeration
121*4b8b8d74SJaiprakash Singh  * Enumerates the values of RST_PLL()[NEXT_PLL_SEL] and RST_PLL()[CUR_PLL_SEL].
122*4b8b8d74SJaiprakash Singh  */
123*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_SEL_E_ARO (6)
124*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_SEL_E_BYPASS (2)
125*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_SEL_E_OFF (3)
126*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_SEL_E_PLL0 (4)
127*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_SEL_E_PLL1 (5)
128*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_SEL_E_REFCLK (1)
129*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_SEL_E_RSVD (7)
130*4b8b8d74SJaiprakash Singh #define ODY_RST_PLL_SEL_E_RUNT (0)
131*4b8b8d74SJaiprakash Singh 
132*4b8b8d74SJaiprakash Singh /**
133*4b8b8d74SJaiprakash Singh  * Enumeration rst_pllro_cfg_status_mux_e
134*4b8b8d74SJaiprakash Singh  *
135*4b8b8d74SJaiprakash Singh  * RST PLLRO Status Mux Selection Enumeration
136*4b8b8d74SJaiprakash Singh  * This enumerates the values of RST_TEST_PLL_RSVD5_S[PLLRO_CFG_STATUS_MUX].
137*4b8b8d74SJaiprakash Singh  * All other bits are assumed to be 0.
138*4b8b8d74SJaiprakash Singh  */
139*4b8b8d74SJaiprakash Singh #define ODY_RST_PLLRO_CFG_STATUS_MUX_E_RST_EROSEL_RESULT (0)
140*4b8b8d74SJaiprakash Singh #define ODY_RST_PLLRO_CFG_STATUS_MUX_E_RST_PROFILE_ARO_CLK_CNT (4)
141*4b8b8d74SJaiprakash Singh #define ODY_RST_PLLRO_CFG_STATUS_MUX_E_RST_PROFILE_DELTA (5)
142*4b8b8d74SJaiprakash Singh #define ODY_RST_PLLRO_CFG_STATUS_MUX_E_RST_PROFILE_REF_CLK_CNT (1)
143*4b8b8d74SJaiprakash Singh #define ODY_RST_PLLRO_CFG_STATUS_MUX_E_RST_PROFILE_VDROOP (6)
144*4b8b8d74SJaiprakash Singh #define ODY_RST_PLLRO_CFG_STATUS_MUX_E_RST_PROFILE_VDROOP_SUM (7)
145*4b8b8d74SJaiprakash Singh #define ODY_RST_PLLRO_CFG_STATUS_MUX_E_RST_PROFILE_VDROOP_TOTAL_CNT (2)
146*4b8b8d74SJaiprakash Singh #define ODY_RST_PLLRO_CFG_STATUS_MUX_E_RST_ROU_ROS_TRGT (3)
147*4b8b8d74SJaiprakash Singh 
148*4b8b8d74SJaiprakash Singh /**
149*4b8b8d74SJaiprakash Singh  * Enumeration rst_source_e
150*4b8b8d74SJaiprakash Singh  *
151*4b8b8d74SJaiprakash Singh  * RST Cause Enumeration
152*4b8b8d74SJaiprakash Singh  * Enumerates the reset sources for both reset domain mapping and cause of last reset,
153*4b8b8d74SJaiprakash Singh  * corresponding to the bit numbers of RST_LBOOT.
154*4b8b8d74SJaiprakash Singh  */
155*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_BPHY_RESET_PIN (0x30)
156*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_BPHY_SOFT (0x33)
157*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_CHIPKILL (4)
158*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_CHIP_RESET_PIN (2)
159*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_CHIP_SOFT (3)
160*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_COLD_SOFT (1)
161*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_CORE_RESET_PIN (0xb)
162*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_CORE_SOFT (0xc)
163*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_CORE_WDOG (0xd)
164*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_DCOK_PIN (0)
165*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_MCP_RESET_PIN (8)
166*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_MCP_SOFT (9)
167*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_MCP_SYSREQ (0x35)
168*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_MCP_WDOG (0xa)
169*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_PEM_CHIPX(a) (0x11 + 2 * (a))
170*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_PEM_COREX(a) (0x10 + 2 * (a))
171*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_RSVD_32 (0x32)
172*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_RSVD_E (0xe)
173*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_RSVD_F (0xf)
174*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_SCP_RESET_PIN (5)
175*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_SCP_SOFT (6)
176*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_SCP_SYSREQ (0x36)
177*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_SCP_WDOG (7)
178*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_XCP2_SOFT (0x31)
179*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_XCP2_SYSREQ (0x37)
180*4b8b8d74SJaiprakash Singh #define ODY_RST_SOURCE_E_XCP2_WDOG (0x34)
181*4b8b8d74SJaiprakash Singh 
182*4b8b8d74SJaiprakash Singh /**
183*4b8b8d74SJaiprakash Singh  * Enumeration rst_test_pll_rsvd4_e
184*4b8b8d74SJaiprakash Singh  *
185*4b8b8d74SJaiprakash Singh  * RST TEST_PLL[TEST_RSVD]=4 Enumeration
186*4b8b8d74SJaiprakash Singh  * This enumerates the values of RST_TEST_PLL()[STOP_CNT\<\>] bits.
187*4b8b8d74SJaiprakash Singh  * All other bits are assumed to be 0.
188*4b8b8d74SJaiprakash Singh  */
189*4b8b8d74SJaiprakash Singh #define ODY_RST_TEST_PLL_RSVD4_E_PLL0_VOLTAGE0 (0)
190*4b8b8d74SJaiprakash Singh #define ODY_RST_TEST_PLL_RSVD4_E_PLL0_VOLTAGE1 (1)
191*4b8b8d74SJaiprakash Singh #define ODY_RST_TEST_PLL_RSVD4_E_PLL0_VOLTAGE2 (2)
192*4b8b8d74SJaiprakash Singh #define ODY_RST_TEST_PLL_RSVD4_E_PLL1_VOLTAGE0 (4)
193*4b8b8d74SJaiprakash Singh #define ODY_RST_TEST_PLL_RSVD4_E_PLL1_VOLTAGE1 (5)
194*4b8b8d74SJaiprakash Singh #define ODY_RST_TEST_PLL_RSVD4_E_PLL1_VOLTAGE2 (6)
195*4b8b8d74SJaiprakash Singh #define ODY_RST_TEST_PLL_RSVD4_E_TEST_ID0 (7)
196*4b8b8d74SJaiprakash Singh #define ODY_RST_TEST_PLL_RSVD4_E_TEST_ID1 (8)
197*4b8b8d74SJaiprakash Singh #define ODY_RST_TEST_PLL_RSVD4_E_TEST_ID2 (9)
198*4b8b8d74SJaiprakash Singh #define ODY_RST_TEST_PLL_RSVD4_E_TEST_ID3 (0xa)
199*4b8b8d74SJaiprakash Singh #define ODY_RST_TEST_PLL_RSVD4_E_TEST_ID4 (0xb)
200*4b8b8d74SJaiprakash Singh 
201*4b8b8d74SJaiprakash Singh /**
202*4b8b8d74SJaiprakash Singh  * Structure rst_boot_stat_s
203*4b8b8d74SJaiprakash Singh  *
204*4b8b8d74SJaiprakash Singh  * BOOT_STATUS field Structure
205*4b8b8d74SJaiprakash Singh  * The ROM boot code stores this data in the RST_BOOT_STATUS register, once per each boot attempt.
206*4b8b8d74SJaiprakash Singh  * Bits 31:0 For Primary partition.
207*4b8b8d74SJaiprakash Singh  * Bits 63:32 For Secondary partition.
208*4b8b8d74SJaiprakash Singh  */
209*4b8b8d74SJaiprakash Singh union ody_rst_boot_stat_s {
210*4b8b8d74SJaiprakash Singh 	uint64_t u;
211*4b8b8d74SJaiprakash Singh 	struct ody_rst_boot_stat_s_s {
212*4b8b8d74SJaiprakash Singh 		uint64_t p_local_error_code          : 16;
213*4b8b8d74SJaiprakash Singh 		uint64_t p_error_module              : 8;
214*4b8b8d74SJaiprakash Singh 		uint64_t reserved_24_27              : 4;
215*4b8b8d74SJaiprakash Singh 		uint64_t p_boot_method               : 3;
216*4b8b8d74SJaiprakash Singh 		uint64_t p_image_partition           : 1;
217*4b8b8d74SJaiprakash Singh 		uint64_t s_local_error_code          : 16;
218*4b8b8d74SJaiprakash Singh 		uint64_t s_error_module              : 8;
219*4b8b8d74SJaiprakash Singh 		uint64_t reserved_56_59              : 4;
220*4b8b8d74SJaiprakash Singh 		uint64_t s_boot_method               : 3;
221*4b8b8d74SJaiprakash Singh 		uint64_t s_image_partition           : 1;
222*4b8b8d74SJaiprakash Singh 	} s;
223*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_boot_stat_s_s cn; */
224*4b8b8d74SJaiprakash Singh };
225*4b8b8d74SJaiprakash Singh 
226*4b8b8d74SJaiprakash Singh /**
227*4b8b8d74SJaiprakash Singh  * Structure rst_erosel_result_s
228*4b8b8d74SJaiprakash Singh  *
229*4b8b8d74SJaiprakash Singh  * RST EROSEL STATUS Structure
230*4b8b8d74SJaiprakash Singh  * This structure describes the fields used in MRC_ARO_STATUS when a previous write to
231*4b8b8d74SJaiprakash Singh  * RST_TEST_PLL\<RST_PLL_E::MESHCLK\>[RSVD] = 5 with RST_TEST_RSVD5_S[PLLRO_CFG_STATUS_MUX] = 0.
232*4b8b8d74SJaiprakash Singh  * This structure describes the fields used in APA_ARO_STATUSn when a previous write to
233*4b8b8d74SJaiprakash Singh  * APA\<n\>_TEST_PLL[RSVD] = 5 with RST_TEST_PLL_RSVD5_S[PLLRO_CFG_STATUS_MUX] = 0.
234*4b8b8d74SJaiprakash Singh  * All other bits are assumed to be 0.
235*4b8b8d74SJaiprakash Singh  */
236*4b8b8d74SJaiprakash Singh union ody_rst_erosel_result_s {
237*4b8b8d74SJaiprakash Singh 	uint32_t u;
238*4b8b8d74SJaiprakash Singh 	struct ody_rst_erosel_result_s_s {
239*4b8b8d74SJaiprakash Singh 		uint32_t reserved_0_9                : 10;
240*4b8b8d74SJaiprakash Singh 		uint32_t dd_cell_vdroop              : 1;
241*4b8b8d74SJaiprakash Singh 		uint32_t calib_lock_status           : 1;
242*4b8b8d74SJaiprakash Singh 		uint32_t ros_calib_min_status        : 1;
243*4b8b8d74SJaiprakash Singh 		uint32_t rou_calib_min_status        : 1;
244*4b8b8d74SJaiprakash Singh 		uint32_t reserved_14_19              : 6;
245*4b8b8d74SJaiprakash Singh 		uint32_t dd_calib_error_code         : 2;
246*4b8b8d74SJaiprakash Singh 		uint32_t dd_calib_error              : 1;
247*4b8b8d74SJaiprakash Singh 		uint32_t dd_calib_done               : 1;
248*4b8b8d74SJaiprakash Singh 		uint32_t dd_calib_ecnt_erosel_result : 8;
249*4b8b8d74SJaiprakash Singh 	} s;
250*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_erosel_result_s_s cn; */
251*4b8b8d74SJaiprakash Singh };
252*4b8b8d74SJaiprakash Singh 
253*4b8b8d74SJaiprakash Singh /**
254*4b8b8d74SJaiprakash Singh  * Structure rst_profile_aro_clk_cnt_s
255*4b8b8d74SJaiprakash Singh  *
256*4b8b8d74SJaiprakash Singh  * RST PLLRO Profile ARO Clock Count Structure
257*4b8b8d74SJaiprakash Singh  * This structure describes the fields used in MRC_ARO_STATUS when a previous write to
258*4b8b8d74SJaiprakash Singh  * RST_TEST_PLL\<RST_PLL_E::MESHCLK\>[RSVD] = 5 with RST_TEST_RSVD5_S[PLLRO_CFG_STATUS_MUX] = 4.
259*4b8b8d74SJaiprakash Singh  * This structure describes the fields used in APA_ARO_STATUSn when a previous write to
260*4b8b8d74SJaiprakash Singh  * APA\<n\>_TEST_PLL[RSVD] = 5 with RST_TEST_PLL_RSVD5_S[PLLRO_CFG_STATUS_MUX] = 4.
261*4b8b8d74SJaiprakash Singh  * All other bits are assumed to be 0.
262*4b8b8d74SJaiprakash Singh  */
263*4b8b8d74SJaiprakash Singh union ody_rst_profile_aro_clk_cnt_s {
264*4b8b8d74SJaiprakash Singh 	uint32_t u;
265*4b8b8d74SJaiprakash Singh 	struct ody_rst_profile_aro_clk_cnt_s_s {
266*4b8b8d74SJaiprakash Singh 		uint32_t profile_aro_clk_cnt         : 31;
267*4b8b8d74SJaiprakash Singh 		uint32_t v                           : 1;
268*4b8b8d74SJaiprakash Singh 	} s;
269*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_profile_aro_clk_cnt_s_s cn; */
270*4b8b8d74SJaiprakash Singh };
271*4b8b8d74SJaiprakash Singh 
272*4b8b8d74SJaiprakash Singh /**
273*4b8b8d74SJaiprakash Singh  * Structure rst_profile_delta_s
274*4b8b8d74SJaiprakash Singh  *
275*4b8b8d74SJaiprakash Singh  * RST PLLRO Profile Delta Structure
276*4b8b8d74SJaiprakash Singh  * This structure describes the fields used in MRC_ARO_STATUS when a previous write to
277*4b8b8d74SJaiprakash Singh  * RST_TEST_PLL\<RST_PLL_E::MESHCLK\>[RSVD] = 5 with RST_TEST_RSVD5_S[PLLRO_CFG_STATUS_MUX] = 5.
278*4b8b8d74SJaiprakash Singh  * This structure describes the fields used in APA_ARO_STATUSn when a previous write to
279*4b8b8d74SJaiprakash Singh  * APA\<n\>_TEST_PLL[RSVD] = 5 with RST_TEST_PLL_RSVD5_S[PLLRO_CFG_STATUS_MUX] = 5.
280*4b8b8d74SJaiprakash Singh  * All other bits are assumed to be 0.
281*4b8b8d74SJaiprakash Singh  */
282*4b8b8d74SJaiprakash Singh union ody_rst_profile_delta_s {
283*4b8b8d74SJaiprakash Singh 	uint32_t u;
284*4b8b8d74SJaiprakash Singh 	struct ody_rst_profile_delta_s_s {
285*4b8b8d74SJaiprakash Singh 		uint32_t profile_max_pos_cpu_cnt_delta : 14;
286*4b8b8d74SJaiprakash Singh 		uint32_t profile_max_neg_cpu_cnt_delta : 14;
287*4b8b8d74SJaiprakash Singh 		uint32_t reserved_28_30              : 3;
288*4b8b8d74SJaiprakash Singh 		uint32_t v                           : 1;
289*4b8b8d74SJaiprakash Singh 	} s;
290*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_profile_delta_s_s cn; */
291*4b8b8d74SJaiprakash Singh };
292*4b8b8d74SJaiprakash Singh 
293*4b8b8d74SJaiprakash Singh /**
294*4b8b8d74SJaiprakash Singh  * Structure rst_profile_ref_clk_cnt_s
295*4b8b8d74SJaiprakash Singh  *
296*4b8b8d74SJaiprakash Singh  * RST PLLRO Profile Refclk Count Structure
297*4b8b8d74SJaiprakash Singh  * This structure describes the fields used in MRC_ARO_STATUS when a previous write to
298*4b8b8d74SJaiprakash Singh  * RST_TEST_PLL\<RST_PLL_E::MESHCLK\>[RSVD] = 5 with RST_TEST_RSVD5_S[PLLRO_CFG_STATUS_MUX] = 1.
299*4b8b8d74SJaiprakash Singh  * This structure describes the fields used in APA_ARO_STATUSn when a previous write to
300*4b8b8d74SJaiprakash Singh  * APA\<n\>_TEST_PLL[RSVD] = 5 with RST_TEST_PLL_RSVD5_S[PLLRO_CFG_STATUS_MUX] = 1.
301*4b8b8d74SJaiprakash Singh  * All other bits are assumed to be 0.
302*4b8b8d74SJaiprakash Singh  */
303*4b8b8d74SJaiprakash Singh union ody_rst_profile_ref_clk_cnt_s {
304*4b8b8d74SJaiprakash Singh 	uint32_t u;
305*4b8b8d74SJaiprakash Singh 	struct ody_rst_profile_ref_clk_cnt_s_s {
306*4b8b8d74SJaiprakash Singh 		uint32_t profile_ref_clk_cnt         : 31;
307*4b8b8d74SJaiprakash Singh 		uint32_t v                           : 1;
308*4b8b8d74SJaiprakash Singh 	} s;
309*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_profile_ref_clk_cnt_s_s cn; */
310*4b8b8d74SJaiprakash Singh };
311*4b8b8d74SJaiprakash Singh 
312*4b8b8d74SJaiprakash Singh /**
313*4b8b8d74SJaiprakash Singh  * Structure rst_profile_vdroop_s
314*4b8b8d74SJaiprakash Singh  *
315*4b8b8d74SJaiprakash Singh  * RST PLLRO Profile Vdroop Structure
316*4b8b8d74SJaiprakash Singh  * This structure describes the fields used in MRC_ARO_STATUS when a previous write to
317*4b8b8d74SJaiprakash Singh  * RST_TEST_PLL\<RST_PLL_E::MESHCLK\>[RSVD] = 5 with RST_TEST_RSVD5_S[PLLRO_CFG_STATUS_MUX] = 6.
318*4b8b8d74SJaiprakash Singh  * This structure describes the fields used in APA_ARO_STATUSn when a previous write to
319*4b8b8d74SJaiprakash Singh  * APA\<n\>_TEST_PLL[RSVD] = 5 with RST_TEST_PLL_RSVD5_S[PLLRO_CFG_STATUS_MUX] = 6.
320*4b8b8d74SJaiprakash Singh  * All other bits are assumed to be 0.
321*4b8b8d74SJaiprakash Singh  */
322*4b8b8d74SJaiprakash Singh union ody_rst_profile_vdroop_s {
323*4b8b8d74SJaiprakash Singh 	uint32_t u;
324*4b8b8d74SJaiprakash Singh 	struct ody_rst_profile_vdroop_s_s {
325*4b8b8d74SJaiprakash Singh 		uint32_t profile_vdroop_max_duration : 21;
326*4b8b8d74SJaiprakash Singh 		uint32_t profile_vdroop_edge_cnt     : 10;
327*4b8b8d74SJaiprakash Singh 		uint32_t v                           : 1;
328*4b8b8d74SJaiprakash Singh 	} s;
329*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_profile_vdroop_s_s cn; */
330*4b8b8d74SJaiprakash Singh };
331*4b8b8d74SJaiprakash Singh 
332*4b8b8d74SJaiprakash Singh /**
333*4b8b8d74SJaiprakash Singh  * Structure rst_profile_vdroop_sum_s
334*4b8b8d74SJaiprakash Singh  *
335*4b8b8d74SJaiprakash Singh  * RST PLLRO Profile ARO Clock Count Structure
336*4b8b8d74SJaiprakash Singh  * This structure describes the fields used in MRC_ARO_STATUS when a previous write to
337*4b8b8d74SJaiprakash Singh  * RST_TEST_PLL\<RST_PLL_E::MESHCLK\>[RSVD] = 5 with RST_TEST_RSVD5_S[PLLRO_CFG_STATUS_MUX] = 7.
338*4b8b8d74SJaiprakash Singh  * This structure describes the fields used in APA_ARO_STATUSn when a previous write to
339*4b8b8d74SJaiprakash Singh  * APA\<n\>_TEST_PLL[RSVD] = 5 with RST_TEST_PLL_RSVD5_S[PLLRO_CFG_STATUS_MUX] = 7.
340*4b8b8d74SJaiprakash Singh  * All other bits are assumed to be 0.
341*4b8b8d74SJaiprakash Singh  */
342*4b8b8d74SJaiprakash Singh union ody_rst_profile_vdroop_sum_s {
343*4b8b8d74SJaiprakash Singh 	uint32_t u;
344*4b8b8d74SJaiprakash Singh 	struct ody_rst_profile_vdroop_sum_s_s {
345*4b8b8d74SJaiprakash Singh 		uint32_t profile_vdroop_sum_duration : 31;
346*4b8b8d74SJaiprakash Singh 		uint32_t v                           : 1;
347*4b8b8d74SJaiprakash Singh 	} s;
348*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_profile_vdroop_sum_s_s cn; */
349*4b8b8d74SJaiprakash Singh };
350*4b8b8d74SJaiprakash Singh 
351*4b8b8d74SJaiprakash Singh /**
352*4b8b8d74SJaiprakash Singh  * Structure rst_profile_vdroop_total_cnt_s
353*4b8b8d74SJaiprakash Singh  *
354*4b8b8d74SJaiprakash Singh  * RST PLLRO Profile Refclk Count Structure
355*4b8b8d74SJaiprakash Singh  * This structure describes the fields used in MRC_ARO_STATUS when a previous write to
356*4b8b8d74SJaiprakash Singh  * RST_TEST_PLL\<RST_PLL_E::MESHCLK\>[RSVD] = 5 with RST_TEST_RSVD5_S[PLLRO_CFG_STATUS_MUX] = 2.
357*4b8b8d74SJaiprakash Singh  * This structure describes the fields used in APA_ARO_STATUSn when a previous write to
358*4b8b8d74SJaiprakash Singh  * APA\<n\>_TEST_PLL[RSVD] = 5 with RST_TEST_PLL_RSVD5_S[PLLRO_CFG_STATUS_MUX] = 2.
359*4b8b8d74SJaiprakash Singh  * All other bits are assumed to be 0.
360*4b8b8d74SJaiprakash Singh  */
361*4b8b8d74SJaiprakash Singh union ody_rst_profile_vdroop_total_cnt_s {
362*4b8b8d74SJaiprakash Singh 	uint32_t u;
363*4b8b8d74SJaiprakash Singh 	struct ody_rst_profile_vdroop_total_cnt_s_s {
364*4b8b8d74SJaiprakash Singh 		uint32_t profile_vdroop_total_cnt    : 31;
365*4b8b8d74SJaiprakash Singh 		uint32_t v                           : 1;
366*4b8b8d74SJaiprakash Singh 	} s;
367*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_profile_vdroop_total_cnt_s_s cn; */
368*4b8b8d74SJaiprakash Singh };
369*4b8b8d74SJaiprakash Singh 
370*4b8b8d74SJaiprakash Singh /**
371*4b8b8d74SJaiprakash Singh  * Structure rst_rou_ros_trgt_s
372*4b8b8d74SJaiprakash Singh  *
373*4b8b8d74SJaiprakash Singh  * RST PLLRO ROU and ROS Target Structure
374*4b8b8d74SJaiprakash Singh  * This structure describes the fields used in MRC_ARO_STATUS when a previous write to
375*4b8b8d74SJaiprakash Singh  * RST_TEST_PLL\<RST_PLL_E::MESHCLK\>[RSVD] = 5 with RST_TEST_RSVD5_S[PLLRO_CFG_STATUS_MUX] = 3.
376*4b8b8d74SJaiprakash Singh  * This structure describes the fields used in APA_ARO_STATUSn when a previous write to
377*4b8b8d74SJaiprakash Singh  * APA\<n\>_TEST_PLL[RSVD] = 5 with RST_TEST_PLL_RSVD5_S[PLLRO_CFG_STATUS_MUX] = 3.
378*4b8b8d74SJaiprakash Singh  * All other bits are assumed to be 0.
379*4b8b8d74SJaiprakash Singh  */
380*4b8b8d74SJaiprakash Singh union ody_rst_rou_ros_trgt_s {
381*4b8b8d74SJaiprakash Singh 	uint32_t u;
382*4b8b8d74SJaiprakash Singh 	struct ody_rst_rou_ros_trgt_s_s {
383*4b8b8d74SJaiprakash Singh 		uint32_t ros_trgt_p1                 : 8;
384*4b8b8d74SJaiprakash Singh 		uint32_t ros_trgt_p2                 : 8;
385*4b8b8d74SJaiprakash Singh 		uint32_t rou_trgt_p1                 : 8;
386*4b8b8d74SJaiprakash Singh 		uint32_t rou_trgt_p2                 : 8;
387*4b8b8d74SJaiprakash Singh 	} s;
388*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_rou_ros_trgt_s_s cn; */
389*4b8b8d74SJaiprakash Singh };
390*4b8b8d74SJaiprakash Singh 
391*4b8b8d74SJaiprakash Singh /**
392*4b8b8d74SJaiprakash Singh  * Structure rst_test_pll_rsvd4_s
393*4b8b8d74SJaiprakash Singh  *
394*4b8b8d74SJaiprakash Singh  * RST TEST_PLL[TEST_RSVD]=4 Structure
395*4b8b8d74SJaiprakash Singh  * This structure specifies the values of RST_TEST_PLL()[STOP_CNT\<\>] bits.
396*4b8b8d74SJaiprakash Singh  * All other bits are assumed to be 0.
397*4b8b8d74SJaiprakash Singh  */
398*4b8b8d74SJaiprakash Singh union ody_rst_test_pll_rsvd4_s {
399*4b8b8d74SJaiprakash Singh 	uint32_t u;
400*4b8b8d74SJaiprakash Singh 	struct ody_rst_test_pll_rsvd4_s_s {
401*4b8b8d74SJaiprakash Singh 		uint32_t pll0_voltage                : 3;
402*4b8b8d74SJaiprakash Singh 		uint32_t pll1_voltage                : 4;
403*4b8b8d74SJaiprakash Singh 		uint32_t test_id                     : 5;
404*4b8b8d74SJaiprakash Singh 		uint32_t reserved_12_31              : 20;
405*4b8b8d74SJaiprakash Singh 	} s;
406*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_test_pll_rsvd4_s_s cn; */
407*4b8b8d74SJaiprakash Singh };
408*4b8b8d74SJaiprakash Singh 
409*4b8b8d74SJaiprakash Singh /**
410*4b8b8d74SJaiprakash Singh  * Structure rst_test_pll_rsvd5_s
411*4b8b8d74SJaiprakash Singh  *
412*4b8b8d74SJaiprakash Singh  * RST TEST_PLL[TEST_RSVD]=5 Structure
413*4b8b8d74SJaiprakash Singh  * This structure specifies the values of RST_TEST_PLL()[STOP_CNT\<\>] bits.
414*4b8b8d74SJaiprakash Singh  * All other bits are assumed to be 0.
415*4b8b8d74SJaiprakash Singh  */
416*4b8b8d74SJaiprakash Singh union ody_rst_test_pll_rsvd5_s {
417*4b8b8d74SJaiprakash Singh 	uint32_t u;
418*4b8b8d74SJaiprakash Singh 	struct ody_rst_test_pll_rsvd5_s_s {
419*4b8b8d74SJaiprakash Singh 		uint32_t pllro_cfg_usr_rst           : 1;
420*4b8b8d74SJaiprakash Singh 		uint32_t pllro_cfg_div_en            : 1;
421*4b8b8d74SJaiprakash Singh 		uint32_t pllro_cfg_clkout_en         : 1;
422*4b8b8d74SJaiprakash Singh 		uint32_t pllro_cfg_usr_sel_ro_trgt   : 1;
423*4b8b8d74SJaiprakash Singh 		uint32_t pllro_cfg_usr_cntrs_init_ld : 1;
424*4b8b8d74SJaiprakash Singh 		uint32_t pllro_cfg_calib_mode        : 1;
425*4b8b8d74SJaiprakash Singh 		uint32_t pllro_cfg_ref_cnt_frq_grd   : 2;
426*4b8b8d74SJaiprakash Singh 		uint32_t pllro_cfg_locktime_opt_dis  : 1;
427*4b8b8d74SJaiprakash Singh 		uint32_t pllro_cfg_select_u          : 1;
428*4b8b8d74SJaiprakash Singh 		uint32_t pllro_cfg_select_s          : 1;
429*4b8b8d74SJaiprakash Singh 		uint32_t pllro_cfg_usr_update_ro_trgt : 1;
430*4b8b8d74SJaiprakash Singh 		uint32_t pllro_cfg_ref_cnt_fctr      : 4;
431*4b8b8d74SJaiprakash Singh 		uint32_t aro_mux_disable             : 1;
432*4b8b8d74SJaiprakash Singh 		uint32_t pllro_cfg_status_mux        : 3;
433*4b8b8d74SJaiprakash Singh 		uint32_t droop_divider               : 2;
434*4b8b8d74SJaiprakash Singh 		uint32_t droop_recovery              : 6;
435*4b8b8d74SJaiprakash Singh 		uint32_t pll0_uses_droop             : 1;
436*4b8b8d74SJaiprakash Singh 		uint32_t pll1_uses_droop             : 1;
437*4b8b8d74SJaiprakash Singh 		uint32_t droop_test                  : 1;
438*4b8b8d74SJaiprakash Singh 		uint32_t reserved_31                 : 1;
439*4b8b8d74SJaiprakash Singh 	} s;
440*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_test_pll_rsvd5_s_s cn; */
441*4b8b8d74SJaiprakash Singh };
442*4b8b8d74SJaiprakash Singh 
443*4b8b8d74SJaiprakash Singh /**
444*4b8b8d74SJaiprakash Singh  * Structure rst_test_pll_rsvd6_s
445*4b8b8d74SJaiprakash Singh  *
446*4b8b8d74SJaiprakash Singh  * RST TEST_PLL[TEST_RSVD]=6 Structure
447*4b8b8d74SJaiprakash Singh  * This structure defines the values of RST_TEST_PLL()[STOP_CNT\<\>] bits.
448*4b8b8d74SJaiprakash Singh  * All other bits are assumed to be 0.
449*4b8b8d74SJaiprakash Singh  */
450*4b8b8d74SJaiprakash Singh union ody_rst_test_pll_rsvd6_s {
451*4b8b8d74SJaiprakash Singh 	uint32_t u;
452*4b8b8d74SJaiprakash Singh 	struct ody_rst_test_pll_rsvd6_s_s {
453*4b8b8d74SJaiprakash Singh 		uint32_t pllro_cfg_safe_ro_trgt      : 8;
454*4b8b8d74SJaiprakash Singh 		uint32_t pllro_cfg_rou_trgt_min_val  : 8;
455*4b8b8d74SJaiprakash Singh 		uint32_t pllro_cfg_ros_trgt_min_val  : 8;
456*4b8b8d74SJaiprakash Singh 		uint32_t reserved_24_31              : 8;
457*4b8b8d74SJaiprakash Singh 	} s;
458*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_test_pll_rsvd6_s_s cn; */
459*4b8b8d74SJaiprakash Singh };
460*4b8b8d74SJaiprakash Singh 
461*4b8b8d74SJaiprakash Singh /**
462*4b8b8d74SJaiprakash Singh  * Structure rst_test_pll_rsvd7_droop_s
463*4b8b8d74SJaiprakash Singh  *
464*4b8b8d74SJaiprakash Singh  * RST TEST_PLL[TEST_RSVD]=7 Droop Detector Structure
465*4b8b8d74SJaiprakash Singh  * This structure defines the values of RST_TEST_PLL()[STOP_CNT\<\>] bits.
466*4b8b8d74SJaiprakash Singh  * All other bits are assumed to be 0.
467*4b8b8d74SJaiprakash Singh  */
468*4b8b8d74SJaiprakash Singh union ody_rst_test_pll_rsvd7_droop_s {
469*4b8b8d74SJaiprakash Singh 	uint32_t u;
470*4b8b8d74SJaiprakash Singh 	struct ody_rst_test_pll_rsvd7_droop_s_s {
471*4b8b8d74SJaiprakash Singh 		uint32_t erosel                      : 4;
472*4b8b8d74SJaiprakash Singh 		uint32_t ecnt                        : 4;
473*4b8b8d74SJaiprakash Singh 		uint32_t srosel                      : 4;
474*4b8b8d74SJaiprakash Singh 		uint32_t scnt                        : 2;
475*4b8b8d74SJaiprakash Singh 		uint32_t dd_cell_enable              : 1;
476*4b8b8d74SJaiprakash Singh 		uint32_t dd_calb_go                  : 1;
477*4b8b8d74SJaiprakash Singh 		uint32_t aro_slowdown                : 4;
478*4b8b8d74SJaiprakash Singh 		uint32_t dd_recovery_delay           : 4;
479*4b8b8d74SJaiprakash Singh 		uint32_t frequency_governer_disable  : 1;
480*4b8b8d74SJaiprakash Singh 		uint32_t dd_ctrl_enable              : 1;
481*4b8b8d74SJaiprakash Singh 		uint32_t profile_enable              : 1;
482*4b8b8d74SJaiprakash Singh 		uint32_t aro_target_find_go          : 1;
483*4b8b8d74SJaiprakash Singh 		uint32_t profile_window_size         : 2;
484*4b8b8d74SJaiprakash Singh 		uint32_t profile_win_start           : 1;
485*4b8b8d74SJaiprakash Singh 		uint32_t profile_one_shot            : 1;
486*4b8b8d74SJaiprakash Singh 	} s;
487*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_test_pll_rsvd7_droop_s_s cn; */
488*4b8b8d74SJaiprakash Singh };
489*4b8b8d74SJaiprakash Singh 
490*4b8b8d74SJaiprakash Singh /**
491*4b8b8d74SJaiprakash Singh  * Structure rst_test_pll_rsvd7_s
492*4b8b8d74SJaiprakash Singh  *
493*4b8b8d74SJaiprakash Singh  * RST TEST_PLL[TEST_RSVD]=7 Structure
494*4b8b8d74SJaiprakash Singh  * This enumerates the values of RST_TEST_PLL()[STOP_CNT\<\>] bits.
495*4b8b8d74SJaiprakash Singh  * All other bits are assumed to be 0.
496*4b8b8d74SJaiprakash Singh  */
497*4b8b8d74SJaiprakash Singh union ody_rst_test_pll_rsvd7_s {
498*4b8b8d74SJaiprakash Singh 	uint32_t u;
499*4b8b8d74SJaiprakash Singh 	struct ody_rst_test_pll_rsvd7_s_s {
500*4b8b8d74SJaiprakash Singh 		uint32_t pllro_cfg_usr_rou_trgt_p2   : 8;
501*4b8b8d74SJaiprakash Singh 		uint32_t pllro_cfg_usr_rou_trgt_p1   : 8;
502*4b8b8d74SJaiprakash Singh 		uint32_t pllro_cfg_usr_ros_trgt_p2   : 8;
503*4b8b8d74SJaiprakash Singh 		uint32_t pllro_cfg_usr_ros_trgt_p1   : 8;
504*4b8b8d74SJaiprakash Singh 	} s;
505*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_test_pll_rsvd7_s_s cn; */
506*4b8b8d74SJaiprakash Singh };
507*4b8b8d74SJaiprakash Singh 
508*4b8b8d74SJaiprakash Singh /**
509*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_ap_available#
510*4b8b8d74SJaiprakash Singh  *
511*4b8b8d74SJaiprakash Singh  * RST Physical Core Availability Register
512*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
513*4b8b8d74SJaiprakash Singh  */
514*4b8b8d74SJaiprakash Singh union ody_rst_ap_availablex {
515*4b8b8d74SJaiprakash Singh 	uint64_t u;
516*4b8b8d74SJaiprakash Singh 	struct ody_rst_ap_availablex_s {
517*4b8b8d74SJaiprakash Singh 		uint64_t present                     : 64;
518*4b8b8d74SJaiprakash Singh 	} s;
519*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_ap_availablex_s cn; */
520*4b8b8d74SJaiprakash Singh };
521*4b8b8d74SJaiprakash Singh typedef union ody_rst_ap_availablex ody_rst_ap_availablex_t;
522*4b8b8d74SJaiprakash Singh 
523*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_AP_AVAILABLEX(uint64_t a) __attribute__ ((pure, always_inline));
ODY_RST_AP_AVAILABLEX(uint64_t a)524*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_AP_AVAILABLEX(uint64_t a)
525*4b8b8d74SJaiprakash Singh {
526*4b8b8d74SJaiprakash Singh 	if (a <= 3)
527*4b8b8d74SJaiprakash Singh 		return 0x87e006001730ll + 8ll * ((a) & 0x3);
528*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("RST_AP_AVAILABLEX", 1, a, 0, 0, 0, 0, 0);
529*4b8b8d74SJaiprakash Singh }
530*4b8b8d74SJaiprakash Singh 
531*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_AP_AVAILABLEX(a) ody_rst_ap_availablex_t
532*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_AP_AVAILABLEX(a) CSR_TYPE_RSL
533*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_AP_AVAILABLEX(a) "RST_AP_AVAILABLEX"
534*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_AP_AVAILABLEX(a) 0x0 /* PF_BAR0 */
535*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_AP_AVAILABLEX(a) (a)
536*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_AP_AVAILABLEX(a) (a), -1, -1, -1
537*4b8b8d74SJaiprakash Singh 
538*4b8b8d74SJaiprakash Singh /**
539*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_bist_active
540*4b8b8d74SJaiprakash Singh  *
541*4b8b8d74SJaiprakash Singh  * RST BIST Active Status Register
542*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
543*4b8b8d74SJaiprakash Singh  */
544*4b8b8d74SJaiprakash Singh union ody_rst_bist_active {
545*4b8b8d74SJaiprakash Singh 	uint64_t u;
546*4b8b8d74SJaiprakash Singh 	struct ody_rst_bist_active_s {
547*4b8b8d74SJaiprakash Singh 		uint64_t chip                        : 1;
548*4b8b8d74SJaiprakash Singh 		uint64_t core                        : 1;
549*4b8b8d74SJaiprakash Singh 		uint64_t mcp                         : 1;
550*4b8b8d74SJaiprakash Singh 		uint64_t scp                         : 1;
551*4b8b8d74SJaiprakash Singh 		uint64_t bphy                        : 1;
552*4b8b8d74SJaiprakash Singh 		uint64_t xcp2                        : 1;
553*4b8b8d74SJaiprakash Singh 		uint64_t csr                         : 1;
554*4b8b8d74SJaiprakash Singh 		uint64_t reserved_7_63               : 57;
555*4b8b8d74SJaiprakash Singh 	} s;
556*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_bist_active_s cn; */
557*4b8b8d74SJaiprakash Singh };
558*4b8b8d74SJaiprakash Singh typedef union ody_rst_bist_active ody_rst_bist_active_t;
559*4b8b8d74SJaiprakash Singh 
560*4b8b8d74SJaiprakash Singh #define ODY_RST_BIST_ACTIVE ODY_RST_BIST_ACTIVE_FUNC()
561*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_BIST_ACTIVE_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_BIST_ACTIVE_FUNC(void)562*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_BIST_ACTIVE_FUNC(void)
563*4b8b8d74SJaiprakash Singh {
564*4b8b8d74SJaiprakash Singh 	return 0x87e006001890ll;
565*4b8b8d74SJaiprakash Singh }
566*4b8b8d74SJaiprakash Singh 
567*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_BIST_ACTIVE ody_rst_bist_active_t
568*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_BIST_ACTIVE CSR_TYPE_RSL
569*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_BIST_ACTIVE "RST_BIST_ACTIVE"
570*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_BIST_ACTIVE 0x0 /* PF_BAR0 */
571*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_BIST_ACTIVE 0
572*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_BIST_ACTIVE -1, -1, -1, -1
573*4b8b8d74SJaiprakash Singh 
574*4b8b8d74SJaiprakash Singh /**
575*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_boot
576*4b8b8d74SJaiprakash Singh  *
577*4b8b8d74SJaiprakash Singh  * RST Boot Register
578*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
579*4b8b8d74SJaiprakash Singh  */
580*4b8b8d74SJaiprakash Singh union ody_rst_boot {
581*4b8b8d74SJaiprakash Singh 	uint64_t u;
582*4b8b8d74SJaiprakash Singh 	struct ody_rst_boot_s {
583*4b8b8d74SJaiprakash Singh 		uint64_t rboot_pin                   : 1;
584*4b8b8d74SJaiprakash Singh 		uint64_t rboot_scp                   : 1;
585*4b8b8d74SJaiprakash Singh 		uint64_t rboot_mcp                   : 1;
586*4b8b8d74SJaiprakash Singh 		uint64_t rboot_xcp2                  : 1;
587*4b8b8d74SJaiprakash Singh 		uint64_t reserved_4_62               : 59;
588*4b8b8d74SJaiprakash Singh 		uint64_t chipkill                    : 1;
589*4b8b8d74SJaiprakash Singh 	} s;
590*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_boot_s cn; */
591*4b8b8d74SJaiprakash Singh };
592*4b8b8d74SJaiprakash Singh typedef union ody_rst_boot ody_rst_boot_t;
593*4b8b8d74SJaiprakash Singh 
594*4b8b8d74SJaiprakash Singh #define ODY_RST_BOOT ODY_RST_BOOT_FUNC()
595*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_BOOT_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_BOOT_FUNC(void)596*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_BOOT_FUNC(void)
597*4b8b8d74SJaiprakash Singh {
598*4b8b8d74SJaiprakash Singh 	return 0x87e006001600ll;
599*4b8b8d74SJaiprakash Singh }
600*4b8b8d74SJaiprakash Singh 
601*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_BOOT ody_rst_boot_t
602*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_BOOT CSR_TYPE_RSL
603*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_BOOT "RST_BOOT"
604*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_BOOT 0x0 /* PF_BAR0 */
605*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_BOOT 0
606*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_BOOT -1, -1, -1, -1
607*4b8b8d74SJaiprakash Singh 
608*4b8b8d74SJaiprakash Singh /**
609*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_boot_status
610*4b8b8d74SJaiprakash Singh  *
611*4b8b8d74SJaiprakash Singh  * RST Boot Status Register
612*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
613*4b8b8d74SJaiprakash Singh  */
614*4b8b8d74SJaiprakash Singh union ody_rst_boot_status {
615*4b8b8d74SJaiprakash Singh 	uint64_t u;
616*4b8b8d74SJaiprakash Singh 	struct ody_rst_boot_status_s {
617*4b8b8d74SJaiprakash Singh 		uint64_t stat0                       : 16;
618*4b8b8d74SJaiprakash Singh 		uint64_t stat1                       : 16;
619*4b8b8d74SJaiprakash Singh 		uint64_t stat2                       : 16;
620*4b8b8d74SJaiprakash Singh 		uint64_t stat3                       : 16;
621*4b8b8d74SJaiprakash Singh 	} s;
622*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_boot_status_s cn; */
623*4b8b8d74SJaiprakash Singh };
624*4b8b8d74SJaiprakash Singh typedef union ody_rst_boot_status ody_rst_boot_status_t;
625*4b8b8d74SJaiprakash Singh 
626*4b8b8d74SJaiprakash Singh #define ODY_RST_BOOT_STATUS ODY_RST_BOOT_STATUS_FUNC()
627*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_BOOT_STATUS_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_BOOT_STATUS_FUNC(void)628*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_BOOT_STATUS_FUNC(void)
629*4b8b8d74SJaiprakash Singh {
630*4b8b8d74SJaiprakash Singh 	return 0x87e006001800ll;
631*4b8b8d74SJaiprakash Singh }
632*4b8b8d74SJaiprakash Singh 
633*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_BOOT_STATUS ody_rst_boot_status_t
634*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_BOOT_STATUS CSR_TYPE_RSL
635*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_BOOT_STATUS "RST_BOOT_STATUS"
636*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_BOOT_STATUS 0x0 /* PF_BAR0 */
637*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_BOOT_STATUS 0
638*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_BOOT_STATUS -1, -1, -1, -1
639*4b8b8d74SJaiprakash Singh 
640*4b8b8d74SJaiprakash Singh /**
641*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_bphy_domain_w1c
642*4b8b8d74SJaiprakash Singh  *
643*4b8b8d74SJaiprakash Singh  * RST BPHY Domain Soft Reset Clear Register
644*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
645*4b8b8d74SJaiprakash Singh  */
646*4b8b8d74SJaiprakash Singh union ody_rst_bphy_domain_w1c {
647*4b8b8d74SJaiprakash Singh 	uint64_t u;
648*4b8b8d74SJaiprakash Singh 	struct ody_rst_bphy_domain_w1c_s {
649*4b8b8d74SJaiprakash Singh 		uint64_t soft_rst                    : 1;
650*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1_63               : 63;
651*4b8b8d74SJaiprakash Singh 	} s;
652*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_bphy_domain_w1c_s cn; */
653*4b8b8d74SJaiprakash Singh };
654*4b8b8d74SJaiprakash Singh typedef union ody_rst_bphy_domain_w1c ody_rst_bphy_domain_w1c_t;
655*4b8b8d74SJaiprakash Singh 
656*4b8b8d74SJaiprakash Singh #define ODY_RST_BPHY_DOMAIN_W1C ODY_RST_BPHY_DOMAIN_W1C_FUNC()
657*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_BPHY_DOMAIN_W1C_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_BPHY_DOMAIN_W1C_FUNC(void)658*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_BPHY_DOMAIN_W1C_FUNC(void)
659*4b8b8d74SJaiprakash Singh {
660*4b8b8d74SJaiprakash Singh 	return 0x87e006001858ll;
661*4b8b8d74SJaiprakash Singh }
662*4b8b8d74SJaiprakash Singh 
663*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_BPHY_DOMAIN_W1C ody_rst_bphy_domain_w1c_t
664*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_BPHY_DOMAIN_W1C CSR_TYPE_RSL
665*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_BPHY_DOMAIN_W1C "RST_BPHY_DOMAIN_W1C"
666*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_BPHY_DOMAIN_W1C 0x0 /* PF_BAR0 */
667*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_BPHY_DOMAIN_W1C 0
668*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_BPHY_DOMAIN_W1C -1, -1, -1, -1
669*4b8b8d74SJaiprakash Singh 
670*4b8b8d74SJaiprakash Singh /**
671*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_bphy_domain_w1s
672*4b8b8d74SJaiprakash Singh  *
673*4b8b8d74SJaiprakash Singh  * RST BPHY Domain Soft Reset Set Register
674*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
675*4b8b8d74SJaiprakash Singh  */
676*4b8b8d74SJaiprakash Singh union ody_rst_bphy_domain_w1s {
677*4b8b8d74SJaiprakash Singh 	uint64_t u;
678*4b8b8d74SJaiprakash Singh 	struct ody_rst_bphy_domain_w1s_s {
679*4b8b8d74SJaiprakash Singh 		uint64_t soft_rst                    : 1;
680*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1_63               : 63;
681*4b8b8d74SJaiprakash Singh 	} s;
682*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_bphy_domain_w1s_s cn; */
683*4b8b8d74SJaiprakash Singh };
684*4b8b8d74SJaiprakash Singh typedef union ody_rst_bphy_domain_w1s ody_rst_bphy_domain_w1s_t;
685*4b8b8d74SJaiprakash Singh 
686*4b8b8d74SJaiprakash Singh #define ODY_RST_BPHY_DOMAIN_W1S ODY_RST_BPHY_DOMAIN_W1S_FUNC()
687*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_BPHY_DOMAIN_W1S_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_BPHY_DOMAIN_W1S_FUNC(void)688*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_BPHY_DOMAIN_W1S_FUNC(void)
689*4b8b8d74SJaiprakash Singh {
690*4b8b8d74SJaiprakash Singh 	return 0x87e006001850ll;
691*4b8b8d74SJaiprakash Singh }
692*4b8b8d74SJaiprakash Singh 
693*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_BPHY_DOMAIN_W1S ody_rst_bphy_domain_w1s_t
694*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_BPHY_DOMAIN_W1S CSR_TYPE_RSL
695*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_BPHY_DOMAIN_W1S "RST_BPHY_DOMAIN_W1S"
696*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_BPHY_DOMAIN_W1S 0x0 /* PF_BAR0 */
697*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_BPHY_DOMAIN_W1S 0
698*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_BPHY_DOMAIN_W1S -1, -1, -1, -1
699*4b8b8d74SJaiprakash Singh 
700*4b8b8d74SJaiprakash Singh /**
701*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_cfg
702*4b8b8d74SJaiprakash Singh  *
703*4b8b8d74SJaiprakash Singh  * RST Configuration Register
704*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
705*4b8b8d74SJaiprakash Singh  */
706*4b8b8d74SJaiprakash Singh union ody_rst_cfg {
707*4b8b8d74SJaiprakash Singh 	uint64_t u;
708*4b8b8d74SJaiprakash Singh 	struct ody_rst_cfg_s {
709*4b8b8d74SJaiprakash Singh 		uint64_t clr_bist                    : 1;
710*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1_63               : 63;
711*4b8b8d74SJaiprakash Singh 	} s;
712*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_cfg_s cn; */
713*4b8b8d74SJaiprakash Singh };
714*4b8b8d74SJaiprakash Singh typedef union ody_rst_cfg ody_rst_cfg_t;
715*4b8b8d74SJaiprakash Singh 
716*4b8b8d74SJaiprakash Singh #define ODY_RST_CFG ODY_RST_CFG_FUNC()
717*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_CFG_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_CFG_FUNC(void)718*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_CFG_FUNC(void)
719*4b8b8d74SJaiprakash Singh {
720*4b8b8d74SJaiprakash Singh 	return 0x87e006001610ll;
721*4b8b8d74SJaiprakash Singh }
722*4b8b8d74SJaiprakash Singh 
723*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_CFG ody_rst_cfg_t
724*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_CFG CSR_TYPE_RSL
725*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_CFG "RST_CFG"
726*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_CFG 0x0 /* PF_BAR0 */
727*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_CFG 0
728*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_CFG -1, -1, -1, -1
729*4b8b8d74SJaiprakash Singh 
730*4b8b8d74SJaiprakash Singh /**
731*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_chip_domain_w1s
732*4b8b8d74SJaiprakash Singh  *
733*4b8b8d74SJaiprakash Singh  * RST Chip Domain Soft Pulse Reset Register
734*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
735*4b8b8d74SJaiprakash Singh  */
736*4b8b8d74SJaiprakash Singh union ody_rst_chip_domain_w1s {
737*4b8b8d74SJaiprakash Singh 	uint64_t u;
738*4b8b8d74SJaiprakash Singh 	struct ody_rst_chip_domain_w1s_s {
739*4b8b8d74SJaiprakash Singh 		uint64_t soft_rst                    : 1;
740*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1_63               : 63;
741*4b8b8d74SJaiprakash Singh 	} s;
742*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_chip_domain_w1s_s cn; */
743*4b8b8d74SJaiprakash Singh };
744*4b8b8d74SJaiprakash Singh typedef union ody_rst_chip_domain_w1s ody_rst_chip_domain_w1s_t;
745*4b8b8d74SJaiprakash Singh 
746*4b8b8d74SJaiprakash Singh #define ODY_RST_CHIP_DOMAIN_W1S ODY_RST_CHIP_DOMAIN_W1S_FUNC()
747*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_CHIP_DOMAIN_W1S_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_CHIP_DOMAIN_W1S_FUNC(void)748*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_CHIP_DOMAIN_W1S_FUNC(void)
749*4b8b8d74SJaiprakash Singh {
750*4b8b8d74SJaiprakash Singh 	return 0x87e006001810ll;
751*4b8b8d74SJaiprakash Singh }
752*4b8b8d74SJaiprakash Singh 
753*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_CHIP_DOMAIN_W1S ody_rst_chip_domain_w1s_t
754*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_CHIP_DOMAIN_W1S CSR_TYPE_RSL
755*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_CHIP_DOMAIN_W1S "RST_CHIP_DOMAIN_W1S"
756*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_CHIP_DOMAIN_W1S 0x0 /* PF_BAR0 */
757*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_CHIP_DOMAIN_W1S 0
758*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_CHIP_DOMAIN_W1S -1, -1, -1, -1
759*4b8b8d74SJaiprakash Singh 
760*4b8b8d74SJaiprakash Singh /**
761*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_ckill
762*4b8b8d74SJaiprakash Singh  *
763*4b8b8d74SJaiprakash Singh  * RST Chipkill Timer Register
764*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
765*4b8b8d74SJaiprakash Singh  */
766*4b8b8d74SJaiprakash Singh union ody_rst_ckill {
767*4b8b8d74SJaiprakash Singh 	uint64_t u;
768*4b8b8d74SJaiprakash Singh 	struct ody_rst_ckill_s {
769*4b8b8d74SJaiprakash Singh 		uint64_t timer                       : 47;
770*4b8b8d74SJaiprakash Singh 		uint64_t reserved_47_63              : 17;
771*4b8b8d74SJaiprakash Singh 	} s;
772*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_ckill_s cn; */
773*4b8b8d74SJaiprakash Singh };
774*4b8b8d74SJaiprakash Singh typedef union ody_rst_ckill ody_rst_ckill_t;
775*4b8b8d74SJaiprakash Singh 
776*4b8b8d74SJaiprakash Singh #define ODY_RST_CKILL ODY_RST_CKILL_FUNC()
777*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_CKILL_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_CKILL_FUNC(void)778*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_CKILL_FUNC(void)
779*4b8b8d74SJaiprakash Singh {
780*4b8b8d74SJaiprakash Singh 	return 0x87e006001638ll;
781*4b8b8d74SJaiprakash Singh }
782*4b8b8d74SJaiprakash Singh 
783*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_CKILL ody_rst_ckill_t
784*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_CKILL CSR_TYPE_RSL
785*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_CKILL "RST_CKILL"
786*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_CKILL 0x0 /* PF_BAR0 */
787*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_CKILL 0
788*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_CKILL -1, -1, -1, -1
789*4b8b8d74SJaiprakash Singh 
790*4b8b8d74SJaiprakash Singh /**
791*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_clk_ctl
792*4b8b8d74SJaiprakash Singh  *
793*4b8b8d74SJaiprakash Singh  * RST Clock Control Register
794*4b8b8d74SJaiprakash Singh  * This register is accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
795*4b8b8d74SJaiprakash Singh  */
796*4b8b8d74SJaiprakash Singh union ody_rst_clk_ctl {
797*4b8b8d74SJaiprakash Singh 	uint64_t u;
798*4b8b8d74SJaiprakash Singh 	struct ody_rst_clk_ctl_s {
799*4b8b8d74SJaiprakash Singh 		uint64_t refclk_src                  : 1;
800*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1_63               : 63;
801*4b8b8d74SJaiprakash Singh 	} s;
802*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_clk_ctl_s cn; */
803*4b8b8d74SJaiprakash Singh };
804*4b8b8d74SJaiprakash Singh typedef union ody_rst_clk_ctl ody_rst_clk_ctl_t;
805*4b8b8d74SJaiprakash Singh 
806*4b8b8d74SJaiprakash Singh #define ODY_RST_CLK_CTL ODY_RST_CLK_CTL_FUNC()
807*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_CLK_CTL_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_CLK_CTL_FUNC(void)808*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_CLK_CTL_FUNC(void)
809*4b8b8d74SJaiprakash Singh {
810*4b8b8d74SJaiprakash Singh 	return 0x87e0060018a0ll;
811*4b8b8d74SJaiprakash Singh }
812*4b8b8d74SJaiprakash Singh 
813*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_CLK_CTL ody_rst_clk_ctl_t
814*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_CLK_CTL CSR_TYPE_RSL
815*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_CLK_CTL "RST_CLK_CTL"
816*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_CLK_CTL 0x0 /* PF_BAR0 */
817*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_CLK_CTL 0
818*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_CLK_CTL -1, -1, -1, -1
819*4b8b8d74SJaiprakash Singh 
820*4b8b8d74SJaiprakash Singh /**
821*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_clk_freq
822*4b8b8d74SJaiprakash Singh  *
823*4b8b8d74SJaiprakash Singh  * RST PLL Clock Frequency Register
824*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
825*4b8b8d74SJaiprakash Singh  */
826*4b8b8d74SJaiprakash Singh union ody_rst_clk_freq {
827*4b8b8d74SJaiprakash Singh 	uint64_t u;
828*4b8b8d74SJaiprakash Singh 	struct ody_rst_clk_freq_s {
829*4b8b8d74SJaiprakash Singh 		uint64_t cnt                         : 37;
830*4b8b8d74SJaiprakash Singh 		uint64_t reserved_37_63              : 27;
831*4b8b8d74SJaiprakash Singh 	} s;
832*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_clk_freq_s cn; */
833*4b8b8d74SJaiprakash Singh };
834*4b8b8d74SJaiprakash Singh typedef union ody_rst_clk_freq ody_rst_clk_freq_t;
835*4b8b8d74SJaiprakash Singh 
836*4b8b8d74SJaiprakash Singh #define ODY_RST_CLK_FREQ ODY_RST_CLK_FREQ_FUNC()
837*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_CLK_FREQ_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_CLK_FREQ_FUNC(void)838*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_CLK_FREQ_FUNC(void)
839*4b8b8d74SJaiprakash Singh {
840*4b8b8d74SJaiprakash Singh 	return 0x87e0060016b8ll;
841*4b8b8d74SJaiprakash Singh }
842*4b8b8d74SJaiprakash Singh 
843*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_CLK_FREQ ody_rst_clk_freq_t
844*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_CLK_FREQ CSR_TYPE_RSL
845*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_CLK_FREQ "RST_CLK_FREQ"
846*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_CLK_FREQ 0x0 /* PF_BAR0 */
847*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_CLK_FREQ 0
848*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_CLK_FREQ -1, -1, -1, -1
849*4b8b8d74SJaiprakash Singh 
850*4b8b8d74SJaiprakash Singh /**
851*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_clk_sample
852*4b8b8d74SJaiprakash Singh  *
853*4b8b8d74SJaiprakash Singh  * RST PLL Clock Sample Period Register
854*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
855*4b8b8d74SJaiprakash Singh  */
856*4b8b8d74SJaiprakash Singh union ody_rst_clk_sample {
857*4b8b8d74SJaiprakash Singh 	uint64_t u;
858*4b8b8d74SJaiprakash Singh 	struct ody_rst_clk_sample_s {
859*4b8b8d74SJaiprakash Singh 		uint64_t window                      : 32;
860*4b8b8d74SJaiprakash Singh 		uint64_t reserved_32_62              : 31;
861*4b8b8d74SJaiprakash Singh 		uint64_t not_done                    : 1;
862*4b8b8d74SJaiprakash Singh 	} s;
863*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_clk_sample_s cn; */
864*4b8b8d74SJaiprakash Singh };
865*4b8b8d74SJaiprakash Singh typedef union ody_rst_clk_sample ody_rst_clk_sample_t;
866*4b8b8d74SJaiprakash Singh 
867*4b8b8d74SJaiprakash Singh #define ODY_RST_CLK_SAMPLE ODY_RST_CLK_SAMPLE_FUNC()
868*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_CLK_SAMPLE_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_CLK_SAMPLE_FUNC(void)869*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_CLK_SAMPLE_FUNC(void)
870*4b8b8d74SJaiprakash Singh {
871*4b8b8d74SJaiprakash Singh 	return 0x87e0060016b0ll;
872*4b8b8d74SJaiprakash Singh }
873*4b8b8d74SJaiprakash Singh 
874*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_CLK_SAMPLE ody_rst_clk_sample_t
875*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_CLK_SAMPLE CSR_TYPE_RSL
876*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_CLK_SAMPLE "RST_CLK_SAMPLE"
877*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_CLK_SAMPLE 0x0 /* PF_BAR0 */
878*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_CLK_SAMPLE 0
879*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_CLK_SAMPLE -1, -1, -1, -1
880*4b8b8d74SJaiprakash Singh 
881*4b8b8d74SJaiprakash Singh /**
882*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_cold_data#
883*4b8b8d74SJaiprakash Singh  *
884*4b8b8d74SJaiprakash Singh  * RST Cold Reset Data Registers
885*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
886*4b8b8d74SJaiprakash Singh  */
887*4b8b8d74SJaiprakash Singh union ody_rst_cold_datax {
888*4b8b8d74SJaiprakash Singh 	uint64_t u;
889*4b8b8d74SJaiprakash Singh 	struct ody_rst_cold_datax_s {
890*4b8b8d74SJaiprakash Singh 		uint64_t data                        : 64;
891*4b8b8d74SJaiprakash Singh 	} s;
892*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_cold_datax_s cn; */
893*4b8b8d74SJaiprakash Singh };
894*4b8b8d74SJaiprakash Singh typedef union ody_rst_cold_datax ody_rst_cold_datax_t;
895*4b8b8d74SJaiprakash Singh 
896*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_COLD_DATAX(uint64_t a) __attribute__ ((pure, always_inline));
ODY_RST_COLD_DATAX(uint64_t a)897*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_COLD_DATAX(uint64_t a)
898*4b8b8d74SJaiprakash Singh {
899*4b8b8d74SJaiprakash Singh 	if (a <= 5)
900*4b8b8d74SJaiprakash Singh 		return 0x87e0060017c0ll + 8ll * ((a) & 0x7);
901*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("RST_COLD_DATAX", 1, a, 0, 0, 0, 0, 0);
902*4b8b8d74SJaiprakash Singh }
903*4b8b8d74SJaiprakash Singh 
904*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_COLD_DATAX(a) ody_rst_cold_datax_t
905*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_COLD_DATAX(a) CSR_TYPE_RSL
906*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_COLD_DATAX(a) "RST_COLD_DATAX"
907*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_COLD_DATAX(a) 0x0 /* PF_BAR0 */
908*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_COLD_DATAX(a) (a)
909*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_COLD_DATAX(a) (a), -1, -1, -1
910*4b8b8d74SJaiprakash Singh 
911*4b8b8d74SJaiprakash Singh /**
912*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_cold_domain_w1s
913*4b8b8d74SJaiprakash Singh  *
914*4b8b8d74SJaiprakash Singh  * RST Cold Domain Pulse Reset Register
915*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
916*4b8b8d74SJaiprakash Singh  */
917*4b8b8d74SJaiprakash Singh union ody_rst_cold_domain_w1s {
918*4b8b8d74SJaiprakash Singh 	uint64_t u;
919*4b8b8d74SJaiprakash Singh 	struct ody_rst_cold_domain_w1s_s {
920*4b8b8d74SJaiprakash Singh 		uint64_t soft_rst                    : 1;
921*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1_63               : 63;
922*4b8b8d74SJaiprakash Singh 	} s;
923*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_cold_domain_w1s_s cn; */
924*4b8b8d74SJaiprakash Singh };
925*4b8b8d74SJaiprakash Singh typedef union ody_rst_cold_domain_w1s ody_rst_cold_domain_w1s_t;
926*4b8b8d74SJaiprakash Singh 
927*4b8b8d74SJaiprakash Singh #define ODY_RST_COLD_DOMAIN_W1S ODY_RST_COLD_DOMAIN_W1S_FUNC()
928*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_COLD_DOMAIN_W1S_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_COLD_DOMAIN_W1S_FUNC(void)929*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_COLD_DOMAIN_W1S_FUNC(void)
930*4b8b8d74SJaiprakash Singh {
931*4b8b8d74SJaiprakash Singh 	return 0x87e006001808ll;
932*4b8b8d74SJaiprakash Singh }
933*4b8b8d74SJaiprakash Singh 
934*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_COLD_DOMAIN_W1S ody_rst_cold_domain_w1s_t
935*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_COLD_DOMAIN_W1S CSR_TYPE_RSL
936*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_COLD_DOMAIN_W1S "RST_COLD_DOMAIN_W1S"
937*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_COLD_DOMAIN_W1S 0x0 /* PF_BAR0 */
938*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_COLD_DOMAIN_W1S 0
939*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_COLD_DOMAIN_W1S -1, -1, -1, -1
940*4b8b8d74SJaiprakash Singh 
941*4b8b8d74SJaiprakash Singh /**
942*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_const
943*4b8b8d74SJaiprakash Singh  *
944*4b8b8d74SJaiprakash Singh  * RST Constant Register
945*4b8b8d74SJaiprakash Singh  * This register is accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
946*4b8b8d74SJaiprakash Singh  */
947*4b8b8d74SJaiprakash Singh union ody_rst_const {
948*4b8b8d74SJaiprakash Singh 	uint64_t u;
949*4b8b8d74SJaiprakash Singh 	struct ody_rst_const_s {
950*4b8b8d74SJaiprakash Singh 		uint64_t pems                        : 8;
951*4b8b8d74SJaiprakash Singh 		uint64_t rst_devs                    : 8;
952*4b8b8d74SJaiprakash Singh 		uint64_t plls                        : 16;
953*4b8b8d74SJaiprakash Singh 		uint64_t reserved_32_63              : 32;
954*4b8b8d74SJaiprakash Singh 	} s;
955*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_const_s cn; */
956*4b8b8d74SJaiprakash Singh };
957*4b8b8d74SJaiprakash Singh typedef union ody_rst_const ody_rst_const_t;
958*4b8b8d74SJaiprakash Singh 
959*4b8b8d74SJaiprakash Singh #define ODY_RST_CONST ODY_RST_CONST_FUNC()
960*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_CONST_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_CONST_FUNC(void)961*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_CONST_FUNC(void)
962*4b8b8d74SJaiprakash Singh {
963*4b8b8d74SJaiprakash Singh 	return 0x87e0060018f8ll;
964*4b8b8d74SJaiprakash Singh }
965*4b8b8d74SJaiprakash Singh 
966*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_CONST ody_rst_const_t
967*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_CONST CSR_TYPE_RSL
968*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_CONST "RST_CONST"
969*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_CONST 0x0 /* PF_BAR0 */
970*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_CONST 0
971*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_CONST -1, -1, -1, -1
972*4b8b8d74SJaiprakash Singh 
973*4b8b8d74SJaiprakash Singh /**
974*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_core_domain_w1c
975*4b8b8d74SJaiprakash Singh  *
976*4b8b8d74SJaiprakash Singh  * RST Core Domain Soft Reset Clear Register
977*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
978*4b8b8d74SJaiprakash Singh  */
979*4b8b8d74SJaiprakash Singh union ody_rst_core_domain_w1c {
980*4b8b8d74SJaiprakash Singh 	uint64_t u;
981*4b8b8d74SJaiprakash Singh 	struct ody_rst_core_domain_w1c_s {
982*4b8b8d74SJaiprakash Singh 		uint64_t soft_rst                    : 1;
983*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1_63               : 63;
984*4b8b8d74SJaiprakash Singh 	} s;
985*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_core_domain_w1c_s cn; */
986*4b8b8d74SJaiprakash Singh };
987*4b8b8d74SJaiprakash Singh typedef union ody_rst_core_domain_w1c ody_rst_core_domain_w1c_t;
988*4b8b8d74SJaiprakash Singh 
989*4b8b8d74SJaiprakash Singh #define ODY_RST_CORE_DOMAIN_W1C ODY_RST_CORE_DOMAIN_W1C_FUNC()
990*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_CORE_DOMAIN_W1C_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_CORE_DOMAIN_W1C_FUNC(void)991*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_CORE_DOMAIN_W1C_FUNC(void)
992*4b8b8d74SJaiprakash Singh {
993*4b8b8d74SJaiprakash Singh 	return 0x87e006001828ll;
994*4b8b8d74SJaiprakash Singh }
995*4b8b8d74SJaiprakash Singh 
996*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_CORE_DOMAIN_W1C ody_rst_core_domain_w1c_t
997*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_CORE_DOMAIN_W1C CSR_TYPE_RSL
998*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_CORE_DOMAIN_W1C "RST_CORE_DOMAIN_W1C"
999*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_CORE_DOMAIN_W1C 0x0 /* PF_BAR0 */
1000*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_CORE_DOMAIN_W1C 0
1001*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_CORE_DOMAIN_W1C -1, -1, -1, -1
1002*4b8b8d74SJaiprakash Singh 
1003*4b8b8d74SJaiprakash Singh /**
1004*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_core_domain_w1s
1005*4b8b8d74SJaiprakash Singh  *
1006*4b8b8d74SJaiprakash Singh  * RST Core Domain Soft Reset Set Register
1007*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
1008*4b8b8d74SJaiprakash Singh  */
1009*4b8b8d74SJaiprakash Singh union ody_rst_core_domain_w1s {
1010*4b8b8d74SJaiprakash Singh 	uint64_t u;
1011*4b8b8d74SJaiprakash Singh 	struct ody_rst_core_domain_w1s_s {
1012*4b8b8d74SJaiprakash Singh 		uint64_t soft_rst                    : 1;
1013*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1_63               : 63;
1014*4b8b8d74SJaiprakash Singh 	} s;
1015*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_core_domain_w1s_s cn; */
1016*4b8b8d74SJaiprakash Singh };
1017*4b8b8d74SJaiprakash Singh typedef union ody_rst_core_domain_w1s ody_rst_core_domain_w1s_t;
1018*4b8b8d74SJaiprakash Singh 
1019*4b8b8d74SJaiprakash Singh #define ODY_RST_CORE_DOMAIN_W1S ODY_RST_CORE_DOMAIN_W1S_FUNC()
1020*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_CORE_DOMAIN_W1S_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_CORE_DOMAIN_W1S_FUNC(void)1021*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_CORE_DOMAIN_W1S_FUNC(void)
1022*4b8b8d74SJaiprakash Singh {
1023*4b8b8d74SJaiprakash Singh 	return 0x87e006001820ll;
1024*4b8b8d74SJaiprakash Singh }
1025*4b8b8d74SJaiprakash Singh 
1026*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_CORE_DOMAIN_W1S ody_rst_core_domain_w1s_t
1027*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_CORE_DOMAIN_W1S CSR_TYPE_RSL
1028*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_CORE_DOMAIN_W1S "RST_CORE_DOMAIN_W1S"
1029*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_CORE_DOMAIN_W1S 0x0 /* PF_BAR0 */
1030*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_CORE_DOMAIN_W1S 0
1031*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_CORE_DOMAIN_W1S -1, -1, -1, -1
1032*4b8b8d74SJaiprakash Singh 
1033*4b8b8d74SJaiprakash Singh /**
1034*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_debug
1035*4b8b8d74SJaiprakash Singh  *
1036*4b8b8d74SJaiprakash Singh  * RST Debug Register
1037*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
1038*4b8b8d74SJaiprakash Singh  */
1039*4b8b8d74SJaiprakash Singh union ody_rst_debug {
1040*4b8b8d74SJaiprakash Singh 	uint64_t u;
1041*4b8b8d74SJaiprakash Singh 	struct ody_rst_debug_s {
1042*4b8b8d74SJaiprakash Singh 		uint64_t clk_on                      : 1;
1043*4b8b8d74SJaiprakash Singh 		uint64_t clk_cng                     : 1;
1044*4b8b8d74SJaiprakash Singh 		uint64_t clkena_on                   : 1;
1045*4b8b8d74SJaiprakash Singh 		uint64_t dll_csr_wakeup              : 1;
1046*4b8b8d74SJaiprakash Singh 		uint64_t div_clk_rst                 : 1;
1047*4b8b8d74SJaiprakash Singh 		uint64_t reserved_5_63               : 59;
1048*4b8b8d74SJaiprakash Singh 	} s;
1049*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_debug_s cn; */
1050*4b8b8d74SJaiprakash Singh };
1051*4b8b8d74SJaiprakash Singh typedef union ody_rst_debug ody_rst_debug_t;
1052*4b8b8d74SJaiprakash Singh 
1053*4b8b8d74SJaiprakash Singh #define ODY_RST_DEBUG ODY_RST_DEBUG_FUNC()
1054*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_DEBUG_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_DEBUG_FUNC(void)1055*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_DEBUG_FUNC(void)
1056*4b8b8d74SJaiprakash Singh {
1057*4b8b8d74SJaiprakash Singh 	return 0x87e0060017b0ll;
1058*4b8b8d74SJaiprakash Singh }
1059*4b8b8d74SJaiprakash Singh 
1060*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_DEBUG ody_rst_debug_t
1061*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_DEBUG CSR_TYPE_RSL
1062*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_DEBUG "RST_DEBUG"
1063*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_DEBUG 0x0 /* PF_BAR0 */
1064*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_DEBUG 0
1065*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_DEBUG -1, -1, -1, -1
1066*4b8b8d74SJaiprakash Singh 
1067*4b8b8d74SJaiprakash Singh /**
1068*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_delay
1069*4b8b8d74SJaiprakash Singh  *
1070*4b8b8d74SJaiprakash Singh  * RST Delay Register
1071*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
1072*4b8b8d74SJaiprakash Singh  */
1073*4b8b8d74SJaiprakash Singh union ody_rst_delay {
1074*4b8b8d74SJaiprakash Singh 	uint64_t u;
1075*4b8b8d74SJaiprakash Singh 	struct ody_rst_delay_s {
1076*4b8b8d74SJaiprakash Singh 		uint64_t rst_dly                     : 16;
1077*4b8b8d74SJaiprakash Singh 		uint64_t reserved_16_63              : 48;
1078*4b8b8d74SJaiprakash Singh 	} s;
1079*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_delay_s cn; */
1080*4b8b8d74SJaiprakash Singh };
1081*4b8b8d74SJaiprakash Singh typedef union ody_rst_delay ody_rst_delay_t;
1082*4b8b8d74SJaiprakash Singh 
1083*4b8b8d74SJaiprakash Singh #define ODY_RST_DELAY ODY_RST_DELAY_FUNC()
1084*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_DELAY_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_DELAY_FUNC(void)1085*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_DELAY_FUNC(void)
1086*4b8b8d74SJaiprakash Singh {
1087*4b8b8d74SJaiprakash Singh 	return 0x87e006001608ll;
1088*4b8b8d74SJaiprakash Singh }
1089*4b8b8d74SJaiprakash Singh 
1090*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_DELAY ody_rst_delay_t
1091*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_DELAY CSR_TYPE_RSL
1092*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_DELAY "RST_DELAY"
1093*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_DELAY 0x0 /* PF_BAR0 */
1094*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_DELAY 0
1095*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_DELAY -1, -1, -1, -1
1096*4b8b8d74SJaiprakash Singh 
1097*4b8b8d74SJaiprakash Singh /**
1098*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_dev_map#
1099*4b8b8d74SJaiprakash Singh  *
1100*4b8b8d74SJaiprakash Singh  * RST Device Map Register
1101*4b8b8d74SJaiprakash Singh  * This register configures the reset domain of devices. Index {a} is enumerated by RST_DEV_E.
1102*4b8b8d74SJaiprakash Singh  * Writes to these registers should only occur when all the bits of RST_BIST_ACTIVE are clear.
1103*4b8b8d74SJaiprakash Singh  * See RST_BIST_ACTIVE for details.
1104*4b8b8d74SJaiprakash Singh  * Only one RST_DEV_MAP() should be written at a time.
1105*4b8b8d74SJaiprakash Singh  *
1106*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
1107*4b8b8d74SJaiprakash Singh  */
1108*4b8b8d74SJaiprakash Singh union ody_rst_dev_mapx {
1109*4b8b8d74SJaiprakash Singh 	uint64_t u;
1110*4b8b8d74SJaiprakash Singh 	struct ody_rst_dev_mapx_s {
1111*4b8b8d74SJaiprakash Singh 		uint64_t dmn                         : 3;
1112*4b8b8d74SJaiprakash Singh 		uint64_t reserved_3_63               : 61;
1113*4b8b8d74SJaiprakash Singh 	} s;
1114*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_dev_mapx_s cn; */
1115*4b8b8d74SJaiprakash Singh };
1116*4b8b8d74SJaiprakash Singh typedef union ody_rst_dev_mapx ody_rst_dev_mapx_t;
1117*4b8b8d74SJaiprakash Singh 
1118*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_DEV_MAPX(uint64_t a) __attribute__ ((pure, always_inline));
ODY_RST_DEV_MAPX(uint64_t a)1119*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_DEV_MAPX(uint64_t a)
1120*4b8b8d74SJaiprakash Singh {
1121*4b8b8d74SJaiprakash Singh 	if (a <= 47)
1122*4b8b8d74SJaiprakash Singh 		return 0x87e00a001a00ll + 8ll * ((a) & 0x3f);
1123*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("RST_DEV_MAPX", 1, a, 0, 0, 0, 0, 0);
1124*4b8b8d74SJaiprakash Singh }
1125*4b8b8d74SJaiprakash Singh 
1126*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_DEV_MAPX(a) ody_rst_dev_mapx_t
1127*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_DEV_MAPX(a) CSR_TYPE_RSL
1128*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_DEV_MAPX(a) "RST_DEV_MAPX"
1129*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_DEV_MAPX(a) 0x2 /* PF_BAR2 */
1130*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_DEV_MAPX(a) (a)
1131*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_DEV_MAPX(a) (a), -1, -1, -1
1132*4b8b8d74SJaiprakash Singh 
1133*4b8b8d74SJaiprakash Singh /**
1134*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_int
1135*4b8b8d74SJaiprakash Singh  *
1136*4b8b8d74SJaiprakash Singh  * RST Interrupt Register
1137*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
1138*4b8b8d74SJaiprakash Singh  */
1139*4b8b8d74SJaiprakash Singh union ody_rst_int {
1140*4b8b8d74SJaiprakash Singh 	uint64_t u;
1141*4b8b8d74SJaiprakash Singh 	struct ody_rst_int_s {
1142*4b8b8d74SJaiprakash Singh 		uint64_t reserved_0_47               : 48;
1143*4b8b8d74SJaiprakash Singh 		uint64_t core_reset                  : 1;
1144*4b8b8d74SJaiprakash Singh 		uint64_t mcp_reset                   : 1;
1145*4b8b8d74SJaiprakash Singh 		uint64_t scp_reset                   : 1;
1146*4b8b8d74SJaiprakash Singh 		uint64_t bphy_reset                  : 1;
1147*4b8b8d74SJaiprakash Singh 		uint64_t xcp2_reset                  : 1;
1148*4b8b8d74SJaiprakash Singh 		uint64_t reserved_53_63              : 11;
1149*4b8b8d74SJaiprakash Singh 	} s;
1150*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_int_s cn; */
1151*4b8b8d74SJaiprakash Singh };
1152*4b8b8d74SJaiprakash Singh typedef union ody_rst_int ody_rst_int_t;
1153*4b8b8d74SJaiprakash Singh 
1154*4b8b8d74SJaiprakash Singh #define ODY_RST_INT ODY_RST_INT_FUNC()
1155*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_INT_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_INT_FUNC(void)1156*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_INT_FUNC(void)
1157*4b8b8d74SJaiprakash Singh {
1158*4b8b8d74SJaiprakash Singh 	return 0x87e006001628ll;
1159*4b8b8d74SJaiprakash Singh }
1160*4b8b8d74SJaiprakash Singh 
1161*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_INT ody_rst_int_t
1162*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_INT CSR_TYPE_RSL
1163*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_INT "RST_INT"
1164*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_INT 0x0 /* PF_BAR0 */
1165*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_INT 0
1166*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_INT -1, -1, -1, -1
1167*4b8b8d74SJaiprakash Singh 
1168*4b8b8d74SJaiprakash Singh /**
1169*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_int_ena_w1c
1170*4b8b8d74SJaiprakash Singh  *
1171*4b8b8d74SJaiprakash Singh  * RST Interrupt Enable Clear Register
1172*4b8b8d74SJaiprakash Singh  * This register clears interrupt enable bits.
1173*4b8b8d74SJaiprakash Singh  */
1174*4b8b8d74SJaiprakash Singh union ody_rst_int_ena_w1c {
1175*4b8b8d74SJaiprakash Singh 	uint64_t u;
1176*4b8b8d74SJaiprakash Singh 	struct ody_rst_int_ena_w1c_s {
1177*4b8b8d74SJaiprakash Singh 		uint64_t reserved_0_47               : 48;
1178*4b8b8d74SJaiprakash Singh 		uint64_t core_reset                  : 1;
1179*4b8b8d74SJaiprakash Singh 		uint64_t mcp_reset                   : 1;
1180*4b8b8d74SJaiprakash Singh 		uint64_t scp_reset                   : 1;
1181*4b8b8d74SJaiprakash Singh 		uint64_t bphy_reset                  : 1;
1182*4b8b8d74SJaiprakash Singh 		uint64_t xcp2_reset                  : 1;
1183*4b8b8d74SJaiprakash Singh 		uint64_t reserved_53_63              : 11;
1184*4b8b8d74SJaiprakash Singh 	} s;
1185*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_int_ena_w1c_s cn; */
1186*4b8b8d74SJaiprakash Singh };
1187*4b8b8d74SJaiprakash Singh typedef union ody_rst_int_ena_w1c ody_rst_int_ena_w1c_t;
1188*4b8b8d74SJaiprakash Singh 
1189*4b8b8d74SJaiprakash Singh #define ODY_RST_INT_ENA_W1C ODY_RST_INT_ENA_W1C_FUNC()
1190*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_INT_ENA_W1C_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_INT_ENA_W1C_FUNC(void)1191*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_INT_ENA_W1C_FUNC(void)
1192*4b8b8d74SJaiprakash Singh {
1193*4b8b8d74SJaiprakash Singh 	return 0x87e0060016a8ll;
1194*4b8b8d74SJaiprakash Singh }
1195*4b8b8d74SJaiprakash Singh 
1196*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_INT_ENA_W1C ody_rst_int_ena_w1c_t
1197*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_INT_ENA_W1C CSR_TYPE_RSL
1198*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_INT_ENA_W1C "RST_INT_ENA_W1C"
1199*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_INT_ENA_W1C 0x0 /* PF_BAR0 */
1200*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_INT_ENA_W1C 0
1201*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_INT_ENA_W1C -1, -1, -1, -1
1202*4b8b8d74SJaiprakash Singh 
1203*4b8b8d74SJaiprakash Singh /**
1204*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_int_ena_w1s
1205*4b8b8d74SJaiprakash Singh  *
1206*4b8b8d74SJaiprakash Singh  * RST Interrupt Enable Set Register
1207*4b8b8d74SJaiprakash Singh  * This register sets interrupt enable bits.
1208*4b8b8d74SJaiprakash Singh  */
1209*4b8b8d74SJaiprakash Singh union ody_rst_int_ena_w1s {
1210*4b8b8d74SJaiprakash Singh 	uint64_t u;
1211*4b8b8d74SJaiprakash Singh 	struct ody_rst_int_ena_w1s_s {
1212*4b8b8d74SJaiprakash Singh 		uint64_t reserved_0_47               : 48;
1213*4b8b8d74SJaiprakash Singh 		uint64_t core_reset                  : 1;
1214*4b8b8d74SJaiprakash Singh 		uint64_t mcp_reset                   : 1;
1215*4b8b8d74SJaiprakash Singh 		uint64_t scp_reset                   : 1;
1216*4b8b8d74SJaiprakash Singh 		uint64_t bphy_reset                  : 1;
1217*4b8b8d74SJaiprakash Singh 		uint64_t xcp2_reset                  : 1;
1218*4b8b8d74SJaiprakash Singh 		uint64_t reserved_53_63              : 11;
1219*4b8b8d74SJaiprakash Singh 	} s;
1220*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_int_ena_w1s_s cn; */
1221*4b8b8d74SJaiprakash Singh };
1222*4b8b8d74SJaiprakash Singh typedef union ody_rst_int_ena_w1s ody_rst_int_ena_w1s_t;
1223*4b8b8d74SJaiprakash Singh 
1224*4b8b8d74SJaiprakash Singh #define ODY_RST_INT_ENA_W1S ODY_RST_INT_ENA_W1S_FUNC()
1225*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_INT_ENA_W1S_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_INT_ENA_W1S_FUNC(void)1226*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_INT_ENA_W1S_FUNC(void)
1227*4b8b8d74SJaiprakash Singh {
1228*4b8b8d74SJaiprakash Singh 	return 0x87e0060016a0ll;
1229*4b8b8d74SJaiprakash Singh }
1230*4b8b8d74SJaiprakash Singh 
1231*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_INT_ENA_W1S ody_rst_int_ena_w1s_t
1232*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_INT_ENA_W1S CSR_TYPE_RSL
1233*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_INT_ENA_W1S "RST_INT_ENA_W1S"
1234*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_INT_ENA_W1S 0x0 /* PF_BAR0 */
1235*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_INT_ENA_W1S 0
1236*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_INT_ENA_W1S -1, -1, -1, -1
1237*4b8b8d74SJaiprakash Singh 
1238*4b8b8d74SJaiprakash Singh /**
1239*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_int_w1s
1240*4b8b8d74SJaiprakash Singh  *
1241*4b8b8d74SJaiprakash Singh  * RST Interrupt Set Register
1242*4b8b8d74SJaiprakash Singh  * This register sets interrupt bits.
1243*4b8b8d74SJaiprakash Singh  */
1244*4b8b8d74SJaiprakash Singh union ody_rst_int_w1s {
1245*4b8b8d74SJaiprakash Singh 	uint64_t u;
1246*4b8b8d74SJaiprakash Singh 	struct ody_rst_int_w1s_s {
1247*4b8b8d74SJaiprakash Singh 		uint64_t reserved_0_47               : 48;
1248*4b8b8d74SJaiprakash Singh 		uint64_t core_reset                  : 1;
1249*4b8b8d74SJaiprakash Singh 		uint64_t mcp_reset                   : 1;
1250*4b8b8d74SJaiprakash Singh 		uint64_t scp_reset                   : 1;
1251*4b8b8d74SJaiprakash Singh 		uint64_t bphy_reset                  : 1;
1252*4b8b8d74SJaiprakash Singh 		uint64_t xcp2_reset                  : 1;
1253*4b8b8d74SJaiprakash Singh 		uint64_t reserved_53_63              : 11;
1254*4b8b8d74SJaiprakash Singh 	} s;
1255*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_int_w1s_s cn; */
1256*4b8b8d74SJaiprakash Singh };
1257*4b8b8d74SJaiprakash Singh typedef union ody_rst_int_w1s ody_rst_int_w1s_t;
1258*4b8b8d74SJaiprakash Singh 
1259*4b8b8d74SJaiprakash Singh #define ODY_RST_INT_W1S ODY_RST_INT_W1S_FUNC()
1260*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_INT_W1S_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_INT_W1S_FUNC(void)1261*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_INT_W1S_FUNC(void)
1262*4b8b8d74SJaiprakash Singh {
1263*4b8b8d74SJaiprakash Singh 	return 0x87e006001630ll;
1264*4b8b8d74SJaiprakash Singh }
1265*4b8b8d74SJaiprakash Singh 
1266*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_INT_W1S ody_rst_int_w1s_t
1267*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_INT_W1S CSR_TYPE_RSL
1268*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_INT_W1S "RST_INT_W1S"
1269*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_INT_W1S 0x0 /* PF_BAR0 */
1270*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_INT_W1S 0
1271*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_INT_W1S -1, -1, -1, -1
1272*4b8b8d74SJaiprakash Singh 
1273*4b8b8d74SJaiprakash Singh /**
1274*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_lboot
1275*4b8b8d74SJaiprakash Singh  *
1276*4b8b8d74SJaiprakash Singh  * RST Last Boot Register
1277*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
1278*4b8b8d74SJaiprakash Singh  */
1279*4b8b8d74SJaiprakash Singh union ody_rst_lboot {
1280*4b8b8d74SJaiprakash Singh 	uint64_t u;
1281*4b8b8d74SJaiprakash Singh 	struct ody_rst_lboot_s {
1282*4b8b8d74SJaiprakash Singh 		uint64_t lboot                       : 56;
1283*4b8b8d74SJaiprakash Singh 		uint64_t reserved_56_63              : 8;
1284*4b8b8d74SJaiprakash Singh 	} s;
1285*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_lboot_s cn; */
1286*4b8b8d74SJaiprakash Singh };
1287*4b8b8d74SJaiprakash Singh typedef union ody_rst_lboot ody_rst_lboot_t;
1288*4b8b8d74SJaiprakash Singh 
1289*4b8b8d74SJaiprakash Singh #define ODY_RST_LBOOT ODY_RST_LBOOT_FUNC()
1290*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_LBOOT_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_LBOOT_FUNC(void)1291*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_LBOOT_FUNC(void)
1292*4b8b8d74SJaiprakash Singh {
1293*4b8b8d74SJaiprakash Singh 	return 0x87e006001620ll;
1294*4b8b8d74SJaiprakash Singh }
1295*4b8b8d74SJaiprakash Singh 
1296*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_LBOOT ody_rst_lboot_t
1297*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_LBOOT CSR_TYPE_RSL
1298*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_LBOOT "RST_LBOOT"
1299*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_LBOOT 0x0 /* PF_BAR0 */
1300*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_LBOOT 0
1301*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_LBOOT -1, -1, -1, -1
1302*4b8b8d74SJaiprakash Singh 
1303*4b8b8d74SJaiprakash Singh /**
1304*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_man_pll#
1305*4b8b8d74SJaiprakash Singh  *
1306*4b8b8d74SJaiprakash Singh  * RST Manual PLL Control Register
1307*4b8b8d74SJaiprakash Singh  * These registers are used in conjunction with the RST_PLL() registers when
1308*4b8b8d74SJaiprakash Singh  * the RST_PLL()[NEXT_MAN] field is set.  Indexed by RST_PLL_E.
1309*4b8b8d74SJaiprakash Singh  * These register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
1310*4b8b8d74SJaiprakash Singh  *
1311*4b8b8d74SJaiprakash Singh  * The logic associated with the PLL functions can only process one operation at a time.
1312*4b8b8d74SJaiprakash Singh  * Writes to this register should only occur when both the RST_PLL(x)[NEXT_PGM] and
1313*4b8b8d74SJaiprakash Singh  * RST_PLL(x)[NEXT_SWITCH] fields are zero.
1314*4b8b8d74SJaiprakash Singh  *
1315*4b8b8d74SJaiprakash Singh  * This register is always reset on a chip domain reset.
1316*4b8b8d74SJaiprakash Singh  */
1317*4b8b8d74SJaiprakash Singh union ody_rst_man_pllx {
1318*4b8b8d74SJaiprakash Singh 	uint64_t u;
1319*4b8b8d74SJaiprakash Singh 	struct ody_rst_man_pllx_s {
1320*4b8b8d74SJaiprakash Singh 		uint64_t update_rate                 : 10;
1321*4b8b8d74SJaiprakash Singh 		uint64_t dlf_ki                      : 5;
1322*4b8b8d74SJaiprakash Singh 		uint64_t dlf_kp                      : 5;
1323*4b8b8d74SJaiprakash Singh 		uint64_t icp                         : 4;
1324*4b8b8d74SJaiprakash Singh 		uint64_t vco_fract                   : 10;
1325*4b8b8d74SJaiprakash Singh 		uint64_t vco_mul                     : 10;
1326*4b8b8d74SJaiprakash Singh 		uint64_t bw                          : 2;
1327*4b8b8d74SJaiprakash Singh 		uint64_t post_div                    : 9;
1328*4b8b8d74SJaiprakash Singh 		uint64_t reserved_55                 : 1;
1329*4b8b8d74SJaiprakash Singh 		uint64_t ref_div                     : 4;
1330*4b8b8d74SJaiprakash Singh 		uint64_t power_down                  : 3;
1331*4b8b8d74SJaiprakash Singh 		uint64_t reserved_63                 : 1;
1332*4b8b8d74SJaiprakash Singh 	} s;
1333*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_man_pllx_s cn; */
1334*4b8b8d74SJaiprakash Singh };
1335*4b8b8d74SJaiprakash Singh typedef union ody_rst_man_pllx ody_rst_man_pllx_t;
1336*4b8b8d74SJaiprakash Singh 
1337*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_MAN_PLLX(uint64_t a) __attribute__ ((pure, always_inline));
ODY_RST_MAN_PLLX(uint64_t a)1338*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_MAN_PLLX(uint64_t a)
1339*4b8b8d74SJaiprakash Singh {
1340*4b8b8d74SJaiprakash Singh 	if (a <= 15)
1341*4b8b8d74SJaiprakash Singh 		return 0x87e00a001008ll + 0x10ll * ((a) & 0xf);
1342*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("RST_MAN_PLLX", 1, a, 0, 0, 0, 0, 0);
1343*4b8b8d74SJaiprakash Singh }
1344*4b8b8d74SJaiprakash Singh 
1345*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_MAN_PLLX(a) ody_rst_man_pllx_t
1346*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_MAN_PLLX(a) CSR_TYPE_RSL
1347*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_MAN_PLLX(a) "RST_MAN_PLLX"
1348*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_MAN_PLLX(a) 0x2 /* PF_BAR2 */
1349*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_MAN_PLLX(a) (a)
1350*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_MAN_PLLX(a) (a), -1, -1, -1
1351*4b8b8d74SJaiprakash Singh 
1352*4b8b8d74SJaiprakash Singh /**
1353*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_mcp_domain_w1c
1354*4b8b8d74SJaiprakash Singh  *
1355*4b8b8d74SJaiprakash Singh  * RST MCP Domain Soft Reset Clear Register
1356*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
1357*4b8b8d74SJaiprakash Singh  */
1358*4b8b8d74SJaiprakash Singh union ody_rst_mcp_domain_w1c {
1359*4b8b8d74SJaiprakash Singh 	uint64_t u;
1360*4b8b8d74SJaiprakash Singh 	struct ody_rst_mcp_domain_w1c_s {
1361*4b8b8d74SJaiprakash Singh 		uint64_t soft_rst                    : 1;
1362*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1_63               : 63;
1363*4b8b8d74SJaiprakash Singh 	} s;
1364*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_mcp_domain_w1c_s cn; */
1365*4b8b8d74SJaiprakash Singh };
1366*4b8b8d74SJaiprakash Singh typedef union ody_rst_mcp_domain_w1c ody_rst_mcp_domain_w1c_t;
1367*4b8b8d74SJaiprakash Singh 
1368*4b8b8d74SJaiprakash Singh #define ODY_RST_MCP_DOMAIN_W1C ODY_RST_MCP_DOMAIN_W1C_FUNC()
1369*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_MCP_DOMAIN_W1C_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_MCP_DOMAIN_W1C_FUNC(void)1370*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_MCP_DOMAIN_W1C_FUNC(void)
1371*4b8b8d74SJaiprakash Singh {
1372*4b8b8d74SJaiprakash Singh 	return 0x87e006001838ll;
1373*4b8b8d74SJaiprakash Singh }
1374*4b8b8d74SJaiprakash Singh 
1375*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_MCP_DOMAIN_W1C ody_rst_mcp_domain_w1c_t
1376*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_MCP_DOMAIN_W1C CSR_TYPE_RSL
1377*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_MCP_DOMAIN_W1C "RST_MCP_DOMAIN_W1C"
1378*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_MCP_DOMAIN_W1C 0x0 /* PF_BAR0 */
1379*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_MCP_DOMAIN_W1C 0
1380*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_MCP_DOMAIN_W1C -1, -1, -1, -1
1381*4b8b8d74SJaiprakash Singh 
1382*4b8b8d74SJaiprakash Singh /**
1383*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_mcp_domain_w1s
1384*4b8b8d74SJaiprakash Singh  *
1385*4b8b8d74SJaiprakash Singh  * RST MCP Domain Soft Reset Set Register
1386*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
1387*4b8b8d74SJaiprakash Singh  */
1388*4b8b8d74SJaiprakash Singh union ody_rst_mcp_domain_w1s {
1389*4b8b8d74SJaiprakash Singh 	uint64_t u;
1390*4b8b8d74SJaiprakash Singh 	struct ody_rst_mcp_domain_w1s_s {
1391*4b8b8d74SJaiprakash Singh 		uint64_t soft_rst                    : 1;
1392*4b8b8d74SJaiprakash Singh 		uint64_t force_rst                   : 1;
1393*4b8b8d74SJaiprakash Singh 		uint64_t reserved_2_63               : 62;
1394*4b8b8d74SJaiprakash Singh 	} s;
1395*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_mcp_domain_w1s_s cn; */
1396*4b8b8d74SJaiprakash Singh };
1397*4b8b8d74SJaiprakash Singh typedef union ody_rst_mcp_domain_w1s ody_rst_mcp_domain_w1s_t;
1398*4b8b8d74SJaiprakash Singh 
1399*4b8b8d74SJaiprakash Singh #define ODY_RST_MCP_DOMAIN_W1S ODY_RST_MCP_DOMAIN_W1S_FUNC()
1400*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_MCP_DOMAIN_W1S_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_MCP_DOMAIN_W1S_FUNC(void)1401*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_MCP_DOMAIN_W1S_FUNC(void)
1402*4b8b8d74SJaiprakash Singh {
1403*4b8b8d74SJaiprakash Singh 	return 0x87e006001830ll;
1404*4b8b8d74SJaiprakash Singh }
1405*4b8b8d74SJaiprakash Singh 
1406*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_MCP_DOMAIN_W1S ody_rst_mcp_domain_w1s_t
1407*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_MCP_DOMAIN_W1S CSR_TYPE_RSL
1408*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_MCP_DOMAIN_W1S "RST_MCP_DOMAIN_W1S"
1409*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_MCP_DOMAIN_W1S 0x0 /* PF_BAR0 */
1410*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_MCP_DOMAIN_W1S 0
1411*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_MCP_DOMAIN_W1S -1, -1, -1, -1
1412*4b8b8d74SJaiprakash Singh 
1413*4b8b8d74SJaiprakash Singh /**
1414*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_msix_pba#
1415*4b8b8d74SJaiprakash Singh  *
1416*4b8b8d74SJaiprakash Singh  * RST MSI-X Pending Bit Array Registers
1417*4b8b8d74SJaiprakash Singh  * This register is the MSI-X PBA table; the bit number is indexed by the RST_INT_VEC_E
1418*4b8b8d74SJaiprakash Singh  * enumeration.
1419*4b8b8d74SJaiprakash Singh  *
1420*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
1421*4b8b8d74SJaiprakash Singh  */
1422*4b8b8d74SJaiprakash Singh union ody_rst_msix_pbax {
1423*4b8b8d74SJaiprakash Singh 	uint64_t u;
1424*4b8b8d74SJaiprakash Singh 	struct ody_rst_msix_pbax_s {
1425*4b8b8d74SJaiprakash Singh 		uint64_t pend                        : 64;
1426*4b8b8d74SJaiprakash Singh 	} s;
1427*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_msix_pbax_s cn; */
1428*4b8b8d74SJaiprakash Singh };
1429*4b8b8d74SJaiprakash Singh typedef union ody_rst_msix_pbax ody_rst_msix_pbax_t;
1430*4b8b8d74SJaiprakash Singh 
1431*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_MSIX_PBAX(uint64_t a) __attribute__ ((pure, always_inline));
ODY_RST_MSIX_PBAX(uint64_t a)1432*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_MSIX_PBAX(uint64_t a)
1433*4b8b8d74SJaiprakash Singh {
1434*4b8b8d74SJaiprakash Singh 	if (a == 0)
1435*4b8b8d74SJaiprakash Singh 		return 0x87e006ff0000ll;
1436*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("RST_MSIX_PBAX", 1, a, 0, 0, 0, 0, 0);
1437*4b8b8d74SJaiprakash Singh }
1438*4b8b8d74SJaiprakash Singh 
1439*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_MSIX_PBAX(a) ody_rst_msix_pbax_t
1440*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_MSIX_PBAX(a) CSR_TYPE_RSL
1441*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_MSIX_PBAX(a) "RST_MSIX_PBAX"
1442*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_MSIX_PBAX(a) 0x4 /* PF_BAR4 */
1443*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_MSIX_PBAX(a) (a)
1444*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_MSIX_PBAX(a) (a), -1, -1, -1
1445*4b8b8d74SJaiprakash Singh 
1446*4b8b8d74SJaiprakash Singh /**
1447*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_msix_vec#_addr
1448*4b8b8d74SJaiprakash Singh  *
1449*4b8b8d74SJaiprakash Singh  * RST MSI-X Vector-Table Address Register
1450*4b8b8d74SJaiprakash Singh  * This register is the MSI-X vector table, indexed by the RST_INT_VEC_E enumeration.
1451*4b8b8d74SJaiprakash Singh  *
1452*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
1453*4b8b8d74SJaiprakash Singh  */
1454*4b8b8d74SJaiprakash Singh union ody_rst_msix_vecx_addr {
1455*4b8b8d74SJaiprakash Singh 	uint64_t u;
1456*4b8b8d74SJaiprakash Singh 	struct ody_rst_msix_vecx_addr_s {
1457*4b8b8d74SJaiprakash Singh 		uint64_t secvec                      : 1;
1458*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1                  : 1;
1459*4b8b8d74SJaiprakash Singh 		uint64_t addr                        : 51;
1460*4b8b8d74SJaiprakash Singh 		uint64_t reserved_53_63              : 11;
1461*4b8b8d74SJaiprakash Singh 	} s;
1462*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_msix_vecx_addr_s cn; */
1463*4b8b8d74SJaiprakash Singh };
1464*4b8b8d74SJaiprakash Singh typedef union ody_rst_msix_vecx_addr ody_rst_msix_vecx_addr_t;
1465*4b8b8d74SJaiprakash Singh 
1466*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_MSIX_VECX_ADDR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_RST_MSIX_VECX_ADDR(uint64_t a)1467*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_MSIX_VECX_ADDR(uint64_t a)
1468*4b8b8d74SJaiprakash Singh {
1469*4b8b8d74SJaiprakash Singh 	if (a == 0)
1470*4b8b8d74SJaiprakash Singh 		return 0x87e006f00000ll;
1471*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("RST_MSIX_VECX_ADDR", 1, a, 0, 0, 0, 0, 0);
1472*4b8b8d74SJaiprakash Singh }
1473*4b8b8d74SJaiprakash Singh 
1474*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_MSIX_VECX_ADDR(a) ody_rst_msix_vecx_addr_t
1475*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_MSIX_VECX_ADDR(a) CSR_TYPE_RSL
1476*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_MSIX_VECX_ADDR(a) "RST_MSIX_VECX_ADDR"
1477*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_MSIX_VECX_ADDR(a) 0x4 /* PF_BAR4 */
1478*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_MSIX_VECX_ADDR(a) (a)
1479*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_MSIX_VECX_ADDR(a) (a), -1, -1, -1
1480*4b8b8d74SJaiprakash Singh 
1481*4b8b8d74SJaiprakash Singh /**
1482*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_msix_vec#_ctl
1483*4b8b8d74SJaiprakash Singh  *
1484*4b8b8d74SJaiprakash Singh  * RST MSI-X Vector-Table Control and Data Register
1485*4b8b8d74SJaiprakash Singh  * This register is the MSI-X vector table, indexed by the RST_INT_VEC_E enumeration.
1486*4b8b8d74SJaiprakash Singh  *
1487*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
1488*4b8b8d74SJaiprakash Singh  */
1489*4b8b8d74SJaiprakash Singh union ody_rst_msix_vecx_ctl {
1490*4b8b8d74SJaiprakash Singh 	uint64_t u;
1491*4b8b8d74SJaiprakash Singh 	struct ody_rst_msix_vecx_ctl_s {
1492*4b8b8d74SJaiprakash Singh 		uint64_t data                        : 32;
1493*4b8b8d74SJaiprakash Singh 		uint64_t mask                        : 1;
1494*4b8b8d74SJaiprakash Singh 		uint64_t reserved_33_63              : 31;
1495*4b8b8d74SJaiprakash Singh 	} s;
1496*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_msix_vecx_ctl_s cn; */
1497*4b8b8d74SJaiprakash Singh };
1498*4b8b8d74SJaiprakash Singh typedef union ody_rst_msix_vecx_ctl ody_rst_msix_vecx_ctl_t;
1499*4b8b8d74SJaiprakash Singh 
1500*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_MSIX_VECX_CTL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_RST_MSIX_VECX_CTL(uint64_t a)1501*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_MSIX_VECX_CTL(uint64_t a)
1502*4b8b8d74SJaiprakash Singh {
1503*4b8b8d74SJaiprakash Singh 	if (a == 0)
1504*4b8b8d74SJaiprakash Singh 		return 0x87e006f00008ll;
1505*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("RST_MSIX_VECX_CTL", 1, a, 0, 0, 0, 0, 0);
1506*4b8b8d74SJaiprakash Singh }
1507*4b8b8d74SJaiprakash Singh 
1508*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_MSIX_VECX_CTL(a) ody_rst_msix_vecx_ctl_t
1509*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_MSIX_VECX_CTL(a) CSR_TYPE_RSL
1510*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_MSIX_VECX_CTL(a) "RST_MSIX_VECX_CTL"
1511*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_MSIX_VECX_CTL(a) 0x4 /* PF_BAR4 */
1512*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_MSIX_VECX_CTL(a) (a)
1513*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_MSIX_VECX_CTL(a) (a), -1, -1, -1
1514*4b8b8d74SJaiprakash Singh 
1515*4b8b8d74SJaiprakash Singh /**
1516*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_pll#
1517*4b8b8d74SJaiprakash Singh  *
1518*4b8b8d74SJaiprakash Singh  * RST PLL Control Register
1519*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
1520*4b8b8d74SJaiprakash Singh  * Each index of this register controls a PLL on the chip.  The register is used for
1521*4b8b8d74SJaiprakash Singh  * typical programming operations and is supplemented with the RST_MAN_PLL()
1522*4b8b8d74SJaiprakash Singh  * register when selected.  Indexed by RST_PLL_E.
1523*4b8b8d74SJaiprakash Singh  *
1524*4b8b8d74SJaiprakash Singh  * The logic associated with the PLL functions can only process one operation at a time.
1525*4b8b8d74SJaiprakash Singh  * Writes to this register and to both RST_MAN_PLL(x) and RST_TEST_PLL(x) of the same
1526*4b8b8d74SJaiprakash Singh  * index should only occur when both the NEXT_PGM and NEXT_SWITCH fields are zero.
1527*4b8b8d74SJaiprakash Singh  * It is typically necessary to poll this register to confirm this.
1528*4b8b8d74SJaiprakash Singh  *
1529*4b8b8d74SJaiprakash Singh  * The register fields are returned to reset values on a chip domain reset unless
1530*4b8b8d74SJaiprakash Singh  * specifically noted.
1531*4b8b8d74SJaiprakash Singh  */
1532*4b8b8d74SJaiprakash Singh union ody_rst_pllx {
1533*4b8b8d74SJaiprakash Singh 	uint64_t u;
1534*4b8b8d74SJaiprakash Singh 	struct ody_rst_pllx_s {
1535*4b8b8d74SJaiprakash Singh 		uint64_t next_switch                 : 16;
1536*4b8b8d74SJaiprakash Singh 		uint64_t next_pgm                    : 1;
1537*4b8b8d74SJaiprakash Singh 		uint64_t next_man                    : 1;
1538*4b8b8d74SJaiprakash Singh 		uint64_t reserved_18_20              : 3;
1539*4b8b8d74SJaiprakash Singh 		uint64_t next_pll_sel                : 3;
1540*4b8b8d74SJaiprakash Singh 		uint64_t next_mul                    : 7;
1541*4b8b8d74SJaiprakash Singh 		uint64_t reserved_31                 : 1;
1542*4b8b8d74SJaiprakash Singh 		uint64_t init_mul                    : 7;
1543*4b8b8d74SJaiprakash Singh 		uint64_t reserved_39                 : 1;
1544*4b8b8d74SJaiprakash Singh 		uint64_t max_mul                     : 7;
1545*4b8b8d74SJaiprakash Singh 		uint64_t reserved_47                 : 1;
1546*4b8b8d74SJaiprakash Singh 		uint64_t cur_mul                     : 7;
1547*4b8b8d74SJaiprakash Singh 		uint64_t no_rst_chip                 : 1;
1548*4b8b8d74SJaiprakash Singh 		uint64_t no_auto_pgm                 : 1;
1549*4b8b8d74SJaiprakash Singh 		uint64_t cur_pll_sel                 : 3;
1550*4b8b8d74SJaiprakash Singh 		uint64_t reserved_60                 : 1;
1551*4b8b8d74SJaiprakash Singh 		uint64_t alt_ref                     : 1;
1552*4b8b8d74SJaiprakash Singh 		uint64_t pll1_present                : 1;
1553*4b8b8d74SJaiprakash Singh 		uint64_t aro_present                 : 1;
1554*4b8b8d74SJaiprakash Singh 	} s;
1555*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_pllx_s cn; */
1556*4b8b8d74SJaiprakash Singh };
1557*4b8b8d74SJaiprakash Singh typedef union ody_rst_pllx ody_rst_pllx_t;
1558*4b8b8d74SJaiprakash Singh 
1559*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_PLLX(uint64_t a) __attribute__ ((pure, always_inline));
ODY_RST_PLLX(uint64_t a)1560*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_PLLX(uint64_t a)
1561*4b8b8d74SJaiprakash Singh {
1562*4b8b8d74SJaiprakash Singh 	if (a <= 15)
1563*4b8b8d74SJaiprakash Singh 		return 0x87e00a001000ll + 0x10ll * ((a) & 0xf);
1564*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("RST_PLLX", 1, a, 0, 0, 0, 0, 0);
1565*4b8b8d74SJaiprakash Singh }
1566*4b8b8d74SJaiprakash Singh 
1567*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_PLLX(a) ody_rst_pllx_t
1568*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_PLLX(a) CSR_TYPE_RSL
1569*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_PLLX(a) "RST_PLLX"
1570*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_PLLX(a) 0x2 /* PF_BAR2 */
1571*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_PLLX(a) (a)
1572*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_PLLX(a) (a), -1, -1, -1
1573*4b8b8d74SJaiprakash Singh 
1574*4b8b8d74SJaiprakash Singh /**
1575*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_ref_cntr
1576*4b8b8d74SJaiprakash Singh  *
1577*4b8b8d74SJaiprakash Singh  * RST Reference-Counter Register
1578*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
1579*4b8b8d74SJaiprakash Singh  */
1580*4b8b8d74SJaiprakash Singh union ody_rst_ref_cntr {
1581*4b8b8d74SJaiprakash Singh 	uint64_t u;
1582*4b8b8d74SJaiprakash Singh 	struct ody_rst_ref_cntr_s {
1583*4b8b8d74SJaiprakash Singh 		uint64_t cnt                         : 64;
1584*4b8b8d74SJaiprakash Singh 	} s;
1585*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_ref_cntr_s cn; */
1586*4b8b8d74SJaiprakash Singh };
1587*4b8b8d74SJaiprakash Singh typedef union ody_rst_ref_cntr ody_rst_ref_cntr_t;
1588*4b8b8d74SJaiprakash Singh 
1589*4b8b8d74SJaiprakash Singh #define ODY_RST_REF_CNTR ODY_RST_REF_CNTR_FUNC()
1590*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_REF_CNTR_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_REF_CNTR_FUNC(void)1591*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_REF_CNTR_FUNC(void)
1592*4b8b8d74SJaiprakash Singh {
1593*4b8b8d74SJaiprakash Singh 	return 0x87e006001758ll;
1594*4b8b8d74SJaiprakash Singh }
1595*4b8b8d74SJaiprakash Singh 
1596*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_REF_CNTR ody_rst_ref_cntr_t
1597*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_REF_CNTR CSR_TYPE_RSL
1598*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_REF_CNTR "RST_REF_CNTR"
1599*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_REF_CNTR 0x0 /* PF_BAR0 */
1600*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_REF_CNTR 0
1601*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_REF_CNTR -1, -1, -1, -1
1602*4b8b8d74SJaiprakash Singh 
1603*4b8b8d74SJaiprakash Singh /**
1604*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_reset_active
1605*4b8b8d74SJaiprakash Singh  *
1606*4b8b8d74SJaiprakash Singh  * RST Domain Reset Active Status Register
1607*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
1608*4b8b8d74SJaiprakash Singh  */
1609*4b8b8d74SJaiprakash Singh union ody_rst_reset_active {
1610*4b8b8d74SJaiprakash Singh 	uint64_t u;
1611*4b8b8d74SJaiprakash Singh 	struct ody_rst_reset_active_s {
1612*4b8b8d74SJaiprakash Singh 		uint64_t chip                        : 1;
1613*4b8b8d74SJaiprakash Singh 		uint64_t core                        : 1;
1614*4b8b8d74SJaiprakash Singh 		uint64_t mcp                         : 1;
1615*4b8b8d74SJaiprakash Singh 		uint64_t scp                         : 1;
1616*4b8b8d74SJaiprakash Singh 		uint64_t bphy                        : 1;
1617*4b8b8d74SJaiprakash Singh 		uint64_t xcp2                        : 1;
1618*4b8b8d74SJaiprakash Singh 		uint64_t reserved_6_63               : 58;
1619*4b8b8d74SJaiprakash Singh 	} s;
1620*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_reset_active_s cn; */
1621*4b8b8d74SJaiprakash Singh };
1622*4b8b8d74SJaiprakash Singh typedef union ody_rst_reset_active ody_rst_reset_active_t;
1623*4b8b8d74SJaiprakash Singh 
1624*4b8b8d74SJaiprakash Singh #define ODY_RST_RESET_ACTIVE ODY_RST_RESET_ACTIVE_FUNC()
1625*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_RESET_ACTIVE_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_RESET_ACTIVE_FUNC(void)1626*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_RESET_ACTIVE_FUNC(void)
1627*4b8b8d74SJaiprakash Singh {
1628*4b8b8d74SJaiprakash Singh 	return 0x87e006001888ll;
1629*4b8b8d74SJaiprakash Singh }
1630*4b8b8d74SJaiprakash Singh 
1631*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_RESET_ACTIVE ody_rst_reset_active_t
1632*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_RESET_ACTIVE CSR_TYPE_RSL
1633*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_RESET_ACTIVE "RST_RESET_ACTIVE"
1634*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_RESET_ACTIVE 0x0 /* PF_BAR0 */
1635*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_RESET_ACTIVE 0
1636*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_RESET_ACTIVE -1, -1, -1, -1
1637*4b8b8d74SJaiprakash Singh 
1638*4b8b8d74SJaiprakash Singh /**
1639*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_scp_domain_w1c
1640*4b8b8d74SJaiprakash Singh  *
1641*4b8b8d74SJaiprakash Singh  * RST SCP Domain Soft Reset Clear Register
1642*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
1643*4b8b8d74SJaiprakash Singh  */
1644*4b8b8d74SJaiprakash Singh union ody_rst_scp_domain_w1c {
1645*4b8b8d74SJaiprakash Singh 	uint64_t u;
1646*4b8b8d74SJaiprakash Singh 	struct ody_rst_scp_domain_w1c_s {
1647*4b8b8d74SJaiprakash Singh 		uint64_t soft_rst                    : 1;
1648*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1_63               : 63;
1649*4b8b8d74SJaiprakash Singh 	} s;
1650*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_scp_domain_w1c_s cn; */
1651*4b8b8d74SJaiprakash Singh };
1652*4b8b8d74SJaiprakash Singh typedef union ody_rst_scp_domain_w1c ody_rst_scp_domain_w1c_t;
1653*4b8b8d74SJaiprakash Singh 
1654*4b8b8d74SJaiprakash Singh #define ODY_RST_SCP_DOMAIN_W1C ODY_RST_SCP_DOMAIN_W1C_FUNC()
1655*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_SCP_DOMAIN_W1C_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_SCP_DOMAIN_W1C_FUNC(void)1656*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_SCP_DOMAIN_W1C_FUNC(void)
1657*4b8b8d74SJaiprakash Singh {
1658*4b8b8d74SJaiprakash Singh 	return 0x87e006001848ll;
1659*4b8b8d74SJaiprakash Singh }
1660*4b8b8d74SJaiprakash Singh 
1661*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_SCP_DOMAIN_W1C ody_rst_scp_domain_w1c_t
1662*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_SCP_DOMAIN_W1C CSR_TYPE_RSL
1663*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_SCP_DOMAIN_W1C "RST_SCP_DOMAIN_W1C"
1664*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_SCP_DOMAIN_W1C 0x0 /* PF_BAR0 */
1665*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_SCP_DOMAIN_W1C 0
1666*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_SCP_DOMAIN_W1C -1, -1, -1, -1
1667*4b8b8d74SJaiprakash Singh 
1668*4b8b8d74SJaiprakash Singh /**
1669*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_scp_domain_w1s
1670*4b8b8d74SJaiprakash Singh  *
1671*4b8b8d74SJaiprakash Singh  * RST SCP Domain Soft Reset Set Register
1672*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
1673*4b8b8d74SJaiprakash Singh  */
1674*4b8b8d74SJaiprakash Singh union ody_rst_scp_domain_w1s {
1675*4b8b8d74SJaiprakash Singh 	uint64_t u;
1676*4b8b8d74SJaiprakash Singh 	struct ody_rst_scp_domain_w1s_s {
1677*4b8b8d74SJaiprakash Singh 		uint64_t soft_rst                    : 1;
1678*4b8b8d74SJaiprakash Singh 		uint64_t force_rst                   : 1;
1679*4b8b8d74SJaiprakash Singh 		uint64_t reserved_2_63               : 62;
1680*4b8b8d74SJaiprakash Singh 	} s;
1681*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_scp_domain_w1s_s cn; */
1682*4b8b8d74SJaiprakash Singh };
1683*4b8b8d74SJaiprakash Singh typedef union ody_rst_scp_domain_w1s ody_rst_scp_domain_w1s_t;
1684*4b8b8d74SJaiprakash Singh 
1685*4b8b8d74SJaiprakash Singh #define ODY_RST_SCP_DOMAIN_W1S ODY_RST_SCP_DOMAIN_W1S_FUNC()
1686*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_SCP_DOMAIN_W1S_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_SCP_DOMAIN_W1S_FUNC(void)1687*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_SCP_DOMAIN_W1S_FUNC(void)
1688*4b8b8d74SJaiprakash Singh {
1689*4b8b8d74SJaiprakash Singh 	return 0x87e006001840ll;
1690*4b8b8d74SJaiprakash Singh }
1691*4b8b8d74SJaiprakash Singh 
1692*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_SCP_DOMAIN_W1S ody_rst_scp_domain_w1s_t
1693*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_SCP_DOMAIN_W1S CSR_TYPE_RSL
1694*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_SCP_DOMAIN_W1S "RST_SCP_DOMAIN_W1S"
1695*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_SCP_DOMAIN_W1S 0x0 /* PF_BAR0 */
1696*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_SCP_DOMAIN_W1S 0
1697*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_SCP_DOMAIN_W1S -1, -1, -1, -1
1698*4b8b8d74SJaiprakash Singh 
1699*4b8b8d74SJaiprakash Singh /**
1700*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_sw_w1s
1701*4b8b8d74SJaiprakash Singh  *
1702*4b8b8d74SJaiprakash Singh  * RST Software W1S Data Register
1703*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
1704*4b8b8d74SJaiprakash Singh  */
1705*4b8b8d74SJaiprakash Singh union ody_rst_sw_w1s {
1706*4b8b8d74SJaiprakash Singh 	uint64_t u;
1707*4b8b8d74SJaiprakash Singh 	struct ody_rst_sw_w1s_s {
1708*4b8b8d74SJaiprakash Singh 		uint64_t data                        : 64;
1709*4b8b8d74SJaiprakash Singh 	} s;
1710*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_sw_w1s_s cn; */
1711*4b8b8d74SJaiprakash Singh };
1712*4b8b8d74SJaiprakash Singh typedef union ody_rst_sw_w1s ody_rst_sw_w1s_t;
1713*4b8b8d74SJaiprakash Singh 
1714*4b8b8d74SJaiprakash Singh #define ODY_RST_SW_W1S ODY_RST_SW_W1S_FUNC()
1715*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_SW_W1S_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_SW_W1S_FUNC(void)1716*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_SW_W1S_FUNC(void)
1717*4b8b8d74SJaiprakash Singh {
1718*4b8b8d74SJaiprakash Singh 	return 0x87e0060017f0ll;
1719*4b8b8d74SJaiprakash Singh }
1720*4b8b8d74SJaiprakash Singh 
1721*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_SW_W1S ody_rst_sw_w1s_t
1722*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_SW_W1S CSR_TYPE_RSL
1723*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_SW_W1S "RST_SW_W1S"
1724*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_SW_W1S 0x0 /* PF_BAR0 */
1725*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_SW_W1S 0
1726*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_SW_W1S -1, -1, -1, -1
1727*4b8b8d74SJaiprakash Singh 
1728*4b8b8d74SJaiprakash Singh /**
1729*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_test_pll#
1730*4b8b8d74SJaiprakash Singh  *
1731*4b8b8d74SJaiprakash Singh  * RST Manual PLL Control Register
1732*4b8b8d74SJaiprakash Singh  * These registers control manual ARO programming and Test features.
1733*4b8b8d74SJaiprakash Singh  *
1734*4b8b8d74SJaiprakash Singh  * The logic associated with the PLL functions can only process one operation at a time.
1735*4b8b8d74SJaiprakash Singh  * Writes to this register should only occur when both the RST_PLL(x)[NEXT_PGM] and
1736*4b8b8d74SJaiprakash Singh  * RST_PLL(x)[NEXT_SWITCH] fields are zero.  Additionally a read operation should occur
1737*4b8b8d74SJaiprakash Singh  * between writes to this register to allow time for the test setting to be transmitted
1738*4b8b8d74SJaiprakash Singh  * successfully before new setting are applied.
1739*4b8b8d74SJaiprakash Singh  */
1740*4b8b8d74SJaiprakash Singh union ody_rst_test_pllx {
1741*4b8b8d74SJaiprakash Singh 	uint64_t u;
1742*4b8b8d74SJaiprakash Singh 	struct ody_rst_test_pllx_s {
1743*4b8b8d74SJaiprakash Singh 		uint64_t stop_cnt                    : 32;
1744*4b8b8d74SJaiprakash Singh 		uint64_t stop_clk                    : 1;
1745*4b8b8d74SJaiprakash Singh 		uint64_t msc_enable                  : 1;
1746*4b8b8d74SJaiprakash Singh 		uint64_t testclk_pll1                : 1;
1747*4b8b8d74SJaiprakash Singh 		uint64_t reserved_35_39              : 5;
1748*4b8b8d74SJaiprakash Singh 		uint64_t test_ana                    : 5;
1749*4b8b8d74SJaiprakash Singh 		uint64_t test_rsvd                   : 3;
1750*4b8b8d74SJaiprakash Singh 		uint64_t reserved_48_63              : 16;
1751*4b8b8d74SJaiprakash Singh 	} s;
1752*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_test_pllx_s cn; */
1753*4b8b8d74SJaiprakash Singh };
1754*4b8b8d74SJaiprakash Singh typedef union ody_rst_test_pllx ody_rst_test_pllx_t;
1755*4b8b8d74SJaiprakash Singh 
1756*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_TEST_PLLX(uint64_t a) __attribute__ ((pure, always_inline));
ODY_RST_TEST_PLLX(uint64_t a)1757*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_TEST_PLLX(uint64_t a)
1758*4b8b8d74SJaiprakash Singh {
1759*4b8b8d74SJaiprakash Singh 	if (a <= 15)
1760*4b8b8d74SJaiprakash Singh 		return 0x87e00a001200ll + 8ll * ((a) & 0xf);
1761*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("RST_TEST_PLLX", 1, a, 0, 0, 0, 0, 0);
1762*4b8b8d74SJaiprakash Singh }
1763*4b8b8d74SJaiprakash Singh 
1764*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_TEST_PLLX(a) ody_rst_test_pllx_t
1765*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_TEST_PLLX(a) CSR_TYPE_RSL
1766*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_TEST_PLLX(a) "RST_TEST_PLLX"
1767*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_TEST_PLLX(a) 0x2 /* PF_BAR2 */
1768*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_TEST_PLLX(a) (a)
1769*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_TEST_PLLX(a) (a), -1, -1, -1
1770*4b8b8d74SJaiprakash Singh 
1771*4b8b8d74SJaiprakash Singh /**
1772*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_thermal_alert
1773*4b8b8d74SJaiprakash Singh  *
1774*4b8b8d74SJaiprakash Singh  * RST Thermal Alert Register
1775*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
1776*4b8b8d74SJaiprakash Singh  */
1777*4b8b8d74SJaiprakash Singh union ody_rst_thermal_alert {
1778*4b8b8d74SJaiprakash Singh 	uint64_t u;
1779*4b8b8d74SJaiprakash Singh 	struct ody_rst_thermal_alert_s {
1780*4b8b8d74SJaiprakash Singh 		uint64_t alert                       : 1;
1781*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1_7                : 7;
1782*4b8b8d74SJaiprakash Singh 		uint64_t trip                        : 1;
1783*4b8b8d74SJaiprakash Singh 		uint64_t reserved_9_63               : 55;
1784*4b8b8d74SJaiprakash Singh 	} s;
1785*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_thermal_alert_s cn; */
1786*4b8b8d74SJaiprakash Singh };
1787*4b8b8d74SJaiprakash Singh typedef union ody_rst_thermal_alert ody_rst_thermal_alert_t;
1788*4b8b8d74SJaiprakash Singh 
1789*4b8b8d74SJaiprakash Singh #define ODY_RST_THERMAL_ALERT ODY_RST_THERMAL_ALERT_FUNC()
1790*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_THERMAL_ALERT_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_THERMAL_ALERT_FUNC(void)1791*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_THERMAL_ALERT_FUNC(void)
1792*4b8b8d74SJaiprakash Singh {
1793*4b8b8d74SJaiprakash Singh 	return 0x87e006001690ll;
1794*4b8b8d74SJaiprakash Singh }
1795*4b8b8d74SJaiprakash Singh 
1796*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_THERMAL_ALERT ody_rst_thermal_alert_t
1797*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_THERMAL_ALERT CSR_TYPE_RSL
1798*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_THERMAL_ALERT "RST_THERMAL_ALERT"
1799*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_THERMAL_ALERT 0x0 /* PF_BAR0 */
1800*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_THERMAL_ALERT 0
1801*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_THERMAL_ALERT -1, -1, -1, -1
1802*4b8b8d74SJaiprakash Singh 
1803*4b8b8d74SJaiprakash Singh /**
1804*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_xcp2_domain_w1c
1805*4b8b8d74SJaiprakash Singh  *
1806*4b8b8d74SJaiprakash Singh  * RST CCP/XCP2 Domain Soft Reset Clear Register
1807*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
1808*4b8b8d74SJaiprakash Singh  */
1809*4b8b8d74SJaiprakash Singh union ody_rst_xcp2_domain_w1c {
1810*4b8b8d74SJaiprakash Singh 	uint64_t u;
1811*4b8b8d74SJaiprakash Singh 	struct ody_rst_xcp2_domain_w1c_s {
1812*4b8b8d74SJaiprakash Singh 		uint64_t soft_rst                    : 1;
1813*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1_63               : 63;
1814*4b8b8d74SJaiprakash Singh 	} s;
1815*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_xcp2_domain_w1c_s cn; */
1816*4b8b8d74SJaiprakash Singh };
1817*4b8b8d74SJaiprakash Singh typedef union ody_rst_xcp2_domain_w1c ody_rst_xcp2_domain_w1c_t;
1818*4b8b8d74SJaiprakash Singh 
1819*4b8b8d74SJaiprakash Singh #define ODY_RST_XCP2_DOMAIN_W1C ODY_RST_XCP2_DOMAIN_W1C_FUNC()
1820*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_XCP2_DOMAIN_W1C_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_XCP2_DOMAIN_W1C_FUNC(void)1821*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_XCP2_DOMAIN_W1C_FUNC(void)
1822*4b8b8d74SJaiprakash Singh {
1823*4b8b8d74SJaiprakash Singh 	return 0x87e006001878ll;
1824*4b8b8d74SJaiprakash Singh }
1825*4b8b8d74SJaiprakash Singh 
1826*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_XCP2_DOMAIN_W1C ody_rst_xcp2_domain_w1c_t
1827*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_XCP2_DOMAIN_W1C CSR_TYPE_RSL
1828*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_XCP2_DOMAIN_W1C "RST_XCP2_DOMAIN_W1C"
1829*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_XCP2_DOMAIN_W1C 0x0 /* PF_BAR0 */
1830*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_XCP2_DOMAIN_W1C 0
1831*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_XCP2_DOMAIN_W1C -1, -1, -1, -1
1832*4b8b8d74SJaiprakash Singh 
1833*4b8b8d74SJaiprakash Singh /**
1834*4b8b8d74SJaiprakash Singh  * Register (RSL) rst_xcp2_domain_w1s
1835*4b8b8d74SJaiprakash Singh  *
1836*4b8b8d74SJaiprakash Singh  * RST CCP/XCP2 Domain Soft Reset Set Register
1837*4b8b8d74SJaiprakash Singh  * This register is not accessible through ROM scripts; see SCR_WRITE32_S[ADDR].
1838*4b8b8d74SJaiprakash Singh  */
1839*4b8b8d74SJaiprakash Singh union ody_rst_xcp2_domain_w1s {
1840*4b8b8d74SJaiprakash Singh 	uint64_t u;
1841*4b8b8d74SJaiprakash Singh 	struct ody_rst_xcp2_domain_w1s_s {
1842*4b8b8d74SJaiprakash Singh 		uint64_t soft_rst                    : 1;
1843*4b8b8d74SJaiprakash Singh 		uint64_t force_rst                   : 1;
1844*4b8b8d74SJaiprakash Singh 		uint64_t reserved_2_63               : 62;
1845*4b8b8d74SJaiprakash Singh 	} s;
1846*4b8b8d74SJaiprakash Singh 	/* struct ody_rst_xcp2_domain_w1s_s cn; */
1847*4b8b8d74SJaiprakash Singh };
1848*4b8b8d74SJaiprakash Singh typedef union ody_rst_xcp2_domain_w1s ody_rst_xcp2_domain_w1s_t;
1849*4b8b8d74SJaiprakash Singh 
1850*4b8b8d74SJaiprakash Singh #define ODY_RST_XCP2_DOMAIN_W1S ODY_RST_XCP2_DOMAIN_W1S_FUNC()
1851*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_XCP2_DOMAIN_W1S_FUNC(void) __attribute__ ((pure, always_inline));
ODY_RST_XCP2_DOMAIN_W1S_FUNC(void)1852*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_RST_XCP2_DOMAIN_W1S_FUNC(void)
1853*4b8b8d74SJaiprakash Singh {
1854*4b8b8d74SJaiprakash Singh 	return 0x87e006001870ll;
1855*4b8b8d74SJaiprakash Singh }
1856*4b8b8d74SJaiprakash Singh 
1857*4b8b8d74SJaiprakash Singh #define typedef_ODY_RST_XCP2_DOMAIN_W1S ody_rst_xcp2_domain_w1s_t
1858*4b8b8d74SJaiprakash Singh #define bustype_ODY_RST_XCP2_DOMAIN_W1S CSR_TYPE_RSL
1859*4b8b8d74SJaiprakash Singh #define basename_ODY_RST_XCP2_DOMAIN_W1S "RST_XCP2_DOMAIN_W1S"
1860*4b8b8d74SJaiprakash Singh #define device_bar_ODY_RST_XCP2_DOMAIN_W1S 0x0 /* PF_BAR0 */
1861*4b8b8d74SJaiprakash Singh #define busnum_ODY_RST_XCP2_DOMAIN_W1S 0
1862*4b8b8d74SJaiprakash Singh #define arguments_ODY_RST_XCP2_DOMAIN_W1S -1, -1, -1, -1
1863*4b8b8d74SJaiprakash Singh 
1864*4b8b8d74SJaiprakash Singh #endif /* __ODY_CSRS_RST_H__ */
1865