pci: Avoid auto-config when chain loading
authorSimon Glass <sjg@chromium.org>
Sun, 26 Apr 2020 15:12:56 +0000 (09:12 -0600)
committerBin Meng <bmeng.cn@gmail.com>
Thu, 30 Apr 2020 09:40:16 +0000 (17:40 +0800)
When U-Boot is not the first-stage bootloader we don't want to
re-configure the PCI devices, since this has already been done. Add a
check to avoid this.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
drivers/pci/pci-uclass.c

index d2e10d6868ab278469c32d049d0e1662ed4718e8..7f46e901fb236d6309403bfd447655ca1224f7f0 100644 (file)
@@ -1009,7 +1009,7 @@ static int pci_uclass_post_probe(struct udevice *bus)
        if (ret)
                return ret;
 
-       if (CONFIG_IS_ENABLED(PCI_PNP) &&
+       if (CONFIG_IS_ENABLED(PCI_PNP) && ll_boot_init() &&
            (!hose->skip_auto_config_until_reloc ||
             (gd->flags & GD_FLG_RELOC))) {
                ret = pci_auto_config_devices(bus);
@@ -1031,7 +1031,7 @@ static int pci_uclass_post_probe(struct udevice *bus)
         * Note we only call this 1) after U-Boot is relocated, and 2)
         * root bus has finished probing.
         */
-       if ((gd->flags & GD_FLG_RELOC) && (bus->seq == 0)) {
+       if ((gd->flags & GD_FLG_RELOC) && bus->seq == 0 && ll_boot_init()) {
                ret = fsp_init_phase_pci();
                if (ret)
                        return ret;