]> git.sur5r.net Git - u-boot/commitdiff
fsl_pci_init do not scan bus when configured as an end-point
authorEd Swarthout <Ed.Swarthout@freescale.com>
Thu, 9 Oct 2008 04:38:00 +0000 (23:38 -0500)
committerWolfgang Denk <wd@denx.de>
Mon, 13 Oct 2008 20:55:40 +0000 (22:55 +0200)
Signed-off-by: Ed Swarthout <Ed.Swarthout@freescale.com>
Acked-by: Andy Fleming <afleming@freescale.com>
drivers/pci/fsl_pci_init.c

index bb2813f1292cf569e6bdc62ca24d22b88ef84b49..38a16e536196c74e3c81162ec878e5193b4cba65 100644 (file)
@@ -168,8 +168,21 @@ fsl_pci_init(struct pci_controller *hose)
        }
 
 #ifndef CONFIG_PCI_NOSCAN
-       printf ("               Scanning PCI bus %02x\n", hose->current_busno);
-       hose->last_busno = pci_hose_scan_bus(hose,hose->current_busno);
+       pci_hose_read_config_byte(hose, dev, PCI_CLASS_PROG, &temp8);
+
+       /* Programming Interface (PCI_CLASS_PROG)
+        * 0 == pci host or pcie root-complex,
+        * 1 == pci agent or pcie end-point
+        */
+       if (!temp8) {
+               printf("               Scanning PCI bus %02x\n",
+                       hose->current_busno);
+               hose->last_busno = pci_hose_scan_bus(hose, hose->current_busno);
+       } else {
+               debug("               Not scanning PCI bus %02x. PI=%x\n",
+                       hose->current_busno, temp8);
+               hose->last_busno = hose->current_busno;
+       }
 
        if ( bridge ) { /* update limit regs and subordinate busno */
                pciauto_postscan_setup_bridge(hose, dev, hose->last_busno);