This series adds support for reusing existing barebox PCI drivers under EFI. This means implementation of the EFI_PCI_ROOT_BRIDGE_IO_PROTOCOL_GUID, instead of EFI_PCI_IO_PROTOCOL_GUID, which abstracts the devices and handles enumeration. This was tested with the default QEMU x86_64 machine and OVMF (Tianocore) as UEFI firmware and an emulated 8250_pci (driver included in this series): qemu-system-x86_64 -pflash OVMF.fd -device pci-serial,chardev=cdev0 \ -chardev file,id=cdev0,path=COM -nographic /dev/sdb Driver is written against UEFI Specification 2.1D. This is my first dabble with PCI controllers, so please take a more thorough look. Thanks! Ahmad Ahmad Fatoum (9): efi: add and use new efi_device_has_guid helper driver: add missing parentheses around macro argument efi: fix off-by-one in mem_malloc_init(..., end) x86: efi: lds: don't discard any relocation sections PCI: add driver_data member to struct pci_device_id PCI: copy over some Linux PCI helpers efi: turn set of defines into enumerations pci: add EFI PCI root bridge IO protocol driver serial: add support for PCI NS16550 UARTs arch/x86/mach-efi/elf_x86_64_efi.lds.S | 7 +- common/efi/efi.c | 2 +- drivers/block/efi-block-io.c | 11 +- drivers/efi/Kconfig | 1 + drivers/efi/efi-device.c | 11 +- drivers/pci/Kconfig | 5 + drivers/pci/Makefile | 1 + drivers/pci/bus.c | 26 + drivers/pci/pci-efi.c | 311 ++ drivers/pci/pci-efi.h | 331 ++ drivers/serial/Kconfig | 8 + drivers/serial/Makefile | 1 + drivers/serial/serial_ns16550_pci.c | 5311 ++++++++++++++++++++++++ include/driver.h | 4 +- include/efi.h | 42 +- include/efi/efi-device.h | 12 + include/linux/mod_devicetable.h | 1 + include/linux/pci.h | 34 + 18 files changed, 6073 insertions(+), 46 deletions(-) create mode 100644 drivers/pci/pci-efi.c create mode 100644 drivers/pci/pci-efi.h create mode 100644 drivers/serial/serial_ns16550_pci.c -- 2.24.0 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox