summaryrefslogtreecommitdiff
path: root/drivers/fsl_pci_init.c
diff options
context:
space:
mode:
authorJon Loeliger <jdl@freescale.com>2007-11-02 15:22:01 -0500
committerJon Loeliger <jdl@freescale.com>2007-11-02 15:22:01 -0500
commit3cac27c1d40b151f295dcfdb514fa928732e4ecf (patch)
tree5dbc1813bfa548e8d31879c39c075bfdcbbf8f86 /drivers/fsl_pci_init.c
parent3c89d75409eb26639d36dfa11d4ee3d8b962dc3c (diff)
parente60adeac2d8fa30258e1706bb342a3363526e8d7 (diff)
downloadu-boot-imx-3cac27c1d40b151f295dcfdb514fa928732e4ecf.zip
u-boot-imx-3cac27c1d40b151f295dcfdb514fa928732e4ecf.tar.gz
u-boot-imx-3cac27c1d40b151f295dcfdb514fa928732e4ecf.tar.bz2
Merge commit 'remotes/wd/master'
Diffstat (limited to 'drivers/fsl_pci_init.c')
-rw-r--r--drivers/fsl_pci_init.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/fsl_pci_init.c b/drivers/fsl_pci_init.c
index 3a13eea..1e77884 100644
--- a/drivers/fsl_pci_init.c
+++ b/drivers/fsl_pci_init.c
@@ -54,6 +54,7 @@ fsl_pci_init(struct pci_controller *hose)
u8 temp8;
int r;
int bridge;
+ int inbound = 0;
volatile ccsr_fsl_pci_t *pci = (ccsr_fsl_pci_t *) hose->cfg_addr;
pci_dev_t dev = PCI_BDF(busno,0,0);
@@ -74,6 +75,7 @@ fsl_pci_init(struct pci_controller *hose)
PIWAR_READ_SNOOP | PIWAR_WRITE_SNOOP |
(__ilog2(hose->regions[r].size) - 1);
pi++;
+ inbound = hose->regions[r].size > 0;
} else { /* Outbound */
po->powbar = (hose->regions[r].phys_start >> 12) & 0x000fffff;
po->potar = (hose->regions[r].bus_start >> 12) & 0x000fffff;
@@ -138,6 +140,12 @@ fsl_pci_init(struct pci_controller *hose)
pciauto_setup_device(hose, dev, 0, hose->pci_mem,
hose->pci_prefetch, hose->pci_io);
+ if (inbound) {
+ pci_hose_read_config_word(hose, dev, PCI_COMMAND, &temp16);
+ pci_hose_write_config_word(hose, dev, PCI_COMMAND,
+ temp16 | PCI_COMMAND_MEMORY);
+ }
+
#ifndef CONFIG_PCI_NOSCAN
printf (" Scanning PCI bus %02x\n", hose->current_busno);
hose->last_busno = pci_hose_scan_bus(hose,hose->current_busno);