hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/tools/arch/arm/include/uapi/asm/kvm.h
....@@ -131,8 +131,9 @@
131131 struct {
132132 __u8 serror_pending;
133133 __u8 serror_has_esr;
134
+ __u8 ext_dabt_pending;
134135 /* Align it to 8 bytes */
135
- __u8 pad[6];
136
+ __u8 pad[5];
136137 __u64 serror_esr;
137138 } exception;
138139 __u32 reserved[12];
....@@ -214,6 +215,18 @@
214215 #define KVM_REG_ARM_FW_REG(r) (KVM_REG_ARM | KVM_REG_SIZE_U64 | \
215216 KVM_REG_ARM_FW | ((r) & 0xffff))
216217 #define KVM_REG_ARM_PSCI_VERSION KVM_REG_ARM_FW_REG(0)
218
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1 KVM_REG_ARM_FW_REG(1)
219
+ /* Higher values mean better protection. */
220
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_NOT_AVAIL 0
221
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_AVAIL 1
222
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_1_NOT_REQUIRED 2
223
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2 KVM_REG_ARM_FW_REG(2)
224
+ /* Higher values mean better protection. */
225
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_AVAIL 0
226
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_UNKNOWN 1
227
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_AVAIL 2
228
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_NOT_REQUIRED 3
229
+#define KVM_REG_ARM_SMCCC_ARCH_WORKAROUND_2_ENABLED (1U << 4)
217230
218231 /* Device Control API: ARM VGIC */
219232 #define KVM_DEV_ARM_VGIC_GRP_ADDR 0
....@@ -254,8 +267,10 @@
254267 #define KVM_DEV_ARM_ITS_CTRL_RESET 4
255268
256269 /* KVM_IRQ_LINE irq field index values */
270
+#define KVM_ARM_IRQ_VCPU2_SHIFT 28
271
+#define KVM_ARM_IRQ_VCPU2_MASK 0xf
257272 #define KVM_ARM_IRQ_TYPE_SHIFT 24
258
-#define KVM_ARM_IRQ_TYPE_MASK 0xff
273
+#define KVM_ARM_IRQ_TYPE_MASK 0xf
259274 #define KVM_ARM_IRQ_VCPU_SHIFT 16
260275 #define KVM_ARM_IRQ_VCPU_MASK 0xff
261276 #define KVM_ARM_IRQ_NUM_SHIFT 0