1*4b8b8d74SJaiprakash Singh #ifndef __ODY_CSRS_SMMU_H__
2*4b8b8d74SJaiprakash Singh #define __ODY_CSRS_SMMU_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 * SMMU.
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 smmu_bar_e
24*4b8b8d74SJaiprakash Singh *
25*4b8b8d74SJaiprakash Singh * SMMU Base Address Register Enumeration
26*4b8b8d74SJaiprakash Singh * Enumerates the base address registers.
27*4b8b8d74SJaiprakash Singh */
28*4b8b8d74SJaiprakash Singh #define ODY_SMMU_BAR_E_SMMUX_PF_BAR0(a) (0x830000000000ll + 0x1000000000ll * (a))
29*4b8b8d74SJaiprakash Singh #define ODY_SMMU_BAR_E_SMMUX_PF_BAR0_SIZE 0x200000ull
30*4b8b8d74SJaiprakash Singh
31*4b8b8d74SJaiprakash Singh /**
32*4b8b8d74SJaiprakash Singh * Enumeration smmu_cerror_e
33*4b8b8d74SJaiprakash Singh *
34*4b8b8d74SJaiprakash Singh * SMMU Command Queue Error Enumeration
35*4b8b8d74SJaiprakash Singh */
36*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CERROR_E_ABT (2)
37*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CERROR_E_CERROR_ATC_INV_SYNC (3)
38*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CERROR_E_ILL (1)
39*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CERROR_E_NONE (0)
40*4b8b8d74SJaiprakash Singh
41*4b8b8d74SJaiprakash Singh /**
42*4b8b8d74SJaiprakash Singh * Enumeration smmu_cmd_e
43*4b8b8d74SJaiprakash Singh *
44*4b8b8d74SJaiprakash Singh * SMMU Command Queue Codes Enumeration
45*4b8b8d74SJaiprakash Singh */
46*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_ATC_INV (0x40)
47*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_CFGI_CD (5)
48*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_CFGI_CD_ALL (6)
49*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_CFGI_STE (3)
50*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_CFGI_STE_RANGE (4)
51*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_CFGI_VMS_PIDM (7)
52*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_PREFETCH_ADDR (2)
53*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_PREFETCH_CONFIG (1)
54*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_PRI_RESP (0x41)
55*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_RESUME (0x44)
56*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_STALL_TERM (0x45)
57*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_SYNC (0x46)
58*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_TLBI_EL2_ALL (0x20)
59*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_TLBI_EL2_ASID (0x21)
60*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_TLBI_EL2_VA (0x22)
61*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_TLBI_EL2_VAA (0x23)
62*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_TLBI_EL3_ALL (0x18)
63*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_TLBI_EL3_VA (0x1a)
64*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_TLBI_NH_ALL (0x10)
65*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_TLBI_NH_ASID (0x11)
66*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_TLBI_NH_VA (0x12)
67*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_TLBI_NH_VAA (0x13)
68*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_TLBI_NSNH_ALL (0x30)
69*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_TLBI_S12_VMALL (0x28)
70*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_TLBI_S2_IPA (0x2a)
71*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_TLBI_SNH_ALL (0x60)
72*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_TLBI_S_EL2_ALL (0x50)
73*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_TLBI_S_EL2_ASID (0x51)
74*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_TLBI_S_EL2_VA (0x52)
75*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_TLBI_S_EL2_VAA (0x53)
76*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_TLBI_S_S12_VMALL (0x58)
77*4b8b8d74SJaiprakash Singh #define ODY_SMMU_CMD_E_TLBI_S_S2_IPA (0x5a)
78*4b8b8d74SJaiprakash Singh
79*4b8b8d74SJaiprakash Singh /**
80*4b8b8d74SJaiprakash Singh * Enumeration smmu_event_e
81*4b8b8d74SJaiprakash Singh *
82*4b8b8d74SJaiprakash Singh * SMMU Event Record Codes Enumeration
83*4b8b8d74SJaiprakash Singh * Enumerates event record types.
84*4b8b8d74SJaiprakash Singh */
85*4b8b8d74SJaiprakash Singh #define ODY_SMMU_EVENT_E_C_BAD_CD (0xa)
86*4b8b8d74SJaiprakash Singh #define ODY_SMMU_EVENT_E_C_BAD_STE (4)
87*4b8b8d74SJaiprakash Singh #define ODY_SMMU_EVENT_E_C_BAD_STREAMID (2)
88*4b8b8d74SJaiprakash Singh #define ODY_SMMU_EVENT_E_C_BAD_SUBSTREAMID (8)
89*4b8b8d74SJaiprakash Singh #define ODY_SMMU_EVENT_E_E_PAGE_REQUEST (0x24)
90*4b8b8d74SJaiprakash Singh #define ODY_SMMU_EVENT_E_F_ACCESS (0x12)
91*4b8b8d74SJaiprakash Singh #define ODY_SMMU_EVENT_E_F_ADDR_SIZE (0x11)
92*4b8b8d74SJaiprakash Singh #define ODY_SMMU_EVENT_E_F_BAD_ATS_TREQ (5)
93*4b8b8d74SJaiprakash Singh #define ODY_SMMU_EVENT_E_F_CD_FETCH (9)
94*4b8b8d74SJaiprakash Singh #define ODY_SMMU_EVENT_E_F_CFG_CONFLICT (0x21)
95*4b8b8d74SJaiprakash Singh #define ODY_SMMU_EVENT_E_F_PERMISSION (0x13)
96*4b8b8d74SJaiprakash Singh #define ODY_SMMU_EVENT_E_F_STE_FETCH (3)
97*4b8b8d74SJaiprakash Singh #define ODY_SMMU_EVENT_E_F_STREAM_DISABLED (6)
98*4b8b8d74SJaiprakash Singh #define ODY_SMMU_EVENT_E_F_TLB_CONFLICT (0x20)
99*4b8b8d74SJaiprakash Singh #define ODY_SMMU_EVENT_E_F_TRANSLATION (0x10)
100*4b8b8d74SJaiprakash Singh #define ODY_SMMU_EVENT_E_F_TRANSL_FORBIDDEN (7)
101*4b8b8d74SJaiprakash Singh #define ODY_SMMU_EVENT_E_F_UUT (1)
102*4b8b8d74SJaiprakash Singh #define ODY_SMMU_EVENT_E_F_VMS_FETCH (0x25)
103*4b8b8d74SJaiprakash Singh #define ODY_SMMU_EVENT_E_F_WALK_EABT (0xb)
104*4b8b8d74SJaiprakash Singh #define ODY_SMMU_EVENT_E_INTERNAL_ERR (0xfd)
105*4b8b8d74SJaiprakash Singh #define ODY_SMMU_EVENT_E_INV_REQ (0xff)
106*4b8b8d74SJaiprakash Singh #define ODY_SMMU_EVENT_E_INV_STAGE (0xfe)
107*4b8b8d74SJaiprakash Singh
108*4b8b8d74SJaiprakash Singh /**
109*4b8b8d74SJaiprakash Singh * Enumeration smmu_pmcg_e
110*4b8b8d74SJaiprakash Singh *
111*4b8b8d74SJaiprakash Singh * SMMU PMCG Events Enumeration
112*4b8b8d74SJaiprakash Singh * Enumerates counter types.
113*4b8b8d74SJaiprakash Singh */
114*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_ACTIVE_CLOCKS (0x80)
115*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_ATS_TR (6)
116*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_ATS_TT (7)
117*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_CFG_DOUBLE_HIT (0x9a)
118*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_CFG_HIT (0x98)
119*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_CFG_MISS (3)
120*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_CFG_READ (5)
121*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_CLOCKS (0)
122*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_TLB_FXL_TTD2B (0x93)
123*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_TLB_FXL_TTD2T (0x92)
124*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_TLB_FXL_TTD3P (0x91)
125*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_TLB_FXL_TTDNONE (0x97)
126*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_TLB_MISS (2)
127*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_TLB_WLK_TTD0T (0x86)
128*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_TLB_WLK_TTD1B (0x85)
129*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_TLB_WLK_TTD1T (0x84)
130*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_TLB_WLK_TTD2B (0x83)
131*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_TLB_WLK_TTD2T (0x82)
132*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_TLB_WLK_TTD3P (0x81)
133*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_TLB_WLK_TTDNONE (0x87)
134*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_TRANSLATION_REQUESTS (1)
135*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_TTD_READ (4)
136*4b8b8d74SJaiprakash Singh #define ODY_SMMU_PMCG_E_UTLB_HIT (0x9b)
137*4b8b8d74SJaiprakash Singh
138*4b8b8d74SJaiprakash Singh /**
139*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_agbpa
140*4b8b8d74SJaiprakash Singh *
141*4b8b8d74SJaiprakash Singh * SMMU Alternate Global Bypass Attribute Register
142*4b8b8d74SJaiprakash Singh * This register is intended to allow an implementation to apply an additional non
143*4b8b8d74SJaiprakash Singh * architected attributes or tag to bypassing transactions, for example a traffic
144*4b8b8d74SJaiprakash Singh * routing identifier.
145*4b8b8d74SJaiprakash Singh *
146*4b8b8d74SJaiprakash Singh * If this field is unsupported by an implementation, it is RES0. It is not
147*4b8b8d74SJaiprakash Singh * intended for this register to be used to further modify existing architected
148*4b8b8d74SJaiprakash Singh * bypass attributes which are controlled using GPBA.
149*4b8b8d74SJaiprakash Singh */
150*4b8b8d74SJaiprakash Singh union ody_smmux_agbpa {
151*4b8b8d74SJaiprakash Singh uint32_t u;
152*4b8b8d74SJaiprakash Singh struct ody_smmux_agbpa_s {
153*4b8b8d74SJaiprakash Singh uint32_t qos : 4;
154*4b8b8d74SJaiprakash Singh uint32_t reserved_4_31 : 28;
155*4b8b8d74SJaiprakash Singh } s;
156*4b8b8d74SJaiprakash Singh /* struct ody_smmux_agbpa_s cn; */
157*4b8b8d74SJaiprakash Singh };
158*4b8b8d74SJaiprakash Singh typedef union ody_smmux_agbpa ody_smmux_agbpa_t;
159*4b8b8d74SJaiprakash Singh
160*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_AGBPA(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_AGBPA(uint64_t a)161*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_AGBPA(uint64_t a)
162*4b8b8d74SJaiprakash Singh {
163*4b8b8d74SJaiprakash Singh if (a <= 3)
164*4b8b8d74SJaiprakash Singh return 0x830000000048ll + 0x1000000000ll * ((a) & 0x3);
165*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_AGBPA", 1, a, 0, 0, 0, 0, 0);
166*4b8b8d74SJaiprakash Singh }
167*4b8b8d74SJaiprakash Singh
168*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_AGBPA(a) ody_smmux_agbpa_t
169*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_AGBPA(a) CSR_TYPE_NCB32b
170*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_AGBPA(a) "SMMUX_AGBPA"
171*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_AGBPA(a) 0x0 /* PF_BAR0 */
172*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_AGBPA(a) (a)
173*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_AGBPA(a) (a), -1, -1, -1
174*4b8b8d74SJaiprakash Singh
175*4b8b8d74SJaiprakash Singh /**
176*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_aidr
177*4b8b8d74SJaiprakash Singh *
178*4b8b8d74SJaiprakash Singh * SMMU Auxiliary Identification Register
179*4b8b8d74SJaiprakash Singh * This register identifies the SMMU architecture version to which the implementation conforms.
180*4b8b8d74SJaiprakash Singh */
181*4b8b8d74SJaiprakash Singh union ody_smmux_aidr {
182*4b8b8d74SJaiprakash Singh uint32_t u;
183*4b8b8d74SJaiprakash Singh struct ody_smmux_aidr_s {
184*4b8b8d74SJaiprakash Singh uint32_t archminorrev : 4;
185*4b8b8d74SJaiprakash Singh uint32_t archmajorrev : 4;
186*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
187*4b8b8d74SJaiprakash Singh } s;
188*4b8b8d74SJaiprakash Singh /* struct ody_smmux_aidr_s cn; */
189*4b8b8d74SJaiprakash Singh };
190*4b8b8d74SJaiprakash Singh typedef union ody_smmux_aidr ody_smmux_aidr_t;
191*4b8b8d74SJaiprakash Singh
192*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_AIDR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_AIDR(uint64_t a)193*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_AIDR(uint64_t a)
194*4b8b8d74SJaiprakash Singh {
195*4b8b8d74SJaiprakash Singh if (a <= 3)
196*4b8b8d74SJaiprakash Singh return 0x83000000001cll + 0x1000000000ll * ((a) & 0x3);
197*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_AIDR", 1, a, 0, 0, 0, 0, 0);
198*4b8b8d74SJaiprakash Singh }
199*4b8b8d74SJaiprakash Singh
200*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_AIDR(a) ody_smmux_aidr_t
201*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_AIDR(a) CSR_TYPE_NCB32b
202*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_AIDR(a) "SMMUX_AIDR"
203*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_AIDR(a) 0x0 /* PF_BAR0 */
204*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_AIDR(a) (a)
205*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_AIDR(a) (a), -1, -1, -1
206*4b8b8d74SJaiprakash Singh
207*4b8b8d74SJaiprakash Singh /**
208*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_cidr0
209*4b8b8d74SJaiprakash Singh *
210*4b8b8d74SJaiprakash Singh * SMMU Component Identification Register 0
211*4b8b8d74SJaiprakash Singh */
212*4b8b8d74SJaiprakash Singh union ody_smmux_cidr0 {
213*4b8b8d74SJaiprakash Singh uint32_t u;
214*4b8b8d74SJaiprakash Singh struct ody_smmux_cidr0_s {
215*4b8b8d74SJaiprakash Singh uint32_t preamble : 8;
216*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
217*4b8b8d74SJaiprakash Singh } s;
218*4b8b8d74SJaiprakash Singh /* struct ody_smmux_cidr0_s cn; */
219*4b8b8d74SJaiprakash Singh };
220*4b8b8d74SJaiprakash Singh typedef union ody_smmux_cidr0 ody_smmux_cidr0_t;
221*4b8b8d74SJaiprakash Singh
222*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CIDR0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_CIDR0(uint64_t a)223*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CIDR0(uint64_t a)
224*4b8b8d74SJaiprakash Singh {
225*4b8b8d74SJaiprakash Singh if (a <= 3)
226*4b8b8d74SJaiprakash Singh return 0x830000000ff0ll + 0x1000000000ll * ((a) & 0x3);
227*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_CIDR0", 1, a, 0, 0, 0, 0, 0);
228*4b8b8d74SJaiprakash Singh }
229*4b8b8d74SJaiprakash Singh
230*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_CIDR0(a) ody_smmux_cidr0_t
231*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_CIDR0(a) CSR_TYPE_NCB32b
232*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_CIDR0(a) "SMMUX_CIDR0"
233*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_CIDR0(a) 0x0 /* PF_BAR0 */
234*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_CIDR0(a) (a)
235*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_CIDR0(a) (a), -1, -1, -1
236*4b8b8d74SJaiprakash Singh
237*4b8b8d74SJaiprakash Singh /**
238*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_cidr1
239*4b8b8d74SJaiprakash Singh *
240*4b8b8d74SJaiprakash Singh * SMMU Component Identification Register 1
241*4b8b8d74SJaiprakash Singh */
242*4b8b8d74SJaiprakash Singh union ody_smmux_cidr1 {
243*4b8b8d74SJaiprakash Singh uint32_t u;
244*4b8b8d74SJaiprakash Singh struct ody_smmux_cidr1_s {
245*4b8b8d74SJaiprakash Singh uint32_t preamble : 4;
246*4b8b8d74SJaiprakash Singh uint32_t component_class : 4;
247*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
248*4b8b8d74SJaiprakash Singh } s;
249*4b8b8d74SJaiprakash Singh /* struct ody_smmux_cidr1_s cn; */
250*4b8b8d74SJaiprakash Singh };
251*4b8b8d74SJaiprakash Singh typedef union ody_smmux_cidr1 ody_smmux_cidr1_t;
252*4b8b8d74SJaiprakash Singh
253*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CIDR1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_CIDR1(uint64_t a)254*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CIDR1(uint64_t a)
255*4b8b8d74SJaiprakash Singh {
256*4b8b8d74SJaiprakash Singh if (a <= 3)
257*4b8b8d74SJaiprakash Singh return 0x830000000ff4ll + 0x1000000000ll * ((a) & 0x3);
258*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_CIDR1", 1, a, 0, 0, 0, 0, 0);
259*4b8b8d74SJaiprakash Singh }
260*4b8b8d74SJaiprakash Singh
261*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_CIDR1(a) ody_smmux_cidr1_t
262*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_CIDR1(a) CSR_TYPE_NCB32b
263*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_CIDR1(a) "SMMUX_CIDR1"
264*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_CIDR1(a) 0x0 /* PF_BAR0 */
265*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_CIDR1(a) (a)
266*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_CIDR1(a) (a), -1, -1, -1
267*4b8b8d74SJaiprakash Singh
268*4b8b8d74SJaiprakash Singh /**
269*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_cidr2
270*4b8b8d74SJaiprakash Singh *
271*4b8b8d74SJaiprakash Singh * SMMU Component Identification Register 2
272*4b8b8d74SJaiprakash Singh */
273*4b8b8d74SJaiprakash Singh union ody_smmux_cidr2 {
274*4b8b8d74SJaiprakash Singh uint32_t u;
275*4b8b8d74SJaiprakash Singh struct ody_smmux_cidr2_s {
276*4b8b8d74SJaiprakash Singh uint32_t preamble : 8;
277*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
278*4b8b8d74SJaiprakash Singh } s;
279*4b8b8d74SJaiprakash Singh /* struct ody_smmux_cidr2_s cn; */
280*4b8b8d74SJaiprakash Singh };
281*4b8b8d74SJaiprakash Singh typedef union ody_smmux_cidr2 ody_smmux_cidr2_t;
282*4b8b8d74SJaiprakash Singh
283*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CIDR2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_CIDR2(uint64_t a)284*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CIDR2(uint64_t a)
285*4b8b8d74SJaiprakash Singh {
286*4b8b8d74SJaiprakash Singh if (a <= 3)
287*4b8b8d74SJaiprakash Singh return 0x830000000ff8ll + 0x1000000000ll * ((a) & 0x3);
288*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_CIDR2", 1, a, 0, 0, 0, 0, 0);
289*4b8b8d74SJaiprakash Singh }
290*4b8b8d74SJaiprakash Singh
291*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_CIDR2(a) ody_smmux_cidr2_t
292*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_CIDR2(a) CSR_TYPE_NCB32b
293*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_CIDR2(a) "SMMUX_CIDR2"
294*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_CIDR2(a) 0x0 /* PF_BAR0 */
295*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_CIDR2(a) (a)
296*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_CIDR2(a) (a), -1, -1, -1
297*4b8b8d74SJaiprakash Singh
298*4b8b8d74SJaiprakash Singh /**
299*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_cidr3
300*4b8b8d74SJaiprakash Singh *
301*4b8b8d74SJaiprakash Singh * SMMU Component Identification Register 3
302*4b8b8d74SJaiprakash Singh */
303*4b8b8d74SJaiprakash Singh union ody_smmux_cidr3 {
304*4b8b8d74SJaiprakash Singh uint32_t u;
305*4b8b8d74SJaiprakash Singh struct ody_smmux_cidr3_s {
306*4b8b8d74SJaiprakash Singh uint32_t preamble : 8;
307*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
308*4b8b8d74SJaiprakash Singh } s;
309*4b8b8d74SJaiprakash Singh /* struct ody_smmux_cidr3_s cn; */
310*4b8b8d74SJaiprakash Singh };
311*4b8b8d74SJaiprakash Singh typedef union ody_smmux_cidr3 ody_smmux_cidr3_t;
312*4b8b8d74SJaiprakash Singh
313*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CIDR3(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_CIDR3(uint64_t a)314*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CIDR3(uint64_t a)
315*4b8b8d74SJaiprakash Singh {
316*4b8b8d74SJaiprakash Singh if (a <= 3)
317*4b8b8d74SJaiprakash Singh return 0x830000000ffcll + 0x1000000000ll * ((a) & 0x3);
318*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_CIDR3", 1, a, 0, 0, 0, 0, 0);
319*4b8b8d74SJaiprakash Singh }
320*4b8b8d74SJaiprakash Singh
321*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_CIDR3(a) ody_smmux_cidr3_t
322*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_CIDR3(a) CSR_TYPE_NCB32b
323*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_CIDR3(a) "SMMUX_CIDR3"
324*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_CIDR3(a) 0x0 /* PF_BAR0 */
325*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_CIDR3(a) (a)
326*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_CIDR3(a) (a), -1, -1, -1
327*4b8b8d74SJaiprakash Singh
328*4b8b8d74SJaiprakash Singh /**
329*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_cmdq_base
330*4b8b8d74SJaiprakash Singh *
331*4b8b8d74SJaiprakash Singh * SMMU Command Queue Base Register
332*4b8b8d74SJaiprakash Singh */
333*4b8b8d74SJaiprakash Singh union ody_smmux_cmdq_base {
334*4b8b8d74SJaiprakash Singh uint64_t u;
335*4b8b8d74SJaiprakash Singh struct ody_smmux_cmdq_base_s {
336*4b8b8d74SJaiprakash Singh uint64_t log2size : 5;
337*4b8b8d74SJaiprakash Singh uint64_t addr : 47;
338*4b8b8d74SJaiprakash Singh uint64_t reserved_52_61 : 10;
339*4b8b8d74SJaiprakash Singh uint64_t ra : 1;
340*4b8b8d74SJaiprakash Singh uint64_t reserved_63 : 1;
341*4b8b8d74SJaiprakash Singh } s;
342*4b8b8d74SJaiprakash Singh /* struct ody_smmux_cmdq_base_s cn; */
343*4b8b8d74SJaiprakash Singh };
344*4b8b8d74SJaiprakash Singh typedef union ody_smmux_cmdq_base ody_smmux_cmdq_base_t;
345*4b8b8d74SJaiprakash Singh
346*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CMDQ_BASE(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_CMDQ_BASE(uint64_t a)347*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CMDQ_BASE(uint64_t a)
348*4b8b8d74SJaiprakash Singh {
349*4b8b8d74SJaiprakash Singh if (a <= 3)
350*4b8b8d74SJaiprakash Singh return 0x830000000090ll + 0x1000000000ll * ((a) & 0x3);
351*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_CMDQ_BASE", 1, a, 0, 0, 0, 0, 0);
352*4b8b8d74SJaiprakash Singh }
353*4b8b8d74SJaiprakash Singh
354*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_CMDQ_BASE(a) ody_smmux_cmdq_base_t
355*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_CMDQ_BASE(a) CSR_TYPE_NCB
356*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_CMDQ_BASE(a) "SMMUX_CMDQ_BASE"
357*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_CMDQ_BASE(a) 0x0 /* PF_BAR0 */
358*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_CMDQ_BASE(a) (a)
359*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_CMDQ_BASE(a) (a), -1, -1, -1
360*4b8b8d74SJaiprakash Singh
361*4b8b8d74SJaiprakash Singh /**
362*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_cmdq_cons
363*4b8b8d74SJaiprakash Singh *
364*4b8b8d74SJaiprakash Singh * SMMU Command Queue Consumer Register
365*4b8b8d74SJaiprakash Singh */
366*4b8b8d74SJaiprakash Singh union ody_smmux_cmdq_cons {
367*4b8b8d74SJaiprakash Singh uint32_t u;
368*4b8b8d74SJaiprakash Singh struct ody_smmux_cmdq_cons_s {
369*4b8b8d74SJaiprakash Singh uint32_t rd : 20;
370*4b8b8d74SJaiprakash Singh uint32_t reserved_20_23 : 4;
371*4b8b8d74SJaiprakash Singh uint32_t errx : 7;
372*4b8b8d74SJaiprakash Singh uint32_t reserved_31 : 1;
373*4b8b8d74SJaiprakash Singh } s;
374*4b8b8d74SJaiprakash Singh /* struct ody_smmux_cmdq_cons_s cn; */
375*4b8b8d74SJaiprakash Singh };
376*4b8b8d74SJaiprakash Singh typedef union ody_smmux_cmdq_cons ody_smmux_cmdq_cons_t;
377*4b8b8d74SJaiprakash Singh
378*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CMDQ_CONS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_CMDQ_CONS(uint64_t a)379*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CMDQ_CONS(uint64_t a)
380*4b8b8d74SJaiprakash Singh {
381*4b8b8d74SJaiprakash Singh if (a <= 3)
382*4b8b8d74SJaiprakash Singh return 0x83000000009cll + 0x1000000000ll * ((a) & 0x3);
383*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_CMDQ_CONS", 1, a, 0, 0, 0, 0, 0);
384*4b8b8d74SJaiprakash Singh }
385*4b8b8d74SJaiprakash Singh
386*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_CMDQ_CONS(a) ody_smmux_cmdq_cons_t
387*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_CMDQ_CONS(a) CSR_TYPE_NCB32b
388*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_CMDQ_CONS(a) "SMMUX_CMDQ_CONS"
389*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_CMDQ_CONS(a) 0x0 /* PF_BAR0 */
390*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_CMDQ_CONS(a) (a)
391*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_CMDQ_CONS(a) (a), -1, -1, -1
392*4b8b8d74SJaiprakash Singh
393*4b8b8d74SJaiprakash Singh /**
394*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_cmdq_control_page_base#
395*4b8b8d74SJaiprakash Singh *
396*4b8b8d74SJaiprakash Singh * SMMU CMDQ Control Page Base Register
397*4b8b8d74SJaiprakash Singh * Provides information about the Enhanced Command queue interface for the SMMU Non-
398*4b8b8d74SJaiprakash Singh * secure programming interface.
399*4b8b8d74SJaiprakash Singh */
400*4b8b8d74SJaiprakash Singh union ody_smmux_cmdq_control_page_basex {
401*4b8b8d74SJaiprakash Singh uint64_t u;
402*4b8b8d74SJaiprakash Singh struct ody_smmux_cmdq_control_page_basex_s {
403*4b8b8d74SJaiprakash Singh uint64_t cmdq_control_page_preset : 1;
404*4b8b8d74SJaiprakash Singh uint64_t cmdqgs : 2;
405*4b8b8d74SJaiprakash Singh uint64_t reserved_3_15 : 13;
406*4b8b8d74SJaiprakash Singh uint64_t addr : 36;
407*4b8b8d74SJaiprakash Singh uint64_t reserved_52_63 : 12;
408*4b8b8d74SJaiprakash Singh } s;
409*4b8b8d74SJaiprakash Singh /* struct ody_smmux_cmdq_control_page_basex_s cn; */
410*4b8b8d74SJaiprakash Singh };
411*4b8b8d74SJaiprakash Singh typedef union ody_smmux_cmdq_control_page_basex ody_smmux_cmdq_control_page_basex_t;
412*4b8b8d74SJaiprakash Singh
413*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CMDQ_CONTROL_PAGE_BASEX(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_CMDQ_CONTROL_PAGE_BASEX(uint64_t a,uint64_t b)414*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CMDQ_CONTROL_PAGE_BASEX(uint64_t a, uint64_t b)
415*4b8b8d74SJaiprakash Singh {
416*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b == 0))
417*4b8b8d74SJaiprakash Singh return 0x830000004000ll + 0x1000000000ll * ((a) & 0x3);
418*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_CMDQ_CONTROL_PAGE_BASEX", 2, a, b, 0, 0, 0, 0);
419*4b8b8d74SJaiprakash Singh }
420*4b8b8d74SJaiprakash Singh
421*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_CMDQ_CONTROL_PAGE_BASEX(a, b) ody_smmux_cmdq_control_page_basex_t
422*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_CMDQ_CONTROL_PAGE_BASEX(a, b) CSR_TYPE_NCB
423*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_CMDQ_CONTROL_PAGE_BASEX(a, b) "SMMUX_CMDQ_CONTROL_PAGE_BASEX"
424*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_CMDQ_CONTROL_PAGE_BASEX(a, b) 0x0 /* PF_BAR0 */
425*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_CMDQ_CONTROL_PAGE_BASEX(a, b) (a)
426*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_CMDQ_CONTROL_PAGE_BASEX(a, b) (a), (b), -1, -1
427*4b8b8d74SJaiprakash Singh
428*4b8b8d74SJaiprakash Singh /**
429*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_cmdq_control_page_cfg#
430*4b8b8d74SJaiprakash Singh *
431*4b8b8d74SJaiprakash Singh * SMMU CMDQ Control Page Configuration Register
432*4b8b8d74SJaiprakash Singh * Control for Enhanced Command queue interface for the SMMU Non-secure programming interface.
433*4b8b8d74SJaiprakash Singh */
434*4b8b8d74SJaiprakash Singh union ody_smmux_cmdq_control_page_cfgx {
435*4b8b8d74SJaiprakash Singh uint32_t u;
436*4b8b8d74SJaiprakash Singh struct ody_smmux_cmdq_control_page_cfgx_s {
437*4b8b8d74SJaiprakash Singh uint32_t en : 1;
438*4b8b8d74SJaiprakash Singh uint32_t reserved_1_31 : 31;
439*4b8b8d74SJaiprakash Singh } s;
440*4b8b8d74SJaiprakash Singh /* struct ody_smmux_cmdq_control_page_cfgx_s cn; */
441*4b8b8d74SJaiprakash Singh };
442*4b8b8d74SJaiprakash Singh typedef union ody_smmux_cmdq_control_page_cfgx ody_smmux_cmdq_control_page_cfgx_t;
443*4b8b8d74SJaiprakash Singh
444*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CMDQ_CONTROL_PAGE_CFGX(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_CMDQ_CONTROL_PAGE_CFGX(uint64_t a,uint64_t b)445*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CMDQ_CONTROL_PAGE_CFGX(uint64_t a, uint64_t b)
446*4b8b8d74SJaiprakash Singh {
447*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b == 0))
448*4b8b8d74SJaiprakash Singh return 0x830000004008ll + 0x1000000000ll * ((a) & 0x3);
449*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_CMDQ_CONTROL_PAGE_CFGX", 2, a, b, 0, 0, 0, 0);
450*4b8b8d74SJaiprakash Singh }
451*4b8b8d74SJaiprakash Singh
452*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_CMDQ_CONTROL_PAGE_CFGX(a, b) ody_smmux_cmdq_control_page_cfgx_t
453*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_CMDQ_CONTROL_PAGE_CFGX(a, b) CSR_TYPE_NCB32b
454*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_CMDQ_CONTROL_PAGE_CFGX(a, b) "SMMUX_CMDQ_CONTROL_PAGE_CFGX"
455*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_CMDQ_CONTROL_PAGE_CFGX(a, b) 0x0 /* PF_BAR0 */
456*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_CMDQ_CONTROL_PAGE_CFGX(a, b) (a)
457*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_CMDQ_CONTROL_PAGE_CFGX(a, b) (a), (b), -1, -1
458*4b8b8d74SJaiprakash Singh
459*4b8b8d74SJaiprakash Singh /**
460*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_cmdq_control_page_status#
461*4b8b8d74SJaiprakash Singh *
462*4b8b8d74SJaiprakash Singh * SMMU CMDQ Control Page Status Register
463*4b8b8d74SJaiprakash Singh * Status of Enhanced Command queue interface for the SMMU Non-secure programming interface.
464*4b8b8d74SJaiprakash Singh */
465*4b8b8d74SJaiprakash Singh union ody_smmux_cmdq_control_page_statusx {
466*4b8b8d74SJaiprakash Singh uint32_t u;
467*4b8b8d74SJaiprakash Singh struct ody_smmux_cmdq_control_page_statusx_s {
468*4b8b8d74SJaiprakash Singh uint32_t enack : 1;
469*4b8b8d74SJaiprakash Singh uint32_t reserved_1_31 : 31;
470*4b8b8d74SJaiprakash Singh } s;
471*4b8b8d74SJaiprakash Singh /* struct ody_smmux_cmdq_control_page_statusx_s cn; */
472*4b8b8d74SJaiprakash Singh };
473*4b8b8d74SJaiprakash Singh typedef union ody_smmux_cmdq_control_page_statusx ody_smmux_cmdq_control_page_statusx_t;
474*4b8b8d74SJaiprakash Singh
475*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CMDQ_CONTROL_PAGE_STATUSX(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_CMDQ_CONTROL_PAGE_STATUSX(uint64_t a,uint64_t b)476*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CMDQ_CONTROL_PAGE_STATUSX(uint64_t a, uint64_t b)
477*4b8b8d74SJaiprakash Singh {
478*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b == 0))
479*4b8b8d74SJaiprakash Singh return 0x83000000400cll + 0x1000000000ll * ((a) & 0x3);
480*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_CMDQ_CONTROL_PAGE_STATUSX", 2, a, b, 0, 0, 0, 0);
481*4b8b8d74SJaiprakash Singh }
482*4b8b8d74SJaiprakash Singh
483*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_CMDQ_CONTROL_PAGE_STATUSX(a, b) ody_smmux_cmdq_control_page_statusx_t
484*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_CMDQ_CONTROL_PAGE_STATUSX(a, b) CSR_TYPE_NCB32b
485*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_CMDQ_CONTROL_PAGE_STATUSX(a, b) "SMMUX_CMDQ_CONTROL_PAGE_STATUSX"
486*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_CMDQ_CONTROL_PAGE_STATUSX(a, b) 0x0 /* PF_BAR0 */
487*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_CMDQ_CONTROL_PAGE_STATUSX(a, b) (a)
488*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_CMDQ_CONTROL_PAGE_STATUSX(a, b) (a), (b), -1, -1
489*4b8b8d74SJaiprakash Singh
490*4b8b8d74SJaiprakash Singh /**
491*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_cmdq_prod
492*4b8b8d74SJaiprakash Singh *
493*4b8b8d74SJaiprakash Singh * SMMU Command Queue Producer Register
494*4b8b8d74SJaiprakash Singh */
495*4b8b8d74SJaiprakash Singh union ody_smmux_cmdq_prod {
496*4b8b8d74SJaiprakash Singh uint32_t u;
497*4b8b8d74SJaiprakash Singh struct ody_smmux_cmdq_prod_s {
498*4b8b8d74SJaiprakash Singh uint32_t wr : 20;
499*4b8b8d74SJaiprakash Singh uint32_t reserved_20_31 : 12;
500*4b8b8d74SJaiprakash Singh } s;
501*4b8b8d74SJaiprakash Singh /* struct ody_smmux_cmdq_prod_s cn; */
502*4b8b8d74SJaiprakash Singh };
503*4b8b8d74SJaiprakash Singh typedef union ody_smmux_cmdq_prod ody_smmux_cmdq_prod_t;
504*4b8b8d74SJaiprakash Singh
505*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CMDQ_PROD(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_CMDQ_PROD(uint64_t a)506*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CMDQ_PROD(uint64_t a)
507*4b8b8d74SJaiprakash Singh {
508*4b8b8d74SJaiprakash Singh if (a <= 3)
509*4b8b8d74SJaiprakash Singh return 0x830000000098ll + 0x1000000000ll * ((a) & 0x3);
510*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_CMDQ_PROD", 1, a, 0, 0, 0, 0, 0);
511*4b8b8d74SJaiprakash Singh }
512*4b8b8d74SJaiprakash Singh
513*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_CMDQ_PROD(a) ody_smmux_cmdq_prod_t
514*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_CMDQ_PROD(a) CSR_TYPE_NCB32b
515*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_CMDQ_PROD(a) "SMMUX_CMDQ_PROD"
516*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_CMDQ_PROD(a) 0x0 /* PF_BAR0 */
517*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_CMDQ_PROD(a) (a)
518*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_CMDQ_PROD(a) (a), -1, -1, -1
519*4b8b8d74SJaiprakash Singh
520*4b8b8d74SJaiprakash Singh /**
521*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_cr0
522*4b8b8d74SJaiprakash Singh *
523*4b8b8d74SJaiprakash Singh * SMMU Control 0 Register
524*4b8b8d74SJaiprakash Singh * Each field in this register has a corresponding field in SMMU()_CR0ACK. An
525*4b8b8d74SJaiprakash Singh * individual field is said to be "updated" after the value of the field observed in
526*4b8b8d74SJaiprakash Singh * SMMU()_CR0ACK matches the value that was written to the field in
527*4b8b8d74SJaiprakash Singh * SMMU()_CR0. Reserved fields in SMMU()_CR0 are not reflected in SMMU()_CR0ACK. To
528*4b8b8d74SJaiprakash Singh * ensure a field change has taken effect, software must poll the equivalent field in
529*4b8b8d74SJaiprakash Singh * SMMU()_CR0ACK after writing the field in this register.
530*4b8b8d74SJaiprakash Singh *
531*4b8b8d74SJaiprakash Singh * Each field in this register is independent and unaffected by ongoing update
532*4b8b8d74SJaiprakash Singh * procedures of adjacent fields.
533*4b8b8d74SJaiprakash Singh *
534*4b8b8d74SJaiprakash Singh * Update of a field must complete in reasonable time, but is not required to occur
535*4b8b8d74SJaiprakash Singh * immediately. The update process may have side effects which are guaranteed to be
536*4b8b8d74SJaiprakash Singh * complete by the time update completes. See below for details of any side effects.
537*4b8b8d74SJaiprakash Singh *
538*4b8b8d74SJaiprakash Singh * A field that has been written is considered to be in a transitional state until
539*4b8b8d74SJaiprakash Singh * update has completed. Anything depending on its value observes the old value until
540*4b8b8d74SJaiprakash Singh * the new value takes effect at an unpredictable point before update completes
541*4b8b8d74SJaiprakash Singh * whereupon the new value is guaranteed to be used, therefore:
542*4b8b8d74SJaiprakash Singh *
543*4b8b8d74SJaiprakash Singh * A written field cannot be assumed to have taken the new value until update completes.
544*4b8b8d74SJaiprakash Singh *
545*4b8b8d74SJaiprakash Singh * A written field cannot be assumed not to have taken the new value after the write is
546*4b8b8d74SJaiprakash Singh * observed by the SMMU.
547*4b8b8d74SJaiprakash Singh *
548*4b8b8d74SJaiprakash Singh * Anywhere behavior depending on a field value (for example, a rule of the form "REG
549*4b8b8d74SJaiprakash Singh * must only be changed if SMMUEN=0"), it is the post-update value that is referred
550*4b8b8d74SJaiprakash Singh * to. In this example, the rule would be broken were REG to be changed after the point
551*4b8b8d74SJaiprakash Singh * that SMMU()_(S_)SMMUEN has been written to one even if update has not
552*4b8b8d74SJaiprakash Singh * completed. Similarly, a field that has been written and is still in a transitional
553*4b8b8d74SJaiprakash Singh * state (pre-update completion) must be considered to still have the old value for the
554*4b8b8d74SJaiprakash Singh * purposes of constraints the old value places upon software. For example,
555*4b8b8d74SJaiprakash Singh * SMMU()_CMDQ_CONS must not be written when CMDQEN=1, or during an as -yet incomplete
556*4b8b8d74SJaiprakash Singh * transition to 0 (as [CMDQEN] must still be considered to be one).
557*4b8b8d74SJaiprakash Singh *
558*4b8b8d74SJaiprakash Singh * After altering a field value, software must not alter the field's value again before
559*4b8b8d74SJaiprakash Singh * the initial alteration's update is complete. Behavior on doing so is constrained
560*4b8b8d74SJaiprakash Singh * unpredictable and one of the following occurs: The new value is stored and the
561*4b8b8d74SJaiprakash Singh * update completes with any of the values written.
562*4b8b8d74SJaiprakash Singh *
563*4b8b8d74SJaiprakash Singh * The effective field value in use might not match that read back from this register.
564*4b8b8d74SJaiprakash Singh * The new value is ignored and update completes using the first value (reflected in
565*4b8b8d74SJaiprakash Singh * SMMU()_CR0ACK). Cease update if the new value is the same as the original value
566*4b8b8d74SJaiprakash Singh * before the first write. This means no update side effects would occur.
567*4b8b8d74SJaiprakash Singh *
568*4b8b8d74SJaiprakash Singh * A write with the same value (i.e. not altered) is permitted; this might occur when
569*4b8b8d74SJaiprakash Singh * altering an unrelated field in the same register whilst an earlier field update is
570*4b8b8d74SJaiprakash Singh * in process.
571*4b8b8d74SJaiprakash Singh */
572*4b8b8d74SJaiprakash Singh union ody_smmux_cr0 {
573*4b8b8d74SJaiprakash Singh uint32_t u;
574*4b8b8d74SJaiprakash Singh struct ody_smmux_cr0_s {
575*4b8b8d74SJaiprakash Singh uint32_t smmuen : 1;
576*4b8b8d74SJaiprakash Singh uint32_t priqen : 1;
577*4b8b8d74SJaiprakash Singh uint32_t eventqen : 1;
578*4b8b8d74SJaiprakash Singh uint32_t cmdqen : 1;
579*4b8b8d74SJaiprakash Singh uint32_t atschk : 1;
580*4b8b8d74SJaiprakash Singh uint32_t reserved_5 : 1;
581*4b8b8d74SJaiprakash Singh uint32_t vmw : 3;
582*4b8b8d74SJaiprakash Singh uint32_t reserved_9_31 : 23;
583*4b8b8d74SJaiprakash Singh } s;
584*4b8b8d74SJaiprakash Singh /* struct ody_smmux_cr0_s cn; */
585*4b8b8d74SJaiprakash Singh };
586*4b8b8d74SJaiprakash Singh typedef union ody_smmux_cr0 ody_smmux_cr0_t;
587*4b8b8d74SJaiprakash Singh
588*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CR0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_CR0(uint64_t a)589*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CR0(uint64_t a)
590*4b8b8d74SJaiprakash Singh {
591*4b8b8d74SJaiprakash Singh if (a <= 3)
592*4b8b8d74SJaiprakash Singh return 0x830000000020ll + 0x1000000000ll * ((a) & 0x3);
593*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_CR0", 1, a, 0, 0, 0, 0, 0);
594*4b8b8d74SJaiprakash Singh }
595*4b8b8d74SJaiprakash Singh
596*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_CR0(a) ody_smmux_cr0_t
597*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_CR0(a) CSR_TYPE_NCB32b
598*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_CR0(a) "SMMUX_CR0"
599*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_CR0(a) 0x0 /* PF_BAR0 */
600*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_CR0(a) (a)
601*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_CR0(a) (a), -1, -1, -1
602*4b8b8d74SJaiprakash Singh
603*4b8b8d74SJaiprakash Singh /**
604*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_cr0ack
605*4b8b8d74SJaiprakash Singh *
606*4b8b8d74SJaiprakash Singh * SMMU Control 0 Acknowledgement Register
607*4b8b8d74SJaiprakash Singh * This register is a read-only copy of SMMU()_CR0.
608*4b8b8d74SJaiprakash Singh */
609*4b8b8d74SJaiprakash Singh union ody_smmux_cr0ack {
610*4b8b8d74SJaiprakash Singh uint32_t u;
611*4b8b8d74SJaiprakash Singh struct ody_smmux_cr0ack_s {
612*4b8b8d74SJaiprakash Singh uint32_t smmuen : 1;
613*4b8b8d74SJaiprakash Singh uint32_t priqen : 1;
614*4b8b8d74SJaiprakash Singh uint32_t eventqen : 1;
615*4b8b8d74SJaiprakash Singh uint32_t cmdqen : 1;
616*4b8b8d74SJaiprakash Singh uint32_t atschk : 1;
617*4b8b8d74SJaiprakash Singh uint32_t reserved_5 : 1;
618*4b8b8d74SJaiprakash Singh uint32_t vmw : 3;
619*4b8b8d74SJaiprakash Singh uint32_t reserved_9_31 : 23;
620*4b8b8d74SJaiprakash Singh } s;
621*4b8b8d74SJaiprakash Singh /* struct ody_smmux_cr0ack_s cn; */
622*4b8b8d74SJaiprakash Singh };
623*4b8b8d74SJaiprakash Singh typedef union ody_smmux_cr0ack ody_smmux_cr0ack_t;
624*4b8b8d74SJaiprakash Singh
625*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CR0ACK(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_CR0ACK(uint64_t a)626*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CR0ACK(uint64_t a)
627*4b8b8d74SJaiprakash Singh {
628*4b8b8d74SJaiprakash Singh if (a <= 3)
629*4b8b8d74SJaiprakash Singh return 0x830000000024ll + 0x1000000000ll * ((a) & 0x3);
630*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_CR0ACK", 1, a, 0, 0, 0, 0, 0);
631*4b8b8d74SJaiprakash Singh }
632*4b8b8d74SJaiprakash Singh
633*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_CR0ACK(a) ody_smmux_cr0ack_t
634*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_CR0ACK(a) CSR_TYPE_NCB32b
635*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_CR0ACK(a) "SMMUX_CR0ACK"
636*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_CR0ACK(a) 0x0 /* PF_BAR0 */
637*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_CR0ACK(a) (a)
638*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_CR0ACK(a) (a), -1, -1, -1
639*4b8b8d74SJaiprakash Singh
640*4b8b8d74SJaiprakash Singh /**
641*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_cr1
642*4b8b8d74SJaiprakash Singh *
643*4b8b8d74SJaiprakash Singh * SMMU Control 1 Register
644*4b8b8d74SJaiprakash Singh */
645*4b8b8d74SJaiprakash Singh union ody_smmux_cr1 {
646*4b8b8d74SJaiprakash Singh uint32_t u;
647*4b8b8d74SJaiprakash Singh struct ody_smmux_cr1_s {
648*4b8b8d74SJaiprakash Singh uint32_t queue_ic : 2;
649*4b8b8d74SJaiprakash Singh uint32_t queue_oc : 2;
650*4b8b8d74SJaiprakash Singh uint32_t queue_sh : 2;
651*4b8b8d74SJaiprakash Singh uint32_t table_ic : 2;
652*4b8b8d74SJaiprakash Singh uint32_t table_oc : 2;
653*4b8b8d74SJaiprakash Singh uint32_t table_sh : 2;
654*4b8b8d74SJaiprakash Singh uint32_t reserved_12_31 : 20;
655*4b8b8d74SJaiprakash Singh } s;
656*4b8b8d74SJaiprakash Singh /* struct ody_smmux_cr1_s cn; */
657*4b8b8d74SJaiprakash Singh };
658*4b8b8d74SJaiprakash Singh typedef union ody_smmux_cr1 ody_smmux_cr1_t;
659*4b8b8d74SJaiprakash Singh
660*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CR1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_CR1(uint64_t a)661*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CR1(uint64_t a)
662*4b8b8d74SJaiprakash Singh {
663*4b8b8d74SJaiprakash Singh if (a <= 3)
664*4b8b8d74SJaiprakash Singh return 0x830000000028ll + 0x1000000000ll * ((a) & 0x3);
665*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_CR1", 1, a, 0, 0, 0, 0, 0);
666*4b8b8d74SJaiprakash Singh }
667*4b8b8d74SJaiprakash Singh
668*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_CR1(a) ody_smmux_cr1_t
669*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_CR1(a) CSR_TYPE_NCB32b
670*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_CR1(a) "SMMUX_CR1"
671*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_CR1(a) 0x0 /* PF_BAR0 */
672*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_CR1(a) (a)
673*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_CR1(a) (a), -1, -1, -1
674*4b8b8d74SJaiprakash Singh
675*4b8b8d74SJaiprakash Singh /**
676*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_cr2
677*4b8b8d74SJaiprakash Singh *
678*4b8b8d74SJaiprakash Singh * SMMU Control 2 Register
679*4b8b8d74SJaiprakash Singh */
680*4b8b8d74SJaiprakash Singh union ody_smmux_cr2 {
681*4b8b8d74SJaiprakash Singh uint32_t u;
682*4b8b8d74SJaiprakash Singh struct ody_smmux_cr2_s {
683*4b8b8d74SJaiprakash Singh uint32_t e2h : 1;
684*4b8b8d74SJaiprakash Singh uint32_t recinvsid : 1;
685*4b8b8d74SJaiprakash Singh uint32_t ptm : 1;
686*4b8b8d74SJaiprakash Singh uint32_t reserved_3_31 : 29;
687*4b8b8d74SJaiprakash Singh } s;
688*4b8b8d74SJaiprakash Singh /* struct ody_smmux_cr2_s cn; */
689*4b8b8d74SJaiprakash Singh };
690*4b8b8d74SJaiprakash Singh typedef union ody_smmux_cr2 ody_smmux_cr2_t;
691*4b8b8d74SJaiprakash Singh
692*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CR2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_CR2(uint64_t a)693*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_CR2(uint64_t a)
694*4b8b8d74SJaiprakash Singh {
695*4b8b8d74SJaiprakash Singh if (a <= 3)
696*4b8b8d74SJaiprakash Singh return 0x83000000002cll + 0x1000000000ll * ((a) & 0x3);
697*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_CR2", 1, a, 0, 0, 0, 0, 0);
698*4b8b8d74SJaiprakash Singh }
699*4b8b8d74SJaiprakash Singh
700*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_CR2(a) ody_smmux_cr2_t
701*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_CR2(a) CSR_TYPE_NCB32b
702*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_CR2(a) "SMMUX_CR2"
703*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_CR2(a) 0x0 /* PF_BAR0 */
704*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_CR2(a) (a)
705*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_CR2(a) (a), -1, -1, -1
706*4b8b8d74SJaiprakash Singh
707*4b8b8d74SJaiprakash Singh /**
708*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_ecmdq_base#
709*4b8b8d74SJaiprakash Singh *
710*4b8b8d74SJaiprakash Singh * SMMU Enhanced Command Queue Base Register
711*4b8b8d74SJaiprakash Singh * Configuration of the Command queue base address.
712*4b8b8d74SJaiprakash Singh */
713*4b8b8d74SJaiprakash Singh union ody_smmux_ecmdq_basex {
714*4b8b8d74SJaiprakash Singh uint64_t u;
715*4b8b8d74SJaiprakash Singh struct ody_smmux_ecmdq_basex_s {
716*4b8b8d74SJaiprakash Singh uint64_t log2size : 5;
717*4b8b8d74SJaiprakash Singh uint64_t addr : 47;
718*4b8b8d74SJaiprakash Singh uint64_t reserved_52_61 : 10;
719*4b8b8d74SJaiprakash Singh uint64_t ra : 1;
720*4b8b8d74SJaiprakash Singh uint64_t reserved_63 : 1;
721*4b8b8d74SJaiprakash Singh } s;
722*4b8b8d74SJaiprakash Singh /* struct ody_smmux_ecmdq_basex_s cn; */
723*4b8b8d74SJaiprakash Singh };
724*4b8b8d74SJaiprakash Singh typedef union ody_smmux_ecmdq_basex ody_smmux_ecmdq_basex_t;
725*4b8b8d74SJaiprakash Singh
726*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_ECMDQ_BASEX(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_ECMDQ_BASEX(uint64_t a,uint64_t b)727*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_ECMDQ_BASEX(uint64_t a, uint64_t b)
728*4b8b8d74SJaiprakash Singh {
729*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 127))
730*4b8b8d74SJaiprakash Singh return 0x830000180000ll + 0x1000000000ll * ((a) & 0x3) + 0x200ll * ((b) & 0x7f);
731*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_ECMDQ_BASEX", 2, a, b, 0, 0, 0, 0);
732*4b8b8d74SJaiprakash Singh }
733*4b8b8d74SJaiprakash Singh
734*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_ECMDQ_BASEX(a, b) ody_smmux_ecmdq_basex_t
735*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_ECMDQ_BASEX(a, b) CSR_TYPE_NCB
736*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_ECMDQ_BASEX(a, b) "SMMUX_ECMDQ_BASEX"
737*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_ECMDQ_BASEX(a, b) 0x0 /* PF_BAR0 */
738*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_ECMDQ_BASEX(a, b) (a)
739*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_ECMDQ_BASEX(a, b) (a), (b), -1, -1
740*4b8b8d74SJaiprakash Singh
741*4b8b8d74SJaiprakash Singh /**
742*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_ecmdq_cons#
743*4b8b8d74SJaiprakash Singh *
744*4b8b8d74SJaiprakash Singh * SMMU Enhanced Command Queue Consumer Register
745*4b8b8d74SJaiprakash Singh * Command queue consumer read index.
746*4b8b8d74SJaiprakash Singh */
747*4b8b8d74SJaiprakash Singh union ody_smmux_ecmdq_consx {
748*4b8b8d74SJaiprakash Singh uint32_t u;
749*4b8b8d74SJaiprakash Singh struct ody_smmux_ecmdq_consx_s {
750*4b8b8d74SJaiprakash Singh uint32_t rd : 20;
751*4b8b8d74SJaiprakash Singh uint32_t reserved_20_22 : 3;
752*4b8b8d74SJaiprakash Singh uint32_t errx : 1;
753*4b8b8d74SJaiprakash Singh uint32_t err_reason : 3;
754*4b8b8d74SJaiprakash Singh uint32_t reserved_27_30 : 4;
755*4b8b8d74SJaiprakash Singh uint32_t enack : 1;
756*4b8b8d74SJaiprakash Singh } s;
757*4b8b8d74SJaiprakash Singh /* struct ody_smmux_ecmdq_consx_s cn; */
758*4b8b8d74SJaiprakash Singh };
759*4b8b8d74SJaiprakash Singh typedef union ody_smmux_ecmdq_consx ody_smmux_ecmdq_consx_t;
760*4b8b8d74SJaiprakash Singh
761*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_ECMDQ_CONSX(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_ECMDQ_CONSX(uint64_t a,uint64_t b)762*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_ECMDQ_CONSX(uint64_t a, uint64_t b)
763*4b8b8d74SJaiprakash Singh {
764*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 127))
765*4b8b8d74SJaiprakash Singh return 0x83000018000cll + 0x1000000000ll * ((a) & 0x3) + 0x200ll * ((b) & 0x7f);
766*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_ECMDQ_CONSX", 2, a, b, 0, 0, 0, 0);
767*4b8b8d74SJaiprakash Singh }
768*4b8b8d74SJaiprakash Singh
769*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_ECMDQ_CONSX(a, b) ody_smmux_ecmdq_consx_t
770*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_ECMDQ_CONSX(a, b) CSR_TYPE_NCB32b
771*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_ECMDQ_CONSX(a, b) "SMMUX_ECMDQ_CONSX"
772*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_ECMDQ_CONSX(a, b) 0x0 /* PF_BAR0 */
773*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_ECMDQ_CONSX(a, b) (a)
774*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_ECMDQ_CONSX(a, b) (a), (b), -1, -1
775*4b8b8d74SJaiprakash Singh
776*4b8b8d74SJaiprakash Singh /**
777*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_ecmdq_prod#
778*4b8b8d74SJaiprakash Singh *
779*4b8b8d74SJaiprakash Singh * SMMU Enhanced Command Queue Producer Register
780*4b8b8d74SJaiprakash Singh * Allows Command queue producer to update the write index.
781*4b8b8d74SJaiprakash Singh */
782*4b8b8d74SJaiprakash Singh union ody_smmux_ecmdq_prodx {
783*4b8b8d74SJaiprakash Singh uint32_t u;
784*4b8b8d74SJaiprakash Singh struct ody_smmux_ecmdq_prodx_s {
785*4b8b8d74SJaiprakash Singh uint32_t wr : 20;
786*4b8b8d74SJaiprakash Singh uint32_t reserved_20_22 : 3;
787*4b8b8d74SJaiprakash Singh uint32_t errack : 1;
788*4b8b8d74SJaiprakash Singh uint32_t reserved_24_30 : 7;
789*4b8b8d74SJaiprakash Singh uint32_t en : 1;
790*4b8b8d74SJaiprakash Singh } s;
791*4b8b8d74SJaiprakash Singh /* struct ody_smmux_ecmdq_prodx_s cn; */
792*4b8b8d74SJaiprakash Singh };
793*4b8b8d74SJaiprakash Singh typedef union ody_smmux_ecmdq_prodx ody_smmux_ecmdq_prodx_t;
794*4b8b8d74SJaiprakash Singh
795*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_ECMDQ_PRODX(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_ECMDQ_PRODX(uint64_t a,uint64_t b)796*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_ECMDQ_PRODX(uint64_t a, uint64_t b)
797*4b8b8d74SJaiprakash Singh {
798*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 127))
799*4b8b8d74SJaiprakash Singh return 0x830000180008ll + 0x1000000000ll * ((a) & 0x3) + 0x200ll * ((b) & 0x7f);
800*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_ECMDQ_PRODX", 2, a, b, 0, 0, 0, 0);
801*4b8b8d74SJaiprakash Singh }
802*4b8b8d74SJaiprakash Singh
803*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_ECMDQ_PRODX(a, b) ody_smmux_ecmdq_prodx_t
804*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_ECMDQ_PRODX(a, b) CSR_TYPE_NCB32b
805*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_ECMDQ_PRODX(a, b) "SMMUX_ECMDQ_PRODX"
806*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_ECMDQ_PRODX(a, b) 0x0 /* PF_BAR0 */
807*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_ECMDQ_PRODX(a, b) (a)
808*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_ECMDQ_PRODX(a, b) (a), (b), -1, -1
809*4b8b8d74SJaiprakash Singh
810*4b8b8d74SJaiprakash Singh /**
811*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_eventq_base
812*4b8b8d74SJaiprakash Singh *
813*4b8b8d74SJaiprakash Singh * SMMU Event Queue Base Register
814*4b8b8d74SJaiprakash Singh */
815*4b8b8d74SJaiprakash Singh union ody_smmux_eventq_base {
816*4b8b8d74SJaiprakash Singh uint64_t u;
817*4b8b8d74SJaiprakash Singh struct ody_smmux_eventq_base_s {
818*4b8b8d74SJaiprakash Singh uint64_t log2size : 5;
819*4b8b8d74SJaiprakash Singh uint64_t addr : 47;
820*4b8b8d74SJaiprakash Singh uint64_t reserved_52_61 : 10;
821*4b8b8d74SJaiprakash Singh uint64_t wa : 1;
822*4b8b8d74SJaiprakash Singh uint64_t reserved_63 : 1;
823*4b8b8d74SJaiprakash Singh } s;
824*4b8b8d74SJaiprakash Singh /* struct ody_smmux_eventq_base_s cn; */
825*4b8b8d74SJaiprakash Singh };
826*4b8b8d74SJaiprakash Singh typedef union ody_smmux_eventq_base ody_smmux_eventq_base_t;
827*4b8b8d74SJaiprakash Singh
828*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_EVENTQ_BASE(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_EVENTQ_BASE(uint64_t a)829*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_EVENTQ_BASE(uint64_t a)
830*4b8b8d74SJaiprakash Singh {
831*4b8b8d74SJaiprakash Singh if (a <= 3)
832*4b8b8d74SJaiprakash Singh return 0x8300000000a0ll + 0x1000000000ll * ((a) & 0x3);
833*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_EVENTQ_BASE", 1, a, 0, 0, 0, 0, 0);
834*4b8b8d74SJaiprakash Singh }
835*4b8b8d74SJaiprakash Singh
836*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_EVENTQ_BASE(a) ody_smmux_eventq_base_t
837*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_EVENTQ_BASE(a) CSR_TYPE_NCB
838*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_EVENTQ_BASE(a) "SMMUX_EVENTQ_BASE"
839*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_EVENTQ_BASE(a) 0x0 /* PF_BAR0 */
840*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_EVENTQ_BASE(a) (a)
841*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_EVENTQ_BASE(a) (a), -1, -1, -1
842*4b8b8d74SJaiprakash Singh
843*4b8b8d74SJaiprakash Singh /**
844*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_eventq_cons
845*4b8b8d74SJaiprakash Singh *
846*4b8b8d74SJaiprakash Singh * SMMU Event Queue Consumer Register
847*4b8b8d74SJaiprakash Singh */
848*4b8b8d74SJaiprakash Singh union ody_smmux_eventq_cons {
849*4b8b8d74SJaiprakash Singh uint32_t u;
850*4b8b8d74SJaiprakash Singh struct ody_smmux_eventq_cons_s {
851*4b8b8d74SJaiprakash Singh uint32_t rd : 20;
852*4b8b8d74SJaiprakash Singh uint32_t reserved_20_30 : 11;
853*4b8b8d74SJaiprakash Singh uint32_t ovackflg : 1;
854*4b8b8d74SJaiprakash Singh } s;
855*4b8b8d74SJaiprakash Singh /* struct ody_smmux_eventq_cons_s cn; */
856*4b8b8d74SJaiprakash Singh };
857*4b8b8d74SJaiprakash Singh typedef union ody_smmux_eventq_cons ody_smmux_eventq_cons_t;
858*4b8b8d74SJaiprakash Singh
859*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_EVENTQ_CONS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_EVENTQ_CONS(uint64_t a)860*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_EVENTQ_CONS(uint64_t a)
861*4b8b8d74SJaiprakash Singh {
862*4b8b8d74SJaiprakash Singh if (a <= 3)
863*4b8b8d74SJaiprakash Singh return 0x8300000100acll + 0x1000000000ll * ((a) & 0x3);
864*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_EVENTQ_CONS", 1, a, 0, 0, 0, 0, 0);
865*4b8b8d74SJaiprakash Singh }
866*4b8b8d74SJaiprakash Singh
867*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_EVENTQ_CONS(a) ody_smmux_eventq_cons_t
868*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_EVENTQ_CONS(a) CSR_TYPE_NCB32b
869*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_EVENTQ_CONS(a) "SMMUX_EVENTQ_CONS"
870*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_EVENTQ_CONS(a) 0x0 /* PF_BAR0 */
871*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_EVENTQ_CONS(a) (a)
872*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_EVENTQ_CONS(a) (a), -1, -1, -1
873*4b8b8d74SJaiprakash Singh
874*4b8b8d74SJaiprakash Singh /**
875*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_eventq_irq_cfg0
876*4b8b8d74SJaiprakash Singh *
877*4b8b8d74SJaiprakash Singh * SMMU Event Queue Interrupt Configuration 0 Register
878*4b8b8d74SJaiprakash Singh */
879*4b8b8d74SJaiprakash Singh union ody_smmux_eventq_irq_cfg0 {
880*4b8b8d74SJaiprakash Singh uint64_t u;
881*4b8b8d74SJaiprakash Singh struct ody_smmux_eventq_irq_cfg0_s {
882*4b8b8d74SJaiprakash Singh uint64_t reserved_0_1 : 2;
883*4b8b8d74SJaiprakash Singh uint64_t addr : 50;
884*4b8b8d74SJaiprakash Singh uint64_t reserved_52_63 : 12;
885*4b8b8d74SJaiprakash Singh } s;
886*4b8b8d74SJaiprakash Singh /* struct ody_smmux_eventq_irq_cfg0_s cn; */
887*4b8b8d74SJaiprakash Singh };
888*4b8b8d74SJaiprakash Singh typedef union ody_smmux_eventq_irq_cfg0 ody_smmux_eventq_irq_cfg0_t;
889*4b8b8d74SJaiprakash Singh
890*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_EVENTQ_IRQ_CFG0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_EVENTQ_IRQ_CFG0(uint64_t a)891*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_EVENTQ_IRQ_CFG0(uint64_t a)
892*4b8b8d74SJaiprakash Singh {
893*4b8b8d74SJaiprakash Singh if (a <= 3)
894*4b8b8d74SJaiprakash Singh return 0x8300000000b0ll + 0x1000000000ll * ((a) & 0x3);
895*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_EVENTQ_IRQ_CFG0", 1, a, 0, 0, 0, 0, 0);
896*4b8b8d74SJaiprakash Singh }
897*4b8b8d74SJaiprakash Singh
898*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_EVENTQ_IRQ_CFG0(a) ody_smmux_eventq_irq_cfg0_t
899*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_EVENTQ_IRQ_CFG0(a) CSR_TYPE_NCB
900*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_EVENTQ_IRQ_CFG0(a) "SMMUX_EVENTQ_IRQ_CFG0"
901*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_EVENTQ_IRQ_CFG0(a) 0x0 /* PF_BAR0 */
902*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_EVENTQ_IRQ_CFG0(a) (a)
903*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_EVENTQ_IRQ_CFG0(a) (a), -1, -1, -1
904*4b8b8d74SJaiprakash Singh
905*4b8b8d74SJaiprakash Singh /**
906*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_eventq_irq_cfg1
907*4b8b8d74SJaiprakash Singh *
908*4b8b8d74SJaiprakash Singh * SMMU Event Queue Interrupt Configuration 1 Register
909*4b8b8d74SJaiprakash Singh */
910*4b8b8d74SJaiprakash Singh union ody_smmux_eventq_irq_cfg1 {
911*4b8b8d74SJaiprakash Singh uint32_t u;
912*4b8b8d74SJaiprakash Singh struct ody_smmux_eventq_irq_cfg1_s {
913*4b8b8d74SJaiprakash Singh uint32_t data : 32;
914*4b8b8d74SJaiprakash Singh } s;
915*4b8b8d74SJaiprakash Singh /* struct ody_smmux_eventq_irq_cfg1_s cn; */
916*4b8b8d74SJaiprakash Singh };
917*4b8b8d74SJaiprakash Singh typedef union ody_smmux_eventq_irq_cfg1 ody_smmux_eventq_irq_cfg1_t;
918*4b8b8d74SJaiprakash Singh
919*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_EVENTQ_IRQ_CFG1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_EVENTQ_IRQ_CFG1(uint64_t a)920*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_EVENTQ_IRQ_CFG1(uint64_t a)
921*4b8b8d74SJaiprakash Singh {
922*4b8b8d74SJaiprakash Singh if (a <= 3)
923*4b8b8d74SJaiprakash Singh return 0x8300000000b8ll + 0x1000000000ll * ((a) & 0x3);
924*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_EVENTQ_IRQ_CFG1", 1, a, 0, 0, 0, 0, 0);
925*4b8b8d74SJaiprakash Singh }
926*4b8b8d74SJaiprakash Singh
927*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_EVENTQ_IRQ_CFG1(a) ody_smmux_eventq_irq_cfg1_t
928*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_EVENTQ_IRQ_CFG1(a) CSR_TYPE_NCB32b
929*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_EVENTQ_IRQ_CFG1(a) "SMMUX_EVENTQ_IRQ_CFG1"
930*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_EVENTQ_IRQ_CFG1(a) 0x0 /* PF_BAR0 */
931*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_EVENTQ_IRQ_CFG1(a) (a)
932*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_EVENTQ_IRQ_CFG1(a) (a), -1, -1, -1
933*4b8b8d74SJaiprakash Singh
934*4b8b8d74SJaiprakash Singh /**
935*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_eventq_irq_cfg2
936*4b8b8d74SJaiprakash Singh *
937*4b8b8d74SJaiprakash Singh * SMMU Event Queue Interrupt Configuration 2 Register
938*4b8b8d74SJaiprakash Singh */
939*4b8b8d74SJaiprakash Singh union ody_smmux_eventq_irq_cfg2 {
940*4b8b8d74SJaiprakash Singh uint32_t u;
941*4b8b8d74SJaiprakash Singh struct ody_smmux_eventq_irq_cfg2_s {
942*4b8b8d74SJaiprakash Singh uint32_t memattr : 4;
943*4b8b8d74SJaiprakash Singh uint32_t sh : 2;
944*4b8b8d74SJaiprakash Singh uint32_t reserved_6_31 : 26;
945*4b8b8d74SJaiprakash Singh } s;
946*4b8b8d74SJaiprakash Singh /* struct ody_smmux_eventq_irq_cfg2_s cn; */
947*4b8b8d74SJaiprakash Singh };
948*4b8b8d74SJaiprakash Singh typedef union ody_smmux_eventq_irq_cfg2 ody_smmux_eventq_irq_cfg2_t;
949*4b8b8d74SJaiprakash Singh
950*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_EVENTQ_IRQ_CFG2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_EVENTQ_IRQ_CFG2(uint64_t a)951*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_EVENTQ_IRQ_CFG2(uint64_t a)
952*4b8b8d74SJaiprakash Singh {
953*4b8b8d74SJaiprakash Singh if (a <= 3)
954*4b8b8d74SJaiprakash Singh return 0x8300000000bcll + 0x1000000000ll * ((a) & 0x3);
955*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_EVENTQ_IRQ_CFG2", 1, a, 0, 0, 0, 0, 0);
956*4b8b8d74SJaiprakash Singh }
957*4b8b8d74SJaiprakash Singh
958*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_EVENTQ_IRQ_CFG2(a) ody_smmux_eventq_irq_cfg2_t
959*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_EVENTQ_IRQ_CFG2(a) CSR_TYPE_NCB32b
960*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_EVENTQ_IRQ_CFG2(a) "SMMUX_EVENTQ_IRQ_CFG2"
961*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_EVENTQ_IRQ_CFG2(a) 0x0 /* PF_BAR0 */
962*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_EVENTQ_IRQ_CFG2(a) (a)
963*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_EVENTQ_IRQ_CFG2(a) (a), -1, -1, -1
964*4b8b8d74SJaiprakash Singh
965*4b8b8d74SJaiprakash Singh /**
966*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_eventq_prod
967*4b8b8d74SJaiprakash Singh *
968*4b8b8d74SJaiprakash Singh * SMMU Event Queue Producer Register
969*4b8b8d74SJaiprakash Singh */
970*4b8b8d74SJaiprakash Singh union ody_smmux_eventq_prod {
971*4b8b8d74SJaiprakash Singh uint32_t u;
972*4b8b8d74SJaiprakash Singh struct ody_smmux_eventq_prod_s {
973*4b8b8d74SJaiprakash Singh uint32_t wr : 20;
974*4b8b8d74SJaiprakash Singh uint32_t reserved_20_30 : 11;
975*4b8b8d74SJaiprakash Singh uint32_t ovflg : 1;
976*4b8b8d74SJaiprakash Singh } s;
977*4b8b8d74SJaiprakash Singh /* struct ody_smmux_eventq_prod_s cn; */
978*4b8b8d74SJaiprakash Singh };
979*4b8b8d74SJaiprakash Singh typedef union ody_smmux_eventq_prod ody_smmux_eventq_prod_t;
980*4b8b8d74SJaiprakash Singh
981*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_EVENTQ_PROD(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_EVENTQ_PROD(uint64_t a)982*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_EVENTQ_PROD(uint64_t a)
983*4b8b8d74SJaiprakash Singh {
984*4b8b8d74SJaiprakash Singh if (a <= 3)
985*4b8b8d74SJaiprakash Singh return 0x8300000100a8ll + 0x1000000000ll * ((a) & 0x3);
986*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_EVENTQ_PROD", 1, a, 0, 0, 0, 0, 0);
987*4b8b8d74SJaiprakash Singh }
988*4b8b8d74SJaiprakash Singh
989*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_EVENTQ_PROD(a) ody_smmux_eventq_prod_t
990*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_EVENTQ_PROD(a) CSR_TYPE_NCB32b
991*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_EVENTQ_PROD(a) "SMMUX_EVENTQ_PROD"
992*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_EVENTQ_PROD(a) 0x0 /* PF_BAR0 */
993*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_EVENTQ_PROD(a) (a)
994*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_EVENTQ_PROD(a) (a), -1, -1, -1
995*4b8b8d74SJaiprakash Singh
996*4b8b8d74SJaiprakash Singh /**
997*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_gatos_addr
998*4b8b8d74SJaiprakash Singh *
999*4b8b8d74SJaiprakash Singh * SMMU GATOS Address Register
1000*4b8b8d74SJaiprakash Singh */
1001*4b8b8d74SJaiprakash Singh union ody_smmux_gatos_addr {
1002*4b8b8d74SJaiprakash Singh uint64_t u;
1003*4b8b8d74SJaiprakash Singh struct ody_smmux_gatos_addr_s {
1004*4b8b8d74SJaiprakash Singh uint64_t reserved_0_3 : 4;
1005*4b8b8d74SJaiprakash Singh uint64_t ns_ind : 1;
1006*4b8b8d74SJaiprakash Singh uint64_t reserved_5 : 1;
1007*4b8b8d74SJaiprakash Singh uint64_t httui : 1;
1008*4b8b8d74SJaiprakash Singh uint64_t ind : 1;
1009*4b8b8d74SJaiprakash Singh uint64_t rnw : 1;
1010*4b8b8d74SJaiprakash Singh uint64_t pnu : 1;
1011*4b8b8d74SJaiprakash Singh uint64_t rtype : 2;
1012*4b8b8d74SJaiprakash Singh uint64_t addr : 52;
1013*4b8b8d74SJaiprakash Singh } s;
1014*4b8b8d74SJaiprakash Singh /* struct ody_smmux_gatos_addr_s cn; */
1015*4b8b8d74SJaiprakash Singh };
1016*4b8b8d74SJaiprakash Singh typedef union ody_smmux_gatos_addr ody_smmux_gatos_addr_t;
1017*4b8b8d74SJaiprakash Singh
1018*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GATOS_ADDR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_GATOS_ADDR(uint64_t a)1019*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GATOS_ADDR(uint64_t a)
1020*4b8b8d74SJaiprakash Singh {
1021*4b8b8d74SJaiprakash Singh if (a <= 3)
1022*4b8b8d74SJaiprakash Singh return 0x830000000110ll + 0x1000000000ll * ((a) & 0x3);
1023*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_GATOS_ADDR", 1, a, 0, 0, 0, 0, 0);
1024*4b8b8d74SJaiprakash Singh }
1025*4b8b8d74SJaiprakash Singh
1026*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_GATOS_ADDR(a) ody_smmux_gatos_addr_t
1027*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_GATOS_ADDR(a) CSR_TYPE_NCB
1028*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_GATOS_ADDR(a) "SMMUX_GATOS_ADDR"
1029*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_GATOS_ADDR(a) 0x0 /* PF_BAR0 */
1030*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_GATOS_ADDR(a) (a)
1031*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_GATOS_ADDR(a) (a), -1, -1, -1
1032*4b8b8d74SJaiprakash Singh
1033*4b8b8d74SJaiprakash Singh /**
1034*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_gatos_ctrl
1035*4b8b8d74SJaiprakash Singh *
1036*4b8b8d74SJaiprakash Singh * SMMU GATOS Control Register
1037*4b8b8d74SJaiprakash Singh */
1038*4b8b8d74SJaiprakash Singh union ody_smmux_gatos_ctrl {
1039*4b8b8d74SJaiprakash Singh uint32_t u;
1040*4b8b8d74SJaiprakash Singh struct ody_smmux_gatos_ctrl_s {
1041*4b8b8d74SJaiprakash Singh uint32_t run : 1;
1042*4b8b8d74SJaiprakash Singh uint32_t reserved_1_31 : 31;
1043*4b8b8d74SJaiprakash Singh } s;
1044*4b8b8d74SJaiprakash Singh /* struct ody_smmux_gatos_ctrl_s cn; */
1045*4b8b8d74SJaiprakash Singh };
1046*4b8b8d74SJaiprakash Singh typedef union ody_smmux_gatos_ctrl ody_smmux_gatos_ctrl_t;
1047*4b8b8d74SJaiprakash Singh
1048*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GATOS_CTRL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_GATOS_CTRL(uint64_t a)1049*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GATOS_CTRL(uint64_t a)
1050*4b8b8d74SJaiprakash Singh {
1051*4b8b8d74SJaiprakash Singh if (a <= 3)
1052*4b8b8d74SJaiprakash Singh return 0x830000000100ll + 0x1000000000ll * ((a) & 0x3);
1053*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_GATOS_CTRL", 1, a, 0, 0, 0, 0, 0);
1054*4b8b8d74SJaiprakash Singh }
1055*4b8b8d74SJaiprakash Singh
1056*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_GATOS_CTRL(a) ody_smmux_gatos_ctrl_t
1057*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_GATOS_CTRL(a) CSR_TYPE_NCB32b
1058*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_GATOS_CTRL(a) "SMMUX_GATOS_CTRL"
1059*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_GATOS_CTRL(a) 0x0 /* PF_BAR0 */
1060*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_GATOS_CTRL(a) (a)
1061*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_GATOS_CTRL(a) (a), -1, -1, -1
1062*4b8b8d74SJaiprakash Singh
1063*4b8b8d74SJaiprakash Singh /**
1064*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_gatos_par
1065*4b8b8d74SJaiprakash Singh *
1066*4b8b8d74SJaiprakash Singh * SMMU GATOS Address Register
1067*4b8b8d74SJaiprakash Singh */
1068*4b8b8d74SJaiprakash Singh union ody_smmux_gatos_par {
1069*4b8b8d74SJaiprakash Singh uint64_t u;
1070*4b8b8d74SJaiprakash Singh struct ody_smmux_gatos_par_s {
1071*4b8b8d74SJaiprakash Singh uint64_t par : 64;
1072*4b8b8d74SJaiprakash Singh } s;
1073*4b8b8d74SJaiprakash Singh /* struct ody_smmux_gatos_par_s cn; */
1074*4b8b8d74SJaiprakash Singh };
1075*4b8b8d74SJaiprakash Singh typedef union ody_smmux_gatos_par ody_smmux_gatos_par_t;
1076*4b8b8d74SJaiprakash Singh
1077*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GATOS_PAR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_GATOS_PAR(uint64_t a)1078*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GATOS_PAR(uint64_t a)
1079*4b8b8d74SJaiprakash Singh {
1080*4b8b8d74SJaiprakash Singh if (a <= 3)
1081*4b8b8d74SJaiprakash Singh return 0x830000000118ll + 0x1000000000ll * ((a) & 0x3);
1082*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_GATOS_PAR", 1, a, 0, 0, 0, 0, 0);
1083*4b8b8d74SJaiprakash Singh }
1084*4b8b8d74SJaiprakash Singh
1085*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_GATOS_PAR(a) ody_smmux_gatos_par_t
1086*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_GATOS_PAR(a) CSR_TYPE_NCB
1087*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_GATOS_PAR(a) "SMMUX_GATOS_PAR"
1088*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_GATOS_PAR(a) 0x0 /* PF_BAR0 */
1089*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_GATOS_PAR(a) (a)
1090*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_GATOS_PAR(a) (a), -1, -1, -1
1091*4b8b8d74SJaiprakash Singh
1092*4b8b8d74SJaiprakash Singh /**
1093*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_gatos_sid
1094*4b8b8d74SJaiprakash Singh *
1095*4b8b8d74SJaiprakash Singh * SMMU GATOS SID Register
1096*4b8b8d74SJaiprakash Singh */
1097*4b8b8d74SJaiprakash Singh union ody_smmux_gatos_sid {
1098*4b8b8d74SJaiprakash Singh uint64_t u;
1099*4b8b8d74SJaiprakash Singh struct ody_smmux_gatos_sid_s {
1100*4b8b8d74SJaiprakash Singh uint64_t streamid : 22;
1101*4b8b8d74SJaiprakash Singh uint64_t reserved_22_31 : 10;
1102*4b8b8d74SJaiprakash Singh uint64_t substreamid : 20;
1103*4b8b8d74SJaiprakash Singh uint64_t ssid_valid : 1;
1104*4b8b8d74SJaiprakash Singh uint64_t reserved_53_63 : 11;
1105*4b8b8d74SJaiprakash Singh } s;
1106*4b8b8d74SJaiprakash Singh /* struct ody_smmux_gatos_sid_s cn; */
1107*4b8b8d74SJaiprakash Singh };
1108*4b8b8d74SJaiprakash Singh typedef union ody_smmux_gatos_sid ody_smmux_gatos_sid_t;
1109*4b8b8d74SJaiprakash Singh
1110*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GATOS_SID(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_GATOS_SID(uint64_t a)1111*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GATOS_SID(uint64_t a)
1112*4b8b8d74SJaiprakash Singh {
1113*4b8b8d74SJaiprakash Singh if (a <= 3)
1114*4b8b8d74SJaiprakash Singh return 0x830000000108ll + 0x1000000000ll * ((a) & 0x3);
1115*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_GATOS_SID", 1, a, 0, 0, 0, 0, 0);
1116*4b8b8d74SJaiprakash Singh }
1117*4b8b8d74SJaiprakash Singh
1118*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_GATOS_SID(a) ody_smmux_gatos_sid_t
1119*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_GATOS_SID(a) CSR_TYPE_NCB
1120*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_GATOS_SID(a) "SMMUX_GATOS_SID"
1121*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_GATOS_SID(a) 0x0 /* PF_BAR0 */
1122*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_GATOS_SID(a) (a)
1123*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_GATOS_SID(a) (a), -1, -1, -1
1124*4b8b8d74SJaiprakash Singh
1125*4b8b8d74SJaiprakash Singh /**
1126*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_gbpa
1127*4b8b8d74SJaiprakash Singh *
1128*4b8b8d74SJaiprakash Singh * SMMU Global Bypass Attribute Register
1129*4b8b8d74SJaiprakash Singh */
1130*4b8b8d74SJaiprakash Singh union ody_smmux_gbpa {
1131*4b8b8d74SJaiprakash Singh uint32_t u;
1132*4b8b8d74SJaiprakash Singh struct ody_smmux_gbpa_s {
1133*4b8b8d74SJaiprakash Singh uint32_t memattr : 4;
1134*4b8b8d74SJaiprakash Singh uint32_t mtcfg : 1;
1135*4b8b8d74SJaiprakash Singh uint32_t reserved_5_7 : 3;
1136*4b8b8d74SJaiprakash Singh uint32_t alloccfg : 4;
1137*4b8b8d74SJaiprakash Singh uint32_t shcfg : 2;
1138*4b8b8d74SJaiprakash Singh uint32_t reserved_14_15 : 2;
1139*4b8b8d74SJaiprakash Singh uint32_t privcfg : 2;
1140*4b8b8d74SJaiprakash Singh uint32_t instcfg : 2;
1141*4b8b8d74SJaiprakash Singh uint32_t abrt : 1;
1142*4b8b8d74SJaiprakash Singh uint32_t reserved_21_30 : 10;
1143*4b8b8d74SJaiprakash Singh uint32_t update : 1;
1144*4b8b8d74SJaiprakash Singh } s;
1145*4b8b8d74SJaiprakash Singh /* struct ody_smmux_gbpa_s cn; */
1146*4b8b8d74SJaiprakash Singh };
1147*4b8b8d74SJaiprakash Singh typedef union ody_smmux_gbpa ody_smmux_gbpa_t;
1148*4b8b8d74SJaiprakash Singh
1149*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GBPA(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_GBPA(uint64_t a)1150*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GBPA(uint64_t a)
1151*4b8b8d74SJaiprakash Singh {
1152*4b8b8d74SJaiprakash Singh if (a <= 3)
1153*4b8b8d74SJaiprakash Singh return 0x830000000044ll + 0x1000000000ll * ((a) & 0x3);
1154*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_GBPA", 1, a, 0, 0, 0, 0, 0);
1155*4b8b8d74SJaiprakash Singh }
1156*4b8b8d74SJaiprakash Singh
1157*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_GBPA(a) ody_smmux_gbpa_t
1158*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_GBPA(a) CSR_TYPE_NCB32b
1159*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_GBPA(a) "SMMUX_GBPA"
1160*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_GBPA(a) 0x0 /* PF_BAR0 */
1161*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_GBPA(a) (a)
1162*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_GBPA(a) (a), -1, -1, -1
1163*4b8b8d74SJaiprakash Singh
1164*4b8b8d74SJaiprakash Singh /**
1165*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_gbpmpam
1166*4b8b8d74SJaiprakash Singh *
1167*4b8b8d74SJaiprakash Singh * SMMU Global Bypass MPAM Configuration for Non-secure state Register
1168*4b8b8d74SJaiprakash Singh */
1169*4b8b8d74SJaiprakash Singh union ody_smmux_gbpmpam {
1170*4b8b8d74SJaiprakash Singh uint32_t u;
1171*4b8b8d74SJaiprakash Singh struct ody_smmux_gbpmpam_s {
1172*4b8b8d74SJaiprakash Singh uint32_t gbp_partid : 9;
1173*4b8b8d74SJaiprakash Singh uint32_t reserved_9_15 : 7;
1174*4b8b8d74SJaiprakash Singh uint32_t gbp_pmg : 1;
1175*4b8b8d74SJaiprakash Singh uint32_t reserved_17_30 : 14;
1176*4b8b8d74SJaiprakash Singh uint32_t update : 1;
1177*4b8b8d74SJaiprakash Singh } s;
1178*4b8b8d74SJaiprakash Singh /* struct ody_smmux_gbpmpam_s cn; */
1179*4b8b8d74SJaiprakash Singh };
1180*4b8b8d74SJaiprakash Singh typedef union ody_smmux_gbpmpam ody_smmux_gbpmpam_t;
1181*4b8b8d74SJaiprakash Singh
1182*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GBPMPAM(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_GBPMPAM(uint64_t a)1183*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GBPMPAM(uint64_t a)
1184*4b8b8d74SJaiprakash Singh {
1185*4b8b8d74SJaiprakash Singh if (a <= 3)
1186*4b8b8d74SJaiprakash Singh return 0x83000000013cll + 0x1000000000ll * ((a) & 0x3);
1187*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_GBPMPAM", 1, a, 0, 0, 0, 0, 0);
1188*4b8b8d74SJaiprakash Singh }
1189*4b8b8d74SJaiprakash Singh
1190*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_GBPMPAM(a) ody_smmux_gbpmpam_t
1191*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_GBPMPAM(a) CSR_TYPE_NCB32b
1192*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_GBPMPAM(a) "SMMUX_GBPMPAM"
1193*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_GBPMPAM(a) 0x0 /* PF_BAR0 */
1194*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_GBPMPAM(a) (a)
1195*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_GBPMPAM(a) (a), -1, -1, -1
1196*4b8b8d74SJaiprakash Singh
1197*4b8b8d74SJaiprakash Singh /**
1198*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_gerror
1199*4b8b8d74SJaiprakash Singh *
1200*4b8b8d74SJaiprakash Singh * SMMU Global Error Register
1201*4b8b8d74SJaiprakash Singh * This register, in conjunction with SMMU()_(S_)GERRORN, indicates whether global error
1202*4b8b8d74SJaiprakash Singh * conditions exist.
1203*4b8b8d74SJaiprakash Singh *
1204*4b8b8d74SJaiprakash Singh * The SMMU toggles SMMU()_(S_)GERROR[x] when an error becomes active. Software is
1205*4b8b8d74SJaiprakash Singh * expected to toggle SMMU()_(S_)GERRORN[x] in response, to acknowledge the error.
1206*4b8b8d74SJaiprakash Singh *
1207*4b8b8d74SJaiprakash Singh * The SMMU does not toggle a bit when an error is already active. An error is only
1208*4b8b8d74SJaiprakash Singh * activated if it is in an inactive state (i.e. a prior error has been
1209*4b8b8d74SJaiprakash Singh * acknowledged/de-activated).
1210*4b8b8d74SJaiprakash Singh *
1211*4b8b8d74SJaiprakash Singh * Software is not intended to trigger interrupts by arranging for SMMU()_GERRORN\<x\> to differ
1212*4b8b8d74SJaiprakash Singh * from SMMU()_GERROR\<x\>.
1213*4b8b8d74SJaiprakash Singh */
1214*4b8b8d74SJaiprakash Singh union ody_smmux_gerror {
1215*4b8b8d74SJaiprakash Singh uint32_t u;
1216*4b8b8d74SJaiprakash Singh struct ody_smmux_gerror_s {
1217*4b8b8d74SJaiprakash Singh uint32_t cmdq_err : 1;
1218*4b8b8d74SJaiprakash Singh uint32_t reserved_1 : 1;
1219*4b8b8d74SJaiprakash Singh uint32_t eventq_abt_err : 1;
1220*4b8b8d74SJaiprakash Singh uint32_t priq_abt_err : 1;
1221*4b8b8d74SJaiprakash Singh uint32_t msi_cmdq_abt_err : 1;
1222*4b8b8d74SJaiprakash Singh uint32_t msi_eventq_abt_err : 1;
1223*4b8b8d74SJaiprakash Singh uint32_t msi_priq_abt_err : 1;
1224*4b8b8d74SJaiprakash Singh uint32_t msi_gerror_abt_err : 1;
1225*4b8b8d74SJaiprakash Singh uint32_t sfm_err : 1;
1226*4b8b8d74SJaiprakash Singh uint32_t cmdqp_err : 1;
1227*4b8b8d74SJaiprakash Singh uint32_t reserved_10_31 : 22;
1228*4b8b8d74SJaiprakash Singh } s;
1229*4b8b8d74SJaiprakash Singh /* struct ody_smmux_gerror_s cn; */
1230*4b8b8d74SJaiprakash Singh };
1231*4b8b8d74SJaiprakash Singh typedef union ody_smmux_gerror ody_smmux_gerror_t;
1232*4b8b8d74SJaiprakash Singh
1233*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GERROR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_GERROR(uint64_t a)1234*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GERROR(uint64_t a)
1235*4b8b8d74SJaiprakash Singh {
1236*4b8b8d74SJaiprakash Singh if (a <= 3)
1237*4b8b8d74SJaiprakash Singh return 0x830000000060ll + 0x1000000000ll * ((a) & 0x3);
1238*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_GERROR", 1, a, 0, 0, 0, 0, 0);
1239*4b8b8d74SJaiprakash Singh }
1240*4b8b8d74SJaiprakash Singh
1241*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_GERROR(a) ody_smmux_gerror_t
1242*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_GERROR(a) CSR_TYPE_NCB32b
1243*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_GERROR(a) "SMMUX_GERROR"
1244*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_GERROR(a) 0x0 /* PF_BAR0 */
1245*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_GERROR(a) (a)
1246*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_GERROR(a) (a), -1, -1, -1
1247*4b8b8d74SJaiprakash Singh
1248*4b8b8d74SJaiprakash Singh /**
1249*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_gerror_irq_cfg0
1250*4b8b8d74SJaiprakash Singh *
1251*4b8b8d74SJaiprakash Singh * SMMU Global Error IRQ Configuration 0 Register
1252*4b8b8d74SJaiprakash Singh * Registers SMMU()_S_GERROR_IRQ_CFG0/1/2 are guarded by the respective
1253*4b8b8d74SJaiprakash Singh * SMMU()_S_IRQ_CTRL[GERROR_IRQEN] and must only be modified when
1254*4b8b8d74SJaiprakash Singh * SMMU()_S_IRQ_CTRL[GERROR_IRQEN]=0.
1255*4b8b8d74SJaiprakash Singh */
1256*4b8b8d74SJaiprakash Singh union ody_smmux_gerror_irq_cfg0 {
1257*4b8b8d74SJaiprakash Singh uint64_t u;
1258*4b8b8d74SJaiprakash Singh struct ody_smmux_gerror_irq_cfg0_s {
1259*4b8b8d74SJaiprakash Singh uint64_t reserved_0_1 : 2;
1260*4b8b8d74SJaiprakash Singh uint64_t addr : 50;
1261*4b8b8d74SJaiprakash Singh uint64_t reserved_52_63 : 12;
1262*4b8b8d74SJaiprakash Singh } s;
1263*4b8b8d74SJaiprakash Singh /* struct ody_smmux_gerror_irq_cfg0_s cn; */
1264*4b8b8d74SJaiprakash Singh };
1265*4b8b8d74SJaiprakash Singh typedef union ody_smmux_gerror_irq_cfg0 ody_smmux_gerror_irq_cfg0_t;
1266*4b8b8d74SJaiprakash Singh
1267*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GERROR_IRQ_CFG0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_GERROR_IRQ_CFG0(uint64_t a)1268*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GERROR_IRQ_CFG0(uint64_t a)
1269*4b8b8d74SJaiprakash Singh {
1270*4b8b8d74SJaiprakash Singh if (a <= 3)
1271*4b8b8d74SJaiprakash Singh return 0x830000000068ll + 0x1000000000ll * ((a) & 0x3);
1272*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_GERROR_IRQ_CFG0", 1, a, 0, 0, 0, 0, 0);
1273*4b8b8d74SJaiprakash Singh }
1274*4b8b8d74SJaiprakash Singh
1275*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_GERROR_IRQ_CFG0(a) ody_smmux_gerror_irq_cfg0_t
1276*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_GERROR_IRQ_CFG0(a) CSR_TYPE_NCB
1277*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_GERROR_IRQ_CFG0(a) "SMMUX_GERROR_IRQ_CFG0"
1278*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_GERROR_IRQ_CFG0(a) 0x0 /* PF_BAR0 */
1279*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_GERROR_IRQ_CFG0(a) (a)
1280*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_GERROR_IRQ_CFG0(a) (a), -1, -1, -1
1281*4b8b8d74SJaiprakash Singh
1282*4b8b8d74SJaiprakash Singh /**
1283*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_gerror_irq_cfg1
1284*4b8b8d74SJaiprakash Singh *
1285*4b8b8d74SJaiprakash Singh * SMMU Global Error IRQ Configuration 1 Register
1286*4b8b8d74SJaiprakash Singh */
1287*4b8b8d74SJaiprakash Singh union ody_smmux_gerror_irq_cfg1 {
1288*4b8b8d74SJaiprakash Singh uint32_t u;
1289*4b8b8d74SJaiprakash Singh struct ody_smmux_gerror_irq_cfg1_s {
1290*4b8b8d74SJaiprakash Singh uint32_t data : 32;
1291*4b8b8d74SJaiprakash Singh } s;
1292*4b8b8d74SJaiprakash Singh /* struct ody_smmux_gerror_irq_cfg1_s cn; */
1293*4b8b8d74SJaiprakash Singh };
1294*4b8b8d74SJaiprakash Singh typedef union ody_smmux_gerror_irq_cfg1 ody_smmux_gerror_irq_cfg1_t;
1295*4b8b8d74SJaiprakash Singh
1296*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GERROR_IRQ_CFG1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_GERROR_IRQ_CFG1(uint64_t a)1297*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GERROR_IRQ_CFG1(uint64_t a)
1298*4b8b8d74SJaiprakash Singh {
1299*4b8b8d74SJaiprakash Singh if (a <= 3)
1300*4b8b8d74SJaiprakash Singh return 0x830000000070ll + 0x1000000000ll * ((a) & 0x3);
1301*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_GERROR_IRQ_CFG1", 1, a, 0, 0, 0, 0, 0);
1302*4b8b8d74SJaiprakash Singh }
1303*4b8b8d74SJaiprakash Singh
1304*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_GERROR_IRQ_CFG1(a) ody_smmux_gerror_irq_cfg1_t
1305*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_GERROR_IRQ_CFG1(a) CSR_TYPE_NCB32b
1306*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_GERROR_IRQ_CFG1(a) "SMMUX_GERROR_IRQ_CFG1"
1307*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_GERROR_IRQ_CFG1(a) 0x0 /* PF_BAR0 */
1308*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_GERROR_IRQ_CFG1(a) (a)
1309*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_GERROR_IRQ_CFG1(a) (a), -1, -1, -1
1310*4b8b8d74SJaiprakash Singh
1311*4b8b8d74SJaiprakash Singh /**
1312*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_gerror_irq_cfg2
1313*4b8b8d74SJaiprakash Singh *
1314*4b8b8d74SJaiprakash Singh * SMMU Global Error IRQ Configuration 2 Register
1315*4b8b8d74SJaiprakash Singh */
1316*4b8b8d74SJaiprakash Singh union ody_smmux_gerror_irq_cfg2 {
1317*4b8b8d74SJaiprakash Singh uint32_t u;
1318*4b8b8d74SJaiprakash Singh struct ody_smmux_gerror_irq_cfg2_s {
1319*4b8b8d74SJaiprakash Singh uint32_t memattr : 4;
1320*4b8b8d74SJaiprakash Singh uint32_t sh : 2;
1321*4b8b8d74SJaiprakash Singh uint32_t reserved_6_31 : 26;
1322*4b8b8d74SJaiprakash Singh } s;
1323*4b8b8d74SJaiprakash Singh /* struct ody_smmux_gerror_irq_cfg2_s cn; */
1324*4b8b8d74SJaiprakash Singh };
1325*4b8b8d74SJaiprakash Singh typedef union ody_smmux_gerror_irq_cfg2 ody_smmux_gerror_irq_cfg2_t;
1326*4b8b8d74SJaiprakash Singh
1327*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GERROR_IRQ_CFG2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_GERROR_IRQ_CFG2(uint64_t a)1328*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GERROR_IRQ_CFG2(uint64_t a)
1329*4b8b8d74SJaiprakash Singh {
1330*4b8b8d74SJaiprakash Singh if (a <= 3)
1331*4b8b8d74SJaiprakash Singh return 0x830000000074ll + 0x1000000000ll * ((a) & 0x3);
1332*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_GERROR_IRQ_CFG2", 1, a, 0, 0, 0, 0, 0);
1333*4b8b8d74SJaiprakash Singh }
1334*4b8b8d74SJaiprakash Singh
1335*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_GERROR_IRQ_CFG2(a) ody_smmux_gerror_irq_cfg2_t
1336*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_GERROR_IRQ_CFG2(a) CSR_TYPE_NCB32b
1337*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_GERROR_IRQ_CFG2(a) "SMMUX_GERROR_IRQ_CFG2"
1338*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_GERROR_IRQ_CFG2(a) 0x0 /* PF_BAR0 */
1339*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_GERROR_IRQ_CFG2(a) (a)
1340*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_GERROR_IRQ_CFG2(a) (a), -1, -1, -1
1341*4b8b8d74SJaiprakash Singh
1342*4b8b8d74SJaiprakash Singh /**
1343*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_gerrorn
1344*4b8b8d74SJaiprakash Singh *
1345*4b8b8d74SJaiprakash Singh * SMMU Global Error Acknowledge Register
1346*4b8b8d74SJaiprakash Singh * Same fields as SMMU()_GERROR.
1347*4b8b8d74SJaiprakash Singh *
1348*4b8b8d74SJaiprakash Singh * Software must not toggle fields in this register that correspond to errors that are
1349*4b8b8d74SJaiprakash Singh * inactive. It is constrained unpredictable whether or not an SMMU activates errors
1350*4b8b8d74SJaiprakash Singh * if this is done.
1351*4b8b8d74SJaiprakash Singh *
1352*4b8b8d74SJaiprakash Singh * The SMMU does not alter fields in this register.
1353*4b8b8d74SJaiprakash Singh *
1354*4b8b8d74SJaiprakash Singh * Software might maintain an internal copy of the last value written to this register,
1355*4b8b8d74SJaiprakash Singh * for comparison against values read from SMMU()_GERROR when probing for errors.
1356*4b8b8d74SJaiprakash Singh */
1357*4b8b8d74SJaiprakash Singh union ody_smmux_gerrorn {
1358*4b8b8d74SJaiprakash Singh uint32_t u;
1359*4b8b8d74SJaiprakash Singh struct ody_smmux_gerrorn_s {
1360*4b8b8d74SJaiprakash Singh uint32_t cmdq_err : 1;
1361*4b8b8d74SJaiprakash Singh uint32_t reserved_1 : 1;
1362*4b8b8d74SJaiprakash Singh uint32_t eventq_abt_err : 1;
1363*4b8b8d74SJaiprakash Singh uint32_t priq_abt_err : 1;
1364*4b8b8d74SJaiprakash Singh uint32_t msi_cmdq_abt_err : 1;
1365*4b8b8d74SJaiprakash Singh uint32_t msi_eventq_abt_err : 1;
1366*4b8b8d74SJaiprakash Singh uint32_t msi_priq_abt_err : 1;
1367*4b8b8d74SJaiprakash Singh uint32_t msi_gerror_abt_err : 1;
1368*4b8b8d74SJaiprakash Singh uint32_t sfm_err : 1;
1369*4b8b8d74SJaiprakash Singh uint32_t cmdqp_err : 1;
1370*4b8b8d74SJaiprakash Singh uint32_t reserved_10_31 : 22;
1371*4b8b8d74SJaiprakash Singh } s;
1372*4b8b8d74SJaiprakash Singh /* struct ody_smmux_gerrorn_s cn; */
1373*4b8b8d74SJaiprakash Singh };
1374*4b8b8d74SJaiprakash Singh typedef union ody_smmux_gerrorn ody_smmux_gerrorn_t;
1375*4b8b8d74SJaiprakash Singh
1376*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GERRORN(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_GERRORN(uint64_t a)1377*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GERRORN(uint64_t a)
1378*4b8b8d74SJaiprakash Singh {
1379*4b8b8d74SJaiprakash Singh if (a <= 3)
1380*4b8b8d74SJaiprakash Singh return 0x830000000064ll + 0x1000000000ll * ((a) & 0x3);
1381*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_GERRORN", 1, a, 0, 0, 0, 0, 0);
1382*4b8b8d74SJaiprakash Singh }
1383*4b8b8d74SJaiprakash Singh
1384*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_GERRORN(a) ody_smmux_gerrorn_t
1385*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_GERRORN(a) CSR_TYPE_NCB32b
1386*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_GERRORN(a) "SMMUX_GERRORN"
1387*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_GERRORN(a) 0x0 /* PF_BAR0 */
1388*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_GERRORN(a) (a)
1389*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_GERRORN(a) (a), -1, -1, -1
1390*4b8b8d74SJaiprakash Singh
1391*4b8b8d74SJaiprakash Singh /**
1392*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_gmpam
1393*4b8b8d74SJaiprakash Singh *
1394*4b8b8d74SJaiprakash Singh * SMMU Global MPAM Configuration for Non-secure state Register
1395*4b8b8d74SJaiprakash Singh */
1396*4b8b8d74SJaiprakash Singh union ody_smmux_gmpam {
1397*4b8b8d74SJaiprakash Singh uint32_t u;
1398*4b8b8d74SJaiprakash Singh struct ody_smmux_gmpam_s {
1399*4b8b8d74SJaiprakash Singh uint32_t so_partid : 9;
1400*4b8b8d74SJaiprakash Singh uint32_t reserved_9_15 : 7;
1401*4b8b8d74SJaiprakash Singh uint32_t so_pmg : 1;
1402*4b8b8d74SJaiprakash Singh uint32_t reserved_17_30 : 14;
1403*4b8b8d74SJaiprakash Singh uint32_t update : 1;
1404*4b8b8d74SJaiprakash Singh } s;
1405*4b8b8d74SJaiprakash Singh /* struct ody_smmux_gmpam_s cn; */
1406*4b8b8d74SJaiprakash Singh };
1407*4b8b8d74SJaiprakash Singh typedef union ody_smmux_gmpam ody_smmux_gmpam_t;
1408*4b8b8d74SJaiprakash Singh
1409*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GMPAM(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_GMPAM(uint64_t a)1410*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_GMPAM(uint64_t a)
1411*4b8b8d74SJaiprakash Singh {
1412*4b8b8d74SJaiprakash Singh if (a <= 3)
1413*4b8b8d74SJaiprakash Singh return 0x830000000138ll + 0x1000000000ll * ((a) & 0x3);
1414*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_GMPAM", 1, a, 0, 0, 0, 0, 0);
1415*4b8b8d74SJaiprakash Singh }
1416*4b8b8d74SJaiprakash Singh
1417*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_GMPAM(a) ody_smmux_gmpam_t
1418*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_GMPAM(a) CSR_TYPE_NCB32b
1419*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_GMPAM(a) "SMMUX_GMPAM"
1420*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_GMPAM(a) 0x0 /* PF_BAR0 */
1421*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_GMPAM(a) (a)
1422*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_GMPAM(a) (a), -1, -1, -1
1423*4b8b8d74SJaiprakash Singh
1424*4b8b8d74SJaiprakash Singh /**
1425*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_idr0
1426*4b8b8d74SJaiprakash Singh *
1427*4b8b8d74SJaiprakash Singh * SMMU Identification 0 Register
1428*4b8b8d74SJaiprakash Singh */
1429*4b8b8d74SJaiprakash Singh union ody_smmux_idr0 {
1430*4b8b8d74SJaiprakash Singh uint32_t u;
1431*4b8b8d74SJaiprakash Singh struct ody_smmux_idr0_s {
1432*4b8b8d74SJaiprakash Singh uint32_t s2p : 1;
1433*4b8b8d74SJaiprakash Singh uint32_t s1p : 1;
1434*4b8b8d74SJaiprakash Singh uint32_t ttf : 2;
1435*4b8b8d74SJaiprakash Singh uint32_t cohacc : 1;
1436*4b8b8d74SJaiprakash Singh uint32_t btm : 1;
1437*4b8b8d74SJaiprakash Singh uint32_t httu : 2;
1438*4b8b8d74SJaiprakash Singh uint32_t dormhint : 1;
1439*4b8b8d74SJaiprakash Singh uint32_t hyp : 1;
1440*4b8b8d74SJaiprakash Singh uint32_t ats : 1;
1441*4b8b8d74SJaiprakash Singh uint32_t ns1ats : 1;
1442*4b8b8d74SJaiprakash Singh uint32_t asid16 : 1;
1443*4b8b8d74SJaiprakash Singh uint32_t msi : 1;
1444*4b8b8d74SJaiprakash Singh uint32_t sev : 1;
1445*4b8b8d74SJaiprakash Singh uint32_t atos : 1;
1446*4b8b8d74SJaiprakash Singh uint32_t pri : 1;
1447*4b8b8d74SJaiprakash Singh uint32_t vmw : 1;
1448*4b8b8d74SJaiprakash Singh uint32_t vmid16 : 1;
1449*4b8b8d74SJaiprakash Singh uint32_t cd2l : 1;
1450*4b8b8d74SJaiprakash Singh uint32_t vatos : 1;
1451*4b8b8d74SJaiprakash Singh uint32_t ttendian : 2;
1452*4b8b8d74SJaiprakash Singh uint32_t atsrecerr : 1;
1453*4b8b8d74SJaiprakash Singh uint32_t stall_model : 2;
1454*4b8b8d74SJaiprakash Singh uint32_t term_model : 1;
1455*4b8b8d74SJaiprakash Singh uint32_t st_level : 2;
1456*4b8b8d74SJaiprakash Singh uint32_t reserved_29_31 : 3;
1457*4b8b8d74SJaiprakash Singh } s;
1458*4b8b8d74SJaiprakash Singh /* struct ody_smmux_idr0_s cn; */
1459*4b8b8d74SJaiprakash Singh };
1460*4b8b8d74SJaiprakash Singh typedef union ody_smmux_idr0 ody_smmux_idr0_t;
1461*4b8b8d74SJaiprakash Singh
1462*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IDR0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_IDR0(uint64_t a)1463*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IDR0(uint64_t a)
1464*4b8b8d74SJaiprakash Singh {
1465*4b8b8d74SJaiprakash Singh if (a <= 3)
1466*4b8b8d74SJaiprakash Singh return 0x830000000000ll + 0x1000000000ll * ((a) & 0x3);
1467*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_IDR0", 1, a, 0, 0, 0, 0, 0);
1468*4b8b8d74SJaiprakash Singh }
1469*4b8b8d74SJaiprakash Singh
1470*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_IDR0(a) ody_smmux_idr0_t
1471*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_IDR0(a) CSR_TYPE_NCB32b
1472*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_IDR0(a) "SMMUX_IDR0"
1473*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_IDR0(a) 0x0 /* PF_BAR0 */
1474*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_IDR0(a) (a)
1475*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_IDR0(a) (a), -1, -1, -1
1476*4b8b8d74SJaiprakash Singh
1477*4b8b8d74SJaiprakash Singh /**
1478*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_idr1
1479*4b8b8d74SJaiprakash Singh *
1480*4b8b8d74SJaiprakash Singh * SMMU Identification 1 Register
1481*4b8b8d74SJaiprakash Singh */
1482*4b8b8d74SJaiprakash Singh union ody_smmux_idr1 {
1483*4b8b8d74SJaiprakash Singh uint32_t u;
1484*4b8b8d74SJaiprakash Singh struct ody_smmux_idr1_s {
1485*4b8b8d74SJaiprakash Singh uint32_t sidsize : 6;
1486*4b8b8d74SJaiprakash Singh uint32_t ssidsize : 5;
1487*4b8b8d74SJaiprakash Singh uint32_t priqs : 5;
1488*4b8b8d74SJaiprakash Singh uint32_t eventqs : 5;
1489*4b8b8d74SJaiprakash Singh uint32_t cmdqs : 5;
1490*4b8b8d74SJaiprakash Singh uint32_t attr_perms_ovr : 1;
1491*4b8b8d74SJaiprakash Singh uint32_t attr_types_ovr : 1;
1492*4b8b8d74SJaiprakash Singh uint32_t rel : 1;
1493*4b8b8d74SJaiprakash Singh uint32_t queues_preset : 1;
1494*4b8b8d74SJaiprakash Singh uint32_t tables_preset : 1;
1495*4b8b8d74SJaiprakash Singh uint32_t ecmdq : 1;
1496*4b8b8d74SJaiprakash Singh } s;
1497*4b8b8d74SJaiprakash Singh /* struct ody_smmux_idr1_s cn; */
1498*4b8b8d74SJaiprakash Singh };
1499*4b8b8d74SJaiprakash Singh typedef union ody_smmux_idr1 ody_smmux_idr1_t;
1500*4b8b8d74SJaiprakash Singh
1501*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IDR1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_IDR1(uint64_t a)1502*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IDR1(uint64_t a)
1503*4b8b8d74SJaiprakash Singh {
1504*4b8b8d74SJaiprakash Singh if (a <= 3)
1505*4b8b8d74SJaiprakash Singh return 0x830000000004ll + 0x1000000000ll * ((a) & 0x3);
1506*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_IDR1", 1, a, 0, 0, 0, 0, 0);
1507*4b8b8d74SJaiprakash Singh }
1508*4b8b8d74SJaiprakash Singh
1509*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_IDR1(a) ody_smmux_idr1_t
1510*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_IDR1(a) CSR_TYPE_NCB32b
1511*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_IDR1(a) "SMMUX_IDR1"
1512*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_IDR1(a) 0x0 /* PF_BAR0 */
1513*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_IDR1(a) (a)
1514*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_IDR1(a) (a), -1, -1, -1
1515*4b8b8d74SJaiprakash Singh
1516*4b8b8d74SJaiprakash Singh /**
1517*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_idr2
1518*4b8b8d74SJaiprakash Singh *
1519*4b8b8d74SJaiprakash Singh * SMMU Identification 2 Register
1520*4b8b8d74SJaiprakash Singh */
1521*4b8b8d74SJaiprakash Singh union ody_smmux_idr2 {
1522*4b8b8d74SJaiprakash Singh uint32_t u;
1523*4b8b8d74SJaiprakash Singh struct ody_smmux_idr2_s {
1524*4b8b8d74SJaiprakash Singh uint32_t ba_vatos : 10;
1525*4b8b8d74SJaiprakash Singh uint32_t reserved_10_31 : 22;
1526*4b8b8d74SJaiprakash Singh } s;
1527*4b8b8d74SJaiprakash Singh /* struct ody_smmux_idr2_s cn; */
1528*4b8b8d74SJaiprakash Singh };
1529*4b8b8d74SJaiprakash Singh typedef union ody_smmux_idr2 ody_smmux_idr2_t;
1530*4b8b8d74SJaiprakash Singh
1531*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IDR2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_IDR2(uint64_t a)1532*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IDR2(uint64_t a)
1533*4b8b8d74SJaiprakash Singh {
1534*4b8b8d74SJaiprakash Singh if (a <= 3)
1535*4b8b8d74SJaiprakash Singh return 0x830000000008ll + 0x1000000000ll * ((a) & 0x3);
1536*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_IDR2", 1, a, 0, 0, 0, 0, 0);
1537*4b8b8d74SJaiprakash Singh }
1538*4b8b8d74SJaiprakash Singh
1539*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_IDR2(a) ody_smmux_idr2_t
1540*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_IDR2(a) CSR_TYPE_NCB32b
1541*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_IDR2(a) "SMMUX_IDR2"
1542*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_IDR2(a) 0x0 /* PF_BAR0 */
1543*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_IDR2(a) (a)
1544*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_IDR2(a) (a), -1, -1, -1
1545*4b8b8d74SJaiprakash Singh
1546*4b8b8d74SJaiprakash Singh /**
1547*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_idr3
1548*4b8b8d74SJaiprakash Singh *
1549*4b8b8d74SJaiprakash Singh * SMMU Identification 3 Register
1550*4b8b8d74SJaiprakash Singh */
1551*4b8b8d74SJaiprakash Singh union ody_smmux_idr3 {
1552*4b8b8d74SJaiprakash Singh uint32_t u;
1553*4b8b8d74SJaiprakash Singh struct ody_smmux_idr3_s {
1554*4b8b8d74SJaiprakash Singh uint32_t reserved_0_1 : 2;
1555*4b8b8d74SJaiprakash Singh uint32_t had : 1;
1556*4b8b8d74SJaiprakash Singh uint32_t pbha : 1;
1557*4b8b8d74SJaiprakash Singh uint32_t xnx : 1;
1558*4b8b8d74SJaiprakash Singh uint32_t pps : 1;
1559*4b8b8d74SJaiprakash Singh uint32_t reserved_6 : 1;
1560*4b8b8d74SJaiprakash Singh uint32_t mpam : 1;
1561*4b8b8d74SJaiprakash Singh uint32_t fwb : 1;
1562*4b8b8d74SJaiprakash Singh uint32_t stt : 1;
1563*4b8b8d74SJaiprakash Singh uint32_t ril : 1;
1564*4b8b8d74SJaiprakash Singh uint32_t bbml : 2;
1565*4b8b8d74SJaiprakash Singh uint32_t e0pd : 1;
1566*4b8b8d74SJaiprakash Singh uint32_t ptwnnc : 1;
1567*4b8b8d74SJaiprakash Singh uint32_t reserved_15_31 : 17;
1568*4b8b8d74SJaiprakash Singh } s;
1569*4b8b8d74SJaiprakash Singh /* struct ody_smmux_idr3_s cn; */
1570*4b8b8d74SJaiprakash Singh };
1571*4b8b8d74SJaiprakash Singh typedef union ody_smmux_idr3 ody_smmux_idr3_t;
1572*4b8b8d74SJaiprakash Singh
1573*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IDR3(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_IDR3(uint64_t a)1574*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IDR3(uint64_t a)
1575*4b8b8d74SJaiprakash Singh {
1576*4b8b8d74SJaiprakash Singh if (a <= 3)
1577*4b8b8d74SJaiprakash Singh return 0x83000000000cll + 0x1000000000ll * ((a) & 0x3);
1578*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_IDR3", 1, a, 0, 0, 0, 0, 0);
1579*4b8b8d74SJaiprakash Singh }
1580*4b8b8d74SJaiprakash Singh
1581*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_IDR3(a) ody_smmux_idr3_t
1582*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_IDR3(a) CSR_TYPE_NCB32b
1583*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_IDR3(a) "SMMUX_IDR3"
1584*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_IDR3(a) 0x0 /* PF_BAR0 */
1585*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_IDR3(a) (a)
1586*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_IDR3(a) (a), -1, -1, -1
1587*4b8b8d74SJaiprakash Singh
1588*4b8b8d74SJaiprakash Singh /**
1589*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_idr4
1590*4b8b8d74SJaiprakash Singh *
1591*4b8b8d74SJaiprakash Singh * SMMU Identification 4 Register
1592*4b8b8d74SJaiprakash Singh * The contents of this register are implementation-defined and can be used to identify
1593*4b8b8d74SJaiprakash Singh * the presence of other implementation-defined register regions elsewhere in the
1594*4b8b8d74SJaiprakash Singh * memory map.
1595*4b8b8d74SJaiprakash Singh */
1596*4b8b8d74SJaiprakash Singh union ody_smmux_idr4 {
1597*4b8b8d74SJaiprakash Singh uint32_t u;
1598*4b8b8d74SJaiprakash Singh struct ody_smmux_idr4_s {
1599*4b8b8d74SJaiprakash Singh uint32_t reserved_0_31 : 32;
1600*4b8b8d74SJaiprakash Singh } s;
1601*4b8b8d74SJaiprakash Singh /* struct ody_smmux_idr4_s cn; */
1602*4b8b8d74SJaiprakash Singh };
1603*4b8b8d74SJaiprakash Singh typedef union ody_smmux_idr4 ody_smmux_idr4_t;
1604*4b8b8d74SJaiprakash Singh
1605*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IDR4(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_IDR4(uint64_t a)1606*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IDR4(uint64_t a)
1607*4b8b8d74SJaiprakash Singh {
1608*4b8b8d74SJaiprakash Singh if (a <= 3)
1609*4b8b8d74SJaiprakash Singh return 0x830000000010ll + 0x1000000000ll * ((a) & 0x3);
1610*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_IDR4", 1, a, 0, 0, 0, 0, 0);
1611*4b8b8d74SJaiprakash Singh }
1612*4b8b8d74SJaiprakash Singh
1613*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_IDR4(a) ody_smmux_idr4_t
1614*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_IDR4(a) CSR_TYPE_NCB32b
1615*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_IDR4(a) "SMMUX_IDR4"
1616*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_IDR4(a) 0x0 /* PF_BAR0 */
1617*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_IDR4(a) (a)
1618*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_IDR4(a) (a), -1, -1, -1
1619*4b8b8d74SJaiprakash Singh
1620*4b8b8d74SJaiprakash Singh /**
1621*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_idr5
1622*4b8b8d74SJaiprakash Singh *
1623*4b8b8d74SJaiprakash Singh * SMMU Identification 5 Register
1624*4b8b8d74SJaiprakash Singh */
1625*4b8b8d74SJaiprakash Singh union ody_smmux_idr5 {
1626*4b8b8d74SJaiprakash Singh uint32_t u;
1627*4b8b8d74SJaiprakash Singh struct ody_smmux_idr5_s {
1628*4b8b8d74SJaiprakash Singh uint32_t oas : 3;
1629*4b8b8d74SJaiprakash Singh uint32_t reserved_3 : 1;
1630*4b8b8d74SJaiprakash Singh uint32_t gran4k : 1;
1631*4b8b8d74SJaiprakash Singh uint32_t gran16k : 1;
1632*4b8b8d74SJaiprakash Singh uint32_t gran64k : 1;
1633*4b8b8d74SJaiprakash Singh uint32_t reserved_7_9 : 3;
1634*4b8b8d74SJaiprakash Singh uint32_t vax : 2;
1635*4b8b8d74SJaiprakash Singh uint32_t reserved_12_15 : 4;
1636*4b8b8d74SJaiprakash Singh uint32_t stall_max : 16;
1637*4b8b8d74SJaiprakash Singh } s;
1638*4b8b8d74SJaiprakash Singh /* struct ody_smmux_idr5_s cn; */
1639*4b8b8d74SJaiprakash Singh };
1640*4b8b8d74SJaiprakash Singh typedef union ody_smmux_idr5 ody_smmux_idr5_t;
1641*4b8b8d74SJaiprakash Singh
1642*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IDR5(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_IDR5(uint64_t a)1643*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IDR5(uint64_t a)
1644*4b8b8d74SJaiprakash Singh {
1645*4b8b8d74SJaiprakash Singh if (a <= 3)
1646*4b8b8d74SJaiprakash Singh return 0x830000000014ll + 0x1000000000ll * ((a) & 0x3);
1647*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_IDR5", 1, a, 0, 0, 0, 0, 0);
1648*4b8b8d74SJaiprakash Singh }
1649*4b8b8d74SJaiprakash Singh
1650*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_IDR5(a) ody_smmux_idr5_t
1651*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_IDR5(a) CSR_TYPE_NCB32b
1652*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_IDR5(a) "SMMUX_IDR5"
1653*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_IDR5(a) 0x0 /* PF_BAR0 */
1654*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_IDR5(a) (a)
1655*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_IDR5(a) (a), -1, -1, -1
1656*4b8b8d74SJaiprakash Singh
1657*4b8b8d74SJaiprakash Singh /**
1658*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_idr6
1659*4b8b8d74SJaiprakash Singh *
1660*4b8b8d74SJaiprakash Singh * SMMU Identification 6 Register
1661*4b8b8d74SJaiprakash Singh */
1662*4b8b8d74SJaiprakash Singh union ody_smmux_idr6 {
1663*4b8b8d74SJaiprakash Singh uint32_t u;
1664*4b8b8d74SJaiprakash Singh struct ody_smmux_idr6_s {
1665*4b8b8d74SJaiprakash Singh uint32_t reserved_0_15 : 16;
1666*4b8b8d74SJaiprakash Singh uint32_t cmdq_control_page_log2numq : 4;
1667*4b8b8d74SJaiprakash Singh uint32_t reserved_20_23 : 4;
1668*4b8b8d74SJaiprakash Singh uint32_t cmdq_control_page_log2nump : 4;
1669*4b8b8d74SJaiprakash Singh uint32_t reserved_28_31 : 4;
1670*4b8b8d74SJaiprakash Singh } s;
1671*4b8b8d74SJaiprakash Singh /* struct ody_smmux_idr6_s cn; */
1672*4b8b8d74SJaiprakash Singh };
1673*4b8b8d74SJaiprakash Singh typedef union ody_smmux_idr6 ody_smmux_idr6_t;
1674*4b8b8d74SJaiprakash Singh
1675*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IDR6(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_IDR6(uint64_t a)1676*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IDR6(uint64_t a)
1677*4b8b8d74SJaiprakash Singh {
1678*4b8b8d74SJaiprakash Singh if (a <= 3)
1679*4b8b8d74SJaiprakash Singh return 0x830000000190ll + 0x1000000000ll * ((a) & 0x3);
1680*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_IDR6", 1, a, 0, 0, 0, 0, 0);
1681*4b8b8d74SJaiprakash Singh }
1682*4b8b8d74SJaiprakash Singh
1683*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_IDR6(a) ody_smmux_idr6_t
1684*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_IDR6(a) CSR_TYPE_NCB32b
1685*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_IDR6(a) "SMMUX_IDR6"
1686*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_IDR6(a) 0x0 /* PF_BAR0 */
1687*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_IDR6(a) (a)
1688*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_IDR6(a) (a), -1, -1, -1
1689*4b8b8d74SJaiprakash Singh
1690*4b8b8d74SJaiprakash Singh /**
1691*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_iidr
1692*4b8b8d74SJaiprakash Singh *
1693*4b8b8d74SJaiprakash Singh * SMMU Implementation Identification Register
1694*4b8b8d74SJaiprakash Singh * Provides information about the implementation/implementer of the SMMU and
1695*4b8b8d74SJaiprakash Singh * architecture version supported.
1696*4b8b8d74SJaiprakash Singh */
1697*4b8b8d74SJaiprakash Singh union ody_smmux_iidr {
1698*4b8b8d74SJaiprakash Singh uint32_t u;
1699*4b8b8d74SJaiprakash Singh struct ody_smmux_iidr_s {
1700*4b8b8d74SJaiprakash Singh uint32_t implementer : 12;
1701*4b8b8d74SJaiprakash Singh uint32_t revision : 4;
1702*4b8b8d74SJaiprakash Singh uint32_t variant : 4;
1703*4b8b8d74SJaiprakash Singh uint32_t productid : 12;
1704*4b8b8d74SJaiprakash Singh } s;
1705*4b8b8d74SJaiprakash Singh /* struct ody_smmux_iidr_s cn; */
1706*4b8b8d74SJaiprakash Singh };
1707*4b8b8d74SJaiprakash Singh typedef union ody_smmux_iidr ody_smmux_iidr_t;
1708*4b8b8d74SJaiprakash Singh
1709*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IIDR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_IIDR(uint64_t a)1710*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IIDR(uint64_t a)
1711*4b8b8d74SJaiprakash Singh {
1712*4b8b8d74SJaiprakash Singh if (a <= 3)
1713*4b8b8d74SJaiprakash Singh return 0x830000000018ll + 0x1000000000ll * ((a) & 0x3);
1714*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_IIDR", 1, a, 0, 0, 0, 0, 0);
1715*4b8b8d74SJaiprakash Singh }
1716*4b8b8d74SJaiprakash Singh
1717*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_IIDR(a) ody_smmux_iidr_t
1718*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_IIDR(a) CSR_TYPE_NCB32b
1719*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_IIDR(a) "SMMUX_IIDR"
1720*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_IIDR(a) 0x0 /* PF_BAR0 */
1721*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_IIDR(a) (a)
1722*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_IIDR(a) (a), -1, -1, -1
1723*4b8b8d74SJaiprakash Singh
1724*4b8b8d74SJaiprakash Singh /**
1725*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_imp_actlr
1726*4b8b8d74SJaiprakash Singh *
1727*4b8b8d74SJaiprakash Singh * SMMU Auxiliary Control Register
1728*4b8b8d74SJaiprakash Singh */
1729*4b8b8d74SJaiprakash Singh union ody_smmux_imp_actlr {
1730*4b8b8d74SJaiprakash Singh uint32_t u;
1731*4b8b8d74SJaiprakash Singh struct ody_smmux_imp_actlr_s {
1732*4b8b8d74SJaiprakash Singh uint32_t qos : 4;
1733*4b8b8d74SJaiprakash Singh uint32_t reserved_4_31 : 28;
1734*4b8b8d74SJaiprakash Singh } s;
1735*4b8b8d74SJaiprakash Singh /* struct ody_smmux_imp_actlr_s cn; */
1736*4b8b8d74SJaiprakash Singh };
1737*4b8b8d74SJaiprakash Singh typedef union ody_smmux_imp_actlr ody_smmux_imp_actlr_t;
1738*4b8b8d74SJaiprakash Singh
1739*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IMP_ACTLR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_IMP_ACTLR(uint64_t a)1740*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IMP_ACTLR(uint64_t a)
1741*4b8b8d74SJaiprakash Singh {
1742*4b8b8d74SJaiprakash Singh if (a <= 3)
1743*4b8b8d74SJaiprakash Singh return 0x830000000e10ll + 0x1000000000ll * ((a) & 0x3);
1744*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_IMP_ACTLR", 1, a, 0, 0, 0, 0, 0);
1745*4b8b8d74SJaiprakash Singh }
1746*4b8b8d74SJaiprakash Singh
1747*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_IMP_ACTLR(a) ody_smmux_imp_actlr_t
1748*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_IMP_ACTLR(a) CSR_TYPE_NCB32b
1749*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_IMP_ACTLR(a) "SMMUX_IMP_ACTLR"
1750*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_IMP_ACTLR(a) 0x0 /* PF_BAR0 */
1751*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_IMP_ACTLR(a) (a)
1752*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_IMP_ACTLR(a) (a), -1, -1, -1
1753*4b8b8d74SJaiprakash Singh
1754*4b8b8d74SJaiprakash Singh /**
1755*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_imp_const0
1756*4b8b8d74SJaiprakash Singh *
1757*4b8b8d74SJaiprakash Singh * SMMU Constant Register
1758*4b8b8d74SJaiprakash Singh */
1759*4b8b8d74SJaiprakash Singh union ody_smmux_imp_const0 {
1760*4b8b8d74SJaiprakash Singh uint64_t u;
1761*4b8b8d74SJaiprakash Singh struct ody_smmux_imp_const0_s {
1762*4b8b8d74SJaiprakash Singh uint64_t tlb : 16;
1763*4b8b8d74SJaiprakash Singh uint64_t reserved_16_47 : 32;
1764*4b8b8d74SJaiprakash Singh uint64_t cfc : 16;
1765*4b8b8d74SJaiprakash Singh } s;
1766*4b8b8d74SJaiprakash Singh /* struct ody_smmux_imp_const0_s cn; */
1767*4b8b8d74SJaiprakash Singh };
1768*4b8b8d74SJaiprakash Singh typedef union ody_smmux_imp_const0 ody_smmux_imp_const0_t;
1769*4b8b8d74SJaiprakash Singh
1770*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IMP_CONST0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_IMP_CONST0(uint64_t a)1771*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IMP_CONST0(uint64_t a)
1772*4b8b8d74SJaiprakash Singh {
1773*4b8b8d74SJaiprakash Singh if (a <= 3)
1774*4b8b8d74SJaiprakash Singh return 0x830000000e08ll + 0x1000000000ll * ((a) & 0x3);
1775*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_IMP_CONST0", 1, a, 0, 0, 0, 0, 0);
1776*4b8b8d74SJaiprakash Singh }
1777*4b8b8d74SJaiprakash Singh
1778*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_IMP_CONST0(a) ody_smmux_imp_const0_t
1779*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_IMP_CONST0(a) CSR_TYPE_NCB
1780*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_IMP_CONST0(a) "SMMUX_IMP_CONST0"
1781*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_IMP_CONST0(a) 0x0 /* PF_BAR0 */
1782*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_IMP_CONST0(a) (a)
1783*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_IMP_CONST0(a) (a), -1, -1, -1
1784*4b8b8d74SJaiprakash Singh
1785*4b8b8d74SJaiprakash Singh /**
1786*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_imp_error_cause
1787*4b8b8d74SJaiprakash Singh *
1788*4b8b8d74SJaiprakash Singh * SMMU cause for error event Register
1789*4b8b8d74SJaiprakash Singh * This register contains debug information.
1790*4b8b8d74SJaiprakash Singh */
1791*4b8b8d74SJaiprakash Singh union ody_smmux_imp_error_cause {
1792*4b8b8d74SJaiprakash Singh uint32_t u;
1793*4b8b8d74SJaiprakash Singh struct ody_smmux_imp_error_cause_s {
1794*4b8b8d74SJaiprakash Singh uint32_t ste_valid : 1;
1795*4b8b8d74SJaiprakash Singh uint32_t ste_sel2 : 1;
1796*4b8b8d74SJaiprakash Singh uint32_t ste_strw : 1;
1797*4b8b8d74SJaiprakash Singh uint32_t ste_s1stalld : 1;
1798*4b8b8d74SJaiprakash Singh uint32_t ste_s1contextptr : 1;
1799*4b8b8d74SJaiprakash Singh uint32_t ste_s2s : 1;
1800*4b8b8d74SJaiprakash Singh uint32_t ste_s2tg : 1;
1801*4b8b8d74SJaiprakash Singh uint32_t ste_aarch : 1;
1802*4b8b8d74SJaiprakash Singh uint32_t ste_httu : 1;
1803*4b8b8d74SJaiprakash Singh uint32_t ste_s2ttb : 1;
1804*4b8b8d74SJaiprakash Singh uint32_t ste_s2t0sz : 1;
1805*4b8b8d74SJaiprakash Singh uint32_t ste_s2_walk_cfg : 1;
1806*4b8b8d74SJaiprakash Singh uint32_t cd_valid : 1;
1807*4b8b8d74SJaiprakash Singh uint32_t cd_s : 1;
1808*4b8b8d74SJaiprakash Singh uint32_t cd_streamworld : 1;
1809*4b8b8d74SJaiprakash Singh uint32_t cd_aarch : 1;
1810*4b8b8d74SJaiprakash Singh uint32_t cd_httu : 1;
1811*4b8b8d74SJaiprakash Singh uint32_t cd_txsz : 1;
1812*4b8b8d74SJaiprakash Singh uint32_t cd_ttbx : 1;
1813*4b8b8d74SJaiprakash Singh uint32_t cd_tgx : 1;
1814*4b8b8d74SJaiprakash Singh uint32_t reserved_20_23 : 4;
1815*4b8b8d74SJaiprakash Singh uint32_t ttd_valid : 1;
1816*4b8b8d74SJaiprakash Singh uint32_t crs_endianness : 1;
1817*4b8b8d74SJaiprakash Singh uint32_t crs_compr_err_on_httu_upd_resp : 1;
1818*4b8b8d74SJaiprakash Singh uint32_t crs_unexp_err_on_httu_upd_resp : 1;
1819*4b8b8d74SJaiprakash Singh uint32_t wlk_crs_miss_dbm_upd_needed : 1;
1820*4b8b8d74SJaiprakash Singh uint32_t wlk_crs_miss_httu_upd_needed : 1;
1821*4b8b8d74SJaiprakash Singh uint32_t bus_poison : 1;
1822*4b8b8d74SJaiprakash Singh uint32_t bus_error : 1;
1823*4b8b8d74SJaiprakash Singh } s;
1824*4b8b8d74SJaiprakash Singh /* struct ody_smmux_imp_error_cause_s cn; */
1825*4b8b8d74SJaiprakash Singh };
1826*4b8b8d74SJaiprakash Singh typedef union ody_smmux_imp_error_cause ody_smmux_imp_error_cause_t;
1827*4b8b8d74SJaiprakash Singh
1828*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IMP_ERROR_CAUSE(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_IMP_ERROR_CAUSE(uint64_t a)1829*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IMP_ERROR_CAUSE(uint64_t a)
1830*4b8b8d74SJaiprakash Singh {
1831*4b8b8d74SJaiprakash Singh if (a <= 3)
1832*4b8b8d74SJaiprakash Singh return 0x830000000e20ll + 0x1000000000ll * ((a) & 0x3);
1833*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_IMP_ERROR_CAUSE", 1, a, 0, 0, 0, 0, 0);
1834*4b8b8d74SJaiprakash Singh }
1835*4b8b8d74SJaiprakash Singh
1836*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_IMP_ERROR_CAUSE(a) ody_smmux_imp_error_cause_t
1837*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_IMP_ERROR_CAUSE(a) CSR_TYPE_NCB32b
1838*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_IMP_ERROR_CAUSE(a) "SMMUX_IMP_ERROR_CAUSE"
1839*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_IMP_ERROR_CAUSE(a) 0x0 /* PF_BAR0 */
1840*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_IMP_ERROR_CAUSE(a) (a)
1841*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_IMP_ERROR_CAUSE(a) (a), -1, -1, -1
1842*4b8b8d74SJaiprakash Singh
1843*4b8b8d74SJaiprakash Singh /**
1844*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_imp_status
1845*4b8b8d74SJaiprakash Singh *
1846*4b8b8d74SJaiprakash Singh * SMMU Debug Registers
1847*4b8b8d74SJaiprakash Singh * This register contains debug information.
1848*4b8b8d74SJaiprakash Singh */
1849*4b8b8d74SJaiprakash Singh union ody_smmux_imp_status {
1850*4b8b8d74SJaiprakash Singh uint32_t u;
1851*4b8b8d74SJaiprakash Singh struct ody_smmux_imp_status_s {
1852*4b8b8d74SJaiprakash Singh uint32_t inflight : 16;
1853*4b8b8d74SJaiprakash Singh uint32_t walker : 5;
1854*4b8b8d74SJaiprakash Singh uint32_t cfgwalker : 5;
1855*4b8b8d74SJaiprakash Singh uint32_t reserved_26_31 : 6;
1856*4b8b8d74SJaiprakash Singh } s;
1857*4b8b8d74SJaiprakash Singh /* struct ody_smmux_imp_status_s cn; */
1858*4b8b8d74SJaiprakash Singh };
1859*4b8b8d74SJaiprakash Singh typedef union ody_smmux_imp_status ody_smmux_imp_status_t;
1860*4b8b8d74SJaiprakash Singh
1861*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IMP_STATUS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_IMP_STATUS(uint64_t a)1862*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IMP_STATUS(uint64_t a)
1863*4b8b8d74SJaiprakash Singh {
1864*4b8b8d74SJaiprakash Singh if (a <= 3)
1865*4b8b8d74SJaiprakash Singh return 0x830000000e18ll + 0x1000000000ll * ((a) & 0x3);
1866*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_IMP_STATUS", 1, a, 0, 0, 0, 0, 0);
1867*4b8b8d74SJaiprakash Singh }
1868*4b8b8d74SJaiprakash Singh
1869*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_IMP_STATUS(a) ody_smmux_imp_status_t
1870*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_IMP_STATUS(a) CSR_TYPE_NCB32b
1871*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_IMP_STATUS(a) "SMMUX_IMP_STATUS"
1872*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_IMP_STATUS(a) 0x0 /* PF_BAR0 */
1873*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_IMP_STATUS(a) (a)
1874*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_IMP_STATUS(a) (a), -1, -1, -1
1875*4b8b8d74SJaiprakash Singh
1876*4b8b8d74SJaiprakash Singh /**
1877*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_irq_ctrl
1878*4b8b8d74SJaiprakash Singh *
1879*4b8b8d74SJaiprakash Singh * SMMU Interrupt Request Control Register
1880*4b8b8d74SJaiprakash Singh * Each field in this register has a corresponding field in SMMU()_IRQ_CTRLACK, with
1881*4b8b8d74SJaiprakash Singh * the same "update" semantic as fields in SMMU()_CR0 versus SMMU()_CR0ACK.
1882*4b8b8d74SJaiprakash Singh *
1883*4b8b8d74SJaiprakash Singh * This register contains IRQ enable flags for GERROR/PRIQ/EVENTQ interrupt
1884*4b8b8d74SJaiprakash Singh * sources. These enables allow/inhibit both edge-triggered wired outputs (if
1885*4b8b8d74SJaiprakash Singh * implemented) and MSI writes (if implemented).
1886*4b8b8d74SJaiprakash Singh *
1887*4b8b8d74SJaiprakash Singh * IRQ enable flags guard the MSI address/payload registers, which must only be changed
1888*4b8b8d74SJaiprakash Singh * when their respective enable flag is zero. See SMMU()_GERROR_IRQ_CFG0 for details.
1889*4b8b8d74SJaiprakash Singh *
1890*4b8b8d74SJaiprakash Singh * Completion of an update of x_IRQEN from zero to one guarantees that the MSI configuration
1891*4b8b8d74SJaiprakash Singh * in SMMU()_x_IRQ_CFG{0,1,2} will be used for all future MSIs generated from source `x'.
1892*4b8b8d74SJaiprakash Singh * An update of x_IRQEN from one to zero completes when all prior MSIs have become visible
1893*4b8b8d74SJaiprakash Singh * to their shareability domain (have completed). Completion of this update guarantees
1894*4b8b8d74SJaiprakash Singh * that no new MSI writes or wired edge events will later become visible from source
1895*4b8b8d74SJaiprakash Singh * `x'.
1896*4b8b8d74SJaiprakash Singh */
1897*4b8b8d74SJaiprakash Singh union ody_smmux_irq_ctrl {
1898*4b8b8d74SJaiprakash Singh uint32_t u;
1899*4b8b8d74SJaiprakash Singh struct ody_smmux_irq_ctrl_s {
1900*4b8b8d74SJaiprakash Singh uint32_t gerror_irqen : 1;
1901*4b8b8d74SJaiprakash Singh uint32_t priq_irqen : 1;
1902*4b8b8d74SJaiprakash Singh uint32_t eventq_irqen : 1;
1903*4b8b8d74SJaiprakash Singh uint32_t reserved_3_31 : 29;
1904*4b8b8d74SJaiprakash Singh } s;
1905*4b8b8d74SJaiprakash Singh /* struct ody_smmux_irq_ctrl_s cn; */
1906*4b8b8d74SJaiprakash Singh };
1907*4b8b8d74SJaiprakash Singh typedef union ody_smmux_irq_ctrl ody_smmux_irq_ctrl_t;
1908*4b8b8d74SJaiprakash Singh
1909*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IRQ_CTRL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_IRQ_CTRL(uint64_t a)1910*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IRQ_CTRL(uint64_t a)
1911*4b8b8d74SJaiprakash Singh {
1912*4b8b8d74SJaiprakash Singh if (a <= 3)
1913*4b8b8d74SJaiprakash Singh return 0x830000000050ll + 0x1000000000ll * ((a) & 0x3);
1914*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_IRQ_CTRL", 1, a, 0, 0, 0, 0, 0);
1915*4b8b8d74SJaiprakash Singh }
1916*4b8b8d74SJaiprakash Singh
1917*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_IRQ_CTRL(a) ody_smmux_irq_ctrl_t
1918*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_IRQ_CTRL(a) CSR_TYPE_NCB32b
1919*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_IRQ_CTRL(a) "SMMUX_IRQ_CTRL"
1920*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_IRQ_CTRL(a) 0x0 /* PF_BAR0 */
1921*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_IRQ_CTRL(a) (a)
1922*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_IRQ_CTRL(a) (a), -1, -1, -1
1923*4b8b8d74SJaiprakash Singh
1924*4b8b8d74SJaiprakash Singh /**
1925*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_irq_ctrlack
1926*4b8b8d74SJaiprakash Singh *
1927*4b8b8d74SJaiprakash Singh * SMMU Interrupt Control Acknowledgement Register
1928*4b8b8d74SJaiprakash Singh * This register is a read-only copy of SMMU()_IRQ_CTRL.
1929*4b8b8d74SJaiprakash Singh */
1930*4b8b8d74SJaiprakash Singh union ody_smmux_irq_ctrlack {
1931*4b8b8d74SJaiprakash Singh uint32_t u;
1932*4b8b8d74SJaiprakash Singh struct ody_smmux_irq_ctrlack_s {
1933*4b8b8d74SJaiprakash Singh uint32_t gerror_irqen : 1;
1934*4b8b8d74SJaiprakash Singh uint32_t priq_irqen : 1;
1935*4b8b8d74SJaiprakash Singh uint32_t eventq_irqen : 1;
1936*4b8b8d74SJaiprakash Singh uint32_t reserved_3_31 : 29;
1937*4b8b8d74SJaiprakash Singh } s;
1938*4b8b8d74SJaiprakash Singh /* struct ody_smmux_irq_ctrlack_s cn; */
1939*4b8b8d74SJaiprakash Singh };
1940*4b8b8d74SJaiprakash Singh typedef union ody_smmux_irq_ctrlack ody_smmux_irq_ctrlack_t;
1941*4b8b8d74SJaiprakash Singh
1942*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IRQ_CTRLACK(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_IRQ_CTRLACK(uint64_t a)1943*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_IRQ_CTRLACK(uint64_t a)
1944*4b8b8d74SJaiprakash Singh {
1945*4b8b8d74SJaiprakash Singh if (a <= 3)
1946*4b8b8d74SJaiprakash Singh return 0x830000000054ll + 0x1000000000ll * ((a) & 0x3);
1947*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_IRQ_CTRLACK", 1, a, 0, 0, 0, 0, 0);
1948*4b8b8d74SJaiprakash Singh }
1949*4b8b8d74SJaiprakash Singh
1950*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_IRQ_CTRLACK(a) ody_smmux_irq_ctrlack_t
1951*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_IRQ_CTRLACK(a) CSR_TYPE_NCB32b
1952*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_IRQ_CTRLACK(a) "SMMUX_IRQ_CTRLACK"
1953*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_IRQ_CTRLACK(a) 0x0 /* PF_BAR0 */
1954*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_IRQ_CTRLACK(a) (a)
1955*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_IRQ_CTRLACK(a) (a), -1, -1, -1
1956*4b8b8d74SJaiprakash Singh
1957*4b8b8d74SJaiprakash Singh /**
1958*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_mpamidr
1959*4b8b8d74SJaiprakash Singh *
1960*4b8b8d74SJaiprakash Singh * MPAM capability identification for Non-secure state Register
1961*4b8b8d74SJaiprakash Singh */
1962*4b8b8d74SJaiprakash Singh union ody_smmux_mpamidr {
1963*4b8b8d74SJaiprakash Singh uint32_t u;
1964*4b8b8d74SJaiprakash Singh struct ody_smmux_mpamidr_s {
1965*4b8b8d74SJaiprakash Singh uint32_t partid_max : 16;
1966*4b8b8d74SJaiprakash Singh uint32_t pmg_max : 8;
1967*4b8b8d74SJaiprakash Singh uint32_t reserved_24_31 : 8;
1968*4b8b8d74SJaiprakash Singh } s;
1969*4b8b8d74SJaiprakash Singh /* struct ody_smmux_mpamidr_s cn; */
1970*4b8b8d74SJaiprakash Singh };
1971*4b8b8d74SJaiprakash Singh typedef union ody_smmux_mpamidr ody_smmux_mpamidr_t;
1972*4b8b8d74SJaiprakash Singh
1973*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_MPAMIDR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_MPAMIDR(uint64_t a)1974*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_MPAMIDR(uint64_t a)
1975*4b8b8d74SJaiprakash Singh {
1976*4b8b8d74SJaiprakash Singh if (a <= 3)
1977*4b8b8d74SJaiprakash Singh return 0x830000000130ll + 0x1000000000ll * ((a) & 0x3);
1978*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_MPAMIDR", 1, a, 0, 0, 0, 0, 0);
1979*4b8b8d74SJaiprakash Singh }
1980*4b8b8d74SJaiprakash Singh
1981*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_MPAMIDR(a) ody_smmux_mpamidr_t
1982*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_MPAMIDR(a) CSR_TYPE_NCB32b
1983*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_MPAMIDR(a) "SMMUX_MPAMIDR"
1984*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_MPAMIDR(a) 0x0 /* PF_BAR0 */
1985*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_MPAMIDR(a) (a)
1986*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_MPAMIDR(a) (a), -1, -1, -1
1987*4b8b8d74SJaiprakash Singh
1988*4b8b8d74SJaiprakash Singh /**
1989*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pidr0
1990*4b8b8d74SJaiprakash Singh *
1991*4b8b8d74SJaiprakash Singh * SMMU Peripheral Identification Register 0
1992*4b8b8d74SJaiprakash Singh */
1993*4b8b8d74SJaiprakash Singh union ody_smmux_pidr0 {
1994*4b8b8d74SJaiprakash Singh uint32_t u;
1995*4b8b8d74SJaiprakash Singh struct ody_smmux_pidr0_s {
1996*4b8b8d74SJaiprakash Singh uint32_t partnum0 : 8;
1997*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
1998*4b8b8d74SJaiprakash Singh } s;
1999*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pidr0_s cn; */
2000*4b8b8d74SJaiprakash Singh };
2001*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pidr0 ody_smmux_pidr0_t;
2002*4b8b8d74SJaiprakash Singh
2003*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PIDR0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_PIDR0(uint64_t a)2004*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PIDR0(uint64_t a)
2005*4b8b8d74SJaiprakash Singh {
2006*4b8b8d74SJaiprakash Singh if (a <= 3)
2007*4b8b8d74SJaiprakash Singh return 0x830000000fe0ll + 0x1000000000ll * ((a) & 0x3);
2008*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PIDR0", 1, a, 0, 0, 0, 0, 0);
2009*4b8b8d74SJaiprakash Singh }
2010*4b8b8d74SJaiprakash Singh
2011*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PIDR0(a) ody_smmux_pidr0_t
2012*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PIDR0(a) CSR_TYPE_NCB32b
2013*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PIDR0(a) "SMMUX_PIDR0"
2014*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PIDR0(a) 0x0 /* PF_BAR0 */
2015*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PIDR0(a) (a)
2016*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PIDR0(a) (a), -1, -1, -1
2017*4b8b8d74SJaiprakash Singh
2018*4b8b8d74SJaiprakash Singh /**
2019*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pidr1
2020*4b8b8d74SJaiprakash Singh *
2021*4b8b8d74SJaiprakash Singh * SMMU Peripheral Identification Register 1
2022*4b8b8d74SJaiprakash Singh */
2023*4b8b8d74SJaiprakash Singh union ody_smmux_pidr1 {
2024*4b8b8d74SJaiprakash Singh uint32_t u;
2025*4b8b8d74SJaiprakash Singh struct ody_smmux_pidr1_s {
2026*4b8b8d74SJaiprakash Singh uint32_t partnum1 : 4;
2027*4b8b8d74SJaiprakash Singh uint32_t idcode : 4;
2028*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
2029*4b8b8d74SJaiprakash Singh } s;
2030*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pidr1_s cn; */
2031*4b8b8d74SJaiprakash Singh };
2032*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pidr1 ody_smmux_pidr1_t;
2033*4b8b8d74SJaiprakash Singh
2034*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PIDR1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_PIDR1(uint64_t a)2035*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PIDR1(uint64_t a)
2036*4b8b8d74SJaiprakash Singh {
2037*4b8b8d74SJaiprakash Singh if (a <= 3)
2038*4b8b8d74SJaiprakash Singh return 0x830000000fe4ll + 0x1000000000ll * ((a) & 0x3);
2039*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PIDR1", 1, a, 0, 0, 0, 0, 0);
2040*4b8b8d74SJaiprakash Singh }
2041*4b8b8d74SJaiprakash Singh
2042*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PIDR1(a) ody_smmux_pidr1_t
2043*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PIDR1(a) CSR_TYPE_NCB32b
2044*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PIDR1(a) "SMMUX_PIDR1"
2045*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PIDR1(a) 0x0 /* PF_BAR0 */
2046*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PIDR1(a) (a)
2047*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PIDR1(a) (a), -1, -1, -1
2048*4b8b8d74SJaiprakash Singh
2049*4b8b8d74SJaiprakash Singh /**
2050*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pidr2
2051*4b8b8d74SJaiprakash Singh *
2052*4b8b8d74SJaiprakash Singh * SMMU Peripheral Identification Register 2
2053*4b8b8d74SJaiprakash Singh */
2054*4b8b8d74SJaiprakash Singh union ody_smmux_pidr2 {
2055*4b8b8d74SJaiprakash Singh uint32_t u;
2056*4b8b8d74SJaiprakash Singh struct ody_smmux_pidr2_s {
2057*4b8b8d74SJaiprakash Singh uint32_t idcode : 3;
2058*4b8b8d74SJaiprakash Singh uint32_t jedec : 1;
2059*4b8b8d74SJaiprakash Singh uint32_t revision : 4;
2060*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
2061*4b8b8d74SJaiprakash Singh } s;
2062*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pidr2_s cn; */
2063*4b8b8d74SJaiprakash Singh };
2064*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pidr2 ody_smmux_pidr2_t;
2065*4b8b8d74SJaiprakash Singh
2066*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PIDR2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_PIDR2(uint64_t a)2067*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PIDR2(uint64_t a)
2068*4b8b8d74SJaiprakash Singh {
2069*4b8b8d74SJaiprakash Singh if (a <= 3)
2070*4b8b8d74SJaiprakash Singh return 0x830000000fe8ll + 0x1000000000ll * ((a) & 0x3);
2071*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PIDR2", 1, a, 0, 0, 0, 0, 0);
2072*4b8b8d74SJaiprakash Singh }
2073*4b8b8d74SJaiprakash Singh
2074*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PIDR2(a) ody_smmux_pidr2_t
2075*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PIDR2(a) CSR_TYPE_NCB32b
2076*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PIDR2(a) "SMMUX_PIDR2"
2077*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PIDR2(a) 0x0 /* PF_BAR0 */
2078*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PIDR2(a) (a)
2079*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PIDR2(a) (a), -1, -1, -1
2080*4b8b8d74SJaiprakash Singh
2081*4b8b8d74SJaiprakash Singh /**
2082*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pidr3
2083*4b8b8d74SJaiprakash Singh *
2084*4b8b8d74SJaiprakash Singh * SMMU Peripheral Identification Register 3
2085*4b8b8d74SJaiprakash Singh */
2086*4b8b8d74SJaiprakash Singh union ody_smmux_pidr3 {
2087*4b8b8d74SJaiprakash Singh uint32_t u;
2088*4b8b8d74SJaiprakash Singh struct ody_smmux_pidr3_s {
2089*4b8b8d74SJaiprakash Singh uint32_t cust : 4;
2090*4b8b8d74SJaiprakash Singh uint32_t revand : 4;
2091*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
2092*4b8b8d74SJaiprakash Singh } s;
2093*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pidr3_s cn; */
2094*4b8b8d74SJaiprakash Singh };
2095*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pidr3 ody_smmux_pidr3_t;
2096*4b8b8d74SJaiprakash Singh
2097*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PIDR3(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_PIDR3(uint64_t a)2098*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PIDR3(uint64_t a)
2099*4b8b8d74SJaiprakash Singh {
2100*4b8b8d74SJaiprakash Singh if (a <= 3)
2101*4b8b8d74SJaiprakash Singh return 0x830000000fecll + 0x1000000000ll * ((a) & 0x3);
2102*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PIDR3", 1, a, 0, 0, 0, 0, 0);
2103*4b8b8d74SJaiprakash Singh }
2104*4b8b8d74SJaiprakash Singh
2105*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PIDR3(a) ody_smmux_pidr3_t
2106*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PIDR3(a) CSR_TYPE_NCB32b
2107*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PIDR3(a) "SMMUX_PIDR3"
2108*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PIDR3(a) 0x0 /* PF_BAR0 */
2109*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PIDR3(a) (a)
2110*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PIDR3(a) (a), -1, -1, -1
2111*4b8b8d74SJaiprakash Singh
2112*4b8b8d74SJaiprakash Singh /**
2113*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pidr4
2114*4b8b8d74SJaiprakash Singh *
2115*4b8b8d74SJaiprakash Singh * SMMU Peripheral Identification Register 4
2116*4b8b8d74SJaiprakash Singh */
2117*4b8b8d74SJaiprakash Singh union ody_smmux_pidr4 {
2118*4b8b8d74SJaiprakash Singh uint32_t u;
2119*4b8b8d74SJaiprakash Singh struct ody_smmux_pidr4_s {
2120*4b8b8d74SJaiprakash Singh uint32_t jepcont : 4;
2121*4b8b8d74SJaiprakash Singh uint32_t pagecnt : 4;
2122*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
2123*4b8b8d74SJaiprakash Singh } s;
2124*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pidr4_s cn; */
2125*4b8b8d74SJaiprakash Singh };
2126*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pidr4 ody_smmux_pidr4_t;
2127*4b8b8d74SJaiprakash Singh
2128*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PIDR4(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_PIDR4(uint64_t a)2129*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PIDR4(uint64_t a)
2130*4b8b8d74SJaiprakash Singh {
2131*4b8b8d74SJaiprakash Singh if (a <= 3)
2132*4b8b8d74SJaiprakash Singh return 0x830000000fd0ll + 0x1000000000ll * ((a) & 0x3);
2133*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PIDR4", 1, a, 0, 0, 0, 0, 0);
2134*4b8b8d74SJaiprakash Singh }
2135*4b8b8d74SJaiprakash Singh
2136*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PIDR4(a) ody_smmux_pidr4_t
2137*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PIDR4(a) CSR_TYPE_NCB32b
2138*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PIDR4(a) "SMMUX_PIDR4"
2139*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PIDR4(a) 0x0 /* PF_BAR0 */
2140*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PIDR4(a) (a)
2141*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PIDR4(a) (a), -1, -1, -1
2142*4b8b8d74SJaiprakash Singh
2143*4b8b8d74SJaiprakash Singh /**
2144*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pidr5
2145*4b8b8d74SJaiprakash Singh *
2146*4b8b8d74SJaiprakash Singh * SMMU Peripheral Identification Register 5
2147*4b8b8d74SJaiprakash Singh */
2148*4b8b8d74SJaiprakash Singh union ody_smmux_pidr5 {
2149*4b8b8d74SJaiprakash Singh uint32_t u;
2150*4b8b8d74SJaiprakash Singh struct ody_smmux_pidr5_s {
2151*4b8b8d74SJaiprakash Singh uint32_t reserved_0_31 : 32;
2152*4b8b8d74SJaiprakash Singh } s;
2153*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pidr5_s cn; */
2154*4b8b8d74SJaiprakash Singh };
2155*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pidr5 ody_smmux_pidr5_t;
2156*4b8b8d74SJaiprakash Singh
2157*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PIDR5(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_PIDR5(uint64_t a)2158*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PIDR5(uint64_t a)
2159*4b8b8d74SJaiprakash Singh {
2160*4b8b8d74SJaiprakash Singh if (a <= 3)
2161*4b8b8d74SJaiprakash Singh return 0x830000000fd4ll + 0x1000000000ll * ((a) & 0x3);
2162*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PIDR5", 1, a, 0, 0, 0, 0, 0);
2163*4b8b8d74SJaiprakash Singh }
2164*4b8b8d74SJaiprakash Singh
2165*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PIDR5(a) ody_smmux_pidr5_t
2166*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PIDR5(a) CSR_TYPE_NCB32b
2167*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PIDR5(a) "SMMUX_PIDR5"
2168*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PIDR5(a) 0x0 /* PF_BAR0 */
2169*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PIDR5(a) (a)
2170*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PIDR5(a) (a), -1, -1, -1
2171*4b8b8d74SJaiprakash Singh
2172*4b8b8d74SJaiprakash Singh /**
2173*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pidr6
2174*4b8b8d74SJaiprakash Singh *
2175*4b8b8d74SJaiprakash Singh * SMMU Peripheral Identification Register 6
2176*4b8b8d74SJaiprakash Singh */
2177*4b8b8d74SJaiprakash Singh union ody_smmux_pidr6 {
2178*4b8b8d74SJaiprakash Singh uint32_t u;
2179*4b8b8d74SJaiprakash Singh struct ody_smmux_pidr6_s {
2180*4b8b8d74SJaiprakash Singh uint32_t reserved_0_31 : 32;
2181*4b8b8d74SJaiprakash Singh } s;
2182*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pidr6_s cn; */
2183*4b8b8d74SJaiprakash Singh };
2184*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pidr6 ody_smmux_pidr6_t;
2185*4b8b8d74SJaiprakash Singh
2186*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PIDR6(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_PIDR6(uint64_t a)2187*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PIDR6(uint64_t a)
2188*4b8b8d74SJaiprakash Singh {
2189*4b8b8d74SJaiprakash Singh if (a <= 3)
2190*4b8b8d74SJaiprakash Singh return 0x830000000fd8ll + 0x1000000000ll * ((a) & 0x3);
2191*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PIDR6", 1, a, 0, 0, 0, 0, 0);
2192*4b8b8d74SJaiprakash Singh }
2193*4b8b8d74SJaiprakash Singh
2194*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PIDR6(a) ody_smmux_pidr6_t
2195*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PIDR6(a) CSR_TYPE_NCB32b
2196*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PIDR6(a) "SMMUX_PIDR6"
2197*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PIDR6(a) 0x0 /* PF_BAR0 */
2198*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PIDR6(a) (a)
2199*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PIDR6(a) (a), -1, -1, -1
2200*4b8b8d74SJaiprakash Singh
2201*4b8b8d74SJaiprakash Singh /**
2202*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pidr7
2203*4b8b8d74SJaiprakash Singh *
2204*4b8b8d74SJaiprakash Singh * SMMU Peripheral Identification Register 7
2205*4b8b8d74SJaiprakash Singh */
2206*4b8b8d74SJaiprakash Singh union ody_smmux_pidr7 {
2207*4b8b8d74SJaiprakash Singh uint32_t u;
2208*4b8b8d74SJaiprakash Singh struct ody_smmux_pidr7_s {
2209*4b8b8d74SJaiprakash Singh uint32_t reserved_0_31 : 32;
2210*4b8b8d74SJaiprakash Singh } s;
2211*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pidr7_s cn; */
2212*4b8b8d74SJaiprakash Singh };
2213*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pidr7 ody_smmux_pidr7_t;
2214*4b8b8d74SJaiprakash Singh
2215*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PIDR7(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_PIDR7(uint64_t a)2216*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PIDR7(uint64_t a)
2217*4b8b8d74SJaiprakash Singh {
2218*4b8b8d74SJaiprakash Singh if (a <= 3)
2219*4b8b8d74SJaiprakash Singh return 0x830000000fdcll + 0x1000000000ll * ((a) & 0x3);
2220*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PIDR7", 1, a, 0, 0, 0, 0, 0);
2221*4b8b8d74SJaiprakash Singh }
2222*4b8b8d74SJaiprakash Singh
2223*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PIDR7(a) ody_smmux_pidr7_t
2224*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PIDR7(a) CSR_TYPE_NCB32b
2225*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PIDR7(a) "SMMUX_PIDR7"
2226*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PIDR7(a) 0x0 /* PF_BAR0 */
2227*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PIDR7(a) (a)
2228*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PIDR7(a) (a), -1, -1, -1
2229*4b8b8d74SJaiprakash Singh
2230*4b8b8d74SJaiprakash Singh /**
2231*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_aidr
2232*4b8b8d74SJaiprakash Singh *
2233*4b8b8d74SJaiprakash Singh * SMMU PMCG Architecture Identification Register
2234*4b8b8d74SJaiprakash Singh */
2235*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_aidr {
2236*4b8b8d74SJaiprakash Singh uint32_t u;
2237*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_aidr_s {
2238*4b8b8d74SJaiprakash Singh uint32_t archminorrev : 4;
2239*4b8b8d74SJaiprakash Singh uint32_t archmajorrev : 4;
2240*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
2241*4b8b8d74SJaiprakash Singh } s;
2242*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_aidr_s cn; */
2243*4b8b8d74SJaiprakash Singh };
2244*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_aidr ody_smmux_pmcgx_aidr_t;
2245*4b8b8d74SJaiprakash Singh
2246*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_AIDR(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_AIDR(uint64_t a,uint64_t b)2247*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_AIDR(uint64_t a, uint64_t b)
2248*4b8b8d74SJaiprakash Singh {
2249*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2250*4b8b8d74SJaiprakash Singh return 0x830000100e70ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2251*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_AIDR", 2, a, b, 0, 0, 0, 0);
2252*4b8b8d74SJaiprakash Singh }
2253*4b8b8d74SJaiprakash Singh
2254*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_AIDR(a, b) ody_smmux_pmcgx_aidr_t
2255*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_AIDR(a, b) CSR_TYPE_NCB32b
2256*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_AIDR(a, b) "SMMUX_PMCGX_AIDR"
2257*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_AIDR(a, b) 0x0 /* PF_BAR0 */
2258*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_AIDR(a, b) (a)
2259*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_AIDR(a, b) (a), (b), -1, -1
2260*4b8b8d74SJaiprakash Singh
2261*4b8b8d74SJaiprakash Singh /**
2262*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_capr
2263*4b8b8d74SJaiprakash Singh *
2264*4b8b8d74SJaiprakash Singh * SMMU PMCG Counter Shadow Value Register
2265*4b8b8d74SJaiprakash Singh */
2266*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_capr {
2267*4b8b8d74SJaiprakash Singh uint32_t u;
2268*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_capr_s {
2269*4b8b8d74SJaiprakash Singh uint32_t capture : 1;
2270*4b8b8d74SJaiprakash Singh uint32_t reserved_1_31 : 31;
2271*4b8b8d74SJaiprakash Singh } s;
2272*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_capr_s cn; */
2273*4b8b8d74SJaiprakash Singh };
2274*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_capr ody_smmux_pmcgx_capr_t;
2275*4b8b8d74SJaiprakash Singh
2276*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_CAPR(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_CAPR(uint64_t a,uint64_t b)2277*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_CAPR(uint64_t a, uint64_t b)
2278*4b8b8d74SJaiprakash Singh {
2279*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2280*4b8b8d74SJaiprakash Singh return 0x830000100d88ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2281*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_CAPR", 2, a, b, 0, 0, 0, 0);
2282*4b8b8d74SJaiprakash Singh }
2283*4b8b8d74SJaiprakash Singh
2284*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_CAPR(a, b) ody_smmux_pmcgx_capr_t
2285*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_CAPR(a, b) CSR_TYPE_NCB32b
2286*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_CAPR(a, b) "SMMUX_PMCGX_CAPR"
2287*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_CAPR(a, b) 0x0 /* PF_BAR0 */
2288*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_CAPR(a, b) (a)
2289*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_CAPR(a, b) (a), (b), -1, -1
2290*4b8b8d74SJaiprakash Singh
2291*4b8b8d74SJaiprakash Singh /**
2292*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_pmcg#_ceid0
2293*4b8b8d74SJaiprakash Singh *
2294*4b8b8d74SJaiprakash Singh * SMMU PMCG Common Event ID bitmap, Lower Register
2295*4b8b8d74SJaiprakash Singh */
2296*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_ceid0 {
2297*4b8b8d74SJaiprakash Singh uint64_t u;
2298*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_ceid0_s {
2299*4b8b8d74SJaiprakash Singh uint64_t bitmap : 64;
2300*4b8b8d74SJaiprakash Singh } s;
2301*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_ceid0_s cn; */
2302*4b8b8d74SJaiprakash Singh };
2303*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_ceid0 ody_smmux_pmcgx_ceid0_t;
2304*4b8b8d74SJaiprakash Singh
2305*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_CEID0(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_CEID0(uint64_t a,uint64_t b)2306*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_CEID0(uint64_t a, uint64_t b)
2307*4b8b8d74SJaiprakash Singh {
2308*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2309*4b8b8d74SJaiprakash Singh return 0x830000100e20ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2310*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_CEID0", 2, a, b, 0, 0, 0, 0);
2311*4b8b8d74SJaiprakash Singh }
2312*4b8b8d74SJaiprakash Singh
2313*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_CEID0(a, b) ody_smmux_pmcgx_ceid0_t
2314*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_CEID0(a, b) CSR_TYPE_NCB
2315*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_CEID0(a, b) "SMMUX_PMCGX_CEID0"
2316*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_CEID0(a, b) 0x0 /* PF_BAR0 */
2317*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_CEID0(a, b) (a)
2318*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_CEID0(a, b) (a), (b), -1, -1
2319*4b8b8d74SJaiprakash Singh
2320*4b8b8d74SJaiprakash Singh /**
2321*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_pmcg#_ceid1
2322*4b8b8d74SJaiprakash Singh *
2323*4b8b8d74SJaiprakash Singh * SMMU PMCG Common Event ID bitmap, Upper Register
2324*4b8b8d74SJaiprakash Singh */
2325*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_ceid1 {
2326*4b8b8d74SJaiprakash Singh uint64_t u;
2327*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_ceid1_s {
2328*4b8b8d74SJaiprakash Singh uint64_t bitmap : 64;
2329*4b8b8d74SJaiprakash Singh } s;
2330*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_ceid1_s cn; */
2331*4b8b8d74SJaiprakash Singh };
2332*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_ceid1 ody_smmux_pmcgx_ceid1_t;
2333*4b8b8d74SJaiprakash Singh
2334*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_CEID1(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_CEID1(uint64_t a,uint64_t b)2335*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_CEID1(uint64_t a, uint64_t b)
2336*4b8b8d74SJaiprakash Singh {
2337*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2338*4b8b8d74SJaiprakash Singh return 0x830000100e28ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2339*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_CEID1", 2, a, b, 0, 0, 0, 0);
2340*4b8b8d74SJaiprakash Singh }
2341*4b8b8d74SJaiprakash Singh
2342*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_CEID1(a, b) ody_smmux_pmcgx_ceid1_t
2343*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_CEID1(a, b) CSR_TYPE_NCB
2344*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_CEID1(a, b) "SMMUX_PMCGX_CEID1"
2345*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_CEID1(a, b) 0x0 /* PF_BAR0 */
2346*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_CEID1(a, b) (a)
2347*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_CEID1(a, b) (a), (b), -1, -1
2348*4b8b8d74SJaiprakash Singh
2349*4b8b8d74SJaiprakash Singh /**
2350*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_cfgr
2351*4b8b8d74SJaiprakash Singh *
2352*4b8b8d74SJaiprakash Singh * SMMU PMCG Configuration Register
2353*4b8b8d74SJaiprakash Singh */
2354*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_cfgr {
2355*4b8b8d74SJaiprakash Singh uint32_t u;
2356*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_cfgr_s {
2357*4b8b8d74SJaiprakash Singh uint32_t nctr : 6;
2358*4b8b8d74SJaiprakash Singh uint32_t reserved_6_7 : 2;
2359*4b8b8d74SJaiprakash Singh uint32_t size : 6;
2360*4b8b8d74SJaiprakash Singh uint32_t reserved_14_19 : 6;
2361*4b8b8d74SJaiprakash Singh uint32_t reloc_ctrs : 1;
2362*4b8b8d74SJaiprakash Singh uint32_t msi : 1;
2363*4b8b8d74SJaiprakash Singh uint32_t capture : 1;
2364*4b8b8d74SJaiprakash Singh uint32_t sid_filter_type : 1;
2365*4b8b8d74SJaiprakash Singh uint32_t mpam : 1;
2366*4b8b8d74SJaiprakash Singh uint32_t filter_partid_pmg : 1;
2367*4b8b8d74SJaiprakash Singh uint32_t reserved_26_31 : 6;
2368*4b8b8d74SJaiprakash Singh } s;
2369*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_cfgr_s cn; */
2370*4b8b8d74SJaiprakash Singh };
2371*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_cfgr ody_smmux_pmcgx_cfgr_t;
2372*4b8b8d74SJaiprakash Singh
2373*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_CFGR(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_CFGR(uint64_t a,uint64_t b)2374*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_CFGR(uint64_t a, uint64_t b)
2375*4b8b8d74SJaiprakash Singh {
2376*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2377*4b8b8d74SJaiprakash Singh return 0x830000100e00ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2378*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_CFGR", 2, a, b, 0, 0, 0, 0);
2379*4b8b8d74SJaiprakash Singh }
2380*4b8b8d74SJaiprakash Singh
2381*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_CFGR(a, b) ody_smmux_pmcgx_cfgr_t
2382*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_CFGR(a, b) CSR_TYPE_NCB32b
2383*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_CFGR(a, b) "SMMUX_PMCGX_CFGR"
2384*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_CFGR(a, b) 0x0 /* PF_BAR0 */
2385*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_CFGR(a, b) (a)
2386*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_CFGR(a, b) (a), (b), -1, -1
2387*4b8b8d74SJaiprakash Singh
2388*4b8b8d74SJaiprakash Singh /**
2389*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_cidr0
2390*4b8b8d74SJaiprakash Singh *
2391*4b8b8d74SJaiprakash Singh * SMMU Component Identification Register 0
2392*4b8b8d74SJaiprakash Singh */
2393*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_cidr0 {
2394*4b8b8d74SJaiprakash Singh uint32_t u;
2395*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_cidr0_s {
2396*4b8b8d74SJaiprakash Singh uint32_t preamble : 8;
2397*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
2398*4b8b8d74SJaiprakash Singh } s;
2399*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_cidr0_s cn; */
2400*4b8b8d74SJaiprakash Singh };
2401*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_cidr0 ody_smmux_pmcgx_cidr0_t;
2402*4b8b8d74SJaiprakash Singh
2403*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_CIDR0(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_CIDR0(uint64_t a,uint64_t b)2404*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_CIDR0(uint64_t a, uint64_t b)
2405*4b8b8d74SJaiprakash Singh {
2406*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2407*4b8b8d74SJaiprakash Singh return 0x830000100ff0ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2408*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_CIDR0", 2, a, b, 0, 0, 0, 0);
2409*4b8b8d74SJaiprakash Singh }
2410*4b8b8d74SJaiprakash Singh
2411*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_CIDR0(a, b) ody_smmux_pmcgx_cidr0_t
2412*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_CIDR0(a, b) CSR_TYPE_NCB32b
2413*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_CIDR0(a, b) "SMMUX_PMCGX_CIDR0"
2414*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_CIDR0(a, b) 0x0 /* PF_BAR0 */
2415*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_CIDR0(a, b) (a)
2416*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_CIDR0(a, b) (a), (b), -1, -1
2417*4b8b8d74SJaiprakash Singh
2418*4b8b8d74SJaiprakash Singh /**
2419*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_cidr1
2420*4b8b8d74SJaiprakash Singh *
2421*4b8b8d74SJaiprakash Singh * SMMU PMCG Component Identification Register 1
2422*4b8b8d74SJaiprakash Singh */
2423*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_cidr1 {
2424*4b8b8d74SJaiprakash Singh uint32_t u;
2425*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_cidr1_s {
2426*4b8b8d74SJaiprakash Singh uint32_t preamble : 4;
2427*4b8b8d74SJaiprakash Singh uint32_t component_class : 4;
2428*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
2429*4b8b8d74SJaiprakash Singh } s;
2430*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_cidr1_s cn; */
2431*4b8b8d74SJaiprakash Singh };
2432*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_cidr1 ody_smmux_pmcgx_cidr1_t;
2433*4b8b8d74SJaiprakash Singh
2434*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_CIDR1(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_CIDR1(uint64_t a,uint64_t b)2435*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_CIDR1(uint64_t a, uint64_t b)
2436*4b8b8d74SJaiprakash Singh {
2437*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2438*4b8b8d74SJaiprakash Singh return 0x830000100ff4ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2439*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_CIDR1", 2, a, b, 0, 0, 0, 0);
2440*4b8b8d74SJaiprakash Singh }
2441*4b8b8d74SJaiprakash Singh
2442*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_CIDR1(a, b) ody_smmux_pmcgx_cidr1_t
2443*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_CIDR1(a, b) CSR_TYPE_NCB32b
2444*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_CIDR1(a, b) "SMMUX_PMCGX_CIDR1"
2445*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_CIDR1(a, b) 0x0 /* PF_BAR0 */
2446*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_CIDR1(a, b) (a)
2447*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_CIDR1(a, b) (a), (b), -1, -1
2448*4b8b8d74SJaiprakash Singh
2449*4b8b8d74SJaiprakash Singh /**
2450*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_cidr2
2451*4b8b8d74SJaiprakash Singh *
2452*4b8b8d74SJaiprakash Singh * SMMU PMCG Component Identification Register 2
2453*4b8b8d74SJaiprakash Singh */
2454*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_cidr2 {
2455*4b8b8d74SJaiprakash Singh uint32_t u;
2456*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_cidr2_s {
2457*4b8b8d74SJaiprakash Singh uint32_t preamble : 8;
2458*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
2459*4b8b8d74SJaiprakash Singh } s;
2460*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_cidr2_s cn; */
2461*4b8b8d74SJaiprakash Singh };
2462*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_cidr2 ody_smmux_pmcgx_cidr2_t;
2463*4b8b8d74SJaiprakash Singh
2464*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_CIDR2(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_CIDR2(uint64_t a,uint64_t b)2465*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_CIDR2(uint64_t a, uint64_t b)
2466*4b8b8d74SJaiprakash Singh {
2467*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2468*4b8b8d74SJaiprakash Singh return 0x830000100ff8ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2469*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_CIDR2", 2, a, b, 0, 0, 0, 0);
2470*4b8b8d74SJaiprakash Singh }
2471*4b8b8d74SJaiprakash Singh
2472*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_CIDR2(a, b) ody_smmux_pmcgx_cidr2_t
2473*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_CIDR2(a, b) CSR_TYPE_NCB32b
2474*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_CIDR2(a, b) "SMMUX_PMCGX_CIDR2"
2475*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_CIDR2(a, b) 0x0 /* PF_BAR0 */
2476*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_CIDR2(a, b) (a)
2477*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_CIDR2(a, b) (a), (b), -1, -1
2478*4b8b8d74SJaiprakash Singh
2479*4b8b8d74SJaiprakash Singh /**
2480*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_cidr3
2481*4b8b8d74SJaiprakash Singh *
2482*4b8b8d74SJaiprakash Singh * SMMU PMCG Component Identification Register 3
2483*4b8b8d74SJaiprakash Singh */
2484*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_cidr3 {
2485*4b8b8d74SJaiprakash Singh uint32_t u;
2486*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_cidr3_s {
2487*4b8b8d74SJaiprakash Singh uint32_t preamble : 8;
2488*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
2489*4b8b8d74SJaiprakash Singh } s;
2490*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_cidr3_s cn; */
2491*4b8b8d74SJaiprakash Singh };
2492*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_cidr3 ody_smmux_pmcgx_cidr3_t;
2493*4b8b8d74SJaiprakash Singh
2494*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_CIDR3(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_CIDR3(uint64_t a,uint64_t b)2495*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_CIDR3(uint64_t a, uint64_t b)
2496*4b8b8d74SJaiprakash Singh {
2497*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2498*4b8b8d74SJaiprakash Singh return 0x830000100ffcll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2499*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_CIDR3", 2, a, b, 0, 0, 0, 0);
2500*4b8b8d74SJaiprakash Singh }
2501*4b8b8d74SJaiprakash Singh
2502*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_CIDR3(a, b) ody_smmux_pmcgx_cidr3_t
2503*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_CIDR3(a, b) CSR_TYPE_NCB32b
2504*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_CIDR3(a, b) "SMMUX_PMCGX_CIDR3"
2505*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_CIDR3(a, b) 0x0 /* PF_BAR0 */
2506*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_CIDR3(a, b) (a)
2507*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_CIDR3(a, b) (a), (b), -1, -1
2508*4b8b8d74SJaiprakash Singh
2509*4b8b8d74SJaiprakash Singh /**
2510*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_pmcg#_cntenclr0
2511*4b8b8d74SJaiprakash Singh *
2512*4b8b8d74SJaiprakash Singh * SMMU PMCG Counter Enable Clear Register
2513*4b8b8d74SJaiprakash Singh */
2514*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_cntenclr0 {
2515*4b8b8d74SJaiprakash Singh uint64_t u;
2516*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_cntenclr0_s {
2517*4b8b8d74SJaiprakash Singh uint64_t cnten : 4;
2518*4b8b8d74SJaiprakash Singh uint64_t reserved_4_63 : 60;
2519*4b8b8d74SJaiprakash Singh } s;
2520*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_cntenclr0_s cn; */
2521*4b8b8d74SJaiprakash Singh };
2522*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_cntenclr0 ody_smmux_pmcgx_cntenclr0_t;
2523*4b8b8d74SJaiprakash Singh
2524*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_CNTENCLR0(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_CNTENCLR0(uint64_t a,uint64_t b)2525*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_CNTENCLR0(uint64_t a, uint64_t b)
2526*4b8b8d74SJaiprakash Singh {
2527*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2528*4b8b8d74SJaiprakash Singh return 0x830000100c20ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2529*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_CNTENCLR0", 2, a, b, 0, 0, 0, 0);
2530*4b8b8d74SJaiprakash Singh }
2531*4b8b8d74SJaiprakash Singh
2532*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_CNTENCLR0(a, b) ody_smmux_pmcgx_cntenclr0_t
2533*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_CNTENCLR0(a, b) CSR_TYPE_NCB
2534*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_CNTENCLR0(a, b) "SMMUX_PMCGX_CNTENCLR0"
2535*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_CNTENCLR0(a, b) 0x0 /* PF_BAR0 */
2536*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_CNTENCLR0(a, b) (a)
2537*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_CNTENCLR0(a, b) (a), (b), -1, -1
2538*4b8b8d74SJaiprakash Singh
2539*4b8b8d74SJaiprakash Singh /**
2540*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_pmcg#_cntenset0
2541*4b8b8d74SJaiprakash Singh *
2542*4b8b8d74SJaiprakash Singh * SMMU PMCG Counter Enable Set Register
2543*4b8b8d74SJaiprakash Singh */
2544*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_cntenset0 {
2545*4b8b8d74SJaiprakash Singh uint64_t u;
2546*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_cntenset0_s {
2547*4b8b8d74SJaiprakash Singh uint64_t cnten : 4;
2548*4b8b8d74SJaiprakash Singh uint64_t reserved_4_63 : 60;
2549*4b8b8d74SJaiprakash Singh } s;
2550*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_cntenset0_s cn; */
2551*4b8b8d74SJaiprakash Singh };
2552*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_cntenset0 ody_smmux_pmcgx_cntenset0_t;
2553*4b8b8d74SJaiprakash Singh
2554*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_CNTENSET0(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_CNTENSET0(uint64_t a,uint64_t b)2555*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_CNTENSET0(uint64_t a, uint64_t b)
2556*4b8b8d74SJaiprakash Singh {
2557*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2558*4b8b8d74SJaiprakash Singh return 0x830000100c00ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2559*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_CNTENSET0", 2, a, b, 0, 0, 0, 0);
2560*4b8b8d74SJaiprakash Singh }
2561*4b8b8d74SJaiprakash Singh
2562*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_CNTENSET0(a, b) ody_smmux_pmcgx_cntenset0_t
2563*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_CNTENSET0(a, b) CSR_TYPE_NCB
2564*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_CNTENSET0(a, b) "SMMUX_PMCGX_CNTENSET0"
2565*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_CNTENSET0(a, b) 0x0 /* PF_BAR0 */
2566*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_CNTENSET0(a, b) (a)
2567*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_CNTENSET0(a, b) (a), (b), -1, -1
2568*4b8b8d74SJaiprakash Singh
2569*4b8b8d74SJaiprakash Singh /**
2570*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_cr
2571*4b8b8d74SJaiprakash Singh *
2572*4b8b8d74SJaiprakash Singh * SMMU PMCG Global Counter Enable Register
2573*4b8b8d74SJaiprakash Singh */
2574*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_cr {
2575*4b8b8d74SJaiprakash Singh uint32_t u;
2576*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_cr_s {
2577*4b8b8d74SJaiprakash Singh uint32_t enable : 1;
2578*4b8b8d74SJaiprakash Singh uint32_t reserved_1_31 : 31;
2579*4b8b8d74SJaiprakash Singh } s;
2580*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_cr_s cn; */
2581*4b8b8d74SJaiprakash Singh };
2582*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_cr ody_smmux_pmcgx_cr_t;
2583*4b8b8d74SJaiprakash Singh
2584*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_CR(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_CR(uint64_t a,uint64_t b)2585*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_CR(uint64_t a, uint64_t b)
2586*4b8b8d74SJaiprakash Singh {
2587*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2588*4b8b8d74SJaiprakash Singh return 0x830000100e04ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2589*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_CR", 2, a, b, 0, 0, 0, 0);
2590*4b8b8d74SJaiprakash Singh }
2591*4b8b8d74SJaiprakash Singh
2592*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_CR(a, b) ody_smmux_pmcgx_cr_t
2593*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_CR(a, b) CSR_TYPE_NCB32b
2594*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_CR(a, b) "SMMUX_PMCGX_CR"
2595*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_CR(a, b) 0x0 /* PF_BAR0 */
2596*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_CR(a, b) (a)
2597*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_CR(a, b) (a), (b), -1, -1
2598*4b8b8d74SJaiprakash Singh
2599*4b8b8d74SJaiprakash Singh /**
2600*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_pmcg#_evcntr#
2601*4b8b8d74SJaiprakash Singh *
2602*4b8b8d74SJaiprakash Singh * SMMU PMCG Event Counter Register
2603*4b8b8d74SJaiprakash Singh */
2604*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_evcntrx {
2605*4b8b8d74SJaiprakash Singh uint64_t u;
2606*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_evcntrx_s {
2607*4b8b8d74SJaiprakash Singh uint64_t count : 64;
2608*4b8b8d74SJaiprakash Singh } s;
2609*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_evcntrx_s cn; */
2610*4b8b8d74SJaiprakash Singh };
2611*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_evcntrx ody_smmux_pmcgx_evcntrx_t;
2612*4b8b8d74SJaiprakash Singh
2613*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_EVCNTRX(uint64_t a, uint64_t b, uint64_t c) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_EVCNTRX(uint64_t a,uint64_t b,uint64_t c)2614*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_EVCNTRX(uint64_t a, uint64_t b, uint64_t c)
2615*4b8b8d74SJaiprakash Singh {
2616*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3) && (c <= 3))
2617*4b8b8d74SJaiprakash Singh return 0x830000110000ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3) + 8ll * ((c) & 0x3);
2618*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_EVCNTRX", 3, a, b, c, 0, 0, 0);
2619*4b8b8d74SJaiprakash Singh }
2620*4b8b8d74SJaiprakash Singh
2621*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_EVCNTRX(a, b, c) ody_smmux_pmcgx_evcntrx_t
2622*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_EVCNTRX(a, b, c) CSR_TYPE_NCB
2623*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_EVCNTRX(a, b, c) "SMMUX_PMCGX_EVCNTRX"
2624*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_EVCNTRX(a, b, c) 0x0 /* PF_BAR0 */
2625*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_EVCNTRX(a, b, c) (a)
2626*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_EVCNTRX(a, b, c) (a), (b), (c), -1
2627*4b8b8d74SJaiprakash Singh
2628*4b8b8d74SJaiprakash Singh /**
2629*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_evtyper#
2630*4b8b8d74SJaiprakash Singh *
2631*4b8b8d74SJaiprakash Singh * SMMU PMCG Event Type Configuration Register
2632*4b8b8d74SJaiprakash Singh */
2633*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_evtyperx {
2634*4b8b8d74SJaiprakash Singh uint32_t u;
2635*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_evtyperx_s {
2636*4b8b8d74SJaiprakash Singh uint32_t evnt : 8;
2637*4b8b8d74SJaiprakash Singh uint32_t reserved_8_28 : 21;
2638*4b8b8d74SJaiprakash Singh uint32_t filter_sid_span : 1;
2639*4b8b8d74SJaiprakash Singh uint32_t filter_sec_sid : 1;
2640*4b8b8d74SJaiprakash Singh uint32_t ovfcap : 1;
2641*4b8b8d74SJaiprakash Singh } s;
2642*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_evtyperx_s cn; */
2643*4b8b8d74SJaiprakash Singh };
2644*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_evtyperx ody_smmux_pmcgx_evtyperx_t;
2645*4b8b8d74SJaiprakash Singh
2646*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_EVTYPERX(uint64_t a, uint64_t b, uint64_t c) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_EVTYPERX(uint64_t a,uint64_t b,uint64_t c)2647*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_EVTYPERX(uint64_t a, uint64_t b, uint64_t c)
2648*4b8b8d74SJaiprakash Singh {
2649*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3) && (c <= 3))
2650*4b8b8d74SJaiprakash Singh return 0x830000100400ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3) + 4ll * ((c) & 0x3);
2651*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_EVTYPERX", 3, a, b, c, 0, 0, 0);
2652*4b8b8d74SJaiprakash Singh }
2653*4b8b8d74SJaiprakash Singh
2654*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_EVTYPERX(a, b, c) ody_smmux_pmcgx_evtyperx_t
2655*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_EVTYPERX(a, b, c) CSR_TYPE_NCB32b
2656*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_EVTYPERX(a, b, c) "SMMUX_PMCGX_EVTYPERX"
2657*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_EVTYPERX(a, b, c) 0x0 /* PF_BAR0 */
2658*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_EVTYPERX(a, b, c) (a)
2659*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_EVTYPERX(a, b, c) (a), (b), (c), -1
2660*4b8b8d74SJaiprakash Singh
2661*4b8b8d74SJaiprakash Singh /**
2662*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_pmcg#_intenclr0
2663*4b8b8d74SJaiprakash Singh *
2664*4b8b8d74SJaiprakash Singh * SMMU PMCG Interrupt Enable Clear Register
2665*4b8b8d74SJaiprakash Singh */
2666*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_intenclr0 {
2667*4b8b8d74SJaiprakash Singh uint64_t u;
2668*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_intenclr0_s {
2669*4b8b8d74SJaiprakash Singh uint64_t inten : 4;
2670*4b8b8d74SJaiprakash Singh uint64_t reserved_4_63 : 60;
2671*4b8b8d74SJaiprakash Singh } s;
2672*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_intenclr0_s cn; */
2673*4b8b8d74SJaiprakash Singh };
2674*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_intenclr0 ody_smmux_pmcgx_intenclr0_t;
2675*4b8b8d74SJaiprakash Singh
2676*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_INTENCLR0(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_INTENCLR0(uint64_t a,uint64_t b)2677*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_INTENCLR0(uint64_t a, uint64_t b)
2678*4b8b8d74SJaiprakash Singh {
2679*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2680*4b8b8d74SJaiprakash Singh return 0x830000100c60ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2681*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_INTENCLR0", 2, a, b, 0, 0, 0, 0);
2682*4b8b8d74SJaiprakash Singh }
2683*4b8b8d74SJaiprakash Singh
2684*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_INTENCLR0(a, b) ody_smmux_pmcgx_intenclr0_t
2685*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_INTENCLR0(a, b) CSR_TYPE_NCB
2686*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_INTENCLR0(a, b) "SMMUX_PMCGX_INTENCLR0"
2687*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_INTENCLR0(a, b) 0x0 /* PF_BAR0 */
2688*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_INTENCLR0(a, b) (a)
2689*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_INTENCLR0(a, b) (a), (b), -1, -1
2690*4b8b8d74SJaiprakash Singh
2691*4b8b8d74SJaiprakash Singh /**
2692*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_pmcg#_intenset0
2693*4b8b8d74SJaiprakash Singh *
2694*4b8b8d74SJaiprakash Singh * SMMU PMCG Interrupt Enable Set Register
2695*4b8b8d74SJaiprakash Singh */
2696*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_intenset0 {
2697*4b8b8d74SJaiprakash Singh uint64_t u;
2698*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_intenset0_s {
2699*4b8b8d74SJaiprakash Singh uint64_t inten : 4;
2700*4b8b8d74SJaiprakash Singh uint64_t reserved_4_63 : 60;
2701*4b8b8d74SJaiprakash Singh } s;
2702*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_intenset0_s cn; */
2703*4b8b8d74SJaiprakash Singh };
2704*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_intenset0 ody_smmux_pmcgx_intenset0_t;
2705*4b8b8d74SJaiprakash Singh
2706*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_INTENSET0(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_INTENSET0(uint64_t a,uint64_t b)2707*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_INTENSET0(uint64_t a, uint64_t b)
2708*4b8b8d74SJaiprakash Singh {
2709*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2710*4b8b8d74SJaiprakash Singh return 0x830000100c40ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2711*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_INTENSET0", 2, a, b, 0, 0, 0, 0);
2712*4b8b8d74SJaiprakash Singh }
2713*4b8b8d74SJaiprakash Singh
2714*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_INTENSET0(a, b) ody_smmux_pmcgx_intenset0_t
2715*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_INTENSET0(a, b) CSR_TYPE_NCB
2716*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_INTENSET0(a, b) "SMMUX_PMCGX_INTENSET0"
2717*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_INTENSET0(a, b) 0x0 /* PF_BAR0 */
2718*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_INTENSET0(a, b) (a)
2719*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_INTENSET0(a, b) (a), (b), -1, -1
2720*4b8b8d74SJaiprakash Singh
2721*4b8b8d74SJaiprakash Singh /**
2722*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_pmcg#_irq_cfg0
2723*4b8b8d74SJaiprakash Singh *
2724*4b8b8d74SJaiprakash Singh * SMMU PMCG MSI Configuration Register
2725*4b8b8d74SJaiprakash Singh */
2726*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_irq_cfg0 {
2727*4b8b8d74SJaiprakash Singh uint64_t u;
2728*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_irq_cfg0_s {
2729*4b8b8d74SJaiprakash Singh uint64_t reserved_0_1 : 2;
2730*4b8b8d74SJaiprakash Singh uint64_t addr : 50;
2731*4b8b8d74SJaiprakash Singh uint64_t reserved_52_63 : 12;
2732*4b8b8d74SJaiprakash Singh } s;
2733*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_irq_cfg0_s cn; */
2734*4b8b8d74SJaiprakash Singh };
2735*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_irq_cfg0 ody_smmux_pmcgx_irq_cfg0_t;
2736*4b8b8d74SJaiprakash Singh
2737*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_IRQ_CFG0(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_IRQ_CFG0(uint64_t a,uint64_t b)2738*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_IRQ_CFG0(uint64_t a, uint64_t b)
2739*4b8b8d74SJaiprakash Singh {
2740*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2741*4b8b8d74SJaiprakash Singh return 0x830000100e58ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2742*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_IRQ_CFG0", 2, a, b, 0, 0, 0, 0);
2743*4b8b8d74SJaiprakash Singh }
2744*4b8b8d74SJaiprakash Singh
2745*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_IRQ_CFG0(a, b) ody_smmux_pmcgx_irq_cfg0_t
2746*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_IRQ_CFG0(a, b) CSR_TYPE_NCB
2747*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_IRQ_CFG0(a, b) "SMMUX_PMCGX_IRQ_CFG0"
2748*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_IRQ_CFG0(a, b) 0x0 /* PF_BAR0 */
2749*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_IRQ_CFG0(a, b) (a)
2750*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_IRQ_CFG0(a, b) (a), (b), -1, -1
2751*4b8b8d74SJaiprakash Singh
2752*4b8b8d74SJaiprakash Singh /**
2753*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_irq_cfg1
2754*4b8b8d74SJaiprakash Singh *
2755*4b8b8d74SJaiprakash Singh * SMMU PMCG MSI Configuration Register
2756*4b8b8d74SJaiprakash Singh */
2757*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_irq_cfg1 {
2758*4b8b8d74SJaiprakash Singh uint32_t u;
2759*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_irq_cfg1_s {
2760*4b8b8d74SJaiprakash Singh uint32_t data : 32;
2761*4b8b8d74SJaiprakash Singh } s;
2762*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_irq_cfg1_s cn; */
2763*4b8b8d74SJaiprakash Singh };
2764*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_irq_cfg1 ody_smmux_pmcgx_irq_cfg1_t;
2765*4b8b8d74SJaiprakash Singh
2766*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_IRQ_CFG1(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_IRQ_CFG1(uint64_t a,uint64_t b)2767*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_IRQ_CFG1(uint64_t a, uint64_t b)
2768*4b8b8d74SJaiprakash Singh {
2769*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2770*4b8b8d74SJaiprakash Singh return 0x830000100e60ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2771*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_IRQ_CFG1", 2, a, b, 0, 0, 0, 0);
2772*4b8b8d74SJaiprakash Singh }
2773*4b8b8d74SJaiprakash Singh
2774*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_IRQ_CFG1(a, b) ody_smmux_pmcgx_irq_cfg1_t
2775*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_IRQ_CFG1(a, b) CSR_TYPE_NCB32b
2776*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_IRQ_CFG1(a, b) "SMMUX_PMCGX_IRQ_CFG1"
2777*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_IRQ_CFG1(a, b) 0x0 /* PF_BAR0 */
2778*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_IRQ_CFG1(a, b) (a)
2779*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_IRQ_CFG1(a, b) (a), (b), -1, -1
2780*4b8b8d74SJaiprakash Singh
2781*4b8b8d74SJaiprakash Singh /**
2782*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_irq_cfg2
2783*4b8b8d74SJaiprakash Singh *
2784*4b8b8d74SJaiprakash Singh * SMMU PMCG MSI Configuration Register
2785*4b8b8d74SJaiprakash Singh */
2786*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_irq_cfg2 {
2787*4b8b8d74SJaiprakash Singh uint32_t u;
2788*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_irq_cfg2_s {
2789*4b8b8d74SJaiprakash Singh uint32_t memattr : 4;
2790*4b8b8d74SJaiprakash Singh uint32_t sh : 2;
2791*4b8b8d74SJaiprakash Singh uint32_t reserved_6_31 : 26;
2792*4b8b8d74SJaiprakash Singh } s;
2793*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_irq_cfg2_s cn; */
2794*4b8b8d74SJaiprakash Singh };
2795*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_irq_cfg2 ody_smmux_pmcgx_irq_cfg2_t;
2796*4b8b8d74SJaiprakash Singh
2797*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_IRQ_CFG2(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_IRQ_CFG2(uint64_t a,uint64_t b)2798*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_IRQ_CFG2(uint64_t a, uint64_t b)
2799*4b8b8d74SJaiprakash Singh {
2800*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2801*4b8b8d74SJaiprakash Singh return 0x830000100e64ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2802*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_IRQ_CFG2", 2, a, b, 0, 0, 0, 0);
2803*4b8b8d74SJaiprakash Singh }
2804*4b8b8d74SJaiprakash Singh
2805*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_IRQ_CFG2(a, b) ody_smmux_pmcgx_irq_cfg2_t
2806*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_IRQ_CFG2(a, b) CSR_TYPE_NCB32b
2807*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_IRQ_CFG2(a, b) "SMMUX_PMCGX_IRQ_CFG2"
2808*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_IRQ_CFG2(a, b) 0x0 /* PF_BAR0 */
2809*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_IRQ_CFG2(a, b) (a)
2810*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_IRQ_CFG2(a, b) (a), (b), -1, -1
2811*4b8b8d74SJaiprakash Singh
2812*4b8b8d74SJaiprakash Singh /**
2813*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_irq_ctrl
2814*4b8b8d74SJaiprakash Singh *
2815*4b8b8d74SJaiprakash Singh * SMMU PMCG IRQ Enable Register
2816*4b8b8d74SJaiprakash Singh */
2817*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_irq_ctrl {
2818*4b8b8d74SJaiprakash Singh uint32_t u;
2819*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_irq_ctrl_s {
2820*4b8b8d74SJaiprakash Singh uint32_t irqen : 1;
2821*4b8b8d74SJaiprakash Singh uint32_t reserved_1_31 : 31;
2822*4b8b8d74SJaiprakash Singh } s;
2823*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_irq_ctrl_s cn; */
2824*4b8b8d74SJaiprakash Singh };
2825*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_irq_ctrl ody_smmux_pmcgx_irq_ctrl_t;
2826*4b8b8d74SJaiprakash Singh
2827*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_IRQ_CTRL(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_IRQ_CTRL(uint64_t a,uint64_t b)2828*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_IRQ_CTRL(uint64_t a, uint64_t b)
2829*4b8b8d74SJaiprakash Singh {
2830*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2831*4b8b8d74SJaiprakash Singh return 0x830000100e50ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2832*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_IRQ_CTRL", 2, a, b, 0, 0, 0, 0);
2833*4b8b8d74SJaiprakash Singh }
2834*4b8b8d74SJaiprakash Singh
2835*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_IRQ_CTRL(a, b) ody_smmux_pmcgx_irq_ctrl_t
2836*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_IRQ_CTRL(a, b) CSR_TYPE_NCB32b
2837*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_IRQ_CTRL(a, b) "SMMUX_PMCGX_IRQ_CTRL"
2838*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_IRQ_CTRL(a, b) 0x0 /* PF_BAR0 */
2839*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_IRQ_CTRL(a, b) (a)
2840*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_IRQ_CTRL(a, b) (a), (b), -1, -1
2841*4b8b8d74SJaiprakash Singh
2842*4b8b8d74SJaiprakash Singh /**
2843*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_irq_ctrlack
2844*4b8b8d74SJaiprakash Singh *
2845*4b8b8d74SJaiprakash Singh * SMMU PMCG IRQ Enable Ack Register
2846*4b8b8d74SJaiprakash Singh * This register is a read-only copy of SMMU()_PMCG()_IRQ_CTRL.
2847*4b8b8d74SJaiprakash Singh */
2848*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_irq_ctrlack {
2849*4b8b8d74SJaiprakash Singh uint32_t u;
2850*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_irq_ctrlack_s {
2851*4b8b8d74SJaiprakash Singh uint32_t irqen : 1;
2852*4b8b8d74SJaiprakash Singh uint32_t reserved_1_31 : 31;
2853*4b8b8d74SJaiprakash Singh } s;
2854*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_irq_ctrlack_s cn; */
2855*4b8b8d74SJaiprakash Singh };
2856*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_irq_ctrlack ody_smmux_pmcgx_irq_ctrlack_t;
2857*4b8b8d74SJaiprakash Singh
2858*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_IRQ_CTRLACK(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_IRQ_CTRLACK(uint64_t a,uint64_t b)2859*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_IRQ_CTRLACK(uint64_t a, uint64_t b)
2860*4b8b8d74SJaiprakash Singh {
2861*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2862*4b8b8d74SJaiprakash Singh return 0x830000100e54ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2863*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_IRQ_CTRLACK", 2, a, b, 0, 0, 0, 0);
2864*4b8b8d74SJaiprakash Singh }
2865*4b8b8d74SJaiprakash Singh
2866*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_IRQ_CTRLACK(a, b) ody_smmux_pmcgx_irq_ctrlack_t
2867*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_IRQ_CTRLACK(a, b) CSR_TYPE_NCB32b
2868*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_IRQ_CTRLACK(a, b) "SMMUX_PMCGX_IRQ_CTRLACK"
2869*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_IRQ_CTRLACK(a, b) 0x0 /* PF_BAR0 */
2870*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_IRQ_CTRLACK(a, b) (a)
2871*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_IRQ_CTRLACK(a, b) (a), (b), -1, -1
2872*4b8b8d74SJaiprakash Singh
2873*4b8b8d74SJaiprakash Singh /**
2874*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_irq_status
2875*4b8b8d74SJaiprakash Singh *
2876*4b8b8d74SJaiprakash Singh * SMMU PMCG MSI Status Register
2877*4b8b8d74SJaiprakash Singh */
2878*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_irq_status {
2879*4b8b8d74SJaiprakash Singh uint32_t u;
2880*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_irq_status_s {
2881*4b8b8d74SJaiprakash Singh uint32_t irq_abt : 1;
2882*4b8b8d74SJaiprakash Singh uint32_t reserved_1_31 : 31;
2883*4b8b8d74SJaiprakash Singh } s;
2884*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_irq_status_s cn; */
2885*4b8b8d74SJaiprakash Singh };
2886*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_irq_status ody_smmux_pmcgx_irq_status_t;
2887*4b8b8d74SJaiprakash Singh
2888*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_IRQ_STATUS(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_IRQ_STATUS(uint64_t a,uint64_t b)2889*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_IRQ_STATUS(uint64_t a, uint64_t b)
2890*4b8b8d74SJaiprakash Singh {
2891*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2892*4b8b8d74SJaiprakash Singh return 0x830000100e68ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2893*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_IRQ_STATUS", 2, a, b, 0, 0, 0, 0);
2894*4b8b8d74SJaiprakash Singh }
2895*4b8b8d74SJaiprakash Singh
2896*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_IRQ_STATUS(a, b) ody_smmux_pmcgx_irq_status_t
2897*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_IRQ_STATUS(a, b) CSR_TYPE_NCB32b
2898*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_IRQ_STATUS(a, b) "SMMUX_PMCGX_IRQ_STATUS"
2899*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_IRQ_STATUS(a, b) 0x0 /* PF_BAR0 */
2900*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_IRQ_STATUS(a, b) (a)
2901*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_IRQ_STATUS(a, b) (a), (b), -1, -1
2902*4b8b8d74SJaiprakash Singh
2903*4b8b8d74SJaiprakash Singh /**
2904*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_mpamidr
2905*4b8b8d74SJaiprakash Singh *
2906*4b8b8d74SJaiprakash Singh * PMCG MPAM capability identification Register
2907*4b8b8d74SJaiprakash Singh */
2908*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_mpamidr {
2909*4b8b8d74SJaiprakash Singh uint32_t u;
2910*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_mpamidr_s {
2911*4b8b8d74SJaiprakash Singh uint32_t partid_max : 16;
2912*4b8b8d74SJaiprakash Singh uint32_t pmg_max : 8;
2913*4b8b8d74SJaiprakash Singh uint32_t reserved_24_31 : 8;
2914*4b8b8d74SJaiprakash Singh } s;
2915*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_mpamidr_s cn; */
2916*4b8b8d74SJaiprakash Singh };
2917*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_mpamidr ody_smmux_pmcgx_mpamidr_t;
2918*4b8b8d74SJaiprakash Singh
2919*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_MPAMIDR(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_MPAMIDR(uint64_t a,uint64_t b)2920*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_MPAMIDR(uint64_t a, uint64_t b)
2921*4b8b8d74SJaiprakash Singh {
2922*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2923*4b8b8d74SJaiprakash Singh return 0x830000100e74ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2924*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_MPAMIDR", 2, a, b, 0, 0, 0, 0);
2925*4b8b8d74SJaiprakash Singh }
2926*4b8b8d74SJaiprakash Singh
2927*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_MPAMIDR(a, b) ody_smmux_pmcgx_mpamidr_t
2928*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_MPAMIDR(a, b) CSR_TYPE_NCB32b
2929*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_MPAMIDR(a, b) "SMMUX_PMCGX_MPAMIDR"
2930*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_MPAMIDR(a, b) 0x0 /* PF_BAR0 */
2931*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_MPAMIDR(a, b) (a)
2932*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_MPAMIDR(a, b) (a), (b), -1, -1
2933*4b8b8d74SJaiprakash Singh
2934*4b8b8d74SJaiprakash Singh /**
2935*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_pmcg#_ovsclr0
2936*4b8b8d74SJaiprakash Singh *
2937*4b8b8d74SJaiprakash Singh * SMMU PMCG Overflow Status Clear Register
2938*4b8b8d74SJaiprakash Singh */
2939*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_ovsclr0 {
2940*4b8b8d74SJaiprakash Singh uint64_t u;
2941*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_ovsclr0_s {
2942*4b8b8d74SJaiprakash Singh uint64_t ovs : 4;
2943*4b8b8d74SJaiprakash Singh uint64_t reserved_4_63 : 60;
2944*4b8b8d74SJaiprakash Singh } s;
2945*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_ovsclr0_s cn; */
2946*4b8b8d74SJaiprakash Singh };
2947*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_ovsclr0 ody_smmux_pmcgx_ovsclr0_t;
2948*4b8b8d74SJaiprakash Singh
2949*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_OVSCLR0(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_OVSCLR0(uint64_t a,uint64_t b)2950*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_OVSCLR0(uint64_t a, uint64_t b)
2951*4b8b8d74SJaiprakash Singh {
2952*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2953*4b8b8d74SJaiprakash Singh return 0x830000110c80ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2954*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_OVSCLR0", 2, a, b, 0, 0, 0, 0);
2955*4b8b8d74SJaiprakash Singh }
2956*4b8b8d74SJaiprakash Singh
2957*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_OVSCLR0(a, b) ody_smmux_pmcgx_ovsclr0_t
2958*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_OVSCLR0(a, b) CSR_TYPE_NCB
2959*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_OVSCLR0(a, b) "SMMUX_PMCGX_OVSCLR0"
2960*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_OVSCLR0(a, b) 0x0 /* PF_BAR0 */
2961*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_OVSCLR0(a, b) (a)
2962*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_OVSCLR0(a, b) (a), (b), -1, -1
2963*4b8b8d74SJaiprakash Singh
2964*4b8b8d74SJaiprakash Singh /**
2965*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_pmcg#_ovsset0
2966*4b8b8d74SJaiprakash Singh *
2967*4b8b8d74SJaiprakash Singh * SMMU PMCG Overflow Status Set Register
2968*4b8b8d74SJaiprakash Singh */
2969*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_ovsset0 {
2970*4b8b8d74SJaiprakash Singh uint64_t u;
2971*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_ovsset0_s {
2972*4b8b8d74SJaiprakash Singh uint64_t ovs : 4;
2973*4b8b8d74SJaiprakash Singh uint64_t reserved_4_63 : 60;
2974*4b8b8d74SJaiprakash Singh } s;
2975*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_ovsset0_s cn; */
2976*4b8b8d74SJaiprakash Singh };
2977*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_ovsset0 ody_smmux_pmcgx_ovsset0_t;
2978*4b8b8d74SJaiprakash Singh
2979*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_OVSSET0(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_OVSSET0(uint64_t a,uint64_t b)2980*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_OVSSET0(uint64_t a, uint64_t b)
2981*4b8b8d74SJaiprakash Singh {
2982*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
2983*4b8b8d74SJaiprakash Singh return 0x830000110cc0ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
2984*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_OVSSET0", 2, a, b, 0, 0, 0, 0);
2985*4b8b8d74SJaiprakash Singh }
2986*4b8b8d74SJaiprakash Singh
2987*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_OVSSET0(a, b) ody_smmux_pmcgx_ovsset0_t
2988*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_OVSSET0(a, b) CSR_TYPE_NCB
2989*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_OVSSET0(a, b) "SMMUX_PMCGX_OVSSET0"
2990*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_OVSSET0(a, b) 0x0 /* PF_BAR0 */
2991*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_OVSSET0(a, b) (a)
2992*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_OVSSET0(a, b) (a), (b), -1, -1
2993*4b8b8d74SJaiprakash Singh
2994*4b8b8d74SJaiprakash Singh /**
2995*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_pidr0
2996*4b8b8d74SJaiprakash Singh *
2997*4b8b8d74SJaiprakash Singh * SMMU Peripheral Identification Register 0
2998*4b8b8d74SJaiprakash Singh */
2999*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_pidr0 {
3000*4b8b8d74SJaiprakash Singh uint32_t u;
3001*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_pidr0_s {
3002*4b8b8d74SJaiprakash Singh uint32_t partnum0 : 8;
3003*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
3004*4b8b8d74SJaiprakash Singh } s;
3005*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_pidr0_s cn; */
3006*4b8b8d74SJaiprakash Singh };
3007*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_pidr0 ody_smmux_pmcgx_pidr0_t;
3008*4b8b8d74SJaiprakash Singh
3009*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_PIDR0(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_PIDR0(uint64_t a,uint64_t b)3010*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_PIDR0(uint64_t a, uint64_t b)
3011*4b8b8d74SJaiprakash Singh {
3012*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
3013*4b8b8d74SJaiprakash Singh return 0x830000100fe0ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
3014*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_PIDR0", 2, a, b, 0, 0, 0, 0);
3015*4b8b8d74SJaiprakash Singh }
3016*4b8b8d74SJaiprakash Singh
3017*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_PIDR0(a, b) ody_smmux_pmcgx_pidr0_t
3018*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_PIDR0(a, b) CSR_TYPE_NCB32b
3019*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_PIDR0(a, b) "SMMUX_PMCGX_PIDR0"
3020*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_PIDR0(a, b) 0x0 /* PF_BAR0 */
3021*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_PIDR0(a, b) (a)
3022*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_PIDR0(a, b) (a), (b), -1, -1
3023*4b8b8d74SJaiprakash Singh
3024*4b8b8d74SJaiprakash Singh /**
3025*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_pidr1
3026*4b8b8d74SJaiprakash Singh *
3027*4b8b8d74SJaiprakash Singh * SMMU Peripheral Identification Register 1
3028*4b8b8d74SJaiprakash Singh */
3029*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_pidr1 {
3030*4b8b8d74SJaiprakash Singh uint32_t u;
3031*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_pidr1_s {
3032*4b8b8d74SJaiprakash Singh uint32_t partnum1 : 4;
3033*4b8b8d74SJaiprakash Singh uint32_t idcode : 4;
3034*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
3035*4b8b8d74SJaiprakash Singh } s;
3036*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_pidr1_s cn; */
3037*4b8b8d74SJaiprakash Singh };
3038*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_pidr1 ody_smmux_pmcgx_pidr1_t;
3039*4b8b8d74SJaiprakash Singh
3040*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_PIDR1(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_PIDR1(uint64_t a,uint64_t b)3041*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_PIDR1(uint64_t a, uint64_t b)
3042*4b8b8d74SJaiprakash Singh {
3043*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
3044*4b8b8d74SJaiprakash Singh return 0x830000100fe4ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
3045*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_PIDR1", 2, a, b, 0, 0, 0, 0);
3046*4b8b8d74SJaiprakash Singh }
3047*4b8b8d74SJaiprakash Singh
3048*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_PIDR1(a, b) ody_smmux_pmcgx_pidr1_t
3049*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_PIDR1(a, b) CSR_TYPE_NCB32b
3050*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_PIDR1(a, b) "SMMUX_PMCGX_PIDR1"
3051*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_PIDR1(a, b) 0x0 /* PF_BAR0 */
3052*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_PIDR1(a, b) (a)
3053*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_PIDR1(a, b) (a), (b), -1, -1
3054*4b8b8d74SJaiprakash Singh
3055*4b8b8d74SJaiprakash Singh /**
3056*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_pidr2
3057*4b8b8d74SJaiprakash Singh *
3058*4b8b8d74SJaiprakash Singh * SMMU Peripheral Identification Register 2
3059*4b8b8d74SJaiprakash Singh */
3060*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_pidr2 {
3061*4b8b8d74SJaiprakash Singh uint32_t u;
3062*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_pidr2_s {
3063*4b8b8d74SJaiprakash Singh uint32_t idcode : 3;
3064*4b8b8d74SJaiprakash Singh uint32_t jedec : 1;
3065*4b8b8d74SJaiprakash Singh uint32_t revision : 4;
3066*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
3067*4b8b8d74SJaiprakash Singh } s;
3068*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_pidr2_s cn; */
3069*4b8b8d74SJaiprakash Singh };
3070*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_pidr2 ody_smmux_pmcgx_pidr2_t;
3071*4b8b8d74SJaiprakash Singh
3072*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_PIDR2(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_PIDR2(uint64_t a,uint64_t b)3073*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_PIDR2(uint64_t a, uint64_t b)
3074*4b8b8d74SJaiprakash Singh {
3075*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
3076*4b8b8d74SJaiprakash Singh return 0x830000100fe8ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
3077*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_PIDR2", 2, a, b, 0, 0, 0, 0);
3078*4b8b8d74SJaiprakash Singh }
3079*4b8b8d74SJaiprakash Singh
3080*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_PIDR2(a, b) ody_smmux_pmcgx_pidr2_t
3081*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_PIDR2(a, b) CSR_TYPE_NCB32b
3082*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_PIDR2(a, b) "SMMUX_PMCGX_PIDR2"
3083*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_PIDR2(a, b) 0x0 /* PF_BAR0 */
3084*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_PIDR2(a, b) (a)
3085*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_PIDR2(a, b) (a), (b), -1, -1
3086*4b8b8d74SJaiprakash Singh
3087*4b8b8d74SJaiprakash Singh /**
3088*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_pidr3
3089*4b8b8d74SJaiprakash Singh *
3090*4b8b8d74SJaiprakash Singh * SMMU Peripheral Identification Register 3
3091*4b8b8d74SJaiprakash Singh */
3092*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_pidr3 {
3093*4b8b8d74SJaiprakash Singh uint32_t u;
3094*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_pidr3_s {
3095*4b8b8d74SJaiprakash Singh uint32_t cust : 4;
3096*4b8b8d74SJaiprakash Singh uint32_t revand : 4;
3097*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
3098*4b8b8d74SJaiprakash Singh } s;
3099*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_pidr3_s cn; */
3100*4b8b8d74SJaiprakash Singh };
3101*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_pidr3 ody_smmux_pmcgx_pidr3_t;
3102*4b8b8d74SJaiprakash Singh
3103*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_PIDR3(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_PIDR3(uint64_t a,uint64_t b)3104*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_PIDR3(uint64_t a, uint64_t b)
3105*4b8b8d74SJaiprakash Singh {
3106*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
3107*4b8b8d74SJaiprakash Singh return 0x830000100fecll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
3108*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_PIDR3", 2, a, b, 0, 0, 0, 0);
3109*4b8b8d74SJaiprakash Singh }
3110*4b8b8d74SJaiprakash Singh
3111*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_PIDR3(a, b) ody_smmux_pmcgx_pidr3_t
3112*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_PIDR3(a, b) CSR_TYPE_NCB32b
3113*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_PIDR3(a, b) "SMMUX_PMCGX_PIDR3"
3114*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_PIDR3(a, b) 0x0 /* PF_BAR0 */
3115*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_PIDR3(a, b) (a)
3116*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_PIDR3(a, b) (a), (b), -1, -1
3117*4b8b8d74SJaiprakash Singh
3118*4b8b8d74SJaiprakash Singh /**
3119*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_pidr4
3120*4b8b8d74SJaiprakash Singh *
3121*4b8b8d74SJaiprakash Singh * SMMU Peripheral Identification Register 4
3122*4b8b8d74SJaiprakash Singh */
3123*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_pidr4 {
3124*4b8b8d74SJaiprakash Singh uint32_t u;
3125*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_pidr4_s {
3126*4b8b8d74SJaiprakash Singh uint32_t jepcont : 4;
3127*4b8b8d74SJaiprakash Singh uint32_t pagecnt : 4;
3128*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
3129*4b8b8d74SJaiprakash Singh } s;
3130*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_pidr4_s cn; */
3131*4b8b8d74SJaiprakash Singh };
3132*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_pidr4 ody_smmux_pmcgx_pidr4_t;
3133*4b8b8d74SJaiprakash Singh
3134*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_PIDR4(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_PIDR4(uint64_t a,uint64_t b)3135*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_PIDR4(uint64_t a, uint64_t b)
3136*4b8b8d74SJaiprakash Singh {
3137*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
3138*4b8b8d74SJaiprakash Singh return 0x830000100fd0ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
3139*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_PIDR4", 2, a, b, 0, 0, 0, 0);
3140*4b8b8d74SJaiprakash Singh }
3141*4b8b8d74SJaiprakash Singh
3142*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_PIDR4(a, b) ody_smmux_pmcgx_pidr4_t
3143*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_PIDR4(a, b) CSR_TYPE_NCB32b
3144*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_PIDR4(a, b) "SMMUX_PMCGX_PIDR4"
3145*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_PIDR4(a, b) 0x0 /* PF_BAR0 */
3146*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_PIDR4(a, b) (a)
3147*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_PIDR4(a, b) (a), (b), -1, -1
3148*4b8b8d74SJaiprakash Singh
3149*4b8b8d74SJaiprakash Singh /**
3150*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_pidr5
3151*4b8b8d74SJaiprakash Singh *
3152*4b8b8d74SJaiprakash Singh * SMMU Peripheral Identification Register 5
3153*4b8b8d74SJaiprakash Singh */
3154*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_pidr5 {
3155*4b8b8d74SJaiprakash Singh uint32_t u;
3156*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_pidr5_s {
3157*4b8b8d74SJaiprakash Singh uint32_t reserved_0_31 : 32;
3158*4b8b8d74SJaiprakash Singh } s;
3159*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_pidr5_s cn; */
3160*4b8b8d74SJaiprakash Singh };
3161*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_pidr5 ody_smmux_pmcgx_pidr5_t;
3162*4b8b8d74SJaiprakash Singh
3163*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_PIDR5(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_PIDR5(uint64_t a,uint64_t b)3164*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_PIDR5(uint64_t a, uint64_t b)
3165*4b8b8d74SJaiprakash Singh {
3166*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
3167*4b8b8d74SJaiprakash Singh return 0x830000100fd4ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
3168*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_PIDR5", 2, a, b, 0, 0, 0, 0);
3169*4b8b8d74SJaiprakash Singh }
3170*4b8b8d74SJaiprakash Singh
3171*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_PIDR5(a, b) ody_smmux_pmcgx_pidr5_t
3172*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_PIDR5(a, b) CSR_TYPE_NCB32b
3173*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_PIDR5(a, b) "SMMUX_PMCGX_PIDR5"
3174*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_PIDR5(a, b) 0x0 /* PF_BAR0 */
3175*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_PIDR5(a, b) (a)
3176*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_PIDR5(a, b) (a), (b), -1, -1
3177*4b8b8d74SJaiprakash Singh
3178*4b8b8d74SJaiprakash Singh /**
3179*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_pidr6
3180*4b8b8d74SJaiprakash Singh *
3181*4b8b8d74SJaiprakash Singh * SMMU Peripheral Identification Register 6
3182*4b8b8d74SJaiprakash Singh */
3183*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_pidr6 {
3184*4b8b8d74SJaiprakash Singh uint32_t u;
3185*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_pidr6_s {
3186*4b8b8d74SJaiprakash Singh uint32_t reserved_0_31 : 32;
3187*4b8b8d74SJaiprakash Singh } s;
3188*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_pidr6_s cn; */
3189*4b8b8d74SJaiprakash Singh };
3190*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_pidr6 ody_smmux_pmcgx_pidr6_t;
3191*4b8b8d74SJaiprakash Singh
3192*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_PIDR6(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_PIDR6(uint64_t a,uint64_t b)3193*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_PIDR6(uint64_t a, uint64_t b)
3194*4b8b8d74SJaiprakash Singh {
3195*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
3196*4b8b8d74SJaiprakash Singh return 0x830000100fd8ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
3197*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_PIDR6", 2, a, b, 0, 0, 0, 0);
3198*4b8b8d74SJaiprakash Singh }
3199*4b8b8d74SJaiprakash Singh
3200*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_PIDR6(a, b) ody_smmux_pmcgx_pidr6_t
3201*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_PIDR6(a, b) CSR_TYPE_NCB32b
3202*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_PIDR6(a, b) "SMMUX_PMCGX_PIDR6"
3203*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_PIDR6(a, b) 0x0 /* PF_BAR0 */
3204*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_PIDR6(a, b) (a)
3205*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_PIDR6(a, b) (a), (b), -1, -1
3206*4b8b8d74SJaiprakash Singh
3207*4b8b8d74SJaiprakash Singh /**
3208*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_pidr7
3209*4b8b8d74SJaiprakash Singh *
3210*4b8b8d74SJaiprakash Singh * SMMU Peripheral Identification Register 7
3211*4b8b8d74SJaiprakash Singh */
3212*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_pidr7 {
3213*4b8b8d74SJaiprakash Singh uint32_t u;
3214*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_pidr7_s {
3215*4b8b8d74SJaiprakash Singh uint32_t reserved_0_31 : 32;
3216*4b8b8d74SJaiprakash Singh } s;
3217*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_pidr7_s cn; */
3218*4b8b8d74SJaiprakash Singh };
3219*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_pidr7 ody_smmux_pmcgx_pidr7_t;
3220*4b8b8d74SJaiprakash Singh
3221*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_PIDR7(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_PIDR7(uint64_t a,uint64_t b)3222*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_PIDR7(uint64_t a, uint64_t b)
3223*4b8b8d74SJaiprakash Singh {
3224*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
3225*4b8b8d74SJaiprakash Singh return 0x830000100fdcll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
3226*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_PIDR7", 2, a, b, 0, 0, 0, 0);
3227*4b8b8d74SJaiprakash Singh }
3228*4b8b8d74SJaiprakash Singh
3229*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_PIDR7(a, b) ody_smmux_pmcgx_pidr7_t
3230*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_PIDR7(a, b) CSR_TYPE_NCB32b
3231*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_PIDR7(a, b) "SMMUX_PMCGX_PIDR7"
3232*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_PIDR7(a, b) 0x0 /* PF_BAR0 */
3233*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_PIDR7(a, b) (a)
3234*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_PIDR7(a, b) (a), (b), -1, -1
3235*4b8b8d74SJaiprakash Singh
3236*4b8b8d74SJaiprakash Singh /**
3237*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_pmauthstatus
3238*4b8b8d74SJaiprakash Singh *
3239*4b8b8d74SJaiprakash Singh * Performance Monitor Authentication Status Register
3240*4b8b8d74SJaiprakash Singh */
3241*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_pmauthstatus {
3242*4b8b8d74SJaiprakash Singh uint32_t u;
3243*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_pmauthstatus_s {
3244*4b8b8d74SJaiprakash Singh uint32_t reserved_0_31 : 32;
3245*4b8b8d74SJaiprakash Singh } s;
3246*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_pmauthstatus_s cn; */
3247*4b8b8d74SJaiprakash Singh };
3248*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_pmauthstatus ody_smmux_pmcgx_pmauthstatus_t;
3249*4b8b8d74SJaiprakash Singh
3250*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_PMAUTHSTATUS(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_PMAUTHSTATUS(uint64_t a,uint64_t b)3251*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_PMAUTHSTATUS(uint64_t a, uint64_t b)
3252*4b8b8d74SJaiprakash Singh {
3253*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
3254*4b8b8d74SJaiprakash Singh return 0x830000100fb8ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
3255*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_PMAUTHSTATUS", 2, a, b, 0, 0, 0, 0);
3256*4b8b8d74SJaiprakash Singh }
3257*4b8b8d74SJaiprakash Singh
3258*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_PMAUTHSTATUS(a, b) ody_smmux_pmcgx_pmauthstatus_t
3259*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_PMAUTHSTATUS(a, b) CSR_TYPE_NCB32b
3260*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_PMAUTHSTATUS(a, b) "SMMUX_PMCGX_PMAUTHSTATUS"
3261*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_PMAUTHSTATUS(a, b) 0x0 /* PF_BAR0 */
3262*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_PMAUTHSTATUS(a, b) (a)
3263*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_PMAUTHSTATUS(a, b) (a), (b), -1, -1
3264*4b8b8d74SJaiprakash Singh
3265*4b8b8d74SJaiprakash Singh /**
3266*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_pmdevarch
3267*4b8b8d74SJaiprakash Singh *
3268*4b8b8d74SJaiprakash Singh * Performance Monitor Device Architecture Register
3269*4b8b8d74SJaiprakash Singh */
3270*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_pmdevarch {
3271*4b8b8d74SJaiprakash Singh uint32_t u;
3272*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_pmdevarch_s {
3273*4b8b8d74SJaiprakash Singh uint32_t archid : 16;
3274*4b8b8d74SJaiprakash Singh uint32_t revision : 4;
3275*4b8b8d74SJaiprakash Singh uint32_t present : 1;
3276*4b8b8d74SJaiprakash Singh uint32_t architect : 11;
3277*4b8b8d74SJaiprakash Singh } s;
3278*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_pmdevarch_s cn; */
3279*4b8b8d74SJaiprakash Singh };
3280*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_pmdevarch ody_smmux_pmcgx_pmdevarch_t;
3281*4b8b8d74SJaiprakash Singh
3282*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_PMDEVARCH(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_PMDEVARCH(uint64_t a,uint64_t b)3283*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_PMDEVARCH(uint64_t a, uint64_t b)
3284*4b8b8d74SJaiprakash Singh {
3285*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
3286*4b8b8d74SJaiprakash Singh return 0x830000100fbcll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
3287*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_PMDEVARCH", 2, a, b, 0, 0, 0, 0);
3288*4b8b8d74SJaiprakash Singh }
3289*4b8b8d74SJaiprakash Singh
3290*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_PMDEVARCH(a, b) ody_smmux_pmcgx_pmdevarch_t
3291*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_PMDEVARCH(a, b) CSR_TYPE_NCB32b
3292*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_PMDEVARCH(a, b) "SMMUX_PMCGX_PMDEVARCH"
3293*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_PMDEVARCH(a, b) 0x0 /* PF_BAR0 */
3294*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_PMDEVARCH(a, b) (a)
3295*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_PMDEVARCH(a, b) (a), (b), -1, -1
3296*4b8b8d74SJaiprakash Singh
3297*4b8b8d74SJaiprakash Singh /**
3298*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_pmdevtype
3299*4b8b8d74SJaiprakash Singh *
3300*4b8b8d74SJaiprakash Singh * Performance Monitor Device Type Register
3301*4b8b8d74SJaiprakash Singh */
3302*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_pmdevtype {
3303*4b8b8d74SJaiprakash Singh uint32_t u;
3304*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_pmdevtype_s {
3305*4b8b8d74SJaiprakash Singh uint32_t device_class : 4;
3306*4b8b8d74SJaiprakash Singh uint32_t subtype : 4;
3307*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
3308*4b8b8d74SJaiprakash Singh } s;
3309*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_pmdevtype_s cn; */
3310*4b8b8d74SJaiprakash Singh };
3311*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_pmdevtype ody_smmux_pmcgx_pmdevtype_t;
3312*4b8b8d74SJaiprakash Singh
3313*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_PMDEVTYPE(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_PMDEVTYPE(uint64_t a,uint64_t b)3314*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_PMDEVTYPE(uint64_t a, uint64_t b)
3315*4b8b8d74SJaiprakash Singh {
3316*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
3317*4b8b8d74SJaiprakash Singh return 0x830000100fccll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
3318*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_PMDEVTYPE", 2, a, b, 0, 0, 0, 0);
3319*4b8b8d74SJaiprakash Singh }
3320*4b8b8d74SJaiprakash Singh
3321*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_PMDEVTYPE(a, b) ody_smmux_pmcgx_pmdevtype_t
3322*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_PMDEVTYPE(a, b) CSR_TYPE_NCB32b
3323*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_PMDEVTYPE(a, b) "SMMUX_PMCGX_PMDEVTYPE"
3324*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_PMDEVTYPE(a, b) 0x0 /* PF_BAR0 */
3325*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_PMDEVTYPE(a, b) (a)
3326*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_PMDEVTYPE(a, b) (a), (b), -1, -1
3327*4b8b8d74SJaiprakash Singh
3328*4b8b8d74SJaiprakash Singh /**
3329*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_scr
3330*4b8b8d74SJaiprakash Singh *
3331*4b8b8d74SJaiprakash Singh * SMMU PMCG Secure Control Register
3332*4b8b8d74SJaiprakash Singh */
3333*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_scr {
3334*4b8b8d74SJaiprakash Singh uint32_t u;
3335*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_scr_s {
3336*4b8b8d74SJaiprakash Singh uint32_t so : 1;
3337*4b8b8d74SJaiprakash Singh uint32_t nsra : 1;
3338*4b8b8d74SJaiprakash Singh uint32_t nsmsi : 1;
3339*4b8b8d74SJaiprakash Singh uint32_t msi_mpam_ns : 1;
3340*4b8b8d74SJaiprakash Singh uint32_t reserved_4_30 : 27;
3341*4b8b8d74SJaiprakash Singh uint32_t valid : 1;
3342*4b8b8d74SJaiprakash Singh } s;
3343*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_scr_s cn; */
3344*4b8b8d74SJaiprakash Singh };
3345*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_scr ody_smmux_pmcgx_scr_t;
3346*4b8b8d74SJaiprakash Singh
3347*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_SCR(uint64_t a, uint64_t b) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_SCR(uint64_t a,uint64_t b)3348*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_SCR(uint64_t a, uint64_t b)
3349*4b8b8d74SJaiprakash Singh {
3350*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3))
3351*4b8b8d74SJaiprakash Singh return 0x830000100df8ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
3352*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_SCR", 2, a, b, 0, 0, 0, 0);
3353*4b8b8d74SJaiprakash Singh }
3354*4b8b8d74SJaiprakash Singh
3355*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_SCR(a, b) ody_smmux_pmcgx_scr_t
3356*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_SCR(a, b) CSR_TYPE_NCB32b
3357*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_SCR(a, b) "SMMUX_PMCGX_SCR"
3358*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_SCR(a, b) 0x0 /* PF_BAR0 */
3359*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_SCR(a, b) (a)
3360*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_SCR(a, b) (a), (b), -1, -1
3361*4b8b8d74SJaiprakash Singh
3362*4b8b8d74SJaiprakash Singh /**
3363*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_pmcg#_smr#
3364*4b8b8d74SJaiprakash Singh *
3365*4b8b8d74SJaiprakash Singh * SMMU PMCG Counter Stream Match Filter Register
3366*4b8b8d74SJaiprakash Singh */
3367*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_smrx {
3368*4b8b8d74SJaiprakash Singh uint32_t u;
3369*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_smrx_s {
3370*4b8b8d74SJaiprakash Singh uint32_t streamid : 22;
3371*4b8b8d74SJaiprakash Singh uint32_t reserved_22_31 : 10;
3372*4b8b8d74SJaiprakash Singh } s;
3373*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_smrx_s cn; */
3374*4b8b8d74SJaiprakash Singh };
3375*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_smrx ody_smmux_pmcgx_smrx_t;
3376*4b8b8d74SJaiprakash Singh
3377*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_SMRX(uint64_t a, uint64_t b, uint64_t c) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_SMRX(uint64_t a,uint64_t b,uint64_t c)3378*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_SMRX(uint64_t a, uint64_t b, uint64_t c)
3379*4b8b8d74SJaiprakash Singh {
3380*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3) && (c == 0))
3381*4b8b8d74SJaiprakash Singh return 0x830000100a00ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
3382*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_SMRX", 3, a, b, c, 0, 0, 0);
3383*4b8b8d74SJaiprakash Singh }
3384*4b8b8d74SJaiprakash Singh
3385*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_SMRX(a, b, c) ody_smmux_pmcgx_smrx_t
3386*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_SMRX(a, b, c) CSR_TYPE_NCB32b
3387*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_SMRX(a, b, c) "SMMUX_PMCGX_SMRX"
3388*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_SMRX(a, b, c) 0x0 /* PF_BAR0 */
3389*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_SMRX(a, b, c) (a)
3390*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_SMRX(a, b, c) (a), (b), (c), -1
3391*4b8b8d74SJaiprakash Singh
3392*4b8b8d74SJaiprakash Singh /**
3393*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_pmcg#_svr#
3394*4b8b8d74SJaiprakash Singh *
3395*4b8b8d74SJaiprakash Singh * SMMU PMCG Counter Shadow Value Register
3396*4b8b8d74SJaiprakash Singh */
3397*4b8b8d74SJaiprakash Singh union ody_smmux_pmcgx_svrx {
3398*4b8b8d74SJaiprakash Singh uint64_t u;
3399*4b8b8d74SJaiprakash Singh struct ody_smmux_pmcgx_svrx_s {
3400*4b8b8d74SJaiprakash Singh uint64_t reserved_0_63 : 64;
3401*4b8b8d74SJaiprakash Singh } s;
3402*4b8b8d74SJaiprakash Singh /* struct ody_smmux_pmcgx_svrx_s cn; */
3403*4b8b8d74SJaiprakash Singh };
3404*4b8b8d74SJaiprakash Singh typedef union ody_smmux_pmcgx_svrx ody_smmux_pmcgx_svrx_t;
3405*4b8b8d74SJaiprakash Singh
3406*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_SVRX(uint64_t a, uint64_t b, uint64_t c) __attribute__ ((pure, always_inline));
ODY_SMMUX_PMCGX_SVRX(uint64_t a,uint64_t b,uint64_t c)3407*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PMCGX_SVRX(uint64_t a, uint64_t b, uint64_t c)
3408*4b8b8d74SJaiprakash Singh {
3409*4b8b8d74SJaiprakash Singh if ((a <= 3) && (b <= 3) && (c == 0))
3410*4b8b8d74SJaiprakash Singh return 0x830000100600ll + 0x1000000000ll * ((a) & 0x3) + 0x20000ll * ((b) & 0x3);
3411*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PMCGX_SVRX", 3, a, b, c, 0, 0, 0);
3412*4b8b8d74SJaiprakash Singh }
3413*4b8b8d74SJaiprakash Singh
3414*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PMCGX_SVRX(a, b, c) ody_smmux_pmcgx_svrx_t
3415*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PMCGX_SVRX(a, b, c) CSR_TYPE_NCB
3416*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PMCGX_SVRX(a, b, c) "SMMUX_PMCGX_SVRX"
3417*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PMCGX_SVRX(a, b, c) 0x0 /* PF_BAR0 */
3418*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PMCGX_SVRX(a, b, c) (a)
3419*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PMCGX_SVRX(a, b, c) (a), (b), (c), -1
3420*4b8b8d74SJaiprakash Singh
3421*4b8b8d74SJaiprakash Singh /**
3422*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_priq_base
3423*4b8b8d74SJaiprakash Singh *
3424*4b8b8d74SJaiprakash Singh * SMMU PRI Queue Base Register
3425*4b8b8d74SJaiprakash Singh */
3426*4b8b8d74SJaiprakash Singh union ody_smmux_priq_base {
3427*4b8b8d74SJaiprakash Singh uint64_t u;
3428*4b8b8d74SJaiprakash Singh struct ody_smmux_priq_base_s {
3429*4b8b8d74SJaiprakash Singh uint64_t log2size : 5;
3430*4b8b8d74SJaiprakash Singh uint64_t addr : 47;
3431*4b8b8d74SJaiprakash Singh uint64_t reserved_52_61 : 10;
3432*4b8b8d74SJaiprakash Singh uint64_t wa : 1;
3433*4b8b8d74SJaiprakash Singh uint64_t reserved_63 : 1;
3434*4b8b8d74SJaiprakash Singh } s;
3435*4b8b8d74SJaiprakash Singh /* struct ody_smmux_priq_base_s cn; */
3436*4b8b8d74SJaiprakash Singh };
3437*4b8b8d74SJaiprakash Singh typedef union ody_smmux_priq_base ody_smmux_priq_base_t;
3438*4b8b8d74SJaiprakash Singh
3439*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PRIQ_BASE(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_PRIQ_BASE(uint64_t a)3440*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PRIQ_BASE(uint64_t a)
3441*4b8b8d74SJaiprakash Singh {
3442*4b8b8d74SJaiprakash Singh if (a <= 3)
3443*4b8b8d74SJaiprakash Singh return 0x8300000000c0ll + 0x1000000000ll * ((a) & 0x3);
3444*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PRIQ_BASE", 1, a, 0, 0, 0, 0, 0);
3445*4b8b8d74SJaiprakash Singh }
3446*4b8b8d74SJaiprakash Singh
3447*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PRIQ_BASE(a) ody_smmux_priq_base_t
3448*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PRIQ_BASE(a) CSR_TYPE_NCB
3449*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PRIQ_BASE(a) "SMMUX_PRIQ_BASE"
3450*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PRIQ_BASE(a) 0x0 /* PF_BAR0 */
3451*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PRIQ_BASE(a) (a)
3452*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PRIQ_BASE(a) (a), -1, -1, -1
3453*4b8b8d74SJaiprakash Singh
3454*4b8b8d74SJaiprakash Singh /**
3455*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_priq_cons
3456*4b8b8d74SJaiprakash Singh *
3457*4b8b8d74SJaiprakash Singh * SMMU PRI Queue Consumer Register
3458*4b8b8d74SJaiprakash Singh */
3459*4b8b8d74SJaiprakash Singh union ody_smmux_priq_cons {
3460*4b8b8d74SJaiprakash Singh uint32_t u;
3461*4b8b8d74SJaiprakash Singh struct ody_smmux_priq_cons_s {
3462*4b8b8d74SJaiprakash Singh uint32_t rd : 20;
3463*4b8b8d74SJaiprakash Singh uint32_t reserved_20_30 : 11;
3464*4b8b8d74SJaiprakash Singh uint32_t ovackflg : 1;
3465*4b8b8d74SJaiprakash Singh } s;
3466*4b8b8d74SJaiprakash Singh /* struct ody_smmux_priq_cons_s cn; */
3467*4b8b8d74SJaiprakash Singh };
3468*4b8b8d74SJaiprakash Singh typedef union ody_smmux_priq_cons ody_smmux_priq_cons_t;
3469*4b8b8d74SJaiprakash Singh
3470*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PRIQ_CONS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_PRIQ_CONS(uint64_t a)3471*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PRIQ_CONS(uint64_t a)
3472*4b8b8d74SJaiprakash Singh {
3473*4b8b8d74SJaiprakash Singh if (a <= 3)
3474*4b8b8d74SJaiprakash Singh return 0x8300000100ccll + 0x1000000000ll * ((a) & 0x3);
3475*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PRIQ_CONS", 1, a, 0, 0, 0, 0, 0);
3476*4b8b8d74SJaiprakash Singh }
3477*4b8b8d74SJaiprakash Singh
3478*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PRIQ_CONS(a) ody_smmux_priq_cons_t
3479*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PRIQ_CONS(a) CSR_TYPE_NCB32b
3480*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PRIQ_CONS(a) "SMMUX_PRIQ_CONS"
3481*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PRIQ_CONS(a) 0x0 /* PF_BAR0 */
3482*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PRIQ_CONS(a) (a)
3483*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PRIQ_CONS(a) (a), -1, -1, -1
3484*4b8b8d74SJaiprakash Singh
3485*4b8b8d74SJaiprakash Singh /**
3486*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_priq_irq_cfg0
3487*4b8b8d74SJaiprakash Singh *
3488*4b8b8d74SJaiprakash Singh * SMMU PRI Queue Interrupt Configuration 0 Register
3489*4b8b8d74SJaiprakash Singh */
3490*4b8b8d74SJaiprakash Singh union ody_smmux_priq_irq_cfg0 {
3491*4b8b8d74SJaiprakash Singh uint64_t u;
3492*4b8b8d74SJaiprakash Singh struct ody_smmux_priq_irq_cfg0_s {
3493*4b8b8d74SJaiprakash Singh uint64_t reserved_0_1 : 2;
3494*4b8b8d74SJaiprakash Singh uint64_t addr : 50;
3495*4b8b8d74SJaiprakash Singh uint64_t reserved_52_63 : 12;
3496*4b8b8d74SJaiprakash Singh } s;
3497*4b8b8d74SJaiprakash Singh /* struct ody_smmux_priq_irq_cfg0_s cn; */
3498*4b8b8d74SJaiprakash Singh };
3499*4b8b8d74SJaiprakash Singh typedef union ody_smmux_priq_irq_cfg0 ody_smmux_priq_irq_cfg0_t;
3500*4b8b8d74SJaiprakash Singh
3501*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PRIQ_IRQ_CFG0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_PRIQ_IRQ_CFG0(uint64_t a)3502*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PRIQ_IRQ_CFG0(uint64_t a)
3503*4b8b8d74SJaiprakash Singh {
3504*4b8b8d74SJaiprakash Singh if (a <= 3)
3505*4b8b8d74SJaiprakash Singh return 0x8300000000d0ll + 0x1000000000ll * ((a) & 0x3);
3506*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PRIQ_IRQ_CFG0", 1, a, 0, 0, 0, 0, 0);
3507*4b8b8d74SJaiprakash Singh }
3508*4b8b8d74SJaiprakash Singh
3509*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PRIQ_IRQ_CFG0(a) ody_smmux_priq_irq_cfg0_t
3510*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PRIQ_IRQ_CFG0(a) CSR_TYPE_NCB
3511*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PRIQ_IRQ_CFG0(a) "SMMUX_PRIQ_IRQ_CFG0"
3512*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PRIQ_IRQ_CFG0(a) 0x0 /* PF_BAR0 */
3513*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PRIQ_IRQ_CFG0(a) (a)
3514*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PRIQ_IRQ_CFG0(a) (a), -1, -1, -1
3515*4b8b8d74SJaiprakash Singh
3516*4b8b8d74SJaiprakash Singh /**
3517*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_priq_irq_cfg1
3518*4b8b8d74SJaiprakash Singh *
3519*4b8b8d74SJaiprakash Singh * SMMU PRI Queue Interrupt Configuration 1 Register
3520*4b8b8d74SJaiprakash Singh */
3521*4b8b8d74SJaiprakash Singh union ody_smmux_priq_irq_cfg1 {
3522*4b8b8d74SJaiprakash Singh uint32_t u;
3523*4b8b8d74SJaiprakash Singh struct ody_smmux_priq_irq_cfg1_s {
3524*4b8b8d74SJaiprakash Singh uint32_t data : 32;
3525*4b8b8d74SJaiprakash Singh } s;
3526*4b8b8d74SJaiprakash Singh /* struct ody_smmux_priq_irq_cfg1_s cn; */
3527*4b8b8d74SJaiprakash Singh };
3528*4b8b8d74SJaiprakash Singh typedef union ody_smmux_priq_irq_cfg1 ody_smmux_priq_irq_cfg1_t;
3529*4b8b8d74SJaiprakash Singh
3530*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PRIQ_IRQ_CFG1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_PRIQ_IRQ_CFG1(uint64_t a)3531*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PRIQ_IRQ_CFG1(uint64_t a)
3532*4b8b8d74SJaiprakash Singh {
3533*4b8b8d74SJaiprakash Singh if (a <= 3)
3534*4b8b8d74SJaiprakash Singh return 0x8300000000d8ll + 0x1000000000ll * ((a) & 0x3);
3535*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PRIQ_IRQ_CFG1", 1, a, 0, 0, 0, 0, 0);
3536*4b8b8d74SJaiprakash Singh }
3537*4b8b8d74SJaiprakash Singh
3538*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PRIQ_IRQ_CFG1(a) ody_smmux_priq_irq_cfg1_t
3539*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PRIQ_IRQ_CFG1(a) CSR_TYPE_NCB32b
3540*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PRIQ_IRQ_CFG1(a) "SMMUX_PRIQ_IRQ_CFG1"
3541*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PRIQ_IRQ_CFG1(a) 0x0 /* PF_BAR0 */
3542*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PRIQ_IRQ_CFG1(a) (a)
3543*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PRIQ_IRQ_CFG1(a) (a), -1, -1, -1
3544*4b8b8d74SJaiprakash Singh
3545*4b8b8d74SJaiprakash Singh /**
3546*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_priq_irq_cfg2
3547*4b8b8d74SJaiprakash Singh *
3548*4b8b8d74SJaiprakash Singh * SMMU PRI Queue Interrupt Configuration 2 Register
3549*4b8b8d74SJaiprakash Singh */
3550*4b8b8d74SJaiprakash Singh union ody_smmux_priq_irq_cfg2 {
3551*4b8b8d74SJaiprakash Singh uint32_t u;
3552*4b8b8d74SJaiprakash Singh struct ody_smmux_priq_irq_cfg2_s {
3553*4b8b8d74SJaiprakash Singh uint32_t memattr : 4;
3554*4b8b8d74SJaiprakash Singh uint32_t sh : 2;
3555*4b8b8d74SJaiprakash Singh uint32_t reserved_6_30 : 25;
3556*4b8b8d74SJaiprakash Singh uint32_t lo : 1;
3557*4b8b8d74SJaiprakash Singh } s;
3558*4b8b8d74SJaiprakash Singh /* struct ody_smmux_priq_irq_cfg2_s cn; */
3559*4b8b8d74SJaiprakash Singh };
3560*4b8b8d74SJaiprakash Singh typedef union ody_smmux_priq_irq_cfg2 ody_smmux_priq_irq_cfg2_t;
3561*4b8b8d74SJaiprakash Singh
3562*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PRIQ_IRQ_CFG2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_PRIQ_IRQ_CFG2(uint64_t a)3563*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PRIQ_IRQ_CFG2(uint64_t a)
3564*4b8b8d74SJaiprakash Singh {
3565*4b8b8d74SJaiprakash Singh if (a <= 3)
3566*4b8b8d74SJaiprakash Singh return 0x8300000000dcll + 0x1000000000ll * ((a) & 0x3);
3567*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PRIQ_IRQ_CFG2", 1, a, 0, 0, 0, 0, 0);
3568*4b8b8d74SJaiprakash Singh }
3569*4b8b8d74SJaiprakash Singh
3570*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PRIQ_IRQ_CFG2(a) ody_smmux_priq_irq_cfg2_t
3571*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PRIQ_IRQ_CFG2(a) CSR_TYPE_NCB32b
3572*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PRIQ_IRQ_CFG2(a) "SMMUX_PRIQ_IRQ_CFG2"
3573*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PRIQ_IRQ_CFG2(a) 0x0 /* PF_BAR0 */
3574*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PRIQ_IRQ_CFG2(a) (a)
3575*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PRIQ_IRQ_CFG2(a) (a), -1, -1, -1
3576*4b8b8d74SJaiprakash Singh
3577*4b8b8d74SJaiprakash Singh /**
3578*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_priq_prod
3579*4b8b8d74SJaiprakash Singh *
3580*4b8b8d74SJaiprakash Singh * SMMU PRI Queue Producer Register
3581*4b8b8d74SJaiprakash Singh */
3582*4b8b8d74SJaiprakash Singh union ody_smmux_priq_prod {
3583*4b8b8d74SJaiprakash Singh uint32_t u;
3584*4b8b8d74SJaiprakash Singh struct ody_smmux_priq_prod_s {
3585*4b8b8d74SJaiprakash Singh uint32_t wr : 20;
3586*4b8b8d74SJaiprakash Singh uint32_t reserved_20_30 : 11;
3587*4b8b8d74SJaiprakash Singh uint32_t ovflg : 1;
3588*4b8b8d74SJaiprakash Singh } s;
3589*4b8b8d74SJaiprakash Singh /* struct ody_smmux_priq_prod_s cn; */
3590*4b8b8d74SJaiprakash Singh };
3591*4b8b8d74SJaiprakash Singh typedef union ody_smmux_priq_prod ody_smmux_priq_prod_t;
3592*4b8b8d74SJaiprakash Singh
3593*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PRIQ_PROD(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_PRIQ_PROD(uint64_t a)3594*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_PRIQ_PROD(uint64_t a)
3595*4b8b8d74SJaiprakash Singh {
3596*4b8b8d74SJaiprakash Singh if (a <= 3)
3597*4b8b8d74SJaiprakash Singh return 0x8300000100c8ll + 0x1000000000ll * ((a) & 0x3);
3598*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_PRIQ_PROD", 1, a, 0, 0, 0, 0, 0);
3599*4b8b8d74SJaiprakash Singh }
3600*4b8b8d74SJaiprakash Singh
3601*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_PRIQ_PROD(a) ody_smmux_priq_prod_t
3602*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_PRIQ_PROD(a) CSR_TYPE_NCB32b
3603*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_PRIQ_PROD(a) "SMMUX_PRIQ_PROD"
3604*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_PRIQ_PROD(a) 0x0 /* PF_BAR0 */
3605*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_PRIQ_PROD(a) (a)
3606*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_PRIQ_PROD(a) (a), -1, -1, -1
3607*4b8b8d74SJaiprakash Singh
3608*4b8b8d74SJaiprakash Singh /**
3609*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_agbpa
3610*4b8b8d74SJaiprakash Singh *
3611*4b8b8d74SJaiprakash Singh * SMMU Secure Alternate Global Bypass Attribute Register
3612*4b8b8d74SJaiprakash Singh * This register is intended to allow an implementation to apply an additional non
3613*4b8b8d74SJaiprakash Singh * architected attributes or tag to bypassing transactions, for example a traffic
3614*4b8b8d74SJaiprakash Singh * routing identifier.
3615*4b8b8d74SJaiprakash Singh *
3616*4b8b8d74SJaiprakash Singh * If this field is unsupported by an implementation, it is RES0. It is not
3617*4b8b8d74SJaiprakash Singh * intended for this register to be used to further modify existing architected
3618*4b8b8d74SJaiprakash Singh * bypass attributes which are controlled using GPBA.
3619*4b8b8d74SJaiprakash Singh */
3620*4b8b8d74SJaiprakash Singh union ody_smmux_s_agbpa {
3621*4b8b8d74SJaiprakash Singh uint32_t u;
3622*4b8b8d74SJaiprakash Singh struct ody_smmux_s_agbpa_s {
3623*4b8b8d74SJaiprakash Singh uint32_t qos : 4;
3624*4b8b8d74SJaiprakash Singh uint32_t reserved_4_31 : 28;
3625*4b8b8d74SJaiprakash Singh } s;
3626*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_agbpa_s cn; */
3627*4b8b8d74SJaiprakash Singh };
3628*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_agbpa ody_smmux_s_agbpa_t;
3629*4b8b8d74SJaiprakash Singh
3630*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_AGBPA(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_AGBPA(uint64_t a)3631*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_AGBPA(uint64_t a)
3632*4b8b8d74SJaiprakash Singh {
3633*4b8b8d74SJaiprakash Singh if (a <= 3)
3634*4b8b8d74SJaiprakash Singh return 0x830000008048ll + 0x1000000000ll * ((a) & 0x3);
3635*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_AGBPA", 1, a, 0, 0, 0, 0, 0);
3636*4b8b8d74SJaiprakash Singh }
3637*4b8b8d74SJaiprakash Singh
3638*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_AGBPA(a) ody_smmux_s_agbpa_t
3639*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_AGBPA(a) CSR_TYPE_NCB32b
3640*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_AGBPA(a) "SMMUX_S_AGBPA"
3641*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_AGBPA(a) 0x0 /* PF_BAR0 */
3642*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_AGBPA(a) (a)
3643*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_AGBPA(a) (a), -1, -1, -1
3644*4b8b8d74SJaiprakash Singh
3645*4b8b8d74SJaiprakash Singh /**
3646*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_s_cmdq_base
3647*4b8b8d74SJaiprakash Singh *
3648*4b8b8d74SJaiprakash Singh * SMMU Secure Command Queue Base Register
3649*4b8b8d74SJaiprakash Singh */
3650*4b8b8d74SJaiprakash Singh union ody_smmux_s_cmdq_base {
3651*4b8b8d74SJaiprakash Singh uint64_t u;
3652*4b8b8d74SJaiprakash Singh struct ody_smmux_s_cmdq_base_s {
3653*4b8b8d74SJaiprakash Singh uint64_t log2size : 5;
3654*4b8b8d74SJaiprakash Singh uint64_t addr : 47;
3655*4b8b8d74SJaiprakash Singh uint64_t reserved_52_61 : 10;
3656*4b8b8d74SJaiprakash Singh uint64_t ra : 1;
3657*4b8b8d74SJaiprakash Singh uint64_t reserved_63 : 1;
3658*4b8b8d74SJaiprakash Singh } s;
3659*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_cmdq_base_s cn; */
3660*4b8b8d74SJaiprakash Singh };
3661*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_cmdq_base ody_smmux_s_cmdq_base_t;
3662*4b8b8d74SJaiprakash Singh
3663*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_CMDQ_BASE(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_CMDQ_BASE(uint64_t a)3664*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_CMDQ_BASE(uint64_t a)
3665*4b8b8d74SJaiprakash Singh {
3666*4b8b8d74SJaiprakash Singh if (a <= 3)
3667*4b8b8d74SJaiprakash Singh return 0x830000008090ll + 0x1000000000ll * ((a) & 0x3);
3668*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_CMDQ_BASE", 1, a, 0, 0, 0, 0, 0);
3669*4b8b8d74SJaiprakash Singh }
3670*4b8b8d74SJaiprakash Singh
3671*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_CMDQ_BASE(a) ody_smmux_s_cmdq_base_t
3672*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_CMDQ_BASE(a) CSR_TYPE_NCB
3673*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_CMDQ_BASE(a) "SMMUX_S_CMDQ_BASE"
3674*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_CMDQ_BASE(a) 0x0 /* PF_BAR0 */
3675*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_CMDQ_BASE(a) (a)
3676*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_CMDQ_BASE(a) (a), -1, -1, -1
3677*4b8b8d74SJaiprakash Singh
3678*4b8b8d74SJaiprakash Singh /**
3679*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_cmdq_cons
3680*4b8b8d74SJaiprakash Singh *
3681*4b8b8d74SJaiprakash Singh * SMMU Secure Command Queue Consumer Register
3682*4b8b8d74SJaiprakash Singh */
3683*4b8b8d74SJaiprakash Singh union ody_smmux_s_cmdq_cons {
3684*4b8b8d74SJaiprakash Singh uint32_t u;
3685*4b8b8d74SJaiprakash Singh struct ody_smmux_s_cmdq_cons_s {
3686*4b8b8d74SJaiprakash Singh uint32_t rd : 20;
3687*4b8b8d74SJaiprakash Singh uint32_t reserved_20_23 : 4;
3688*4b8b8d74SJaiprakash Singh uint32_t errx : 7;
3689*4b8b8d74SJaiprakash Singh uint32_t reserved_31 : 1;
3690*4b8b8d74SJaiprakash Singh } s;
3691*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_cmdq_cons_s cn; */
3692*4b8b8d74SJaiprakash Singh };
3693*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_cmdq_cons ody_smmux_s_cmdq_cons_t;
3694*4b8b8d74SJaiprakash Singh
3695*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_CMDQ_CONS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_CMDQ_CONS(uint64_t a)3696*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_CMDQ_CONS(uint64_t a)
3697*4b8b8d74SJaiprakash Singh {
3698*4b8b8d74SJaiprakash Singh if (a <= 3)
3699*4b8b8d74SJaiprakash Singh return 0x83000000809cll + 0x1000000000ll * ((a) & 0x3);
3700*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_CMDQ_CONS", 1, a, 0, 0, 0, 0, 0);
3701*4b8b8d74SJaiprakash Singh }
3702*4b8b8d74SJaiprakash Singh
3703*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_CMDQ_CONS(a) ody_smmux_s_cmdq_cons_t
3704*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_CMDQ_CONS(a) CSR_TYPE_NCB32b
3705*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_CMDQ_CONS(a) "SMMUX_S_CMDQ_CONS"
3706*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_CMDQ_CONS(a) 0x0 /* PF_BAR0 */
3707*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_CMDQ_CONS(a) (a)
3708*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_CMDQ_CONS(a) (a), -1, -1, -1
3709*4b8b8d74SJaiprakash Singh
3710*4b8b8d74SJaiprakash Singh /**
3711*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_cmdq_prod
3712*4b8b8d74SJaiprakash Singh *
3713*4b8b8d74SJaiprakash Singh * SMMU Secure Command Queue Producer Register
3714*4b8b8d74SJaiprakash Singh */
3715*4b8b8d74SJaiprakash Singh union ody_smmux_s_cmdq_prod {
3716*4b8b8d74SJaiprakash Singh uint32_t u;
3717*4b8b8d74SJaiprakash Singh struct ody_smmux_s_cmdq_prod_s {
3718*4b8b8d74SJaiprakash Singh uint32_t wr : 20;
3719*4b8b8d74SJaiprakash Singh uint32_t reserved_20_31 : 12;
3720*4b8b8d74SJaiprakash Singh } s;
3721*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_cmdq_prod_s cn; */
3722*4b8b8d74SJaiprakash Singh };
3723*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_cmdq_prod ody_smmux_s_cmdq_prod_t;
3724*4b8b8d74SJaiprakash Singh
3725*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_CMDQ_PROD(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_CMDQ_PROD(uint64_t a)3726*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_CMDQ_PROD(uint64_t a)
3727*4b8b8d74SJaiprakash Singh {
3728*4b8b8d74SJaiprakash Singh if (a <= 3)
3729*4b8b8d74SJaiprakash Singh return 0x830000008098ll + 0x1000000000ll * ((a) & 0x3);
3730*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_CMDQ_PROD", 1, a, 0, 0, 0, 0, 0);
3731*4b8b8d74SJaiprakash Singh }
3732*4b8b8d74SJaiprakash Singh
3733*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_CMDQ_PROD(a) ody_smmux_s_cmdq_prod_t
3734*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_CMDQ_PROD(a) CSR_TYPE_NCB32b
3735*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_CMDQ_PROD(a) "SMMUX_S_CMDQ_PROD"
3736*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_CMDQ_PROD(a) 0x0 /* PF_BAR0 */
3737*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_CMDQ_PROD(a) (a)
3738*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_CMDQ_PROD(a) (a), -1, -1, -1
3739*4b8b8d74SJaiprakash Singh
3740*4b8b8d74SJaiprakash Singh /**
3741*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_cr0
3742*4b8b8d74SJaiprakash Singh *
3743*4b8b8d74SJaiprakash Singh * SMMU Secure Control 0 Register
3744*4b8b8d74SJaiprakash Singh * An update to a field in SMMU()_S_CR0 is not considered complete, along with any
3745*4b8b8d74SJaiprakash Singh * side effects, until the respective field in SMMU()_S_CR0ACK is observed to take the
3746*4b8b8d74SJaiprakash Singh * new value.
3747*4b8b8d74SJaiprakash Singh */
3748*4b8b8d74SJaiprakash Singh union ody_smmux_s_cr0 {
3749*4b8b8d74SJaiprakash Singh uint32_t u;
3750*4b8b8d74SJaiprakash Singh struct ody_smmux_s_cr0_s {
3751*4b8b8d74SJaiprakash Singh uint32_t smmuen : 1;
3752*4b8b8d74SJaiprakash Singh uint32_t reserved_1 : 1;
3753*4b8b8d74SJaiprakash Singh uint32_t eventqen : 1;
3754*4b8b8d74SJaiprakash Singh uint32_t cmdqen : 1;
3755*4b8b8d74SJaiprakash Singh uint32_t reserved_4 : 1;
3756*4b8b8d74SJaiprakash Singh uint32_t sif : 1;
3757*4b8b8d74SJaiprakash Singh uint32_t vmw : 3;
3758*4b8b8d74SJaiprakash Singh uint32_t nsstalld : 1;
3759*4b8b8d74SJaiprakash Singh uint32_t reserved_10_31 : 22;
3760*4b8b8d74SJaiprakash Singh } s;
3761*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_cr0_s cn; */
3762*4b8b8d74SJaiprakash Singh };
3763*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_cr0 ody_smmux_s_cr0_t;
3764*4b8b8d74SJaiprakash Singh
3765*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_CR0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_CR0(uint64_t a)3766*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_CR0(uint64_t a)
3767*4b8b8d74SJaiprakash Singh {
3768*4b8b8d74SJaiprakash Singh if (a <= 3)
3769*4b8b8d74SJaiprakash Singh return 0x830000008020ll + 0x1000000000ll * ((a) & 0x3);
3770*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_CR0", 1, a, 0, 0, 0, 0, 0);
3771*4b8b8d74SJaiprakash Singh }
3772*4b8b8d74SJaiprakash Singh
3773*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_CR0(a) ody_smmux_s_cr0_t
3774*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_CR0(a) CSR_TYPE_NCB32b
3775*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_CR0(a) "SMMUX_S_CR0"
3776*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_CR0(a) 0x0 /* PF_BAR0 */
3777*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_CR0(a) (a)
3778*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_CR0(a) (a), -1, -1, -1
3779*4b8b8d74SJaiprakash Singh
3780*4b8b8d74SJaiprakash Singh /**
3781*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_cr0ack
3782*4b8b8d74SJaiprakash Singh *
3783*4b8b8d74SJaiprakash Singh * SMMU Secure Control 0 Acknowledgement Register
3784*4b8b8d74SJaiprakash Singh * This register is a read-only copy of SMMU()_S_CR0.
3785*4b8b8d74SJaiprakash Singh */
3786*4b8b8d74SJaiprakash Singh union ody_smmux_s_cr0ack {
3787*4b8b8d74SJaiprakash Singh uint32_t u;
3788*4b8b8d74SJaiprakash Singh struct ody_smmux_s_cr0ack_s {
3789*4b8b8d74SJaiprakash Singh uint32_t smmuen : 1;
3790*4b8b8d74SJaiprakash Singh uint32_t reserved_1 : 1;
3791*4b8b8d74SJaiprakash Singh uint32_t eventqen : 1;
3792*4b8b8d74SJaiprakash Singh uint32_t cmdqen : 1;
3793*4b8b8d74SJaiprakash Singh uint32_t reserved_4 : 1;
3794*4b8b8d74SJaiprakash Singh uint32_t sif : 1;
3795*4b8b8d74SJaiprakash Singh uint32_t vmw : 3;
3796*4b8b8d74SJaiprakash Singh uint32_t nsstalld : 1;
3797*4b8b8d74SJaiprakash Singh uint32_t reserved_10_31 : 22;
3798*4b8b8d74SJaiprakash Singh } s;
3799*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_cr0ack_s cn; */
3800*4b8b8d74SJaiprakash Singh };
3801*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_cr0ack ody_smmux_s_cr0ack_t;
3802*4b8b8d74SJaiprakash Singh
3803*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_CR0ACK(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_CR0ACK(uint64_t a)3804*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_CR0ACK(uint64_t a)
3805*4b8b8d74SJaiprakash Singh {
3806*4b8b8d74SJaiprakash Singh if (a <= 3)
3807*4b8b8d74SJaiprakash Singh return 0x830000008024ll + 0x1000000000ll * ((a) & 0x3);
3808*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_CR0ACK", 1, a, 0, 0, 0, 0, 0);
3809*4b8b8d74SJaiprakash Singh }
3810*4b8b8d74SJaiprakash Singh
3811*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_CR0ACK(a) ody_smmux_s_cr0ack_t
3812*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_CR0ACK(a) CSR_TYPE_NCB32b
3813*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_CR0ACK(a) "SMMUX_S_CR0ACK"
3814*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_CR0ACK(a) 0x0 /* PF_BAR0 */
3815*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_CR0ACK(a) (a)
3816*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_CR0ACK(a) (a), -1, -1, -1
3817*4b8b8d74SJaiprakash Singh
3818*4b8b8d74SJaiprakash Singh /**
3819*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_cr1
3820*4b8b8d74SJaiprakash Singh *
3821*4b8b8d74SJaiprakash Singh * SMMU Secure Control 1 Register
3822*4b8b8d74SJaiprakash Singh */
3823*4b8b8d74SJaiprakash Singh union ody_smmux_s_cr1 {
3824*4b8b8d74SJaiprakash Singh uint32_t u;
3825*4b8b8d74SJaiprakash Singh struct ody_smmux_s_cr1_s {
3826*4b8b8d74SJaiprakash Singh uint32_t queue_ic : 2;
3827*4b8b8d74SJaiprakash Singh uint32_t queue_oc : 2;
3828*4b8b8d74SJaiprakash Singh uint32_t queue_sh : 2;
3829*4b8b8d74SJaiprakash Singh uint32_t table_ic : 2;
3830*4b8b8d74SJaiprakash Singh uint32_t table_oc : 2;
3831*4b8b8d74SJaiprakash Singh uint32_t table_sh : 2;
3832*4b8b8d74SJaiprakash Singh uint32_t reserved_12_31 : 20;
3833*4b8b8d74SJaiprakash Singh } s;
3834*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_cr1_s cn; */
3835*4b8b8d74SJaiprakash Singh };
3836*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_cr1 ody_smmux_s_cr1_t;
3837*4b8b8d74SJaiprakash Singh
3838*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_CR1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_CR1(uint64_t a)3839*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_CR1(uint64_t a)
3840*4b8b8d74SJaiprakash Singh {
3841*4b8b8d74SJaiprakash Singh if (a <= 3)
3842*4b8b8d74SJaiprakash Singh return 0x830000008028ll + 0x1000000000ll * ((a) & 0x3);
3843*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_CR1", 1, a, 0, 0, 0, 0, 0);
3844*4b8b8d74SJaiprakash Singh }
3845*4b8b8d74SJaiprakash Singh
3846*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_CR1(a) ody_smmux_s_cr1_t
3847*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_CR1(a) CSR_TYPE_NCB32b
3848*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_CR1(a) "SMMUX_S_CR1"
3849*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_CR1(a) 0x0 /* PF_BAR0 */
3850*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_CR1(a) (a)
3851*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_CR1(a) (a), -1, -1, -1
3852*4b8b8d74SJaiprakash Singh
3853*4b8b8d74SJaiprakash Singh /**
3854*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_cr2
3855*4b8b8d74SJaiprakash Singh *
3856*4b8b8d74SJaiprakash Singh * SMMU Secure Control 2 Register
3857*4b8b8d74SJaiprakash Singh */
3858*4b8b8d74SJaiprakash Singh union ody_smmux_s_cr2 {
3859*4b8b8d74SJaiprakash Singh uint32_t u;
3860*4b8b8d74SJaiprakash Singh struct ody_smmux_s_cr2_s {
3861*4b8b8d74SJaiprakash Singh uint32_t e2h : 1;
3862*4b8b8d74SJaiprakash Singh uint32_t recinvsid : 1;
3863*4b8b8d74SJaiprakash Singh uint32_t ptm : 1;
3864*4b8b8d74SJaiprakash Singh uint32_t reserved_3_31 : 29;
3865*4b8b8d74SJaiprakash Singh } s;
3866*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_cr2_s cn; */
3867*4b8b8d74SJaiprakash Singh };
3868*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_cr2 ody_smmux_s_cr2_t;
3869*4b8b8d74SJaiprakash Singh
3870*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_CR2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_CR2(uint64_t a)3871*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_CR2(uint64_t a)
3872*4b8b8d74SJaiprakash Singh {
3873*4b8b8d74SJaiprakash Singh if (a <= 3)
3874*4b8b8d74SJaiprakash Singh return 0x83000000802cll + 0x1000000000ll * ((a) & 0x3);
3875*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_CR2", 1, a, 0, 0, 0, 0, 0);
3876*4b8b8d74SJaiprakash Singh }
3877*4b8b8d74SJaiprakash Singh
3878*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_CR2(a) ody_smmux_s_cr2_t
3879*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_CR2(a) CSR_TYPE_NCB32b
3880*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_CR2(a) "SMMUX_S_CR2"
3881*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_CR2(a) 0x0 /* PF_BAR0 */
3882*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_CR2(a) (a)
3883*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_CR2(a) (a), -1, -1, -1
3884*4b8b8d74SJaiprakash Singh
3885*4b8b8d74SJaiprakash Singh /**
3886*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_s_eventq_base
3887*4b8b8d74SJaiprakash Singh *
3888*4b8b8d74SJaiprakash Singh * SMMU Secure Event Queue Base Register
3889*4b8b8d74SJaiprakash Singh */
3890*4b8b8d74SJaiprakash Singh union ody_smmux_s_eventq_base {
3891*4b8b8d74SJaiprakash Singh uint64_t u;
3892*4b8b8d74SJaiprakash Singh struct ody_smmux_s_eventq_base_s {
3893*4b8b8d74SJaiprakash Singh uint64_t log2size : 5;
3894*4b8b8d74SJaiprakash Singh uint64_t addr : 47;
3895*4b8b8d74SJaiprakash Singh uint64_t reserved_52_61 : 10;
3896*4b8b8d74SJaiprakash Singh uint64_t wa : 1;
3897*4b8b8d74SJaiprakash Singh uint64_t reserved_63 : 1;
3898*4b8b8d74SJaiprakash Singh } s;
3899*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_eventq_base_s cn; */
3900*4b8b8d74SJaiprakash Singh };
3901*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_eventq_base ody_smmux_s_eventq_base_t;
3902*4b8b8d74SJaiprakash Singh
3903*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_EVENTQ_BASE(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_EVENTQ_BASE(uint64_t a)3904*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_EVENTQ_BASE(uint64_t a)
3905*4b8b8d74SJaiprakash Singh {
3906*4b8b8d74SJaiprakash Singh if (a <= 3)
3907*4b8b8d74SJaiprakash Singh return 0x8300000080a0ll + 0x1000000000ll * ((a) & 0x3);
3908*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_EVENTQ_BASE", 1, a, 0, 0, 0, 0, 0);
3909*4b8b8d74SJaiprakash Singh }
3910*4b8b8d74SJaiprakash Singh
3911*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_EVENTQ_BASE(a) ody_smmux_s_eventq_base_t
3912*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_EVENTQ_BASE(a) CSR_TYPE_NCB
3913*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_EVENTQ_BASE(a) "SMMUX_S_EVENTQ_BASE"
3914*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_EVENTQ_BASE(a) 0x0 /* PF_BAR0 */
3915*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_EVENTQ_BASE(a) (a)
3916*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_EVENTQ_BASE(a) (a), -1, -1, -1
3917*4b8b8d74SJaiprakash Singh
3918*4b8b8d74SJaiprakash Singh /**
3919*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_eventq_cons
3920*4b8b8d74SJaiprakash Singh *
3921*4b8b8d74SJaiprakash Singh * SMMU Secure Event Queue Consumer Register
3922*4b8b8d74SJaiprakash Singh */
3923*4b8b8d74SJaiprakash Singh union ody_smmux_s_eventq_cons {
3924*4b8b8d74SJaiprakash Singh uint32_t u;
3925*4b8b8d74SJaiprakash Singh struct ody_smmux_s_eventq_cons_s {
3926*4b8b8d74SJaiprakash Singh uint32_t rd : 20;
3927*4b8b8d74SJaiprakash Singh uint32_t reserved_20_30 : 11;
3928*4b8b8d74SJaiprakash Singh uint32_t ovackflg : 1;
3929*4b8b8d74SJaiprakash Singh } s;
3930*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_eventq_cons_s cn; */
3931*4b8b8d74SJaiprakash Singh };
3932*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_eventq_cons ody_smmux_s_eventq_cons_t;
3933*4b8b8d74SJaiprakash Singh
3934*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_EVENTQ_CONS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_EVENTQ_CONS(uint64_t a)3935*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_EVENTQ_CONS(uint64_t a)
3936*4b8b8d74SJaiprakash Singh {
3937*4b8b8d74SJaiprakash Singh if (a <= 3)
3938*4b8b8d74SJaiprakash Singh return 0x8300000080acll + 0x1000000000ll * ((a) & 0x3);
3939*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_EVENTQ_CONS", 1, a, 0, 0, 0, 0, 0);
3940*4b8b8d74SJaiprakash Singh }
3941*4b8b8d74SJaiprakash Singh
3942*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_EVENTQ_CONS(a) ody_smmux_s_eventq_cons_t
3943*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_EVENTQ_CONS(a) CSR_TYPE_NCB32b
3944*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_EVENTQ_CONS(a) "SMMUX_S_EVENTQ_CONS"
3945*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_EVENTQ_CONS(a) 0x0 /* PF_BAR0 */
3946*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_EVENTQ_CONS(a) (a)
3947*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_EVENTQ_CONS(a) (a), -1, -1, -1
3948*4b8b8d74SJaiprakash Singh
3949*4b8b8d74SJaiprakash Singh /**
3950*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_s_eventq_irq_cfg0
3951*4b8b8d74SJaiprakash Singh *
3952*4b8b8d74SJaiprakash Singh * SMMU Secure Event Queue IRQ Configuration 0 Register
3953*4b8b8d74SJaiprakash Singh */
3954*4b8b8d74SJaiprakash Singh union ody_smmux_s_eventq_irq_cfg0 {
3955*4b8b8d74SJaiprakash Singh uint64_t u;
3956*4b8b8d74SJaiprakash Singh struct ody_smmux_s_eventq_irq_cfg0_s {
3957*4b8b8d74SJaiprakash Singh uint64_t reserved_0_1 : 2;
3958*4b8b8d74SJaiprakash Singh uint64_t addr : 50;
3959*4b8b8d74SJaiprakash Singh uint64_t reserved_52_63 : 12;
3960*4b8b8d74SJaiprakash Singh } s;
3961*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_eventq_irq_cfg0_s cn; */
3962*4b8b8d74SJaiprakash Singh };
3963*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_eventq_irq_cfg0 ody_smmux_s_eventq_irq_cfg0_t;
3964*4b8b8d74SJaiprakash Singh
3965*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_EVENTQ_IRQ_CFG0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_EVENTQ_IRQ_CFG0(uint64_t a)3966*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_EVENTQ_IRQ_CFG0(uint64_t a)
3967*4b8b8d74SJaiprakash Singh {
3968*4b8b8d74SJaiprakash Singh if (a <= 3)
3969*4b8b8d74SJaiprakash Singh return 0x8300000080b0ll + 0x1000000000ll * ((a) & 0x3);
3970*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_EVENTQ_IRQ_CFG0", 1, a, 0, 0, 0, 0, 0);
3971*4b8b8d74SJaiprakash Singh }
3972*4b8b8d74SJaiprakash Singh
3973*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_EVENTQ_IRQ_CFG0(a) ody_smmux_s_eventq_irq_cfg0_t
3974*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_EVENTQ_IRQ_CFG0(a) CSR_TYPE_NCB
3975*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_EVENTQ_IRQ_CFG0(a) "SMMUX_S_EVENTQ_IRQ_CFG0"
3976*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_EVENTQ_IRQ_CFG0(a) 0x0 /* PF_BAR0 */
3977*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_EVENTQ_IRQ_CFG0(a) (a)
3978*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_EVENTQ_IRQ_CFG0(a) (a), -1, -1, -1
3979*4b8b8d74SJaiprakash Singh
3980*4b8b8d74SJaiprakash Singh /**
3981*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_eventq_irq_cfg1
3982*4b8b8d74SJaiprakash Singh *
3983*4b8b8d74SJaiprakash Singh * SMMU Secure Event Queue IRQ Configuration 1 Register
3984*4b8b8d74SJaiprakash Singh */
3985*4b8b8d74SJaiprakash Singh union ody_smmux_s_eventq_irq_cfg1 {
3986*4b8b8d74SJaiprakash Singh uint32_t u;
3987*4b8b8d74SJaiprakash Singh struct ody_smmux_s_eventq_irq_cfg1_s {
3988*4b8b8d74SJaiprakash Singh uint32_t data : 32;
3989*4b8b8d74SJaiprakash Singh } s;
3990*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_eventq_irq_cfg1_s cn; */
3991*4b8b8d74SJaiprakash Singh };
3992*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_eventq_irq_cfg1 ody_smmux_s_eventq_irq_cfg1_t;
3993*4b8b8d74SJaiprakash Singh
3994*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_EVENTQ_IRQ_CFG1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_EVENTQ_IRQ_CFG1(uint64_t a)3995*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_EVENTQ_IRQ_CFG1(uint64_t a)
3996*4b8b8d74SJaiprakash Singh {
3997*4b8b8d74SJaiprakash Singh if (a <= 3)
3998*4b8b8d74SJaiprakash Singh return 0x8300000080b8ll + 0x1000000000ll * ((a) & 0x3);
3999*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_EVENTQ_IRQ_CFG1", 1, a, 0, 0, 0, 0, 0);
4000*4b8b8d74SJaiprakash Singh }
4001*4b8b8d74SJaiprakash Singh
4002*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_EVENTQ_IRQ_CFG1(a) ody_smmux_s_eventq_irq_cfg1_t
4003*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_EVENTQ_IRQ_CFG1(a) CSR_TYPE_NCB32b
4004*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_EVENTQ_IRQ_CFG1(a) "SMMUX_S_EVENTQ_IRQ_CFG1"
4005*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_EVENTQ_IRQ_CFG1(a) 0x0 /* PF_BAR0 */
4006*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_EVENTQ_IRQ_CFG1(a) (a)
4007*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_EVENTQ_IRQ_CFG1(a) (a), -1, -1, -1
4008*4b8b8d74SJaiprakash Singh
4009*4b8b8d74SJaiprakash Singh /**
4010*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_eventq_irq_cfg2
4011*4b8b8d74SJaiprakash Singh *
4012*4b8b8d74SJaiprakash Singh * SMMU Secure Event Queue IRQ Configuration 2 Register
4013*4b8b8d74SJaiprakash Singh */
4014*4b8b8d74SJaiprakash Singh union ody_smmux_s_eventq_irq_cfg2 {
4015*4b8b8d74SJaiprakash Singh uint32_t u;
4016*4b8b8d74SJaiprakash Singh struct ody_smmux_s_eventq_irq_cfg2_s {
4017*4b8b8d74SJaiprakash Singh uint32_t memattr : 4;
4018*4b8b8d74SJaiprakash Singh uint32_t sh : 2;
4019*4b8b8d74SJaiprakash Singh uint32_t reserved_6_31 : 26;
4020*4b8b8d74SJaiprakash Singh } s;
4021*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_eventq_irq_cfg2_s cn; */
4022*4b8b8d74SJaiprakash Singh };
4023*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_eventq_irq_cfg2 ody_smmux_s_eventq_irq_cfg2_t;
4024*4b8b8d74SJaiprakash Singh
4025*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_EVENTQ_IRQ_CFG2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_EVENTQ_IRQ_CFG2(uint64_t a)4026*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_EVENTQ_IRQ_CFG2(uint64_t a)
4027*4b8b8d74SJaiprakash Singh {
4028*4b8b8d74SJaiprakash Singh if (a <= 3)
4029*4b8b8d74SJaiprakash Singh return 0x8300000080bcll + 0x1000000000ll * ((a) & 0x3);
4030*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_EVENTQ_IRQ_CFG2", 1, a, 0, 0, 0, 0, 0);
4031*4b8b8d74SJaiprakash Singh }
4032*4b8b8d74SJaiprakash Singh
4033*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_EVENTQ_IRQ_CFG2(a) ody_smmux_s_eventq_irq_cfg2_t
4034*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_EVENTQ_IRQ_CFG2(a) CSR_TYPE_NCB32b
4035*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_EVENTQ_IRQ_CFG2(a) "SMMUX_S_EVENTQ_IRQ_CFG2"
4036*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_EVENTQ_IRQ_CFG2(a) 0x0 /* PF_BAR0 */
4037*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_EVENTQ_IRQ_CFG2(a) (a)
4038*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_EVENTQ_IRQ_CFG2(a) (a), -1, -1, -1
4039*4b8b8d74SJaiprakash Singh
4040*4b8b8d74SJaiprakash Singh /**
4041*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_eventq_prod
4042*4b8b8d74SJaiprakash Singh *
4043*4b8b8d74SJaiprakash Singh * SMMU Secure Event Queue Producer Register
4044*4b8b8d74SJaiprakash Singh */
4045*4b8b8d74SJaiprakash Singh union ody_smmux_s_eventq_prod {
4046*4b8b8d74SJaiprakash Singh uint32_t u;
4047*4b8b8d74SJaiprakash Singh struct ody_smmux_s_eventq_prod_s {
4048*4b8b8d74SJaiprakash Singh uint32_t wr : 20;
4049*4b8b8d74SJaiprakash Singh uint32_t reserved_20_30 : 11;
4050*4b8b8d74SJaiprakash Singh uint32_t ovflg : 1;
4051*4b8b8d74SJaiprakash Singh } s;
4052*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_eventq_prod_s cn; */
4053*4b8b8d74SJaiprakash Singh };
4054*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_eventq_prod ody_smmux_s_eventq_prod_t;
4055*4b8b8d74SJaiprakash Singh
4056*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_EVENTQ_PROD(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_EVENTQ_PROD(uint64_t a)4057*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_EVENTQ_PROD(uint64_t a)
4058*4b8b8d74SJaiprakash Singh {
4059*4b8b8d74SJaiprakash Singh if (a <= 3)
4060*4b8b8d74SJaiprakash Singh return 0x8300000080a8ll + 0x1000000000ll * ((a) & 0x3);
4061*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_EVENTQ_PROD", 1, a, 0, 0, 0, 0, 0);
4062*4b8b8d74SJaiprakash Singh }
4063*4b8b8d74SJaiprakash Singh
4064*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_EVENTQ_PROD(a) ody_smmux_s_eventq_prod_t
4065*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_EVENTQ_PROD(a) CSR_TYPE_NCB32b
4066*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_EVENTQ_PROD(a) "SMMUX_S_EVENTQ_PROD"
4067*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_EVENTQ_PROD(a) 0x0 /* PF_BAR0 */
4068*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_EVENTQ_PROD(a) (a)
4069*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_EVENTQ_PROD(a) (a), -1, -1, -1
4070*4b8b8d74SJaiprakash Singh
4071*4b8b8d74SJaiprakash Singh /**
4072*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_s_gatos_addr
4073*4b8b8d74SJaiprakash Singh *
4074*4b8b8d74SJaiprakash Singh * SMMU GATOS Address Register
4075*4b8b8d74SJaiprakash Singh */
4076*4b8b8d74SJaiprakash Singh union ody_smmux_s_gatos_addr {
4077*4b8b8d74SJaiprakash Singh uint64_t u;
4078*4b8b8d74SJaiprakash Singh struct ody_smmux_s_gatos_addr_s {
4079*4b8b8d74SJaiprakash Singh uint64_t reserved_0_3 : 4;
4080*4b8b8d74SJaiprakash Singh uint64_t ns_ind : 1;
4081*4b8b8d74SJaiprakash Singh uint64_t reserved_5 : 1;
4082*4b8b8d74SJaiprakash Singh uint64_t httui : 1;
4083*4b8b8d74SJaiprakash Singh uint64_t ind : 1;
4084*4b8b8d74SJaiprakash Singh uint64_t rnw : 1;
4085*4b8b8d74SJaiprakash Singh uint64_t pnu : 1;
4086*4b8b8d74SJaiprakash Singh uint64_t rtype : 2;
4087*4b8b8d74SJaiprakash Singh uint64_t addr : 52;
4088*4b8b8d74SJaiprakash Singh } s;
4089*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_gatos_addr_s cn; */
4090*4b8b8d74SJaiprakash Singh };
4091*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_gatos_addr ody_smmux_s_gatos_addr_t;
4092*4b8b8d74SJaiprakash Singh
4093*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GATOS_ADDR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_GATOS_ADDR(uint64_t a)4094*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GATOS_ADDR(uint64_t a)
4095*4b8b8d74SJaiprakash Singh {
4096*4b8b8d74SJaiprakash Singh if (a <= 3)
4097*4b8b8d74SJaiprakash Singh return 0x830000008110ll + 0x1000000000ll * ((a) & 0x3);
4098*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_GATOS_ADDR", 1, a, 0, 0, 0, 0, 0);
4099*4b8b8d74SJaiprakash Singh }
4100*4b8b8d74SJaiprakash Singh
4101*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_GATOS_ADDR(a) ody_smmux_s_gatos_addr_t
4102*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_GATOS_ADDR(a) CSR_TYPE_NCB
4103*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_GATOS_ADDR(a) "SMMUX_S_GATOS_ADDR"
4104*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_GATOS_ADDR(a) 0x0 /* PF_BAR0 */
4105*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_GATOS_ADDR(a) (a)
4106*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_GATOS_ADDR(a) (a), -1, -1, -1
4107*4b8b8d74SJaiprakash Singh
4108*4b8b8d74SJaiprakash Singh /**
4109*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_gatos_ctrl
4110*4b8b8d74SJaiprakash Singh *
4111*4b8b8d74SJaiprakash Singh * SMMU Secure GATOS Control Register
4112*4b8b8d74SJaiprakash Singh */
4113*4b8b8d74SJaiprakash Singh union ody_smmux_s_gatos_ctrl {
4114*4b8b8d74SJaiprakash Singh uint32_t u;
4115*4b8b8d74SJaiprakash Singh struct ody_smmux_s_gatos_ctrl_s {
4116*4b8b8d74SJaiprakash Singh uint32_t run : 1;
4117*4b8b8d74SJaiprakash Singh uint32_t reserved_1_31 : 31;
4118*4b8b8d74SJaiprakash Singh } s;
4119*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_gatos_ctrl_s cn; */
4120*4b8b8d74SJaiprakash Singh };
4121*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_gatos_ctrl ody_smmux_s_gatos_ctrl_t;
4122*4b8b8d74SJaiprakash Singh
4123*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GATOS_CTRL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_GATOS_CTRL(uint64_t a)4124*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GATOS_CTRL(uint64_t a)
4125*4b8b8d74SJaiprakash Singh {
4126*4b8b8d74SJaiprakash Singh if (a <= 3)
4127*4b8b8d74SJaiprakash Singh return 0x830000008100ll + 0x1000000000ll * ((a) & 0x3);
4128*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_GATOS_CTRL", 1, a, 0, 0, 0, 0, 0);
4129*4b8b8d74SJaiprakash Singh }
4130*4b8b8d74SJaiprakash Singh
4131*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_GATOS_CTRL(a) ody_smmux_s_gatos_ctrl_t
4132*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_GATOS_CTRL(a) CSR_TYPE_NCB32b
4133*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_GATOS_CTRL(a) "SMMUX_S_GATOS_CTRL"
4134*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_GATOS_CTRL(a) 0x0 /* PF_BAR0 */
4135*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_GATOS_CTRL(a) (a)
4136*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_GATOS_CTRL(a) (a), -1, -1, -1
4137*4b8b8d74SJaiprakash Singh
4138*4b8b8d74SJaiprakash Singh /**
4139*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_s_gatos_par
4140*4b8b8d74SJaiprakash Singh *
4141*4b8b8d74SJaiprakash Singh * SMMU GATOS Address Register
4142*4b8b8d74SJaiprakash Singh */
4143*4b8b8d74SJaiprakash Singh union ody_smmux_s_gatos_par {
4144*4b8b8d74SJaiprakash Singh uint64_t u;
4145*4b8b8d74SJaiprakash Singh struct ody_smmux_s_gatos_par_s {
4146*4b8b8d74SJaiprakash Singh uint64_t par : 64;
4147*4b8b8d74SJaiprakash Singh } s;
4148*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_gatos_par_s cn; */
4149*4b8b8d74SJaiprakash Singh };
4150*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_gatos_par ody_smmux_s_gatos_par_t;
4151*4b8b8d74SJaiprakash Singh
4152*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GATOS_PAR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_GATOS_PAR(uint64_t a)4153*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GATOS_PAR(uint64_t a)
4154*4b8b8d74SJaiprakash Singh {
4155*4b8b8d74SJaiprakash Singh if (a <= 3)
4156*4b8b8d74SJaiprakash Singh return 0x830000008118ll + 0x1000000000ll * ((a) & 0x3);
4157*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_GATOS_PAR", 1, a, 0, 0, 0, 0, 0);
4158*4b8b8d74SJaiprakash Singh }
4159*4b8b8d74SJaiprakash Singh
4160*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_GATOS_PAR(a) ody_smmux_s_gatos_par_t
4161*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_GATOS_PAR(a) CSR_TYPE_NCB
4162*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_GATOS_PAR(a) "SMMUX_S_GATOS_PAR"
4163*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_GATOS_PAR(a) 0x0 /* PF_BAR0 */
4164*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_GATOS_PAR(a) (a)
4165*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_GATOS_PAR(a) (a), -1, -1, -1
4166*4b8b8d74SJaiprakash Singh
4167*4b8b8d74SJaiprakash Singh /**
4168*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_s_gatos_sid
4169*4b8b8d74SJaiprakash Singh *
4170*4b8b8d74SJaiprakash Singh * SMMU GATOS SID Register
4171*4b8b8d74SJaiprakash Singh */
4172*4b8b8d74SJaiprakash Singh union ody_smmux_s_gatos_sid {
4173*4b8b8d74SJaiprakash Singh uint64_t u;
4174*4b8b8d74SJaiprakash Singh struct ody_smmux_s_gatos_sid_s {
4175*4b8b8d74SJaiprakash Singh uint64_t streamid : 22;
4176*4b8b8d74SJaiprakash Singh uint64_t reserved_22_31 : 10;
4177*4b8b8d74SJaiprakash Singh uint64_t substreamid : 20;
4178*4b8b8d74SJaiprakash Singh uint64_t ssid_valid : 1;
4179*4b8b8d74SJaiprakash Singh uint64_t ssec : 1;
4180*4b8b8d74SJaiprakash Singh uint64_t reserved_54_63 : 10;
4181*4b8b8d74SJaiprakash Singh } s;
4182*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_gatos_sid_s cn; */
4183*4b8b8d74SJaiprakash Singh };
4184*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_gatos_sid ody_smmux_s_gatos_sid_t;
4185*4b8b8d74SJaiprakash Singh
4186*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GATOS_SID(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_GATOS_SID(uint64_t a)4187*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GATOS_SID(uint64_t a)
4188*4b8b8d74SJaiprakash Singh {
4189*4b8b8d74SJaiprakash Singh if (a <= 3)
4190*4b8b8d74SJaiprakash Singh return 0x830000008108ll + 0x1000000000ll * ((a) & 0x3);
4191*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_GATOS_SID", 1, a, 0, 0, 0, 0, 0);
4192*4b8b8d74SJaiprakash Singh }
4193*4b8b8d74SJaiprakash Singh
4194*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_GATOS_SID(a) ody_smmux_s_gatos_sid_t
4195*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_GATOS_SID(a) CSR_TYPE_NCB
4196*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_GATOS_SID(a) "SMMUX_S_GATOS_SID"
4197*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_GATOS_SID(a) 0x0 /* PF_BAR0 */
4198*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_GATOS_SID(a) (a)
4199*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_GATOS_SID(a) (a), -1, -1, -1
4200*4b8b8d74SJaiprakash Singh
4201*4b8b8d74SJaiprakash Singh /**
4202*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_gbpa
4203*4b8b8d74SJaiprakash Singh *
4204*4b8b8d74SJaiprakash Singh * SMMU Secure Global Bypass Attribute Register
4205*4b8b8d74SJaiprakash Singh */
4206*4b8b8d74SJaiprakash Singh union ody_smmux_s_gbpa {
4207*4b8b8d74SJaiprakash Singh uint32_t u;
4208*4b8b8d74SJaiprakash Singh struct ody_smmux_s_gbpa_s {
4209*4b8b8d74SJaiprakash Singh uint32_t memattr : 4;
4210*4b8b8d74SJaiprakash Singh uint32_t mtcfg : 1;
4211*4b8b8d74SJaiprakash Singh uint32_t reserved_5_7 : 3;
4212*4b8b8d74SJaiprakash Singh uint32_t alloccfg : 4;
4213*4b8b8d74SJaiprakash Singh uint32_t shcfg : 2;
4214*4b8b8d74SJaiprakash Singh uint32_t nscfg : 2;
4215*4b8b8d74SJaiprakash Singh uint32_t privcfg : 2;
4216*4b8b8d74SJaiprakash Singh uint32_t instcfg : 2;
4217*4b8b8d74SJaiprakash Singh uint32_t abrt : 1;
4218*4b8b8d74SJaiprakash Singh uint32_t reserved_21_30 : 10;
4219*4b8b8d74SJaiprakash Singh uint32_t update : 1;
4220*4b8b8d74SJaiprakash Singh } s;
4221*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_gbpa_s cn; */
4222*4b8b8d74SJaiprakash Singh };
4223*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_gbpa ody_smmux_s_gbpa_t;
4224*4b8b8d74SJaiprakash Singh
4225*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GBPA(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_GBPA(uint64_t a)4226*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GBPA(uint64_t a)
4227*4b8b8d74SJaiprakash Singh {
4228*4b8b8d74SJaiprakash Singh if (a <= 3)
4229*4b8b8d74SJaiprakash Singh return 0x830000008044ll + 0x1000000000ll * ((a) & 0x3);
4230*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_GBPA", 1, a, 0, 0, 0, 0, 0);
4231*4b8b8d74SJaiprakash Singh }
4232*4b8b8d74SJaiprakash Singh
4233*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_GBPA(a) ody_smmux_s_gbpa_t
4234*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_GBPA(a) CSR_TYPE_NCB32b
4235*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_GBPA(a) "SMMUX_S_GBPA"
4236*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_GBPA(a) 0x0 /* PF_BAR0 */
4237*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_GBPA(a) (a)
4238*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_GBPA(a) (a), -1, -1, -1
4239*4b8b8d74SJaiprakash Singh
4240*4b8b8d74SJaiprakash Singh /**
4241*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_gbpmpam
4242*4b8b8d74SJaiprakash Singh *
4243*4b8b8d74SJaiprakash Singh * SMMU Global Bypass MPAM Configuration for secure state Register
4244*4b8b8d74SJaiprakash Singh */
4245*4b8b8d74SJaiprakash Singh union ody_smmux_s_gbpmpam {
4246*4b8b8d74SJaiprakash Singh uint32_t u;
4247*4b8b8d74SJaiprakash Singh struct ody_smmux_s_gbpmpam_s {
4248*4b8b8d74SJaiprakash Singh uint32_t gbp_partid : 9;
4249*4b8b8d74SJaiprakash Singh uint32_t reserved_9_15 : 7;
4250*4b8b8d74SJaiprakash Singh uint32_t gbp_pmg : 1;
4251*4b8b8d74SJaiprakash Singh uint32_t reserved_17_23 : 7;
4252*4b8b8d74SJaiprakash Singh uint32_t mpam_ns : 1;
4253*4b8b8d74SJaiprakash Singh uint32_t reserved_25_30 : 6;
4254*4b8b8d74SJaiprakash Singh uint32_t update : 1;
4255*4b8b8d74SJaiprakash Singh } s;
4256*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_gbpmpam_s cn; */
4257*4b8b8d74SJaiprakash Singh };
4258*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_gbpmpam ody_smmux_s_gbpmpam_t;
4259*4b8b8d74SJaiprakash Singh
4260*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GBPMPAM(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_GBPMPAM(uint64_t a)4261*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GBPMPAM(uint64_t a)
4262*4b8b8d74SJaiprakash Singh {
4263*4b8b8d74SJaiprakash Singh if (a <= 3)
4264*4b8b8d74SJaiprakash Singh return 0x83000000813cll + 0x1000000000ll * ((a) & 0x3);
4265*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_GBPMPAM", 1, a, 0, 0, 0, 0, 0);
4266*4b8b8d74SJaiprakash Singh }
4267*4b8b8d74SJaiprakash Singh
4268*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_GBPMPAM(a) ody_smmux_s_gbpmpam_t
4269*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_GBPMPAM(a) CSR_TYPE_NCB32b
4270*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_GBPMPAM(a) "SMMUX_S_GBPMPAM"
4271*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_GBPMPAM(a) 0x0 /* PF_BAR0 */
4272*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_GBPMPAM(a) (a)
4273*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_GBPMPAM(a) (a), -1, -1, -1
4274*4b8b8d74SJaiprakash Singh
4275*4b8b8d74SJaiprakash Singh /**
4276*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_gerror
4277*4b8b8d74SJaiprakash Singh *
4278*4b8b8d74SJaiprakash Singh * SMMU Secure GERROR Register
4279*4b8b8d74SJaiprakash Singh */
4280*4b8b8d74SJaiprakash Singh union ody_smmux_s_gerror {
4281*4b8b8d74SJaiprakash Singh uint32_t u;
4282*4b8b8d74SJaiprakash Singh struct ody_smmux_s_gerror_s {
4283*4b8b8d74SJaiprakash Singh uint32_t cmdq_err : 1;
4284*4b8b8d74SJaiprakash Singh uint32_t reserved_1 : 1;
4285*4b8b8d74SJaiprakash Singh uint32_t eventq_abt_err : 1;
4286*4b8b8d74SJaiprakash Singh uint32_t reserved_3 : 1;
4287*4b8b8d74SJaiprakash Singh uint32_t msi_cmdq_abt_err : 1;
4288*4b8b8d74SJaiprakash Singh uint32_t msi_eventq_abt_err : 1;
4289*4b8b8d74SJaiprakash Singh uint32_t reserved_6 : 1;
4290*4b8b8d74SJaiprakash Singh uint32_t msi_gerror_abt_err : 1;
4291*4b8b8d74SJaiprakash Singh uint32_t sfm_err : 1;
4292*4b8b8d74SJaiprakash Singh uint32_t reserved_9_31 : 23;
4293*4b8b8d74SJaiprakash Singh } s;
4294*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_gerror_s cn; */
4295*4b8b8d74SJaiprakash Singh };
4296*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_gerror ody_smmux_s_gerror_t;
4297*4b8b8d74SJaiprakash Singh
4298*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GERROR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_GERROR(uint64_t a)4299*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GERROR(uint64_t a)
4300*4b8b8d74SJaiprakash Singh {
4301*4b8b8d74SJaiprakash Singh if (a <= 3)
4302*4b8b8d74SJaiprakash Singh return 0x830000008060ll + 0x1000000000ll * ((a) & 0x3);
4303*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_GERROR", 1, a, 0, 0, 0, 0, 0);
4304*4b8b8d74SJaiprakash Singh }
4305*4b8b8d74SJaiprakash Singh
4306*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_GERROR(a) ody_smmux_s_gerror_t
4307*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_GERROR(a) CSR_TYPE_NCB32b
4308*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_GERROR(a) "SMMUX_S_GERROR"
4309*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_GERROR(a) 0x0 /* PF_BAR0 */
4310*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_GERROR(a) (a)
4311*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_GERROR(a) (a), -1, -1, -1
4312*4b8b8d74SJaiprakash Singh
4313*4b8b8d74SJaiprakash Singh /**
4314*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_s_gerror_irq_cfg0
4315*4b8b8d74SJaiprakash Singh *
4316*4b8b8d74SJaiprakash Singh * SMMU Secure GERROR IRQ Configuration 0 Register
4317*4b8b8d74SJaiprakash Singh * Registers SMMU()_S_GERROR_IRQ_CFG0/1/2 are guarded by the respective
4318*4b8b8d74SJaiprakash Singh * SMMU()_S_IRQ_CTRL[GERROR_IRQEN] and must only be modified when
4319*4b8b8d74SJaiprakash Singh * SMMU()_S_IRQ_CTRL[GERROR_IRQEN]=0.
4320*4b8b8d74SJaiprakash Singh */
4321*4b8b8d74SJaiprakash Singh union ody_smmux_s_gerror_irq_cfg0 {
4322*4b8b8d74SJaiprakash Singh uint64_t u;
4323*4b8b8d74SJaiprakash Singh struct ody_smmux_s_gerror_irq_cfg0_s {
4324*4b8b8d74SJaiprakash Singh uint64_t reserved_0_1 : 2;
4325*4b8b8d74SJaiprakash Singh uint64_t addr : 50;
4326*4b8b8d74SJaiprakash Singh uint64_t reserved_52_63 : 12;
4327*4b8b8d74SJaiprakash Singh } s;
4328*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_gerror_irq_cfg0_s cn; */
4329*4b8b8d74SJaiprakash Singh };
4330*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_gerror_irq_cfg0 ody_smmux_s_gerror_irq_cfg0_t;
4331*4b8b8d74SJaiprakash Singh
4332*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GERROR_IRQ_CFG0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_GERROR_IRQ_CFG0(uint64_t a)4333*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GERROR_IRQ_CFG0(uint64_t a)
4334*4b8b8d74SJaiprakash Singh {
4335*4b8b8d74SJaiprakash Singh if (a <= 3)
4336*4b8b8d74SJaiprakash Singh return 0x830000008068ll + 0x1000000000ll * ((a) & 0x3);
4337*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_GERROR_IRQ_CFG0", 1, a, 0, 0, 0, 0, 0);
4338*4b8b8d74SJaiprakash Singh }
4339*4b8b8d74SJaiprakash Singh
4340*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_GERROR_IRQ_CFG0(a) ody_smmux_s_gerror_irq_cfg0_t
4341*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_GERROR_IRQ_CFG0(a) CSR_TYPE_NCB
4342*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_GERROR_IRQ_CFG0(a) "SMMUX_S_GERROR_IRQ_CFG0"
4343*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_GERROR_IRQ_CFG0(a) 0x0 /* PF_BAR0 */
4344*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_GERROR_IRQ_CFG0(a) (a)
4345*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_GERROR_IRQ_CFG0(a) (a), -1, -1, -1
4346*4b8b8d74SJaiprakash Singh
4347*4b8b8d74SJaiprakash Singh /**
4348*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_gerror_irq_cfg1
4349*4b8b8d74SJaiprakash Singh *
4350*4b8b8d74SJaiprakash Singh * SMMU Secure GERROR IRQ Configuration 1 Register
4351*4b8b8d74SJaiprakash Singh */
4352*4b8b8d74SJaiprakash Singh union ody_smmux_s_gerror_irq_cfg1 {
4353*4b8b8d74SJaiprakash Singh uint32_t u;
4354*4b8b8d74SJaiprakash Singh struct ody_smmux_s_gerror_irq_cfg1_s {
4355*4b8b8d74SJaiprakash Singh uint32_t data : 32;
4356*4b8b8d74SJaiprakash Singh } s;
4357*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_gerror_irq_cfg1_s cn; */
4358*4b8b8d74SJaiprakash Singh };
4359*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_gerror_irq_cfg1 ody_smmux_s_gerror_irq_cfg1_t;
4360*4b8b8d74SJaiprakash Singh
4361*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GERROR_IRQ_CFG1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_GERROR_IRQ_CFG1(uint64_t a)4362*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GERROR_IRQ_CFG1(uint64_t a)
4363*4b8b8d74SJaiprakash Singh {
4364*4b8b8d74SJaiprakash Singh if (a <= 3)
4365*4b8b8d74SJaiprakash Singh return 0x830000008070ll + 0x1000000000ll * ((a) & 0x3);
4366*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_GERROR_IRQ_CFG1", 1, a, 0, 0, 0, 0, 0);
4367*4b8b8d74SJaiprakash Singh }
4368*4b8b8d74SJaiprakash Singh
4369*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_GERROR_IRQ_CFG1(a) ody_smmux_s_gerror_irq_cfg1_t
4370*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_GERROR_IRQ_CFG1(a) CSR_TYPE_NCB32b
4371*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_GERROR_IRQ_CFG1(a) "SMMUX_S_GERROR_IRQ_CFG1"
4372*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_GERROR_IRQ_CFG1(a) 0x0 /* PF_BAR0 */
4373*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_GERROR_IRQ_CFG1(a) (a)
4374*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_GERROR_IRQ_CFG1(a) (a), -1, -1, -1
4375*4b8b8d74SJaiprakash Singh
4376*4b8b8d74SJaiprakash Singh /**
4377*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_gerror_irq_cfg2
4378*4b8b8d74SJaiprakash Singh *
4379*4b8b8d74SJaiprakash Singh * SMMU Secure GERROR IRQ Configuration 2 Register
4380*4b8b8d74SJaiprakash Singh */
4381*4b8b8d74SJaiprakash Singh union ody_smmux_s_gerror_irq_cfg2 {
4382*4b8b8d74SJaiprakash Singh uint32_t u;
4383*4b8b8d74SJaiprakash Singh struct ody_smmux_s_gerror_irq_cfg2_s {
4384*4b8b8d74SJaiprakash Singh uint32_t memattr : 4;
4385*4b8b8d74SJaiprakash Singh uint32_t sh : 2;
4386*4b8b8d74SJaiprakash Singh uint32_t reserved_6_31 : 26;
4387*4b8b8d74SJaiprakash Singh } s;
4388*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_gerror_irq_cfg2_s cn; */
4389*4b8b8d74SJaiprakash Singh };
4390*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_gerror_irq_cfg2 ody_smmux_s_gerror_irq_cfg2_t;
4391*4b8b8d74SJaiprakash Singh
4392*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GERROR_IRQ_CFG2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_GERROR_IRQ_CFG2(uint64_t a)4393*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GERROR_IRQ_CFG2(uint64_t a)
4394*4b8b8d74SJaiprakash Singh {
4395*4b8b8d74SJaiprakash Singh if (a <= 3)
4396*4b8b8d74SJaiprakash Singh return 0x830000008074ll + 0x1000000000ll * ((a) & 0x3);
4397*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_GERROR_IRQ_CFG2", 1, a, 0, 0, 0, 0, 0);
4398*4b8b8d74SJaiprakash Singh }
4399*4b8b8d74SJaiprakash Singh
4400*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_GERROR_IRQ_CFG2(a) ody_smmux_s_gerror_irq_cfg2_t
4401*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_GERROR_IRQ_CFG2(a) CSR_TYPE_NCB32b
4402*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_GERROR_IRQ_CFG2(a) "SMMUX_S_GERROR_IRQ_CFG2"
4403*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_GERROR_IRQ_CFG2(a) 0x0 /* PF_BAR0 */
4404*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_GERROR_IRQ_CFG2(a) (a)
4405*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_GERROR_IRQ_CFG2(a) (a), -1, -1, -1
4406*4b8b8d74SJaiprakash Singh
4407*4b8b8d74SJaiprakash Singh /**
4408*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_gerrorn
4409*4b8b8d74SJaiprakash Singh *
4410*4b8b8d74SJaiprakash Singh * SMMU Secure GERRORN Register
4411*4b8b8d74SJaiprakash Singh */
4412*4b8b8d74SJaiprakash Singh union ody_smmux_s_gerrorn {
4413*4b8b8d74SJaiprakash Singh uint32_t u;
4414*4b8b8d74SJaiprakash Singh struct ody_smmux_s_gerrorn_s {
4415*4b8b8d74SJaiprakash Singh uint32_t cmdq_err : 1;
4416*4b8b8d74SJaiprakash Singh uint32_t reserved_1 : 1;
4417*4b8b8d74SJaiprakash Singh uint32_t eventq_abt_err : 1;
4418*4b8b8d74SJaiprakash Singh uint32_t reserved_3 : 1;
4419*4b8b8d74SJaiprakash Singh uint32_t msi_cmdq_abt_err : 1;
4420*4b8b8d74SJaiprakash Singh uint32_t msi_eventq_abt_err : 1;
4421*4b8b8d74SJaiprakash Singh uint32_t reserved_6 : 1;
4422*4b8b8d74SJaiprakash Singh uint32_t msi_gerror_abt_err : 1;
4423*4b8b8d74SJaiprakash Singh uint32_t sfm_err : 1;
4424*4b8b8d74SJaiprakash Singh uint32_t reserved_9_31 : 23;
4425*4b8b8d74SJaiprakash Singh } s;
4426*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_gerrorn_s cn; */
4427*4b8b8d74SJaiprakash Singh };
4428*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_gerrorn ody_smmux_s_gerrorn_t;
4429*4b8b8d74SJaiprakash Singh
4430*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GERRORN(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_GERRORN(uint64_t a)4431*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GERRORN(uint64_t a)
4432*4b8b8d74SJaiprakash Singh {
4433*4b8b8d74SJaiprakash Singh if (a <= 3)
4434*4b8b8d74SJaiprakash Singh return 0x830000008064ll + 0x1000000000ll * ((a) & 0x3);
4435*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_GERRORN", 1, a, 0, 0, 0, 0, 0);
4436*4b8b8d74SJaiprakash Singh }
4437*4b8b8d74SJaiprakash Singh
4438*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_GERRORN(a) ody_smmux_s_gerrorn_t
4439*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_GERRORN(a) CSR_TYPE_NCB32b
4440*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_GERRORN(a) "SMMUX_S_GERRORN"
4441*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_GERRORN(a) 0x0 /* PF_BAR0 */
4442*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_GERRORN(a) (a)
4443*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_GERRORN(a) (a), -1, -1, -1
4444*4b8b8d74SJaiprakash Singh
4445*4b8b8d74SJaiprakash Singh /**
4446*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_gmpam
4447*4b8b8d74SJaiprakash Singh *
4448*4b8b8d74SJaiprakash Singh * SMMU Global MPAM Configuration for secure state Register
4449*4b8b8d74SJaiprakash Singh */
4450*4b8b8d74SJaiprakash Singh union ody_smmux_s_gmpam {
4451*4b8b8d74SJaiprakash Singh uint32_t u;
4452*4b8b8d74SJaiprakash Singh struct ody_smmux_s_gmpam_s {
4453*4b8b8d74SJaiprakash Singh uint32_t so_partid : 9;
4454*4b8b8d74SJaiprakash Singh uint32_t reserved_9_15 : 7;
4455*4b8b8d74SJaiprakash Singh uint32_t so_pmg : 1;
4456*4b8b8d74SJaiprakash Singh uint32_t reserved_17_23 : 7;
4457*4b8b8d74SJaiprakash Singh uint32_t mpam_ns : 1;
4458*4b8b8d74SJaiprakash Singh uint32_t reserved_25_30 : 6;
4459*4b8b8d74SJaiprakash Singh uint32_t update : 1;
4460*4b8b8d74SJaiprakash Singh } s;
4461*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_gmpam_s cn; */
4462*4b8b8d74SJaiprakash Singh };
4463*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_gmpam ody_smmux_s_gmpam_t;
4464*4b8b8d74SJaiprakash Singh
4465*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GMPAM(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_GMPAM(uint64_t a)4466*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_GMPAM(uint64_t a)
4467*4b8b8d74SJaiprakash Singh {
4468*4b8b8d74SJaiprakash Singh if (a <= 3)
4469*4b8b8d74SJaiprakash Singh return 0x830000008138ll + 0x1000000000ll * ((a) & 0x3);
4470*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_GMPAM", 1, a, 0, 0, 0, 0, 0);
4471*4b8b8d74SJaiprakash Singh }
4472*4b8b8d74SJaiprakash Singh
4473*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_GMPAM(a) ody_smmux_s_gmpam_t
4474*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_GMPAM(a) CSR_TYPE_NCB32b
4475*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_GMPAM(a) "SMMUX_S_GMPAM"
4476*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_GMPAM(a) 0x0 /* PF_BAR0 */
4477*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_GMPAM(a) (a)
4478*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_GMPAM(a) (a), -1, -1, -1
4479*4b8b8d74SJaiprakash Singh
4480*4b8b8d74SJaiprakash Singh /**
4481*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_idr0
4482*4b8b8d74SJaiprakash Singh *
4483*4b8b8d74SJaiprakash Singh * SMMU Secure IDR0 Register
4484*4b8b8d74SJaiprakash Singh */
4485*4b8b8d74SJaiprakash Singh union ody_smmux_s_idr0 {
4486*4b8b8d74SJaiprakash Singh uint32_t u;
4487*4b8b8d74SJaiprakash Singh struct ody_smmux_s_idr0_s {
4488*4b8b8d74SJaiprakash Singh uint32_t reserved_0_12 : 13;
4489*4b8b8d74SJaiprakash Singh uint32_t msi : 1;
4490*4b8b8d74SJaiprakash Singh uint32_t reserved_14_23 : 10;
4491*4b8b8d74SJaiprakash Singh uint32_t stall_model : 2;
4492*4b8b8d74SJaiprakash Singh uint32_t reserved_26_30 : 5;
4493*4b8b8d74SJaiprakash Singh uint32_t ecmdq : 1;
4494*4b8b8d74SJaiprakash Singh } s;
4495*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_idr0_s cn; */
4496*4b8b8d74SJaiprakash Singh };
4497*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_idr0 ody_smmux_s_idr0_t;
4498*4b8b8d74SJaiprakash Singh
4499*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IDR0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IDR0(uint64_t a)4500*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IDR0(uint64_t a)
4501*4b8b8d74SJaiprakash Singh {
4502*4b8b8d74SJaiprakash Singh if (a <= 3)
4503*4b8b8d74SJaiprakash Singh return 0x830000008000ll + 0x1000000000ll * ((a) & 0x3);
4504*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IDR0", 1, a, 0, 0, 0, 0, 0);
4505*4b8b8d74SJaiprakash Singh }
4506*4b8b8d74SJaiprakash Singh
4507*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IDR0(a) ody_smmux_s_idr0_t
4508*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IDR0(a) CSR_TYPE_NCB32b
4509*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IDR0(a) "SMMUX_S_IDR0"
4510*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IDR0(a) 0x0 /* PF_BAR0 */
4511*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IDR0(a) (a)
4512*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IDR0(a) (a), -1, -1, -1
4513*4b8b8d74SJaiprakash Singh
4514*4b8b8d74SJaiprakash Singh /**
4515*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_idr1
4516*4b8b8d74SJaiprakash Singh *
4517*4b8b8d74SJaiprakash Singh * SMMU Secure IDR1 Register
4518*4b8b8d74SJaiprakash Singh */
4519*4b8b8d74SJaiprakash Singh union ody_smmux_s_idr1 {
4520*4b8b8d74SJaiprakash Singh uint32_t u;
4521*4b8b8d74SJaiprakash Singh struct ody_smmux_s_idr1_s {
4522*4b8b8d74SJaiprakash Singh uint32_t s_sidsize : 6;
4523*4b8b8d74SJaiprakash Singh uint32_t reserved_6_28 : 23;
4524*4b8b8d74SJaiprakash Singh uint32_t sel2 : 1;
4525*4b8b8d74SJaiprakash Singh uint32_t reserved_30 : 1;
4526*4b8b8d74SJaiprakash Singh uint32_t secure_impl : 1;
4527*4b8b8d74SJaiprakash Singh } s;
4528*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_idr1_s cn; */
4529*4b8b8d74SJaiprakash Singh };
4530*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_idr1 ody_smmux_s_idr1_t;
4531*4b8b8d74SJaiprakash Singh
4532*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IDR1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IDR1(uint64_t a)4533*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IDR1(uint64_t a)
4534*4b8b8d74SJaiprakash Singh {
4535*4b8b8d74SJaiprakash Singh if (a <= 3)
4536*4b8b8d74SJaiprakash Singh return 0x830000008004ll + 0x1000000000ll * ((a) & 0x3);
4537*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IDR1", 1, a, 0, 0, 0, 0, 0);
4538*4b8b8d74SJaiprakash Singh }
4539*4b8b8d74SJaiprakash Singh
4540*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IDR1(a) ody_smmux_s_idr1_t
4541*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IDR1(a) CSR_TYPE_NCB32b
4542*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IDR1(a) "SMMUX_S_IDR1"
4543*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IDR1(a) 0x0 /* PF_BAR0 */
4544*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IDR1(a) (a)
4545*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IDR1(a) (a), -1, -1, -1
4546*4b8b8d74SJaiprakash Singh
4547*4b8b8d74SJaiprakash Singh /**
4548*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_idr2
4549*4b8b8d74SJaiprakash Singh *
4550*4b8b8d74SJaiprakash Singh * SMMU Secure IDR2 Register
4551*4b8b8d74SJaiprakash Singh */
4552*4b8b8d74SJaiprakash Singh union ody_smmux_s_idr2 {
4553*4b8b8d74SJaiprakash Singh uint32_t u;
4554*4b8b8d74SJaiprakash Singh struct ody_smmux_s_idr2_s {
4555*4b8b8d74SJaiprakash Singh uint32_t ba_s_vatos : 10;
4556*4b8b8d74SJaiprakash Singh uint32_t reserved_10_31 : 22;
4557*4b8b8d74SJaiprakash Singh } s;
4558*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_idr2_s cn; */
4559*4b8b8d74SJaiprakash Singh };
4560*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_idr2 ody_smmux_s_idr2_t;
4561*4b8b8d74SJaiprakash Singh
4562*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IDR2(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IDR2(uint64_t a)4563*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IDR2(uint64_t a)
4564*4b8b8d74SJaiprakash Singh {
4565*4b8b8d74SJaiprakash Singh if (a <= 3)
4566*4b8b8d74SJaiprakash Singh return 0x830000008008ll + 0x1000000000ll * ((a) & 0x3);
4567*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IDR2", 1, a, 0, 0, 0, 0, 0);
4568*4b8b8d74SJaiprakash Singh }
4569*4b8b8d74SJaiprakash Singh
4570*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IDR2(a) ody_smmux_s_idr2_t
4571*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IDR2(a) CSR_TYPE_NCB32b
4572*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IDR2(a) "SMMUX_S_IDR2"
4573*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IDR2(a) 0x0 /* PF_BAR0 */
4574*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IDR2(a) (a)
4575*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IDR2(a) (a), -1, -1, -1
4576*4b8b8d74SJaiprakash Singh
4577*4b8b8d74SJaiprakash Singh /**
4578*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_idr3
4579*4b8b8d74SJaiprakash Singh *
4580*4b8b8d74SJaiprakash Singh * SMMU Secure IDR3 Register
4581*4b8b8d74SJaiprakash Singh */
4582*4b8b8d74SJaiprakash Singh union ody_smmux_s_idr3 {
4583*4b8b8d74SJaiprakash Singh uint32_t u;
4584*4b8b8d74SJaiprakash Singh struct ody_smmux_s_idr3_s {
4585*4b8b8d74SJaiprakash Singh uint32_t reserved_0_5 : 6;
4586*4b8b8d74SJaiprakash Singh uint32_t sams : 1;
4587*4b8b8d74SJaiprakash Singh uint32_t reserved_7_31 : 25;
4588*4b8b8d74SJaiprakash Singh } s;
4589*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_idr3_s cn; */
4590*4b8b8d74SJaiprakash Singh };
4591*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_idr3 ody_smmux_s_idr3_t;
4592*4b8b8d74SJaiprakash Singh
4593*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IDR3(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IDR3(uint64_t a)4594*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IDR3(uint64_t a)
4595*4b8b8d74SJaiprakash Singh {
4596*4b8b8d74SJaiprakash Singh if (a <= 3)
4597*4b8b8d74SJaiprakash Singh return 0x83000000800cll + 0x1000000000ll * ((a) & 0x3);
4598*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IDR3", 1, a, 0, 0, 0, 0, 0);
4599*4b8b8d74SJaiprakash Singh }
4600*4b8b8d74SJaiprakash Singh
4601*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IDR3(a) ody_smmux_s_idr3_t
4602*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IDR3(a) CSR_TYPE_NCB32b
4603*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IDR3(a) "SMMUX_S_IDR3"
4604*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IDR3(a) 0x0 /* PF_BAR0 */
4605*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IDR3(a) (a)
4606*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IDR3(a) (a), -1, -1, -1
4607*4b8b8d74SJaiprakash Singh
4608*4b8b8d74SJaiprakash Singh /**
4609*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_idr4
4610*4b8b8d74SJaiprakash Singh *
4611*4b8b8d74SJaiprakash Singh * SMMU Secure IDR4 Register
4612*4b8b8d74SJaiprakash Singh */
4613*4b8b8d74SJaiprakash Singh union ody_smmux_s_idr4 {
4614*4b8b8d74SJaiprakash Singh uint32_t u;
4615*4b8b8d74SJaiprakash Singh struct ody_smmux_s_idr4_s {
4616*4b8b8d74SJaiprakash Singh uint32_t reserved_0_31 : 32;
4617*4b8b8d74SJaiprakash Singh } s;
4618*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_idr4_s cn; */
4619*4b8b8d74SJaiprakash Singh };
4620*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_idr4 ody_smmux_s_idr4_t;
4621*4b8b8d74SJaiprakash Singh
4622*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IDR4(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IDR4(uint64_t a)4623*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IDR4(uint64_t a)
4624*4b8b8d74SJaiprakash Singh {
4625*4b8b8d74SJaiprakash Singh if (a <= 3)
4626*4b8b8d74SJaiprakash Singh return 0x830000008010ll + 0x1000000000ll * ((a) & 0x3);
4627*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IDR4", 1, a, 0, 0, 0, 0, 0);
4628*4b8b8d74SJaiprakash Singh }
4629*4b8b8d74SJaiprakash Singh
4630*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IDR4(a) ody_smmux_s_idr4_t
4631*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IDR4(a) CSR_TYPE_NCB32b
4632*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IDR4(a) "SMMUX_S_IDR4"
4633*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IDR4(a) 0x0 /* PF_BAR0 */
4634*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IDR4(a) (a)
4635*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IDR4(a) (a), -1, -1, -1
4636*4b8b8d74SJaiprakash Singh
4637*4b8b8d74SJaiprakash Singh /**
4638*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_imp_actlr
4639*4b8b8d74SJaiprakash Singh *
4640*4b8b8d74SJaiprakash Singh * SMMU Auxiliary Control Register
4641*4b8b8d74SJaiprakash Singh */
4642*4b8b8d74SJaiprakash Singh union ody_smmux_s_imp_actlr {
4643*4b8b8d74SJaiprakash Singh uint32_t u;
4644*4b8b8d74SJaiprakash Singh struct ody_smmux_s_imp_actlr_s {
4645*4b8b8d74SJaiprakash Singh uint32_t qos : 4;
4646*4b8b8d74SJaiprakash Singh uint32_t reserved_4_31 : 28;
4647*4b8b8d74SJaiprakash Singh } s;
4648*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_imp_actlr_s cn; */
4649*4b8b8d74SJaiprakash Singh };
4650*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_imp_actlr ody_smmux_s_imp_actlr_t;
4651*4b8b8d74SJaiprakash Singh
4652*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_ACTLR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IMP_ACTLR(uint64_t a)4653*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_ACTLR(uint64_t a)
4654*4b8b8d74SJaiprakash Singh {
4655*4b8b8d74SJaiprakash Singh if (a <= 3)
4656*4b8b8d74SJaiprakash Singh return 0x830000008e10ll + 0x1000000000ll * ((a) & 0x3);
4657*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IMP_ACTLR", 1, a, 0, 0, 0, 0, 0);
4658*4b8b8d74SJaiprakash Singh }
4659*4b8b8d74SJaiprakash Singh
4660*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IMP_ACTLR(a) ody_smmux_s_imp_actlr_t
4661*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IMP_ACTLR(a) CSR_TYPE_NCB32b
4662*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IMP_ACTLR(a) "SMMUX_S_IMP_ACTLR"
4663*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IMP_ACTLR(a) 0x0 /* PF_BAR0 */
4664*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IMP_ACTLR(a) (a)
4665*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IMP_ACTLR(a) (a), -1, -1, -1
4666*4b8b8d74SJaiprakash Singh
4667*4b8b8d74SJaiprakash Singh /**
4668*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_imp_chicken_bits
4669*4b8b8d74SJaiprakash Singh *
4670*4b8b8d74SJaiprakash Singh * SMMU chicken bits Register
4671*4b8b8d74SJaiprakash Singh */
4672*4b8b8d74SJaiprakash Singh union ody_smmux_s_imp_chicken_bits {
4673*4b8b8d74SJaiprakash Singh uint32_t u;
4674*4b8b8d74SJaiprakash Singh struct ody_smmux_s_imp_chicken_bits_s {
4675*4b8b8d74SJaiprakash Singh uint32_t httu_chicken_bits : 2;
4676*4b8b8d74SJaiprakash Singh uint32_t wlk_dup_dis : 1;
4677*4b8b8d74SJaiprakash Singh uint32_t dwb_all : 1;
4678*4b8b8d74SJaiprakash Singh uint32_t ind_pnu_zero_enable : 1;
4679*4b8b8d74SJaiprakash Singh uint32_t reserved_5_7 : 3;
4680*4b8b8d74SJaiprakash Singh uint32_t pem_enable : 4;
4681*4b8b8d74SJaiprakash Singh uint32_t reserved_12_31 : 20;
4682*4b8b8d74SJaiprakash Singh } s;
4683*4b8b8d74SJaiprakash Singh struct ody_smmux_s_imp_chicken_bits_cn {
4684*4b8b8d74SJaiprakash Singh uint32_t httu_chicken_bits : 2;
4685*4b8b8d74SJaiprakash Singh uint32_t wlk_dup_dis : 1;
4686*4b8b8d74SJaiprakash Singh uint32_t dwb_all : 1;
4687*4b8b8d74SJaiprakash Singh uint32_t ind_pnu_zero_enable : 1;
4688*4b8b8d74SJaiprakash Singh uint32_t reserved_5_7 : 3;
4689*4b8b8d74SJaiprakash Singh uint32_t pem_enable : 4;
4690*4b8b8d74SJaiprakash Singh uint32_t reserved_12_15 : 4;
4691*4b8b8d74SJaiprakash Singh uint32_t reserved_16_31 : 16;
4692*4b8b8d74SJaiprakash Singh } cn;
4693*4b8b8d74SJaiprakash Singh };
4694*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_imp_chicken_bits ody_smmux_s_imp_chicken_bits_t;
4695*4b8b8d74SJaiprakash Singh
4696*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_CHICKEN_BITS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IMP_CHICKEN_BITS(uint64_t a)4697*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_CHICKEN_BITS(uint64_t a)
4698*4b8b8d74SJaiprakash Singh {
4699*4b8b8d74SJaiprakash Singh if (a <= 3)
4700*4b8b8d74SJaiprakash Singh return 0x830000008e78ll + 0x1000000000ll * ((a) & 0x3);
4701*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IMP_CHICKEN_BITS", 1, a, 0, 0, 0, 0, 0);
4702*4b8b8d74SJaiprakash Singh }
4703*4b8b8d74SJaiprakash Singh
4704*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IMP_CHICKEN_BITS(a) ody_smmux_s_imp_chicken_bits_t
4705*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IMP_CHICKEN_BITS(a) CSR_TYPE_NCB32b
4706*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IMP_CHICKEN_BITS(a) "SMMUX_S_IMP_CHICKEN_BITS"
4707*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IMP_CHICKEN_BITS(a) 0x0 /* PF_BAR0 */
4708*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IMP_CHICKEN_BITS(a) (a)
4709*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IMP_CHICKEN_BITS(a) (a), -1, -1, -1
4710*4b8b8d74SJaiprakash Singh
4711*4b8b8d74SJaiprakash Singh /**
4712*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_imp_diag_ctl
4713*4b8b8d74SJaiprakash Singh *
4714*4b8b8d74SJaiprakash Singh * SMMU Secure Diagnostic Control Register
4715*4b8b8d74SJaiprakash Singh */
4716*4b8b8d74SJaiprakash Singh union ody_smmux_s_imp_diag_ctl {
4717*4b8b8d74SJaiprakash Singh uint32_t u;
4718*4b8b8d74SJaiprakash Singh struct ody_smmux_s_imp_diag_ctl_s {
4719*4b8b8d74SJaiprakash Singh uint32_t walkers : 6;
4720*4b8b8d74SJaiprakash Singh uint32_t dis_wcs2 : 2;
4721*4b8b8d74SJaiprakash Singh uint32_t dis_wcs1 : 2;
4722*4b8b8d74SJaiprakash Singh uint32_t dis_tlb : 1;
4723*4b8b8d74SJaiprakash Singh uint32_t dis_cfc : 1;
4724*4b8b8d74SJaiprakash Singh uint32_t force_clks_active : 1;
4725*4b8b8d74SJaiprakash Singh uint32_t force_tlb_clk_active : 1;
4726*4b8b8d74SJaiprakash Singh uint32_t force_wlk_clk_active : 1;
4727*4b8b8d74SJaiprakash Singh uint32_t force_out_clk_active : 1;
4728*4b8b8d74SJaiprakash Singh uint32_t force_cmd_clk_active : 1;
4729*4b8b8d74SJaiprakash Singh uint32_t force_crs_clk_active : 1;
4730*4b8b8d74SJaiprakash Singh uint32_t force_csr_clk_active : 1;
4731*4b8b8d74SJaiprakash Singh uint32_t force_cra_clk_active : 1;
4732*4b8b8d74SJaiprakash Singh uint32_t force_inp_clk_active : 1;
4733*4b8b8d74SJaiprakash Singh uint32_t force_fxl_clk_active : 1;
4734*4b8b8d74SJaiprakash Singh uint32_t force_pri_clk_active : 1;
4735*4b8b8d74SJaiprakash Singh uint32_t force_atc_clk_active : 1;
4736*4b8b8d74SJaiprakash Singh uint32_t reserved_24_31 : 8;
4737*4b8b8d74SJaiprakash Singh } s;
4738*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_imp_diag_ctl_s cn; */
4739*4b8b8d74SJaiprakash Singh };
4740*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_imp_diag_ctl ody_smmux_s_imp_diag_ctl_t;
4741*4b8b8d74SJaiprakash Singh
4742*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_DIAG_CTL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IMP_DIAG_CTL(uint64_t a)4743*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_DIAG_CTL(uint64_t a)
4744*4b8b8d74SJaiprakash Singh {
4745*4b8b8d74SJaiprakash Singh if (a <= 3)
4746*4b8b8d74SJaiprakash Singh return 0x830000008e14ll + 0x1000000000ll * ((a) & 0x3);
4747*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IMP_DIAG_CTL", 1, a, 0, 0, 0, 0, 0);
4748*4b8b8d74SJaiprakash Singh }
4749*4b8b8d74SJaiprakash Singh
4750*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IMP_DIAG_CTL(a) ody_smmux_s_imp_diag_ctl_t
4751*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IMP_DIAG_CTL(a) CSR_TYPE_NCB32b
4752*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IMP_DIAG_CTL(a) "SMMUX_S_IMP_DIAG_CTL"
4753*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IMP_DIAG_CTL(a) 0x0 /* PF_BAR0 */
4754*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IMP_DIAG_CTL(a) (a)
4755*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IMP_DIAG_CTL(a) (a), -1, -1, -1
4756*4b8b8d74SJaiprakash Singh
4757*4b8b8d74SJaiprakash Singh /**
4758*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_imp_fifo_threshold
4759*4b8b8d74SJaiprakash Singh *
4760*4b8b8d74SJaiprakash Singh * SMMU FIFO Threshold Register
4761*4b8b8d74SJaiprakash Singh */
4762*4b8b8d74SJaiprakash Singh union ody_smmux_s_imp_fifo_threshold {
4763*4b8b8d74SJaiprakash Singh uint32_t u;
4764*4b8b8d74SJaiprakash Singh struct ody_smmux_s_imp_fifo_threshold_s {
4765*4b8b8d74SJaiprakash Singh uint32_t rpb_safety_threshold : 7;
4766*4b8b8d74SJaiprakash Singh uint32_t reserved_7_31 : 25;
4767*4b8b8d74SJaiprakash Singh } s;
4768*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_imp_fifo_threshold_s cn; */
4769*4b8b8d74SJaiprakash Singh };
4770*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_imp_fifo_threshold ody_smmux_s_imp_fifo_threshold_t;
4771*4b8b8d74SJaiprakash Singh
4772*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_FIFO_THRESHOLD(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IMP_FIFO_THRESHOLD(uint64_t a)4773*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_FIFO_THRESHOLD(uint64_t a)
4774*4b8b8d74SJaiprakash Singh {
4775*4b8b8d74SJaiprakash Singh if (a <= 3)
4776*4b8b8d74SJaiprakash Singh return 0x830000008e60ll + 0x1000000000ll * ((a) & 0x3);
4777*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IMP_FIFO_THRESHOLD", 1, a, 0, 0, 0, 0, 0);
4778*4b8b8d74SJaiprakash Singh }
4779*4b8b8d74SJaiprakash Singh
4780*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IMP_FIFO_THRESHOLD(a) ody_smmux_s_imp_fifo_threshold_t
4781*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IMP_FIFO_THRESHOLD(a) CSR_TYPE_NCB32b
4782*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IMP_FIFO_THRESHOLD(a) "SMMUX_S_IMP_FIFO_THRESHOLD"
4783*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IMP_FIFO_THRESHOLD(a) 0x0 /* PF_BAR0 */
4784*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IMP_FIFO_THRESHOLD(a) (a)
4785*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IMP_FIFO_THRESHOLD(a) (a), -1, -1, -1
4786*4b8b8d74SJaiprakash Singh
4787*4b8b8d74SJaiprakash Singh /**
4788*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_imp_long_rbi
4789*4b8b8d74SJaiprakash Singh *
4790*4b8b8d74SJaiprakash Singh * SMMU Range-based TLBI To Slow TLBI Conversion Register
4791*4b8b8d74SJaiprakash Singh * This register controls conversion of a range-based TLBI into a slow TLBI.
4792*4b8b8d74SJaiprakash Singh */
4793*4b8b8d74SJaiprakash Singh union ody_smmux_s_imp_long_rbi {
4794*4b8b8d74SJaiprakash Singh uint32_t u;
4795*4b8b8d74SJaiprakash Singh struct ody_smmux_s_imp_long_rbi_s {
4796*4b8b8d74SJaiprakash Singh uint32_t cmd_long_rbi_log2limit : 5;
4797*4b8b8d74SJaiprakash Singh uint32_t cmd_long_rbi_force_dis : 1;
4798*4b8b8d74SJaiprakash Singh uint32_t cmd_long_rbi_force_en : 1;
4799*4b8b8d74SJaiprakash Singh uint32_t reserved_7_15 : 9;
4800*4b8b8d74SJaiprakash Singh uint32_t dvm_long_rbi_log2limit : 5;
4801*4b8b8d74SJaiprakash Singh uint32_t dvm_long_rbi_force_dis : 1;
4802*4b8b8d74SJaiprakash Singh uint32_t dvm_long_rbi_force_en : 1;
4803*4b8b8d74SJaiprakash Singh uint32_t reserved_23_31 : 9;
4804*4b8b8d74SJaiprakash Singh } s;
4805*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_imp_long_rbi_s cn; */
4806*4b8b8d74SJaiprakash Singh };
4807*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_imp_long_rbi ody_smmux_s_imp_long_rbi_t;
4808*4b8b8d74SJaiprakash Singh
4809*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_LONG_RBI(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IMP_LONG_RBI(uint64_t a)4810*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_LONG_RBI(uint64_t a)
4811*4b8b8d74SJaiprakash Singh {
4812*4b8b8d74SJaiprakash Singh if (a <= 3)
4813*4b8b8d74SJaiprakash Singh return 0x830000008e70ll + 0x1000000000ll * ((a) & 0x3);
4814*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IMP_LONG_RBI", 1, a, 0, 0, 0, 0, 0);
4815*4b8b8d74SJaiprakash Singh }
4816*4b8b8d74SJaiprakash Singh
4817*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IMP_LONG_RBI(a) ody_smmux_s_imp_long_rbi_t
4818*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IMP_LONG_RBI(a) CSR_TYPE_NCB32b
4819*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IMP_LONG_RBI(a) "SMMUX_S_IMP_LONG_RBI"
4820*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IMP_LONG_RBI(a) 0x0 /* PF_BAR0 */
4821*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IMP_LONG_RBI(a) (a)
4822*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IMP_LONG_RBI(a) (a), -1, -1, -1
4823*4b8b8d74SJaiprakash Singh
4824*4b8b8d74SJaiprakash Singh /**
4825*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_imp_prefetch_addr_cap
4826*4b8b8d74SJaiprakash Singh *
4827*4b8b8d74SJaiprakash Singh * SMMU Prepeftc Addr Cap Register
4828*4b8b8d74SJaiprakash Singh */
4829*4b8b8d74SJaiprakash Singh union ody_smmux_s_imp_prefetch_addr_cap {
4830*4b8b8d74SJaiprakash Singh uint32_t u;
4831*4b8b8d74SJaiprakash Singh struct ody_smmux_s_imp_prefetch_addr_cap_s {
4832*4b8b8d74SJaiprakash Singh uint32_t prefetch_addr_cap : 5;
4833*4b8b8d74SJaiprakash Singh uint32_t prefetch_addr_cap_valid : 1;
4834*4b8b8d74SJaiprakash Singh uint32_t fxl_prefetch_dis : 1;
4835*4b8b8d74SJaiprakash Singh uint32_t reserved_7_31 : 25;
4836*4b8b8d74SJaiprakash Singh } s;
4837*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_imp_prefetch_addr_cap_s cn; */
4838*4b8b8d74SJaiprakash Singh };
4839*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_imp_prefetch_addr_cap ody_smmux_s_imp_prefetch_addr_cap_t;
4840*4b8b8d74SJaiprakash Singh
4841*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_PREFETCH_ADDR_CAP(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IMP_PREFETCH_ADDR_CAP(uint64_t a)4842*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_PREFETCH_ADDR_CAP(uint64_t a)
4843*4b8b8d74SJaiprakash Singh {
4844*4b8b8d74SJaiprakash Singh if (a <= 3)
4845*4b8b8d74SJaiprakash Singh return 0x830000008e88ll + 0x1000000000ll * ((a) & 0x3);
4846*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IMP_PREFETCH_ADDR_CAP", 1, a, 0, 0, 0, 0, 0);
4847*4b8b8d74SJaiprakash Singh }
4848*4b8b8d74SJaiprakash Singh
4849*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IMP_PREFETCH_ADDR_CAP(a) ody_smmux_s_imp_prefetch_addr_cap_t
4850*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IMP_PREFETCH_ADDR_CAP(a) CSR_TYPE_NCB32b
4851*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IMP_PREFETCH_ADDR_CAP(a) "SMMUX_S_IMP_PREFETCH_ADDR_CAP"
4852*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IMP_PREFETCH_ADDR_CAP(a) 0x0 /* PF_BAR0 */
4853*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IMP_PREFETCH_ADDR_CAP(a) (a)
4854*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IMP_PREFETCH_ADDR_CAP(a) (a), -1, -1, -1
4855*4b8b8d74SJaiprakash Singh
4856*4b8b8d74SJaiprakash Singh /**
4857*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_s_imp_ras_ctl
4858*4b8b8d74SJaiprakash Singh *
4859*4b8b8d74SJaiprakash Singh * SMMU RAS Control Register
4860*4b8b8d74SJaiprakash Singh */
4861*4b8b8d74SJaiprakash Singh union ody_smmux_s_imp_ras_ctl {
4862*4b8b8d74SJaiprakash Singh uint64_t u;
4863*4b8b8d74SJaiprakash Singh struct ody_smmux_s_imp_ras_ctl_s {
4864*4b8b8d74SJaiprakash Singh uint64_t rd_psn_ign : 1;
4865*4b8b8d74SJaiprakash Singh uint64_t reserved_1_63 : 63;
4866*4b8b8d74SJaiprakash Singh } s;
4867*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_imp_ras_ctl_s cn; */
4868*4b8b8d74SJaiprakash Singh };
4869*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_imp_ras_ctl ody_smmux_s_imp_ras_ctl_t;
4870*4b8b8d74SJaiprakash Singh
4871*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_RAS_CTL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IMP_RAS_CTL(uint64_t a)4872*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_RAS_CTL(uint64_t a)
4873*4b8b8d74SJaiprakash Singh {
4874*4b8b8d74SJaiprakash Singh if (a <= 3)
4875*4b8b8d74SJaiprakash Singh return 0x830000008e50ll + 0x1000000000ll * ((a) & 0x3);
4876*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IMP_RAS_CTL", 1, a, 0, 0, 0, 0, 0);
4877*4b8b8d74SJaiprakash Singh }
4878*4b8b8d74SJaiprakash Singh
4879*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IMP_RAS_CTL(a) ody_smmux_s_imp_ras_ctl_t
4880*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IMP_RAS_CTL(a) CSR_TYPE_NCB
4881*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IMP_RAS_CTL(a) "SMMUX_S_IMP_RAS_CTL"
4882*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IMP_RAS_CTL(a) 0x0 /* PF_BAR0 */
4883*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IMP_RAS_CTL(a) (a)
4884*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IMP_RAS_CTL(a) (a), -1, -1, -1
4885*4b8b8d74SJaiprakash Singh
4886*4b8b8d74SJaiprakash Singh /**
4887*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_imp_ras_int
4888*4b8b8d74SJaiprakash Singh *
4889*4b8b8d74SJaiprakash Singh * SMMU RAS Interrupt Register
4890*4b8b8d74SJaiprakash Singh */
4891*4b8b8d74SJaiprakash Singh union ody_smmux_s_imp_ras_int {
4892*4b8b8d74SJaiprakash Singh uint32_t u;
4893*4b8b8d74SJaiprakash Singh struct ody_smmux_s_imp_ras_int_s {
4894*4b8b8d74SJaiprakash Singh uint32_t ns_cmdq_psn : 1;
4895*4b8b8d74SJaiprakash Singh uint32_t s_cmdq_psn : 1;
4896*4b8b8d74SJaiprakash Singh uint32_t fetch_psn : 1;
4897*4b8b8d74SJaiprakash Singh uint32_t reserved_3_31 : 29;
4898*4b8b8d74SJaiprakash Singh } s;
4899*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_imp_ras_int_s cn; */
4900*4b8b8d74SJaiprakash Singh };
4901*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_imp_ras_int ody_smmux_s_imp_ras_int_t;
4902*4b8b8d74SJaiprakash Singh
4903*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_RAS_INT(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IMP_RAS_INT(uint64_t a)4904*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_RAS_INT(uint64_t a)
4905*4b8b8d74SJaiprakash Singh {
4906*4b8b8d74SJaiprakash Singh if (a <= 3)
4907*4b8b8d74SJaiprakash Singh return 0x830000008e20ll + 0x1000000000ll * ((a) & 0x3);
4908*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IMP_RAS_INT", 1, a, 0, 0, 0, 0, 0);
4909*4b8b8d74SJaiprakash Singh }
4910*4b8b8d74SJaiprakash Singh
4911*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IMP_RAS_INT(a) ody_smmux_s_imp_ras_int_t
4912*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IMP_RAS_INT(a) CSR_TYPE_NCB32b
4913*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IMP_RAS_INT(a) "SMMUX_S_IMP_RAS_INT"
4914*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IMP_RAS_INT(a) 0x0 /* PF_BAR0 */
4915*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IMP_RAS_INT(a) (a)
4916*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IMP_RAS_INT(a) (a), -1, -1, -1
4917*4b8b8d74SJaiprakash Singh
4918*4b8b8d74SJaiprakash Singh /**
4919*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_imp_ras_int_ena_w1c
4920*4b8b8d74SJaiprakash Singh *
4921*4b8b8d74SJaiprakash Singh * SMMU RAS Interrupt Enable Set Register
4922*4b8b8d74SJaiprakash Singh * This register clears interrupt enable bits.
4923*4b8b8d74SJaiprakash Singh */
4924*4b8b8d74SJaiprakash Singh union ody_smmux_s_imp_ras_int_ena_w1c {
4925*4b8b8d74SJaiprakash Singh uint32_t u;
4926*4b8b8d74SJaiprakash Singh struct ody_smmux_s_imp_ras_int_ena_w1c_s {
4927*4b8b8d74SJaiprakash Singh uint32_t ns_cmdq_psn : 1;
4928*4b8b8d74SJaiprakash Singh uint32_t s_cmdq_psn : 1;
4929*4b8b8d74SJaiprakash Singh uint32_t fetch_psn : 1;
4930*4b8b8d74SJaiprakash Singh uint32_t reserved_3_31 : 29;
4931*4b8b8d74SJaiprakash Singh } s;
4932*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_imp_ras_int_ena_w1c_s cn; */
4933*4b8b8d74SJaiprakash Singh };
4934*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_imp_ras_int_ena_w1c ody_smmux_s_imp_ras_int_ena_w1c_t;
4935*4b8b8d74SJaiprakash Singh
4936*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_RAS_INT_ENA_W1C(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IMP_RAS_INT_ENA_W1C(uint64_t a)4937*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_RAS_INT_ENA_W1C(uint64_t a)
4938*4b8b8d74SJaiprakash Singh {
4939*4b8b8d74SJaiprakash Singh if (a <= 3)
4940*4b8b8d74SJaiprakash Singh return 0x830000008e38ll + 0x1000000000ll * ((a) & 0x3);
4941*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IMP_RAS_INT_ENA_W1C", 1, a, 0, 0, 0, 0, 0);
4942*4b8b8d74SJaiprakash Singh }
4943*4b8b8d74SJaiprakash Singh
4944*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IMP_RAS_INT_ENA_W1C(a) ody_smmux_s_imp_ras_int_ena_w1c_t
4945*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IMP_RAS_INT_ENA_W1C(a) CSR_TYPE_NCB32b
4946*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IMP_RAS_INT_ENA_W1C(a) "SMMUX_S_IMP_RAS_INT_ENA_W1C"
4947*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IMP_RAS_INT_ENA_W1C(a) 0x0 /* PF_BAR0 */
4948*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IMP_RAS_INT_ENA_W1C(a) (a)
4949*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IMP_RAS_INT_ENA_W1C(a) (a), -1, -1, -1
4950*4b8b8d74SJaiprakash Singh
4951*4b8b8d74SJaiprakash Singh /**
4952*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_imp_ras_int_ena_w1s
4953*4b8b8d74SJaiprakash Singh *
4954*4b8b8d74SJaiprakash Singh * SMMU RAS Interrupt Enable Set Register
4955*4b8b8d74SJaiprakash Singh * This register sets interrupt enable bits.
4956*4b8b8d74SJaiprakash Singh */
4957*4b8b8d74SJaiprakash Singh union ody_smmux_s_imp_ras_int_ena_w1s {
4958*4b8b8d74SJaiprakash Singh uint32_t u;
4959*4b8b8d74SJaiprakash Singh struct ody_smmux_s_imp_ras_int_ena_w1s_s {
4960*4b8b8d74SJaiprakash Singh uint32_t ns_cmdq_psn : 1;
4961*4b8b8d74SJaiprakash Singh uint32_t s_cmdq_psn : 1;
4962*4b8b8d74SJaiprakash Singh uint32_t fetch_psn : 1;
4963*4b8b8d74SJaiprakash Singh uint32_t reserved_3_31 : 29;
4964*4b8b8d74SJaiprakash Singh } s;
4965*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_imp_ras_int_ena_w1s_s cn; */
4966*4b8b8d74SJaiprakash Singh };
4967*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_imp_ras_int_ena_w1s ody_smmux_s_imp_ras_int_ena_w1s_t;
4968*4b8b8d74SJaiprakash Singh
4969*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_RAS_INT_ENA_W1S(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IMP_RAS_INT_ENA_W1S(uint64_t a)4970*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_RAS_INT_ENA_W1S(uint64_t a)
4971*4b8b8d74SJaiprakash Singh {
4972*4b8b8d74SJaiprakash Singh if (a <= 3)
4973*4b8b8d74SJaiprakash Singh return 0x830000008e30ll + 0x1000000000ll * ((a) & 0x3);
4974*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IMP_RAS_INT_ENA_W1S", 1, a, 0, 0, 0, 0, 0);
4975*4b8b8d74SJaiprakash Singh }
4976*4b8b8d74SJaiprakash Singh
4977*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IMP_RAS_INT_ENA_W1S(a) ody_smmux_s_imp_ras_int_ena_w1s_t
4978*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IMP_RAS_INT_ENA_W1S(a) CSR_TYPE_NCB32b
4979*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IMP_RAS_INT_ENA_W1S(a) "SMMUX_S_IMP_RAS_INT_ENA_W1S"
4980*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IMP_RAS_INT_ENA_W1S(a) 0x0 /* PF_BAR0 */
4981*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IMP_RAS_INT_ENA_W1S(a) (a)
4982*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IMP_RAS_INT_ENA_W1S(a) (a), -1, -1, -1
4983*4b8b8d74SJaiprakash Singh
4984*4b8b8d74SJaiprakash Singh /**
4985*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_imp_ras_int_w1s
4986*4b8b8d74SJaiprakash Singh *
4987*4b8b8d74SJaiprakash Singh * SMMU RAS Interrupt Set Register
4988*4b8b8d74SJaiprakash Singh * This register sets interrupt bits.
4989*4b8b8d74SJaiprakash Singh */
4990*4b8b8d74SJaiprakash Singh union ody_smmux_s_imp_ras_int_w1s {
4991*4b8b8d74SJaiprakash Singh uint32_t u;
4992*4b8b8d74SJaiprakash Singh struct ody_smmux_s_imp_ras_int_w1s_s {
4993*4b8b8d74SJaiprakash Singh uint32_t ns_cmdq_psn : 1;
4994*4b8b8d74SJaiprakash Singh uint32_t s_cmdq_psn : 1;
4995*4b8b8d74SJaiprakash Singh uint32_t fetch_psn : 1;
4996*4b8b8d74SJaiprakash Singh uint32_t reserved_3_31 : 29;
4997*4b8b8d74SJaiprakash Singh } s;
4998*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_imp_ras_int_w1s_s cn; */
4999*4b8b8d74SJaiprakash Singh };
5000*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_imp_ras_int_w1s ody_smmux_s_imp_ras_int_w1s_t;
5001*4b8b8d74SJaiprakash Singh
5002*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_RAS_INT_W1S(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IMP_RAS_INT_W1S(uint64_t a)5003*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_RAS_INT_W1S(uint64_t a)
5004*4b8b8d74SJaiprakash Singh {
5005*4b8b8d74SJaiprakash Singh if (a <= 3)
5006*4b8b8d74SJaiprakash Singh return 0x830000008e28ll + 0x1000000000ll * ((a) & 0x3);
5007*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IMP_RAS_INT_W1S", 1, a, 0, 0, 0, 0, 0);
5008*4b8b8d74SJaiprakash Singh }
5009*4b8b8d74SJaiprakash Singh
5010*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IMP_RAS_INT_W1S(a) ody_smmux_s_imp_ras_int_w1s_t
5011*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IMP_RAS_INT_W1S(a) CSR_TYPE_NCB32b
5012*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IMP_RAS_INT_W1S(a) "SMMUX_S_IMP_RAS_INT_W1S"
5013*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IMP_RAS_INT_W1S(a) 0x0 /* PF_BAR0 */
5014*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IMP_RAS_INT_W1S(a) (a)
5015*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IMP_RAS_INT_W1S(a) (a), -1, -1, -1
5016*4b8b8d74SJaiprakash Singh
5017*4b8b8d74SJaiprakash Singh /**
5018*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_s_imp_ras_irq_cfg0
5019*4b8b8d74SJaiprakash Singh *
5020*4b8b8d74SJaiprakash Singh * SMMU RAS Interrupt 0 Register
5021*4b8b8d74SJaiprakash Singh */
5022*4b8b8d74SJaiprakash Singh union ody_smmux_s_imp_ras_irq_cfg0 {
5023*4b8b8d74SJaiprakash Singh uint64_t u;
5024*4b8b8d74SJaiprakash Singh struct ody_smmux_s_imp_ras_irq_cfg0_s {
5025*4b8b8d74SJaiprakash Singh uint64_t reserved_0_1 : 2;
5026*4b8b8d74SJaiprakash Singh uint64_t addr : 50;
5027*4b8b8d74SJaiprakash Singh uint64_t reserved_52_63 : 12;
5028*4b8b8d74SJaiprakash Singh } s;
5029*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_imp_ras_irq_cfg0_s cn; */
5030*4b8b8d74SJaiprakash Singh };
5031*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_imp_ras_irq_cfg0 ody_smmux_s_imp_ras_irq_cfg0_t;
5032*4b8b8d74SJaiprakash Singh
5033*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_RAS_IRQ_CFG0(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IMP_RAS_IRQ_CFG0(uint64_t a)5034*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_RAS_IRQ_CFG0(uint64_t a)
5035*4b8b8d74SJaiprakash Singh {
5036*4b8b8d74SJaiprakash Singh if (a <= 3)
5037*4b8b8d74SJaiprakash Singh return 0x830000008e40ll + 0x1000000000ll * ((a) & 0x3);
5038*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IMP_RAS_IRQ_CFG0", 1, a, 0, 0, 0, 0, 0);
5039*4b8b8d74SJaiprakash Singh }
5040*4b8b8d74SJaiprakash Singh
5041*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IMP_RAS_IRQ_CFG0(a) ody_smmux_s_imp_ras_irq_cfg0_t
5042*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IMP_RAS_IRQ_CFG0(a) CSR_TYPE_NCB
5043*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IMP_RAS_IRQ_CFG0(a) "SMMUX_S_IMP_RAS_IRQ_CFG0"
5044*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IMP_RAS_IRQ_CFG0(a) 0x0 /* PF_BAR0 */
5045*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IMP_RAS_IRQ_CFG0(a) (a)
5046*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IMP_RAS_IRQ_CFG0(a) (a), -1, -1, -1
5047*4b8b8d74SJaiprakash Singh
5048*4b8b8d74SJaiprakash Singh /**
5049*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_imp_ras_irq_cfg1
5050*4b8b8d74SJaiprakash Singh *
5051*4b8b8d74SJaiprakash Singh * SMMU RAS Interrupt 1 Register
5052*4b8b8d74SJaiprakash Singh */
5053*4b8b8d74SJaiprakash Singh union ody_smmux_s_imp_ras_irq_cfg1 {
5054*4b8b8d74SJaiprakash Singh uint32_t u;
5055*4b8b8d74SJaiprakash Singh struct ody_smmux_s_imp_ras_irq_cfg1_s {
5056*4b8b8d74SJaiprakash Singh uint32_t data : 32;
5057*4b8b8d74SJaiprakash Singh } s;
5058*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_imp_ras_irq_cfg1_s cn; */
5059*4b8b8d74SJaiprakash Singh };
5060*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_imp_ras_irq_cfg1 ody_smmux_s_imp_ras_irq_cfg1_t;
5061*4b8b8d74SJaiprakash Singh
5062*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_RAS_IRQ_CFG1(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IMP_RAS_IRQ_CFG1(uint64_t a)5063*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_RAS_IRQ_CFG1(uint64_t a)
5064*4b8b8d74SJaiprakash Singh {
5065*4b8b8d74SJaiprakash Singh if (a <= 3)
5066*4b8b8d74SJaiprakash Singh return 0x830000008e48ll + 0x1000000000ll * ((a) & 0x3);
5067*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IMP_RAS_IRQ_CFG1", 1, a, 0, 0, 0, 0, 0);
5068*4b8b8d74SJaiprakash Singh }
5069*4b8b8d74SJaiprakash Singh
5070*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IMP_RAS_IRQ_CFG1(a) ody_smmux_s_imp_ras_irq_cfg1_t
5071*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IMP_RAS_IRQ_CFG1(a) CSR_TYPE_NCB32b
5072*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IMP_RAS_IRQ_CFG1(a) "SMMUX_S_IMP_RAS_IRQ_CFG1"
5073*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IMP_RAS_IRQ_CFG1(a) 0x0 /* PF_BAR0 */
5074*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IMP_RAS_IRQ_CFG1(a) (a)
5075*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IMP_RAS_IRQ_CFG1(a) (a), -1, -1, -1
5076*4b8b8d74SJaiprakash Singh
5077*4b8b8d74SJaiprakash Singh /**
5078*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_imp_txn_arb_weight
5079*4b8b8d74SJaiprakash Singh *
5080*4b8b8d74SJaiprakash Singh * SMMU Translation Arbitration Weight Register
5081*4b8b8d74SJaiprakash Singh * This register contains weight values of arbitration between translation sources.
5082*4b8b8d74SJaiprakash Singh */
5083*4b8b8d74SJaiprakash Singh union ody_smmux_s_imp_txn_arb_weight {
5084*4b8b8d74SJaiprakash Singh uint32_t u;
5085*4b8b8d74SJaiprakash Singh struct ody_smmux_s_imp_txn_arb_weight_s {
5086*4b8b8d74SJaiprakash Singh uint32_t txn_iob : 16;
5087*4b8b8d74SJaiprakash Singh uint32_t imp_txn_src_weight : 1;
5088*4b8b8d74SJaiprakash Singh uint32_t reserved_17_31 : 15;
5089*4b8b8d74SJaiprakash Singh } s;
5090*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_imp_txn_arb_weight_s cn; */
5091*4b8b8d74SJaiprakash Singh };
5092*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_imp_txn_arb_weight ody_smmux_s_imp_txn_arb_weight_t;
5093*4b8b8d74SJaiprakash Singh
5094*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_TXN_ARB_WEIGHT(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IMP_TXN_ARB_WEIGHT(uint64_t a)5095*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_TXN_ARB_WEIGHT(uint64_t a)
5096*4b8b8d74SJaiprakash Singh {
5097*4b8b8d74SJaiprakash Singh if (a <= 3)
5098*4b8b8d74SJaiprakash Singh return 0x830000008e68ll + 0x1000000000ll * ((a) & 0x3);
5099*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IMP_TXN_ARB_WEIGHT", 1, a, 0, 0, 0, 0, 0);
5100*4b8b8d74SJaiprakash Singh }
5101*4b8b8d74SJaiprakash Singh
5102*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IMP_TXN_ARB_WEIGHT(a) ody_smmux_s_imp_txn_arb_weight_t
5103*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IMP_TXN_ARB_WEIGHT(a) CSR_TYPE_NCB32b
5104*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IMP_TXN_ARB_WEIGHT(a) "SMMUX_S_IMP_TXN_ARB_WEIGHT"
5105*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IMP_TXN_ARB_WEIGHT(a) 0x0 /* PF_BAR0 */
5106*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IMP_TXN_ARB_WEIGHT(a) (a)
5107*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IMP_TXN_ARB_WEIGHT(a) (a), -1, -1, -1
5108*4b8b8d74SJaiprakash Singh
5109*4b8b8d74SJaiprakash Singh /**
5110*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_imp_txreq_arb_weight
5111*4b8b8d74SJaiprakash Singh *
5112*4b8b8d74SJaiprakash Singh * SMMU Fetches Arbitration Weight Register
5113*4b8b8d74SJaiprakash Singh * This register contains weight values of arbitration between SMMU fetches and store to
5114*4b8b8d74SJaiprakash Singh * external memory.
5115*4b8b8d74SJaiprakash Singh */
5116*4b8b8d74SJaiprakash Singh union ody_smmux_s_imp_txreq_arb_weight {
5117*4b8b8d74SJaiprakash Singh uint32_t u;
5118*4b8b8d74SJaiprakash Singh struct ody_smmux_s_imp_txreq_arb_weight_s {
5119*4b8b8d74SJaiprakash Singh uint32_t imp_event_store : 2;
5120*4b8b8d74SJaiprakash Singh uint32_t imp_cmd_fetch : 2;
5121*4b8b8d74SJaiprakash Singh uint32_t imp_walker_fetch : 2;
5122*4b8b8d74SJaiprakash Singh uint32_t imp_pri_store : 2;
5123*4b8b8d74SJaiprakash Singh uint32_t reserved_8_31 : 24;
5124*4b8b8d74SJaiprakash Singh } s;
5125*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_imp_txreq_arb_weight_s cn; */
5126*4b8b8d74SJaiprakash Singh };
5127*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_imp_txreq_arb_weight ody_smmux_s_imp_txreq_arb_weight_t;
5128*4b8b8d74SJaiprakash Singh
5129*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_TXREQ_ARB_WEIGHT(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IMP_TXREQ_ARB_WEIGHT(uint64_t a)5130*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_TXREQ_ARB_WEIGHT(uint64_t a)
5131*4b8b8d74SJaiprakash Singh {
5132*4b8b8d74SJaiprakash Singh if (a <= 3)
5133*4b8b8d74SJaiprakash Singh return 0x830000008e6cll + 0x1000000000ll * ((a) & 0x3);
5134*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IMP_TXREQ_ARB_WEIGHT", 1, a, 0, 0, 0, 0, 0);
5135*4b8b8d74SJaiprakash Singh }
5136*4b8b8d74SJaiprakash Singh
5137*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IMP_TXREQ_ARB_WEIGHT(a) ody_smmux_s_imp_txreq_arb_weight_t
5138*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IMP_TXREQ_ARB_WEIGHT(a) CSR_TYPE_NCB32b
5139*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IMP_TXREQ_ARB_WEIGHT(a) "SMMUX_S_IMP_TXREQ_ARB_WEIGHT"
5140*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IMP_TXREQ_ARB_WEIGHT(a) 0x0 /* PF_BAR0 */
5141*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IMP_TXREQ_ARB_WEIGHT(a) (a)
5142*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IMP_TXREQ_ARB_WEIGHT(a) (a), -1, -1, -1
5143*4b8b8d74SJaiprakash Singh
5144*4b8b8d74SJaiprakash Singh /**
5145*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_imp_typ_arb_weight
5146*4b8b8d74SJaiprakash Singh *
5147*4b8b8d74SJaiprakash Singh * SMMU Translations Type Arbitration Weight Register
5148*4b8b8d74SJaiprakash Singh * This register contains weight values of arbitration between translation types.
5149*4b8b8d74SJaiprakash Singh */
5150*4b8b8d74SJaiprakash Singh union ody_smmux_s_imp_typ_arb_weight {
5151*4b8b8d74SJaiprakash Singh uint32_t u;
5152*4b8b8d74SJaiprakash Singh struct ody_smmux_s_imp_typ_arb_weight_s {
5153*4b8b8d74SJaiprakash Singh uint32_t imp_prefetch_s_prio : 3;
5154*4b8b8d74SJaiprakash Singh uint32_t imp_prefetch_ns_prio : 3;
5155*4b8b8d74SJaiprakash Singh uint32_t imp_gatos_s_prio : 3;
5156*4b8b8d74SJaiprakash Singh uint32_t imp_gatos_ns_prio : 3;
5157*4b8b8d74SJaiprakash Singh uint32_t imp_replay_prio : 3;
5158*4b8b8d74SJaiprakash Singh uint32_t imp_txn_prio : 3;
5159*4b8b8d74SJaiprakash Singh uint32_t reserved_18_31 : 14;
5160*4b8b8d74SJaiprakash Singh } s;
5161*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_imp_typ_arb_weight_s cn; */
5162*4b8b8d74SJaiprakash Singh };
5163*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_imp_typ_arb_weight ody_smmux_s_imp_typ_arb_weight_t;
5164*4b8b8d74SJaiprakash Singh
5165*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_TYP_ARB_WEIGHT(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IMP_TYP_ARB_WEIGHT(uint64_t a)5166*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_TYP_ARB_WEIGHT(uint64_t a)
5167*4b8b8d74SJaiprakash Singh {
5168*4b8b8d74SJaiprakash Singh if (a <= 3)
5169*4b8b8d74SJaiprakash Singh return 0x830000008e64ll + 0x1000000000ll * ((a) & 0x3);
5170*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IMP_TYP_ARB_WEIGHT", 1, a, 0, 0, 0, 0, 0);
5171*4b8b8d74SJaiprakash Singh }
5172*4b8b8d74SJaiprakash Singh
5173*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IMP_TYP_ARB_WEIGHT(a) ody_smmux_s_imp_typ_arb_weight_t
5174*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IMP_TYP_ARB_WEIGHT(a) CSR_TYPE_NCB32b
5175*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IMP_TYP_ARB_WEIGHT(a) "SMMUX_S_IMP_TYP_ARB_WEIGHT"
5176*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IMP_TYP_ARB_WEIGHT(a) 0x0 /* PF_BAR0 */
5177*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IMP_TYP_ARB_WEIGHT(a) (a)
5178*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IMP_TYP_ARB_WEIGHT(a) (a), -1, -1, -1
5179*4b8b8d74SJaiprakash Singh
5180*4b8b8d74SJaiprakash Singh /**
5181*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_imp_wlk_dis
5182*4b8b8d74SJaiprakash Singh *
5183*4b8b8d74SJaiprakash Singh * SMMU Walker Disable Register
5184*4b8b8d74SJaiprakash Singh */
5185*4b8b8d74SJaiprakash Singh union ody_smmux_s_imp_wlk_dis {
5186*4b8b8d74SJaiprakash Singh uint32_t u;
5187*4b8b8d74SJaiprakash Singh struct ody_smmux_s_imp_wlk_dis_s {
5188*4b8b8d74SJaiprakash Singh uint32_t wlk_dis : 32;
5189*4b8b8d74SJaiprakash Singh } s;
5190*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_imp_wlk_dis_s cn; */
5191*4b8b8d74SJaiprakash Singh };
5192*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_imp_wlk_dis ody_smmux_s_imp_wlk_dis_t;
5193*4b8b8d74SJaiprakash Singh
5194*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_WLK_DIS(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IMP_WLK_DIS(uint64_t a)5195*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_WLK_DIS(uint64_t a)
5196*4b8b8d74SJaiprakash Singh {
5197*4b8b8d74SJaiprakash Singh if (a <= 3)
5198*4b8b8d74SJaiprakash Singh return 0x830000008e80ll + 0x1000000000ll * ((a) & 0x3);
5199*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IMP_WLK_DIS", 1, a, 0, 0, 0, 0, 0);
5200*4b8b8d74SJaiprakash Singh }
5201*4b8b8d74SJaiprakash Singh
5202*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IMP_WLK_DIS(a) ody_smmux_s_imp_wlk_dis_t
5203*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IMP_WLK_DIS(a) CSR_TYPE_NCB32b
5204*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IMP_WLK_DIS(a) "SMMUX_S_IMP_WLK_DIS"
5205*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IMP_WLK_DIS(a) 0x0 /* PF_BAR0 */
5206*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IMP_WLK_DIS(a) (a)
5207*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IMP_WLK_DIS(a) (a), -1, -1, -1
5208*4b8b8d74SJaiprakash Singh
5209*4b8b8d74SJaiprakash Singh /**
5210*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_imp_wlk_skip_lu
5211*4b8b8d74SJaiprakash Singh *
5212*4b8b8d74SJaiprakash Singh * SMMU Walker Skip Look Up Register
5213*4b8b8d74SJaiprakash Singh */
5214*4b8b8d74SJaiprakash Singh union ody_smmux_s_imp_wlk_skip_lu {
5215*4b8b8d74SJaiprakash Singh uint32_t u;
5216*4b8b8d74SJaiprakash Singh struct ody_smmux_s_imp_wlk_skip_lu_s {
5217*4b8b8d74SJaiprakash Singh uint32_t skip : 31;
5218*4b8b8d74SJaiprakash Singh uint32_t reserved_31 : 1;
5219*4b8b8d74SJaiprakash Singh } s;
5220*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_imp_wlk_skip_lu_s cn; */
5221*4b8b8d74SJaiprakash Singh };
5222*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_imp_wlk_skip_lu ody_smmux_s_imp_wlk_skip_lu_t;
5223*4b8b8d74SJaiprakash Singh
5224*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_WLK_SKIP_LU(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IMP_WLK_SKIP_LU(uint64_t a)5225*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IMP_WLK_SKIP_LU(uint64_t a)
5226*4b8b8d74SJaiprakash Singh {
5227*4b8b8d74SJaiprakash Singh if (a <= 3)
5228*4b8b8d74SJaiprakash Singh return 0x830000008e84ll + 0x1000000000ll * ((a) & 0x3);
5229*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IMP_WLK_SKIP_LU", 1, a, 0, 0, 0, 0, 0);
5230*4b8b8d74SJaiprakash Singh }
5231*4b8b8d74SJaiprakash Singh
5232*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IMP_WLK_SKIP_LU(a) ody_smmux_s_imp_wlk_skip_lu_t
5233*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IMP_WLK_SKIP_LU(a) CSR_TYPE_NCB32b
5234*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IMP_WLK_SKIP_LU(a) "SMMUX_S_IMP_WLK_SKIP_LU"
5235*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IMP_WLK_SKIP_LU(a) 0x0 /* PF_BAR0 */
5236*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IMP_WLK_SKIP_LU(a) (a)
5237*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IMP_WLK_SKIP_LU(a) (a), -1, -1, -1
5238*4b8b8d74SJaiprakash Singh
5239*4b8b8d74SJaiprakash Singh /**
5240*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_init
5241*4b8b8d74SJaiprakash Singh *
5242*4b8b8d74SJaiprakash Singh * SMMU Secure INIT Register
5243*4b8b8d74SJaiprakash Singh */
5244*4b8b8d74SJaiprakash Singh union ody_smmux_s_init {
5245*4b8b8d74SJaiprakash Singh uint32_t u;
5246*4b8b8d74SJaiprakash Singh struct ody_smmux_s_init_s {
5247*4b8b8d74SJaiprakash Singh uint32_t inv_all : 1;
5248*4b8b8d74SJaiprakash Singh uint32_t reserved_1_31 : 31;
5249*4b8b8d74SJaiprakash Singh } s;
5250*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_init_s cn; */
5251*4b8b8d74SJaiprakash Singh };
5252*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_init ody_smmux_s_init_t;
5253*4b8b8d74SJaiprakash Singh
5254*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_INIT(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_INIT(uint64_t a)5255*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_INIT(uint64_t a)
5256*4b8b8d74SJaiprakash Singh {
5257*4b8b8d74SJaiprakash Singh if (a <= 3)
5258*4b8b8d74SJaiprakash Singh return 0x83000000803cll + 0x1000000000ll * ((a) & 0x3);
5259*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_INIT", 1, a, 0, 0, 0, 0, 0);
5260*4b8b8d74SJaiprakash Singh }
5261*4b8b8d74SJaiprakash Singh
5262*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_INIT(a) ody_smmux_s_init_t
5263*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_INIT(a) CSR_TYPE_NCB32b
5264*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_INIT(a) "SMMUX_S_INIT"
5265*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_INIT(a) 0x0 /* PF_BAR0 */
5266*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_INIT(a) (a)
5267*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_INIT(a) (a), -1, -1, -1
5268*4b8b8d74SJaiprakash Singh
5269*4b8b8d74SJaiprakash Singh /**
5270*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_irq_ctrl
5271*4b8b8d74SJaiprakash Singh *
5272*4b8b8d74SJaiprakash Singh * SMMU Secure IRQ Control Register
5273*4b8b8d74SJaiprakash Singh * An update to a field in SMMU()_S_IRQ_CTRL is not considered complete, along with any
5274*4b8b8d74SJaiprakash Singh * side-effects, until the respective field in SMMU()_S_IRQ_CTRLACK is observed to take
5275*4b8b8d74SJaiprakash Singh * the new value.
5276*4b8b8d74SJaiprakash Singh */
5277*4b8b8d74SJaiprakash Singh union ody_smmux_s_irq_ctrl {
5278*4b8b8d74SJaiprakash Singh uint32_t u;
5279*4b8b8d74SJaiprakash Singh struct ody_smmux_s_irq_ctrl_s {
5280*4b8b8d74SJaiprakash Singh uint32_t gerror_irqen : 1;
5281*4b8b8d74SJaiprakash Singh uint32_t reserved_1 : 1;
5282*4b8b8d74SJaiprakash Singh uint32_t eventq_irqen : 1;
5283*4b8b8d74SJaiprakash Singh uint32_t reserved_3_31 : 29;
5284*4b8b8d74SJaiprakash Singh } s;
5285*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_irq_ctrl_s cn; */
5286*4b8b8d74SJaiprakash Singh };
5287*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_irq_ctrl ody_smmux_s_irq_ctrl_t;
5288*4b8b8d74SJaiprakash Singh
5289*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IRQ_CTRL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IRQ_CTRL(uint64_t a)5290*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IRQ_CTRL(uint64_t a)
5291*4b8b8d74SJaiprakash Singh {
5292*4b8b8d74SJaiprakash Singh if (a <= 3)
5293*4b8b8d74SJaiprakash Singh return 0x830000008050ll + 0x1000000000ll * ((a) & 0x3);
5294*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IRQ_CTRL", 1, a, 0, 0, 0, 0, 0);
5295*4b8b8d74SJaiprakash Singh }
5296*4b8b8d74SJaiprakash Singh
5297*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IRQ_CTRL(a) ody_smmux_s_irq_ctrl_t
5298*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IRQ_CTRL(a) CSR_TYPE_NCB32b
5299*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IRQ_CTRL(a) "SMMUX_S_IRQ_CTRL"
5300*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IRQ_CTRL(a) 0x0 /* PF_BAR0 */
5301*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IRQ_CTRL(a) (a)
5302*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IRQ_CTRL(a) (a), -1, -1, -1
5303*4b8b8d74SJaiprakash Singh
5304*4b8b8d74SJaiprakash Singh /**
5305*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_irq_ctrlack
5306*4b8b8d74SJaiprakash Singh *
5307*4b8b8d74SJaiprakash Singh * SMMU Secure IRQ Control Acknowledgement Register
5308*4b8b8d74SJaiprakash Singh * This register is a read-only copy of SMMU()_S_IRQ_CTRL.
5309*4b8b8d74SJaiprakash Singh */
5310*4b8b8d74SJaiprakash Singh union ody_smmux_s_irq_ctrlack {
5311*4b8b8d74SJaiprakash Singh uint32_t u;
5312*4b8b8d74SJaiprakash Singh struct ody_smmux_s_irq_ctrlack_s {
5313*4b8b8d74SJaiprakash Singh uint32_t gerror_irqen : 1;
5314*4b8b8d74SJaiprakash Singh uint32_t reserved_1 : 1;
5315*4b8b8d74SJaiprakash Singh uint32_t eventq_irqen : 1;
5316*4b8b8d74SJaiprakash Singh uint32_t reserved_3_31 : 29;
5317*4b8b8d74SJaiprakash Singh } s;
5318*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_irq_ctrlack_s cn; */
5319*4b8b8d74SJaiprakash Singh };
5320*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_irq_ctrlack ody_smmux_s_irq_ctrlack_t;
5321*4b8b8d74SJaiprakash Singh
5322*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IRQ_CTRLACK(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_IRQ_CTRLACK(uint64_t a)5323*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_IRQ_CTRLACK(uint64_t a)
5324*4b8b8d74SJaiprakash Singh {
5325*4b8b8d74SJaiprakash Singh if (a <= 3)
5326*4b8b8d74SJaiprakash Singh return 0x830000008054ll + 0x1000000000ll * ((a) & 0x3);
5327*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_IRQ_CTRLACK", 1, a, 0, 0, 0, 0, 0);
5328*4b8b8d74SJaiprakash Singh }
5329*4b8b8d74SJaiprakash Singh
5330*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_IRQ_CTRLACK(a) ody_smmux_s_irq_ctrlack_t
5331*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_IRQ_CTRLACK(a) CSR_TYPE_NCB32b
5332*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_IRQ_CTRLACK(a) "SMMUX_S_IRQ_CTRLACK"
5333*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_IRQ_CTRLACK(a) 0x0 /* PF_BAR0 */
5334*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_IRQ_CTRLACK(a) (a)
5335*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_IRQ_CTRLACK(a) (a), -1, -1, -1
5336*4b8b8d74SJaiprakash Singh
5337*4b8b8d74SJaiprakash Singh /**
5338*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_mpamidr
5339*4b8b8d74SJaiprakash Singh *
5340*4b8b8d74SJaiprakash Singh * MPAM capability identification for secure state Register
5341*4b8b8d74SJaiprakash Singh */
5342*4b8b8d74SJaiprakash Singh union ody_smmux_s_mpamidr {
5343*4b8b8d74SJaiprakash Singh uint32_t u;
5344*4b8b8d74SJaiprakash Singh struct ody_smmux_s_mpamidr_s {
5345*4b8b8d74SJaiprakash Singh uint32_t partid_max : 16;
5346*4b8b8d74SJaiprakash Singh uint32_t pmg_max : 8;
5347*4b8b8d74SJaiprakash Singh uint32_t reserved_24 : 1;
5348*4b8b8d74SJaiprakash Singh uint32_t has_mpam_ns : 1;
5349*4b8b8d74SJaiprakash Singh uint32_t reserved_26_31 : 6;
5350*4b8b8d74SJaiprakash Singh } s;
5351*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_mpamidr_s cn; */
5352*4b8b8d74SJaiprakash Singh };
5353*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_mpamidr ody_smmux_s_mpamidr_t;
5354*4b8b8d74SJaiprakash Singh
5355*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_MPAMIDR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_MPAMIDR(uint64_t a)5356*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_MPAMIDR(uint64_t a)
5357*4b8b8d74SJaiprakash Singh {
5358*4b8b8d74SJaiprakash Singh if (a <= 3)
5359*4b8b8d74SJaiprakash Singh return 0x830000008130ll + 0x1000000000ll * ((a) & 0x3);
5360*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_MPAMIDR", 1, a, 0, 0, 0, 0, 0);
5361*4b8b8d74SJaiprakash Singh }
5362*4b8b8d74SJaiprakash Singh
5363*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_MPAMIDR(a) ody_smmux_s_mpamidr_t
5364*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_MPAMIDR(a) CSR_TYPE_NCB32b
5365*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_MPAMIDR(a) "SMMUX_S_MPAMIDR"
5366*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_MPAMIDR(a) 0x0 /* PF_BAR0 */
5367*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_MPAMIDR(a) (a)
5368*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_MPAMIDR(a) (a), -1, -1, -1
5369*4b8b8d74SJaiprakash Singh
5370*4b8b8d74SJaiprakash Singh /**
5371*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_s_strtab_base
5372*4b8b8d74SJaiprakash Singh *
5373*4b8b8d74SJaiprakash Singh * SMMU Secure STRTAB Base Register
5374*4b8b8d74SJaiprakash Singh */
5375*4b8b8d74SJaiprakash Singh union ody_smmux_s_strtab_base {
5376*4b8b8d74SJaiprakash Singh uint64_t u;
5377*4b8b8d74SJaiprakash Singh struct ody_smmux_s_strtab_base_s {
5378*4b8b8d74SJaiprakash Singh uint64_t reserved_0_5 : 6;
5379*4b8b8d74SJaiprakash Singh uint64_t addr : 46;
5380*4b8b8d74SJaiprakash Singh uint64_t reserved_52_61 : 10;
5381*4b8b8d74SJaiprakash Singh uint64_t ra : 1;
5382*4b8b8d74SJaiprakash Singh uint64_t reserved_63 : 1;
5383*4b8b8d74SJaiprakash Singh } s;
5384*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_strtab_base_s cn; */
5385*4b8b8d74SJaiprakash Singh };
5386*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_strtab_base ody_smmux_s_strtab_base_t;
5387*4b8b8d74SJaiprakash Singh
5388*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_STRTAB_BASE(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_STRTAB_BASE(uint64_t a)5389*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_STRTAB_BASE(uint64_t a)
5390*4b8b8d74SJaiprakash Singh {
5391*4b8b8d74SJaiprakash Singh if (a <= 3)
5392*4b8b8d74SJaiprakash Singh return 0x830000008080ll + 0x1000000000ll * ((a) & 0x3);
5393*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_STRTAB_BASE", 1, a, 0, 0, 0, 0, 0);
5394*4b8b8d74SJaiprakash Singh }
5395*4b8b8d74SJaiprakash Singh
5396*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_STRTAB_BASE(a) ody_smmux_s_strtab_base_t
5397*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_STRTAB_BASE(a) CSR_TYPE_NCB
5398*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_STRTAB_BASE(a) "SMMUX_S_STRTAB_BASE"
5399*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_STRTAB_BASE(a) 0x0 /* PF_BAR0 */
5400*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_STRTAB_BASE(a) (a)
5401*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_STRTAB_BASE(a) (a), -1, -1, -1
5402*4b8b8d74SJaiprakash Singh
5403*4b8b8d74SJaiprakash Singh /**
5404*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_s_strtab_base_cfg
5405*4b8b8d74SJaiprakash Singh *
5406*4b8b8d74SJaiprakash Singh * SMMU Secure Command Queue Base Register
5407*4b8b8d74SJaiprakash Singh * SMMU()_S_STRTAB_BASE_CFG is guarded by the respective SMMU()_S_CR0[SMMUEN] and
5408*4b8b8d74SJaiprakash Singh * must only be modified when SMMU()_S_CR0[SMMUEN]=0. A write whilst
5409*4b8b8d74SJaiprakash Singh * SMMU()_S_CR0[SMMUEN]=1 is constrained unpredictable and has one of the following
5410*4b8b8d74SJaiprakash Singh * behaviors:
5411*4b8b8d74SJaiprakash Singh *
5412*4b8b8d74SJaiprakash Singh * * The register takes on any value, which might cause STEs to be fetched from an unpredictable
5413*4b8b8d74SJaiprakash Singh * address.
5414*4b8b8d74SJaiprakash Singh *
5415*4b8b8d74SJaiprakash Singh * * The write is ignored.
5416*4b8b8d74SJaiprakash Singh *
5417*4b8b8d74SJaiprakash Singh * A read following such a write will return an unknown value.
5418*4b8b8d74SJaiprakash Singh *
5419*4b8b8d74SJaiprakash Singh * Use of any reserved value or unsupported value combination in this register (for
5420*4b8b8d74SJaiprakash Singh * example, selection of a two-level table when unsupported where
5421*4b8b8d74SJaiprakash Singh * SMMU()_IDR0[ST_LEVEL]=0x0) causes the stream table to become inaccessible; a
5422*4b8b8d74SJaiprakash Singh * transaction causing a lookup of an STE is terminated with abort and a SMMU_C_BAD_STREAMID_S
5423*4b8b8d74SJaiprakash Singh * event recorded.
5424*4b8b8d74SJaiprakash Singh */
5425*4b8b8d74SJaiprakash Singh union ody_smmux_s_strtab_base_cfg {
5426*4b8b8d74SJaiprakash Singh uint32_t u;
5427*4b8b8d74SJaiprakash Singh struct ody_smmux_s_strtab_base_cfg_s {
5428*4b8b8d74SJaiprakash Singh uint32_t log2size : 6;
5429*4b8b8d74SJaiprakash Singh uint32_t split : 5;
5430*4b8b8d74SJaiprakash Singh uint32_t reserved_11_15 : 5;
5431*4b8b8d74SJaiprakash Singh uint32_t fmt : 2;
5432*4b8b8d74SJaiprakash Singh uint32_t reserved_18_31 : 14;
5433*4b8b8d74SJaiprakash Singh } s;
5434*4b8b8d74SJaiprakash Singh /* struct ody_smmux_s_strtab_base_cfg_s cn; */
5435*4b8b8d74SJaiprakash Singh };
5436*4b8b8d74SJaiprakash Singh typedef union ody_smmux_s_strtab_base_cfg ody_smmux_s_strtab_base_cfg_t;
5437*4b8b8d74SJaiprakash Singh
5438*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_STRTAB_BASE_CFG(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_S_STRTAB_BASE_CFG(uint64_t a)5439*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_S_STRTAB_BASE_CFG(uint64_t a)
5440*4b8b8d74SJaiprakash Singh {
5441*4b8b8d74SJaiprakash Singh if (a <= 3)
5442*4b8b8d74SJaiprakash Singh return 0x830000008088ll + 0x1000000000ll * ((a) & 0x3);
5443*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_S_STRTAB_BASE_CFG", 1, a, 0, 0, 0, 0, 0);
5444*4b8b8d74SJaiprakash Singh }
5445*4b8b8d74SJaiprakash Singh
5446*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_S_STRTAB_BASE_CFG(a) ody_smmux_s_strtab_base_cfg_t
5447*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_S_STRTAB_BASE_CFG(a) CSR_TYPE_NCB32b
5448*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_S_STRTAB_BASE_CFG(a) "SMMUX_S_STRTAB_BASE_CFG"
5449*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_S_STRTAB_BASE_CFG(a) 0x0 /* PF_BAR0 */
5450*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_S_STRTAB_BASE_CFG(a) (a)
5451*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_S_STRTAB_BASE_CFG(a) (a), -1, -1, -1
5452*4b8b8d74SJaiprakash Singh
5453*4b8b8d74SJaiprakash Singh /**
5454*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_statusr
5455*4b8b8d74SJaiprakash Singh *
5456*4b8b8d74SJaiprakash Singh * SMMU Status Register
5457*4b8b8d74SJaiprakash Singh */
5458*4b8b8d74SJaiprakash Singh union ody_smmux_statusr {
5459*4b8b8d74SJaiprakash Singh uint32_t u;
5460*4b8b8d74SJaiprakash Singh struct ody_smmux_statusr_s {
5461*4b8b8d74SJaiprakash Singh uint32_t dormant : 1;
5462*4b8b8d74SJaiprakash Singh uint32_t reserved_1_31 : 31;
5463*4b8b8d74SJaiprakash Singh } s;
5464*4b8b8d74SJaiprakash Singh /* struct ody_smmux_statusr_s cn; */
5465*4b8b8d74SJaiprakash Singh };
5466*4b8b8d74SJaiprakash Singh typedef union ody_smmux_statusr ody_smmux_statusr_t;
5467*4b8b8d74SJaiprakash Singh
5468*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_STATUSR(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_STATUSR(uint64_t a)5469*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_STATUSR(uint64_t a)
5470*4b8b8d74SJaiprakash Singh {
5471*4b8b8d74SJaiprakash Singh if (a <= 3)
5472*4b8b8d74SJaiprakash Singh return 0x830000000040ll + 0x1000000000ll * ((a) & 0x3);
5473*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_STATUSR", 1, a, 0, 0, 0, 0, 0);
5474*4b8b8d74SJaiprakash Singh }
5475*4b8b8d74SJaiprakash Singh
5476*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_STATUSR(a) ody_smmux_statusr_t
5477*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_STATUSR(a) CSR_TYPE_NCB32b
5478*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_STATUSR(a) "SMMUX_STATUSR"
5479*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_STATUSR(a) 0x0 /* PF_BAR0 */
5480*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_STATUSR(a) (a)
5481*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_STATUSR(a) (a), -1, -1, -1
5482*4b8b8d74SJaiprakash Singh
5483*4b8b8d74SJaiprakash Singh /**
5484*4b8b8d74SJaiprakash Singh * Register (NCB) smmu#_strtab_base
5485*4b8b8d74SJaiprakash Singh *
5486*4b8b8d74SJaiprakash Singh * SMMU Stream Table Base Register
5487*4b8b8d74SJaiprakash Singh */
5488*4b8b8d74SJaiprakash Singh union ody_smmux_strtab_base {
5489*4b8b8d74SJaiprakash Singh uint64_t u;
5490*4b8b8d74SJaiprakash Singh struct ody_smmux_strtab_base_s {
5491*4b8b8d74SJaiprakash Singh uint64_t reserved_0_5 : 6;
5492*4b8b8d74SJaiprakash Singh uint64_t addr : 46;
5493*4b8b8d74SJaiprakash Singh uint64_t reserved_52_61 : 10;
5494*4b8b8d74SJaiprakash Singh uint64_t ra : 1;
5495*4b8b8d74SJaiprakash Singh uint64_t reserved_63 : 1;
5496*4b8b8d74SJaiprakash Singh } s;
5497*4b8b8d74SJaiprakash Singh /* struct ody_smmux_strtab_base_s cn; */
5498*4b8b8d74SJaiprakash Singh };
5499*4b8b8d74SJaiprakash Singh typedef union ody_smmux_strtab_base ody_smmux_strtab_base_t;
5500*4b8b8d74SJaiprakash Singh
5501*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_STRTAB_BASE(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_STRTAB_BASE(uint64_t a)5502*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_STRTAB_BASE(uint64_t a)
5503*4b8b8d74SJaiprakash Singh {
5504*4b8b8d74SJaiprakash Singh if (a <= 3)
5505*4b8b8d74SJaiprakash Singh return 0x830000000080ll + 0x1000000000ll * ((a) & 0x3);
5506*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_STRTAB_BASE", 1, a, 0, 0, 0, 0, 0);
5507*4b8b8d74SJaiprakash Singh }
5508*4b8b8d74SJaiprakash Singh
5509*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_STRTAB_BASE(a) ody_smmux_strtab_base_t
5510*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_STRTAB_BASE(a) CSR_TYPE_NCB
5511*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_STRTAB_BASE(a) "SMMUX_STRTAB_BASE"
5512*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_STRTAB_BASE(a) 0x0 /* PF_BAR0 */
5513*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_STRTAB_BASE(a) (a)
5514*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_STRTAB_BASE(a) (a), -1, -1, -1
5515*4b8b8d74SJaiprakash Singh
5516*4b8b8d74SJaiprakash Singh /**
5517*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_strtab_base_cfg
5518*4b8b8d74SJaiprakash Singh *
5519*4b8b8d74SJaiprakash Singh * SMMU Stream Table Base Configuration Register
5520*4b8b8d74SJaiprakash Singh * SMMU()_S_STRTAB_BASE_CFG is guarded by the respective SMMU()_S_CR0[SMMUEN] and
5521*4b8b8d74SJaiprakash Singh * must only be modified when SMMU()_S_CR0[SMMUEN]=0. A write whilst
5522*4b8b8d74SJaiprakash Singh * SMMU()_S_CR0[SMMUEN]=1 is constrained unpredictable and has one of the following
5523*4b8b8d74SJaiprakash Singh * behaviors:
5524*4b8b8d74SJaiprakash Singh *
5525*4b8b8d74SJaiprakash Singh * * The register takes on any value, which might cause STEs to be fetched from an unpredictable
5526*4b8b8d74SJaiprakash Singh * address.
5527*4b8b8d74SJaiprakash Singh *
5528*4b8b8d74SJaiprakash Singh * * The write is ignored.
5529*4b8b8d74SJaiprakash Singh *
5530*4b8b8d74SJaiprakash Singh * A read following such a write will return an unknown value.
5531*4b8b8d74SJaiprakash Singh *
5532*4b8b8d74SJaiprakash Singh * Use of any reserved value or unsupported value combination in this register (for
5533*4b8b8d74SJaiprakash Singh * example, selection of a two-level table when unsupported where
5534*4b8b8d74SJaiprakash Singh * SMMU()_IDR0[ST_LEVEL]=0x0) causes the stream table to become inaccessible; a
5535*4b8b8d74SJaiprakash Singh * transaction causing a lookup of an STE is terminated with abort and a SMMU_C_BAD_STREAMID_S
5536*4b8b8d74SJaiprakash Singh * event recorded.
5537*4b8b8d74SJaiprakash Singh */
5538*4b8b8d74SJaiprakash Singh union ody_smmux_strtab_base_cfg {
5539*4b8b8d74SJaiprakash Singh uint32_t u;
5540*4b8b8d74SJaiprakash Singh struct ody_smmux_strtab_base_cfg_s {
5541*4b8b8d74SJaiprakash Singh uint32_t log2size : 6;
5542*4b8b8d74SJaiprakash Singh uint32_t split : 5;
5543*4b8b8d74SJaiprakash Singh uint32_t reserved_11_15 : 5;
5544*4b8b8d74SJaiprakash Singh uint32_t fmt : 2;
5545*4b8b8d74SJaiprakash Singh uint32_t reserved_18_31 : 14;
5546*4b8b8d74SJaiprakash Singh } s;
5547*4b8b8d74SJaiprakash Singh /* struct ody_smmux_strtab_base_cfg_s cn; */
5548*4b8b8d74SJaiprakash Singh };
5549*4b8b8d74SJaiprakash Singh typedef union ody_smmux_strtab_base_cfg ody_smmux_strtab_base_cfg_t;
5550*4b8b8d74SJaiprakash Singh
5551*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_STRTAB_BASE_CFG(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_STRTAB_BASE_CFG(uint64_t a)5552*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_STRTAB_BASE_CFG(uint64_t a)
5553*4b8b8d74SJaiprakash Singh {
5554*4b8b8d74SJaiprakash Singh if (a <= 3)
5555*4b8b8d74SJaiprakash Singh return 0x830000000088ll + 0x1000000000ll * ((a) & 0x3);
5556*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_STRTAB_BASE_CFG", 1, a, 0, 0, 0, 0, 0);
5557*4b8b8d74SJaiprakash Singh }
5558*4b8b8d74SJaiprakash Singh
5559*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_STRTAB_BASE_CFG(a) ody_smmux_strtab_base_cfg_t
5560*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_STRTAB_BASE_CFG(a) CSR_TYPE_NCB32b
5561*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_STRTAB_BASE_CFG(a) "SMMUX_STRTAB_BASE_CFG"
5562*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_STRTAB_BASE_CFG(a) 0x0 /* PF_BAR0 */
5563*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_STRTAB_BASE_CFG(a) (a)
5564*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_STRTAB_BASE_CFG(a) (a), -1, -1, -1
5565*4b8b8d74SJaiprakash Singh
5566*4b8b8d74SJaiprakash Singh /**
5567*4b8b8d74SJaiprakash Singh * Register (NCB32b) smmu#_vatos_sel
5568*4b8b8d74SJaiprakash Singh *
5569*4b8b8d74SJaiprakash Singh * SMMU VATOS SEL Register
5570*4b8b8d74SJaiprakash Singh */
5571*4b8b8d74SJaiprakash Singh union ody_smmux_vatos_sel {
5572*4b8b8d74SJaiprakash Singh uint32_t u;
5573*4b8b8d74SJaiprakash Singh struct ody_smmux_vatos_sel_s {
5574*4b8b8d74SJaiprakash Singh uint32_t vmid : 16;
5575*4b8b8d74SJaiprakash Singh uint32_t reserved_16_31 : 16;
5576*4b8b8d74SJaiprakash Singh } s;
5577*4b8b8d74SJaiprakash Singh /* struct ody_smmux_vatos_sel_s cn; */
5578*4b8b8d74SJaiprakash Singh };
5579*4b8b8d74SJaiprakash Singh typedef union ody_smmux_vatos_sel ody_smmux_vatos_sel_t;
5580*4b8b8d74SJaiprakash Singh
5581*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_VATOS_SEL(uint64_t a) __attribute__ ((pure, always_inline));
ODY_SMMUX_VATOS_SEL(uint64_t a)5582*4b8b8d74SJaiprakash Singh static inline uint64_t ODY_SMMUX_VATOS_SEL(uint64_t a)
5583*4b8b8d74SJaiprakash Singh {
5584*4b8b8d74SJaiprakash Singh if (a <= 3)
5585*4b8b8d74SJaiprakash Singh return 0x830000000180ll + 0x1000000000ll * ((a) & 0x3);
5586*4b8b8d74SJaiprakash Singh __ody_csr_fatal("SMMUX_VATOS_SEL", 1, a, 0, 0, 0, 0, 0);
5587*4b8b8d74SJaiprakash Singh }
5588*4b8b8d74SJaiprakash Singh
5589*4b8b8d74SJaiprakash Singh #define typedef_ODY_SMMUX_VATOS_SEL(a) ody_smmux_vatos_sel_t
5590*4b8b8d74SJaiprakash Singh #define bustype_ODY_SMMUX_VATOS_SEL(a) CSR_TYPE_NCB32b
5591*4b8b8d74SJaiprakash Singh #define basename_ODY_SMMUX_VATOS_SEL(a) "SMMUX_VATOS_SEL"
5592*4b8b8d74SJaiprakash Singh #define device_bar_ODY_SMMUX_VATOS_SEL(a) 0x0 /* PF_BAR0 */
5593*4b8b8d74SJaiprakash Singh #define busnum_ODY_SMMUX_VATOS_SEL(a) (a)
5594*4b8b8d74SJaiprakash Singh #define arguments_ODY_SMMUX_VATOS_SEL(a) (a), -1, -1, -1
5595*4b8b8d74SJaiprakash Singh
5596*4b8b8d74SJaiprakash Singh #endif /* __ODY_CSRS_SMMU_H__ */
5597