159
160
#define ICC_CTLR_EL3_A3V (1U << 15)
160
161
#define ICC_CTLR_EL3_NDS (1U << 17)
163
#define ICH_VMCR_EL2_VENG0_SHIFT 0
164
#define ICH_VMCR_EL2_VENG0 (1U << ICH_VMCR_EL2_VENG0_SHIFT)
165
#define ICH_VMCR_EL2_VENG1_SHIFT 1
166
#define ICH_VMCR_EL2_VENG1 (1U << ICH_VMCR_EL2_VENG1_SHIFT)
167
#define ICH_VMCR_EL2_VACKCTL (1U << 2)
168
#define ICH_VMCR_EL2_VFIQEN (1U << 3)
169
#define ICH_VMCR_EL2_VCBPR_SHIFT 4
170
#define ICH_VMCR_EL2_VCBPR (1U << ICH_VMCR_EL2_VCBPR_SHIFT)
171
#define ICH_VMCR_EL2_VEOIM_SHIFT 9
172
#define ICH_VMCR_EL2_VEOIM (1U << ICH_VMCR_EL2_VEOIM_SHIFT)
173
#define ICH_VMCR_EL2_VBPR1_SHIFT 18
174
#define ICH_VMCR_EL2_VBPR1_LENGTH 3
175
#define ICH_VMCR_EL2_VBPR1_MASK (0x7U << ICH_VMCR_EL2_VBPR1_SHIFT)
176
#define ICH_VMCR_EL2_VBPR0_SHIFT 21
177
#define ICH_VMCR_EL2_VBPR0_LENGTH 3
178
#define ICH_VMCR_EL2_VBPR0_MASK (0x7U << ICH_VMCR_EL2_VBPR0_SHIFT)
179
#define ICH_VMCR_EL2_VPMR_SHIFT 24
180
#define ICH_VMCR_EL2_VPMR_LENGTH 8
181
#define ICH_VMCR_EL2_VPMR_MASK (0xffU << ICH_VMCR_EL2_VPMR_SHIFT)
183
#define ICH_HCR_EL2_EN (1U << 0)
184
#define ICH_HCR_EL2_UIE (1U << 1)
185
#define ICH_HCR_EL2_LRENPIE (1U << 2)
186
#define ICH_HCR_EL2_NPIE (1U << 3)
187
#define ICH_HCR_EL2_VGRP0EIE (1U << 4)
188
#define ICH_HCR_EL2_VGRP0DIE (1U << 5)
189
#define ICH_HCR_EL2_VGRP1EIE (1U << 6)
190
#define ICH_HCR_EL2_VGRP1DIE (1U << 7)
191
#define ICH_HCR_EL2_TC (1U << 10)
192
#define ICH_HCR_EL2_TALL0 (1U << 11)
193
#define ICH_HCR_EL2_TALL1 (1U << 12)
194
#define ICH_HCR_EL2_TSEI (1U << 13)
195
#define ICH_HCR_EL2_TDIR (1U << 14)
196
#define ICH_HCR_EL2_EOICOUNT_SHIFT 27
197
#define ICH_HCR_EL2_EOICOUNT_LENGTH 5
198
#define ICH_HCR_EL2_EOICOUNT_MASK (0x1fU << ICH_HCR_EL2_EOICOUNT_SHIFT)
200
#define ICH_LR_EL2_VINTID_SHIFT 0
201
#define ICH_LR_EL2_VINTID_LENGTH 32
202
#define ICH_LR_EL2_VINTID_MASK (0xffffffffULL << ICH_LR_EL2_VINTID_SHIFT)
203
#define ICH_LR_EL2_PINTID_SHIFT 32
204
#define ICH_LR_EL2_PINTID_LENGTH 10
205
#define ICH_LR_EL2_PINTID_MASK (0x3ffULL << ICH_LR_EL2_PINTID_SHIFT)
206
/* Note that EOI shares with the top bit of the pINTID field */
207
#define ICH_LR_EL2_EOI (1ULL << 41)
208
#define ICH_LR_EL2_PRIORITY_SHIFT 48
209
#define ICH_LR_EL2_PRIORITY_LENGTH 8
210
#define ICH_LR_EL2_PRIORITY_MASK (0xffULL << ICH_LR_EL2_PRIORITY_SHIFT)
211
#define ICH_LR_EL2_GROUP (1ULL << 60)
212
#define ICH_LR_EL2_HW (1ULL << 61)
213
#define ICH_LR_EL2_STATE_SHIFT 62
214
#define ICH_LR_EL2_STATE_LENGTH 2
215
#define ICH_LR_EL2_STATE_MASK (3ULL << ICH_LR_EL2_STATE_SHIFT)
216
/* values for the state field: */
217
#define ICH_LR_EL2_STATE_INVALID 0
218
#define ICH_LR_EL2_STATE_PENDING 1
219
#define ICH_LR_EL2_STATE_ACTIVE 2
220
#define ICH_LR_EL2_STATE_ACTIVE_PENDING 3
221
#define ICH_LR_EL2_STATE_PENDING_BIT (1ULL << ICH_LR_EL2_STATE_SHIFT)
222
#define ICH_LR_EL2_STATE_ACTIVE_BIT (2ULL << ICH_LR_EL2_STATE_SHIFT)
224
#define ICH_MISR_EL2_EOI (1U << 0)
225
#define ICH_MISR_EL2_U (1U << 1)
226
#define ICH_MISR_EL2_LRENP (1U << 2)
227
#define ICH_MISR_EL2_NP (1U << 3)
228
#define ICH_MISR_EL2_VGRP0E (1U << 4)
229
#define ICH_MISR_EL2_VGRP0D (1U << 5)
230
#define ICH_MISR_EL2_VGRP1E (1U << 6)
231
#define ICH_MISR_EL2_VGRP1D (1U << 7)
233
#define ICH_VTR_EL2_LISTREGS_SHIFT 0
234
#define ICH_VTR_EL2_TDS (1U << 19)
235
#define ICH_VTR_EL2_NV4 (1U << 20)
236
#define ICH_VTR_EL2_A3V (1U << 21)
237
#define ICH_VTR_EL2_SEIS (1U << 22)
238
#define ICH_VTR_EL2_IDBITS_SHIFT 23
239
#define ICH_VTR_EL2_PREBITS_SHIFT 26
240
#define ICH_VTR_EL2_PRIBITS_SHIFT 29
162
242
/* Special interrupt IDs */
163
243
#define INTID_SECURE 1020
164
244
#define INTID_NONSECURE 1021