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

Reply via email to