[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 11/12] target/arm/kvm: spe: Enable userspace irqchip support.
From: |
Haibo Xu |
Subject: |
[PATCH v2 11/12] target/arm/kvm: spe: Enable userspace irqchip support. |
Date: |
Tue, 8 Sep 2020 08:13:29 +0000 |
Since the current kernel patches haven't enabled the
userspace irqchip support, this patch is not verified yet!
Signed-off-by: Haibo Xu <haibo.xu@linaro.org>
---
linux-headers/linux/kvm.h | 1 +
target/arm/kvm.c | 5 +++++
2 files changed, 6 insertions(+)
diff --git a/linux-headers/linux/kvm.h b/linux-headers/linux/kvm.h
index 8840cbb01c..35ef0ae842 100644
--- a/linux-headers/linux/kvm.h
+++ b/linux-headers/linux/kvm.h
@@ -1672,6 +1672,7 @@ struct kvm_assigned_msix_entry {
#define KVM_ARM_DEV_EL1_VTIMER (1 << 0)
#define KVM_ARM_DEV_EL1_PTIMER (1 << 1)
#define KVM_ARM_DEV_PMU (1 << 2)
+#define KVM_ARM_DEV_SPE (1 << 3)
struct kvm_hyperv_eventfd {
__u32 conn_id;
diff --git a/target/arm/kvm.c b/target/arm/kvm.c
index 58f991e890..7950ff1d83 100644
--- a/target/arm/kvm.c
+++ b/target/arm/kvm.c
@@ -820,6 +820,11 @@ MemTxAttrs kvm_arch_post_run(CPUState *cs, struct kvm_run
*run)
switched_level &= ~KVM_ARM_DEV_PMU;
}
+ if (switched_level & KVM_ARM_DEV_SPE) {
+ qemu_set_irq(cpu->spe_interrupt,
+ !!(run->s.regs.device_irq_level & KVM_ARM_DEV_SPE));
+ switched_level &= ~KVM_ARM_DEV_SPE;
+ }
if (switched_level) {
qemu_log_mask(LOG_UNIMP, "%s: unhandled in-kernel device IRQ %x\n",
__func__, switched_level);
--
2.17.1
- [PATCH v2 09/12] hw/arm/virt: spe: Add SPE fdt binding for virt machine, (continued)
[PATCH v2 08/12] hw/arm/virt: Move kvm pmu setup to virt_cpu_post_init, Haibo Xu, 2020/09/08
[PATCH v2 10/12] target/arm/cpu: spe: Enable spe to work with host cpu, Haibo Xu, 2020/09/08
[PATCH v2 11/12] target/arm/kvm: spe: Enable userspace irqchip support.,
Haibo Xu <=
[PATCH v2 12/12] target/arm: spe: Add corresponding doc and test., Haibo Xu, 2020/09/08