Hello, Ping (for reviews)
Am missing reviews on patches: 1, 2, 3, 4, 5, 6, 8, 9, 11, 13, 14 (Series at https://patchew.org/QEMU/[email protected]/) > On 15. Feb 2026, at 12:25, Mohamed Mediouni <[email protected]> wrote: > > Link to branch: https://github.com/mediouni-m/qemu hvf-irqchip-and-nested > (tag for this submission: hvf-irqchip-and-nested-v10) > > This series adds supports for nested virtualisation when using HVF on arm64 > Macs. > > It has two parts: > - Apple vGICv3 support and necessary infrastructure changes for it > - Nested virtualisation support. Note that the nested virtualisation > implementation > shipping as of macOS 26.3 is nVHE only (but it _does_ use VNCR as shipped). > > It's rebased on top of the WHPX arm64 series. > > Known issues: > - This series doesn't contain EL2 physical timer emulation, which is > needed if not leveraging the Apple vGIC. > > - when nested virt is enabled, no UI response within EDK2 > and a permanent wait. Workaround: -boot menu=on,splash-time=0. > > Apple Feedback Assistant item: FB21649319 > > When the VM is running at EL2 at the very moment the virtual timer fires: > HV_EXIT_REASON_VTIMER_ACTIVATED doesn’t fire (when not using the provided > vGIC) > - using a GICv2 doesn’t require having transition notifiers which > Hypervisor.framework doesn’t have…) > > and when using the provided vGIC, the interrupt never gets delivered back to > the guest > > Linux as a guest OS is fine with this… but the reference ArmVirtQemu edk2 > build always uses the virtual timer even when running EFI at EL2, so it gets > broken unless this patch is applied to edk2: > > diff of ArmVirtPkg/ArmVirt.dsc.inc: > > - > ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerVirtCounterLib/ArmGenericTimerVirtCounterLib.inf > + > ArmGenericTimerCounterLib|ArmPkg/Library/ArmGenericTimerPhyCounterLib/ArmGenericTimerPhyCounterLib.inf^M > > Changelog: > > v1->v2: > Oops. I did a mistake when preparing my patches. > > - Add hvf_arm_el2_enable(_) call to virt_set_virt > - Fix nested virt support check to add HVF > > v2->v3: > - LORC_EL1 patch was merged separately, remove from this series. > - fix LPIs when kernel-irqchip disabled and using TCG > - remove spurious if case in vGIC supported version detection (inapplicable > now) > - Add hvf_enabled() check in combination with hvf kernel-irqchip checks > - cleanly fail on attempt to use the platform vGIC together with ITS > > v3->v4: > - GIC state save improvements, including saving the opaque Apple-specific > state > - Saving HVF system register state when using the vGIC and/or EL2 > > v5: > - oops, fixed up save/restore to be functional > - misc changes otherwise > > v6: > - Addressing review comments > > v7: > - Address review comments, adapt around Qemu changes and bugfixes. > > v8: > - Rebase, and misc fixes > > v9: > - Misc fixes from WHPX review comments > - Split enablement commit for EL2 into its own separate commit > > v10: > > - A bit of changes across the board > - move HVF irqchip save/restore into irqchip code > - block nested virt support when kernel-irqchip=off with a GICv2 as > we don't implement an emulated physical timer yet. > > Mohamed Mediouni (14): > Revert "target/arm/hvf: Sync CNTV_CTL_EL0 & CNTV_CVAL_EL0" > hw/intc: Add hvf vGIC interrupt controller support > hw/intc: arm_gicv3_hvf: save/restore Apple GIC state > accel, hw/arm, include/system/hvf: infrastructure changes for HVF vGIC > target/arm: hvf: instantiate GIC early > hw/arm, target/arm: nested virtualisation on HVF > hvf: only call hvf_sync_vtimer() when running without the platform > vGIC > hvf: gate ARM_FEATURE_PMU register emulation behind not being at EL2 > hvf: arm: allow exposing minimal PMU when running with nested virt on > target/arm: hvf: add asserts for code paths not leveraged when using > the vGIC > hvf: sync registers used at EL2 > target/arm: hvf: pass through CNTHCTL_EL2 and MDCCINT_EL1 > hvf: enable nested virtualisation support > hvf: arm: warn instead of assert on a write_list_to_cpustate mismatch > > accel/hvf/hvf-all.c | 51 ++ > accel/stubs/hvf-stub.c | 2 + > hw/arm/virt.c | 37 +- > hw/intc/arm_gicv3_common.c | 4 + > hw/intc/arm_gicv3_hvf.c | 818 +++++++++++++++++++++++++++++ > hw/intc/arm_gicv3_hvf_stub.c | 25 + > hw/intc/meson.build | 2 + > include/hw/intc/arm_gicv3_common.h | 4 + > include/system/hvf.h | 8 + > system/vl.c | 2 + > target/arm/hvf/hvf.c | 154 ++++-- > target/arm/hvf/sysreg.c.inc | 35 ++ > 12 files changed, 1103 insertions(+), 39 deletions(-) > create mode 100644 hw/intc/arm_gicv3_hvf.c > create mode 100644 hw/intc/arm_gicv3_hvf_stub.c > > -- > 2.50.1 (Apple Git-155) >
