This one took way longer for me to publish than I should have. There are a number of lingering bugs in this one including u-boot not working.
Interrupt controller save/restore is entirely missing in this RFC, and some other state bits are likely still missing too. ITS not blocked by default yet, remember to use its=off when testing this series. You might also want the GICv3 + GICv2m support patch as part of the HVF vGIC patch series, which is not duplicated here. PS: on both this and HVF, interrupt controller initialisation needs to be done early so I ended up with hardcoded addresses. Wonder if the right way to go might be to defer virt and vCPU initialisation until late in the process post-gic_realize... Other than that, this boots both EDK2 and Linux in SMP, when using devicetree or ACPI. Mohamed Mediouni (9): whpx: Move around files before introducing AArch64 support whpx: reshuffle common code whpx: common: use whpx_cpu_instance_init on x86 only whpx: interrupt controller support hw/virt: make Qemu aware that WHPX has a vGICv3 hw: intc: arm_gicv3_common: add whpx whpx: add arm64 support whpx: copy over memory tracking logic from hvf target/arm: cpu: mark WHPX as supporting PSCI 1.1 accel/meson.build | 1 + accel/whpx/meson.build | 7 + {target/i386 => accel}/whpx/whpx-accel-ops.c | 8 +- accel/whpx/whpx-common.c | 670 ++++++++++++++++ hw/arm/virt.c | 3 + hw/intc/arm_gicv3_common.c | 3 + hw/intc/arm_gicv3_whpx.c | 285 +++++++ hw/intc/meson.build | 1 + .../whpx => include/system}/whpx-accel-ops.h | 4 +- include/system/whpx-all.h | 12 + include/system/whpx-common.h | 22 + .../whpx => include/system}/whpx-internal.h | 11 +- meson.build | 5 +- target/arm/cpu.c | 3 +- target/arm/meson.build | 1 + target/arm/whpx/meson.build | 3 + target/arm/whpx/whpx-all.c | 744 ++++++++++++++++++ target/i386/whpx/meson.build | 1 - target/i386/whpx/whpx-all.c | 524 +----------- target/i386/whpx/whpx-apic.c | 2 +- 20 files changed, 1780 insertions(+), 530 deletions(-) create mode 100644 accel/whpx/meson.build rename {target/i386 => accel}/whpx/whpx-accel-ops.c (96%) create mode 100644 accel/whpx/whpx-common.c create mode 100644 hw/intc/arm_gicv3_whpx.c rename {target/i386/whpx => include/system}/whpx-accel-ops.h (92%) create mode 100644 include/system/whpx-all.h create mode 100644 include/system/whpx-common.h rename {target/i386/whpx => include/system}/whpx-internal.h (97%) create mode 100644 target/arm/whpx/meson.build create mode 100644 target/arm/whpx/whpx-all.c -- 2.39.5 (Apple Git-154)