[edk2-devel] [PATCH 00/43] OvmfPkg: remove Xen support from OvmfPkg*.dsc, in favor of OvmfXen.dsc
Laszlo Ersek
lersek at redhat.com
Wed May 26 20:14:03 UTC 2021
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 <afish at apple.com>
Cc: Anthony Perard <anthony.perard at citrix.com>
Cc: Ard Biesheuvel <ardb+tianocore at kernel.org>
Cc: Brijesh Singh <brijesh.singh at amd.com>
Cc: Erdem Aktas <erdemaktas at google.com>
Cc: James Bottomley <jejb at linux.ibm.com>
Cc: Jiewen Yao <jiewen.yao at intel.com>
Cc: Jordan Justen <jordan.l.justen at intel.com>
Cc: Julien Grall <julien at xen.org>
Cc: Leif Lindholm <leif at nuviainc.com>
Cc: Michael D Kinney <michael.d.kinney at intel.com>
Cc: Min Xu <min.m.xu at intel.com>
Cc: Peter Grehan <grehan at freebsd.org>
Cc: Philippe Mathieu-Daudé <philmd at redhat.com>
Cc: Rebecca Cran <rebecca at bsdio.com>
Cc: Tom Lendacky <thomas.lendacky at 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/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list