Commit Graph

51 Commits

Author SHA1 Message Date
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
Gao, Liming f7ce802f6f MdePkg: Convert non DOS format files to DOS format
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-09-03 08:33:28 +00:00
Gao, Liming 9b94012517 MdePkg: INF/DEC file updates to EDK II packages
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-27 09:37:07 +00:00
Gao, Liming c92c179040 MdePkg: INF/DEC file updates to EDK II packages
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-08-27 09:33:09 +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
lgao4 6bfbb5f0e0 1. Correct File header to ## @file
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
2010-02-24 00:21:16 +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
lgao4 dc8577f275 Clean up the unused EDK_RELEASE_VERSION, PI_SPECIFICATION_VERSION and 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-25 02:36:57 +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
eric_tian e34ecc8a1e Remove unnessary UEFI_SPECIFICATION_VERSION and PI_SPECIFICATION_VERSION in INF file
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6281 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-29 03:17:21 +00:00
xli24 85ea851e6a Refine file header for INF files of MDE library instances.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6273 6f19259b-4bc3-4df7-8a09-765794883524
2008-10-28 09:45:52 +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 2a5f2a5036 Update these library instances module type to UEFI_DIRVER, because they only depends on UEFI spec.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5931 6f19259b-4bc3-4df7-8a09-765794883524
2008-09-19 06:22:44 +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
lgao4 14bcde689e remove the unused msa files in MdePkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5725 6f19259b-4bc3-4df7-8a09-765794883524
2008-08-25 05:00:23 +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 5088ce25ff Remove unused comments in MdePkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3368 6f19259b-4bc3-4df7-8a09-765794883524
2007-07-19 09:43:43 +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
AJFISH 5ed00ce4ad removed [includes] section from MdePkg and MdeModulePkg .inf files. The includes sections are not needed and are redundant with [packages] section
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@2917 6f19259b-4bc3-4df7-8a09-765794883524
2007-06-29 16:44:40 +00:00