diff options
author | Laszlo Ersek <lersek@redhat.com> | 2016-07-01 01:44:38 +0200 |
---|---|---|
committer | Laszlo Ersek <lersek@redhat.com> | 2016-07-13 08:39:14 +0200 |
commit | c6b5fb7386c3a9a7fcfe0eead717f4248a7af346 (patch) | |
tree | d75faa4217833c92f77d8c75bc77eeaa213a654a /MdeModulePkg/Bus/Pci | |
parent | 12e6f4f1be0246f735495eb9b6987a6d94fa5b35 (diff) | |
download | edk2-platforms-c6b5fb7386c3a9a7fcfe0eead717f4248a7af346.tar.xz |
MdeModulePkg/PciBusDxe: look for the right capability in IsSHPC()
The PCI Hot Plug capability register block is marked with capability ID
0x0C (EFI_PCI_CAPABILITY_ID_SHPC), not 0x06
(EFI_PCI_CAPABILITY_ID_HOTPLUG).
This bug prevents PciBusDxe from recognizing whether a PCI-to-PCI bridge
supports hotplug. In turn the platform's EFI_PCI_HOT_PLUG_INIT_PROTOCOL is
not consulted for resource padding information:
GatherPpbInfo() [PciEnumeratorSupport.c]
GetResourcePaddingPpb() [PciResourceSupport.c]
GetResourcePaddingForHpb() [PciHotPlugSupport.c]
IsPciHotPlugBus() [PciHotPlugSupport.c]
IsSHPC() [PciHotPlugSupport.c]
//
// returns FALSE
//
//
// the following is not reached:
//
gPciHotPlugInit->GetResourcePadding()
Look for the correct capability ID.
Cc: "Johnson, Brian J." <bjohnson@sgi.com>
Cc: Alex Williamson <alex.williamson@redhat.com>
Cc: Andrew Fish <afish@apple.com>
Cc: Feng Tian <feng.tian@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Marcel Apfelbaum <marcel@redhat.com>
Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Star Zeng <star.zeng@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Ruiyu Ni <Ruiyu.ni@intel.com>
Diffstat (limited to 'MdeModulePkg/Bus/Pci')
-rw-r--r-- | MdeModulePkg/Bus/Pci/PciBusDxe/PciHotPlugSupport.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/MdeModulePkg/Bus/Pci/PciBusDxe/PciHotPlugSupport.c b/MdeModulePkg/Bus/Pci/PciBusDxe/PciHotPlugSupport.c index 257874b8b0..ca8766869a 100644 --- a/MdeModulePkg/Bus/Pci/PciBusDxe/PciHotPlugSupport.c +++ b/MdeModulePkg/Bus/Pci/PciBusDxe/PciHotPlugSupport.c @@ -300,7 +300,7 @@ IsSHPC ( Offset = 0;
Status = LocateCapabilityRegBlock (
PciIoDevice,
- EFI_PCI_CAPABILITY_ID_HOTPLUG,
+ EFI_PCI_CAPABILITY_ID_SHPC,
&Offset,
NULL
);
|