mirror of https://github.com/acidanthera/audk.git
MdeModulePkg/UsbMassStorageDxe: Enhance Request Sense Handling
https://bugzilla.tianocore.org/show_bug.cgi?id=782 Update the Request Sense check for the Request Sense Key of USB_BOOT_SENSE_UNIT_ATTENTION. For this Sense Key, the Additional Sense Key to EFI_STATUS mappings are: USB_BOOT_ASC_MEDIA_CHANGE -> EFI_MEDIA_CHANGE USB_BOOT_ASC_NOT_READY -> EFI_NOT_READY USB_BOOT_ASC_NO_MEDIA -> EFI_NOT_READY All others -> EFI_DEVICE_ERROR A USB flash drive is returning Request Sense Key of USB_BOOT_SENSE_UNIT_ATTENTION and an Additional Sense Key of USB_BOOT_ASC_NO_MEDIA for a few seconds before returning an Additional Sense Key of USB_BOOT_ASC_MEDIA_CHANGE. The current logic treats this initial Request Sense info as an error and reties the command 5 times before failing completely. With this change the USB Flash Drive works correctly. Cc: Star Zeng <star.zeng@intel.com> Cc: Eric Dong <eric.dong@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Michael D Kinney <michael.d.kinney@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com>
This commit is contained in:
parent
c09d957130
commit
d8030c2ae0
|
@ -120,6 +120,10 @@ UsbBootRequestSense (
|
|||
Status = EFI_MEDIA_CHANGED;
|
||||
Media->ReadOnly = FALSE;
|
||||
Media->MediaId++;
|
||||
} else if (SenseData.Asc == USB_BOOT_ASC_NOT_READY) {
|
||||
Status = EFI_NOT_READY;
|
||||
} else if (SenseData.Asc == USB_BOOT_ASC_NO_MEDIA) {
|
||||
Status = EFI_NOT_READY;
|
||||
}
|
||||
break;
|
||||
|
||||
|
|
Loading…
Reference in New Issue