
CPU physical address space was being wasted by allocating a PCSRBAR PCI inbound region to it's memory space.
As a rule, PCSRBAR should be left alone since it does not affect transactions from self and other masters may have changed it.
Signed-off-by: Ed Swarthout ed.swarthout@freescale.com --- Sent to external list: Monday, August 20, 2007 11:56 PM
Was: {PATCH] Fix MPC8544DS PCIe3 scsi.
This fixes the MPC8544DS scsi error:
SCSI: scanning bus for devices... Invaild port number 1 Invaild port number 2 Invaild port number 3
when not enough PCIe3 memory space is available for allocation.
drivers/fsl_pci_init.c | 9 +++++++-- 1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/fsl_pci_init.c b/drivers/fsl_pci_init.c index 1084dc6..3a13eea 100644 --- a/drivers/fsl_pci_init.c +++ b/drivers/fsl_pci_init.c @@ -130,9 +130,14 @@ fsl_pci_init(struct pci_controller *hose)
}
- /* Call setup to allocate PCSRBAR window */ - pciauto_setup_device(hose, dev, 1, hose->pci_mem, + /* Use generic setup_device to initialize standard pci regs, + * but do not allocate any windows since any BAR found (such + * as PCSRBAR) is not in this cpu's memory space. + */ + + pciauto_setup_device(hose, dev, 0, hose->pci_mem, hose->pci_prefetch, hose->pci_io); + #ifndef CONFIG_PCI_NOSCAN printf (" Scanning PCI bus %02x\n", hose->current_busno); hose->last_busno = pci_hose_scan_bus(hose,hose->current_busno);