This is based on Peter's target-arm.next. This is candidate for 10.1. For gaining virt functionality in KVM accelerated L1, The host needs to be booted with "kvm-arm.mode=nested" option and qemu needs to be invoked with: -machine virt,virtualization=on.
This series can be found at: https://github.com/eauger/qemu/tree/v10.0.0-nv-v7 Original version from Miguel: [1] https://lore.kernel.org/all/20230227163718.62003-1-miguel.l...@oracle.com/ version from Haibo: [2] https://lore.kernel.org/qemu-devel/cover.1617281290.git.haibo...@linaro.org/ History: v6 -> v7: - rebase on Peter's target-arm.next. as a result linux header update could be dropped. Faced a small conflict in hw/arm/virt: Allow virt extensions with KVM due to recently landed hw/arm/virt: Make EL2 accelerator check an accept-list. I dared to keep Richard's R-b though. v5 -> v6: - linux header update against v6.16-rc2 v4 -> v5: - rebase on top of v10.0.0 v3 -> v4: - fix: only set maint_irq if vms->virt v2 -> v3: - KVM EL2 only is set if virtualization option is set - fixes regression with virtualization=off - Add checks against unsupported GIC configs until the kernel does Haibo Xu (4): hw/arm: Allow setting KVM vGIC maintenance IRQ target/arm/kvm: Add helper to detect EL2 when using KVM target/arm: Enable feature ARM_FEATURE_EL2 if EL2 is supported hw/arm/virt: Allow virt extensions with KVM include/hw/intc/arm_gicv3_common.h | 1 + target/arm/kvm_arm.h | 7 +++++++ hw/arm/virt.c | 13 ++++++++++++- hw/intc/arm_gicv3_common.c | 1 + hw/intc/arm_gicv3_kvm.c | 21 +++++++++++++++++++++ target/arm/kvm-stub.c | 5 +++++ target/arm/kvm.c | 21 +++++++++++++++++++++ 7 files changed, 68 insertions(+), 1 deletion(-) -- 2.49.0