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 1yr ago
Copy link