summaryrefslogtreecommitdiff
path: root/board/amcc/yucca/yucca.c
diff options
context:
space:
mode:
authorMichal Simek <monstr@monstr.eu>2007-09-11 00:29:27 +0200
committerMichal Simek <monstr@monstr.eu>2007-09-11 00:29:27 +0200
commit9c73f4b81172bc9f1b8f132450e69bcfb5b960ca (patch)
treeb20402ff5f80a91423b9d444ba5b947d36cd06ff /board/amcc/yucca/yucca.c
parent78cff50edba6b1508eb15c2f53ce966ac891eb9e (diff)
parente251e00d0db4b36d1d2b7e38fec43a7296b529a2 (diff)
downloadu-boot-imx-9c73f4b81172bc9f1b8f132450e69bcfb5b960ca.zip
u-boot-imx-9c73f4b81172bc9f1b8f132450e69bcfb5b960ca.tar.gz
u-boot-imx-9c73f4b81172bc9f1b8f132450e69bcfb5b960ca.tar.bz2
Merge git://www.denx.de/git/u-boot
Diffstat (limited to 'board/amcc/yucca/yucca.c')
-rw-r--r--board/amcc/yucca/yucca.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/board/amcc/yucca/yucca.c b/board/amcc/yucca/yucca.c
index d08fcf3..397b018 100644
--- a/board/amcc/yucca/yucca.c
+++ b/board/amcc/yucca/yucca.c
@@ -846,16 +846,18 @@ void yucca_setup_pcie_fpga_endpoint(int port)
static struct pci_controller pcie_hose[3] = {{0},{0},{0}};
-void pcie_setup_hoses(void)
+void pcie_setup_hoses(int busno)
{
struct pci_controller *hose;
int i, bus;
+ char *env;
+ unsigned int delay;
/*
* assume we're called after the PCIX hose is initialized, which takes
* bus ID 0 and therefore start numbering PCIe's from 1.
*/
- bus = 1;
+ bus = busno;
for (i = 0; i <= 2; i++) {
/* Check for yucca card presence */
if (!yucca_pcie_card_present(i))
@@ -874,8 +876,8 @@ void pcie_setup_hoses(void)
hose = &pcie_hose[i];
hose->first_busno = bus;
- hose->last_busno = bus;
- bus++;
+ hose->last_busno = bus;
+ hose->current_busno = bus;
/* setup mem resource */
pci_set_region(hose->regions + 0,
@@ -895,10 +897,21 @@ void pcie_setup_hoses(void)
*/
#else
ppc440spe_setup_pcie_rootpoint(hose, i);
+
+ env = getenv ("pciscandelay");
+ if (env != NULL) {
+ delay = simple_strtoul (env, NULL, 10);
+ if (delay > 5)
+ printf ("Warning, expect noticable delay before PCIe"
+ "scan due to 'pciscandelay' value!\n");
+ mdelay (delay * 1000);
+ }
+
/*
* Config access can only go down stream
*/
hose->last_busno = pci_hose_scan(hose);
+ bus = hose->last_busno + 1;
#endif
}
}