[U-Boot] [PATCH V2 Inc1] IXP425: Fixing PCI access

Stefan Althoefer
2008-12-08T12:24:22Z

This fixes conflict existing with IXP425_PCI_SIMPLE_MAPPING.
BAR0 and BAR4 were both defined 0, which prevented external
bus masters from accessing first 16MByte of main memory.

This is an incrmental patch to patch posted 20081206.

Signed-off-by: Stefan Althoefer <stefan.althoefer@web.de>
---
cpu/ixp/pci.c | 3 +--
include/asm-arm/arch-ixp/ixp425pci.h | 4 ++--
2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/cpu/ixp/pci.c b/cpu/ixp/pci.c
index 6586ba1..e6afb7b 100644
--- a/cpu/ixp/pci.c
+++ b/cpu/ixp/pci.c
@@ -340,11 +340,10 @@ void pci_ixp_init (struct pci_controller *hose)
REG_WRITE (PCI_CSR_BASE, PCI_PCIMEMBASE_OFFSET,
IXP425_PCI_PCIMEMBASE_DEFAULT);

- crp_write (PCI_CFG_SUB_VENDOR_ID, IXP425_PCI_SUB_VENDOR_SYSTEM);
-
REG_READ (PCI_CSR_BASE, PCI_CSR_OFFSET, regval);
regval |= PCI_CSR_IC | PCI_CSR_ABE | PCI_CSR_PDS;
REG_WRITE (PCI_CSR_BASE, PCI_CSR_OFFSET, regval);
+
crp_write (PCI_CFG_COMMAND, PCI_CFG_CMD_MAE | PCI_CFG_CMD_BME);
udelay (1000);

diff --git a/include/asm-arm/arch-ixp/ixp425pci.h b/include/asm-arm/arch-ixp/ixp425pci.h
index e533e90..2600d0d 100644
--- a/include/asm-arm/arch-ixp/ixp425pci.h
+++ b/include/asm-arm/arch-ixp/ixp425pci.h
@@ -159,8 +159,8 @@ typedef struct
#define IXP425_PCI_BAR_1_DEFAULT 0x01000000
#define IXP425_PCI_BAR_2_DEFAULT 0x02000000
#define IXP425_PCI_BAR_3_DEFAULT 0x03000000
-#define IXP425_PCI_BAR_4_DEFAULT 0x00000000
-#define IXP425_PCI_BAR_5_DEFAULT 0x00000000
+#define IXP425_PCI_BAR_4_DEFAULT 0xff000000
+#define IXP425_PCI_BAR_5_DEFAULT 0xfffff000
#else
#define IXP425_PCI_BAR_0_DEFAULT 0x40000000
#define IXP425_PCI_BAR_1_DEFAULT 0x41000000
--
1.5.4.5