]> git.ipfire.org Git - thirdparty/ipxe.git/commit
[efi] Retain a long-lived reference to the EFI_PCI_IO_PROTOCOL instance
authorMichael Brown <mcb30@ipxe.org>
Wed, 4 Nov 2020 15:08:48 +0000 (15:08 +0000)
committerMichael Brown <mcb30@ipxe.org>
Wed, 4 Nov 2020 15:16:22 +0000 (15:16 +0000)
commit36dde9b0bf27ae411af677ca1fa3075113133cfe
treee9f2cc06c015068c973a8b243943a4a4d3ac67f2
parentf560e7b70b5b1a3ecd2d03d8f319e79327dbd6c3
[efi] Retain a long-lived reference to the EFI_PCI_IO_PROTOCOL instance

Provide opened EFI PCI devices with access to the underlying
EFI_PCI_IO_PROTOCOL instance, in order to facilitate the future use of
the DMA mapping methods within the fast data path.

Do not require the use of this stored EFI_PCI_IO_PROTOCOL instance for
memory-mapped I/O (since the entire point of memory-mapped I/O as a
concept is to avoid this kind of unnecessary complexity) or for
slow-path PCI configuration space accesses (since these may be
required for access to PCI bus:dev.fn addresses that do not correspond
to a device bound via our driver binding protocol instance).

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/include/ipxe/efi/efi_pci.h
src/interface/efi/efi_bofm.c
src/interface/efi/efi_pci.c
src/interface/efi/efi_utils.c