Laszlo Ersek
b04a63ac48
MdePkg: UefiScsiLib: do not encode LUN in CDB for other SCSI commands
...
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-28 10:24:56 +00:00
Laszlo Ersek
c128d5281f
MdePkg: UefiScsiLib: do not encode LUN in CDB for READ and WRITE
...
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-11-28 10:24:41 +00:00
Tian, Feng
b95eb5e097
MdePkg/UefiScsiLib: Wrong function parameter comments in UefiScsiLib. It 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
2014-04-30 03:38:05 +00:00
niruiyu
b8a62661e4
Add BlockIO revision 3 definition. Add new API ScsiInquiryCommandEx to 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
2011-05-23 07:45:40 +00:00
myronporter
58380e9c61
Minor grammatical work--mostly adding periods. Items with ONLY period added 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-30 00:13:25 +00:00
myronporter
2fc59a003e
Minor grammatical work--mostly adding periods. Items with ONLY period added 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-06-25 21:56:02 +00:00
li-elvin
a24faca37a
Add Read/Write (16) command to SCSI library.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10549 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-28 06:57:15 +00:00
hhtian
19388d2960
Update the copyright notice format
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10415 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-23 16:37:43 +00:00
rsun3
5fe71b5f03
Add missing parameter check ASSERTs in ScsiReadCapacity16Command() of UefiScsiLib.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8471 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-05 01:41:31 +00:00
lgao4
3e0c79b57b
Fix ScsiLib build break by << operator, which is replaced by LShiftU64 of BaseLib.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8363 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-21 03:26:42 +00:00
rsun3
6b3ecf5cc2
Add back logic to encode LUN in CDB for compatibility with SCSI-2 spec, 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-19 09:07:38 +00:00
rsun3
676e2a32f9
Fix bugs in the UEFI SCSI Library.
...
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-19 05:42:37 +00:00
qhuang8
f158ee678c
Fix minor coding style issue for ScsiReadCapacity16Command() API in UefiScsiLib
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8291 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-11 07:22:49 +00:00
mdkinney
5e11e7c691
Update function header description of ScsiReadCapacity16Command() in the UEFI Scsi Library
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8277 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-09 01:31:20 +00:00
qhuang8
51969ecb37
Fix several minor coding style issues.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8092 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-15 14:31:45 +00:00
jji4
ccb491c862
Read-Capacity16 command added for SCSI drivers
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7999 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-01 08:24:58 +00:00
klu2
070a76b193
Synchronize interface function comment from declaration in library class 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-10 03:28:54 +00:00
jji4
9ccbe812c5
Function comments have been checked with spec.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6840 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-04 07:15:13 +00:00
jji4
6089ba6250
Function headers checked with spec
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6710 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-24 09:15:55 +00:00
jji4
d5954c618f
Code Scrub:
...
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-17 11:24:14 +00:00
qhuang8
172ea7c7ca
Update for the library class renaming: ScsiLib -> UefiScsiLib
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6515 6f19259b-4bc3-4df7-8a09-765794883524
2008-11-13 09:04:51 +00:00
qwang12
86026b9dff
Fix a typo.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6356 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-31 08:19:34 +00:00
xli24
dfc5aca1ac
Move definition of EFI_SCSI_TARGET_MAX_BYTES from IndustryStandard in MDE Package to UefiScsiLib.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6158 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-20 15:34:16 +00:00
klu2
ee256e2c4d
Fix ECC issue.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6154 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-20 14:27:06 +00:00
eric_tian
956a6dca23
add proper modifers preceding to function arguments.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6082 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-07 09:29:24 +00:00
eric_tian
b91d5eca6c
sync the comments of scsilib library class with Mde Library Spec.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6081 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-07 09:23:48 +00:00
lgao4
52cd71dca9
Update UefiScsiLib to add ASSERT comments and define new macros to replace the hard code value.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5838 6f19259b-4bc3-4df7-8a09-765794883524
2008-09-08 05:56:40 +00:00
lgao4
60c93673b3
The driver and library in MdePkg, MdeModulePkg and Nt32Pkg that don't depend 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-30 14:09:38 +00:00
yshang1
42eedea958
Code Scrub for MdePkg.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5567 6f19259b-4bc3-4df7-8a09-765794883524
2008-07-25 12:21:57 +00:00
yshang1
373b5cf97c
Code Scrub the common includes in MdePkg.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5493 6f19259b-4bc3-4df7-8a09-765794883524
2008-07-16 06:31:22 +00:00
lgao4
306431f76a
Fix build failure by adding DebugLib
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4752 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-25 14:22:11 +00:00
lgao4
8069d49e9a
update comments and add assert for these files.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4750 6f19259b-4bc3-4df7-8a09-765794883524
2008-02-25 07:01:44 +00:00
jljusten
a3589760c4
edk2/MdePkg/MdePkg/Library/UefiScsiLib/UefiScsiLib.c:
...
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-11-02 00:00:44 +00:00
xli24
ba7e162ec1
Fix a bug of ScsiWrite10Command() UefiScsiLib. After the SCSI WRITE command 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-28 05:59:12 +00:00
qhuang8
c7a54f2560
Fix invalid return status to sync with newest UEFI spec 2.1
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3900 6f19259b-4bc3-4df7-8a09-765794883524
2007-09-20 09:59:05 +00:00
lgao4
d35be2a434
Sync code with MdePkg spec for Scsi library class and CustomDecompress library class.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3636 6f19259b-4bc3-4df7-8a09-765794883524
2007-08-14 07:58:32 +00:00
yshang1
581e82a1f6
Fix bugs in MdePkg for GCC build.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3345 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-19 03:18:32 +00:00
AJFISH
bf231ea60e
Fixed comments to follow coding standard.
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3221 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-13 03:21:40 +00:00
AJFISH
d5b86e43cf
Removed MdePkg usage of ModuleName: in file headers
...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3217 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-12 22:59:43 +00:00
klu2
a02e796b5e
1) Modify ScsiIo protocol according to UEFI specification
...
2) Add UefiScsiLib library instance.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2875 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-29 03:27:28 +00:00