18.3 PCI drivers
PCI drivers use the services of the
EFI_PCI_IO_PROTOCOL
to produce one or more protocols providing I/O abstractions for a PCI controller. PCI drivers follow the UEFI driver model, so they may be any of the following:- Device drivers
- Bus drivers
- Hybrid drivers
PCI drivers for graphics controllers are typically device drivers that consume the
EFI_PCI_IO_PROTOCOL
and produce the EFI_GRAPHICS_OUTPUT_PROTOCOL
. The PCI drivers for USB host controllers are typically device drivers that consume the EFI_PCI_IO_PROTOCOL
and produce the EFI_USB_HOST_CONTROLLER_PROTOCOL
.The PCI drivers for disk controllers are typically bus drivers or hybrid drivers that consume the
EFI_PCI_IO_PROTOCOL
and EFI_DEVICE_PATH_PROTOCOL
and produce child handles with the EFI_DEVICE_PATH_PROTOCOL
and EFI_BLOCK_IO_PROTOCOL
.PCI drivers for disk controllers using the SCSI command set typically produce the
EFI_EXT_SCSI_PASS_THRU_PROTOCOL
for each SCSI channel the disk controller produces.Chapter 20 covers details on SCSI drivers.
Last modified 2yr ago