19.1 USB Host Controller Driver
The USB host controller driver depends on which USB host controller specification the host controller is based. Currently, the major types of USB host controllers are the following:
- Open Host Controller Interface (OHCI) (USB 1.0 and USB 1.1)
- Universal Host Controller Interface (UHCI) (USB 1.0 and USB 1.1)
- Enhanced Host Controller Interface (EHCI) (USB 2.0)
- Extended Host Controller Interface (XHCI) (USB 3.0)
The USB host controller driver is a device driver and follows the UEFI driver
model. It typically consumes the services of EFI_PCI_IO_PROTOCOL
and produces
EFI_USB2_HC_PROTOCOL
. The following section provides guidelines for
implementing the EFI_DRIVER_BINDING_PROTOCOL
services and
EFI_USB2_HC_PROTOCOL
services for the USB host controller driver. The EDK II
provides UEFI Drivers that implement the EFI_USB_HC2_PROTOCOL
for UHCI, ECHI,
and XHCI in the MdeModulePkg in the following paths:
- UHCI -
MdeModulePkg/Bus/Pci/UhciDxe
- EHCI -
MdeModulePkg/Bus/Pci/EhciDxe
- XHCI -
MdeModulePkg/Bus/Pci/XhciDxe