The series - adds a DTB- and MMIO-based fw_cfg client library to the ArmVirtualizationQemu platform (patches #1 and #2),
- makes OvmfPkg's OpenFirmware to UEFI devpath translation logic reusable for the ArmVirtualizationQemu platform, making the virtio-pci specific bits conditional (patches #5 and #6), - introduces (similarly conditional) coverage for virtio-mmio device paths (patches #7, #8, #9, #10), - introduces a new Intel BDS boot policy for ArmVirtualizationQemu that considers the QEMU boot order, similarly to OVMF (patches #3, #4, #11), - somewhat independently, ensures that the UEFI shell is always present as a boot option (patch #12). The patches are interleaved in a "demand driven" order, showing the dependencies between ArmVirtualizationPkg and OvmfPkg. ArmVirtualizationPkg takes the edges, providing the low level fw_cfg client service and consuming the top-level feature, whereas OvmfPkg sits in the middle, consuming the fw_cfg capability and providing the boot order logic. The patchset compiles at each step, for OvmfPkg, for ArmVirtualizationPkg without -D INTEL_BDS, and for ArmVirtualizationPkg with -D INTEL_BDS. Public branch: https://github.com/lersek/edk2/commits/armvirt_fwcfg Thanks Laszlo Laszlo Ersek (12): ArmVirtualizationPkg: VirtFdtDxe: forward FwCfg addresses from DTB to PCDs ArmVirtualizationPkg: introduce QemuFwCfgLib instance for DXE drivers ArmVirtualizationPkg: clone PlatformIntelBdsLib from ArmPlatformPkg ArmVirtualizationPkg: PlatformIntelBdsLib: add basic policy OvmfPkg: extract QemuBootOrderLib OvmfPkg: QemuBootOrderLib: featurize PCI-like device path translation OvmfPkg: introduce VIRTIO_MMIO_TRANSPORT_GUID ArmVirtualizationPkg: VirtFdtDxe: use dedicated VIRTIO_MMIO_TRANSPORT_GUID OvmfPkg: QemuBootOrderLib: widen ParseUnitAddressHexList() to UINT64 OvmfPkg: QemuBootOrderLib: OFW-to-UEFI translation for virtio-mmio ArmVirtualizationPkg: PlatformIntelBdsLib: adhere to QEMU's boot order ArmVirtualizationPkg: identify "new shell" as builtin shell for Intel BDS ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf | 67 ++++++++++ ArmPlatformPkg/ArmVirtualizationPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf | 52 ++++++++ ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.inf | 5 +- OvmfPkg/Library/PlatformBdsLib/PlatformBdsLib.inf | 3 +- OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf | 59 +++++++++ ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.h | 41 ++++++ OvmfPkg/Include/Guid/VirtioMmioTransport.h | 25 ++++ OvmfPkg/{Library/PlatformBdsLib/QemuBootOrder.h => Include/Library/QemuBootOrderLib.h} | 6 +- ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c | 390 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ ArmPlatformPkg/ArmVirtualizationPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c | 326 +++++++++++++++++++++++++++++++++++++++++++++ ArmPlatformPkg/ArmVirtualizationPkg/VirtFdtDxe/VirtFdtDxe.c | 30 ++++- OvmfPkg/Library/PlatformBdsLib/BdsPlatform.c | 2 +- OvmfPkg/Library/{PlatformBdsLib/QemuBootOrder.c => QemuBootOrderLib/QemuBootOrderLib.c} | 299 +++++++++++++++++++++++++++++++++++++---- ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationPkg.dec | 3 + ArmPlatformPkg/ArmVirtualizationPkg/ArmVirtualizationQemu.dsc | 13 +- OvmfPkg/OvmfPkg.dec | 8 ++ OvmfPkg/OvmfPkgIa32.dsc | 1 + OvmfPkg/OvmfPkgIa32X64.dsc | 1 + OvmfPkg/OvmfPkgX64.dsc | 1 + 19 files changed, 1301 insertions(+), 31 deletions(-) create mode 100644 ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformIntelBdsLib/PlatformIntelBdsLib.inf create mode 100644 ArmPlatformPkg/ArmVirtualizationPkg/Library/QemuFwCfgLib/QemuFwCfgLib.inf create mode 100644 OvmfPkg/Library/QemuBootOrderLib/QemuBootOrderLib.inf create mode 100644 ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.h create mode 100644 OvmfPkg/Include/Guid/VirtioMmioTransport.h rename OvmfPkg/{Library/PlatformBdsLib/QemuBootOrder.h => Include/Library/QemuBootOrderLib.h} (91%) create mode 100644 ArmPlatformPkg/ArmVirtualizationPkg/Library/PlatformIntelBdsLib/IntelBdsPlatform.c create mode 100644 ArmPlatformPkg/ArmVirtualizationPkg/Library/QemuFwCfgLib/QemuFwCfgLib.c rename OvmfPkg/Library/{PlatformBdsLib/QemuBootOrder.c => QemuBootOrderLib/QemuBootOrderLib.c} (77%) -- 1.8.3.1