USB stack - jljusten/tianocore GitHub Wiki
Below are specific paths to the drivers from the open source packages. You can also put in both EHCI and UHCI, and they will work together to select the best controller to use based on the capabilities of the attached USB devices. You also need the Disk I/O Driver and Partition Driver. The FAT driver is available in both source and binary form. The path to the pre-built FAT binary is shown in the list below.
MdeModulePkg/Bus/Pci/EhciDxe/EhciDxe.inf MdeModulePkg/Bus/Pci/UhciDxe/UhciDxe.in MdeModulePkg/Bus/Usb/UsbBusDxe/UsbBusDxe.inf MdeModulePkg/Bus/Usb/UsbMassStorageDxe/UsbMassStorageDxe.inf MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe.inf MdeModulePkg/Universal/Disk/PartitionDxe/PartitionDxe.inf FatBinPkg/EnhancedFatDxe/Fat.inf
USB Dongles can also be used as a recovery device in the PEI Phase. The following PEIMs would also be required if the PEI Phase needs to load a recovery image from a USB Dongle. The CDExpressPei module would only be required for recovery from a USB CD/DVD.
MdeModulePkg/Bus/Pci/UhciPei/UhciPei.inf MdeModulePkg/Bus/Pci/EhciPei/EhciPei.inf MdeModulePkg/Bus/Usb/UsbBotPei/UsbBotPei.inf MdeModulePkg/Bus/Usb/UsbBusPei/UsbBusPei.inf MdeModulePkg/Universal/Disk/CdExpressPei/CdExpressPei.inf FatPkg/FatPei/FatPei.inf