Bugzilla: https://bugzilla.tianocore.org/show_bug.cgi?id=2122 Repo: https://pagure.io/lersek/edk2.git Branch: xen_split_bz_2122
This patch set removes dynamic Xen enlightenment from the following platforms: OvmfPkg/OvmfPkgIa32.dsc OvmfPkg/OvmfPkgIa32X64.dsc OvmfPkg/OvmfPkgX64.dsc In Xen guests, the following platform should be used: OvmfPkg/OvmfXen.dsc Please see more details / references in the bugzilla ticket. NOOPT build savings: - Ia32: PEIFV 1536 bytes, DXEFV 130288 bytes - Ia32X64: PEIFV 1536 bytes, DXEFV 140912 bytes - X64: PEIFV 1664 bytes, DXEFV 140912 bytes - Xen: PEIFV 256 bytes, DXEFV 69504 bytes Functional testing: - Booted a Fedora guest on OvmfPkgIa32X64 on QEMU/KVM, compared verbose logs before-after. Memory allocations were satisfied at different addresses, as expected, plus the Xen drivers were absent. No differences otherwise. - Booted a RHEL guest on ArmVirtQemu on AARCH64. Memory allocations were satisfied at different addresses, as expected. - Xen regression-testing was not done; I'm requesting feedback. Build testing / bisectability: at every stage, the series builds with the following script: > #!/bin/bash > set -e -u -C > > build -b DEBUG -t GCC5 -p ArmVirtPkg/ArmVirtKvmTool.dsc -a AARCH64 > build -b DEBUG -t GCC5 -p ArmVirtPkg/ArmVirtKvmTool.dsc -a ARM > build -b NOOPT -t GCC5 -p ArmVirtPkg/ArmVirtQemu.dsc -a AARCH64 > build -b NOOPT -t GCC5 -p ArmVirtPkg/ArmVirtQemu.dsc -a ARM > build -b NOOPT -t GCC5 -p ArmVirtPkg/ArmVirtQemuKernel.dsc -a AARCH64 > build -b NOOPT -t GCC5 -p ArmVirtPkg/ArmVirtQemuKernel.dsc -a ARM > build -b NOOPT -t GCC5 -p ArmVirtPkg/ArmVirtXen.dsc -a AARCH64 > build -b NOOPT -t GCC5 -p ArmVirtPkg/ArmVirtXen.dsc -a ARM > build -b NOOPT -t GCC5 -p OvmfPkg/AmdSev/AmdSevX64.dsc -a X64 > build -b NOOPT -t GCC5 -p OvmfPkg/Bhyve/BhyveX64.dsc -a X64 > build -b NOOPT -t GCC5 -p OvmfPkg/OvmfPkgIa32.dsc -a IA32 > build -b NOOPT -t GCC5 -p OvmfPkg/OvmfPkgIa32X64.dsc -a IA32 -a X64 > build -b NOOPT -t GCC5 -p OvmfPkg/OvmfPkgX64.dsc -a X64 > build -b NOOPT -t GCC5 -p OvmfPkg/OvmfXen.dsc -a X64 The patches in the series were formatted with the following options, for posting: --stat=1000 --stat-graph-width=20 --find-copies-harder -U6 (The option "--find-copies-harder" is not the best for presenting every single patch in the series, in isolation, but taken globally for the entire series, it is the most helpful option.) Some patches advance with really small steps, in order to cut down on a subsequent "meaty" patch. Personally I don't like reviewing code movement patches, so I did my best to (a) keep that to a minimum, and (b) present it as unintrusively as possible. The CC list is a bit long; the reason is that I kept touching up "Maintainers.txt", and the "OvmfPkg/Bhyve" and "OvmfPkg/AmdSev" platforms as well (whenever it made sense). Cc: Andrew Fish <af...@apple.com> Cc: Anthony Perard <anthony.per...@citrix.com> Cc: Ard Biesheuvel <ardb+tianoc...@kernel.org> Cc: Brijesh Singh <brijesh.si...@amd.com> Cc: Erdem Aktas <erdemak...@google.com> Cc: James Bottomley <j...@linux.ibm.com> Cc: Jiewen Yao <jiewen....@intel.com> Cc: Jordan Justen <jordan.l.jus...@intel.com> Cc: Julien Grall <jul...@xen.org> Cc: Leif Lindholm <l...@nuviainc.com> Cc: Michael D Kinney <michael.d.kin...@intel.com> Cc: Min Xu <min.m...@intel.com> Cc: Peter Grehan <gre...@freebsd.org> Cc: Philippe Mathieu-Daudé <phi...@redhat.com> Cc: Rebecca Cran <rebe...@bsdio.com> Cc: Tom Lendacky <thomas.lenda...@amd.com> Thanks, Laszlo Laszlo Ersek (43): OvmfPkg: remove the Xen drivers from the IA32, IA32X64, and X64 platforms OvmfPkg: remove the Xen drivers from the AmdSev platform OvmfPkg: switch IA32, IA32X64, X64 to the fw_cfg-only ACPI platform driver OvmfPkg: switch the AmdSev platform to the fw_cfg-only ACPI platform driver OvmfPkg/README: bump minimum QEMU version to 1.7.1, machine types to 1.7 OvmfPkg/AcpiPlatformDxe: fix header file warts OvmfPkg/AcpiPlatformDxe: sort #includes and [LibraryClasses] OvmfPkg/AcpiPlatformDxe/QemuLoader.h: remove QemuFwCfgLib class dependency OvmfPkg/AcpiPlatformDxe: move "QemuLoader.h" to IndustryStandard OvmfPkg/AcpiPlatformDxe: consolidate #includes and [LibraryClasses] OvmfPkg/XenAcpiPlatformDxe: create from AcpiPlatformDxe OvmfPkg/AcpiPlatformDxe: remove the "AcpiPlatformDxe.inf" driver OvmfPkg/XenAcpiPlatformDxe: remove the QEMU ACPI linker/loader client OvmfPkg/XenAcpiPlatformDxe: remove QEMU fw_cfg dependency OvmfPkg/XenAcpiPlatformDxe: remove the InstallAcpiTable() helper function OvmfPkg/XenAcpiPlatformDxe: remove OVMF's built-in ACPI tables OvmfPkg/Bhyve/AcpiPlatformDxe: fix file path typo in comment OvmfPkg/AcpiTables: remove unused module OvmfPkg/OvmfXen: make "PcdPciDisableBusEnumeration" Fixed-at-Build OvmfPkg/XenAcpiPlatformDxe: remove delayed ACPI table installation OvmfPkg/PlatformPei: remove Xen support OvmfPkg: drop PcdPciDisableBusEnumeration from the IA32, IA32X64, X64 DSCs OvmfPkg: drop PcdPciDisableBusEnumeration from the AmdSev platform OvmfPkg/Bhyve: make "PcdPciDisableBusEnumeration" Fixed-at-Build OvmfPkg/OvmfXen: remove IncompatiblePciDeviceSupport DXE driver OvmfPkg/Bhyve: remove IncompatiblePciDeviceSupport DXE driver OvmfPkg/IncompatiblePciDeviceSupportDxe: remove PcdPciDisableBusEnumeration OvmfPkg/PciHostBridgeLib: consolidate #includes and INF file sections OvmfPkg/PciHostBridgeLibScan: create from PciHostBridgeLib OvmfPkg/Bhyve: consume PciHostBridgeLibScan OvmfPkg/OvmfXen: consume PciHostBridgeLibScan OvmfPkg/PciHostBridgeLib: remove Bhyve and Xen support OvmfPkg/PciHostBridgeLibScan: remove QEMU (fw_cfg) support OvmfPkg/PciHostBridgeLibScan: remove PcdOvmfHostBridgePciDevId OvmfPkg/PciHostBridgeLibScan: clean up file names and file-top comments OvmfPkg/SmbiosPlatformDxe: clean up #includes and INF OvmfPkg/SmbiosPlatformDxe: return EFI_NOT_FOUND if there is no SMBIOS data OvmfPkg/SmbiosPlatformDxe: locate SMBIOS protocol in InstallAllStructures() OvmfPkg/SmbiosPlatformDxe: split GetXenSmbiosTables() decl. to new header OvmfPkg/SmbiosPlatformDxe: declare InstallAllStructures() in header file OvmfPkg/SmbiosPlatformDxe: create Xen-specific module INF file OvmfPkg/SmbiosPlatformDxe: split Xen entry point from QEMU entry point OvmfPkg: restrict XenPlatformLib to BdsDxe in the IA32, IA32X64, X64 DSCs Maintainers.txt | 10 +- OvmfPkg/AcpiPlatformDxe/AcpiPlatform.c | 262 -------- OvmfPkg/AcpiPlatformDxe/AcpiPlatform.h | 50 +- OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf | 71 -- OvmfPkg/AcpiPlatformDxe/BootScript.c | 7 +- OvmfPkg/AcpiPlatformDxe/EntryPoint.c | 7 +- OvmfPkg/AcpiPlatformDxe/PciDecoding.c | 4 +- OvmfPkg/AcpiPlatformDxe/Qemu.c | 511 --------------- OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpi.c | 21 +- OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpiPlatformDxe.inf | 5 +- OvmfPkg/AcpiTables/AcpiTables.inf | 38 -- OvmfPkg/AcpiTables/Dsdt.asl | 692 -------------------- OvmfPkg/AcpiTables/Facp.aslc | 89 --- OvmfPkg/AcpiTables/Facs.aslc | 78 --- OvmfPkg/AcpiTables/Madt.aslc | 153 ----- OvmfPkg/AcpiTables/Platform.h | 68 -- OvmfPkg/AcpiTables/Ssdt.asl | 13 - OvmfPkg/AmdSev/AmdSevX64.dsc | 9 +- OvmfPkg/AmdSev/AmdSevX64.fdf | 12 +- OvmfPkg/Bhyve/AcpiPlatformDxe/AcpiPlatform.c | 2 +- OvmfPkg/Bhyve/BhyveX64.dsc | 5 +- OvmfPkg/Bhyve/BhyveX64.fdf | 1 - OvmfPkg/Bhyve/PlatformPei/PlatformPei.inf | 1 - OvmfPkg/{AcpiPlatformDxe => Include/IndustryStandard}/QemuLoader.h | 8 +- OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.c | 10 +- OvmfPkg/IncompatiblePciDeviceSupportDxe/IncompatiblePciDeviceSupport.inf | 2 - OvmfPkg/Library/PciHostBridgeLib/PciHostBridgeLib.c | 28 +- OvmfPkg/Library/PciHostBridgeLib/PciHostBridgeLib.inf | 8 +- OvmfPkg/Library/{PciHostBridgeLib => PciHostBridgeLibScan}/PciHostBridge.h | 4 +- OvmfPkg/Library/PciHostBridgeLibScan/PciHostBridgeLib.c | 74 +++ OvmfPkg/Library/{PciHostBridgeLib/PciHostBridgeLib.inf => PciHostBridgeLibScan/PciHostBridgeLibScan.inf} | 24 +- OvmfPkg/Library/{PciHostBridgeLib/XenSupport.c => PciHostBridgeLibScan/ScanForRootBridges.c} | 27 +- OvmfPkg/OvmfPkgIa32.dsc | 10 +- OvmfPkg/OvmfPkgIa32.fdf | 12 +- OvmfPkg/OvmfPkgIa32X64.dsc | 10 +- OvmfPkg/OvmfPkgIa32X64.fdf | 12 +- OvmfPkg/OvmfPkgX64.dsc | 10 +- OvmfPkg/OvmfPkgX64.fdf | 12 +- OvmfPkg/OvmfXen.dsc | 10 +- OvmfPkg/OvmfXen.fdf | 12 +- OvmfPkg/PlatformPei/MemDetect.c | 10 +- OvmfPkg/PlatformPei/Platform.c | 162 +++-- OvmfPkg/PlatformPei/Platform.h | 17 - OvmfPkg/PlatformPei/PlatformPei.inf | 4 - OvmfPkg/PlatformPei/Xen.c | 222 ------- OvmfPkg/PlatformPei/Xen.h | 39 -- OvmfPkg/README | 43 +- OvmfPkg/SmbiosPlatformDxe/ArmXen.c | 2 +- OvmfPkg/SmbiosPlatformDxe/Qemu.c | 41 +- OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.c | 79 +-- OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.h | 37 +- OvmfPkg/SmbiosPlatformDxe/SmbiosPlatformDxe.inf | 23 +- OvmfPkg/SmbiosPlatformDxe/X86Xen.c | 8 +- OvmfPkg/SmbiosPlatformDxe/Xen.c | 49 ++ OvmfPkg/SmbiosPlatformDxe/{ArmXen.c => XenSmbiosPlatformDxe.h} | 20 +- OvmfPkg/SmbiosPlatformDxe/{SmbiosPlatformDxe.inf => XenSmbiosPlatformDxe.inf} | 32 +- OvmfPkg/XenAcpiPlatformDxe/AcpiPlatform.c | 41 ++ OvmfPkg/XenAcpiPlatformDxe/AcpiPlatform.h | 28 + OvmfPkg/XenAcpiPlatformDxe/EntryPoint.c | 43 ++ OvmfPkg/{AcpiPlatformDxe => XenAcpiPlatformDxe}/Xen.c | 66 +- OvmfPkg/XenAcpiPlatformDxe/XenAcpiPlatformDxe.inf | 45 ++ OvmfPkg/XenPlatformPei/Platform.c | 1 - OvmfPkg/XenPlatformPei/Platform.h | 5 - OvmfPkg/XenPlatformPei/Xen.c | 20 - OvmfPkg/XenPlatformPei/XenPlatformPei.inf | 1 - 65 files changed, 593 insertions(+), 2827 deletions(-) delete mode 100644 OvmfPkg/AcpiPlatformDxe/AcpiPlatform.c delete mode 100644 OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf delete mode 100644 OvmfPkg/AcpiPlatformDxe/Qemu.c delete mode 100644 OvmfPkg/AcpiTables/AcpiTables.inf delete mode 100644 OvmfPkg/AcpiTables/Dsdt.asl delete mode 100644 OvmfPkg/AcpiTables/Facp.aslc delete mode 100644 OvmfPkg/AcpiTables/Facs.aslc delete mode 100644 OvmfPkg/AcpiTables/Madt.aslc delete mode 100644 OvmfPkg/AcpiTables/Platform.h delete mode 100644 OvmfPkg/AcpiTables/Ssdt.asl rename OvmfPkg/{AcpiPlatformDxe => Include/IndustryStandard}/QemuLoader.h (94%) rename OvmfPkg/Library/{PciHostBridgeLib => PciHostBridgeLibScan}/PciHostBridge.h (57%) create mode 100644 OvmfPkg/Library/PciHostBridgeLibScan/PciHostBridgeLib.c copy OvmfPkg/Library/{PciHostBridgeLib/PciHostBridgeLib.inf => PciHostBridgeLibScan/PciHostBridgeLibScan.inf} (51%) rename OvmfPkg/Library/{PciHostBridgeLib/XenSupport.c => PciHostBridgeLibScan/ScanForRootBridges.c} (91%) delete mode 100644 OvmfPkg/PlatformPei/Xen.c delete mode 100644 OvmfPkg/PlatformPei/Xen.h create mode 100644 OvmfPkg/SmbiosPlatformDxe/Xen.c copy OvmfPkg/SmbiosPlatformDxe/{ArmXen.c => XenSmbiosPlatformDxe.h} (56%) copy OvmfPkg/SmbiosPlatformDxe/{SmbiosPlatformDxe.inf => XenSmbiosPlatformDxe.inf} (65%) create mode 100644 OvmfPkg/XenAcpiPlatformDxe/AcpiPlatform.c create mode 100644 OvmfPkg/XenAcpiPlatformDxe/AcpiPlatform.h create mode 100644 OvmfPkg/XenAcpiPlatformDxe/EntryPoint.c rename OvmfPkg/{AcpiPlatformDxe => XenAcpiPlatformDxe}/Xen.c (82%) create mode 100644 OvmfPkg/XenAcpiPlatformDxe/XenAcpiPlatformDxe.inf base-commit: cfa6ffb113f2c0d922034cc77c0d6c52eea05497 -- 2.19.1.3.g30247aa5d201 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#75669): https://edk2.groups.io/g/devel/message/75669 Mute This Topic: https://groups.io/mt/83110232/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-