[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