xref: /rk3399_ARM-atf/include/plat/marvell/odyssey/csr/ody-csrs-xcp.h (revision 12d80bbbf6031228bdd910eccb03bb185e8df527)
1*4b8b8d74SJaiprakash Singh #ifndef __ODY_CSRS_XCP_H__
2*4b8b8d74SJaiprakash Singh #define __ODY_CSRS_XCP_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  * XCP.
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 xcp_addr_prt_e
24*4b8b8d74SJaiprakash Singh  *
25*4b8b8d74SJaiprakash Singh  * XCP Address Partition Enumeration
26*4b8b8d74SJaiprakash Singh  * Enumerates the partitions in CM7 address space, as recorded in XCP()_PRECISE_BUS_ERR_STATUS[PART].
27*4b8b8d74SJaiprakash Singh  */
28*4b8b8d74SJaiprakash Singh #define ODY_XCP_ADDR_PRT_E_CSR_CPC (3)
29*4b8b8d74SJaiprakash Singh #define ODY_XCP_ADDR_PRT_E_CSR_PSBM (4)
30*4b8b8d74SJaiprakash Singh #define ODY_XCP_ADDR_PRT_E_CSR_XCP (2)
31*4b8b8d74SJaiprakash Singh #define ODY_XCP_ADDR_PRT_E_MEM (1)
32*4b8b8d74SJaiprakash Singh #define ODY_XCP_ADDR_PRT_E_NCB (5)
33*4b8b8d74SJaiprakash Singh #define ODY_XCP_ADDR_PRT_E_NONE (0)
34*4b8b8d74SJaiprakash Singh #define ODY_XCP_ADDR_PRT_E_RML (6)
35*4b8b8d74SJaiprakash Singh 
36*4b8b8d74SJaiprakash Singh /**
37*4b8b8d74SJaiprakash Singh  * Enumeration xcp_bar_e
38*4b8b8d74SJaiprakash Singh  *
39*4b8b8d74SJaiprakash Singh  * XCP Base Address Register Enumeration
40*4b8b8d74SJaiprakash Singh  * Enumerates the base address registers.
41*4b8b8d74SJaiprakash Singh  */
42*4b8b8d74SJaiprakash Singh #define ODY_XCP_BAR_E_XCPX_PF_BAR0(a) (0x82c000000000ll + 0x1000000000ll * (a))
43*4b8b8d74SJaiprakash Singh #define ODY_XCP_BAR_E_XCPX_PF_BAR0_SIZE 0x100000ull
44*4b8b8d74SJaiprakash Singh #define ODY_XCP_BAR_E_XCPX_PF_BAR4(a) (0x82c000100000ll + 0x1000000000ll * (a))
45*4b8b8d74SJaiprakash Singh #define ODY_XCP_BAR_E_XCPX_PF_BAR4_SIZE 0x100000ull
46*4b8b8d74SJaiprakash Singh 
47*4b8b8d74SJaiprakash Singh /**
48*4b8b8d74SJaiprakash Singh  * Enumeration xcp_cm7_vec_int_e
49*4b8b8d74SJaiprakash Singh  *
50*4b8b8d74SJaiprakash Singh  * XCP CM7 Vectored Interrupt Enumeration
51*4b8b8d74SJaiprakash Singh  * Enumerates the vectored interrupt inputs to the CM7 core.
52*4b8b8d74SJaiprakash Singh  */
53*4b8b8d74SJaiprakash Singh #define ODY_XCP_CM7_VEC_INT_E_BUS_ERR (0)
54*4b8b8d74SJaiprakash Singh #define ODY_XCP_CM7_VEC_INT_E_CTIIRQ0 (6)
55*4b8b8d74SJaiprakash Singh #define ODY_XCP_CM7_VEC_INT_E_CTIIRQ1 (7)
56*4b8b8d74SJaiprakash Singh #define ODY_XCP_CM7_VEC_INT_E_EXT_INTX(a) (0x40 + (a))
57*4b8b8d74SJaiprakash Singh #define ODY_XCP_CM7_VEC_INT_E_GIB0 (2)
58*4b8b8d74SJaiprakash Singh #define ODY_XCP_CM7_VEC_INT_E_GIB1 (3)
59*4b8b8d74SJaiprakash Singh #define ODY_XCP_CM7_VEC_INT_E_GIB2 (4)
60*4b8b8d74SJaiprakash Singh #define ODY_XCP_CM7_VEC_INT_E_MBOX (5)
61*4b8b8d74SJaiprakash Singh #define ODY_XCP_CM7_VEC_INT_E_RESERVEDX(a) (8 + (a))
62*4b8b8d74SJaiprakash Singh #define ODY_XCP_CM7_VEC_INT_E_WDOG (1)
63*4b8b8d74SJaiprakash Singh 
64*4b8b8d74SJaiprakash Singh /**
65*4b8b8d74SJaiprakash Singh  * Enumeration xcp_dintf_err_type_e
66*4b8b8d74SJaiprakash Singh  *
67*4b8b8d74SJaiprakash Singh  * XCP Data Interface Precise Error Enumeration
68*4b8b8d74SJaiprakash Singh  * Enumerates the precise error types, as recorded in XCP()_PRECISE_BUS_ERR_STATUS[ERR_TYPE].
69*4b8b8d74SJaiprakash Singh  */
70*4b8b8d74SJaiprakash Singh #define ODY_XCP_DINTF_ERR_TYPE_E_ACCESS_ERR (3)
71*4b8b8d74SJaiprakash Singh #define ODY_XCP_DINTF_ERR_TYPE_E_ERR_NCB_CORE_RESET (5)
72*4b8b8d74SJaiprakash Singh #define ODY_XCP_DINTF_ERR_TYPE_E_FETCH_ERR_NCB_FETCH_DIS (4)
73*4b8b8d74SJaiprakash Singh #define ODY_XCP_DINTF_ERR_TYPE_E_INV_ADDR (2)
74*4b8b8d74SJaiprakash Singh #define ODY_XCP_DINTF_ERR_TYPE_E_NO_ERR (0)
75*4b8b8d74SJaiprakash Singh #define ODY_XCP_DINTF_ERR_TYPE_E_RD_ERR_NCB (6)
76*4b8b8d74SJaiprakash Singh #define ODY_XCP_DINTF_ERR_TYPE_E_UMPD_ADDR (1)
77*4b8b8d74SJaiprakash Singh #define ODY_XCP_DINTF_ERR_TYPE_E_WR_ERR_NCB (7)
78*4b8b8d74SJaiprakash Singh 
79*4b8b8d74SJaiprakash Singh /**
80*4b8b8d74SJaiprakash Singh  * Enumeration xcp_int_vec_e
81*4b8b8d74SJaiprakash Singh  *
82*4b8b8d74SJaiprakash Singh  * XCP MSI-X Vector Enumeration
83*4b8b8d74SJaiprakash Singh  * Enumerates the MSI-X interrupt vectors.
84*4b8b8d74SJaiprakash Singh  */
85*4b8b8d74SJaiprakash Singh #define ODY_XCP_INT_VEC_E_XCP_DEV_MBOXX(a) (0 + (a))
86*4b8b8d74SJaiprakash Singh 
87*4b8b8d74SJaiprakash Singh /**
88*4b8b8d74SJaiprakash Singh  * Enumeration xcp_mbox_dev_e
89*4b8b8d74SJaiprakash Singh  *
90*4b8b8d74SJaiprakash Singh  * XCP Mailbox Device ID Enumeration
91*4b8b8d74SJaiprakash Singh  * Enumerates the device ID for MBOX registers.
92*4b8b8d74SJaiprakash Singh  */
93*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE0 (0x20)
94*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE1 (0x21)
95*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE10 (0x2a)
96*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE11 (0x2b)
97*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE12 (0x2c)
98*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE13 (0x2d)
99*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE14 (0x2e)
100*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE15 (0x2f)
101*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE16 (0x30)
102*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE17 (0x31)
103*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE18 (0x32)
104*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE19 (0x33)
105*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE2 (0x22)
106*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE20 (0x34)
107*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE21 (0x35)
108*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE22 (0x36)
109*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE23 (0x37)
110*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE3 (0x23)
111*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE4 (0x24)
112*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE5 (0x25)
113*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE6 (0x26)
114*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE7 (0x27)
115*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE8 (0x28)
116*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_NONSECURE9 (0x29)
117*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE0 (0)
118*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE1 (1)
119*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE10 (0xa)
120*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE11 (0xb)
121*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE12 (0xc)
122*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE13 (0xd)
123*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE14 (0xe)
124*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE15 (0xf)
125*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE16 (0x10)
126*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE17 (0x11)
127*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE18 (0x12)
128*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE19 (0x13)
129*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE2 (2)
130*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE20 (0x14)
131*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE21 (0x15)
132*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE22 (0x16)
133*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE23 (0x17)
134*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE24 (0x18)
135*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE25 (0x19)
136*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE26 (0x1a)
137*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE27 (0x1b)
138*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE28 (0x1c)
139*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE29 (0x1d)
140*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE3 (3)
141*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE30 (0x1e)
142*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE31 (0x1f)
143*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE4 (4)
144*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE5 (5)
145*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE6 (6)
146*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE7 (7)
147*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE8 (8)
148*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_AP_SECURE9 (9)
149*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_CCP_LOCAL (0x3a)
150*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_CCP_REMOTE (0x3d)
151*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_MCP_LOCAL (0x39)
152*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_MCP_REMOTE (0x3c)
153*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_SCP_LOCAL (0x38)
154*4b8b8d74SJaiprakash Singh #define ODY_XCP_MBOX_DEV_E_SCP_REMOTE (0x3b)
155*4b8b8d74SJaiprakash Singh 
156*4b8b8d74SJaiprakash Singh /**
157*4b8b8d74SJaiprakash Singh  * Register (NCB) xcp#_anb_aximstr_status
158*4b8b8d74SJaiprakash Singh  *
159*4b8b8d74SJaiprakash Singh  * ANB AXISLV Block Status Register
160*4b8b8d74SJaiprakash Singh  * This register configures the connection XCP core and NCB.
161*4b8b8d74SJaiprakash Singh  */
162*4b8b8d74SJaiprakash Singh union ody_xcpx_anb_aximstr_status {
163*4b8b8d74SJaiprakash Singh 	uint64_t u;
164*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_anb_aximstr_status_s {
165*4b8b8d74SJaiprakash Singh 		uint64_t anb_aximstr_rd_resp_nok     : 1;
166*4b8b8d74SJaiprakash Singh 		uint64_t anb_aximstr_wr_resp_nok     : 1;
167*4b8b8d74SJaiprakash Singh 		uint64_t reserved_2_63               : 62;
168*4b8b8d74SJaiprakash Singh 	} s;
169*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_anb_aximstr_status_s cn; */
170*4b8b8d74SJaiprakash Singh };
171*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_anb_aximstr_status ody_xcpx_anb_aximstr_status_t;
172*4b8b8d74SJaiprakash Singh 
173*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_ANB_AXIMSTR_STATUS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_ANB_AXIMSTR_STATUS(uint64_t a)174*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_ANB_AXIMSTR_STATUS(uint64_t a)
175*4b8b8d74SJaiprakash Singh {
176*4b8b8d74SJaiprakash Singh 	if (a <= 2)
177*4b8b8d74SJaiprakash Singh 		return 0x82c000007060ll + 0x1000000000ll * ((a) & 0x3);
178*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_ANB_AXIMSTR_STATUS", 1, a, 0, 0, 0, 0, 0);
179*4b8b8d74SJaiprakash Singh }
180*4b8b8d74SJaiprakash Singh 
181*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_ANB_AXIMSTR_STATUS(a) ody_xcpx_anb_aximstr_status_t
182*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_ANB_AXIMSTR_STATUS(a) CSR_TYPE_NCB
183*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_ANB_AXIMSTR_STATUS(a) "XCPX_ANB_AXIMSTR_STATUS"
184*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_ANB_AXIMSTR_STATUS(a) 0x0 /* PF_BAR0 */
185*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_ANB_AXIMSTR_STATUS(a) (a)
186*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_ANB_AXIMSTR_STATUS(a) (a), -1, -1, -1
187*4b8b8d74SJaiprakash Singh 
188*4b8b8d74SJaiprakash Singh /**
189*4b8b8d74SJaiprakash Singh  * Register (NCB) xcp#_anb_axislv_status
190*4b8b8d74SJaiprakash Singh  *
191*4b8b8d74SJaiprakash Singh  * ANB AXISLV Block Status Register
192*4b8b8d74SJaiprakash Singh  * This register configures the connection XCP core and NCB.
193*4b8b8d74SJaiprakash Singh  */
194*4b8b8d74SJaiprakash Singh union ody_xcpx_anb_axislv_status {
195*4b8b8d74SJaiprakash Singh 	uint64_t u;
196*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_anb_axislv_status_s {
197*4b8b8d74SJaiprakash Singh 		uint64_t anb_axislv_b_fifo_overrun   : 1;
198*4b8b8d74SJaiprakash Singh 		uint64_t anb_axislv_r_fifo_overrun   : 1;
199*4b8b8d74SJaiprakash Singh 		uint64_t anb_axislv_load_size_exc    : 1;
200*4b8b8d74SJaiprakash Singh 		uint64_t anb_axislv_write_size_exc   : 1;
201*4b8b8d74SJaiprakash Singh 		uint64_t anb_axislv_empty_write      : 1;
202*4b8b8d74SJaiprakash Singh 		uint64_t anb_axislv_multi_beat_nrw_wr : 1;
203*4b8b8d74SJaiprakash Singh 		uint64_t anb_axislv_multi_beat_nrw_rd : 1;
204*4b8b8d74SJaiprakash Singh 		uint64_t anb_axislv_single_beat_nrw_wr : 1;
205*4b8b8d74SJaiprakash Singh 		uint64_t anb_axislv_single_beat_nrw_rd : 1;
206*4b8b8d74SJaiprakash Singh 		uint64_t anb_axislv_bad_narrow_write_8 : 1;
207*4b8b8d74SJaiprakash Singh 		uint64_t anb_axislv_bad_narrow_write_16 : 1;
208*4b8b8d74SJaiprakash Singh 		uint64_t anb_axislv_bad_narrow_write_32 : 1;
209*4b8b8d74SJaiprakash Singh 		uint64_t anb_axislv_bad_narrow_write_64 : 1;
210*4b8b8d74SJaiprakash Singh 		uint64_t reserved_13_63              : 51;
211*4b8b8d74SJaiprakash Singh 	} s;
212*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_anb_axislv_status_s cn; */
213*4b8b8d74SJaiprakash Singh };
214*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_anb_axislv_status ody_xcpx_anb_axislv_status_t;
215*4b8b8d74SJaiprakash Singh 
216*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_ANB_AXISLV_STATUS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_ANB_AXISLV_STATUS(uint64_t a)217*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_ANB_AXISLV_STATUS(uint64_t a)
218*4b8b8d74SJaiprakash Singh {
219*4b8b8d74SJaiprakash Singh 	if (a <= 2)
220*4b8b8d74SJaiprakash Singh 		return 0x82c000007030ll + 0x1000000000ll * ((a) & 0x3);
221*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_ANB_AXISLV_STATUS", 1, a, 0, 0, 0, 0, 0);
222*4b8b8d74SJaiprakash Singh }
223*4b8b8d74SJaiprakash Singh 
224*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_ANB_AXISLV_STATUS(a) ody_xcpx_anb_axislv_status_t
225*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_ANB_AXISLV_STATUS(a) CSR_TYPE_NCB
226*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_ANB_AXISLV_STATUS(a) "XCPX_ANB_AXISLV_STATUS"
227*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_ANB_AXISLV_STATUS(a) 0x0 /* PF_BAR0 */
228*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_ANB_AXISLV_STATUS(a) (a)
229*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_ANB_AXISLV_STATUS(a) (a), -1, -1, -1
230*4b8b8d74SJaiprakash Singh 
231*4b8b8d74SJaiprakash Singh /**
232*4b8b8d74SJaiprakash Singh  * Register (NCB) xcp#_anb_backp_disable
233*4b8b8d74SJaiprakash Singh  *
234*4b8b8d74SJaiprakash Singh  * ANB Backpressure Configuration Register
235*4b8b8d74SJaiprakash Singh  * This register configures the connection XCP core and NCB.
236*4b8b8d74SJaiprakash Singh  */
237*4b8b8d74SJaiprakash Singh union ody_xcpx_anb_backp_disable {
238*4b8b8d74SJaiprakash Singh 	uint64_t u;
239*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_anb_backp_disable_s {
240*4b8b8d74SJaiprakash Singh 		uint64_t anb_extmstr_b_backp_disable : 1;
241*4b8b8d74SJaiprakash Singh 		uint64_t anb_extmstr_r_backp_disable : 1;
242*4b8b8d74SJaiprakash Singh 		uint64_t anb_chicken_w_wait_for_aw   : 1;
243*4b8b8d74SJaiprakash Singh 		uint64_t anb_force_ncb_rst_active    : 1;
244*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncb_rst_drain_axislv_fifos : 1;
245*4b8b8d74SJaiprakash Singh 		uint64_t reserved_5_63               : 59;
246*4b8b8d74SJaiprakash Singh 	} s;
247*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_anb_backp_disable_s cn; */
248*4b8b8d74SJaiprakash Singh };
249*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_anb_backp_disable ody_xcpx_anb_backp_disable_t;
250*4b8b8d74SJaiprakash Singh 
251*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_ANB_BACKP_DISABLE(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_ANB_BACKP_DISABLE(uint64_t a)252*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_ANB_BACKP_DISABLE(uint64_t a)
253*4b8b8d74SJaiprakash Singh {
254*4b8b8d74SJaiprakash Singh 	if (a <= 2)
255*4b8b8d74SJaiprakash Singh 		return 0x82c000007000ll + 0x1000000000ll * ((a) & 0x3);
256*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_ANB_BACKP_DISABLE", 1, a, 0, 0, 0, 0, 0);
257*4b8b8d74SJaiprakash Singh }
258*4b8b8d74SJaiprakash Singh 
259*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_ANB_BACKP_DISABLE(a) ody_xcpx_anb_backp_disable_t
260*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_ANB_BACKP_DISABLE(a) CSR_TYPE_NCB
261*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_ANB_BACKP_DISABLE(a) "XCPX_ANB_BACKP_DISABLE"
262*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_ANB_BACKP_DISABLE(a) 0x0 /* PF_BAR0 */
263*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_ANB_BACKP_DISABLE(a) (a)
264*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_ANB_BACKP_DISABLE(a) (a), -1, -1, -1
265*4b8b8d74SJaiprakash Singh 
266*4b8b8d74SJaiprakash Singh /**
267*4b8b8d74SJaiprakash Singh  * Register (NCB) xcp#_anb_ncbi_np_ovr
268*4b8b8d74SJaiprakash Singh  *
269*4b8b8d74SJaiprakash Singh  * ANB NCBITXT NP Path CMD Overrides Register
270*4b8b8d74SJaiprakash Singh  * This register configures the connection XCP core and NCB.
271*4b8b8d74SJaiprakash Singh  */
272*4b8b8d74SJaiprakash Singh union ody_xcpx_anb_ncbi_np_ovr {
273*4b8b8d74SJaiprakash Singh 	uint64_t u;
274*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_anb_ncbi_np_ovr_s {
275*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_np_msh_dst_ovr_vld : 1;
276*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_np_msh_dst_ovr     : 11;
277*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_np_ns_ovr_vld      : 1;
278*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_np_ns_ovr          : 1;
279*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_np_paddr_ovr_vld   : 1;
280*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_np_paddr_ovr       : 1;
281*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_np_ro_ovr_vld      : 1;
282*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_np_ro_ovr          : 1;
283*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_np_mpadid_val_ovr_vld : 1;
284*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_np_mpadid_val_ovr  : 1;
285*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_np_mpamdid_ovr_vld : 1;
286*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_np_mpamdid_ovr     : 10;
287*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_np_ldd_frc         : 1;
288*4b8b8d74SJaiprakash Singh 		uint64_t reserved_32_63              : 32;
289*4b8b8d74SJaiprakash Singh 	} s;
290*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_anb_ncbi_np_ovr_s cn; */
291*4b8b8d74SJaiprakash Singh };
292*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_anb_ncbi_np_ovr ody_xcpx_anb_ncbi_np_ovr_t;
293*4b8b8d74SJaiprakash Singh 
294*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_ANB_NCBI_NP_OVR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_ANB_NCBI_NP_OVR(uint64_t a)295*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_ANB_NCBI_NP_OVR(uint64_t a)
296*4b8b8d74SJaiprakash Singh {
297*4b8b8d74SJaiprakash Singh 	if (a <= 2)
298*4b8b8d74SJaiprakash Singh 		return 0x82c000007020ll + 0x1000000000ll * ((a) & 0x3);
299*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_ANB_NCBI_NP_OVR", 1, a, 0, 0, 0, 0, 0);
300*4b8b8d74SJaiprakash Singh }
301*4b8b8d74SJaiprakash Singh 
302*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_ANB_NCBI_NP_OVR(a) ody_xcpx_anb_ncbi_np_ovr_t
303*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_ANB_NCBI_NP_OVR(a) CSR_TYPE_NCB
304*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_ANB_NCBI_NP_OVR(a) "XCPX_ANB_NCBI_NP_OVR"
305*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_ANB_NCBI_NP_OVR(a) 0x0 /* PF_BAR0 */
306*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_ANB_NCBI_NP_OVR(a) (a)
307*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_ANB_NCBI_NP_OVR(a) (a), -1, -1, -1
308*4b8b8d74SJaiprakash Singh 
309*4b8b8d74SJaiprakash Singh /**
310*4b8b8d74SJaiprakash Singh  * Register (NCB) xcp#_anb_ncbi_p_ovr
311*4b8b8d74SJaiprakash Singh  *
312*4b8b8d74SJaiprakash Singh  * ANB NCBITXT P Overrides Register
313*4b8b8d74SJaiprakash Singh  * This register configures the connection XCP core and NCB.
314*4b8b8d74SJaiprakash Singh  */
315*4b8b8d74SJaiprakash Singh union ody_xcpx_anb_ncbi_p_ovr {
316*4b8b8d74SJaiprakash Singh 	uint64_t u;
317*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_anb_ncbi_p_ovr_s {
318*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_p_msh_dst_ovr_vld  : 1;
319*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_p_msh_dst_ovr      : 11;
320*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_p_ns_ovr_vld       : 1;
321*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_p_ns_ovr           : 1;
322*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_p_paddr_ovr_vld    : 1;
323*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_p_paddr_ovr        : 1;
324*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_p_ro_ovr_vld       : 1;
325*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_p_ro_ovr           : 1;
326*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_p_mpadid_val_ovr_vld : 1;
327*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_p_mpadid_val_ovr   : 1;
328*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_p_mpamdid_ovr_vld  : 1;
329*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_p_mpamdid_ovr      : 10;
330*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbi_p_stt_frc          : 1;
331*4b8b8d74SJaiprakash Singh 		uint64_t reserved_32_63              : 32;
332*4b8b8d74SJaiprakash Singh 	} s;
333*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_anb_ncbi_p_ovr_s cn; */
334*4b8b8d74SJaiprakash Singh };
335*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_anb_ncbi_p_ovr ody_xcpx_anb_ncbi_p_ovr_t;
336*4b8b8d74SJaiprakash Singh 
337*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_ANB_NCBI_P_OVR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_ANB_NCBI_P_OVR(uint64_t a)338*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_ANB_NCBI_P_OVR(uint64_t a)
339*4b8b8d74SJaiprakash Singh {
340*4b8b8d74SJaiprakash Singh 	if (a <= 2)
341*4b8b8d74SJaiprakash Singh 		return 0x82c000007010ll + 0x1000000000ll * ((a) & 0x3);
342*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_ANB_NCBI_P_OVR", 1, a, 0, 0, 0, 0, 0);
343*4b8b8d74SJaiprakash Singh }
344*4b8b8d74SJaiprakash Singh 
345*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_ANB_NCBI_P_OVR(a) ody_xcpx_anb_ncbi_p_ovr_t
346*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_ANB_NCBI_P_OVR(a) CSR_TYPE_NCB
347*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_ANB_NCBI_P_OVR(a) "XCPX_ANB_NCBI_P_OVR"
348*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_ANB_NCBI_P_OVR(a) 0x0 /* PF_BAR0 */
349*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_ANB_NCBI_P_OVR(a) (a)
350*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_ANB_NCBI_P_OVR(a) (a), -1, -1, -1
351*4b8b8d74SJaiprakash Singh 
352*4b8b8d74SJaiprakash Singh /**
353*4b8b8d74SJaiprakash Singh  * Register (NCB) xcp#_anb_ncbitx_status
354*4b8b8d74SJaiprakash Singh  *
355*4b8b8d74SJaiprakash Singh  * ANB AXISLV Block Status Register
356*4b8b8d74SJaiprakash Singh  * This register configures the connection XCP core and NCB.
357*4b8b8d74SJaiprakash Singh  */
358*4b8b8d74SJaiprakash Singh union ody_xcpx_anb_ncbitx_status {
359*4b8b8d74SJaiprakash Singh 	uint64_t u;
360*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_anb_ncbitx_status_s {
361*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbitx_split_rd         : 1;
362*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncbitx_split_wr         : 1;
363*4b8b8d74SJaiprakash Singh 		uint64_t reserved_2_63               : 62;
364*4b8b8d74SJaiprakash Singh 	} s;
365*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_anb_ncbitx_status_s cn; */
366*4b8b8d74SJaiprakash Singh };
367*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_anb_ncbitx_status ody_xcpx_anb_ncbitx_status_t;
368*4b8b8d74SJaiprakash Singh 
369*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_ANB_NCBITX_STATUS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_ANB_NCBITX_STATUS(uint64_t a)370*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_ANB_NCBITX_STATUS(uint64_t a)
371*4b8b8d74SJaiprakash Singh {
372*4b8b8d74SJaiprakash Singh 	if (a <= 2)
373*4b8b8d74SJaiprakash Singh 		return 0x82c000007040ll + 0x1000000000ll * ((a) & 0x3);
374*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_ANB_NCBITX_STATUS", 1, a, 0, 0, 0, 0, 0);
375*4b8b8d74SJaiprakash Singh }
376*4b8b8d74SJaiprakash Singh 
377*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_ANB_NCBITX_STATUS(a) ody_xcpx_anb_ncbitx_status_t
378*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_ANB_NCBITX_STATUS(a) CSR_TYPE_NCB
379*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_ANB_NCBITX_STATUS(a) "XCPX_ANB_NCBITX_STATUS"
380*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_ANB_NCBITX_STATUS(a) 0x0 /* PF_BAR0 */
381*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_ANB_NCBITX_STATUS(a) (a)
382*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_ANB_NCBITX_STATUS(a) (a), -1, -1, -1
383*4b8b8d74SJaiprakash Singh 
384*4b8b8d74SJaiprakash Singh /**
385*4b8b8d74SJaiprakash Singh  * Register (NCB) xcp#_anb_ncborx_status
386*4b8b8d74SJaiprakash Singh  *
387*4b8b8d74SJaiprakash Singh  * ANB AXISLV Block Status Register
388*4b8b8d74SJaiprakash Singh  * This register configures the connection XCP core and NCB.
389*4b8b8d74SJaiprakash Singh  */
390*4b8b8d74SJaiprakash Singh union ody_xcpx_anb_ncborx_status {
391*4b8b8d74SJaiprakash Singh 	uint64_t u;
392*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_anb_ncborx_status_s {
393*4b8b8d74SJaiprakash Singh 		uint64_t anb_ncborx_rcvd_unsupported_op : 1;
394*4b8b8d74SJaiprakash Singh 		uint64_t anb_nbcorx_max_num_ncb_ld_exc : 1;
395*4b8b8d74SJaiprakash Singh 		uint64_t anb_nbcorx_max_size_ncb_ld_exc : 1;
396*4b8b8d74SJaiprakash Singh 		uint64_t anb_nbcorx_max_num_ncb_st_exc : 1;
397*4b8b8d74SJaiprakash Singh 		uint64_t anb_nbcorx_max_size_ncb_st_exc : 1;
398*4b8b8d74SJaiprakash Singh 		uint64_t reserved_5_63               : 59;
399*4b8b8d74SJaiprakash Singh 	} s;
400*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_anb_ncborx_status_s cn; */
401*4b8b8d74SJaiprakash Singh };
402*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_anb_ncborx_status ody_xcpx_anb_ncborx_status_t;
403*4b8b8d74SJaiprakash Singh 
404*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_ANB_NCBORX_STATUS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_ANB_NCBORX_STATUS(uint64_t a)405*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_ANB_NCBORX_STATUS(uint64_t a)
406*4b8b8d74SJaiprakash Singh {
407*4b8b8d74SJaiprakash Singh 	if (a <= 2)
408*4b8b8d74SJaiprakash Singh 		return 0x82c000007050ll + 0x1000000000ll * ((a) & 0x3);
409*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_ANB_NCBORX_STATUS", 1, a, 0, 0, 0, 0, 0);
410*4b8b8d74SJaiprakash Singh }
411*4b8b8d74SJaiprakash Singh 
412*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_ANB_NCBORX_STATUS(a) ody_xcpx_anb_ncborx_status_t
413*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_ANB_NCBORX_STATUS(a) CSR_TYPE_NCB
414*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_ANB_NCBORX_STATUS(a) "XCPX_ANB_NCBORX_STATUS"
415*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_ANB_NCBORX_STATUS(a) 0x0 /* PF_BAR0 */
416*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_ANB_NCBORX_STATUS(a) (a)
417*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_ANB_NCBORX_STATUS(a) (a), -1, -1, -1
418*4b8b8d74SJaiprakash Singh 
419*4b8b8d74SJaiprakash Singh /**
420*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_boot_jump
421*4b8b8d74SJaiprakash Singh  *
422*4b8b8d74SJaiprakash Singh  * XCP Boot Jump Register
423*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
424*4b8b8d74SJaiprakash Singh  *
425*4b8b8d74SJaiprakash Singh  * This register is reset on chip reset.
426*4b8b8d74SJaiprakash Singh  */
427*4b8b8d74SJaiprakash Singh union ody_xcpx_boot_jump {
428*4b8b8d74SJaiprakash Singh 	uint32_t u;
429*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_boot_jump_s {
430*4b8b8d74SJaiprakash Singh 		uint32_t addr                        : 32;
431*4b8b8d74SJaiprakash Singh 	} s;
432*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_boot_jump_s cn; */
433*4b8b8d74SJaiprakash Singh };
434*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_boot_jump ody_xcpx_boot_jump_t;
435*4b8b8d74SJaiprakash Singh 
436*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_BOOT_JUMP(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_BOOT_JUMP(uint64_t a)437*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_BOOT_JUMP(uint64_t a)
438*4b8b8d74SJaiprakash Singh {
439*4b8b8d74SJaiprakash Singh 	if (a <= 2)
440*4b8b8d74SJaiprakash Singh 		return 0x82c000000130ll + 0x1000000000ll * ((a) & 0x3);
441*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_BOOT_JUMP", 1, a, 0, 0, 0, 0, 0);
442*4b8b8d74SJaiprakash Singh }
443*4b8b8d74SJaiprakash Singh 
444*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_BOOT_JUMP(a) ody_xcpx_boot_jump_t
445*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_BOOT_JUMP(a) CSR_TYPE_NCB32b
446*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_BOOT_JUMP(a) "XCPX_BOOT_JUMP"
447*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_BOOT_JUMP(a) 0x0 /* PF_BAR0 */
448*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_BOOT_JUMP(a) (a)
449*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_BOOT_JUMP(a) (a), -1, -1, -1
450*4b8b8d74SJaiprakash Singh 
451*4b8b8d74SJaiprakash Singh /**
452*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_bus_err_lint
453*4b8b8d74SJaiprakash Singh  *
454*4b8b8d74SJaiprakash Singh  * XCP Bus error Interrupt Register
455*4b8b8d74SJaiprakash Singh  * This register assert error interrupt for XCP.
456*4b8b8d74SJaiprakash Singh  *
457*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
458*4b8b8d74SJaiprakash Singh  *
459*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
460*4b8b8d74SJaiprakash Singh  */
461*4b8b8d74SJaiprakash Singh union ody_xcpx_bus_err_lint {
462*4b8b8d74SJaiprakash Singh 	uint32_t u;
463*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_bus_err_lint_s {
464*4b8b8d74SJaiprakash Singh 		uint32_t sw_bus_err                  : 1;
465*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_31               : 31;
466*4b8b8d74SJaiprakash Singh 	} s;
467*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_bus_err_lint_s cn; */
468*4b8b8d74SJaiprakash Singh };
469*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_bus_err_lint ody_xcpx_bus_err_lint_t;
470*4b8b8d74SJaiprakash Singh 
471*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_BUS_ERR_LINT(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_BUS_ERR_LINT(uint64_t a)472*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_BUS_ERR_LINT(uint64_t a)
473*4b8b8d74SJaiprakash Singh {
474*4b8b8d74SJaiprakash Singh 	if (a <= 2)
475*4b8b8d74SJaiprakash Singh 		return 0x82c000001c00ll + 0x1000000000ll * ((a) & 0x3);
476*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_BUS_ERR_LINT", 1, a, 0, 0, 0, 0, 0);
477*4b8b8d74SJaiprakash Singh }
478*4b8b8d74SJaiprakash Singh 
479*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_BUS_ERR_LINT(a) ody_xcpx_bus_err_lint_t
480*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_BUS_ERR_LINT(a) CSR_TYPE_NCB32b
481*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_BUS_ERR_LINT(a) "XCPX_BUS_ERR_LINT"
482*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_BUS_ERR_LINT(a) 0x0 /* PF_BAR0 */
483*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_BUS_ERR_LINT(a) (a)
484*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_BUS_ERR_LINT(a) (a), -1, -1, -1
485*4b8b8d74SJaiprakash Singh 
486*4b8b8d74SJaiprakash Singh /**
487*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_bus_err_lint_ena_w1c
488*4b8b8d74SJaiprakash Singh  *
489*4b8b8d74SJaiprakash Singh  * XCP NCB bus error Interrupt Enable Clear Register
490*4b8b8d74SJaiprakash Singh  * This register clears interrupt enable bits.
491*4b8b8d74SJaiprakash Singh  */
492*4b8b8d74SJaiprakash Singh union ody_xcpx_bus_err_lint_ena_w1c {
493*4b8b8d74SJaiprakash Singh 	uint32_t u;
494*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_bus_err_lint_ena_w1c_s {
495*4b8b8d74SJaiprakash Singh 		uint32_t sw_bus_err                  : 1;
496*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_31               : 31;
497*4b8b8d74SJaiprakash Singh 	} s;
498*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_bus_err_lint_ena_w1c_s cn; */
499*4b8b8d74SJaiprakash Singh };
500*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_bus_err_lint_ena_w1c ody_xcpx_bus_err_lint_ena_w1c_t;
501*4b8b8d74SJaiprakash Singh 
502*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_BUS_ERR_LINT_ENA_W1C(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_BUS_ERR_LINT_ENA_W1C(uint64_t a)503*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_BUS_ERR_LINT_ENA_W1C(uint64_t a)
504*4b8b8d74SJaiprakash Singh {
505*4b8b8d74SJaiprakash Singh 	if (a <= 2)
506*4b8b8d74SJaiprakash Singh 		return 0x82c000001cc0ll + 0x1000000000ll * ((a) & 0x3);
507*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_BUS_ERR_LINT_ENA_W1C", 1, a, 0, 0, 0, 0, 0);
508*4b8b8d74SJaiprakash Singh }
509*4b8b8d74SJaiprakash Singh 
510*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_BUS_ERR_LINT_ENA_W1C(a) ody_xcpx_bus_err_lint_ena_w1c_t
511*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_BUS_ERR_LINT_ENA_W1C(a) CSR_TYPE_NCB32b
512*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_BUS_ERR_LINT_ENA_W1C(a) "XCPX_BUS_ERR_LINT_ENA_W1C"
513*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_BUS_ERR_LINT_ENA_W1C(a) 0x0 /* PF_BAR0 */
514*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_BUS_ERR_LINT_ENA_W1C(a) (a)
515*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_BUS_ERR_LINT_ENA_W1C(a) (a), -1, -1, -1
516*4b8b8d74SJaiprakash Singh 
517*4b8b8d74SJaiprakash Singh /**
518*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_bus_err_lint_ena_w1s
519*4b8b8d74SJaiprakash Singh  *
520*4b8b8d74SJaiprakash Singh  * XCP NCB bus error Interrupt Enable Set Register
521*4b8b8d74SJaiprakash Singh  * This register sets interrupt enable bits.
522*4b8b8d74SJaiprakash Singh  */
523*4b8b8d74SJaiprakash Singh union ody_xcpx_bus_err_lint_ena_w1s {
524*4b8b8d74SJaiprakash Singh 	uint32_t u;
525*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_bus_err_lint_ena_w1s_s {
526*4b8b8d74SJaiprakash Singh 		uint32_t sw_bus_err                  : 1;
527*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_31               : 31;
528*4b8b8d74SJaiprakash Singh 	} s;
529*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_bus_err_lint_ena_w1s_s cn; */
530*4b8b8d74SJaiprakash Singh };
531*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_bus_err_lint_ena_w1s ody_xcpx_bus_err_lint_ena_w1s_t;
532*4b8b8d74SJaiprakash Singh 
533*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_BUS_ERR_LINT_ENA_W1S(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_BUS_ERR_LINT_ENA_W1S(uint64_t a)534*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_BUS_ERR_LINT_ENA_W1S(uint64_t a)
535*4b8b8d74SJaiprakash Singh {
536*4b8b8d74SJaiprakash Singh 	if (a <= 2)
537*4b8b8d74SJaiprakash Singh 		return 0x82c000001ce0ll + 0x1000000000ll * ((a) & 0x3);
538*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_BUS_ERR_LINT_ENA_W1S", 1, a, 0, 0, 0, 0, 0);
539*4b8b8d74SJaiprakash Singh }
540*4b8b8d74SJaiprakash Singh 
541*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_BUS_ERR_LINT_ENA_W1S(a) ody_xcpx_bus_err_lint_ena_w1s_t
542*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_BUS_ERR_LINT_ENA_W1S(a) CSR_TYPE_NCB32b
543*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_BUS_ERR_LINT_ENA_W1S(a) "XCPX_BUS_ERR_LINT_ENA_W1S"
544*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_BUS_ERR_LINT_ENA_W1S(a) 0x0 /* PF_BAR0 */
545*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_BUS_ERR_LINT_ENA_W1S(a) (a)
546*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_BUS_ERR_LINT_ENA_W1S(a) (a), -1, -1, -1
547*4b8b8d74SJaiprakash Singh 
548*4b8b8d74SJaiprakash Singh /**
549*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_bus_err_lint_w1s
550*4b8b8d74SJaiprakash Singh  *
551*4b8b8d74SJaiprakash Singh  * XCP NCB bus error Interrupt Set Register
552*4b8b8d74SJaiprakash Singh  * This register sets interrupt bits.
553*4b8b8d74SJaiprakash Singh  */
554*4b8b8d74SJaiprakash Singh union ody_xcpx_bus_err_lint_w1s {
555*4b8b8d74SJaiprakash Singh 	uint32_t u;
556*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_bus_err_lint_w1s_s {
557*4b8b8d74SJaiprakash Singh 		uint32_t sw_bus_err                  : 1;
558*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_31               : 31;
559*4b8b8d74SJaiprakash Singh 	} s;
560*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_bus_err_lint_w1s_s cn; */
561*4b8b8d74SJaiprakash Singh };
562*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_bus_err_lint_w1s ody_xcpx_bus_err_lint_w1s_t;
563*4b8b8d74SJaiprakash Singh 
564*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_BUS_ERR_LINT_W1S(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_BUS_ERR_LINT_W1S(uint64_t a)565*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_BUS_ERR_LINT_W1S(uint64_t a)
566*4b8b8d74SJaiprakash Singh {
567*4b8b8d74SJaiprakash Singh 	if (a <= 2)
568*4b8b8d74SJaiprakash Singh 		return 0x82c000001c80ll + 0x1000000000ll * ((a) & 0x3);
569*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_BUS_ERR_LINT_W1S", 1, a, 0, 0, 0, 0, 0);
570*4b8b8d74SJaiprakash Singh }
571*4b8b8d74SJaiprakash Singh 
572*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_BUS_ERR_LINT_W1S(a) ody_xcpx_bus_err_lint_w1s_t
573*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_BUS_ERR_LINT_W1S(a) CSR_TYPE_NCB32b
574*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_BUS_ERR_LINT_W1S(a) "XCPX_BUS_ERR_LINT_W1S"
575*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_BUS_ERR_LINT_W1S(a) 0x0 /* PF_BAR0 */
576*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_BUS_ERR_LINT_W1S(a) (a)
577*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_BUS_ERR_LINT_W1S(a) (a), -1, -1, -1
578*4b8b8d74SJaiprakash Singh 
579*4b8b8d74SJaiprakash Singh /**
580*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_cfg
581*4b8b8d74SJaiprakash Singh  *
582*4b8b8d74SJaiprakash Singh  * XCP Configuration Register
583*4b8b8d74SJaiprakash Singh  * This register contains the configuration bits for XCP.
584*4b8b8d74SJaiprakash Singh  *
585*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
586*4b8b8d74SJaiprakash Singh  *
587*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
588*4b8b8d74SJaiprakash Singh  */
589*4b8b8d74SJaiprakash Singh union ody_xcpx_cfg {
590*4b8b8d74SJaiprakash Singh 	uint32_t u;
591*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_cfg_s {
592*4b8b8d74SJaiprakash Singh 		uint32_t cfgbigend                   : 1;
593*4b8b8d74SJaiprakash Singh 		uint32_t ext_fetch_dis               : 1;
594*4b8b8d74SJaiprakash Singh 		uint32_t reserved_2_7                : 6;
595*4b8b8d74SJaiprakash Singh 		uint32_t ctlppblock                  : 4;
596*4b8b8d74SJaiprakash Singh 		uint32_t chicken_ncb_b64             : 1;
597*4b8b8d74SJaiprakash Singh 		uint32_t reserved_13_31              : 19;
598*4b8b8d74SJaiprakash Singh 	} s;
599*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_cfg_s cn; */
600*4b8b8d74SJaiprakash Singh };
601*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_cfg ody_xcpx_cfg_t;
602*4b8b8d74SJaiprakash Singh 
603*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CFG(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_CFG(uint64_t a)604*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CFG(uint64_t a)
605*4b8b8d74SJaiprakash Singh {
606*4b8b8d74SJaiprakash Singh 	if (a <= 2)
607*4b8b8d74SJaiprakash Singh 		return 0x82c000000200ll + 0x1000000000ll * ((a) & 0x3);
608*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_CFG", 1, a, 0, 0, 0, 0, 0);
609*4b8b8d74SJaiprakash Singh }
610*4b8b8d74SJaiprakash Singh 
611*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_CFG(a) ody_xcpx_cfg_t
612*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_CFG(a) CSR_TYPE_NCB32b
613*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_CFG(a) "XCPX_CFG"
614*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_CFG(a) 0x0 /* PF_BAR0 */
615*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_CFG(a) (a)
616*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_CFG(a) (a), -1, -1, -1
617*4b8b8d74SJaiprakash Singh 
618*4b8b8d74SJaiprakash Singh /**
619*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_clken
620*4b8b8d74SJaiprakash Singh  *
621*4b8b8d74SJaiprakash Singh  * XCP Clock Enable Register
622*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
623*4b8b8d74SJaiprakash Singh  *
624*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
625*4b8b8d74SJaiprakash Singh  */
626*4b8b8d74SJaiprakash Singh union ody_xcpx_clken {
627*4b8b8d74SJaiprakash Singh 	uint32_t u;
628*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_clken_s {
629*4b8b8d74SJaiprakash Singh 		uint32_t clken                       : 1;
630*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_31               : 31;
631*4b8b8d74SJaiprakash Singh 	} s;
632*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_clken_s cn; */
633*4b8b8d74SJaiprakash Singh };
634*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_clken ody_xcpx_clken_t;
635*4b8b8d74SJaiprakash Singh 
636*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CLKEN(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_CLKEN(uint64_t a)637*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CLKEN(uint64_t a)
638*4b8b8d74SJaiprakash Singh {
639*4b8b8d74SJaiprakash Singh 	if (a <= 2)
640*4b8b8d74SJaiprakash Singh 		return 0x82c000000010ll + 0x1000000000ll * ((a) & 0x3);
641*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_CLKEN", 1, a, 0, 0, 0, 0, 0);
642*4b8b8d74SJaiprakash Singh }
643*4b8b8d74SJaiprakash Singh 
644*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_CLKEN(a) ody_xcpx_clken_t
645*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_CLKEN(a) CSR_TYPE_NCB32b
646*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_CLKEN(a) "XCPX_CLKEN"
647*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_CLKEN(a) 0x0 /* PF_BAR0 */
648*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_CLKEN(a) (a)
649*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_CLKEN(a) (a), -1, -1, -1
650*4b8b8d74SJaiprakash Singh 
651*4b8b8d74SJaiprakash Singh /**
652*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_cold_data
653*4b8b8d74SJaiprakash Singh  *
654*4b8b8d74SJaiprakash Singh  * XCP Cold Reset Data Register
655*4b8b8d74SJaiprakash Singh  * Opaque data preserved through XCP and warm resets. Reset on cold reset.  This register is not
656*4b8b8d74SJaiprakash Singh  * reset on trusted-mode changes, so must not contain keys/secrets.
657*4b8b8d74SJaiprakash Singh  *
658*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
659*4b8b8d74SJaiprakash Singh  *
660*4b8b8d74SJaiprakash Singh  * This register is reset on cold reset.
661*4b8b8d74SJaiprakash Singh  */
662*4b8b8d74SJaiprakash Singh union ody_xcpx_cold_data {
663*4b8b8d74SJaiprakash Singh 	uint32_t u;
664*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_cold_data_s {
665*4b8b8d74SJaiprakash Singh 		uint32_t data                        : 31;
666*4b8b8d74SJaiprakash Singh 		uint32_t force_secondary             : 1;
667*4b8b8d74SJaiprakash Singh 	} s;
668*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_cold_data_s cn; */
669*4b8b8d74SJaiprakash Singh };
670*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_cold_data ody_xcpx_cold_data_t;
671*4b8b8d74SJaiprakash Singh 
672*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_COLD_DATA(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_COLD_DATA(uint64_t a)673*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_COLD_DATA(uint64_t a)
674*4b8b8d74SJaiprakash Singh {
675*4b8b8d74SJaiprakash Singh 	if (a <= 2)
676*4b8b8d74SJaiprakash Singh 		return 0x82c0000da000ll + 0x1000000000ll * ((a) & 0x3);
677*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_COLD_DATA", 1, a, 0, 0, 0, 0, 0);
678*4b8b8d74SJaiprakash Singh }
679*4b8b8d74SJaiprakash Singh 
680*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_COLD_DATA(a) ody_xcpx_cold_data_t
681*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_COLD_DATA(a) CSR_TYPE_NCB32b
682*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_COLD_DATA(a) "XCPX_COLD_DATA"
683*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_COLD_DATA(a) 0x0 /* PF_BAR0 */
684*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_COLD_DATA(a) (a)
685*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_COLD_DATA(a) (a), -1, -1, -1
686*4b8b8d74SJaiprakash Singh 
687*4b8b8d74SJaiprakash Singh /**
688*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_cold_sticky_w1s
689*4b8b8d74SJaiprakash Singh  *
690*4b8b8d74SJaiprakash Singh  * XCP Cold Reset sticky W1S Register
691*4b8b8d74SJaiprakash Singh  * Opaque data preserved through XCP and warm resets. Writes of one stay as one until next cold
692*4b8b8d74SJaiprakash Singh  * reset; cannot write zeros.  This register is not reset on trusted-mode changes, so must not
693*4b8b8d74SJaiprakash Singh  * contain keys/secrets.
694*4b8b8d74SJaiprakash Singh  *
695*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
696*4b8b8d74SJaiprakash Singh  *
697*4b8b8d74SJaiprakash Singh  * This register is reset on cold reset.
698*4b8b8d74SJaiprakash Singh  */
699*4b8b8d74SJaiprakash Singh union ody_xcpx_cold_sticky_w1s {
700*4b8b8d74SJaiprakash Singh 	uint32_t u;
701*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_cold_sticky_w1s_s {
702*4b8b8d74SJaiprakash Singh 		uint32_t bl1_sz_inv                  : 6;
703*4b8b8d74SJaiprakash Singh 		uint32_t data                        : 22;
704*4b8b8d74SJaiprakash Singh 		uint32_t boot_rsvd                   : 2;
705*4b8b8d74SJaiprakash Singh 		uint32_t boot_nsec                   : 1;
706*4b8b8d74SJaiprakash Singh 		uint32_t boot_sec                    : 1;
707*4b8b8d74SJaiprakash Singh 	} s;
708*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_cold_sticky_w1s_s cn; */
709*4b8b8d74SJaiprakash Singh };
710*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_cold_sticky_w1s ody_xcpx_cold_sticky_w1s_t;
711*4b8b8d74SJaiprakash Singh 
712*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_COLD_STICKY_W1S(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_COLD_STICKY_W1S(uint64_t a)713*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_COLD_STICKY_W1S(uint64_t a)
714*4b8b8d74SJaiprakash Singh {
715*4b8b8d74SJaiprakash Singh 	if (a <= 2)
716*4b8b8d74SJaiprakash Singh 		return 0x82c0000da040ll + 0x1000000000ll * ((a) & 0x3);
717*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_COLD_STICKY_W1S", 1, a, 0, 0, 0, 0, 0);
718*4b8b8d74SJaiprakash Singh }
719*4b8b8d74SJaiprakash Singh 
720*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_COLD_STICKY_W1S(a) ody_xcpx_cold_sticky_w1s_t
721*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_COLD_STICKY_W1S(a) CSR_TYPE_NCB32b
722*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_COLD_STICKY_W1S(a) "XCPX_COLD_STICKY_W1S"
723*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_COLD_STICKY_W1S(a) 0x0 /* PF_BAR0 */
724*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_COLD_STICKY_W1S(a) (a)
725*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_COLD_STICKY_W1S(a) (a), -1, -1, -1
726*4b8b8d74SJaiprakash Singh 
727*4b8b8d74SJaiprakash Singh /**
728*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_const
729*4b8b8d74SJaiprakash Singh  *
730*4b8b8d74SJaiprakash Singh  * XCP Constants Register
731*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
732*4b8b8d74SJaiprakash Singh  */
733*4b8b8d74SJaiprakash Singh union ody_xcpx_const {
734*4b8b8d74SJaiprakash Singh 	uint32_t u;
735*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_const_s {
736*4b8b8d74SJaiprakash Singh 		uint32_t ncb_wins                    : 4;
737*4b8b8d74SJaiprakash Singh 		uint32_t mrml_wins                   : 4;
738*4b8b8d74SJaiprakash Singh 		uint32_t reserved_8_31               : 24;
739*4b8b8d74SJaiprakash Singh 	} s;
740*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_const_s cn; */
741*4b8b8d74SJaiprakash Singh };
742*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_const ody_xcpx_const_t;
743*4b8b8d74SJaiprakash Singh 
744*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CONST(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_CONST(uint64_t a)745*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CONST(uint64_t a)
746*4b8b8d74SJaiprakash Singh {
747*4b8b8d74SJaiprakash Singh 	if (a <= 2)
748*4b8b8d74SJaiprakash Singh 		return 0x82c000000000ll + 0x1000000000ll * ((a) & 0x3);
749*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_CONST", 1, a, 0, 0, 0, 0, 0);
750*4b8b8d74SJaiprakash Singh }
751*4b8b8d74SJaiprakash Singh 
752*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_CONST(a) ody_xcpx_const_t
753*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_CONST(a) CSR_TYPE_NCB32b
754*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_CONST(a) "XCPX_CONST"
755*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_CONST(a) 0x0 /* PF_BAR0 */
756*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_CONST(a) (a)
757*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_CONST(a) (a), -1, -1, -1
758*4b8b8d74SJaiprakash Singh 
759*4b8b8d74SJaiprakash Singh /**
760*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_core_dcache_status
761*4b8b8d74SJaiprakash Singh  *
762*4b8b8d74SJaiprakash Singh  * XCP Core Data Cache Status Register
763*4b8b8d74SJaiprakash Singh  * This register contains sticky bits of XCP data cache error signaling.
764*4b8b8d74SJaiprakash Singh  *
765*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
766*4b8b8d74SJaiprakash Singh  *
767*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
768*4b8b8d74SJaiprakash Singh  */
769*4b8b8d74SJaiprakash Singh union ody_xcpx_core_dcache_status {
770*4b8b8d74SJaiprakash Singh 	uint32_t u;
771*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_core_dcache_status_s {
772*4b8b8d74SJaiprakash Singh 		uint32_t dcerr                       : 22;
773*4b8b8d74SJaiprakash Singh 		uint32_t reserved_22_23              : 2;
774*4b8b8d74SJaiprakash Singh 		uint32_t dcdet                       : 4;
775*4b8b8d74SJaiprakash Singh 		uint32_t reserved_28_31              : 4;
776*4b8b8d74SJaiprakash Singh 	} s;
777*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_core_dcache_status_s cn; */
778*4b8b8d74SJaiprakash Singh };
779*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_core_dcache_status ody_xcpx_core_dcache_status_t;
780*4b8b8d74SJaiprakash Singh 
781*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CORE_DCACHE_STATUS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_CORE_DCACHE_STATUS(uint64_t a)782*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CORE_DCACHE_STATUS(uint64_t a)
783*4b8b8d74SJaiprakash Singh {
784*4b8b8d74SJaiprakash Singh 	if (a <= 2)
785*4b8b8d74SJaiprakash Singh 		return 0x82c000000180ll + 0x1000000000ll * ((a) & 0x3);
786*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_CORE_DCACHE_STATUS", 1, a, 0, 0, 0, 0, 0);
787*4b8b8d74SJaiprakash Singh }
788*4b8b8d74SJaiprakash Singh 
789*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_CORE_DCACHE_STATUS(a) ody_xcpx_core_dcache_status_t
790*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_CORE_DCACHE_STATUS(a) CSR_TYPE_NCB32b
791*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_CORE_DCACHE_STATUS(a) "XCPX_CORE_DCACHE_STATUS"
792*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_CORE_DCACHE_STATUS(a) 0x0 /* PF_BAR0 */
793*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_CORE_DCACHE_STATUS(a) (a)
794*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_CORE_DCACHE_STATUS(a) (a), -1, -1, -1
795*4b8b8d74SJaiprakash Singh 
796*4b8b8d74SJaiprakash Singh /**
797*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_core_icache_status
798*4b8b8d74SJaiprakash Singh  *
799*4b8b8d74SJaiprakash Singh  * XCP Core Instruction Cache Status Register
800*4b8b8d74SJaiprakash Singh  * This register contains sticky bits of XCP instruction cache error signaling.
801*4b8b8d74SJaiprakash Singh  *
802*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
803*4b8b8d74SJaiprakash Singh  *
804*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
805*4b8b8d74SJaiprakash Singh  */
806*4b8b8d74SJaiprakash Singh union ody_xcpx_core_icache_status {
807*4b8b8d74SJaiprakash Singh 	uint32_t u;
808*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_core_icache_status_s {
809*4b8b8d74SJaiprakash Singh 		uint32_t icerr                       : 22;
810*4b8b8d74SJaiprakash Singh 		uint32_t reserved_22_23              : 2;
811*4b8b8d74SJaiprakash Singh 		uint32_t icdet                       : 4;
812*4b8b8d74SJaiprakash Singh 		uint32_t reserved_28_31              : 4;
813*4b8b8d74SJaiprakash Singh 	} s;
814*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_core_icache_status_s cn; */
815*4b8b8d74SJaiprakash Singh };
816*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_core_icache_status ody_xcpx_core_icache_status_t;
817*4b8b8d74SJaiprakash Singh 
818*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CORE_ICACHE_STATUS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_CORE_ICACHE_STATUS(uint64_t a)819*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CORE_ICACHE_STATUS(uint64_t a)
820*4b8b8d74SJaiprakash Singh {
821*4b8b8d74SJaiprakash Singh 	if (a <= 2)
822*4b8b8d74SJaiprakash Singh 		return 0x82c000000190ll + 0x1000000000ll * ((a) & 0x3);
823*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_CORE_ICACHE_STATUS", 1, a, 0, 0, 0, 0, 0);
824*4b8b8d74SJaiprakash Singh }
825*4b8b8d74SJaiprakash Singh 
826*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_CORE_ICACHE_STATUS(a) ody_xcpx_core_icache_status_t
827*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_CORE_ICACHE_STATUS(a) CSR_TYPE_NCB32b
828*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_CORE_ICACHE_STATUS(a) "XCPX_CORE_ICACHE_STATUS"
829*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_CORE_ICACHE_STATUS(a) 0x0 /* PF_BAR0 */
830*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_CORE_ICACHE_STATUS(a) (a)
831*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_CORE_ICACHE_STATUS(a) (a), -1, -1, -1
832*4b8b8d74SJaiprakash Singh 
833*4b8b8d74SJaiprakash Singh /**
834*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_cwd_lint
835*4b8b8d74SJaiprakash Singh  *
836*4b8b8d74SJaiprakash Singh  * XCP Per-core Watchdog Interrupt Register
837*4b8b8d74SJaiprakash Singh  * Generic timer per XCP watchdog interrupts.
838*4b8b8d74SJaiprakash Singh  *
839*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
840*4b8b8d74SJaiprakash Singh  *
841*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
842*4b8b8d74SJaiprakash Singh  */
843*4b8b8d74SJaiprakash Singh union ody_xcpx_cwd_lint {
844*4b8b8d74SJaiprakash Singh 	uint32_t u;
845*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_cwd_lint_s {
846*4b8b8d74SJaiprakash Singh 		uint32_t wdog_int                    : 1;
847*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_31               : 31;
848*4b8b8d74SJaiprakash Singh 	} s;
849*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_cwd_lint_s cn; */
850*4b8b8d74SJaiprakash Singh };
851*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_cwd_lint ody_xcpx_cwd_lint_t;
852*4b8b8d74SJaiprakash Singh 
853*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CWD_LINT(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_CWD_LINT(uint64_t a)854*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CWD_LINT(uint64_t a)
855*4b8b8d74SJaiprakash Singh {
856*4b8b8d74SJaiprakash Singh 	if (a <= 2)
857*4b8b8d74SJaiprakash Singh 		return 0x82c000040200ll + 0x1000000000ll * ((a) & 0x3);
858*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_CWD_LINT", 1, a, 0, 0, 0, 0, 0);
859*4b8b8d74SJaiprakash Singh }
860*4b8b8d74SJaiprakash Singh 
861*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_CWD_LINT(a) ody_xcpx_cwd_lint_t
862*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_CWD_LINT(a) CSR_TYPE_NCB32b
863*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_CWD_LINT(a) "XCPX_CWD_LINT"
864*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_CWD_LINT(a) 0x0 /* PF_BAR0 */
865*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_CWD_LINT(a) (a)
866*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_CWD_LINT(a) (a), -1, -1, -1
867*4b8b8d74SJaiprakash Singh 
868*4b8b8d74SJaiprakash Singh /**
869*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_cwd_lint_ena_w1c
870*4b8b8d74SJaiprakash Singh  *
871*4b8b8d74SJaiprakash Singh  * XCP Per-core Watchdog Interrupt Enable Clear Register
872*4b8b8d74SJaiprakash Singh  * This register clears interrupt enable bits.
873*4b8b8d74SJaiprakash Singh  */
874*4b8b8d74SJaiprakash Singh union ody_xcpx_cwd_lint_ena_w1c {
875*4b8b8d74SJaiprakash Singh 	uint32_t u;
876*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_cwd_lint_ena_w1c_s {
877*4b8b8d74SJaiprakash Singh 		uint32_t wdog_int                    : 1;
878*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_31               : 31;
879*4b8b8d74SJaiprakash Singh 	} s;
880*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_cwd_lint_ena_w1c_s cn; */
881*4b8b8d74SJaiprakash Singh };
882*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_cwd_lint_ena_w1c ody_xcpx_cwd_lint_ena_w1c_t;
883*4b8b8d74SJaiprakash Singh 
884*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CWD_LINT_ENA_W1C(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_CWD_LINT_ENA_W1C(uint64_t a)885*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CWD_LINT_ENA_W1C(uint64_t a)
886*4b8b8d74SJaiprakash Singh {
887*4b8b8d74SJaiprakash Singh 	if (a <= 2)
888*4b8b8d74SJaiprakash Singh 		return 0x82c000040210ll + 0x1000000000ll * ((a) & 0x3);
889*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_CWD_LINT_ENA_W1C", 1, a, 0, 0, 0, 0, 0);
890*4b8b8d74SJaiprakash Singh }
891*4b8b8d74SJaiprakash Singh 
892*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_CWD_LINT_ENA_W1C(a) ody_xcpx_cwd_lint_ena_w1c_t
893*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_CWD_LINT_ENA_W1C(a) CSR_TYPE_NCB32b
894*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_CWD_LINT_ENA_W1C(a) "XCPX_CWD_LINT_ENA_W1C"
895*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_CWD_LINT_ENA_W1C(a) 0x0 /* PF_BAR0 */
896*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_CWD_LINT_ENA_W1C(a) (a)
897*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_CWD_LINT_ENA_W1C(a) (a), -1, -1, -1
898*4b8b8d74SJaiprakash Singh 
899*4b8b8d74SJaiprakash Singh /**
900*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_cwd_lint_ena_w1s
901*4b8b8d74SJaiprakash Singh  *
902*4b8b8d74SJaiprakash Singh  * XCP Per-core Watchdog Interrupt Enable Set Register
903*4b8b8d74SJaiprakash Singh  * This register sets interrupt enable bits.
904*4b8b8d74SJaiprakash Singh  */
905*4b8b8d74SJaiprakash Singh union ody_xcpx_cwd_lint_ena_w1s {
906*4b8b8d74SJaiprakash Singh 	uint32_t u;
907*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_cwd_lint_ena_w1s_s {
908*4b8b8d74SJaiprakash Singh 		uint32_t wdog_int                    : 1;
909*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_31               : 31;
910*4b8b8d74SJaiprakash Singh 	} s;
911*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_cwd_lint_ena_w1s_s cn; */
912*4b8b8d74SJaiprakash Singh };
913*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_cwd_lint_ena_w1s ody_xcpx_cwd_lint_ena_w1s_t;
914*4b8b8d74SJaiprakash Singh 
915*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CWD_LINT_ENA_W1S(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_CWD_LINT_ENA_W1S(uint64_t a)916*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CWD_LINT_ENA_W1S(uint64_t a)
917*4b8b8d74SJaiprakash Singh {
918*4b8b8d74SJaiprakash Singh 	if (a <= 2)
919*4b8b8d74SJaiprakash Singh 		return 0x82c000040218ll + 0x1000000000ll * ((a) & 0x3);
920*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_CWD_LINT_ENA_W1S", 1, a, 0, 0, 0, 0, 0);
921*4b8b8d74SJaiprakash Singh }
922*4b8b8d74SJaiprakash Singh 
923*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_CWD_LINT_ENA_W1S(a) ody_xcpx_cwd_lint_ena_w1s_t
924*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_CWD_LINT_ENA_W1S(a) CSR_TYPE_NCB32b
925*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_CWD_LINT_ENA_W1S(a) "XCPX_CWD_LINT_ENA_W1S"
926*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_CWD_LINT_ENA_W1S(a) 0x0 /* PF_BAR0 */
927*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_CWD_LINT_ENA_W1S(a) (a)
928*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_CWD_LINT_ENA_W1S(a) (a), -1, -1, -1
929*4b8b8d74SJaiprakash Singh 
930*4b8b8d74SJaiprakash Singh /**
931*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_cwd_lint_w1s
932*4b8b8d74SJaiprakash Singh  *
933*4b8b8d74SJaiprakash Singh  * XCP Per-core Watchdog Interrupt Set Register
934*4b8b8d74SJaiprakash Singh  * This register sets interrupt bits.
935*4b8b8d74SJaiprakash Singh  */
936*4b8b8d74SJaiprakash Singh union ody_xcpx_cwd_lint_w1s {
937*4b8b8d74SJaiprakash Singh 	uint32_t u;
938*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_cwd_lint_w1s_s {
939*4b8b8d74SJaiprakash Singh 		uint32_t wdog_int                    : 1;
940*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_31               : 31;
941*4b8b8d74SJaiprakash Singh 	} s;
942*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_cwd_lint_w1s_s cn; */
943*4b8b8d74SJaiprakash Singh };
944*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_cwd_lint_w1s ody_xcpx_cwd_lint_w1s_t;
945*4b8b8d74SJaiprakash Singh 
946*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CWD_LINT_W1S(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_CWD_LINT_W1S(uint64_t a)947*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CWD_LINT_W1S(uint64_t a)
948*4b8b8d74SJaiprakash Singh {
949*4b8b8d74SJaiprakash Singh 	if (a <= 2)
950*4b8b8d74SJaiprakash Singh 		return 0x82c000040208ll + 0x1000000000ll * ((a) & 0x3);
951*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_CWD_LINT_W1S", 1, a, 0, 0, 0, 0, 0);
952*4b8b8d74SJaiprakash Singh }
953*4b8b8d74SJaiprakash Singh 
954*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_CWD_LINT_W1S(a) ody_xcpx_cwd_lint_w1s_t
955*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_CWD_LINT_W1S(a) CSR_TYPE_NCB32b
956*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_CWD_LINT_W1S(a) "XCPX_CWD_LINT_W1S"
957*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_CWD_LINT_W1S(a) 0x0 /* PF_BAR0 */
958*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_CWD_LINT_W1S(a) (a)
959*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_CWD_LINT_W1S(a) (a), -1, -1, -1
960*4b8b8d74SJaiprakash Singh 
961*4b8b8d74SJaiprakash Singh /**
962*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_cwd_nm_lint
963*4b8b8d74SJaiprakash Singh  *
964*4b8b8d74SJaiprakash Singh  * XCP Per-core Watchdog non-maskable Interrupt Register
965*4b8b8d74SJaiprakash Singh  * Generic timer per XCP watchdog non-maskable interrupts.
966*4b8b8d74SJaiprakash Singh  *
967*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
968*4b8b8d74SJaiprakash Singh  *
969*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
970*4b8b8d74SJaiprakash Singh  */
971*4b8b8d74SJaiprakash Singh union ody_xcpx_cwd_nm_lint {
972*4b8b8d74SJaiprakash Singh 	uint32_t u;
973*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_cwd_nm_lint_s {
974*4b8b8d74SJaiprakash Singh 		uint32_t wdog_int                    : 1;
975*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_31               : 31;
976*4b8b8d74SJaiprakash Singh 	} s;
977*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_cwd_nm_lint_s cn; */
978*4b8b8d74SJaiprakash Singh };
979*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_cwd_nm_lint ody_xcpx_cwd_nm_lint_t;
980*4b8b8d74SJaiprakash Singh 
981*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CWD_NM_LINT(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_CWD_NM_LINT(uint64_t a)982*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CWD_NM_LINT(uint64_t a)
983*4b8b8d74SJaiprakash Singh {
984*4b8b8d74SJaiprakash Singh 	if (a <= 2)
985*4b8b8d74SJaiprakash Singh 		return 0x82c000041200ll + 0x1000000000ll * ((a) & 0x3);
986*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_CWD_NM_LINT", 1, a, 0, 0, 0, 0, 0);
987*4b8b8d74SJaiprakash Singh }
988*4b8b8d74SJaiprakash Singh 
989*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_CWD_NM_LINT(a) ody_xcpx_cwd_nm_lint_t
990*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_CWD_NM_LINT(a) CSR_TYPE_NCB32b
991*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_CWD_NM_LINT(a) "XCPX_CWD_NM_LINT"
992*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_CWD_NM_LINT(a) 0x0 /* PF_BAR0 */
993*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_CWD_NM_LINT(a) (a)
994*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_CWD_NM_LINT(a) (a), -1, -1, -1
995*4b8b8d74SJaiprakash Singh 
996*4b8b8d74SJaiprakash Singh /**
997*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_cwd_nm_lint_w1s
998*4b8b8d74SJaiprakash Singh  *
999*4b8b8d74SJaiprakash Singh  * XCP Per-core Watchdog non-maskable Interrupt Set Register
1000*4b8b8d74SJaiprakash Singh  * This register sets interrupt bits.
1001*4b8b8d74SJaiprakash Singh  */
1002*4b8b8d74SJaiprakash Singh union ody_xcpx_cwd_nm_lint_w1s {
1003*4b8b8d74SJaiprakash Singh 	uint32_t u;
1004*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_cwd_nm_lint_w1s_s {
1005*4b8b8d74SJaiprakash Singh 		uint32_t wdog_int                    : 1;
1006*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_31               : 31;
1007*4b8b8d74SJaiprakash Singh 	} s;
1008*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_cwd_nm_lint_w1s_s cn; */
1009*4b8b8d74SJaiprakash Singh };
1010*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_cwd_nm_lint_w1s ody_xcpx_cwd_nm_lint_w1s_t;
1011*4b8b8d74SJaiprakash Singh 
1012*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CWD_NM_LINT_W1S(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_CWD_NM_LINT_W1S(uint64_t a)1013*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CWD_NM_LINT_W1S(uint64_t a)
1014*4b8b8d74SJaiprakash Singh {
1015*4b8b8d74SJaiprakash Singh 	if (a <= 2)
1016*4b8b8d74SJaiprakash Singh 		return 0x82c000041208ll + 0x1000000000ll * ((a) & 0x3);
1017*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_CWD_NM_LINT_W1S", 1, a, 0, 0, 0, 0, 0);
1018*4b8b8d74SJaiprakash Singh }
1019*4b8b8d74SJaiprakash Singh 
1020*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_CWD_NM_LINT_W1S(a) ody_xcpx_cwd_nm_lint_w1s_t
1021*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_CWD_NM_LINT_W1S(a) CSR_TYPE_NCB32b
1022*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_CWD_NM_LINT_W1S(a) "XCPX_CWD_NM_LINT_W1S"
1023*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_CWD_NM_LINT_W1S(a) 0x0 /* PF_BAR0 */
1024*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_CWD_NM_LINT_W1S(a) (a)
1025*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_CWD_NM_LINT_W1S(a) (a), -1, -1, -1
1026*4b8b8d74SJaiprakash Singh 
1027*4b8b8d74SJaiprakash Singh /**
1028*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_cwd_poke
1029*4b8b8d74SJaiprakash Singh  *
1030*4b8b8d74SJaiprakash Singh  * XCP Per-XCP Watchdog Poke Registers
1031*4b8b8d74SJaiprakash Singh  * Per-core watchdog poke. Writing any value to this register does the following:
1032*4b8b8d74SJaiprakash Singh  * * Clears any pending interrupt generated by the associated watchdog.
1033*4b8b8d74SJaiprakash Singh  * * Resets XCP()_CWD_WDOG[STATE] to 0x0.
1034*4b8b8d74SJaiprakash Singh  * * Sets XCP()_CWD_WDOG[CNT] to (XCP()_CWD_WDOG[LEN] \<\< 8)..
1035*4b8b8d74SJaiprakash Singh  *
1036*4b8b8d74SJaiprakash Singh  * Reading this register returns the associated XCP()_CWD_WDOG register.
1037*4b8b8d74SJaiprakash Singh  *
1038*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
1039*4b8b8d74SJaiprakash Singh  *
1040*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
1041*4b8b8d74SJaiprakash Singh  */
1042*4b8b8d74SJaiprakash Singh union ody_xcpx_cwd_poke {
1043*4b8b8d74SJaiprakash Singh 	uint32_t u;
1044*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_cwd_poke_s {
1045*4b8b8d74SJaiprakash Singh 		uint32_t ign                         : 32;
1046*4b8b8d74SJaiprakash Singh 	} s;
1047*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_cwd_poke_s cn; */
1048*4b8b8d74SJaiprakash Singh };
1049*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_cwd_poke ody_xcpx_cwd_poke_t;
1050*4b8b8d74SJaiprakash Singh 
1051*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CWD_POKE(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_CWD_POKE(uint64_t a)1052*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CWD_POKE(uint64_t a)
1053*4b8b8d74SJaiprakash Singh {
1054*4b8b8d74SJaiprakash Singh 	if (a <= 2)
1055*4b8b8d74SJaiprakash Singh 		return 0x82c00000ee00ll + 0x1000000000ll * ((a) & 0x3);
1056*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_CWD_POKE", 1, a, 0, 0, 0, 0, 0);
1057*4b8b8d74SJaiprakash Singh }
1058*4b8b8d74SJaiprakash Singh 
1059*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_CWD_POKE(a) ody_xcpx_cwd_poke_t
1060*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_CWD_POKE(a) CSR_TYPE_NCB32b
1061*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_CWD_POKE(a) "XCPX_CWD_POKE"
1062*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_CWD_POKE(a) 0x0 /* PF_BAR0 */
1063*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_CWD_POKE(a) (a)
1064*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_CWD_POKE(a) (a), -1, -1, -1
1065*4b8b8d74SJaiprakash Singh 
1066*4b8b8d74SJaiprakash Singh /**
1067*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_cwd_wdog
1068*4b8b8d74SJaiprakash Singh  *
1069*4b8b8d74SJaiprakash Singh  * XCP Per-XCP Watchdog Registers
1070*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
1071*4b8b8d74SJaiprakash Singh  *
1072*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
1073*4b8b8d74SJaiprakash Singh  */
1074*4b8b8d74SJaiprakash Singh union ody_xcpx_cwd_wdog {
1075*4b8b8d74SJaiprakash Singh 	uint32_t u;
1076*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_cwd_wdog_s {
1077*4b8b8d74SJaiprakash Singh 		uint32_t mode                        : 2;
1078*4b8b8d74SJaiprakash Singh 		uint32_t state                       : 2;
1079*4b8b8d74SJaiprakash Singh 		uint32_t len                         : 9;
1080*4b8b8d74SJaiprakash Singh 		uint32_t cnt                         : 17;
1081*4b8b8d74SJaiprakash Singh 		uint32_t dstop                       : 1;
1082*4b8b8d74SJaiprakash Singh 		uint32_t gstop                       : 1;
1083*4b8b8d74SJaiprakash Singh 	} s;
1084*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_cwd_wdog_s cn; */
1085*4b8b8d74SJaiprakash Singh };
1086*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_cwd_wdog ody_xcpx_cwd_wdog_t;
1087*4b8b8d74SJaiprakash Singh 
1088*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CWD_WDOG(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_CWD_WDOG(uint64_t a)1089*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_CWD_WDOG(uint64_t a)
1090*4b8b8d74SJaiprakash Singh {
1091*4b8b8d74SJaiprakash Singh 	if (a <= 2)
1092*4b8b8d74SJaiprakash Singh 		return 0x82c00000ee80ll + 0x1000000000ll * ((a) & 0x3);
1093*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_CWD_WDOG", 1, a, 0, 0, 0, 0, 0);
1094*4b8b8d74SJaiprakash Singh }
1095*4b8b8d74SJaiprakash Singh 
1096*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_CWD_WDOG(a) ody_xcpx_cwd_wdog_t
1097*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_CWD_WDOG(a) CSR_TYPE_NCB32b
1098*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_CWD_WDOG(a) "XCPX_CWD_WDOG"
1099*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_CWD_WDOG(a) 0x0 /* PF_BAR0 */
1100*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_CWD_WDOG(a) (a)
1101*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_CWD_WDOG(a) (a), -1, -1, -1
1102*4b8b8d74SJaiprakash Singh 
1103*4b8b8d74SJaiprakash Singh /**
1104*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_dev#_xcp_mbox
1105*4b8b8d74SJaiprakash Singh  *
1106*4b8b8d74SJaiprakash Singh  * XCP DEV-to-XCP Mailbox Data Registers
1107*4b8b8d74SJaiprakash Singh  * This register is the mailbox register for other devices to interrupt XCP
1108*4b8b8d74SJaiprakash Singh  * See XCP_MBOX_DEV_E for device enumeration.
1109*4b8b8d74SJaiprakash Singh  * For XCP-to-AP interrupts see instead XCP()_XCP_DEV()_MBOX.
1110*4b8b8d74SJaiprakash Singh  *
1111*4b8b8d74SJaiprakash Singh  * This register is only accessible to device driving this mailbox reg and the requestor(s)
1112*4b8b8d74SJaiprakash Singh  * permitted with CPC_XCP()_PERMIT.
1113*4b8b8d74SJaiprakash Singh  *
1114*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
1115*4b8b8d74SJaiprakash Singh  */
1116*4b8b8d74SJaiprakash Singh union ody_xcpx_devx_xcp_mbox {
1117*4b8b8d74SJaiprakash Singh 	uint32_t u;
1118*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_devx_xcp_mbox_s {
1119*4b8b8d74SJaiprakash Singh 		uint32_t data                        : 32;
1120*4b8b8d74SJaiprakash Singh 	} s;
1121*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_devx_xcp_mbox_s cn; */
1122*4b8b8d74SJaiprakash Singh };
1123*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_devx_xcp_mbox ody_xcpx_devx_xcp_mbox_t;
1124*4b8b8d74SJaiprakash Singh 
1125*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_DEVX_XCP_MBOX(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_DEVX_XCP_MBOX(uint64_t a,uint64_t b)1126*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_DEVX_XCP_MBOX(uint64_t a, uint64_t b)
1127*4b8b8d74SJaiprakash Singh {
1128*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b <= 61))
1129*4b8b8d74SJaiprakash Singh 		return 0x82c0000e1000ll + 0x1000000000ll * ((a) & 0x3) + 0x10ll * ((b) & 0x3f);
1130*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_DEVX_XCP_MBOX", 2, a, b, 0, 0, 0, 0);
1131*4b8b8d74SJaiprakash Singh }
1132*4b8b8d74SJaiprakash Singh 
1133*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_DEVX_XCP_MBOX(a, b) ody_xcpx_devx_xcp_mbox_t
1134*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_DEVX_XCP_MBOX(a, b) CSR_TYPE_NCB32b
1135*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_DEVX_XCP_MBOX(a, b) "XCPX_DEVX_XCP_MBOX"
1136*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_DEVX_XCP_MBOX(a, b) 0x0 /* PF_BAR0 */
1137*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_DEVX_XCP_MBOX(a, b) (a)
1138*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_DEVX_XCP_MBOX(a, b) (a), (b), -1, -1
1139*4b8b8d74SJaiprakash Singh 
1140*4b8b8d74SJaiprakash Singh /**
1141*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_dev#_xcp_mbox_lint
1142*4b8b8d74SJaiprakash Singh  *
1143*4b8b8d74SJaiprakash Singh  * XCP DEV-to-XCP Mailbox Interrupt Register
1144*4b8b8d74SJaiprakash Singh  * This register contains mailbox interrupt for Devs to XCP core transactions.
1145*4b8b8d74SJaiprakash Singh  *
1146*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
1147*4b8b8d74SJaiprakash Singh  *
1148*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
1149*4b8b8d74SJaiprakash Singh  */
1150*4b8b8d74SJaiprakash Singh union ody_xcpx_devx_xcp_mbox_lint {
1151*4b8b8d74SJaiprakash Singh 	uint32_t u;
1152*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_devx_xcp_mbox_lint_s {
1153*4b8b8d74SJaiprakash Singh 		uint32_t intr                        : 1;
1154*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_31               : 31;
1155*4b8b8d74SJaiprakash Singh 	} s;
1156*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_devx_xcp_mbox_lint_s cn; */
1157*4b8b8d74SJaiprakash Singh };
1158*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_devx_xcp_mbox_lint ody_xcpx_devx_xcp_mbox_lint_t;
1159*4b8b8d74SJaiprakash Singh 
1160*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_DEVX_XCP_MBOX_LINT(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_DEVX_XCP_MBOX_LINT(uint64_t a,uint64_t b)1161*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_DEVX_XCP_MBOX_LINT(uint64_t a, uint64_t b)
1162*4b8b8d74SJaiprakash Singh {
1163*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b <= 61))
1164*4b8b8d74SJaiprakash Singh 		return 0x82c0000e2000ll + 0x1000000000ll * ((a) & 0x3) + 0x10ll * ((b) & 0x3f);
1165*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_DEVX_XCP_MBOX_LINT", 2, a, b, 0, 0, 0, 0);
1166*4b8b8d74SJaiprakash Singh }
1167*4b8b8d74SJaiprakash Singh 
1168*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_DEVX_XCP_MBOX_LINT(a, b) ody_xcpx_devx_xcp_mbox_lint_t
1169*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_DEVX_XCP_MBOX_LINT(a, b) CSR_TYPE_NCB32b
1170*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_DEVX_XCP_MBOX_LINT(a, b) "XCPX_DEVX_XCP_MBOX_LINT"
1171*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_DEVX_XCP_MBOX_LINT(a, b) 0x0 /* PF_BAR0 */
1172*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_DEVX_XCP_MBOX_LINT(a, b) (a)
1173*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_DEVX_XCP_MBOX_LINT(a, b) (a), (b), -1, -1
1174*4b8b8d74SJaiprakash Singh 
1175*4b8b8d74SJaiprakash Singh /**
1176*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_dev#_xcp_mbox_lint_ena_w1c
1177*4b8b8d74SJaiprakash Singh  *
1178*4b8b8d74SJaiprakash Singh  * XCP DEV-to-XCP Mailbox Interrupt Enable Clear Register
1179*4b8b8d74SJaiprakash Singh  * This register clears interrupt enable bits.
1180*4b8b8d74SJaiprakash Singh  */
1181*4b8b8d74SJaiprakash Singh union ody_xcpx_devx_xcp_mbox_lint_ena_w1c {
1182*4b8b8d74SJaiprakash Singh 	uint32_t u;
1183*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_devx_xcp_mbox_lint_ena_w1c_s {
1184*4b8b8d74SJaiprakash Singh 		uint32_t intr                        : 1;
1185*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_31               : 31;
1186*4b8b8d74SJaiprakash Singh 	} s;
1187*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_devx_xcp_mbox_lint_ena_w1c_s cn; */
1188*4b8b8d74SJaiprakash Singh };
1189*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_devx_xcp_mbox_lint_ena_w1c ody_xcpx_devx_xcp_mbox_lint_ena_w1c_t;
1190*4b8b8d74SJaiprakash Singh 
1191*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_DEVX_XCP_MBOX_LINT_ENA_W1C(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_DEVX_XCP_MBOX_LINT_ENA_W1C(uint64_t a,uint64_t b)1192*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_DEVX_XCP_MBOX_LINT_ENA_W1C(uint64_t a, uint64_t b)
1193*4b8b8d74SJaiprakash Singh {
1194*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b <= 61))
1195*4b8b8d74SJaiprakash Singh 		return 0x82c0000e2c00ll + 0x1000000000ll * ((a) & 0x3) + 0x10ll * ((b) & 0x3f);
1196*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_DEVX_XCP_MBOX_LINT_ENA_W1C", 2, a, b, 0, 0, 0, 0);
1197*4b8b8d74SJaiprakash Singh }
1198*4b8b8d74SJaiprakash Singh 
1199*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_DEVX_XCP_MBOX_LINT_ENA_W1C(a, b) ody_xcpx_devx_xcp_mbox_lint_ena_w1c_t
1200*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_DEVX_XCP_MBOX_LINT_ENA_W1C(a, b) CSR_TYPE_NCB32b
1201*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_DEVX_XCP_MBOX_LINT_ENA_W1C(a, b) "XCPX_DEVX_XCP_MBOX_LINT_ENA_W1C"
1202*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_DEVX_XCP_MBOX_LINT_ENA_W1C(a, b) 0x0 /* PF_BAR0 */
1203*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_DEVX_XCP_MBOX_LINT_ENA_W1C(a, b) (a)
1204*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_DEVX_XCP_MBOX_LINT_ENA_W1C(a, b) (a), (b), -1, -1
1205*4b8b8d74SJaiprakash Singh 
1206*4b8b8d74SJaiprakash Singh /**
1207*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_dev#_xcp_mbox_lint_ena_w1s
1208*4b8b8d74SJaiprakash Singh  *
1209*4b8b8d74SJaiprakash Singh  * XCP DEV-to-XCP Mailbox Interrupt Enable Set Register
1210*4b8b8d74SJaiprakash Singh  * This register sets interrupt enable bits.
1211*4b8b8d74SJaiprakash Singh  */
1212*4b8b8d74SJaiprakash Singh union ody_xcpx_devx_xcp_mbox_lint_ena_w1s {
1213*4b8b8d74SJaiprakash Singh 	uint32_t u;
1214*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_devx_xcp_mbox_lint_ena_w1s_s {
1215*4b8b8d74SJaiprakash Singh 		uint32_t intr                        : 1;
1216*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_31               : 31;
1217*4b8b8d74SJaiprakash Singh 	} s;
1218*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_devx_xcp_mbox_lint_ena_w1s_s cn; */
1219*4b8b8d74SJaiprakash Singh };
1220*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_devx_xcp_mbox_lint_ena_w1s ody_xcpx_devx_xcp_mbox_lint_ena_w1s_t;
1221*4b8b8d74SJaiprakash Singh 
1222*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_DEVX_XCP_MBOX_LINT_ENA_W1S(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_DEVX_XCP_MBOX_LINT_ENA_W1S(uint64_t a,uint64_t b)1223*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_DEVX_XCP_MBOX_LINT_ENA_W1S(uint64_t a, uint64_t b)
1224*4b8b8d74SJaiprakash Singh {
1225*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b <= 61))
1226*4b8b8d74SJaiprakash Singh 		return 0x82c0000e2800ll + 0x1000000000ll * ((a) & 0x3) + 0x10ll * ((b) & 0x3f);
1227*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_DEVX_XCP_MBOX_LINT_ENA_W1S", 2, a, b, 0, 0, 0, 0);
1228*4b8b8d74SJaiprakash Singh }
1229*4b8b8d74SJaiprakash Singh 
1230*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_DEVX_XCP_MBOX_LINT_ENA_W1S(a, b) ody_xcpx_devx_xcp_mbox_lint_ena_w1s_t
1231*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_DEVX_XCP_MBOX_LINT_ENA_W1S(a, b) CSR_TYPE_NCB32b
1232*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_DEVX_XCP_MBOX_LINT_ENA_W1S(a, b) "XCPX_DEVX_XCP_MBOX_LINT_ENA_W1S"
1233*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_DEVX_XCP_MBOX_LINT_ENA_W1S(a, b) 0x0 /* PF_BAR0 */
1234*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_DEVX_XCP_MBOX_LINT_ENA_W1S(a, b) (a)
1235*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_DEVX_XCP_MBOX_LINT_ENA_W1S(a, b) (a), (b), -1, -1
1236*4b8b8d74SJaiprakash Singh 
1237*4b8b8d74SJaiprakash Singh /**
1238*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_dev#_xcp_mbox_lint_w1s
1239*4b8b8d74SJaiprakash Singh  *
1240*4b8b8d74SJaiprakash Singh  * XCP AP-to-XCP Mailbox Interrupt Set Register
1241*4b8b8d74SJaiprakash Singh  * This register sets interrupt bits.
1242*4b8b8d74SJaiprakash Singh  */
1243*4b8b8d74SJaiprakash Singh union ody_xcpx_devx_xcp_mbox_lint_w1s {
1244*4b8b8d74SJaiprakash Singh 	uint32_t u;
1245*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_devx_xcp_mbox_lint_w1s_s {
1246*4b8b8d74SJaiprakash Singh 		uint32_t intr                        : 1;
1247*4b8b8d74SJaiprakash Singh 		uint32_t reserved_1_31               : 31;
1248*4b8b8d74SJaiprakash Singh 	} s;
1249*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_devx_xcp_mbox_lint_w1s_s cn; */
1250*4b8b8d74SJaiprakash Singh };
1251*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_devx_xcp_mbox_lint_w1s ody_xcpx_devx_xcp_mbox_lint_w1s_t;
1252*4b8b8d74SJaiprakash Singh 
1253*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_DEVX_XCP_MBOX_LINT_W1S(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_DEVX_XCP_MBOX_LINT_W1S(uint64_t a,uint64_t b)1254*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_DEVX_XCP_MBOX_LINT_W1S(uint64_t a, uint64_t b)
1255*4b8b8d74SJaiprakash Singh {
1256*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b <= 61))
1257*4b8b8d74SJaiprakash Singh 		return 0x82c0000e2400ll + 0x1000000000ll * ((a) & 0x3) + 0x10ll * ((b) & 0x3f);
1258*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_DEVX_XCP_MBOX_LINT_W1S", 2, a, b, 0, 0, 0, 0);
1259*4b8b8d74SJaiprakash Singh }
1260*4b8b8d74SJaiprakash Singh 
1261*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_DEVX_XCP_MBOX_LINT_W1S(a, b) ody_xcpx_devx_xcp_mbox_lint_w1s_t
1262*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_DEVX_XCP_MBOX_LINT_W1S(a, b) CSR_TYPE_NCB32b
1263*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_DEVX_XCP_MBOX_LINT_W1S(a, b) "XCPX_DEVX_XCP_MBOX_LINT_W1S"
1264*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_DEVX_XCP_MBOX_LINT_W1S(a, b) 0x0 /* PF_BAR0 */
1265*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_DEVX_XCP_MBOX_LINT_W1S(a, b) (a)
1266*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_DEVX_XCP_MBOX_LINT_W1S(a, b) (a), (b), -1, -1
1267*4b8b8d74SJaiprakash Singh 
1268*4b8b8d74SJaiprakash Singh /**
1269*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_gib#_lint
1270*4b8b8d74SJaiprakash Singh  *
1271*4b8b8d74SJaiprakash Singh  * XCP GIB Interrupt Register
1272*4b8b8d74SJaiprakash Singh  * This register contains GIB interrupt for XCP.
1273*4b8b8d74SJaiprakash Singh  *
1274*4b8b8d74SJaiprakash Singh  * This register and XCP()_GIB()_LINT_W1S are only accessible to the requestor(s)
1275*4b8b8d74SJaiprakash Singh  * permitted with CPC_XCP()_GIB()_LINT_PERMIT, or by a MSI-X/GIB interrupt message write.
1276*4b8b8d74SJaiprakash Singh  *
1277*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
1278*4b8b8d74SJaiprakash Singh  */
1279*4b8b8d74SJaiprakash Singh union ody_xcpx_gibx_lint {
1280*4b8b8d74SJaiprakash Singh 	uint32_t u;
1281*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_gibx_lint_s {
1282*4b8b8d74SJaiprakash Singh 		uint32_t gib_int                     : 32;
1283*4b8b8d74SJaiprakash Singh 	} s;
1284*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_gibx_lint_s cn; */
1285*4b8b8d74SJaiprakash Singh };
1286*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_gibx_lint ody_xcpx_gibx_lint_t;
1287*4b8b8d74SJaiprakash Singh 
1288*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_GIBX_LINT(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_GIBX_LINT(uint64_t a,uint64_t b)1289*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_GIBX_LINT(uint64_t a, uint64_t b)
1290*4b8b8d74SJaiprakash Singh {
1291*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b <= 2))
1292*4b8b8d74SJaiprakash Singh 		return 0x82c000000c00ll + 0x1000000000ll * ((a) & 0x3) + 0x10ll * ((b) & 0x3);
1293*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_GIBX_LINT", 2, a, b, 0, 0, 0, 0);
1294*4b8b8d74SJaiprakash Singh }
1295*4b8b8d74SJaiprakash Singh 
1296*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_GIBX_LINT(a, b) ody_xcpx_gibx_lint_t
1297*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_GIBX_LINT(a, b) CSR_TYPE_NCB32b
1298*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_GIBX_LINT(a, b) "XCPX_GIBX_LINT"
1299*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_GIBX_LINT(a, b) 0x0 /* PF_BAR0 */
1300*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_GIBX_LINT(a, b) (a)
1301*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_GIBX_LINT(a, b) (a), (b), -1, -1
1302*4b8b8d74SJaiprakash Singh 
1303*4b8b8d74SJaiprakash Singh /**
1304*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_gib#_lint_devid
1305*4b8b8d74SJaiprakash Singh  *
1306*4b8b8d74SJaiprakash Singh  * XCP GIB Interrupt Device ID Register
1307*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
1308*4b8b8d74SJaiprakash Singh  *
1309*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
1310*4b8b8d74SJaiprakash Singh  */
1311*4b8b8d74SJaiprakash Singh union ody_xcpx_gibx_lint_devid {
1312*4b8b8d74SJaiprakash Singh 	uint32_t u;
1313*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_gibx_lint_devid_s {
1314*4b8b8d74SJaiprakash Singh 		uint32_t devid                       : 22;
1315*4b8b8d74SJaiprakash Singh 		uint32_t reserved_22_29              : 8;
1316*4b8b8d74SJaiprakash Singh 		uint32_t ovfl                        : 1;
1317*4b8b8d74SJaiprakash Singh 		uint32_t valid                       : 1;
1318*4b8b8d74SJaiprakash Singh 	} s;
1319*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_gibx_lint_devid_s cn; */
1320*4b8b8d74SJaiprakash Singh };
1321*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_gibx_lint_devid ody_xcpx_gibx_lint_devid_t;
1322*4b8b8d74SJaiprakash Singh 
1323*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_GIBX_LINT_DEVID(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_GIBX_LINT_DEVID(uint64_t a,uint64_t b)1324*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_GIBX_LINT_DEVID(uint64_t a, uint64_t b)
1325*4b8b8d74SJaiprakash Singh {
1326*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b <= 2))
1327*4b8b8d74SJaiprakash Singh 		return 0x82c000000dc0ll + 0x1000000000ll * ((a) & 0x3) + 0x10ll * ((b) & 0x3);
1328*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_GIBX_LINT_DEVID", 2, a, b, 0, 0, 0, 0);
1329*4b8b8d74SJaiprakash Singh }
1330*4b8b8d74SJaiprakash Singh 
1331*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_GIBX_LINT_DEVID(a, b) ody_xcpx_gibx_lint_devid_t
1332*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_GIBX_LINT_DEVID(a, b) CSR_TYPE_NCB32b
1333*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_GIBX_LINT_DEVID(a, b) "XCPX_GIBX_LINT_DEVID"
1334*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_GIBX_LINT_DEVID(a, b) 0x0 /* PF_BAR0 */
1335*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_GIBX_LINT_DEVID(a, b) (a)
1336*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_GIBX_LINT_DEVID(a, b) (a), (b), -1, -1
1337*4b8b8d74SJaiprakash Singh 
1338*4b8b8d74SJaiprakash Singh /**
1339*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_gib#_lint_ena_w1c
1340*4b8b8d74SJaiprakash Singh  *
1341*4b8b8d74SJaiprakash Singh  * XCP GIB Interrupt Enable Clear Register
1342*4b8b8d74SJaiprakash Singh  * This register clears interrupt enable bits.
1343*4b8b8d74SJaiprakash Singh  */
1344*4b8b8d74SJaiprakash Singh union ody_xcpx_gibx_lint_ena_w1c {
1345*4b8b8d74SJaiprakash Singh 	uint32_t u;
1346*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_gibx_lint_ena_w1c_s {
1347*4b8b8d74SJaiprakash Singh 		uint32_t gib_int                     : 32;
1348*4b8b8d74SJaiprakash Singh 	} s;
1349*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_gibx_lint_ena_w1c_s cn; */
1350*4b8b8d74SJaiprakash Singh };
1351*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_gibx_lint_ena_w1c ody_xcpx_gibx_lint_ena_w1c_t;
1352*4b8b8d74SJaiprakash Singh 
1353*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_GIBX_LINT_ENA_W1C(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_GIBX_LINT_ENA_W1C(uint64_t a,uint64_t b)1354*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_GIBX_LINT_ENA_W1C(uint64_t a, uint64_t b)
1355*4b8b8d74SJaiprakash Singh {
1356*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b <= 2))
1357*4b8b8d74SJaiprakash Singh 		return 0x82c000000cc0ll + 0x1000000000ll * ((a) & 0x3) + 0x10ll * ((b) & 0x3);
1358*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_GIBX_LINT_ENA_W1C", 2, a, b, 0, 0, 0, 0);
1359*4b8b8d74SJaiprakash Singh }
1360*4b8b8d74SJaiprakash Singh 
1361*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_GIBX_LINT_ENA_W1C(a, b) ody_xcpx_gibx_lint_ena_w1c_t
1362*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_GIBX_LINT_ENA_W1C(a, b) CSR_TYPE_NCB32b
1363*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_GIBX_LINT_ENA_W1C(a, b) "XCPX_GIBX_LINT_ENA_W1C"
1364*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_GIBX_LINT_ENA_W1C(a, b) 0x0 /* PF_BAR0 */
1365*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_GIBX_LINT_ENA_W1C(a, b) (a)
1366*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_GIBX_LINT_ENA_W1C(a, b) (a), (b), -1, -1
1367*4b8b8d74SJaiprakash Singh 
1368*4b8b8d74SJaiprakash Singh /**
1369*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_gib#_lint_ena_w1s
1370*4b8b8d74SJaiprakash Singh  *
1371*4b8b8d74SJaiprakash Singh  * XCP GIB Interrupt Enable Set Register
1372*4b8b8d74SJaiprakash Singh  * This register sets interrupt enable bits.
1373*4b8b8d74SJaiprakash Singh  */
1374*4b8b8d74SJaiprakash Singh union ody_xcpx_gibx_lint_ena_w1s {
1375*4b8b8d74SJaiprakash Singh 	uint32_t u;
1376*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_gibx_lint_ena_w1s_s {
1377*4b8b8d74SJaiprakash Singh 		uint32_t gib_int                     : 32;
1378*4b8b8d74SJaiprakash Singh 	} s;
1379*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_gibx_lint_ena_w1s_s cn; */
1380*4b8b8d74SJaiprakash Singh };
1381*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_gibx_lint_ena_w1s ody_xcpx_gibx_lint_ena_w1s_t;
1382*4b8b8d74SJaiprakash Singh 
1383*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_GIBX_LINT_ENA_W1S(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_GIBX_LINT_ENA_W1S(uint64_t a,uint64_t b)1384*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_GIBX_LINT_ENA_W1S(uint64_t a, uint64_t b)
1385*4b8b8d74SJaiprakash Singh {
1386*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b <= 2))
1387*4b8b8d74SJaiprakash Singh 		return 0x82c000000c40ll + 0x1000000000ll * ((a) & 0x3) + 0x10ll * ((b) & 0x3);
1388*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_GIBX_LINT_ENA_W1S", 2, a, b, 0, 0, 0, 0);
1389*4b8b8d74SJaiprakash Singh }
1390*4b8b8d74SJaiprakash Singh 
1391*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_GIBX_LINT_ENA_W1S(a, b) ody_xcpx_gibx_lint_ena_w1s_t
1392*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_GIBX_LINT_ENA_W1S(a, b) CSR_TYPE_NCB32b
1393*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_GIBX_LINT_ENA_W1S(a, b) "XCPX_GIBX_LINT_ENA_W1S"
1394*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_GIBX_LINT_ENA_W1S(a, b) 0x0 /* PF_BAR0 */
1395*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_GIBX_LINT_ENA_W1S(a, b) (a)
1396*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_GIBX_LINT_ENA_W1S(a, b) (a), (b), -1, -1
1397*4b8b8d74SJaiprakash Singh 
1398*4b8b8d74SJaiprakash Singh /**
1399*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_gib#_lint_w1s
1400*4b8b8d74SJaiprakash Singh  *
1401*4b8b8d74SJaiprakash Singh  * XCP GIB Interrupt Set Register
1402*4b8b8d74SJaiprakash Singh  * This register sets interrupt bits.
1403*4b8b8d74SJaiprakash Singh  */
1404*4b8b8d74SJaiprakash Singh union ody_xcpx_gibx_lint_w1s {
1405*4b8b8d74SJaiprakash Singh 	uint32_t u;
1406*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_gibx_lint_w1s_s {
1407*4b8b8d74SJaiprakash Singh 		uint32_t gib_int                     : 32;
1408*4b8b8d74SJaiprakash Singh 	} s;
1409*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_gibx_lint_w1s_s cn; */
1410*4b8b8d74SJaiprakash Singh };
1411*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_gibx_lint_w1s ody_xcpx_gibx_lint_w1s_t;
1412*4b8b8d74SJaiprakash Singh 
1413*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_GIBX_LINT_W1S(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_GIBX_LINT_W1S(uint64_t a,uint64_t b)1414*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_GIBX_LINT_W1S(uint64_t a, uint64_t b)
1415*4b8b8d74SJaiprakash Singh {
1416*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b <= 2))
1417*4b8b8d74SJaiprakash Singh 		return 0x82c000000c80ll + 0x1000000000ll * ((a) & 0x3) + 0x10ll * ((b) & 0x3);
1418*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_GIBX_LINT_W1S", 2, a, b, 0, 0, 0, 0);
1419*4b8b8d74SJaiprakash Singh }
1420*4b8b8d74SJaiprakash Singh 
1421*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_GIBX_LINT_W1S(a, b) ody_xcpx_gibx_lint_w1s_t
1422*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_GIBX_LINT_W1S(a, b) CSR_TYPE_NCB32b
1423*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_GIBX_LINT_W1S(a, b) "XCPX_GIBX_LINT_W1S"
1424*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_GIBX_LINT_W1S(a, b) 0x0 /* PF_BAR0 */
1425*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_GIBX_LINT_W1S(a, b) (a)
1426*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_GIBX_LINT_W1S(a, b) (a), (b), -1, -1
1427*4b8b8d74SJaiprakash Singh 
1428*4b8b8d74SJaiprakash Singh /**
1429*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_id
1430*4b8b8d74SJaiprakash Singh  *
1431*4b8b8d74SJaiprakash Singh  * XCP Identefication Register
1432*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
1433*4b8b8d74SJaiprakash Singh  *
1434*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
1435*4b8b8d74SJaiprakash Singh  */
1436*4b8b8d74SJaiprakash Singh union ody_xcpx_id {
1437*4b8b8d74SJaiprakash Singh 	uint32_t u;
1438*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_id_s {
1439*4b8b8d74SJaiprakash Singh 		uint32_t id                          : 2;
1440*4b8b8d74SJaiprakash Singh 		uint32_t reserved_2_31               : 30;
1441*4b8b8d74SJaiprakash Singh 	} s;
1442*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_id_s cn; */
1443*4b8b8d74SJaiprakash Singh };
1444*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_id ody_xcpx_id_t;
1445*4b8b8d74SJaiprakash Singh 
1446*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_ID(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_ID(uint64_t a)1447*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_ID(uint64_t a)
1448*4b8b8d74SJaiprakash Singh {
1449*4b8b8d74SJaiprakash Singh 	if (a <= 2)
1450*4b8b8d74SJaiprakash Singh 		return 0x82c000000020ll + 0x1000000000ll * ((a) & 0x3);
1451*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_ID", 1, a, 0, 0, 0, 0, 0);
1452*4b8b8d74SJaiprakash Singh }
1453*4b8b8d74SJaiprakash Singh 
1454*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_ID(a) ody_xcpx_id_t
1455*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_ID(a) CSR_TYPE_NCB32b
1456*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_ID(a) "XCPX_ID"
1457*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_ID(a) 0x0 /* PF_BAR0 */
1458*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_ID(a) (a)
1459*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_ID(a) (a), -1, -1, -1
1460*4b8b8d74SJaiprakash Singh 
1461*4b8b8d74SJaiprakash Singh /**
1462*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_initvtor
1463*4b8b8d74SJaiprakash Singh  *
1464*4b8b8d74SJaiprakash Singh  * XCP CM7 Init Vector Table Offeset Register
1465*4b8b8d74SJaiprakash Singh  * This register contains the configuration bits for the CM7 INITVTOR input port.
1466*4b8b8d74SJaiprakash Singh  *
1467*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
1468*4b8b8d74SJaiprakash Singh  *
1469*4b8b8d74SJaiprakash Singh  * This register is reset on chip reset.
1470*4b8b8d74SJaiprakash Singh  */
1471*4b8b8d74SJaiprakash Singh union ody_xcpx_initvtor {
1472*4b8b8d74SJaiprakash Singh 	uint32_t u;
1473*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_initvtor_s {
1474*4b8b8d74SJaiprakash Singh 		uint32_t reserved_0_6                : 7;
1475*4b8b8d74SJaiprakash Singh 		uint32_t initvtor                    : 25;
1476*4b8b8d74SJaiprakash Singh 	} s;
1477*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_initvtor_s cn; */
1478*4b8b8d74SJaiprakash Singh };
1479*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_initvtor ody_xcpx_initvtor_t;
1480*4b8b8d74SJaiprakash Singh 
1481*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_INITVTOR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_INITVTOR(uint64_t a)1482*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_INITVTOR(uint64_t a)
1483*4b8b8d74SJaiprakash Singh {
1484*4b8b8d74SJaiprakash Singh 	if (a <= 2)
1485*4b8b8d74SJaiprakash Singh 		return 0x82c000000230ll + 0x1000000000ll * ((a) & 0x3);
1486*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_INITVTOR", 1, a, 0, 0, 0, 0, 0);
1487*4b8b8d74SJaiprakash Singh }
1488*4b8b8d74SJaiprakash Singh 
1489*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_INITVTOR(a) ody_xcpx_initvtor_t
1490*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_INITVTOR(a) CSR_TYPE_NCB32b
1491*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_INITVTOR(a) "XCPX_INITVTOR"
1492*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_INITVTOR(a) 0x0 /* PF_BAR0 */
1493*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_INITVTOR(a) (a)
1494*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_INITVTOR(a) (a), -1, -1, -1
1495*4b8b8d74SJaiprakash Singh 
1496*4b8b8d74SJaiprakash Singh /**
1497*4b8b8d74SJaiprakash Singh  * Register (NCB) xcp#_lint0_summary
1498*4b8b8d74SJaiprakash Singh  *
1499*4b8b8d74SJaiprakash Singh  * XCP Interrupt Summary Register 0
1500*4b8b8d74SJaiprakash Singh  * This register is the local interrupt summary register 0 for the XCP CPU core.
1501*4b8b8d74SJaiprakash Singh  *
1502*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
1503*4b8b8d74SJaiprakash Singh  *
1504*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
1505*4b8b8d74SJaiprakash Singh  */
1506*4b8b8d74SJaiprakash Singh union ody_xcpx_lint0_summary {
1507*4b8b8d74SJaiprakash Singh 	uint64_t u;
1508*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_lint0_summary_s {
1509*4b8b8d74SJaiprakash Singh 		uint64_t gib                         : 3;
1510*4b8b8d74SJaiprakash Singh 		uint64_t reserved_3_14               : 12;
1511*4b8b8d74SJaiprakash Singh 		uint64_t bus_err                     : 1;
1512*4b8b8d74SJaiprakash Singh 		uint64_t reserved_16_17              : 2;
1513*4b8b8d74SJaiprakash Singh 		uint64_t wdog_mi                     : 1;
1514*4b8b8d74SJaiprakash Singh 		uint64_t wdog_nmi                    : 1;
1515*4b8b8d74SJaiprakash Singh 		uint64_t reserved_20_63              : 44;
1516*4b8b8d74SJaiprakash Singh 	} s;
1517*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_lint0_summary_s cn; */
1518*4b8b8d74SJaiprakash Singh };
1519*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_lint0_summary ody_xcpx_lint0_summary_t;
1520*4b8b8d74SJaiprakash Singh 
1521*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_LINT0_SUMMARY(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_LINT0_SUMMARY(uint64_t a)1522*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_LINT0_SUMMARY(uint64_t a)
1523*4b8b8d74SJaiprakash Singh {
1524*4b8b8d74SJaiprakash Singh 	if (a <= 2)
1525*4b8b8d74SJaiprakash Singh 		return 0x82c0000e0000ll + 0x1000000000ll * ((a) & 0x3);
1526*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_LINT0_SUMMARY", 1, a, 0, 0, 0, 0, 0);
1527*4b8b8d74SJaiprakash Singh }
1528*4b8b8d74SJaiprakash Singh 
1529*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_LINT0_SUMMARY(a) ody_xcpx_lint0_summary_t
1530*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_LINT0_SUMMARY(a) CSR_TYPE_NCB
1531*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_LINT0_SUMMARY(a) "XCPX_LINT0_SUMMARY"
1532*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_LINT0_SUMMARY(a) 0x0 /* PF_BAR0 */
1533*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_LINT0_SUMMARY(a) (a)
1534*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_LINT0_SUMMARY(a) (a), -1, -1, -1
1535*4b8b8d74SJaiprakash Singh 
1536*4b8b8d74SJaiprakash Singh /**
1537*4b8b8d74SJaiprakash Singh  * Register (NCB) xcp#_lint1_summary
1538*4b8b8d74SJaiprakash Singh  *
1539*4b8b8d74SJaiprakash Singh  * XCP Interrupt Summary Register 1
1540*4b8b8d74SJaiprakash Singh  * This register is the local interrupt summary register 1 for the XCP CPU core.
1541*4b8b8d74SJaiprakash Singh  *
1542*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
1543*4b8b8d74SJaiprakash Singh  *
1544*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
1545*4b8b8d74SJaiprakash Singh  */
1546*4b8b8d74SJaiprakash Singh union ody_xcpx_lint1_summary {
1547*4b8b8d74SJaiprakash Singh 	uint64_t u;
1548*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_lint1_summary_s {
1549*4b8b8d74SJaiprakash Singh 		uint64_t mbox                        : 62;
1550*4b8b8d74SJaiprakash Singh 		uint64_t reserved_62_63              : 2;
1551*4b8b8d74SJaiprakash Singh 	} s;
1552*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_lint1_summary_s cn; */
1553*4b8b8d74SJaiprakash Singh };
1554*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_lint1_summary ody_xcpx_lint1_summary_t;
1555*4b8b8d74SJaiprakash Singh 
1556*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_LINT1_SUMMARY(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_LINT1_SUMMARY(uint64_t a)1557*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_LINT1_SUMMARY(uint64_t a)
1558*4b8b8d74SJaiprakash Singh {
1559*4b8b8d74SJaiprakash Singh 	if (a <= 2)
1560*4b8b8d74SJaiprakash Singh 		return 0x82c0000e0008ll + 0x1000000000ll * ((a) & 0x3);
1561*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_LINT1_SUMMARY", 1, a, 0, 0, 0, 0, 0);
1562*4b8b8d74SJaiprakash Singh }
1563*4b8b8d74SJaiprakash Singh 
1564*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_LINT1_SUMMARY(a) ody_xcpx_lint1_summary_t
1565*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_LINT1_SUMMARY(a) CSR_TYPE_NCB
1566*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_LINT1_SUMMARY(a) "XCPX_LINT1_SUMMARY"
1567*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_LINT1_SUMMARY(a) 0x0 /* PF_BAR0 */
1568*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_LINT1_SUMMARY(a) (a)
1569*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_LINT1_SUMMARY(a) (a), -1, -1, -1
1570*4b8b8d74SJaiprakash Singh 
1571*4b8b8d74SJaiprakash Singh /**
1572*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_mrml_64rd
1573*4b8b8d74SJaiprakash Singh  *
1574*4b8b8d74SJaiprakash Singh  * XCP MRML 64-bit Read Save/Restore Register
1575*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
1576*4b8b8d74SJaiprakash Singh  *
1577*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset, and cannot be accessed during XCP domain reset.
1578*4b8b8d74SJaiprakash Singh  */
1579*4b8b8d74SJaiprakash Singh union ody_xcpx_mrml_64rd {
1580*4b8b8d74SJaiprakash Singh 	uint32_t u;
1581*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_mrml_64rd_s {
1582*4b8b8d74SJaiprakash Singh 		uint32_t rd_data                     : 32;
1583*4b8b8d74SJaiprakash Singh 	} s;
1584*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_mrml_64rd_s cn; */
1585*4b8b8d74SJaiprakash Singh };
1586*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_mrml_64rd ody_xcpx_mrml_64rd_t;
1587*4b8b8d74SJaiprakash Singh 
1588*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_MRML_64RD(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_MRML_64RD(uint64_t a)1589*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_MRML_64RD(uint64_t a)
1590*4b8b8d74SJaiprakash Singh {
1591*4b8b8d74SJaiprakash Singh 	if (a <= 2)
1592*4b8b8d74SJaiprakash Singh 		return 0x82c000000110ll + 0x1000000000ll * ((a) & 0x3);
1593*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_MRML_64RD", 1, a, 0, 0, 0, 0, 0);
1594*4b8b8d74SJaiprakash Singh }
1595*4b8b8d74SJaiprakash Singh 
1596*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_MRML_64RD(a) ody_xcpx_mrml_64rd_t
1597*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_MRML_64RD(a) CSR_TYPE_NCB32b
1598*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_MRML_64RD(a) "XCPX_MRML_64RD"
1599*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_MRML_64RD(a) 0x0 /* PF_BAR0 */
1600*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_MRML_64RD(a) (a)
1601*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_MRML_64RD(a) (a), -1, -1, -1
1602*4b8b8d74SJaiprakash Singh 
1603*4b8b8d74SJaiprakash Singh /**
1604*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_mrml_64wr
1605*4b8b8d74SJaiprakash Singh  *
1606*4b8b8d74SJaiprakash Singh  * XCP MRML 64-bit Write Save/Restore Register
1607*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
1608*4b8b8d74SJaiprakash Singh  *
1609*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset, and cannot be accessed during XCP domain reset.
1610*4b8b8d74SJaiprakash Singh  */
1611*4b8b8d74SJaiprakash Singh union ody_xcpx_mrml_64wr {
1612*4b8b8d74SJaiprakash Singh 	uint32_t u;
1613*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_mrml_64wr_s {
1614*4b8b8d74SJaiprakash Singh 		uint32_t wr_data                     : 32;
1615*4b8b8d74SJaiprakash Singh 	} s;
1616*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_mrml_64wr_s cn; */
1617*4b8b8d74SJaiprakash Singh };
1618*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_mrml_64wr ody_xcpx_mrml_64wr_t;
1619*4b8b8d74SJaiprakash Singh 
1620*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_MRML_64WR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_MRML_64WR(uint64_t a)1621*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_MRML_64WR(uint64_t a)
1622*4b8b8d74SJaiprakash Singh {
1623*4b8b8d74SJaiprakash Singh 	if (a <= 2)
1624*4b8b8d74SJaiprakash Singh 		return 0x82c000000120ll + 0x1000000000ll * ((a) & 0x3);
1625*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_MRML_64WR", 1, a, 0, 0, 0, 0, 0);
1626*4b8b8d74SJaiprakash Singh }
1627*4b8b8d74SJaiprakash Singh 
1628*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_MRML_64WR(a) ody_xcpx_mrml_64wr_t
1629*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_MRML_64WR(a) CSR_TYPE_NCB32b
1630*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_MRML_64WR(a) "XCPX_MRML_64WR"
1631*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_MRML_64WR(a) 0x0 /* PF_BAR0 */
1632*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_MRML_64WR(a) (a)
1633*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_MRML_64WR(a) (a), -1, -1, -1
1634*4b8b8d74SJaiprakash Singh 
1635*4b8b8d74SJaiprakash Singh /**
1636*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_mrml_win#_addr
1637*4b8b8d74SJaiprakash Singh  *
1638*4b8b8d74SJaiprakash Singh  * XCP RML Window Address Register
1639*4b8b8d74SJaiprakash Singh  * This register contains the upper address bits for the XCP core RML access windows.
1640*4b8b8d74SJaiprakash Singh  *
1641*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
1642*4b8b8d74SJaiprakash Singh  *
1643*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
1644*4b8b8d74SJaiprakash Singh  */
1645*4b8b8d74SJaiprakash Singh union ody_xcpx_mrml_winx_addr {
1646*4b8b8d74SJaiprakash Singh 	uint32_t u;
1647*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_mrml_winx_addr_s {
1648*4b8b8d74SJaiprakash Singh 		uint32_t addr                        : 24;
1649*4b8b8d74SJaiprakash Singh 		uint32_t reserved_24_31              : 8;
1650*4b8b8d74SJaiprakash Singh 	} s;
1651*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_mrml_winx_addr_s cn; */
1652*4b8b8d74SJaiprakash Singh };
1653*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_mrml_winx_addr ody_xcpx_mrml_winx_addr_t;
1654*4b8b8d74SJaiprakash Singh 
1655*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_MRML_WINX_ADDR(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_MRML_WINX_ADDR(uint64_t a,uint64_t b)1656*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_MRML_WINX_ADDR(uint64_t a, uint64_t b)
1657*4b8b8d74SJaiprakash Singh {
1658*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b <= 3))
1659*4b8b8d74SJaiprakash Singh 		return 0x82c000000800ll + 0x1000000000ll * ((a) & 0x3) + 0x10ll * ((b) & 0x3);
1660*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_MRML_WINX_ADDR", 2, a, b, 0, 0, 0, 0);
1661*4b8b8d74SJaiprakash Singh }
1662*4b8b8d74SJaiprakash Singh 
1663*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_MRML_WINX_ADDR(a, b) ody_xcpx_mrml_winx_addr_t
1664*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_MRML_WINX_ADDR(a, b) CSR_TYPE_NCB32b
1665*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_MRML_WINX_ADDR(a, b) "XCPX_MRML_WINX_ADDR"
1666*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_MRML_WINX_ADDR(a, b) 0x0 /* PF_BAR0 */
1667*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_MRML_WINX_ADDR(a, b) (a)
1668*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_MRML_WINX_ADDR(a, b) (a), (b), -1, -1
1669*4b8b8d74SJaiprakash Singh 
1670*4b8b8d74SJaiprakash Singh /**
1671*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_mrml_win#_cfg
1672*4b8b8d74SJaiprakash Singh  *
1673*4b8b8d74SJaiprakash Singh  * XCP RML Window Configuration Register
1674*4b8b8d74SJaiprakash Singh  * This register contains the control bits for the XCP core RML access windows.
1675*4b8b8d74SJaiprakash Singh  *
1676*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
1677*4b8b8d74SJaiprakash Singh  *
1678*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
1679*4b8b8d74SJaiprakash Singh  */
1680*4b8b8d74SJaiprakash Singh union ody_xcpx_mrml_winx_cfg {
1681*4b8b8d74SJaiprakash Singh 	uint32_t u;
1682*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_mrml_winx_cfg_s {
1683*4b8b8d74SJaiprakash Singh 		uint32_t reserved_0_2                : 3;
1684*4b8b8d74SJaiprakash Singh 		uint32_t secure                      : 2;
1685*4b8b8d74SJaiprakash Singh 		uint32_t b64                         : 1;
1686*4b8b8d74SJaiprakash Singh 		uint32_t reserved_6_31               : 26;
1687*4b8b8d74SJaiprakash Singh 	} s;
1688*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_mrml_winx_cfg_s cn; */
1689*4b8b8d74SJaiprakash Singh };
1690*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_mrml_winx_cfg ody_xcpx_mrml_winx_cfg_t;
1691*4b8b8d74SJaiprakash Singh 
1692*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_MRML_WINX_CFG(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_MRML_WINX_CFG(uint64_t a,uint64_t b)1693*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_MRML_WINX_CFG(uint64_t a, uint64_t b)
1694*4b8b8d74SJaiprakash Singh {
1695*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b <= 3))
1696*4b8b8d74SJaiprakash Singh 		return 0x82c000000700ll + 0x1000000000ll * ((a) & 0x3) + 0x10ll * ((b) & 0x3);
1697*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_MRML_WINX_CFG", 2, a, b, 0, 0, 0, 0);
1698*4b8b8d74SJaiprakash Singh }
1699*4b8b8d74SJaiprakash Singh 
1700*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_MRML_WINX_CFG(a, b) ody_xcpx_mrml_winx_cfg_t
1701*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_MRML_WINX_CFG(a, b) CSR_TYPE_NCB32b
1702*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_MRML_WINX_CFG(a, b) "XCPX_MRML_WINX_CFG"
1703*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_MRML_WINX_CFG(a, b) 0x0 /* PF_BAR0 */
1704*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_MRML_WINX_CFG(a, b) (a)
1705*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_MRML_WINX_CFG(a, b) (a), (b), -1, -1
1706*4b8b8d74SJaiprakash Singh 
1707*4b8b8d74SJaiprakash Singh /**
1708*4b8b8d74SJaiprakash Singh  * Register (NCB) xcp#_msix_pba#
1709*4b8b8d74SJaiprakash Singh  *
1710*4b8b8d74SJaiprakash Singh  * XCP MSI-X Pending Bit Array Registers
1711*4b8b8d74SJaiprakash Singh  * This register is the MSI-X PBA table; the bit number is indexed by the XCP_INT_VEC_E enumeration.
1712*4b8b8d74SJaiprakash Singh  *
1713*4b8b8d74SJaiprakash Singh  * This register is reset on chip reset.
1714*4b8b8d74SJaiprakash Singh  */
1715*4b8b8d74SJaiprakash Singh union ody_xcpx_msix_pbax {
1716*4b8b8d74SJaiprakash Singh 	uint64_t u;
1717*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_msix_pbax_s {
1718*4b8b8d74SJaiprakash Singh 		uint64_t pend                        : 64;
1719*4b8b8d74SJaiprakash Singh 	} s;
1720*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_msix_pbax_s cn; */
1721*4b8b8d74SJaiprakash Singh };
1722*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_msix_pbax ody_xcpx_msix_pbax_t;
1723*4b8b8d74SJaiprakash Singh 
1724*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_MSIX_PBAX(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_MSIX_PBAX(uint64_t a,uint64_t b)1725*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_MSIX_PBAX(uint64_t a, uint64_t b)
1726*4b8b8d74SJaiprakash Singh {
1727*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b == 0))
1728*4b8b8d74SJaiprakash Singh 		return 0x82c0001f0000ll + 0x1000000000ll * ((a) & 0x3);
1729*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_MSIX_PBAX", 2, a, b, 0, 0, 0, 0);
1730*4b8b8d74SJaiprakash Singh }
1731*4b8b8d74SJaiprakash Singh 
1732*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_MSIX_PBAX(a, b) ody_xcpx_msix_pbax_t
1733*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_MSIX_PBAX(a, b) CSR_TYPE_NCB
1734*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_MSIX_PBAX(a, b) "XCPX_MSIX_PBAX"
1735*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_MSIX_PBAX(a, b) 0x4 /* PF_BAR4 */
1736*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_MSIX_PBAX(a, b) (a)
1737*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_MSIX_PBAX(a, b) (a), (b), -1, -1
1738*4b8b8d74SJaiprakash Singh 
1739*4b8b8d74SJaiprakash Singh /**
1740*4b8b8d74SJaiprakash Singh  * Register (NCB) xcp#_msix_vec#_addr
1741*4b8b8d74SJaiprakash Singh  *
1742*4b8b8d74SJaiprakash Singh  * XCP MSI-X Vector-Table Address Register
1743*4b8b8d74SJaiprakash Singh  * This register is the MSI-X vector table, indexed by the XCP_INT_VEC_E enumeration.
1744*4b8b8d74SJaiprakash Singh  *
1745*4b8b8d74SJaiprakash Singh  * This register is reset on chip reset.
1746*4b8b8d74SJaiprakash Singh  */
1747*4b8b8d74SJaiprakash Singh union ody_xcpx_msix_vecx_addr {
1748*4b8b8d74SJaiprakash Singh 	uint64_t u;
1749*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_msix_vecx_addr_s {
1750*4b8b8d74SJaiprakash Singh 		uint64_t secvec                      : 1;
1751*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1                  : 1;
1752*4b8b8d74SJaiprakash Singh 		uint64_t addr                        : 51;
1753*4b8b8d74SJaiprakash Singh 		uint64_t reserved_53_63              : 11;
1754*4b8b8d74SJaiprakash Singh 	} s;
1755*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_msix_vecx_addr_s cn; */
1756*4b8b8d74SJaiprakash Singh };
1757*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_msix_vecx_addr ody_xcpx_msix_vecx_addr_t;
1758*4b8b8d74SJaiprakash Singh 
1759*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_MSIX_VECX_ADDR(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_MSIX_VECX_ADDR(uint64_t a,uint64_t b)1760*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_MSIX_VECX_ADDR(uint64_t a, uint64_t b)
1761*4b8b8d74SJaiprakash Singh {
1762*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b <= 55))
1763*4b8b8d74SJaiprakash Singh 		return 0x82c000100000ll + 0x1000000000ll * ((a) & 0x3) + 0x10ll * ((b) & 0x3f);
1764*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_MSIX_VECX_ADDR", 2, a, b, 0, 0, 0, 0);
1765*4b8b8d74SJaiprakash Singh }
1766*4b8b8d74SJaiprakash Singh 
1767*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_MSIX_VECX_ADDR(a, b) ody_xcpx_msix_vecx_addr_t
1768*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_MSIX_VECX_ADDR(a, b) CSR_TYPE_NCB
1769*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_MSIX_VECX_ADDR(a, b) "XCPX_MSIX_VECX_ADDR"
1770*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_MSIX_VECX_ADDR(a, b) 0x4 /* PF_BAR4 */
1771*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_MSIX_VECX_ADDR(a, b) (a)
1772*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_MSIX_VECX_ADDR(a, b) (a), (b), -1, -1
1773*4b8b8d74SJaiprakash Singh 
1774*4b8b8d74SJaiprakash Singh /**
1775*4b8b8d74SJaiprakash Singh  * Register (NCB) xcp#_msix_vec#_ctl
1776*4b8b8d74SJaiprakash Singh  *
1777*4b8b8d74SJaiprakash Singh  * XCP MSI-X Vector-Table Control and Data Register
1778*4b8b8d74SJaiprakash Singh  * This register is the MSI-X vector table, indexed by the XCP_INT_VEC_E enumeration
1779*4b8b8d74SJaiprakash Singh  *
1780*4b8b8d74SJaiprakash Singh  * This register is reset on chip reset.
1781*4b8b8d74SJaiprakash Singh  */
1782*4b8b8d74SJaiprakash Singh union ody_xcpx_msix_vecx_ctl {
1783*4b8b8d74SJaiprakash Singh 	uint64_t u;
1784*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_msix_vecx_ctl_s {
1785*4b8b8d74SJaiprakash Singh 		uint64_t data                        : 32;
1786*4b8b8d74SJaiprakash Singh 		uint64_t mask                        : 1;
1787*4b8b8d74SJaiprakash Singh 		uint64_t reserved_33_63              : 31;
1788*4b8b8d74SJaiprakash Singh 	} s;
1789*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_msix_vecx_ctl_s cn; */
1790*4b8b8d74SJaiprakash Singh };
1791*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_msix_vecx_ctl ody_xcpx_msix_vecx_ctl_t;
1792*4b8b8d74SJaiprakash Singh 
1793*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_MSIX_VECX_CTL(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_MSIX_VECX_CTL(uint64_t a,uint64_t b)1794*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_MSIX_VECX_CTL(uint64_t a, uint64_t b)
1795*4b8b8d74SJaiprakash Singh {
1796*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b <= 55))
1797*4b8b8d74SJaiprakash Singh 		return 0x82c000100008ll + 0x1000000000ll * ((a) & 0x3) + 0x10ll * ((b) & 0x3f);
1798*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_MSIX_VECX_CTL", 2, a, b, 0, 0, 0, 0);
1799*4b8b8d74SJaiprakash Singh }
1800*4b8b8d74SJaiprakash Singh 
1801*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_MSIX_VECX_CTL(a, b) ody_xcpx_msix_vecx_ctl_t
1802*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_MSIX_VECX_CTL(a, b) CSR_TYPE_NCB
1803*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_MSIX_VECX_CTL(a, b) "XCPX_MSIX_VECX_CTL"
1804*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_MSIX_VECX_CTL(a, b) 0x4 /* PF_BAR4 */
1805*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_MSIX_VECX_CTL(a, b) (a)
1806*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_MSIX_VECX_CTL(a, b) (a), (b), -1, -1
1807*4b8b8d74SJaiprakash Singh 
1808*4b8b8d74SJaiprakash Singh /**
1809*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_ncb_64rd
1810*4b8b8d74SJaiprakash Singh  *
1811*4b8b8d74SJaiprakash Singh  * XCP NCB 64-bit Read Save/Restore Register
1812*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
1813*4b8b8d74SJaiprakash Singh  *
1814*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
1815*4b8b8d74SJaiprakash Singh  */
1816*4b8b8d74SJaiprakash Singh union ody_xcpx_ncb_64rd {
1817*4b8b8d74SJaiprakash Singh 	uint32_t u;
1818*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_ncb_64rd_s {
1819*4b8b8d74SJaiprakash Singh 		uint32_t rd_data                     : 32;
1820*4b8b8d74SJaiprakash Singh 	} s;
1821*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_ncb_64rd_s cn; */
1822*4b8b8d74SJaiprakash Singh };
1823*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_ncb_64rd ody_xcpx_ncb_64rd_t;
1824*4b8b8d74SJaiprakash Singh 
1825*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_NCB_64RD(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_NCB_64RD(uint64_t a)1826*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_NCB_64RD(uint64_t a)
1827*4b8b8d74SJaiprakash Singh {
1828*4b8b8d74SJaiprakash Singh 	if (a <= 2)
1829*4b8b8d74SJaiprakash Singh 		return 0x82c000000140ll + 0x1000000000ll * ((a) & 0x3);
1830*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_NCB_64RD", 1, a, 0, 0, 0, 0, 0);
1831*4b8b8d74SJaiprakash Singh }
1832*4b8b8d74SJaiprakash Singh 
1833*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_NCB_64RD(a) ody_xcpx_ncb_64rd_t
1834*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_NCB_64RD(a) CSR_TYPE_NCB32b
1835*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_NCB_64RD(a) "XCPX_NCB_64RD"
1836*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_NCB_64RD(a) 0x0 /* PF_BAR0 */
1837*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_NCB_64RD(a) (a)
1838*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_NCB_64RD(a) (a), -1, -1, -1
1839*4b8b8d74SJaiprakash Singh 
1840*4b8b8d74SJaiprakash Singh /**
1841*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_ncb_win#_addr
1842*4b8b8d74SJaiprakash Singh  *
1843*4b8b8d74SJaiprakash Singh  * XCP NCB Window Address Register
1844*4b8b8d74SJaiprakash Singh  * This register contains the upper address bits for the XCP core NCB access windows.
1845*4b8b8d74SJaiprakash Singh  *
1846*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
1847*4b8b8d74SJaiprakash Singh  *
1848*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
1849*4b8b8d74SJaiprakash Singh  *
1850*4b8b8d74SJaiprakash Singh  * The windows should not have overlapping address spaces if caching is enabled.
1851*4b8b8d74SJaiprakash Singh  */
1852*4b8b8d74SJaiprakash Singh union ody_xcpx_ncb_winx_addr {
1853*4b8b8d74SJaiprakash Singh 	uint32_t u;
1854*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_ncb_winx_addr_s {
1855*4b8b8d74SJaiprakash Singh 		uint32_t addr                        : 29;
1856*4b8b8d74SJaiprakash Singh 		uint32_t reserved_29_31              : 3;
1857*4b8b8d74SJaiprakash Singh 	} s;
1858*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_ncb_winx_addr_s cn; */
1859*4b8b8d74SJaiprakash Singh };
1860*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_ncb_winx_addr ody_xcpx_ncb_winx_addr_t;
1861*4b8b8d74SJaiprakash Singh 
1862*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_NCB_WINX_ADDR(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_NCB_WINX_ADDR(uint64_t a,uint64_t b)1863*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_NCB_WINX_ADDR(uint64_t a, uint64_t b)
1864*4b8b8d74SJaiprakash Singh {
1865*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b <= 3))
1866*4b8b8d74SJaiprakash Singh 		return 0x82c000000400ll + 0x1000000000ll * ((a) & 0x3) + 0x10ll * ((b) & 0x3);
1867*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_NCB_WINX_ADDR", 2, a, b, 0, 0, 0, 0);
1868*4b8b8d74SJaiprakash Singh }
1869*4b8b8d74SJaiprakash Singh 
1870*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_NCB_WINX_ADDR(a, b) ody_xcpx_ncb_winx_addr_t
1871*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_NCB_WINX_ADDR(a, b) CSR_TYPE_NCB32b
1872*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_NCB_WINX_ADDR(a, b) "XCPX_NCB_WINX_ADDR"
1873*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_NCB_WINX_ADDR(a, b) 0x0 /* PF_BAR0 */
1874*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_NCB_WINX_ADDR(a, b) (a)
1875*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_NCB_WINX_ADDR(a, b) (a), (b), -1, -1
1876*4b8b8d74SJaiprakash Singh 
1877*4b8b8d74SJaiprakash Singh /**
1878*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_ncb_win#_cfg
1879*4b8b8d74SJaiprakash Singh  *
1880*4b8b8d74SJaiprakash Singh  * XCP NCB Window Configuration Register
1881*4b8b8d74SJaiprakash Singh  * This register contains the control bits for the XCP core NCB access windows.
1882*4b8b8d74SJaiprakash Singh  *
1883*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
1884*4b8b8d74SJaiprakash Singh  *
1885*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
1886*4b8b8d74SJaiprakash Singh  */
1887*4b8b8d74SJaiprakash Singh union ody_xcpx_ncb_winx_cfg {
1888*4b8b8d74SJaiprakash Singh 	uint32_t u;
1889*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_ncb_winx_cfg_s {
1890*4b8b8d74SJaiprakash Singh 		uint32_t cacheable                   : 2;
1891*4b8b8d74SJaiprakash Singh 		uint32_t phys                        : 1;
1892*4b8b8d74SJaiprakash Singh 		uint32_t secure                      : 2;
1893*4b8b8d74SJaiprakash Singh 		uint32_t b64                         : 1;
1894*4b8b8d74SJaiprakash Singh 		uint32_t reserved_6_31               : 26;
1895*4b8b8d74SJaiprakash Singh 	} s;
1896*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_ncb_winx_cfg_s cn; */
1897*4b8b8d74SJaiprakash Singh };
1898*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_ncb_winx_cfg ody_xcpx_ncb_winx_cfg_t;
1899*4b8b8d74SJaiprakash Singh 
1900*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_NCB_WINX_CFG(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_NCB_WINX_CFG(uint64_t a,uint64_t b)1901*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_NCB_WINX_CFG(uint64_t a, uint64_t b)
1902*4b8b8d74SJaiprakash Singh {
1903*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b <= 3))
1904*4b8b8d74SJaiprakash Singh 		return 0x82c000000300ll + 0x1000000000ll * ((a) & 0x3) + 0x10ll * ((b) & 0x3);
1905*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_NCB_WINX_CFG", 2, a, b, 0, 0, 0, 0);
1906*4b8b8d74SJaiprakash Singh }
1907*4b8b8d74SJaiprakash Singh 
1908*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_NCB_WINX_CFG(a, b) ody_xcpx_ncb_winx_cfg_t
1909*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_NCB_WINX_CFG(a, b) CSR_TYPE_NCB32b
1910*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_NCB_WINX_CFG(a, b) "XCPX_NCB_WINX_CFG"
1911*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_NCB_WINX_CFG(a, b) 0x0 /* PF_BAR0 */
1912*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_NCB_WINX_CFG(a, b) (a)
1913*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_NCB_WINX_CFG(a, b) (a), (b), -1, -1
1914*4b8b8d74SJaiprakash Singh 
1915*4b8b8d74SJaiprakash Singh /**
1916*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_precise_bus_err_addr
1917*4b8b8d74SJaiprakash Singh  *
1918*4b8b8d74SJaiprakash Singh  * XCP Precise Bus Error Address Register
1919*4b8b8d74SJaiprakash Singh  * This register contains the address of the precise data bus interface error for XCP.
1920*4b8b8d74SJaiprakash Singh  *
1921*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
1922*4b8b8d74SJaiprakash Singh  */
1923*4b8b8d74SJaiprakash Singh union ody_xcpx_precise_bus_err_addr {
1924*4b8b8d74SJaiprakash Singh 	uint32_t u;
1925*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_precise_bus_err_addr_s {
1926*4b8b8d74SJaiprakash Singh 		uint32_t addr                        : 32;
1927*4b8b8d74SJaiprakash Singh 	} s;
1928*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_precise_bus_err_addr_s cn; */
1929*4b8b8d74SJaiprakash Singh };
1930*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_precise_bus_err_addr ody_xcpx_precise_bus_err_addr_t;
1931*4b8b8d74SJaiprakash Singh 
1932*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_PRECISE_BUS_ERR_ADDR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_PRECISE_BUS_ERR_ADDR(uint64_t a)1933*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_PRECISE_BUS_ERR_ADDR(uint64_t a)
1934*4b8b8d74SJaiprakash Singh {
1935*4b8b8d74SJaiprakash Singh 	if (a <= 2)
1936*4b8b8d74SJaiprakash Singh 		return 0x82c000001d00ll + 0x1000000000ll * ((a) & 0x3);
1937*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_PRECISE_BUS_ERR_ADDR", 1, a, 0, 0, 0, 0, 0);
1938*4b8b8d74SJaiprakash Singh }
1939*4b8b8d74SJaiprakash Singh 
1940*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_PRECISE_BUS_ERR_ADDR(a) ody_xcpx_precise_bus_err_addr_t
1941*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_PRECISE_BUS_ERR_ADDR(a) CSR_TYPE_NCB32b
1942*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_PRECISE_BUS_ERR_ADDR(a) "XCPX_PRECISE_BUS_ERR_ADDR"
1943*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_PRECISE_BUS_ERR_ADDR(a) 0x0 /* PF_BAR0 */
1944*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_PRECISE_BUS_ERR_ADDR(a) (a)
1945*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_PRECISE_BUS_ERR_ADDR(a) (a), -1, -1, -1
1946*4b8b8d74SJaiprakash Singh 
1947*4b8b8d74SJaiprakash Singh /**
1948*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_precise_bus_err_status
1949*4b8b8d74SJaiprakash Singh  *
1950*4b8b8d74SJaiprakash Singh  * XCP Precise Bus Error Status Register
1951*4b8b8d74SJaiprakash Singh  * This register contains the state of the precise data bus interface error for XCP.
1952*4b8b8d74SJaiprakash Singh  *
1953*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
1954*4b8b8d74SJaiprakash Singh  */
1955*4b8b8d74SJaiprakash Singh union ody_xcpx_precise_bus_err_status {
1956*4b8b8d74SJaiprakash Singh 	uint32_t u;
1957*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_precise_bus_err_status_s {
1958*4b8b8d74SJaiprakash Singh 		uint32_t part                        : 3;
1959*4b8b8d74SJaiprakash Singh 		uint32_t err_type                    : 3;
1960*4b8b8d74SJaiprakash Singh 		uint32_t val                         : 1;
1961*4b8b8d74SJaiprakash Singh 		uint32_t reserved_7_31               : 25;
1962*4b8b8d74SJaiprakash Singh 	} s;
1963*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_precise_bus_err_status_s cn; */
1964*4b8b8d74SJaiprakash Singh };
1965*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_precise_bus_err_status ody_xcpx_precise_bus_err_status_t;
1966*4b8b8d74SJaiprakash Singh 
1967*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_PRECISE_BUS_ERR_STATUS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_PRECISE_BUS_ERR_STATUS(uint64_t a)1968*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_PRECISE_BUS_ERR_STATUS(uint64_t a)
1969*4b8b8d74SJaiprakash Singh {
1970*4b8b8d74SJaiprakash Singh 	if (a <= 2)
1971*4b8b8d74SJaiprakash Singh 		return 0x82c000001d08ll + 0x1000000000ll * ((a) & 0x3);
1972*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_PRECISE_BUS_ERR_STATUS", 1, a, 0, 0, 0, 0, 0);
1973*4b8b8d74SJaiprakash Singh }
1974*4b8b8d74SJaiprakash Singh 
1975*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_PRECISE_BUS_ERR_STATUS(a) ody_xcpx_precise_bus_err_status_t
1976*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_PRECISE_BUS_ERR_STATUS(a) CSR_TYPE_NCB32b
1977*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_PRECISE_BUS_ERR_STATUS(a) "XCPX_PRECISE_BUS_ERR_STATUS"
1978*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_PRECISE_BUS_ERR_STATUS(a) 0x0 /* PF_BAR0 */
1979*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_PRECISE_BUS_ERR_STATUS(a) (a)
1980*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_PRECISE_BUS_ERR_STATUS(a) (a), -1, -1, -1
1981*4b8b8d74SJaiprakash Singh 
1982*4b8b8d74SJaiprakash Singh /**
1983*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_ram_win#
1984*4b8b8d74SJaiprakash Singh  *
1985*4b8b8d74SJaiprakash Singh  * XCP RAM Window Register
1986*4b8b8d74SJaiprakash Singh  * This register contains the base address and size for the XCP core access windows to CPC RAM.
1987*4b8b8d74SJaiprakash Singh  *
1988*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
1989*4b8b8d74SJaiprakash Singh  *
1990*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
1991*4b8b8d74SJaiprakash Singh  */
1992*4b8b8d74SJaiprakash Singh union ody_xcpx_ram_winx {
1993*4b8b8d74SJaiprakash Singh 	uint32_t u;
1994*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_ram_winx_s {
1995*4b8b8d74SJaiprakash Singh 		uint32_t base                        : 6;
1996*4b8b8d74SJaiprakash Singh 		uint32_t reserved_6_7                : 2;
1997*4b8b8d74SJaiprakash Singh 		uint32_t size                        : 6;
1998*4b8b8d74SJaiprakash Singh 		uint32_t reserved_14_31              : 18;
1999*4b8b8d74SJaiprakash Singh 	} s;
2000*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_ram_winx_s cn; */
2001*4b8b8d74SJaiprakash Singh };
2002*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_ram_winx ody_xcpx_ram_winx_t;
2003*4b8b8d74SJaiprakash Singh 
2004*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_RAM_WINX(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_RAM_WINX(uint64_t a,uint64_t b)2005*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_RAM_WINX(uint64_t a, uint64_t b)
2006*4b8b8d74SJaiprakash Singh {
2007*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b <= 3))
2008*4b8b8d74SJaiprakash Singh 		return 0x82c000000600ll + 0x1000000000ll * ((a) & 0x3) + 0x10ll * ((b) & 0x3);
2009*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_RAM_WINX", 2, a, b, 0, 0, 0, 0);
2010*4b8b8d74SJaiprakash Singh }
2011*4b8b8d74SJaiprakash Singh 
2012*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_RAM_WINX(a, b) ody_xcpx_ram_winx_t
2013*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_RAM_WINX(a, b) CSR_TYPE_NCB32b
2014*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_RAM_WINX(a, b) "XCPX_RAM_WINX"
2015*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_RAM_WINX(a, b) 0x0 /* PF_BAR0 */
2016*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_RAM_WINX(a, b) (a)
2017*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_RAM_WINX(a, b) (a), (b), -1, -1
2018*4b8b8d74SJaiprakash Singh 
2019*4b8b8d74SJaiprakash Singh /**
2020*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_status
2021*4b8b8d74SJaiprakash Singh  *
2022*4b8b8d74SJaiprakash Singh  * XCP Status Register
2023*4b8b8d74SJaiprakash Singh  * This register contains the status bits for XCP.
2024*4b8b8d74SJaiprakash Singh  *
2025*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
2026*4b8b8d74SJaiprakash Singh  *
2027*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
2028*4b8b8d74SJaiprakash Singh  */
2029*4b8b8d74SJaiprakash Singh union ody_xcpx_status {
2030*4b8b8d74SJaiprakash Singh 	uint32_t u;
2031*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_status_s {
2032*4b8b8d74SJaiprakash Singh 		uint32_t lock_up                     : 1;
2033*4b8b8d74SJaiprakash Singh 		uint32_t wrap_err                    : 1;
2034*4b8b8d74SJaiprakash Singh 		uint32_t reserved_2_31               : 30;
2035*4b8b8d74SJaiprakash Singh 	} s;
2036*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_status_s cn; */
2037*4b8b8d74SJaiprakash Singh };
2038*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_status ody_xcpx_status_t;
2039*4b8b8d74SJaiprakash Singh 
2040*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_STATUS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_STATUS(uint64_t a)2041*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_STATUS(uint64_t a)
2042*4b8b8d74SJaiprakash Singh {
2043*4b8b8d74SJaiprakash Singh 	if (a <= 2)
2044*4b8b8d74SJaiprakash Singh 		return 0x82c000000210ll + 0x1000000000ll * ((a) & 0x3);
2045*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_STATUS", 1, a, 0, 0, 0, 0, 0);
2046*4b8b8d74SJaiprakash Singh }
2047*4b8b8d74SJaiprakash Singh 
2048*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_STATUS(a) ody_xcpx_status_t
2049*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_STATUS(a) CSR_TYPE_NCB32b
2050*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_STATUS(a) "XCPX_STATUS"
2051*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_STATUS(a) 0x0 /* PF_BAR0 */
2052*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_STATUS(a) (a)
2053*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_STATUS(a) (a), -1, -1, -1
2054*4b8b8d74SJaiprakash Singh 
2055*4b8b8d74SJaiprakash Singh /**
2056*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_stcalib
2057*4b8b8d74SJaiprakash Singh  *
2058*4b8b8d74SJaiprakash Singh  * XCP CM7 STCALIB Configuration Register
2059*4b8b8d74SJaiprakash Singh  * This register contains the configuration bits for the CM7 STCALIB input port.
2060*4b8b8d74SJaiprakash Singh  *
2061*4b8b8d74SJaiprakash Singh  * This register is only accessible to the requestor(s) permitted with CPC_XCP()_PERMIT.
2062*4b8b8d74SJaiprakash Singh  *
2063*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
2064*4b8b8d74SJaiprakash Singh  */
2065*4b8b8d74SJaiprakash Singh union ody_xcpx_stcalib {
2066*4b8b8d74SJaiprakash Singh 	uint32_t u;
2067*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_stcalib_s {
2068*4b8b8d74SJaiprakash Singh 		uint32_t stcalib                     : 26;
2069*4b8b8d74SJaiprakash Singh 		uint32_t reserved_26_31              : 6;
2070*4b8b8d74SJaiprakash Singh 	} s;
2071*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_stcalib_s cn; */
2072*4b8b8d74SJaiprakash Singh };
2073*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_stcalib ody_xcpx_stcalib_t;
2074*4b8b8d74SJaiprakash Singh 
2075*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_STCALIB(uint64_t a) __attribute__ ((pure, always_inline));
ODY_XCPX_STCALIB(uint64_t a)2076*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_STCALIB(uint64_t a)
2077*4b8b8d74SJaiprakash Singh {
2078*4b8b8d74SJaiprakash Singh 	if (a <= 2)
2079*4b8b8d74SJaiprakash Singh 		return 0x82c000000240ll + 0x1000000000ll * ((a) & 0x3);
2080*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_STCALIB", 1, a, 0, 0, 0, 0, 0);
2081*4b8b8d74SJaiprakash Singh }
2082*4b8b8d74SJaiprakash Singh 
2083*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_STCALIB(a) ody_xcpx_stcalib_t
2084*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_STCALIB(a) CSR_TYPE_NCB32b
2085*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_STCALIB(a) "XCPX_STCALIB"
2086*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_STCALIB(a) 0x0 /* PF_BAR0 */
2087*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_STCALIB(a) (a)
2088*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_STCALIB(a) (a), -1, -1, -1
2089*4b8b8d74SJaiprakash Singh 
2090*4b8b8d74SJaiprakash Singh /**
2091*4b8b8d74SJaiprakash Singh  * Register (NCB32b) xcp#_xcp_dev#_mbox
2092*4b8b8d74SJaiprakash Singh  *
2093*4b8b8d74SJaiprakash Singh  * XCP XCP-to-AP Mailbox Data Registers
2094*4b8b8d74SJaiprakash Singh  * This register is the mailbox register for XCP-to-AP core transactions.
2095*4b8b8d74SJaiprakash Singh  * For AP-to-XCP and XCP-to-XCP interrupts see instead XCP()_DEV()_XCP_MBOX.
2096*4b8b8d74SJaiprakash Singh  *
2097*4b8b8d74SJaiprakash Singh  * This register is only accessible to the associated device (based on DEV index by
2098*4b8b8d74SJaiprakash Singh  * XCP_MBOX_DEV_E) and the requestor(s) permitted with CPC_XCP()_PERMIT.
2099*4b8b8d74SJaiprakash Singh  */
2100*4b8b8d74SJaiprakash Singh union ody_xcpx_xcp_devx_mbox {
2101*4b8b8d74SJaiprakash Singh 	uint32_t u;
2102*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_xcp_devx_mbox_s {
2103*4b8b8d74SJaiprakash Singh 		uint32_t data                        : 32;
2104*4b8b8d74SJaiprakash Singh 	} s;
2105*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_xcp_devx_mbox_s cn; */
2106*4b8b8d74SJaiprakash Singh };
2107*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_xcp_devx_mbox ody_xcpx_xcp_devx_mbox_t;
2108*4b8b8d74SJaiprakash Singh 
2109*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_XCP_DEVX_MBOX(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_XCP_DEVX_MBOX(uint64_t a,uint64_t b)2110*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_XCP_DEVX_MBOX(uint64_t a, uint64_t b)
2111*4b8b8d74SJaiprakash Singh {
2112*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b <= 55))
2113*4b8b8d74SJaiprakash Singh 		return 0x82c0000d2000ll + 0x1000000000ll * ((a) & 0x3) + 0x10ll * ((b) & 0x3f);
2114*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_XCP_DEVX_MBOX", 2, a, b, 0, 0, 0, 0);
2115*4b8b8d74SJaiprakash Singh }
2116*4b8b8d74SJaiprakash Singh 
2117*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_XCP_DEVX_MBOX(a, b) ody_xcpx_xcp_devx_mbox_t
2118*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_XCP_DEVX_MBOX(a, b) CSR_TYPE_NCB32b
2119*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_XCP_DEVX_MBOX(a, b) "XCPX_XCP_DEVX_MBOX"
2120*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_XCP_DEVX_MBOX(a, b) 0x0 /* PF_BAR0 */
2121*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_XCP_DEVX_MBOX(a, b) (a)
2122*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_XCP_DEVX_MBOX(a, b) (a), (b), -1, -1
2123*4b8b8d74SJaiprakash Singh 
2124*4b8b8d74SJaiprakash Singh /**
2125*4b8b8d74SJaiprakash Singh  * Register (NCB) xcp#_xcp_dev#_mbox_rint
2126*4b8b8d74SJaiprakash Singh  *
2127*4b8b8d74SJaiprakash Singh  * XCP XCP-to-AP Mailbox Interrupt Register
2128*4b8b8d74SJaiprakash Singh  * This register contains mailbox interrupt for XCP-to-AP core transactions.
2129*4b8b8d74SJaiprakash Singh  *
2130*4b8b8d74SJaiprakash Singh  * This register is only accessible to the associated device (based on DEV index by
2131*4b8b8d74SJaiprakash Singh  * XCP_MBOX_DEV_E) and the requestor(s) permitted with CPC_XCP()_PERMIT.
2132*4b8b8d74SJaiprakash Singh  *
2133*4b8b8d74SJaiprakash Singh  * This register is reset on XCP domain reset.
2134*4b8b8d74SJaiprakash Singh  */
2135*4b8b8d74SJaiprakash Singh union ody_xcpx_xcp_devx_mbox_rint {
2136*4b8b8d74SJaiprakash Singh 	uint64_t u;
2137*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_xcp_devx_mbox_rint_s {
2138*4b8b8d74SJaiprakash Singh 		uint64_t intr                        : 1;
2139*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1_63               : 63;
2140*4b8b8d74SJaiprakash Singh 	} s;
2141*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_xcp_devx_mbox_rint_s cn; */
2142*4b8b8d74SJaiprakash Singh };
2143*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_xcp_devx_mbox_rint ody_xcpx_xcp_devx_mbox_rint_t;
2144*4b8b8d74SJaiprakash Singh 
2145*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_XCP_DEVX_MBOX_RINT(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_XCP_DEVX_MBOX_RINT(uint64_t a,uint64_t b)2146*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_XCP_DEVX_MBOX_RINT(uint64_t a, uint64_t b)
2147*4b8b8d74SJaiprakash Singh {
2148*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b <= 55))
2149*4b8b8d74SJaiprakash Singh 		return 0x82c0000d3000ll + 0x1000000000ll * ((a) & 0x3) + 0x10ll * ((b) & 0x3f);
2150*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_XCP_DEVX_MBOX_RINT", 2, a, b, 0, 0, 0, 0);
2151*4b8b8d74SJaiprakash Singh }
2152*4b8b8d74SJaiprakash Singh 
2153*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_XCP_DEVX_MBOX_RINT(a, b) ody_xcpx_xcp_devx_mbox_rint_t
2154*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_XCP_DEVX_MBOX_RINT(a, b) CSR_TYPE_NCB
2155*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_XCP_DEVX_MBOX_RINT(a, b) "XCPX_XCP_DEVX_MBOX_RINT"
2156*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_XCP_DEVX_MBOX_RINT(a, b) 0x0 /* PF_BAR0 */
2157*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_XCP_DEVX_MBOX_RINT(a, b) (a)
2158*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_XCP_DEVX_MBOX_RINT(a, b) (a), (b), -1, -1
2159*4b8b8d74SJaiprakash Singh 
2160*4b8b8d74SJaiprakash Singh /**
2161*4b8b8d74SJaiprakash Singh  * Register (NCB) xcp#_xcp_dev#_mbox_rint_ena_w1c
2162*4b8b8d74SJaiprakash Singh  *
2163*4b8b8d74SJaiprakash Singh  * XCP XCP-to-AP Mailbox Interrupt Enable Clear Register
2164*4b8b8d74SJaiprakash Singh  * This register clears interrupt enable bits.
2165*4b8b8d74SJaiprakash Singh  */
2166*4b8b8d74SJaiprakash Singh union ody_xcpx_xcp_devx_mbox_rint_ena_w1c {
2167*4b8b8d74SJaiprakash Singh 	uint64_t u;
2168*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_xcp_devx_mbox_rint_ena_w1c_s {
2169*4b8b8d74SJaiprakash Singh 		uint64_t intr                        : 1;
2170*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1_63               : 63;
2171*4b8b8d74SJaiprakash Singh 	} s;
2172*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_xcp_devx_mbox_rint_ena_w1c_s cn; */
2173*4b8b8d74SJaiprakash Singh };
2174*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_xcp_devx_mbox_rint_ena_w1c ody_xcpx_xcp_devx_mbox_rint_ena_w1c_t;
2175*4b8b8d74SJaiprakash Singh 
2176*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_XCP_DEVX_MBOX_RINT_ENA_W1C(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_XCP_DEVX_MBOX_RINT_ENA_W1C(uint64_t a,uint64_t b)2177*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_XCP_DEVX_MBOX_RINT_ENA_W1C(uint64_t a, uint64_t b)
2178*4b8b8d74SJaiprakash Singh {
2179*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b <= 55))
2180*4b8b8d74SJaiprakash Singh 		return 0x82c0000d3c00ll + 0x1000000000ll * ((a) & 0x3) + 0x10ll * ((b) & 0x3f);
2181*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_XCP_DEVX_MBOX_RINT_ENA_W1C", 2, a, b, 0, 0, 0, 0);
2182*4b8b8d74SJaiprakash Singh }
2183*4b8b8d74SJaiprakash Singh 
2184*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_XCP_DEVX_MBOX_RINT_ENA_W1C(a, b) ody_xcpx_xcp_devx_mbox_rint_ena_w1c_t
2185*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_XCP_DEVX_MBOX_RINT_ENA_W1C(a, b) CSR_TYPE_NCB
2186*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_XCP_DEVX_MBOX_RINT_ENA_W1C(a, b) "XCPX_XCP_DEVX_MBOX_RINT_ENA_W1C"
2187*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_XCP_DEVX_MBOX_RINT_ENA_W1C(a, b) 0x0 /* PF_BAR0 */
2188*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_XCP_DEVX_MBOX_RINT_ENA_W1C(a, b) (a)
2189*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_XCP_DEVX_MBOX_RINT_ENA_W1C(a, b) (a), (b), -1, -1
2190*4b8b8d74SJaiprakash Singh 
2191*4b8b8d74SJaiprakash Singh /**
2192*4b8b8d74SJaiprakash Singh  * Register (NCB) xcp#_xcp_dev#_mbox_rint_ena_w1s
2193*4b8b8d74SJaiprakash Singh  *
2194*4b8b8d74SJaiprakash Singh  * XCP XCP-to-AP Mailbox Interrupt Enable Set Register
2195*4b8b8d74SJaiprakash Singh  * This register sets interrupt enable bits.
2196*4b8b8d74SJaiprakash Singh  */
2197*4b8b8d74SJaiprakash Singh union ody_xcpx_xcp_devx_mbox_rint_ena_w1s {
2198*4b8b8d74SJaiprakash Singh 	uint64_t u;
2199*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_xcp_devx_mbox_rint_ena_w1s_s {
2200*4b8b8d74SJaiprakash Singh 		uint64_t intr                        : 1;
2201*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1_63               : 63;
2202*4b8b8d74SJaiprakash Singh 	} s;
2203*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_xcp_devx_mbox_rint_ena_w1s_s cn; */
2204*4b8b8d74SJaiprakash Singh };
2205*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_xcp_devx_mbox_rint_ena_w1s ody_xcpx_xcp_devx_mbox_rint_ena_w1s_t;
2206*4b8b8d74SJaiprakash Singh 
2207*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_XCP_DEVX_MBOX_RINT_ENA_W1S(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_XCP_DEVX_MBOX_RINT_ENA_W1S(uint64_t a,uint64_t b)2208*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_XCP_DEVX_MBOX_RINT_ENA_W1S(uint64_t a, uint64_t b)
2209*4b8b8d74SJaiprakash Singh {
2210*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b <= 55))
2211*4b8b8d74SJaiprakash Singh 		return 0x82c0000d3400ll + 0x1000000000ll * ((a) & 0x3) + 0x10ll * ((b) & 0x3f);
2212*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_XCP_DEVX_MBOX_RINT_ENA_W1S", 2, a, b, 0, 0, 0, 0);
2213*4b8b8d74SJaiprakash Singh }
2214*4b8b8d74SJaiprakash Singh 
2215*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_XCP_DEVX_MBOX_RINT_ENA_W1S(a, b) ody_xcpx_xcp_devx_mbox_rint_ena_w1s_t
2216*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_XCP_DEVX_MBOX_RINT_ENA_W1S(a, b) CSR_TYPE_NCB
2217*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_XCP_DEVX_MBOX_RINT_ENA_W1S(a, b) "XCPX_XCP_DEVX_MBOX_RINT_ENA_W1S"
2218*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_XCP_DEVX_MBOX_RINT_ENA_W1S(a, b) 0x0 /* PF_BAR0 */
2219*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_XCP_DEVX_MBOX_RINT_ENA_W1S(a, b) (a)
2220*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_XCP_DEVX_MBOX_RINT_ENA_W1S(a, b) (a), (b), -1, -1
2221*4b8b8d74SJaiprakash Singh 
2222*4b8b8d74SJaiprakash Singh /**
2223*4b8b8d74SJaiprakash Singh  * Register (NCB) xcp#_xcp_dev#_mbox_rint_w1s
2224*4b8b8d74SJaiprakash Singh  *
2225*4b8b8d74SJaiprakash Singh  * XCP XCP-to-AP Mailbox Interrupt Set Register
2226*4b8b8d74SJaiprakash Singh  * This register sets interrupt bits.
2227*4b8b8d74SJaiprakash Singh  */
2228*4b8b8d74SJaiprakash Singh union ody_xcpx_xcp_devx_mbox_rint_w1s {
2229*4b8b8d74SJaiprakash Singh 	uint64_t u;
2230*4b8b8d74SJaiprakash Singh 	struct ody_xcpx_xcp_devx_mbox_rint_w1s_s {
2231*4b8b8d74SJaiprakash Singh 		uint64_t intr                        : 1;
2232*4b8b8d74SJaiprakash Singh 		uint64_t reserved_1_63               : 63;
2233*4b8b8d74SJaiprakash Singh 	} s;
2234*4b8b8d74SJaiprakash Singh 	/* struct ody_xcpx_xcp_devx_mbox_rint_w1s_s cn; */
2235*4b8b8d74SJaiprakash Singh };
2236*4b8b8d74SJaiprakash Singh typedef union ody_xcpx_xcp_devx_mbox_rint_w1s ody_xcpx_xcp_devx_mbox_rint_w1s_t;
2237*4b8b8d74SJaiprakash Singh 
2238*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_XCP_DEVX_MBOX_RINT_W1S(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_XCPX_XCP_DEVX_MBOX_RINT_W1S(uint64_t a,uint64_t b)2239*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_XCPX_XCP_DEVX_MBOX_RINT_W1S(uint64_t a, uint64_t b)
2240*4b8b8d74SJaiprakash Singh {
2241*4b8b8d74SJaiprakash Singh 	if ((a <= 2) && (b <= 55))
2242*4b8b8d74SJaiprakash Singh 		return 0x82c0000d3800ll + 0x1000000000ll * ((a) & 0x3) + 0x10ll * ((b) & 0x3f);
2243*4b8b8d74SJaiprakash Singh 	__ody_csr_fatal("XCPX_XCP_DEVX_MBOX_RINT_W1S", 2, a, b, 0, 0, 0, 0);
2244*4b8b8d74SJaiprakash Singh }
2245*4b8b8d74SJaiprakash Singh 
2246*4b8b8d74SJaiprakash Singh #define typedef_ODY_XCPX_XCP_DEVX_MBOX_RINT_W1S(a, b) ody_xcpx_xcp_devx_mbox_rint_w1s_t
2247*4b8b8d74SJaiprakash Singh #define bustype_ODY_XCPX_XCP_DEVX_MBOX_RINT_W1S(a, b) CSR_TYPE_NCB
2248*4b8b8d74SJaiprakash Singh #define basename_ODY_XCPX_XCP_DEVX_MBOX_RINT_W1S(a, b) "XCPX_XCP_DEVX_MBOX_RINT_W1S"
2249*4b8b8d74SJaiprakash Singh #define device_bar_ODY_XCPX_XCP_DEVX_MBOX_RINT_W1S(a, b) 0x0 /* PF_BAR0 */
2250*4b8b8d74SJaiprakash Singh #define busnum_ODY_XCPX_XCP_DEVX_MBOX_RINT_W1S(a, b) (a)
2251*4b8b8d74SJaiprakash Singh #define arguments_ODY_XCPX_XCP_DEVX_MBOX_RINT_W1S(a, b) (a), (b), -1, -1
2252*4b8b8d74SJaiprakash Singh 
2253*4b8b8d74SJaiprakash Singh #endif /* __ODY_CSRS_XCP_H__ */
2254