summaryrefslogtreecommitdiff
path: root/MdePkg/Library/UefiScsiLib
AgeCommit message (Collapse)Author
2015-12-22MdePkg UefiScsiLib: Raise the Tpl of async IO callback to TPL_NOTIFYHao Wu
Raise the Tpl of async SCSI I/O callback function to TPL_NOTIFY to match the behavior in ScsiDiskDxe driver. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hao Wu <hao.a.wu@intel.com> Reviewed-by: Feng Tian <feng.tian@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19453 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-22MdePkg UefiScsiLib: Close event when SCSI command failsHao Wu
The ScsiExecuteSCSICommand() function in ScsiBusDxe driver will not signal the event passed from UefiScsiLib when error occurs. In this case, UefiScsiLib should close the event passing to ScsiExecuteSCSICommand(). Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hao Wu <hao.a.wu@intel.com> Reviewed-by: Feng Tian <feng.tian@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19448 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-15MdePkg: Convert all .uni files to utf-8Jordan Justen
To convert these files I ran: $ python3 BaseTools/Scripts/ConvertUni.py MdePkg Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Jordan Justen <jordan.l.justen@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19256 6f19259b-4bc3-4df7-8a09-765794883524
2015-12-11MdePkg UefiScsiLib: Add non-blocking support for SCSI Read/Write commandHao Wu
Four new functions are added to UefiScsiLib: ScsiRead10CommandEx ScsiWrite10CommandEx ScsiRead16CommandEx ScsiWrite16CommandEx They support both blocking and non-blocking SCSI Read/Write operation depending on the optional parameter 'Event' passed to those APIs. When 'Event' is NULL, these four functions will call the non-EX version couterparts to execute blocking SCSI I/O. When 'Event' is not NULL, non-blocking I/O operation is executed. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Hao Wu <hao.a.wu@intel.com> Reviewed-by: Feng Tian <feng.tian@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@19214 6f19259b-4bc3-4df7-8a09-765794883524
2015-09-10MdePkg/UefiScsiLib: comments update to add EFI_INVALID_PARAMETER statusFeng Tian
EFI_SCSI_IO_PROTOCOL has alignment requirement on any data buffer used in SCSI data transfer. As a wrap of this protocol, UefiScsiLib have same request. Adding EFI_INVALID_PARAMETER return status in function comments to ask the caller to guarantee this alignment. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Feng Tian <feng.tian@intel.com> Reviewed-by: Star Zeng <star.zeng@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@18434 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-28MdePkg: UefiScsiLib: do not encode LUN in CDB for other SCSI commandsLaszlo Ersek
The TEST UNIT READY, INQUIRY, MODE SENSE, REQUEST SENSE and READ CAPACITY commands define bits [7:5] of Cdb[1] as Reserved (potentially as part of a larger Reserved bitfield): Command Reserved bitfield in Cdb[1] SCSI spec reference ------------------ --------------------------- ------------------- TEST UNIT READY all bits SPC-4 6.37 INQUIRY bits [7:2] SPC-4 6.4.1 MODE SENSE (6) bits [7:4] SPC-4 6.11.1 MODE SENSE (10) bits [7:5] SPC-4 6.12 REQUEST SENSE bits [7:1] SPC-4 6.29 READ CAPACITY (10) bits [7:1] SBC-3 5.16 READ CAPACITY (16) bits [7:5] SBC-3 5.17 Update the UefiScsiLib functions accordingly. (In ScsiReadCapacity16Command() the LUN has not been encoded, so there we just remove the useless ScsiIo->GetDeviceLocation() call, with its auxiliary local variables.) The EFI_SCSI_TARGET_MAX_BYTES and EFI_SCSI_LOGICAL_UNIT_NUMBER_MASK macros become unused with this patch, remove them too. Suggested-by: Feng Tian <feng.tian@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16455 6f19259b-4bc3-4df7-8a09-765794883524
2014-11-28MdePkg: UefiScsiLib: do not encode LUN in CDB for READ and WRITELaszlo Ersek
The "SCSI Block Commands - 2" (SBC-2) standard defines bits [7:5] of the CDB byte 1 as Reserved, for the READ and WRITE commands. The updated "SCSI Block Commands - 3" (SBC-3) standard defines the same bitfield as RDPROTECT and WRPROTECT, respectively. After reviewing the above standards, and the following commits: - SVN r8331 (git 676e2a32), - SVN r8334 (git 6b3ecf5c), we've determined that UefiScsiLib is incorrect in encoding the LUN in this bitfield for the READ and WRITE commands. Encoding a nonzero LUN there creates unintended RDPROTECT and WRPROTECT values, which the recipient device is required to reject if it does not support protection information, with CHECK CONDITION, ILLEGAL REQUEST, INVALID FIELD IN CDB: ScsiDiskRead10: Check Condition happened! ScsiDisk: Sense Key = 0x5 ASC = 0x24! ScsiDiskRead10: Check Condition happened! ScsiDisk: Sense Key = 0x5 ASC = 0x24! ScsiDiskRead10: Check Condition happened! ScsiDisk: Sense Key = 0x5 ASC = 0x24! ScsiDiskRead10: Check Condition happened! ScsiDisk: Sense Key = 0x5 ASC = 0x24! FatOpenDevice: read of part_lba failed Device Error In practice this flaw breaks UefiScsiLib minimally on SCSI disks with nonzero LUNs that are emulated by QEMU (after QEMU commit 96bdbbab, part of v1.2.0). RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1166971 Reported-by: Cole Robinson <crobinso@redhat.com> Suggested-by: Paolo Bonzini <pbonzini@redhat.com> Suggested-by: Feng Tian <feng.tian@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Reviewed-by: Liming Gao <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16454 6f19259b-4bc3-4df7-8a09-765794883524
2014-09-03MdePkg: Convert non DOS format files to DOS formatGao, Liming
Module UNI and Package UNI files are not DOS format. Convert them to DOS format. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Gao, Liming <liming.gao@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@16042 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-27MdePkg: INF/DEC file updates to EDK II packagesGao, Liming
2. Add MODULE_UNI_FILE file that contains the localized Abstract and Description of a module. a. Addresses an information gap between INF files and the UEFI Distribution Packaging Specification XML schema b. There will be an associated update to UPT in BaseTools to consume MODULE_UNI_FILE and associated UNI file during UDP creation that performs the INF -> XML conversion. c. There will be an associated update to UPT in BaseTools to produce MODULE_UNI_FILE and associated UNI file during UDP installation that performs the XML -> INF conversion. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Gao, Liming <liming.gao@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15918 6f19259b-4bc3-4df7-8a09-765794883524
2014-08-27MdePkg: INF/DEC file updates to EDK II packagesGao, Liming
1. Usage information in INF file comment blocks are either incomplete or incorrect. This includes usage information for Protocols/PPIs/GUIDs/PCDs/HOBs/Events/BootModes. The syntax for usage information in comment blocks is defined in the EDK II Module Information (INF) Specification Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Gao, Liming <liming.gao@intel.com> Reviewed-by: Michael Kinney <michael.d.kinney@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15917 6f19259b-4bc3-4df7-8a09-765794883524
2014-04-30MdePkg/UefiScsiLib: Wrong function parameter comments in UefiScsiLib. It ↵Tian, Feng
should be the number of transferred blocks rather than block size. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Tian, Feng <feng.tian@intel.com> Reviewed-by: Zeng, Star <star.zeng@intel.com> Reviewed-by: Fu, Siyuan <siyuan.fu@intel.com> git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15492 6f19259b-4bc3-4df7-8a09-765794883524
2011-05-23Add BlockIO revision 3 definition. Add new API ScsiInquiryCommandEx to ↵niruiyu
UefiScsiLib. Signed-off-by: niruiyu Reviewed-by: erictian git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11691 6f19259b-4bc3-4df7-8a09-765794883524
2010-06-30Minor grammatical work--mostly adding periods. Items with ONLY period added ↵myronporter
did not have the heading date changed, but Items with content changes had heading copyright dates updated. Sending separately a list of files missing Doxygen @param and @return information. (PENDING) git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10615 6f19259b-4bc3-4df7-8a09-765794883524
2010-06-25Minor grammatical work--mostly adding periods. Items with ONLY period added ↵myronporter
did not have the heading date changed, but Items with content changes had heading copyright dates updated. Sending separately a list of files missing Doxygen @param and @return information. (PENDING) git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10604 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-28Add Read/Write (16) command to SCSI library.li-elvin
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10549 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-23Update the copyright notice formathhtian
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10415 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-241. Correct File header to ## @filelgao4
2. Remove unnecessary .common] postfix on section. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10052 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-05Add missing parameter check ASSERTs in ScsiReadCapacity16Command() of ↵rsun3
UefiScsiLib. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8471 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-21Fix ScsiLib build break by << operator, which is replaced by LShiftU64 of ↵lgao4
BaseLib. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8363 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-19Add back logic to encode LUN in CDB for compatibility with SCSI-2 spec, ↵rsun3
although LUN encoding in CDB is changed to be reserved in SCSI-3 spec. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8334 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-19Fix bugs in the UEFI SCSI Library.rsun3
1. LUN number should not be encoded in CDB. 2. Left shift the PageControl field by 6 bits in ScsiModeSense10Command(). git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8331 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-11Fix minor coding style issue for ScsiReadCapacity16Command() API in UefiScsiLib qhuang8
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8291 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-09Update function header description of ScsiReadCapacity16Command() in the ↵mdkinney
UEFI Scsi Library git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8277 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-15Fix several minor coding style issues.qhuang8
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8092 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-01Read-Capacity16 command added for SCSI driversjji4
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7999 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-10Synchronize interface function comment from declaration in library class ↵klu2
header file to implementation in library instance. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6957 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-04Function comments have been checked with spec.jji4
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6840 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-25Clean up the unused EDK_RELEASE_VERSION, PI_SPECIFICATION_VERSION and ↵lgao4
EFI_SPECIFICATION_VERSION from all the MdePkg INF files. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6716 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-24Function headers checked with specjji4
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6710 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-17Code Scrub:jji4
The code of MdePkg\Library\UefiScsiLib\ and MdePkg\Library\UefiUsbLib has been checked and modified according to MDE_Library_Spec_0.61h-4.doc. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6561 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-13Update for the library class renaming: ScsiLib -> UefiScsiLibqhuang8
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6515 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-31Fix a typo.qwang12
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6356 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-29Remove unnessary UEFI_SPECIFICATION_VERSION and PI_SPECIFICATION_VERSION in ↵eric_tian
INF file git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6281 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-28Refine file header for INF files of MDE library instances.xli24
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6273 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-20Move definition of EFI_SCSI_TARGET_MAX_BYTES from IndustryStandard in MDE ↵xli24
Package to UefiScsiLib. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6158 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-20Fix ECC issue.klu2
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6154 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-07add proper modifers preceding to function arguments.eric_tian
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6082 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-07sync the comments of scsilib library class with Mde Library Spec.eric_tian
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6081 6f19259b-4bc3-4df7-8a09-765794883524
2008-09-19Update these library instances module type to UEFI_DIRVER, because they only ↵lgao4
depends on UEFI spec. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5931 6f19259b-4bc3-4df7-8a09-765794883524
2008-09-08Update UefiScsiLib to add ASSERT comments and define new macros to replace ↵lgao4
the hard code value. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5838 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-30The driver and library in MdePkg, MdeModulePkg and Nt32Pkg that don't depend ↵lgao4
on PI spec should include Uefi.h not PiDxe.h. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5758 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-25remove the unused msa files in MdePkg.lgao4
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5725 6f19259b-4bc3-4df7-8a09-765794883524
2008-07-25Code Scrub for MdePkg.yshang1
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5567 6f19259b-4bc3-4df7-8a09-765794883524
2008-07-16Code Scrub the common includes in MdePkg.yshang1
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5493 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-25Fix build failure by adding DebugLiblgao4
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4752 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-25update comments and add assert for these files.lgao4
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4750 6f19259b-4bc3-4df7-8a09-765794883524
2007-11-02edk2/MdePkg/MdePkg/Library/UefiScsiLib/UefiScsiLib.c:jljusten
edk2/MdePkg/MdePkg/Library/DxeSmbusLib/InternalSmbusLib.h: Fixed include filenames (case) for case-sensitive filesystems. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4264 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-28Fix a bug of ScsiWrite10Command() UefiScsiLib. After the SCSI WRITE command ↵xli24
is executed, the output DataLength parameter should be EFI_SCSI_IO_SCSI_REQUEST_PACKET.OutTransferLength, instead of EFI_SCSI_IO_SCSI_REQUEST_PACKET.InTransferLength. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3961 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-20Fix invalid return status to sync with newest UEFI spec 2.1qhuang8
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3900 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-14Sync code with MdePkg spec for Scsi library class and CustomDecompress ↵lgao4
library class. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3636 6f19259b-4bc3-4df7-8a09-765794883524