On 04/28/16 18:09, Ard Biesheuvel wrote: > On 28 April 2016 at 18:06, Laszlo Ersek <[email protected]> wrote: >> On 04/28/16 17:51, Ard Biesheuvel wrote: >>> 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 <[email protected]> >>> --- >>> MdeModulePkg/Bus/Pci/PciBusDxe/PciEnumerator.c | 7 ++----- >>> 1 file changed, 2 insertions(+), 5 deletions(-) >> >> Is this error related to the other thread? >> >> http://thread.gmane.org/gmane.comp.bios.edk2.devel/11135 >> >> In particular, to PcdPciDisableBusEnumeration? >> > > No, it is completely separate, as far as I can tell. It simply creates > an incorrect descriptor list if none of the PCI devices behind a root > bridge require any resources at all, and this is probably a code path > that you are very unlikely to hit on x86.
Ah, very interesting. So only devices with PCI config space, right? How curious. :) Thank you for the explanation! Laszlo _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

