#include "UsbBotPeim.h"\r
#include "BotPeim.h"\r
\r
-#define MAXSENSEKEY 5\r
+#define MAXSENSEKEY 5\r
\r
/**\r
Sends out ATAPI Inquiry Packet Command to the specified device. This command will\r
{\r
ATAPI_PACKET_COMMAND Packet;\r
EFI_STATUS Status;\r
- ATAPI_INQUIRY_DATA Idata;\r
+ ATAPI_INQUIRY_DATA Idata;\r
\r
//\r
// fill command packet\r
ZeroMem (&Packet, sizeof (ATAPI_PACKET_COMMAND));\r
ZeroMem (&Idata, sizeof (ATAPI_INQUIRY_DATA));\r
\r
- Packet.Inquiry.opcode = ATA_CMD_INQUIRY;\r
- Packet.Inquiry.page_code = 0;\r
- Packet.Inquiry.allocation_length = 36;\r
+ Packet.Inquiry.opcode = ATA_CMD_INQUIRY;\r
+ Packet.Inquiry.page_code = 0;\r
+ Packet.Inquiry.allocation_length = 36;\r
\r
//\r
// Send scsi INQUIRY command packet.\r
// retrieve the first 36 bytes for standard INQUIRY data.\r
//\r
Status = PeiAtapiCommand (\r
- PeiServices,\r
- PeiBotDevice,\r
- &Packet,\r
- (UINT8) sizeof (ATAPI_PACKET_COMMAND),\r
- &Idata,\r
- 36,\r
- EfiUsbDataIn,\r
- 2000\r
- );\r
+ PeiServices,\r
+ PeiBotDevice,\r
+ &Packet,\r
+ (UINT8)sizeof (ATAPI_PACKET_COMMAND),\r
+ &Idata,\r
+ 36,\r
+ EfiUsbDataIn,\r
+ 2000\r
+ );\r
\r
if (EFI_ERROR (Status)) {\r
return EFI_DEVICE_ERROR;\r
}\r
\r
if ((Idata.peripheral_type & 0x1f) == 0x05) {\r
- PeiBotDevice->DeviceType = USBCDROM;\r
- PeiBotDevice->Media.BlockSize = 0x800;\r
+ PeiBotDevice->DeviceType = USBCDROM;\r
+ PeiBotDevice->Media.BlockSize = 0x800;\r
PeiBotDevice->Media2.ReadOnly = TRUE;\r
PeiBotDevice->Media2.RemovableMedia = TRUE;\r
PeiBotDevice->Media2.BlockSize = 0x800;\r
} else {\r
- PeiBotDevice->DeviceType = USBFLOPPY;\r
- PeiBotDevice->Media.BlockSize = 0x200;\r
+ PeiBotDevice->DeviceType = USBFLOPPY;\r
+ PeiBotDevice->Media.BlockSize = 0x200;\r
PeiBotDevice->Media2.ReadOnly = FALSE;\r
PeiBotDevice->Media2.RemovableMedia = TRUE;\r
PeiBotDevice->Media2.BlockSize = 0x200;\r
// send command packet\r
//\r
Status = PeiAtapiCommand (\r
- PeiServices,\r
- PeiBotDevice,\r
- &Packet,\r
- (UINT8) sizeof (ATAPI_PACKET_COMMAND),\r
- NULL,\r
- 0,\r
- EfiUsbNoData,\r
- 2000\r
- );\r
+ PeiServices,\r
+ PeiBotDevice,\r
+ &Packet,\r
+ (UINT8)sizeof (ATAPI_PACKET_COMMAND),\r
+ NULL,\r
+ 0,\r
+ EfiUsbNoData,\r
+ 2000\r
+ );\r
\r
if (EFI_ERROR (Status)) {\r
return EFI_DEVICE_ERROR;\r
IN UINT8 *SenseKeyBuffer\r
)\r
{\r
- EFI_STATUS Status;\r
- ATAPI_PACKET_COMMAND Packet;\r
- UINT8 *Ptr;\r
- BOOLEAN SenseReq;\r
- ATAPI_REQUEST_SENSE_DATA *Sense;\r
+ EFI_STATUS Status;\r
+ ATAPI_PACKET_COMMAND Packet;\r
+ UINT8 *Ptr;\r
+ BOOLEAN SenseReq;\r
+ ATAPI_REQUEST_SENSE_DATA *Sense;\r
\r
*SenseCounts = 0;\r
\r
//\r
ZeroMem (&Packet, sizeof (ATAPI_PACKET_COMMAND));\r
Packet.RequestSence.opcode = ATA_CMD_REQUEST_SENSE;\r
- Packet.RequestSence.allocation_length = (UINT8) sizeof (ATAPI_REQUEST_SENSE_DATA);\r
+ Packet.RequestSence.allocation_length = (UINT8)sizeof (ATAPI_REQUEST_SENSE_DATA);\r
\r
Ptr = SenseKeyBuffer;\r
\r
// until no sense data exists in the device.\r
//\r
while (SenseReq) {\r
- Sense = (ATAPI_REQUEST_SENSE_DATA *) Ptr;\r
+ Sense = (ATAPI_REQUEST_SENSE_DATA *)Ptr;\r
\r
//\r
// send out Request Sense Packet Command and get one Sense\r
// data form device.\r
//\r
Status = PeiAtapiCommand (\r
- PeiServices,\r
- PeiBotDevice,\r
- &Packet,\r
- (UINT8) sizeof (ATAPI_PACKET_COMMAND),\r
- (VOID *) Ptr,\r
- sizeof (ATAPI_REQUEST_SENSE_DATA),\r
- EfiUsbDataIn,\r
- 2000\r
- );\r
+ PeiServices,\r
+ PeiBotDevice,\r
+ &Packet,\r
+ (UINT8)sizeof (ATAPI_PACKET_COMMAND),\r
+ (VOID *)Ptr,\r
+ sizeof (ATAPI_REQUEST_SENSE_DATA),\r
+ EfiUsbDataIn,\r
+ 2000\r
+ );\r
\r
//\r
// failed to get Sense data\r
}\r
\r
if (Sense->sense_key != ATA_SK_NO_SENSE) {\r
-\r
Ptr += sizeof (ATAPI_REQUEST_SENSE_DATA);\r
//\r
// Ptr is byte based pointer\r
if (*SenseCounts == MAXSENSEKEY) {\r
break;\r
}\r
-\r
} else {\r
//\r
// when no sense key, skip out the loop\r
IN PEI_BOT_DEVICE *PeiBotDevice\r
)\r
{\r
- EFI_STATUS Status;\r
- ATAPI_PACKET_COMMAND Packet;\r
- ATAPI_READ_CAPACITY_DATA Data;\r
- UINT32 LastBlock;\r
+ EFI_STATUS Status;\r
+ ATAPI_PACKET_COMMAND Packet;\r
+ ATAPI_READ_CAPACITY_DATA Data;\r
+ UINT32 LastBlock;\r
\r
ZeroMem (&Data, sizeof (ATAPI_READ_CAPACITY_DATA));\r
ZeroMem (&Packet, sizeof (ATAPI_PACKET_COMMAND));\r
// send command packet\r
//\r
Status = PeiAtapiCommand (\r
- PeiServices,\r
- PeiBotDevice,\r
- &Packet,\r
- (UINT8) sizeof (ATAPI_PACKET_COMMAND),\r
- (VOID *) &Data,\r
- sizeof (ATAPI_READ_CAPACITY_DATA),\r
- EfiUsbDataIn,\r
- 2000\r
- );\r
+ PeiServices,\r
+ PeiBotDevice,\r
+ &Packet,\r
+ (UINT8)sizeof (ATAPI_PACKET_COMMAND),\r
+ (VOID *)&Data,\r
+ sizeof (ATAPI_READ_CAPACITY_DATA),\r
+ EfiUsbDataIn,\r
+ 2000\r
+ );\r
\r
if (EFI_ERROR (Status)) {\r
return EFI_DEVICE_ERROR;\r
}\r
- LastBlock = ((UINT32) Data.LastLba3 << 24) | (Data.LastLba2 << 16) | (Data.LastLba1 << 8) | Data.LastLba0;\r
+\r
+ LastBlock = ((UINT32)Data.LastLba3 << 24) | (Data.LastLba2 << 16) | (Data.LastLba1 << 8) | Data.LastLba0;\r
\r
if (LastBlock == 0xFFFFFFFF) {\r
DEBUG ((DEBUG_INFO, "The usb device LBA count is larger than 0xFFFFFFFF!\n"));\r
IN PEI_BOT_DEVICE *PeiBotDevice\r
)\r
{\r
- EFI_STATUS Status;\r
- ATAPI_PACKET_COMMAND Packet;\r
- ATAPI_READ_FORMAT_CAPACITY_DATA FormatData;\r
- UINT32 LastBlock;\r
+ EFI_STATUS Status;\r
+ ATAPI_PACKET_COMMAND Packet;\r
+ ATAPI_READ_FORMAT_CAPACITY_DATA FormatData;\r
+ UINT32 LastBlock;\r
\r
ZeroMem (&FormatData, sizeof (ATAPI_READ_FORMAT_CAPACITY_DATA));\r
ZeroMem (&Packet, sizeof (ATAPI_PACKET_COMMAND));\r
\r
- Packet.ReadFormatCapacity.opcode = ATA_CMD_READ_FORMAT_CAPACITY;\r
- Packet.ReadFormatCapacity.allocation_length_lo = 12;\r
+ Packet.ReadFormatCapacity.opcode = ATA_CMD_READ_FORMAT_CAPACITY;\r
+ Packet.ReadFormatCapacity.allocation_length_lo = 12;\r
\r
//\r
// send command packet\r
//\r
Status = PeiAtapiCommand (\r
- PeiServices,\r
- PeiBotDevice,\r
- &Packet,\r
- (UINT8) sizeof (ATAPI_PACKET_COMMAND),\r
- (VOID *) &FormatData,\r
- sizeof (ATAPI_READ_FORMAT_CAPACITY_DATA),\r
- EfiUsbDataIn,\r
- 2000\r
- );\r
+ PeiServices,\r
+ PeiBotDevice,\r
+ &Packet,\r
+ (UINT8)sizeof (ATAPI_PACKET_COMMAND),\r
+ (VOID *)&FormatData,\r
+ sizeof (ATAPI_READ_FORMAT_CAPACITY_DATA),\r
+ EfiUsbDataIn,\r
+ 2000\r
+ );\r
\r
if (EFI_ERROR (Status)) {\r
return EFI_DEVICE_ERROR;\r
//\r
PeiBotDevice->Media.MediaPresent = FALSE;\r
PeiBotDevice->Media.LastBlock = 0;\r
- PeiBotDevice->Media2.MediaPresent = FALSE;\r
- PeiBotDevice->Media2.LastBlock = 0;\r
-\r
+ PeiBotDevice->Media2.MediaPresent = FALSE;\r
+ PeiBotDevice->Media2.LastBlock = 0;\r
} else {\r
- LastBlock = ((UINT32) FormatData.LastLba3 << 24) | (FormatData.LastLba2 << 16) | (FormatData.LastLba1 << 8) | FormatData.LastLba0;\r
+ LastBlock = ((UINT32)FormatData.LastLba3 << 24) | (FormatData.LastLba2 << 16) | (FormatData.LastLba1 << 8) | FormatData.LastLba0;\r
if (LastBlock == 0xFFFFFFFF) {\r
DEBUG ((DEBUG_INFO, "The usb device LBA count is larger than 0xFFFFFFFF!\n"));\r
}\r
// prepare command packet for the Inquiry Packet Command.\r
//\r
ZeroMem (&Packet, sizeof (ATAPI_PACKET_COMMAND));\r
- Read10Packet = &Packet.Read10;\r
- Lba32 = (UINT32) Lba;\r
- PtrBuffer = Buffer;\r
+ Read10Packet = &Packet.Read10;\r
+ Lba32 = (UINT32)Lba;\r
+ PtrBuffer = Buffer;\r
\r
- BlockSize = (UINT32) PeiBotDevice->Media.BlockSize;\r
+ BlockSize = (UINT32)PeiBotDevice->Media.BlockSize;\r
\r
- MaxBlock = (UINT16) (65535 / BlockSize);\r
- BlocksRemaining = (UINT16) NumberOfBlocks;\r
+ MaxBlock = (UINT16)(65535 / BlockSize);\r
+ BlocksRemaining = (UINT16)NumberOfBlocks;\r
\r
- Status = EFI_SUCCESS;\r
+ Status = EFI_SUCCESS;\r
while (BlocksRemaining > 0) {\r
-\r
if (BlocksRemaining <= MaxBlock) {\r
-\r
SectorCount = BlocksRemaining;\r
-\r
} else {\r
-\r
SectorCount = MaxBlock;\r
}\r
+\r
//\r
// fill the Packet data structure\r
//\r
// Lba0 ~ Lba3 specify the start logical block address of the data transfer.\r
// Lba0 is MSB, Lba3 is LSB\r
//\r
- Read10Packet->Lba3 = (UINT8) (Lba32 & 0xff);\r
- Read10Packet->Lba2 = (UINT8) (Lba32 >> 8);\r
- Read10Packet->Lba1 = (UINT8) (Lba32 >> 16);\r
- Read10Packet->Lba0 = (UINT8) (Lba32 >> 24);\r
+ Read10Packet->Lba3 = (UINT8)(Lba32 & 0xff);\r
+ Read10Packet->Lba2 = (UINT8)(Lba32 >> 8);\r
+ Read10Packet->Lba1 = (UINT8)(Lba32 >> 16);\r
+ Read10Packet->Lba0 = (UINT8)(Lba32 >> 24);\r
\r
//\r
// TranLen0 ~ TranLen1 specify the transfer length in block unit.\r
// TranLen0 is MSB, TranLen is LSB\r
//\r
- Read10Packet->TranLen1 = (UINT8) (SectorCount & 0xff);\r
- Read10Packet->TranLen0 = (UINT8) (SectorCount >> 8);\r
+ Read10Packet->TranLen1 = (UINT8)(SectorCount & 0xff);\r
+ Read10Packet->TranLen0 = (UINT8)(SectorCount >> 8);\r
\r
- ByteCount = SectorCount * BlockSize;\r
+ ByteCount = SectorCount * BlockSize;\r
\r
- TimeOut = (UINT16) (SectorCount * 2000);\r
+ TimeOut = (UINT16)(SectorCount * 2000);\r
\r
//\r
// send command packet\r
//\r
Status = PeiAtapiCommand (\r
- PeiServices,\r
- PeiBotDevice,\r
- &Packet,\r
- (UINT8) sizeof (ATAPI_PACKET_COMMAND),\r
- (VOID *) PtrBuffer,\r
- ByteCount,\r
- EfiUsbDataIn,\r
- TimeOut\r
- );\r
+ PeiServices,\r
+ PeiBotDevice,\r
+ &Packet,\r
+ (UINT8)sizeof (ATAPI_PACKET_COMMAND),\r
+ (VOID *)PtrBuffer,\r
+ ByteCount,\r
+ EfiUsbDataIn,\r
+ TimeOut\r
+ );\r
\r
if (Status != EFI_SUCCESS) {\r
return Status;\r
}\r
\r
- Lba32 += SectorCount;\r
- PtrBuffer = (UINT8 *) PtrBuffer + SectorCount * BlockSize;\r
- BlocksRemaining = (UINT16) (BlocksRemaining - SectorCount);\r
+ Lba32 += SectorCount;\r
+ PtrBuffer = (UINT8 *)PtrBuffer + SectorCount * BlockSize;\r
+ BlocksRemaining = (UINT16)(BlocksRemaining - SectorCount);\r
}\r
\r
return Status;\r
**/\r
BOOLEAN\r
IsNoMedia (\r
- IN ATAPI_REQUEST_SENSE_DATA *SenseData,\r
- IN UINTN SenseCounts\r
+ IN ATAPI_REQUEST_SENSE_DATA *SenseData,\r
+ IN UINTN SenseCounts\r
)\r
{\r
ATAPI_REQUEST_SENSE_DATA *SensePtr;\r
UINTN Index;\r
BOOLEAN NoMedia;\r
\r
- NoMedia = FALSE;\r
- SensePtr = SenseData;\r
+ NoMedia = FALSE;\r
+ SensePtr = SenseData;\r
\r
for (Index = 0; Index < SenseCounts; Index++) {\r
-\r
switch (SensePtr->sense_key) {\r
+ case ATA_SK_NOT_READY:\r
+ switch (SensePtr->addnl_sense_code) {\r
+ //\r
+ // if no media, fill IdeDev parameter with specific info.\r
+ //\r
+ case ATA_ASC_NO_MEDIA:\r
+ NoMedia = TRUE;\r
+ break;\r
+\r
+ default:\r
+ break;\r
+ }\r
\r
- case ATA_SK_NOT_READY:\r
- switch (SensePtr->addnl_sense_code) {\r
- //\r
- // if no media, fill IdeDev parameter with specific info.\r
- //\r
- case ATA_ASC_NO_MEDIA:\r
- NoMedia = TRUE;\r
break;\r
\r
default:\r
break;\r
- }\r
- break;\r
-\r
- default:\r
- break;\r
}\r
\r
SensePtr++;\r
**/\r
BOOLEAN\r
IsMediaError (\r
- IN ATAPI_REQUEST_SENSE_DATA *SenseData,\r
- IN UINTN SenseCounts\r
+ IN ATAPI_REQUEST_SENSE_DATA *SenseData,\r
+ IN UINTN SenseCounts\r
)\r
{\r
ATAPI_REQUEST_SENSE_DATA *SensePtr;\r
UINTN Index;\r
BOOLEAN Error;\r
\r
- SensePtr = SenseData;\r
- Error = FALSE;\r
+ SensePtr = SenseData;\r
+ Error = FALSE;\r
\r
for (Index = 0; Index < SenseCounts; Index++) {\r
-\r
switch (SensePtr->sense_key) {\r
- //\r
- // Medium error case\r
- //\r
- case ATA_SK_MEDIUM_ERROR:\r
- switch (SensePtr->addnl_sense_code) {\r
- case ATA_ASC_MEDIA_ERR1:\r
- //\r
- // fall through\r
- //\r
- case ATA_ASC_MEDIA_ERR2:\r
- //\r
- // fall through\r
- //\r
- case ATA_ASC_MEDIA_ERR3:\r
- //\r
- // fall through\r
- //\r
- case ATA_ASC_MEDIA_ERR4:\r
- Error = TRUE;\r
- break;\r
+ //\r
+ // Medium error case\r
+ //\r
+ case ATA_SK_MEDIUM_ERROR:\r
+ switch (SensePtr->addnl_sense_code) {\r
+ case ATA_ASC_MEDIA_ERR1:\r
+ //\r
+ // fall through\r
+ //\r
+ case ATA_ASC_MEDIA_ERR2:\r
+ //\r
+ // fall through\r
+ //\r
+ case ATA_ASC_MEDIA_ERR3:\r
+ //\r
+ // fall through\r
+ //\r
+ case ATA_ASC_MEDIA_ERR4:\r
+ Error = TRUE;\r
+ break;\r
+\r
+ default:\r
+ break;\r
+ }\r
\r
- default:\r
break;\r
- }\r
\r
- break;\r
+ //\r
+ // Medium upside-down case\r
+ //\r
+ case ATA_SK_NOT_READY:\r
+ switch (SensePtr->addnl_sense_code) {\r
+ case ATA_ASC_MEDIA_UPSIDE_DOWN:\r
+ Error = TRUE;\r
+ break;\r
+\r
+ default:\r
+ break;\r
+ }\r
\r
- //\r
- // Medium upside-down case\r
- //\r
- case ATA_SK_NOT_READY:\r
- switch (SensePtr->addnl_sense_code) {\r
- case ATA_ASC_MEDIA_UPSIDE_DOWN:\r
- Error = TRUE;\r
break;\r
\r
default:\r
break;\r
- }\r
- break;\r
-\r
- default:\r
- break;\r
}\r
\r
SensePtr++;\r
**/\r
BOOLEAN\r
IsMediaChange (\r
- IN ATAPI_REQUEST_SENSE_DATA *SenseData,\r
- IN UINTN SenseCounts\r
+ IN ATAPI_REQUEST_SENSE_DATA *SenseData,\r
+ IN UINTN SenseCounts\r
)\r
{\r
ATAPI_REQUEST_SENSE_DATA *SensePtr;\r
\r
MediaChange = FALSE;\r
\r
- SensePtr = SenseData;\r
+ SensePtr = SenseData;\r
\r
for (Index = 0; Index < SenseCounts; Index++) {\r
//\r
// catch media change sense key and addition sense data\r
//\r
switch (SensePtr->sense_key) {\r
- case ATA_SK_UNIT_ATTENTION:\r
- switch (SensePtr->addnl_sense_code) {\r
- case ATA_ASC_MEDIA_CHANGE:\r
- MediaChange = TRUE;\r
+ case ATA_SK_UNIT_ATTENTION:\r
+ switch (SensePtr->addnl_sense_code) {\r
+ case ATA_ASC_MEDIA_CHANGE:\r
+ MediaChange = TRUE;\r
+ break;\r
+\r
+ default:\r
+ break;\r
+ }\r
+\r
break;\r
\r
default:\r
break;\r
- }\r
- break;\r
-\r
- default:\r
- break;\r
}\r
\r
SensePtr++;\r