Commit Graph

80 Commits

Author SHA1 Message Date
Tian, Feng 52f8e370ac MdeModulePkg/ScsiDisk:If the SCSI device target status is in CHECK_CONDITION, then parse sense data to decide which actions need to be done.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Tian, Feng <feng.tian@intel.com>
Reviewed-by: Fu, Siyuan <siyuan.fu@intel.com>

git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@15215 6f19259b-4bc3-4df7-8a09-765794883524
2014-02-11 00:10:18 +00:00
Feng Tian 3cc033c51f MdeMdeModulePkg/Scsi: Enlarge SCSI cmd timeout to a more reasonable experience value to cover more devices
Signed-off-by: Feng Tian <feng.tian@intel.com>
Reviewed-by: Elvin Li <elvin.li@intel.com>



git-svn-id: https://svn.code.sf.net/p/edk2/code/trunk/edk2@14521 6f19259b-4bc3-4df7-8a09-765794883524
2013-08-05 01:50:11 +00:00
erictian 9690325d1e MdeModulePkg/AtaBus&ScsiBus: Dynamically calculate how long shall we wait for the finish of a read/write operation according to the actual transfer length
Signed-off-by: Feng Tian <feng.tian@intel.com>
Reviewed-by: Elvin Li <elvin.li@intel.com>

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@14028 6f19259b-4bc3-4df7-8a09-765794883524
2013-01-04 06:03:52 +00:00
li-elvin 37623a5c02 Add missing status code in several modules.
Signed-off-by: Li Elvin <elvin.li@intel.com>
Reviewed-by: Yao Jiewen <jiewen.yao@intel.com>
Reviewed-by: Ni Ruiyu <ruiyu.ni@intel.com>
Reviewed-by: Gao Liming <liming.gao@intel.com>
Reviewed-by: Tian Feng <feng.tian@intel.com>
Reviewed-by: Fan Jeff <jeff.fan@intel.com>


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13890 6f19259b-4bc3-4df7-8a09-765794883524
2012-10-30 04:23:40 +00:00
erictian 9c9225255d MdeModulePkg: When media_change happens at Partition.Start(), the lower driver (ScsiDisk) should immediately return EFI_MEDIA_CHANGE but not EFI_SUCCESS. This way is used to avoid the interrupted Partition.Start() closes those opened protocols(DiskIo and DevicePath protocol) who are using by the re-entered partition driver at the same handle.
Signed-off-by: erictian
Reviewed-by: rsun3


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13082 6f19259b-4bc3-4df7-8a09-765794883524
2012-03-06 09:34:14 +00:00
lzeng14 957fe09353 Allocate aligned buffer to satisfy the IoAlign requirement of high level protocol.
Signed-off-by: lzeng14
Reviewed-by: erictian

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12788 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-25 09:52:12 +00:00
erictian 8536cc4b37 MdeModulePkg: ATA performance tuning.
1. Boost IDE mode boot when slave device is absent.
2. Use D2H FIS to check if the PIO OUT/DMA IN/DMA OUT transfer is finished or error happened. ATA PIO IN has special check as it may just receive PIO SETUP FIS for success case.
3. Add command status register check for IDE DMA transfer.
4. ScsiDiskReadCapacity() in ScsiDisk should return EFI_SUCCESS if SENSE Data request is success.

Signed-off-by: erictian
Reviewed-by: rsun3
Reviewed-by: xdu2
Reviewed-by: mdkinney

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12658 6f19259b-4bc3-4df7-8a09-765794883524
2011-11-03 12:38:21 +00:00
lgao4 c8ad2d7a29 Clean up the private GUID definition in module Level.
0. Remove the unused private GUID from module source files.
1. Use gEfiCallerIdGuid replace of the private module GUID.
2. Add the public header files to define HII FormSet and PackageList GUID used in every HII driver.
3. Move two EBC protocols for debug purpose from EBC driver to MdeModulePkg Include directory. 

Signed-off-by: lgao4
Reviewed-by: ydong10 gdong1 tye jfan12 wli12 rsun3 jyao1



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12373 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-18 12:21:01 +00:00
erictian ae5dc79532 Media detection logic is enhanced to be more robust.
Signed-off-by: erictian
Reviewed-by: hhuan13
Reviewed-by: mdkinney

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12289 6f19259b-4bc3-4df7-8a09-765794883524
2011-09-07 08:11:42 +00:00
niruiyu 284ee2e829 Fix the comments to follow UEFI Spec regarding how to check an EFI_HANDLE is valid/invalid.
Signed-off-by: niruiyu
Reviewed-by: lgao4

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11987 6f19259b-4bc3-4df7-8a09-765794883524
2011-07-06 03:55:36 +00:00
erictian e7c2a83b3b Fix potential null pointer dereference
Signed-off-by: erictian
Reviewed-by: ydong10


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11859 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-20 09:35:53 +00:00
erictian cbd2a4b362 ScsiBus/ScsiDisk enhancement for no_media state.
Ahci enumeration logic tuning for boot performance.

Signed-off-by:erictian
Reviewed-by:qianouyang, hhuan13

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11820 6f19259b-4bc3-4df7-8a09-765794883524
2011-06-14 02:11:34 +00:00
niruiyu 0e87144ee0 Change Partition/ScsiDxe driver to produce Block IO revision 3.
Signed-off-by: niruiyu
Reviewed-by: erictian

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11692 6f19259b-4bc3-4df7-8a09-765794883524
2011-05-23 07:47:19 +00:00
niruiyu fcf5e49dc9 Change BlockIo drivers to return EFI_NO_MEDIA or EFI_MEDIA_CHANGED even the Buffer/BufferSize/Lba is invalid so that caller can probe the media status easier.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11584 6f19259b-4bc3-4df7-8a09-765794883524
2011-04-25 09:31:57 +00:00
erictian c6e797aeda return EFI_DEVICE_ERROR if the Status value is not EFI_SUCCESS.
it's because BlockIo.Reset() only has two possible values: EFI_SUCCESS and EFI_DEVICE_ERROR according to UEFI2.3 spec

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10956 6f19259b-4bc3-4df7-8a09-765794883524
2010-10-19 02:55:16 +00:00
ydong10 c9325700d0 Refine soma code to make code run safely.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10877 6f19259b-4bc3-4df7-8a09-765794883524
2010-09-15 07:48:11 +00:00
li-elvin f95bc04893 Change the check condition for 16 byte command, when HDD size is > 2TB, use 16 byte command instead.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10817 6f19259b-4bc3-4df7-8a09-765794883524
2010-08-23 10:05:44 +00:00
li-elvin 379f83dff0 According to SCSI spec, ANSI version is 3 bits, so 0x7 should be used to get correct ANSI version.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10773 6f19259b-4bc3-4df7-8a09-765794883524
2010-08-04 08:39:55 +00:00
li-elvin 5bf5fb30b4 Change MaxBlock to HEX value to avoid GCC build failure.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10566 6f19259b-4bc3-4df7-8a09-765794883524
2010-06-04 05:27:03 +00:00
li-elvin a108933ea8 If SCSI version support Read/Write (16) command, use both commands to access disk especially for above 2TB.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10550 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-28 06:58:59 +00:00
hhtian cd5ebaa06d Update the copyright notice format
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10420 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-24 09:49:11 +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 4140a6635b Coding style fix and minor improvements.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9977 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-11 02:33:16 +00:00
erictian d10a41e634 when remaining device path is not NULL, check if it's the device managed by bus driver.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9904 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-02 00:48:19 +00:00
rsun3 1ccdbf2a3e Improve coding style in MdeModulePkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9793 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-19 06:42:21 +00:00
rsun3 aa75dfeccd Fix some coding style issues in MdeModulePkg.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9774 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-15 08:03:23 +00:00
davidhuang 67f7e37652 1. Add missing CloseProtocol in case RemainingDevicePath is NULL or EndOfDp
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9707 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-11 05:54:01 +00:00
davidhuang d548f0a10c 1. Eliminate RemainingDevicePath Type limitation, let PassThru to check its validation.
2. Change ScsiTargetId from allocation to local variable.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9706 6f19259b-4bc3-4df7-8a09-765794883524
2010-01-11 05:44:16 +00:00
qhuang8 d716651f8c Enhance SCSI disk module to produce Disk Info protocol on the same Block IO handle:
SCSI Interface GUID: Physical SCSI disk
IDE  Interface GUID: ATAPI device run in legacy IDE mode
AHCI Interface GUID: ATAPI device run in AHCI mode.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9584 6f19259b-4bc3-4df7-8a09-765794883524
2009-12-22 07:31:18 +00:00
vanjeff 6fe852082f 1. updated PCI/AGP Devices to check RemainingDevicePath in Supported() and Start() functions. The main changes are:
a. Add check validation of RemainingDevicePath in Supported()
  b. In Star() function, if RemaingDevicePath is the End of Device Path Node, don't create child device and return EFI_SUCCESS.
2. fixed one device path issue in ScsiBus driver.



git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9264 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-15 07:50:48 +00:00
vanjeff af4a63857c updated the Bus Driver that is able to create all or one of its child handles on each call to Start() not to create new child handle if RemainingDeviepath is the End of Device Path Node, per UEFI 2.3.
The others changes include:
1. Check RemainingDevicePath at beginning of Supported(), make sure it has been verified before Start() is called.
2. Check IO protocol firstly rather than EfiDevicePathProtocolGuid, reduce the times entering into Start() function because EfiDevicePathProtocolGuid existed on most of handle.
3. If no any child device is created on last time, and RemainingDevicePath is valid Uart Devcie path, go on creating child device handle based on this RemainingDevicePath.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@9262 6f19259b-4bc3-4df7-8a09-765794883524
2009-09-14 08:55:03 +00:00
gikidy d14faa5275 Update the SCSI Disk Driver to not mount drives on physical only SCSI channels
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8677 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-29 05:58:14 +00:00
gikidy ef13cf23ee Enhance error handle of BuildDevicePath for it is possible to receive other errors.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8667 6f19259b-4bc3-4df7-8a09-765794883524
2009-06-26 06:29:00 +00:00
rsun3 d1a8a1dc99 Fix a bug in the SCSI Bus driver due to which some SCSI devices can not be discovered. Per SCSI spec, the standard INQUIRY data shall contain at least 36 bytes and the length of the data is variable. The definition
///
/// Standard INQUIRY data format
///
typedef struct {
  UINT8 Peripheral_Type : 5;
  UINT8 Peripheral_Qualifier : 3;
  UINT8 DeviceType_Modifier : 7;
  UINT8 Rmb : 1;
  UINT8 Version;
  UINT8 Response_Data_Format;
  UINT8 Addnl_Length;
  UINT8 Reserved_5_95[95 - 5 + 1];
} EFI_SCSI_INQUIRY_DATA;

is longer than 36 bytes and EFI_BAD_BUFFER_SIZE may be returned if the actual inquiry data is less than that of EFI_SCSI_INQUIRY_DATA.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8329 6f19259b-4bc3-4df7-8a09-765794883524
2009-05-19 05:38:40 +00:00
gikidy 0254efc01e Replace references to RFC 3066 with RFC 4646.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8212 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-30 05:32:11 +00:00
jji4 b96cd3133d Read-Capacity16 command added for SCSI drivers
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@8000 6f19259b-4bc3-4df7-8a09-765794883524
2009-04-01 08:25:36 +00:00
eric_tian 1e5914b54a R8 tracker sync:
Our UEFI Driver supports both SCSI Passthru (SPT) and Ext SCSI Passthru (That is our driver installs both SCSI Passthru and Ext SCSI Passthru). When we unload our driver SCSI Bus driver closes only ESPT and keeps SPT open. Due to this when I load my driver second time the SPT installation will fail and now attempting to unload will either crash the system or hang the system. 

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7906 6f19259b-4bc3-4df7-8a09-765794883524
2009-03-19 07:03:01 +00:00
xli24 fbfa4a1da7 Minor update on capitalization for ECC check.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7561 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-23 02:47:51 +00:00
jji4 a676b86b67 Coding style checked
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7454 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-06 05:12:48 +00:00
jji4 1068a65374 Code size optimized
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7415 6f19259b-4bc3-4df7-8a09-765794883524
2009-02-03 06:11:04 +00:00
jji4 3ed0238a62 INF extension reviewed
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7201 6f19259b-4bc3-4df7-8a09-765794883524
2009-01-07 09:01:05 +00:00
jji4 2d4117c049 Typo corrected
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7152 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-30 07:06:28 +00:00
jji4 f7a56b6eac Library class of MemoryAllocationLib has been added.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7074 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-18 05:39:10 +00:00
jji4 94e0fd072b Library class of MemoryAllocationLib has been added.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7073 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-18 05:30:57 +00:00
jji4 9b38ff3499 Some codes have been altered and replaced by functions of memory allocation library.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7072 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-18 05:28:26 +00:00
gikidy dfe687cad5 Fix some typo.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7067 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-17 09:35:12 +00:00
jji4 6c94a00d0e Some codes have been altered and replaced by library functions which makes more efficient and rational.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7065 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-17 09:20:16 +00:00
qhuang8 f3f2e05db8 Clean up to update the reference of the these macros:
EFI_SIGNATURE_16 -> SIGNATURE_16
  EFI_SIGNATURE_32 -> SIGNATURE_32
  EFI_SIGNATURE_64 -> SIGNATURE_64
  EFI_FIELD_OFFSET -> OFFSET_OF
  EFI_MAX_BIT      -> MAX_BIT
  EFI_MAX_ADDRESS  -> MAX_ADDRESS
These macros are not defined in UEFI spec. It makes more sense to use the equivalent macros in Base.h to avoid alias.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@7056 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-16 15:34:21 +00:00
jji4 2c6d600e1c INF module description added
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6973 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-10 08:20:01 +00:00
gikidy cfc8865f17 Remove some useless EDK_RELEASE_VERSION, EFI_SPECIFICATION_VERSION ,and review VALID_ARCHITECTURES in inf files with DSC file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@6818 6f19259b-4bc3-4df7-8a09-765794883524
2008-12-03 09:08:05 +00:00