// Others are "Group 1 Timeout Commands". That is,\r
// they should be retried if driver is ready.\r
//\r
-#define USB_BOOT_INQUIRY_OPCODE 0x12\r
-#define USB_BOOT_REQUEST_SENSE_OPCODE 0x03\r
-#define USB_BOOT_MODE_SENSE10_OPCODE 0x5A\r
-#define USB_BOOT_READ_CAPACITY_OPCODE 0x25\r
-#define USB_BOOT_TEST_UNIT_READY_OPCODE 0x00\r
-#define USB_BOOT_READ10_OPCODE 0x28\r
-#define USB_BOOT_WRITE10_OPCODE 0x2A\r
+#define USB_BOOT_INQUIRY_OPCODE 0x12\r
+#define USB_BOOT_REQUEST_SENSE_OPCODE 0x03\r
+#define USB_BOOT_MODE_SENSE10_OPCODE 0x5A\r
+#define USB_BOOT_READ_CAPACITY_OPCODE 0x25\r
+#define USB_BOOT_TEST_UNIT_READY_OPCODE 0x00\r
+#define USB_BOOT_READ10_OPCODE 0x28\r
+#define USB_BOOT_WRITE10_OPCODE 0x2A\r
\r
-#define USB_SCSI_MODE_SENSE6_OPCODE 0x1A\r
+#define USB_SCSI_MODE_SENSE6_OPCODE 0x1A\r
\r
//\r
// The Sense Key part of the sense data. Sense data has three levels:\r
//\r
// Supported PDT codes, or Peripheral Device Type\r
//\r
-#define USB_PDT_DIRECT_ACCESS 0x00 ///< Direct access device\r
-#define USB_PDT_CDROM 0x05 ///< CDROM\r
-#define USB_PDT_OPTICAL 0x07 ///< Non-CD optical disks\r
-#define USB_PDT_SIMPLE_DIRECT 0x0E ///< Simplified direct access device\r
+#define USB_PDT_DIRECT_ACCESS 0x00 ///< Direct access device\r
+#define USB_PDT_CDROM 0x05 ///< CDROM\r
+#define USB_PDT_OPTICAL 0x07 ///< Non-CD optical disks\r
+#define USB_PDT_SIMPLE_DIRECT 0x0E ///< Simplified direct access device\r
\r
//\r
// Other parameters, Max carried size is 64KB.\r
//\r
-#define USB_BOOT_MAX_CARRY_SIZE SIZE_64KB\r
+#define USB_BOOT_MAX_CARRY_SIZE SIZE_64KB\r
\r
//\r
// Retry mass command times, set by experience\r
//\r
-#define USB_BOOT_COMMAND_RETRY 5\r
+#define USB_BOOT_COMMAND_RETRY 5\r
\r
//\r
// Wait for unit ready command, set by experience\r
//\r
-#define USB_BOOT_RETRY_UNIT_READY_STALL (500 * USB_MASS_1_MILLISECOND)\r
+#define USB_BOOT_RETRY_UNIT_READY_STALL (500 * USB_MASS_1_MILLISECOND)\r
\r
//\r
// Mass command timeout, refers to specification[USB20-9.2.6.1]\r
// USB CD-Rom and iPod devices are much slower than USB key when response\r
// most of commands, So we set 5s as timeout here.\r
//\r
-#define USB_BOOT_GENERAL_CMD_TIMEOUT (5 * USB_MASS_1_SECOND)\r
+#define USB_BOOT_GENERAL_CMD_TIMEOUT (5 * USB_MASS_1_SECOND)\r
\r
//\r
// The required commands are INQUIRY, READ CAPACITY, TEST UNIT READY,\r
//\r
#pragma pack(1)\r
typedef struct {\r
- UINT8 OpCode;\r
- UINT8 Lun; ///< Lun (high 3 bits)\r
- UINT8 Reserved0[2];\r
- UINT8 AllocLen;\r
- UINT8 Reserved1;\r
- UINT8 Pad[6];\r
+ UINT8 OpCode;\r
+ UINT8 Lun; ///< Lun (high 3 bits)\r
+ UINT8 Reserved0[2];\r
+ UINT8 AllocLen;\r
+ UINT8 Reserved1;\r
+ UINT8 Pad[6];\r
} USB_BOOT_INQUIRY_CMD;\r
\r
typedef struct {\r
- UINT8 Pdt; ///< Peripheral Device Type (low 5 bits)\r
- UINT8 Removable; ///< Removable Media (highest bit)\r
- UINT8 Reserved0[2];\r
- UINT8 AddLen; ///< Additional length\r
- UINT8 Reserved1[3];\r
- UINT8 VendorID[8];\r
- UINT8 ProductID[16];\r
- UINT8 ProductRevision[4];\r
+ UINT8 Pdt; ///< Peripheral Device Type (low 5 bits)\r
+ UINT8 Removable; ///< Removable Media (highest bit)\r
+ UINT8 Reserved0[2];\r
+ UINT8 AddLen; ///< Additional length\r
+ UINT8 Reserved1[3];\r
+ UINT8 VendorID[8];\r
+ UINT8 ProductID[16];\r
+ UINT8 ProductRevision[4];\r
} USB_BOOT_INQUIRY_DATA;\r
\r
typedef struct {\r
- UINT8 OpCode;\r
- UINT8 Lun;\r
- UINT8 Reserved0[8];\r
- UINT8 Pad[2];\r
+ UINT8 OpCode;\r
+ UINT8 Lun;\r
+ UINT8 Reserved0[8];\r
+ UINT8 Pad[2];\r
} USB_BOOT_READ_CAPACITY_CMD;\r
\r
typedef struct {\r
- UINT8 LastLba[4];\r
- UINT8 BlockLen[4];\r
+ UINT8 LastLba[4];\r
+ UINT8 BlockLen[4];\r
} USB_BOOT_READ_CAPACITY_DATA;\r
\r
typedef struct {\r
- UINT8 OpCode;\r
- UINT8 Lun;\r
- UINT8 Reserved[4];\r
- UINT8 Pad[6];\r
+ UINT8 OpCode;\r
+ UINT8 Lun;\r
+ UINT8 Reserved[4];\r
+ UINT8 Pad[6];\r
} USB_BOOT_TEST_UNIT_READY_CMD;\r
\r
typedef struct {\r
- UINT8 OpCode;\r
- UINT8 Lun;\r
- UINT8 PageCode;\r
- UINT8 Reserved0[4];\r
- UINT8 ParaListLenMsb;\r
- UINT8 ParaListLenLsb;\r
- UINT8 Reserved1;\r
- UINT8 Pad[2];\r
+ UINT8 OpCode;\r
+ UINT8 Lun;\r
+ UINT8 PageCode;\r
+ UINT8 Reserved0[4];\r
+ UINT8 ParaListLenMsb;\r
+ UINT8 ParaListLenLsb;\r
+ UINT8 Reserved1;\r
+ UINT8 Pad[2];\r
} USB_BOOT_MODE_SENSE10_CMD;\r
\r
typedef struct {\r
- UINT8 ModeDataLenMsb;\r
- UINT8 ModeDataLenLsb;\r
- UINT8 Reserved0[4];\r
- UINT8 BlkDesLenMsb;\r
- UINT8 BlkDesLenLsb;\r
+ UINT8 ModeDataLenMsb;\r
+ UINT8 ModeDataLenLsb;\r
+ UINT8 Reserved0[4];\r
+ UINT8 BlkDesLenMsb;\r
+ UINT8 BlkDesLenLsb;\r
} USB_BOOT_MODE_SENSE10_PARA_HEADER;\r
\r
typedef struct {\r
- UINT8 OpCode;\r
- UINT8 Lun; ///< Lun (High 3 bits)\r
- UINT8 Lba[4]; ///< Logical block address\r
- UINT8 Reserved0;\r
- UINT8 TransferLen[2]; ///< Transfer length\r
- UINT8 Reserverd1;\r
- UINT8 Pad[2];\r
+ UINT8 OpCode;\r
+ UINT8 Lun; ///< Lun (High 3 bits)\r
+ UINT8 Lba[4]; ///< Logical block address\r
+ UINT8 Reserved0;\r
+ UINT8 TransferLen[2]; ///< Transfer length\r
+ UINT8 Reserverd1;\r
+ UINT8 Pad[2];\r
} USB_BOOT_READ_WRITE_10_CMD;\r
\r
typedef struct {\r
- UINT8 OpCode;\r
- UINT8 Lun; ///< Lun (High 3 bits)\r
- UINT8 Reserved0[2];\r
- UINT8 AllocLen; ///< Allocation length\r
- UINT8 Reserved1;\r
- UINT8 Pad[6];\r
+ UINT8 OpCode;\r
+ UINT8 Lun; ///< Lun (High 3 bits)\r
+ UINT8 Reserved0[2];\r
+ UINT8 AllocLen; ///< Allocation length\r
+ UINT8 Reserved1;\r
+ UINT8 Pad[6];\r
} USB_BOOT_REQUEST_SENSE_CMD;\r
\r
typedef struct {\r
- UINT8 ErrorCode;\r
- UINT8 Reserved0;\r
- UINT8 SenseKey; ///< Sense key (low 4 bits)\r
- UINT8 Infor[4];\r
- UINT8 AddLen; ///< Additional Sense length, 10\r
- UINT8 Reserved1[4];\r
- UINT8 Asc; ///< Additional Sense Code\r
- UINT8 Ascq; ///< Additional Sense Code Qualifier\r
- UINT8 Reserverd2[4];\r
+ UINT8 ErrorCode;\r
+ UINT8 Reserved0;\r
+ UINT8 SenseKey; ///< Sense key (low 4 bits)\r
+ UINT8 Infor[4];\r
+ UINT8 AddLen; ///< Additional Sense length, 10\r
+ UINT8 Reserved1[4];\r
+ UINT8 Asc; ///< Additional Sense Code\r
+ UINT8 Ascq; ///< Additional Sense Code Qualifier\r
+ UINT8 Reserverd2[4];\r
} USB_BOOT_REQUEST_SENSE_DATA;\r
\r
typedef struct {\r
- UINT8 OpCode;\r
- UINT8 Lun;\r
- UINT8 PageCode;\r
- UINT8 Reserved0;\r
- UINT8 AllocateLen;\r
- UINT8 Control;\r
+ UINT8 OpCode;\r
+ UINT8 Lun;\r
+ UINT8 PageCode;\r
+ UINT8 Reserved0;\r
+ UINT8 AllocateLen;\r
+ UINT8 Control;\r
} USB_SCSI_MODE_SENSE6_CMD;\r
\r
typedef struct {\r
- UINT8 ModeDataLen;\r
- UINT8 MediumType;\r
- UINT8 DevicePara;\r
- UINT8 BlkDesLen;\r
+ UINT8 ModeDataLen;\r
+ UINT8 MediumType;\r
+ UINT8 DevicePara;\r
+ UINT8 BlkDesLen;\r
} USB_SCSI_MODE_SENSE6_PARA_HEADER;\r
#pragma pack()\r
\r
//\r
// Convert a LUN number to that in the command\r
//\r
-#define USB_BOOT_LUN(Lun) ((Lun) << 5)\r
+#define USB_BOOT_LUN(Lun) ((Lun) << 5)\r
\r
//\r
// Get the removable, PDT, and sense key bits from the command data\r
//\r
-#define USB_BOOT_REMOVABLE(RmbByte) (((RmbByte) & BIT7) != 0)\r
-#define USB_BOOT_PDT(Pdt) ((Pdt) & 0x1f)\r
-#define USB_BOOT_SENSE_KEY(Key) ((Key) & 0x0f)\r
+#define USB_BOOT_REMOVABLE(RmbByte) (((RmbByte) & BIT7) != 0)\r
+#define USB_BOOT_PDT(Pdt) ((Pdt) & 0x1f)\r
+#define USB_BOOT_SENSE_KEY(Key) ((Key) & 0x0f)\r
\r
/**\r
Get the parameters for the USB mass storage media.\r
**/\r
EFI_STATUS\r
UsbBootGetParams (\r
- IN USB_MASS_DEVICE *UsbMass\r
+ IN USB_MASS_DEVICE *UsbMass\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
UsbBootIsUnitReady (\r
- IN USB_MASS_DEVICE *UsbMass\r
+ IN USB_MASS_DEVICE *UsbMass\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
UsbBootDetectMedia (\r
- IN USB_MASS_DEVICE *UsbMass\r
+ IN USB_MASS_DEVICE *UsbMass\r
);\r
\r
/**\r
**/\r
EFI_STATUS\r
UsbBootReadBlocks (\r
- IN USB_MASS_DEVICE *UsbMass,\r
- IN UINT32 Lba,\r
- IN UINTN TotalBlock,\r
- OUT UINT8 *Buffer\r
+ IN USB_MASS_DEVICE *UsbMass,\r
+ IN UINT32 Lba,\r
+ IN UINTN TotalBlock,\r
+ OUT UINT8 *Buffer\r
);\r
\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
/**\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
/**\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
#endif\r
-\r