With driver model, probing pci bus is all done on a lazy basis, as needed. On x86, pci bus is the fundamental device that needs to work before any other peripherals. In order to have a working pci before any other pci devices can be initialized, we need explicitly trigger the pci bus configuration.
Signed-off-by: Bin Meng <[email protected]> --- common/board_r.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/common/board_r.c b/common/board_r.c index bf6c725..4263e47 100644 --- a/common/board_r.c +++ b/common/board_r.c @@ -233,6 +233,22 @@ static int initr_pci(void) { #ifndef CONFIG_DM_PCI pci_init(); +#else +#ifdef CONFIG_X86 + /* + * With driver model, probing pci bus is all done on a lazy basis, + * as needed. On x86, pci bus is the fundamental device that needs + * to work before any other peripherals. In order to have a working + * pci before any other pci devices can be initialized, we need + * explicitly trigger the pci bus configuration. + */ + struct udevice *dev; + int ret; + + ret = uclass_first_device(UCLASS_PCI, &dev); + if (ret) + return ret; +#endif #endif return 0; -- 1.8.2.1 _______________________________________________ U-Boot mailing list [email protected] http://lists.denx.de/mailman/listinfo/u-boot

