19.3 USB Device Driver
USB device drivers use services provided by EFI_USB_IO_PROTOCOL
to produce
one or more protocols that provide I/O abstractions of a USB device. USB device
drivers must follow the UEFI Driver Model. As mentioned above, the USB device
drivers do not manage hub devices because those hub devices are managed by the
USB bus driver. The EDK II provides a number of USB Device Drivers in the
MdeModulePkg
for devices that are typically used to provide UEFI consoles and
UEFI boot devices. The EDK II MdePkg
also provides a library called
UefiUsbLib
that provides functions to simplify the implementations of USB
device drivers using the USB I/O Protocol. Some of the USB Device Driver
implementations provided in the EDK II are as follows:
- USB Keyboard:
MdeModulePkg/Bus/Usb/UsbKbDxe
- USB Mouse:
MdeModulePkg/Bus/Usb/UsbMouseDxe
- USB Mouse:
MdeModulePkg/Bus/Usb/UsbMouseAbsolutePointerDxe
- USB Mass Storage:
MdeModulePkg/Bus/Usb/UsbMassStorageDxe