From: "Edgar E. Iglesias" <edgar.igles...@amd.com> This series breaks out parts of the ARM PVH support into an abstract machine that other targets can reuse.. There's a bit of refactoring and some bug-fixes along the way.
Finally we add a new x86 xen-pvh machine. The corresponding changes in Xen for PVH x86 are work in progress (by Xenia Ragiadakou). You can find a current version here: https://github.com/edgarigl/xen/tree/edgar/virtio-pvh-upstream I've briefly described the steps to run Xen PVH x86 guests here (including example guest kernel config, xl.cfg and xl command-lines): https://github.com/edgarigl/docs/blob/master/xen/pvh/xenpvh-x86.md Cheers, Edgar ChangeLog: v1 -> v2: * Use an abstract PVH Machine to share code between arch specific PVH machines. This allows more sharing than a using a device component. * Add comments describing our PCI INTX support. * Allow the PVH target specific implementation to provide PCI INTX delivery via class methods. * Clarify use of mc->max_cpus in comments. * Use GUEST_MAX_VCPUS mc->max_cpus on ARM. * Use HVM_MAX_VCPUS mc->max_cpus on x86. * pvh-common: Directly use s->cfg. members when creating gpex. * pvh-common: Clarify use of pci-ecam-size in comments. * x86/xen-pvh: Create smp.max_cpus nr of dummy cores (not smp.cpus). * x86/xen-pvh: Replace static array holding dummy cores with a dynamic one. * Move stubbed Xen/ARM functions from hw/arm/xen_arm.c into xen-stubs.c Edgar E. Iglesias (12): MAINTAINERS: Add docs/system/arm/xenpvh.rst hw/arm: xenpvh: Update file header to use SPDX hw/arm: xenpvh: Tweak machine description hw/arm: xenpvh: Add support for SMP guests hw/arm: xenpvh: Remove double-negation in warning hw/arm: xenpvh: Move stubbed functions to xen-stubs.c hw/arm: xenpvh: Break out a common PVH machine hw/arm: xenpvh: Rename xen_arm.c -> xen-pvh.c hw/arm: xenpvh: Reverse virtio-mmio creation order hw/xen: pvh-common: Add support for creating PCIe/GPEX hw/i386/xen: Add a Xen PVH x86 machine docs/system/i386: xenpvh: Add a basic description MAINTAINERS | 2 + docs/system/i386/xenpvh.rst | 49 +++++ docs/system/target-i386.rst | 1 + hw/arm/meson.build | 5 +- hw/arm/trace-events | 5 - hw/arm/xen-pvh.c | 89 ++++++++ hw/arm/xen-stubs.c | 32 +++ hw/arm/xen_arm.c | 267 ----------------------- hw/i386/xen/meson.build | 1 + hw/i386/xen/xen-pvh.c | 121 +++++++++++ hw/xen/meson.build | 1 + hw/xen/trace-events | 4 + hw/xen/xen-pvh-common.c | 362 ++++++++++++++++++++++++++++++++ include/hw/xen/xen-pvh-common.h | 88 ++++++++ 14 files changed, 754 insertions(+), 273 deletions(-) create mode 100644 docs/system/i386/xenpvh.rst create mode 100644 hw/arm/xen-pvh.c create mode 100644 hw/arm/xen-stubs.c delete mode 100644 hw/arm/xen_arm.c create mode 100644 hw/i386/xen/xen-pvh.c create mode 100644 hw/xen/xen-pvh-common.c create mode 100644 include/hw/xen/xen-pvh-common.h -- 2.43.0