Commit Graph

289 Commits

Author SHA1 Message Date
erictian 17a6c337d2 when timeout is 0, infinite loop on the timeout request to follow UEFI spec
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11343 6f19259b-4bc3-4df7-8a09-765794883524
2011-03-04 01:26:40 +00:00
erictian e519983a6c 1. fix AtaPassThru.PassThru() sct failure
2. avoid reenumerate existing device to reduce boot time at AtaBus.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11232 6f19259b-4bc3-4df7-8a09-765794883524
2011-01-06 05:44:50 +00:00
mdkinney 250057b56a Use REPORT_STATUS_CODExxx() macros directly.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11223 6f19259b-4bc3-4df7-8a09-765794883524
2011-01-03 19:24:17 +00:00
rsun3 e0ee9d9314 Clean ISA_IO/ISA_IO_16 and VGA_IO/VGA_IO_16 attribute usage in PCI bus driver/PCI host bridge drivers/LPC/VGA device drivers.
1. Fix the incorrect definition of EFI_PCI_IO_ATTRIBUTE_VGA_IO_16 (does not conform to the UEFI spec) in PciIo.h.
2. Add missing definitions of ISA and VGA IO attributes in PCI Root Bridge IO protocol.
3. Improve the algorithm in the PCI bus driver to get PCI platform policy from PCI Platform Protocol and PCI Override Protocol.
4. Update the PCI bus driver to use the PCI platform policy to determine the supported attributes that are returned by the EFI_PCI_IO_PROTOCOL.Attributes() function. This is required by the PI spec.
5. Add a backward compatibility workaround for PCI VGA drivers in Option ROM, which typically sets VGA_IO without checking supported attributes.
6. Update the PCI host bridge driver in PcAtChipsetPkg to report VGA_IO_16 and ISA_IO_16 instead of VGA_IO/ISA_IO attributes. Modern chipsets don’t have hardware capability to control 10-bit or 16-bit decoding for ISA/VGA aliases.
7. Update LPC/VGA device drivers to check supported attributes of VGA_IO/VGA_IO_16 or ISA_IO/ISA_IO_16.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11204 6f19259b-4bc3-4df7-8a09-765794883524
2010-12-28 10:10:10 +00:00
xdu2 84909ad446 1. update MatchUsbWwid() to check Vendor Id, Product Id and Interface Number.
2. update SerialNumber comparing logic to handle possible NULL-terminator in WWID device path
3. fix bug in UsbIo->UsbIoGetSupportedLanguages(): TableSize is size in bytes of LangIDTable instead of number of LangID.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11197 6f19259b-4bc3-4df7-8a09-765794883524
2010-12-24 05:32:34 +00:00
rsun3 7afa5ea800 Add special treatment for EFI_PCI_IO_ATTRIBUTE_EMBEDDED_DEVICE and EFI_PCI_IO_ATTRIBUTE_EMBEDDED_ROM, because these attributes are only for PCI IO, while not supported by PCI Root Bridge IO.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11165 6f19259b-4bc3-4df7-8a09-765794883524
2010-12-14 09:52:38 +00:00
rsun3 4ed4e19c08 Update the PCI bus driver to correctly set the EFI_PCI_IO_ATTRIBUTE_EMBEDDED_ROM attribute of PCI IO. Per UEFI spec, this attribute is used to determine if the ROM image is from the ROM BAR or from a platform specific location.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11159 6f19259b-4bc3-4df7-8a09-765794883524
2010-12-14 02:33:15 +00:00
erictian 68bb5ce77e EHCI Controllers with a CapLen of 0 are ignored.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11093 6f19259b-4bc3-4df7-8a09-765794883524
2010-11-26 01:49:27 +00:00
rsun3 55565b0859 The PCI HotPlug Init Protocol returns a list of Root HPC, but it is possible that some HPCs in the list are not found during PCI enumeration. In this case, the PCI HotPlug Init Protocol.InitializeRootHpc() will not be called for the un-found HPCs. However, in AllRootHPCInitialized(), all reported HPCs are checked to see if it has been initialized, so TIME_OUT happens.
This check-in fix the issue by adding a flag to indicate if a HPC is found during PCI enumeration or not. This check-in also adds a debug message if any found HPC failed with initialization.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11081 6f19259b-4bc3-4df7-8a09-765794883524
2010-11-22 07:16:02 +00:00
vanjeff c1450e1670 Fix bug: The lower 2 bits of Width and stripped, Count will always be multiplied by 1, which will leave Count unchanged.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11043 6f19259b-4bc3-4df7-8a09-765794883524
2010-11-12 02:10:21 +00:00
rsun3 f13f9683db Fix ICC build break.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11020 6f19259b-4bc3-4df7-8a09-765794883524
2010-11-10 03:16:25 +00:00
rsun3 aeeb84bab4 Some existing PCI adapters with UEFI option ROMs make unaligned requests through the PCI I/O Protocol. Add support for unaligned requests in the PCI IO protocol implementation in the PCI Bus driver to be compatible with those UEFI option ROMs.
This solution defines a PCD Feature Flag to enabled support for unaligned requests through the PCI I/O Protocol.  This flag is disabled by default. Platforms that do want to support such EFI/UEFI drivers that make unaligned PCI I/O requests should enable this feature.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11016 6f19259b-4bc3-4df7-8a09-765794883524
2010-11-09 03:41:03 +00:00
rsun3 13fd0d50b5 Per the UEFI spec, if a PCI controller is a P2P bridge, then the I/O, Memory and Bus Master bits in the Command register of the PCI configuration header should be placed in the enabled state by the PCI Bus driver.
But current PCI bus driver has a bug that if a P2P bridge has no child devices detected during enumeration, the bits won’t be set. This may impact PCI hot plug capable bridges because the OS may re-assign resources for them causing the reserved resource by the firmware will be overwritten.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@11013 6f19259b-4bc3-4df7-8a09-765794883524
2010-11-08 07:36:12 +00:00
erictian 12873d5766 S.M.A.R.T feature enable
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10985 6f19259b-4bc3-4df7-8a09-765794883524
2010-10-28 07:44:11 +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
erictian 8304070106 set the interface of usb hid device to boot protocol if it's not in such case.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10953 6f19259b-4bc3-4df7-8a09-765794883524
2010-10-18 07:54:33 +00:00
erictian 5dec0c688e fix 32bit build warning
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10935 6f19259b-4bc3-4df7-8a09-765794883524
2010-10-14 01:33:04 +00:00
jljusten 815119f3d9 DuetPkg, MdeModulePkg: Fix several enum comparions
These comparisons were not comparing an enum variable
with a member of the same enum type.

GCC 4.5 generated a warning for these comparison
operations.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10932 6f19259b-4bc3-4df7-8a09-765794883524
2010-10-13 07:08:29 +00:00
erictian aca84419c4 remove additional space from comments and pass ICC/GCC44 build
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10903 6f19259b-4bc3-4df7-8a09-765794883524
2010-09-30 08:44:59 +00:00
erictian a41b5272cd add native ide/ahci driver
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10901 6f19259b-4bc3-4df7-8a09-765794883524
2010-09-29 05:50:45 +00:00
ydong10 cd7bfc2c63 Refine code to make code run safely.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10880 6f19259b-4bc3-4df7-8a09-765794883524
2010-09-16 04:51:25 +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
qhuang8 034ffda8b2 Fill AtaDeviceHeader field in ATA command block
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10849 6f19259b-4bc3-4df7-8a09-765794883524
2010-09-02 08:00:27 +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
niruiyu 6989af7168 clear the correct BAR register. Because for P2P device, only register from 0x10 to 0x14 is BAR register.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10805 6f19259b-4bc3-4df7-8a09-765794883524
2010-08-18 12:21:21 +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
qhuang8 09ba0c4660 Update AtaBus module to use Uefi.h as the master header file as it is a pure UEFI driver.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10693 6f19259b-4bc3-4df7-8a09-765794883524
2010-07-26 07:43:29 +00:00
rsun3 05399810c5 Return from ProgramBar() after VF BARs are programmed.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10645 6f19259b-4bc3-4df7-8a09-765794883524
2010-07-13 02:13:55 +00:00
rsun3 d40483911c Fix bugs in the PCI bus driver to support SR-IOV.
1. Expand the type of Offset in the _PCI_BAR structure from UINT8 to UINT16, because a VF BAR’s offset may be >= 0x100;
2. Enable ARI Capable Hierarchy for SR-IOV devices at earlier time because FirstVFOffset and VFStride of a SR-IOV device may change after its ARI Capable Hierarchy is set;
3. Change type of PcdSrIovSupport, PcdAriSupport, PcdMrIovSupport from FeatureFlag to [FixAtBuild, PcdDynamics], which allows SR-IOV/MR-IOV/ARI feature can be turn on/off dynamically, typically via a setup option.
4. Change PCI bus scan algorithm in PciScanBus() to prevent the case where some ARI extended functions may be skipped in the scan loop.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10644 6f19259b-4bc3-4df7-8a09-765794883524
2010-07-13 01:58:47 +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
mdkinney 2dda77a650 Update UHCI and ECHI drivers to both Stop and Reset the host controller at ExitBootServices().
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10464 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-07 22:46:14 +00:00
mdkinney 8063b47b1c Fix bug in PciHostBridgeEnumerator().
A linked list is created for the list of PCI Root Bridges in the platform.  This list is then traversed to enumerate each PCI Root Bridge.  After enumeration, the RootBridgeDev is destroyed, but it was not removed from the linked list before it was destroyed.  This left the linked list of PCI Root Bridges in a bad state, specially if memory is cleared on frees, or the freed buffer was reallocated.

The fix is to remove the node from the linked list before the RootBridgeDev is destroyed.


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10463 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-07 22:44:54 +00:00
erictian 15cc67e616 raise TPL to TPL_CALLBACK level at DriverBindingStart() for all usb-related modules, which prevent DriverBindingStop() from being invoked when DriverBindingStart() runs.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10460 6f19259b-4bc3-4df7-8a09-765794883524
2010-05-05 05:21:38 +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
erictian d4a622c488 Use SimpleTextInEx.Reset to initialize correctly KeyToggleStatue and KeyShiftState value.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10382 6f19259b-4bc3-4df7-8a09-765794883524
2010-04-19 05:34:25 +00:00
lgao4 6691cae97e Fix compile break on IA32 arch.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10292 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-20 06:49:56 +00:00
erictian aa91de055c Fix a bug that usb keybarod can not work well when it is inserted at a usb 2.0 hub.
It's due to AsyncInterruptList does not update the corresponding QTDHw->Data with pci bus master address.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10286 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-19 06:54:35 +00:00
erictian c61f936286 fix ia32 build error.
With IA32 tool chain, we can not use a 64bit data to divide a 32 bit data. MS tool chain may introduce an intrinsic function.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10267 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-17 11:06:21 +00:00
erictian fa03149c12 The ATA alignment_logic_in_phy_blocks field doesn’t directly report the lowest aligned LBA. Instead, there’s some modulo arithmetic involved.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10265 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-17 09:46:53 +00:00
rsun3 a1bd217a5d Minor comment fix.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10226 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-10 05:38:25 +00:00
lgao4 8776881fe8 Add a blank line in the end of file.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10210 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-05 09:16:53 +00:00
erictian 6e374f4997 fix build error
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10206 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-05 05:40:17 +00:00
erictian e172ea16a7 roll back the parameter check of AsyncInterruptTransfer() and SyncInterruptTransfer() of Usb2HcProtocol to follow current uefi spec.
current uefi spec only supports interrupt in endpoint.
but there are usb devices which support interrupt out endpoint. we propose to update uefi spec to remove the limitation. after the ecr is approved, the corresponding patch will be submitted.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10205 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-05 04:35:26 +00:00
andrewfish d03171efd1 Add an EHCI register dump function for debug. Not hooked in any place...
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10195 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-04 22:38:21 +00:00
erictian 3a2f9cce7d uniform the sw and hw expression to avoid confusing. it does not effect hw function.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10186 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-04 09:29:34 +00:00
rsun3 60cf9cfc14 Minor bug fix and robustness check improvement.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10168 6f19259b-4bc3-4df7-8a09-765794883524
2010-03-03 09:40:16 +00:00
erictian 592b87a46d update Ehci driver to distinct pci memory address and host address
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10121 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-28 13:00:58 +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
niruiyu c39c3e2190 add more comments for gEfiMdeModulePkgTokenSpaceGuid.PcdTurnOffUsbLegacySupport.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10032 6f19259b-4bc3-4df7-8a09-765794883524
2010-02-20 07:11:13 +00:00