MdeModulePkg/UsbMassStorage: Add 16 byte SCSI cmds support if the last LBA can not be presented by 4bytes width

Signed-off-by: Feng Tian <feng.tian@intel.com>
Reviewed-by: Li Elvin <elvin.li@intel.com>

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13311 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
erictian
2012-05-14 07:50:07 +00:00
parent 8c1babfd28
commit 99c1725ee6
4 changed files with 295 additions and 7 deletions

View File

@@ -2,7 +2,7 @@
Definition of the command set of USB Mass Storage Specification
for Bootability, Revision 1.0.
Copyright (c) 2007 - 2011, Intel Corporation. All rights reserved.<BR>
Copyright (c) 2007 - 2012, Intel Corporation. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
@@ -310,6 +310,47 @@ UsbBootWriteBlocks (
IN UINT8 *Buffer
);
/**
Read some blocks from the device by SCSI 16 byte cmd.
@param UsbMass The USB mass storage device to read from
@param Lba The start block number
@param TotalBlock Total block number to read
@param Buffer The buffer to read to
@retval EFI_SUCCESS Data are read into the buffer
@retval Others Failed to read all the data
**/
EFI_STATUS
UsbBootReadBlocks16 (
IN USB_MASS_DEVICE *UsbMass,
IN UINT64 Lba,
IN UINTN TotalBlock,
OUT UINT8 *Buffer
);
/**
Write some blocks to the device by SCSI 16 byte cmd.
@param UsbMass The USB mass storage device to write to
@param Lba The start block number
@param TotalBlock Total block number to write
@param Buffer Pointer to the source buffer for the data.
@retval EFI_SUCCESS Data are written into the buffer
@retval Others Failed to write all the data
**/
EFI_STATUS
UsbBootWriteBlocks16 (
IN USB_MASS_DEVICE *UsbMass,
IN UINT64 Lba,
IN UINTN TotalBlock,
IN UINT8 *Buffer
);
/**
Use the USB clear feature control transfer to clear the endpoint stall condition.