audk/MdeModulePkg/Bus/Pci/PciBusDxe
Ard Biesheuvel b59e2427c2 MdeModulePkg/PciBusDxe: don't create bogus descriptor if no resources needed
If the current PCI configuration requires no resources to be allocated at
all (i.e., unpopulated bus), the PCI enumeration code creates a single
ACPI_ADDRESS_SPACE_DESCRIPTOR memory descriptor with all fields cleared.
This is rejected by the SubmitResources() implementation of the generic
PciHostBridgeDxe in the following way:

  PciHostBridge: SubmitResources for PcieRoot(0x0)
   Mem: Granularity/SpecificFlag = 0 / 00
        Length/Alignment = 0x0 / 0x0
  PciBus: HostBridge->SubmitResources() - Invalid Parameter

  ASSERT_EFI_ERROR (Status = Invalid Parameter)
  ASSERT [PciBusDxe] .../PciBusDxe/PciLib.c(561): !EFI_ERROR (Status)

So instead, create the empty configuration as a single entry of type
EFI_ACPI_END_TAG_DESCRIPTOR.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
2016-04-29 15:23:20 +08:00
..
ComponentName.c Fix the comments to follow UEFI Spec regarding how to check an EFI_HANDLE is valid/invalid. 2011-07-06 03:55:36 +00:00
ComponentName.h Fix the comments to follow UEFI Spec regarding how to check an EFI_HANDLE is valid/invalid. 2011-07-06 03:55:36 +00:00
PciBus.c MdeModulePkg/PciBusDxe: Remove unused variable assignment 2015-05-28 01:55:15 +00:00
PciBus.h Dispatch the UEFI option rom returned from PciPlatform/PciOverride protocol. 2015-01-20 06:45:01 +00:00
PciBusDxe.inf MdeModulePkg: list ARM and AARCH64 as valid architectures for some modules 2015-02-23 16:05:50 +00:00
PciBusDxe.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
PciBusDxeExtra.uni MdeModulePkg: Convert all .uni files to utf-8 2015-12-15 04:56:23 +00:00
PciCommand.c MdeModulePkg: Enhance PCI capability looking up logic to avoid hang 2015-09-15 08:38:16 +00:00
PciCommand.h Update the copyright notice format 2010-04-24 09:49:11 +00:00
PciDeviceSupport.c Dispatch the UEFI option rom returned from PciPlatform/PciOverride protocol. 2015-01-20 06:45:01 +00:00
PciDeviceSupport.h Update the copyright notice format 2010-04-24 09:49:11 +00:00
PciDriverOverride.c Update the copyright notice format 2010-04-24 09:49:11 +00:00
PciDriverOverride.h Update the copyright notice format 2010-04-24 09:49:11 +00:00
PciEnumerator.c MdeModulePkg/PciBusDxe: don't create bogus descriptor if no resources needed 2016-04-29 15:23:20 +08:00
PciEnumerator.h Update the copyright notice format 2010-04-24 09:49:11 +00:00
PciEnumeratorSupport.c MdeModulePkg: Fix a PCI resource dumping bug in PciBusDxe driver 2015-11-03 02:33:41 +00:00
PciEnumeratorSupport.h MdeModulePkg: Fix a PCI resource dumping bug in PciBusDxe driver 2015-11-03 02:33:41 +00:00
PciHotPlugSupport.c 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. 2010-11-22 07:16:02 +00:00
PciHotPlugSupport.h 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. 2010-11-22 07:16:02 +00:00
PciIo.c MdeModuelPkg/PciBus: Return AddrTranslationOffset in GetBarAttributes 2016-02-29 10:19:57 +08:00
PciIo.h Update the copyright notice format 2010-04-24 09:49:11 +00:00
PciLib.c MdeModulePkg/PciBus: Should reserve enough bus number for HPC 2016-03-24 11:24:30 +08:00
PciLib.h MdeModulePkg PciBusDxe: The PCI Bus Driver is updated to support multiple PCI bus ranges for a PCI root bridge. 2011-10-28 09:59:40 +00:00
PciOptionRomSupport.c Dispatch the UEFI option rom returned from PciPlatform/PciOverride protocol. 2015-01-20 06:45:01 +00:00
PciOptionRomSupport.h Dispatch the UEFI option rom returned from PciPlatform/PciOverride protocol. 2015-01-20 06:45:01 +00:00
PciPowerManagement.c MdeModulePkg PciBusDxe and DuetPkg PciBusNoEnumerationDxe: Update ResetPowerManagementFeature() to clear 4 related R/W bits in the PMCSR register, leaving other bits preserved. 2012-04-12 01:49:27 +00:00
PciPowerManagement.h Update the copyright notice format 2010-04-24 09:49:11 +00:00
PciResourceSupport.c MdeModulePkg: Fix a PciBusDxe hot plug bug 2015-11-03 02:34:21 +00:00
PciResourceSupport.h Print resource allocation/bar programming when PciBus driver does PCI BUS enumeration. 2011-08-04 09:08:09 +00:00
PciRomTable.c Update the copyright notice format 2010-04-24 09:49:11 +00:00
PciRomTable.h Update the copyright notice format 2010-04-24 09:49:11 +00:00