EDK II contains a generic USB bus driver. This driver uses the services of
EFI_USB2_HC_PROTOCOL to enumerate USB devices and produce child handles with
EFI_USB_IO_PROTOCOL. The implementation of the USB Bus Driver is found in the
MdeModulePkg in the directory
A USB hub, including the USB root hub and common hub, is a type of USB device. The USB bus driver is responsible for the management of all USB hub devices. No USB device drivers are required for USB hub devices.
If UEFI-based system firmware is ported to a new platform, most of the USB-related changes occur in the implementation of the USB host controller driver. If new types of USB devices are introduced that provide console or UEFI boot capabilities, the implementation of new USB Device Drivers is also required.
The USB bus driver is designed to be a generic, platform-agnostic driver. As a result, customizing the USB bus driver is
strongly discouraged. The detailed design and implementation of the USB bus driver is not covered in this guide.