[U-Boot] [PATCH 4/5] x86: Explicitly trigger pci bus configuration with driver model

Bin Meng bmeng.cn at gmail.com
Mon Jul 27 09:33:42 CEST 2015


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 <bmeng.cn at gmail.com>
---

 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



More information about the U-Boot mailing list