mpc8641hpcn: Set up outbound pci windows before inbound
authorBecky Bruce <beckyb@kernel.crashing.org>
Wed, 4 Feb 2009 00:10:49 +0000 (18:10 -0600)
committerWolfgang Denk <wd@denx.de>
Mon, 9 Feb 2009 23:26:45 +0000 (00:26 +0100)
Because the inbound pci windows are mapped generously, set up
the more specific outbound windows first.  This way, when we
search the pci regions for something, we will hit on the more
specific region.  This can actually be a problem on systems
with large amounts of RAM.

Signed-off-by: Becky Bruce <beckyb@kernel.crashing.org>
board/freescale/mpc8641hpcn/mpc8641hpcn.c

index b83ed6c..9b6b69e 100644 (file)
@@ -163,9 +163,6 @@ void pci_init_board(void)
                }
                debug("\n");
 
                }
                debug("\n");
 
-               /* inbound */
-               r += fsl_pci_setup_inbound_windows(r);
-
                /* outbound memory */
                pci_set_region(r++,
                               CONFIG_SYS_PCI1_MEM_BASE,
                /* outbound memory */
                pci_set_region(r++,
                               CONFIG_SYS_PCI1_MEM_BASE,
@@ -180,6 +177,9 @@ void pci_init_board(void)
                               CONFIG_SYS_PCI1_IO_SIZE,
                               PCI_REGION_IO);
 
                               CONFIG_SYS_PCI1_IO_SIZE,
                               PCI_REGION_IO);
 
+               /* inbound */
+               r += fsl_pci_setup_inbound_windows(r);
+
                hose->region_count = r - hose->regions;
 
                hose->first_busno=first_free_busno;
                hose->region_count = r - hose->regions;
 
                hose->first_busno=first_free_busno;
@@ -212,9 +212,6 @@ void pci_init_board(void)
        struct pci_controller *hose = &pci2_hose;
        struct pci_region *r = hose->regions;
 
        struct pci_controller *hose = &pci2_hose;
        struct pci_region *r = hose->regions;
 
-       /* inbound */
-       r += fsl_pci_setup_inbound_windows(r);
-
        /* outbound memory */
        pci_set_region(r++,
                       CONFIG_SYS_PCI2_MEM_BASE,
        /* outbound memory */
        pci_set_region(r++,
                       CONFIG_SYS_PCI2_MEM_BASE,
@@ -229,6 +226,9 @@ void pci_init_board(void)
                       CONFIG_SYS_PCI2_IO_SIZE,
                       PCI_REGION_IO);
 
                       CONFIG_SYS_PCI2_IO_SIZE,
                       PCI_REGION_IO);
 
+       /* inbound */
+       r += fsl_pci_setup_inbound_windows(r);
+
        hose->region_count = r - hose->regions;
 
        hose->first_busno=first_free_busno;
        hose->region_count = r - hose->regions;
 
        hose->first_busno=first_free_busno;