The Usb1.1 flash disk will hang for Bootable Image Support Test -> Bloack IO protocol Test -> Reset_Func.
[Solution]:
Add a stall 20ms after set address when port reset for Usb hub.
[Impaction]:
UsbBusDxe.
[Reference Info]:
EDK tracker 1120 - USB flash disk hang or fail in the new SCT blockIo test.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5365
6f19259b-4bc3-4df7-8a09-
765794883524
Address = Dev->Address;\r
Dev->Address = 0;\r
Status = UsbSetAddress (Dev, Address);\r
Address = Dev->Address;\r
Dev->Address = 0;\r
Status = UsbSetAddress (Dev, Address);\r
+ Dev->Address = Address;\r
+ \r
if (EFI_ERROR (Status)) {\r
DEBUG (( EFI_D_ERROR, "UsbIoPortReset: failed to set address for device %d - %r\n",\r
Address, Status));\r
if (EFI_ERROR (Status)) {\r
DEBUG (( EFI_D_ERROR, "UsbIoPortReset: failed to set address for device %d - %r\n",\r
Address, Status));\r
- Dev->Address = Address;\r
+ gBS->Stall (USB_SET_DEVICE_ADDRESS_STALL);\r
+ DEBUG (( EFI_D_INFO, "UsbIoPortReset: device is now ADDRESSED at %d\n", Address));\r
+ \r
//\r
// Reset the current active configure, after this device\r
// is in CONFIGURED state.\r
//\r
// Reset the current active configure, after this device\r
// is in CONFIGURED state.\r