[U-Boot] [PATCH 1/1] pci: move pcidelay code to new location just before PCI bus scan
Anatolij Gustschin
agust at denx.de
Tue Oct 11 17:18:15 CEST 2011
PCI cards might need some time after reset to respond. On some
boards (mpc5200 or mpc8260 based) the PCI bus reset is deasserted
at pci_init_board() time, so we currently can not use available
"pcidelay" option for waiting before PCI bus scan since this
waiting takes place before calling pci_init_board(). By moving
the pcidelay code to the new location using of the "pcidelay"
option is possible on mpc5200 or mpc8260 based boards, too.
Signed-off-by: Anatolij Gustschin <agust at denx.de>
---
drivers/pci/pci.c | 26 +++++++++++++-------------
1 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
index 1a0b14c..b65cdd1 100644
--- a/drivers/pci/pci.c
+++ b/drivers/pci/pci.c
@@ -695,6 +695,19 @@ int pci_hose_scan_bus(struct pci_controller *hose, int bus)
int pci_hose_scan(struct pci_controller *hose)
{
+#if defined(CONFIG_PCI_BOOTDELAY)
+ char *s;
+ int i;
+
+ /* wait "pcidelay" ms (if defined)... */
+ s = getenv("pcidelay");
+ if (s) {
+ int val = simple_strtoul(s, NULL, 10);
+ for (i = 0; i < val; i++)
+ udelay(1000);
+ }
+#endif /* CONFIG_PCI_BOOTDELAY */
+
/* Start scan at current_busno.
* PCIe will start scan at first_busno+1.
*/
@@ -709,19 +722,6 @@ int pci_hose_scan(struct pci_controller *hose)
void pci_init(void)
{
-#if defined(CONFIG_PCI_BOOTDELAY)
- char *s;
- int i;
-
- /* wait "pcidelay" ms (if defined)... */
- s = getenv ("pcidelay");
- if (s) {
- int val = simple_strtoul (s, NULL, 10);
- for (i=0; i<val; i++)
- udelay (1000);
- }
-#endif /* CONFIG_PCI_BOOTDELAY */
-
hose_head = NULL;
/* now call board specific pci_init()... */
--
1.7.1
More information about the U-Boot
mailing list