**/\r
EFI_STATUS\r
UsbBootRequestSense (\r
- IN USB_MASS_DEVICE *UsbMass\r
+ IN USB_MASS_DEVICE *UsbMass\r
)\r
{\r
- USB_BOOT_REQUEST_SENSE_CMD SenseCmd;\r
- USB_BOOT_REQUEST_SENSE_DATA SenseData;\r
- EFI_BLOCK_IO_MEDIA *Media;\r
- USB_MASS_TRANSPORT *Transport;\r
- EFI_STATUS Status;\r
- UINT32 CmdResult;\r
+ USB_BOOT_REQUEST_SENSE_CMD SenseCmd;\r
+ USB_BOOT_REQUEST_SENSE_DATA SenseData;\r
+ EFI_BLOCK_IO_MEDIA *Media;\r
+ USB_MASS_TRANSPORT *Transport;\r
+ EFI_STATUS Status;\r
+ UINT32 CmdResult;\r
\r
Transport = UsbMass->Transport;\r
\r
ZeroMem (&SenseData, sizeof (USB_BOOT_REQUEST_SENSE_DATA));\r
\r
SenseCmd.OpCode = USB_BOOT_REQUEST_SENSE_OPCODE;\r
- SenseCmd.Lun = (UINT8) (USB_BOOT_LUN (UsbMass->Lun));\r
- SenseCmd.AllocLen = (UINT8) sizeof (USB_BOOT_REQUEST_SENSE_DATA);\r
+ SenseCmd.Lun = (UINT8)(USB_BOOT_LUN (UsbMass->Lun));\r
+ SenseCmd.AllocLen = (UINT8)sizeof (USB_BOOT_REQUEST_SENSE_DATA);\r
\r
Status = Transport->ExecCommand (\r
UsbMass->Context,\r
USB_BOOT_GENERAL_CMD_TIMEOUT,\r
&CmdResult\r
);\r
- if (EFI_ERROR (Status) || CmdResult != USB_MASS_CMD_SUCCESS) {\r
+ if (EFI_ERROR (Status) || (CmdResult != USB_MASS_CMD_SUCCESS)) {\r
DEBUG ((DEBUG_ERROR, "UsbBootRequestSense: (%r) CmdResult=0x%x\n", Status, CmdResult));\r
if (!EFI_ERROR (Status)) {\r
Status = EFI_DEVICE_ERROR;\r
}\r
+\r
return Status;\r
}\r
\r
Media = &UsbMass->BlockIoMedia;\r
\r
switch (USB_BOOT_SENSE_KEY (SenseData.SenseKey)) {\r
+ case USB_BOOT_SENSE_NO_SENSE:\r
+ if (SenseData.Asc == USB_BOOT_ASC_NO_ADDITIONAL_SENSE_INFORMATION) {\r
+ //\r
+ // It is not an error if a device does not have additional sense information\r
+ //\r
+ Status = EFI_SUCCESS;\r
+ } else {\r
+ Status = EFI_NO_RESPONSE;\r
+ }\r
\r
- case USB_BOOT_SENSE_NO_SENSE:\r
- if (SenseData.Asc == USB_BOOT_ASC_NO_ADDITIONAL_SENSE_INFORMATION) {\r
+ break;\r
+\r
+ case USB_BOOT_SENSE_RECOVERED:\r
//\r
- // It is not an error if a device does not have additional sense information\r
+ // Suppose hardware can handle this case, and recover later by itself\r
//\r
- Status = EFI_SUCCESS;\r
- } else {\r
- Status = EFI_NO_RESPONSE;\r
- }\r
- break;\r
-\r
- case USB_BOOT_SENSE_RECOVERED:\r
- //\r
- // Suppose hardware can handle this case, and recover later by itself\r
- //\r
- Status = EFI_NOT_READY;\r
- break;\r
-\r
- case USB_BOOT_SENSE_NOT_READY:\r
- Status = EFI_DEVICE_ERROR;\r
- if (SenseData.Asc == USB_BOOT_ASC_NO_MEDIA) {\r
- Media->MediaPresent = FALSE;\r
- Status = EFI_NO_MEDIA;\r
- } else if (SenseData.Asc == USB_BOOT_ASC_NOT_READY) {\r
Status = EFI_NOT_READY;\r
- }\r
- break;\r
+ break;\r
\r
- case USB_BOOT_SENSE_ILLEGAL_REQUEST:\r
- Status = EFI_INVALID_PARAMETER;\r
- break;\r
+ case USB_BOOT_SENSE_NOT_READY:\r
+ Status = EFI_DEVICE_ERROR;\r
+ if (SenseData.Asc == USB_BOOT_ASC_NO_MEDIA) {\r
+ Media->MediaPresent = FALSE;\r
+ Status = EFI_NO_MEDIA;\r
+ } else if (SenseData.Asc == USB_BOOT_ASC_NOT_READY) {\r
+ Status = EFI_NOT_READY;\r
+ }\r
\r
- case USB_BOOT_SENSE_UNIT_ATTENTION:\r
- Status = EFI_DEVICE_ERROR;\r
- if (SenseData.Asc == USB_BOOT_ASC_MEDIA_CHANGE) {\r
- //\r
- // If MediaChange, reset ReadOnly and new MediaId\r
- //\r
- Status = EFI_MEDIA_CHANGED;\r
- Media->ReadOnly = FALSE;\r
- Media->MediaId++;\r
- } else if (SenseData.Asc == USB_BOOT_ASC_NOT_READY) {\r
- Status = EFI_NOT_READY;\r
- } else if (SenseData.Asc == USB_BOOT_ASC_NO_MEDIA) {\r
- Status = EFI_NOT_READY;\r
- }\r
- break;\r
+ break;\r
+\r
+ case USB_BOOT_SENSE_ILLEGAL_REQUEST:\r
+ Status = EFI_INVALID_PARAMETER;\r
+ break;\r
+\r
+ case USB_BOOT_SENSE_UNIT_ATTENTION:\r
+ Status = EFI_DEVICE_ERROR;\r
+ if (SenseData.Asc == USB_BOOT_ASC_MEDIA_CHANGE) {\r
+ //\r
+ // If MediaChange, reset ReadOnly and new MediaId\r
+ //\r
+ Status = EFI_MEDIA_CHANGED;\r
+ Media->ReadOnly = FALSE;\r
+ Media->MediaId++;\r
+ } else if (SenseData.Asc == USB_BOOT_ASC_NOT_READY) {\r
+ Status = EFI_NOT_READY;\r
+ } else if (SenseData.Asc == USB_BOOT_ASC_NO_MEDIA) {\r
+ Status = EFI_NOT_READY;\r
+ }\r
\r
- case USB_BOOT_SENSE_DATA_PROTECT:\r
- Status = EFI_WRITE_PROTECTED;\r
- Media->ReadOnly = TRUE;\r
- break;\r
+ break;\r
+\r
+ case USB_BOOT_SENSE_DATA_PROTECT:\r
+ Status = EFI_WRITE_PROTECTED;\r
+ Media->ReadOnly = TRUE;\r
+ break;\r
\r
- default:\r
- Status = EFI_DEVICE_ERROR;\r
- break;\r
+ default:\r
+ Status = EFI_DEVICE_ERROR;\r
+ break;\r
}\r
\r
- DEBUG ((DEBUG_INFO, "UsbBootRequestSense: (%r) with error code (%x) sense key %x/%x/%x\n",\r
- Status,\r
- SenseData.ErrorCode,\r
- USB_BOOT_SENSE_KEY (SenseData.SenseKey),\r
- SenseData.Asc,\r
- SenseData.Ascq\r
- ));\r
+ DEBUG ((\r
+ DEBUG_INFO,\r
+ "UsbBootRequestSense: (%r) with error code (%x) sense key %x/%x/%x\n",\r
+ Status,\r
+ SenseData.ErrorCode,\r
+ USB_BOOT_SENSE_KEY (SenseData.SenseKey),\r
+ SenseData.Asc,\r
+ SenseData.Ascq\r
+ ));\r
\r
return Status;\r
}\r
\r
-\r
/**\r
Execute the USB mass storage bootability commands.\r
\r
**/\r
EFI_STATUS\r
UsbBootExecCmd (\r
- IN USB_MASS_DEVICE *UsbMass,\r
- IN VOID *Cmd,\r
- IN UINT8 CmdLen,\r
- IN EFI_USB_DATA_DIRECTION DataDir,\r
- IN VOID *Data,\r
- IN UINT32 DataLen,\r
- IN UINT32 Timeout\r
+ IN USB_MASS_DEVICE *UsbMass,\r
+ IN VOID *Cmd,\r
+ IN UINT8 CmdLen,\r
+ IN EFI_USB_DATA_DIRECTION DataDir,\r
+ IN VOID *Data,\r
+ IN UINT32 DataLen,\r
+ IN UINT32 Timeout\r
)\r
{\r
- USB_MASS_TRANSPORT *Transport;\r
- EFI_STATUS Status;\r
- UINT32 CmdResult;\r
+ USB_MASS_TRANSPORT *Transport;\r
+ EFI_STATUS Status;\r
+ UINT32 CmdResult;\r
\r
Transport = UsbMass->Transport;\r
Status = Transport->ExecCommand (\r
return UsbBootRequestSense (UsbMass);\r
}\r
\r
-\r
/**\r
Execute the USB mass storage bootability commands with retrial.\r
\r
**/\r
EFI_STATUS\r
UsbBootExecCmdWithRetry (\r
- IN USB_MASS_DEVICE *UsbMass,\r
- IN VOID *Cmd,\r
- IN UINT8 CmdLen,\r
- IN EFI_USB_DATA_DIRECTION DataDir,\r
- IN VOID *Data,\r
- IN UINT32 DataLen,\r
- IN UINT32 Timeout\r
+ IN USB_MASS_DEVICE *UsbMass,\r
+ IN VOID *Cmd,\r
+ IN UINT8 CmdLen,\r
+ IN EFI_USB_DATA_DIRECTION DataDir,\r
+ IN VOID *Data,\r
+ IN UINT32 DataLen,\r
+ IN UINT32 Timeout\r
)\r
{\r
- EFI_STATUS Status;\r
- UINTN Retry;\r
- EFI_EVENT TimeoutEvt;\r
+ EFI_STATUS Status;\r
+ UINTN Retry;\r
+ EFI_EVENT TimeoutEvt;\r
\r
Retry = 0;\r
Status = EFI_SUCCESS;\r
return Status;\r
}\r
\r
- Status = gBS->SetTimer (TimeoutEvt, TimerRelative, EFI_TIMER_PERIOD_SECONDS(60));\r
+ Status = gBS->SetTimer (TimeoutEvt, TimerRelative, EFI_TIMER_PERIOD_SECONDS (60));\r
if (EFI_ERROR (Status)) {\r
goto EXIT;\r
}\r
DataLen,\r
Timeout\r
);\r
- if (Status == EFI_SUCCESS || Status == EFI_NO_MEDIA) {\r
+ if ((Status == EFI_SUCCESS) || (Status == EFI_NO_MEDIA)) {\r
break;\r
}\r
+\r
//\r
// If the sense data shows the drive is not ready, we need execute the cmd again.\r
// We limit the upper boundary to 60 seconds.\r
if (Status == EFI_NOT_READY) {\r
continue;\r
}\r
+\r
//\r
// If the status is other error, then just retry 5 times.\r
//\r
return Status;\r
}\r
\r
-\r
/**\r
Execute TEST UNIT READY command to check if the device is ready.\r
\r
**/\r
EFI_STATUS\r
UsbBootIsUnitReady (\r
- IN USB_MASS_DEVICE *UsbMass\r
+ IN USB_MASS_DEVICE *UsbMass\r
)\r
{\r
USB_BOOT_TEST_UNIT_READY_CMD TestCmd;\r
\r
ZeroMem (&TestCmd, sizeof (USB_BOOT_TEST_UNIT_READY_CMD));\r
\r
- TestCmd.OpCode = USB_BOOT_TEST_UNIT_READY_OPCODE;\r
- TestCmd.Lun = (UINT8) (USB_BOOT_LUN (UsbMass->Lun));\r
+ TestCmd.OpCode = USB_BOOT_TEST_UNIT_READY_OPCODE;\r
+ TestCmd.Lun = (UINT8)(USB_BOOT_LUN (UsbMass->Lun));\r
\r
return UsbBootExecCmdWithRetry (\r
UsbMass,\r
&TestCmd,\r
- (UINT8) sizeof (USB_BOOT_TEST_UNIT_READY_CMD),\r
+ (UINT8)sizeof (USB_BOOT_TEST_UNIT_READY_CMD),\r
EfiUsbNoData,\r
NULL,\r
0,\r
);\r
}\r
\r
-\r
/**\r
Execute INQUIRY Command to request information regarding parameters of\r
the device be sent to the host computer.\r
**/\r
EFI_STATUS\r
UsbBootInquiry (\r
- IN USB_MASS_DEVICE *UsbMass\r
+ IN USB_MASS_DEVICE *UsbMass\r
)\r
{\r
- USB_BOOT_INQUIRY_CMD InquiryCmd;\r
- EFI_BLOCK_IO_MEDIA *Media;\r
- EFI_STATUS Status;\r
+ USB_BOOT_INQUIRY_CMD InquiryCmd;\r
+ EFI_BLOCK_IO_MEDIA *Media;\r
+ EFI_STATUS Status;\r
\r
Media = &(UsbMass->BlockIoMedia);\r
\r
ZeroMem (&UsbMass->InquiryData, sizeof (USB_BOOT_INQUIRY_DATA));\r
\r
InquiryCmd.OpCode = USB_BOOT_INQUIRY_OPCODE;\r
- InquiryCmd.Lun = (UINT8) (USB_BOOT_LUN (UsbMass->Lun));\r
- InquiryCmd.AllocLen = (UINT8) sizeof (USB_BOOT_INQUIRY_DATA);\r
+ InquiryCmd.Lun = (UINT8)(USB_BOOT_LUN (UsbMass->Lun));\r
+ InquiryCmd.AllocLen = (UINT8)sizeof (USB_BOOT_INQUIRY_DATA);\r
\r
Status = UsbBootExecCmdWithRetry (\r
UsbMass,\r
&InquiryCmd,\r
- (UINT8) sizeof (USB_BOOT_INQUIRY_CMD),\r
+ (UINT8)sizeof (USB_BOOT_INQUIRY_CMD),\r
EfiUsbDataIn,\r
&UsbMass->InquiryData,\r
sizeof (USB_BOOT_INQUIRY_DATA),\r
// Get information from PDT (Peripheral Device Type) field and Removable Medium Bit\r
// from the inquiry data.\r
//\r
- UsbMass->Pdt = (UINT8) (USB_BOOT_PDT (UsbMass->InquiryData.Pdt));\r
- Media->RemovableMedia = (BOOLEAN) (USB_BOOT_REMOVABLE (UsbMass->InquiryData.Removable));\r
+ UsbMass->Pdt = (UINT8)(USB_BOOT_PDT (UsbMass->InquiryData.Pdt));\r
+ Media->RemovableMedia = (BOOLEAN)(USB_BOOT_REMOVABLE (UsbMass->InquiryData.Removable));\r
//\r
// Set block size to the default value of 512 Bytes, in case no media is present at first time.\r
//\r
- Media->BlockSize = 0x0200;\r
+ Media->BlockSize = 0x0200;\r
\r
return Status;\r
}\r
**/\r
EFI_STATUS\r
UsbBootReadCapacity16 (\r
- IN USB_MASS_DEVICE *UsbMass\r
+ IN USB_MASS_DEVICE *UsbMass\r
)\r
{\r
- UINT8 CapacityCmd[16];\r
- EFI_SCSI_DISK_CAPACITY_DATA16 CapacityData;\r
- EFI_BLOCK_IO_MEDIA *Media;\r
- EFI_STATUS Status;\r
- UINT32 BlockSize;\r
+ UINT8 CapacityCmd[16];\r
+ EFI_SCSI_DISK_CAPACITY_DATA16 CapacityData;\r
+ EFI_BLOCK_IO_MEDIA *Media;\r
+ EFI_STATUS Status;\r
+ UINT32 BlockSize;\r
\r
- Media = &UsbMass->BlockIoMedia;\r
+ Media = &UsbMass->BlockIoMedia;\r
\r
Media->MediaPresent = FALSE;\r
Media->LastBlock = 0;\r
ZeroMem (CapacityCmd, sizeof (CapacityCmd));\r
ZeroMem (&CapacityData, sizeof (CapacityData));\r
\r
- CapacityCmd[0] = EFI_SCSI_OP_READ_CAPACITY16;\r
- CapacityCmd[1] = 0x10;\r
+ CapacityCmd[0] = EFI_SCSI_OP_READ_CAPACITY16;\r
+ CapacityCmd[1] = 0x10;\r
//\r
// Partial medium indicator, set the bytes 2 ~ 9 of the Cdb as ZERO.\r
//\r
Status = UsbBootExecCmdWithRetry (\r
UsbMass,\r
CapacityCmd,\r
- (UINT8) sizeof (CapacityCmd),\r
+ (UINT8)sizeof (CapacityCmd),\r
EfiUsbDataIn,\r
&CapacityData,\r
sizeof (CapacityData),\r
// from READ CAPACITY data.\r
//\r
Media->MediaPresent = TRUE;\r
- Media->LastBlock = SwapBytes64 (ReadUnaligned64 ((CONST UINT64 *) &(CapacityData.LastLba7)));\r
+ Media->LastBlock = SwapBytes64 (ReadUnaligned64 ((CONST UINT64 *)&(CapacityData.LastLba7)));\r
\r
- BlockSize = SwapBytes32 (ReadUnaligned32 ((CONST UINT32 *) &(CapacityData.BlockSize3)));\r
+ BlockSize = SwapBytes32 (ReadUnaligned32 ((CONST UINT32 *)&(CapacityData.BlockSize3)));\r
\r
Media->LowestAlignedLba = (CapacityData.LowestAlignLogic2 << 8) |\r
- CapacityData.LowestAlignLogic1;\r
- Media->LogicalBlocksPerPhysicalBlock = (1 << CapacityData.LogicPerPhysical);\r
+ CapacityData.LowestAlignLogic1;\r
+ Media->LogicalBlocksPerPhysicalBlock = (1 << CapacityData.LogicPerPhysical);\r
if (BlockSize == 0) {\r
//\r
// Get sense data\r
return Status;\r
}\r
\r
-\r
/**\r
Execute READ CAPACITY command to request information regarding\r
the capacity of the installed medium of the device.\r
**/\r
EFI_STATUS\r
UsbBootReadCapacity (\r
- IN USB_MASS_DEVICE *UsbMass\r
+ IN USB_MASS_DEVICE *UsbMass\r
)\r
{\r
- USB_BOOT_READ_CAPACITY_CMD CapacityCmd;\r
- USB_BOOT_READ_CAPACITY_DATA CapacityData;\r
- EFI_BLOCK_IO_MEDIA *Media;\r
- EFI_STATUS Status;\r
- UINT32 BlockSize;\r
+ USB_BOOT_READ_CAPACITY_CMD CapacityCmd;\r
+ USB_BOOT_READ_CAPACITY_DATA CapacityData;\r
+ EFI_BLOCK_IO_MEDIA *Media;\r
+ EFI_STATUS Status;\r
+ UINT32 BlockSize;\r
\r
- Media = &UsbMass->BlockIoMedia;\r
+ Media = &UsbMass->BlockIoMedia;\r
\r
ZeroMem (&CapacityCmd, sizeof (USB_BOOT_READ_CAPACITY_CMD));\r
ZeroMem (&CapacityData, sizeof (USB_BOOT_READ_CAPACITY_DATA));\r
\r
CapacityCmd.OpCode = USB_BOOT_READ_CAPACITY_OPCODE;\r
- CapacityCmd.Lun = (UINT8) (USB_BOOT_LUN (UsbMass->Lun));\r
+ CapacityCmd.Lun = (UINT8)(USB_BOOT_LUN (UsbMass->Lun));\r
\r
Status = UsbBootExecCmdWithRetry (\r
UsbMass,\r
&CapacityCmd,\r
- (UINT8) sizeof (USB_BOOT_READ_CAPACITY_CMD),\r
+ (UINT8)sizeof (USB_BOOT_READ_CAPACITY_CMD),\r
EfiUsbDataIn,\r
&CapacityData,\r
sizeof (USB_BOOT_READ_CAPACITY_DATA),\r
// from READ CAPACITY data.\r
//\r
Media->MediaPresent = TRUE;\r
- Media->LastBlock = SwapBytes32 (ReadUnaligned32 ((CONST UINT32 *) CapacityData.LastLba));\r
+ Media->LastBlock = SwapBytes32 (ReadUnaligned32 ((CONST UINT32 *)CapacityData.LastLba));\r
\r
- BlockSize = SwapBytes32 (ReadUnaligned32 ((CONST UINT32 *) CapacityData.BlockLen));\r
+ BlockSize = SwapBytes32 (ReadUnaligned32 ((CONST UINT32 *)CapacityData.BlockLen));\r
if (BlockSize == 0) {\r
//\r
// Get sense data\r
**/\r
EFI_STATUS\r
UsbScsiModeSense (\r
- IN USB_MASS_DEVICE *UsbMass\r
+ IN USB_MASS_DEVICE *UsbMass\r
)\r
{\r
- EFI_STATUS Status;\r
- USB_SCSI_MODE_SENSE6_CMD ModeSenseCmd;\r
- USB_SCSI_MODE_SENSE6_PARA_HEADER ModeParaHeader;\r
- EFI_BLOCK_IO_MEDIA *Media;\r
+ EFI_STATUS Status;\r
+ USB_SCSI_MODE_SENSE6_CMD ModeSenseCmd;\r
+ USB_SCSI_MODE_SENSE6_PARA_HEADER ModeParaHeader;\r
+ EFI_BLOCK_IO_MEDIA *Media;\r
\r
- Media = &UsbMass->BlockIoMedia;\r
+ Media = &UsbMass->BlockIoMedia;\r
\r
ZeroMem (&ModeSenseCmd, sizeof (USB_SCSI_MODE_SENSE6_CMD));\r
ZeroMem (&ModeParaHeader, sizeof (USB_SCSI_MODE_SENSE6_PARA_HEADER));\r
//\r
// MODE SENSE(6) command is defined in Section 8.2.10 of SCSI-2 Spec\r
//\r
- ModeSenseCmd.OpCode = USB_SCSI_MODE_SENSE6_OPCODE;\r
- ModeSenseCmd.Lun = (UINT8) USB_BOOT_LUN (UsbMass->Lun);\r
- ModeSenseCmd.PageCode = 0x3F;\r
- ModeSenseCmd.AllocateLen = (UINT8) sizeof (USB_SCSI_MODE_SENSE6_PARA_HEADER);\r
+ ModeSenseCmd.OpCode = USB_SCSI_MODE_SENSE6_OPCODE;\r
+ ModeSenseCmd.Lun = (UINT8)USB_BOOT_LUN (UsbMass->Lun);\r
+ ModeSenseCmd.PageCode = 0x3F;\r
+ ModeSenseCmd.AllocateLen = (UINT8)sizeof (USB_SCSI_MODE_SENSE6_PARA_HEADER);\r
\r
Status = UsbBootExecCmdWithRetry (\r
UsbMass,\r
&ModeSenseCmd,\r
- (UINT8) sizeof (USB_SCSI_MODE_SENSE6_CMD),\r
+ (UINT8)sizeof (USB_SCSI_MODE_SENSE6_CMD),\r
EfiUsbDataIn,\r
&ModeParaHeader,\r
sizeof (USB_SCSI_MODE_SENSE6_PARA_HEADER),\r
// BIT7 of this byte is indicates whether the medium is write protected.\r
//\r
if (!EFI_ERROR (Status)) {\r
- Media->ReadOnly = (BOOLEAN) ((ModeParaHeader.DevicePara & BIT7) != 0);\r
+ Media->ReadOnly = (BOOLEAN)((ModeParaHeader.DevicePara & BIT7) != 0);\r
}\r
\r
return Status;\r
}\r
\r
-\r
/**\r
Get the parameters for the USB mass storage media.\r
\r
**/\r
EFI_STATUS\r
UsbBootGetParams (\r
- IN USB_MASS_DEVICE *UsbMass\r
+ IN USB_MASS_DEVICE *UsbMass\r
)\r
{\r
- EFI_BLOCK_IO_MEDIA *Media;\r
- EFI_STATUS Status;\r
+ EFI_BLOCK_IO_MEDIA *Media;\r
+ EFI_STATUS Status;\r
\r
- Media = &(UsbMass->BlockIoMedia);\r
+ Media = &(UsbMass->BlockIoMedia);\r
\r
Status = UsbBootInquiry (UsbMass);\r
if (EFI_ERROR (Status)) {\r
// 4 Peripheral Device Types are in spec.\r
//\r
if ((UsbMass->Pdt != USB_PDT_DIRECT_ACCESS) &&\r
- (UsbMass->Pdt != USB_PDT_CDROM) &&\r
- (UsbMass->Pdt != USB_PDT_OPTICAL) &&\r
- (UsbMass->Pdt != USB_PDT_SIMPLE_DIRECT)) {\r
+ (UsbMass->Pdt != USB_PDT_CDROM) &&\r
+ (UsbMass->Pdt != USB_PDT_OPTICAL) &&\r
+ (UsbMass->Pdt != USB_PDT_SIMPLE_DIRECT))\r
+ {\r
DEBUG ((DEBUG_ERROR, "UsbBootGetParams: Found an unsupported peripheral type[%d]\n", UsbMass->Pdt));\r
return EFI_UNSUPPORTED;\r
}\r
//\r
// Default value 2048 Bytes, in case no media present at first time\r
//\r
- Media->BlockSize = 0x0800;\r
+ Media->BlockSize = 0x0800;\r
}\r
\r
Status = UsbBootDetectMedia (UsbMass);\r
return Status;\r
}\r
\r
-\r
/**\r
Detect whether the removable media is present and whether it has changed.\r
\r
**/\r
EFI_STATUS\r
UsbBootDetectMedia (\r
- IN USB_MASS_DEVICE *UsbMass\r
+ IN USB_MASS_DEVICE *UsbMass\r
)\r
{\r
- EFI_BLOCK_IO_MEDIA OldMedia;\r
- EFI_BLOCK_IO_MEDIA *Media;\r
- UINT8 CmdSet;\r
- EFI_STATUS Status;\r
+ EFI_BLOCK_IO_MEDIA OldMedia;\r
+ EFI_BLOCK_IO_MEDIA *Media;\r
+ UINT8 CmdSet;\r
+ EFI_STATUS Status;\r
\r
- Media = &UsbMass->BlockIoMedia;\r
+ Media = &UsbMass->BlockIoMedia;\r
\r
CopyMem (&OldMedia, &(UsbMass->BlockIoMedia), sizeof (EFI_BLOCK_IO_MEDIA));\r
\r
- CmdSet = ((EFI_USB_INTERFACE_DESCRIPTOR *) (UsbMass->Context))->InterfaceSubClass;\r
+ CmdSet = ((EFI_USB_INTERFACE_DESCRIPTOR *)(UsbMass->Context))->InterfaceSubClass;\r
\r
Status = UsbBootIsUnitReady (UsbMass);\r
if (EFI_ERROR (Status)) {\r
}\r
}\r
\r
- if (EFI_ERROR (Status) && Status != EFI_NO_MEDIA) {\r
+ if (EFI_ERROR (Status) && (Status != EFI_NO_MEDIA)) {\r
//\r
// For NoMedia, BlockIo is still needed.\r
//\r
(Media->MediaPresent != OldMedia.MediaPresent) ||\r
(Media->ReadOnly != OldMedia.ReadOnly) ||\r
(Media->BlockSize != OldMedia.BlockSize) ||\r
- (Media->LastBlock != OldMedia.LastBlock)) {\r
-\r
+ (Media->LastBlock != OldMedia.LastBlock))\r
+ {\r
//\r
// This function is called from:\r
// Block I/O Protocol APIs, which run at TPL_CALLBACK.\r
\r
if ((Media->ReadOnly != OldMedia.ReadOnly) ||\r
(Media->BlockSize != OldMedia.BlockSize) ||\r
- (Media->LastBlock != OldMedia.LastBlock)) {\r
+ (Media->LastBlock != OldMedia.LastBlock))\r
+ {\r
Media->MediaId++;\r
}\r
\r
return Status;\r
}\r
\r
-\r
/**\r
Read or write some blocks from the device.\r
\r
**/\r
EFI_STATUS\r
UsbBootReadWriteBlocks (\r
- IN USB_MASS_DEVICE *UsbMass,\r
- IN BOOLEAN Write,\r
- IN UINT32 Lba,\r
- IN UINTN TotalBlock,\r
- IN OUT UINT8 *Buffer\r
+ IN USB_MASS_DEVICE *UsbMass,\r
+ IN BOOLEAN Write,\r
+ IN UINT32 Lba,\r
+ IN UINTN TotalBlock,\r
+ IN OUT UINT8 *Buffer\r
)\r
{\r
- USB_BOOT_READ_WRITE_10_CMD Cmd;\r
- EFI_STATUS Status;\r
- UINT32 Count;\r
- UINT32 CountMax;\r
- UINT32 BlockSize;\r
- UINT32 ByteSize;\r
- UINT32 Timeout;\r
+ USB_BOOT_READ_WRITE_10_CMD Cmd;\r
+ EFI_STATUS Status;\r
+ UINT32 Count;\r
+ UINT32 CountMax;\r
+ UINT32 BlockSize;\r
+ UINT32 ByteSize;\r
+ UINT32 Timeout;\r
\r
BlockSize = UsbMass->BlockIoMedia.BlockSize;\r
CountMax = USB_BOOT_MAX_CARRY_SIZE / BlockSize;\r
//\r
// USB command's upper limit timeout is 5s. [USB2.0-9.2.6.1]\r
//\r
- Timeout = (UINT32) USB_BOOT_GENERAL_CMD_TIMEOUT;\r
+ Timeout = (UINT32)USB_BOOT_GENERAL_CMD_TIMEOUT;\r
\r
//\r
// Fill in the command then execute\r
//\r
ZeroMem (&Cmd, sizeof (USB_BOOT_READ_WRITE_10_CMD));\r
\r
- Cmd.OpCode = Write ? USB_BOOT_WRITE10_OPCODE : USB_BOOT_READ10_OPCODE;\r
- Cmd.Lun = (UINT8) (USB_BOOT_LUN (UsbMass->Lun));\r
- WriteUnaligned32 ((UINT32 *) Cmd.Lba, SwapBytes32 (Lba));\r
- WriteUnaligned16 ((UINT16 *) Cmd.TransferLen, SwapBytes16 ((UINT16)Count));\r
+ Cmd.OpCode = Write ? USB_BOOT_WRITE10_OPCODE : USB_BOOT_READ10_OPCODE;\r
+ Cmd.Lun = (UINT8)(USB_BOOT_LUN (UsbMass->Lun));\r
+ WriteUnaligned32 ((UINT32 *)Cmd.Lba, SwapBytes32 (Lba));\r
+ WriteUnaligned16 ((UINT16 *)Cmd.TransferLen, SwapBytes16 ((UINT16)Count));\r
\r
Status = UsbBootExecCmdWithRetry (\r
UsbMass,\r
&Cmd,\r
- (UINT8) sizeof (USB_BOOT_READ_WRITE_10_CMD),\r
+ (UINT8)sizeof (USB_BOOT_READ_WRITE_10_CMD),\r
Write ? EfiUsbDataOut : EfiUsbDataIn,\r
Buffer,\r
ByteSize,\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
DEBUG ((\r
- DEBUG_BLKIO, "UsbBoot%sBlocks: LBA (0x%lx), Blk (0x%x)\n",\r
+ DEBUG_BLKIO,\r
+ "UsbBoot%sBlocks: LBA (0x%lx), Blk (0x%x)\n",\r
Write ? L"Write" : L"Read",\r
- Lba, Count\r
+ Lba,\r
+ Count\r
));\r
Lba += Count;\r
Buffer += ByteSize;\r
**/\r
EFI_STATUS\r
UsbBootReadWriteBlocks16 (\r
- IN USB_MASS_DEVICE *UsbMass,\r
- IN BOOLEAN Write,\r
- IN UINT64 Lba,\r
- IN UINTN TotalBlock,\r
- IN OUT UINT8 *Buffer\r
+ IN USB_MASS_DEVICE *UsbMass,\r
+ IN BOOLEAN Write,\r
+ IN UINT64 Lba,\r
+ IN UINTN TotalBlock,\r
+ IN OUT UINT8 *Buffer\r
)\r
{\r
- UINT8 Cmd[16];\r
- EFI_STATUS Status;\r
- UINT32 Count;\r
- UINT32 CountMax;\r
- UINT32 BlockSize;\r
- UINT32 ByteSize;\r
- UINT32 Timeout;\r
+ UINT8 Cmd[16];\r
+ EFI_STATUS Status;\r
+ UINT32 Count;\r
+ UINT32 CountMax;\r
+ UINT32 BlockSize;\r
+ UINT32 ByteSize;\r
+ UINT32 Timeout;\r
\r
BlockSize = UsbMass->BlockIoMedia.BlockSize;\r
CountMax = USB_BOOT_MAX_CARRY_SIZE / BlockSize;\r
//\r
// USB command's upper limit timeout is 5s. [USB2.0-9.2.6.1]\r
//\r
- Timeout = (UINT32) USB_BOOT_GENERAL_CMD_TIMEOUT;\r
+ Timeout = (UINT32)USB_BOOT_GENERAL_CMD_TIMEOUT;\r
\r
//\r
// Fill in the command then execute\r
//\r
ZeroMem (Cmd, sizeof (Cmd));\r
\r
- Cmd[0] = Write ? EFI_SCSI_OP_WRITE16 : EFI_SCSI_OP_READ16;\r
- Cmd[1] = (UINT8) ((USB_BOOT_LUN (UsbMass->Lun) & 0xE0));\r
- WriteUnaligned64 ((UINT64 *) &Cmd[2], SwapBytes64 (Lba));\r
- WriteUnaligned32 ((UINT32 *) &Cmd[10], SwapBytes32 (Count));\r
+ Cmd[0] = Write ? EFI_SCSI_OP_WRITE16 : EFI_SCSI_OP_READ16;\r
+ Cmd[1] = (UINT8)((USB_BOOT_LUN (UsbMass->Lun) & 0xE0));\r
+ WriteUnaligned64 ((UINT64 *)&Cmd[2], SwapBytes64 (Lba));\r
+ WriteUnaligned32 ((UINT32 *)&Cmd[10], SwapBytes32 (Count));\r
\r
Status = UsbBootExecCmdWithRetry (\r
UsbMass,\r
Cmd,\r
- (UINT8) sizeof (Cmd),\r
+ (UINT8)sizeof (Cmd),\r
Write ? EfiUsbDataOut : EfiUsbDataIn,\r
Buffer,\r
ByteSize,\r
if (EFI_ERROR (Status)) {\r
return Status;\r
}\r
+\r
DEBUG ((\r
- DEBUG_BLKIO, "UsbBoot%sBlocks16: LBA (0x%lx), Blk (0x%x)\n",\r
+ DEBUG_BLKIO,\r
+ "UsbBoot%sBlocks16: LBA (0x%lx), Blk (0x%x)\n",\r
Write ? L"Write" : L"Read",\r
- Lba, Count\r
+ Lba,\r
+ Count\r
));\r
Lba += Count;\r
Buffer += ByteSize;\r
**/\r
EFI_STATUS\r
UsbClearEndpointStall (\r
- IN EFI_USB_IO_PROTOCOL *UsbIo,\r
- IN UINT8 EndpointAddr\r
+ IN EFI_USB_IO_PROTOCOL *UsbIo,\r
+ IN UINT8 EndpointAddr\r
)\r
{\r
- EFI_USB_DEVICE_REQUEST Request;\r
- EFI_STATUS Status;\r
- UINT32 CmdResult;\r
- UINT32 Timeout;\r
+ EFI_USB_DEVICE_REQUEST Request;\r
+ EFI_STATUS Status;\r
+ UINT32 CmdResult;\r
+ UINT32 Timeout;\r
\r
Request.RequestType = 0x02;\r
Request.Request = USB_REQ_CLEAR_FEATURE;\r