]> git.ipfire.org Git - thirdparty/ipxe.git/commit
[pci] Use runtime selectable PCI I/O API for EFI cloud builds
authorMichael Brown <mcb30@ipxe.org>
Mon, 24 Nov 2025 20:27:53 +0000 (20:27 +0000)
committerMichael Brown <mcb30@ipxe.org>
Mon, 24 Nov 2025 23:25:31 +0000 (23:25 +0000)
commitdfea3bbfad75aa742623beb4d88e2be086a4b8ee
treef04cae9203f88f7ae3c4fc176bb56aaef38c89fa
parent9c1ac48bcff1a623cc5422fb57c540d910ac9734
[pci] Use runtime selectable PCI I/O API for EFI cloud builds

On some systems (observed on an AWS m8g.medium instance in eu-west-2),
the UEFI firmware omits the PCI host bridge drivers for all but the
first PCI bus.  The observable result is that any devices on other PCI
buses (such as the ENA network device) are not enumerated by the UEFI
firmware and are therefore unusable by iPXE.

Support these systems by switching to using PCIAPI_CLOUD for EFI cloud
builds, trying the EFI PCI I/O API first and falling back to direct
access (via ECAM) for devices that the UEFI firmware has failed to
enumerate itself.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/config/cloud/ioapi.h
src/config/config_pci.c
src/include/ipxe/pci_io.h
src/interface/efi/efi_pci.c