http://www.usr.com/support/gpl/USR9107_release1.1.tar.gz
[bcm963xx.git] / kernel / linux / arch / mips / brcm-boards / bcm963xx / setup.c
index 3060789..c304817 100755 (executable)
@@ -40,6 +40,7 @@
 #include <asm/gdb-stub.h>
 
 extern void brcm_timer_setup(struct irqaction *irq);
+extern unsigned long getMemorySize(void);
 
 #if defined(CONFIG_BCM96348) && defined(CONFIG_PCI)
 #include <linux/pci.h>
@@ -371,6 +372,13 @@ static int mpi_DetectPcCard(void)
 static int mpi_init(void)
 {
     unsigned long data;
+    unsigned int chipid;
+    unsigned int chiprev;
+    unsigned int sdramsize;
+
+    chipid  = (PERF->RevID & 0xFFFF0000) >> 16;
+    chiprev = (PERF->RevID & 0xFF);
+    sdramsize = getMemorySize();
     /*
      * Init the pci interface 
      */
@@ -415,6 +423,10 @@ static int mpi_init(void)
     mpi->sp1remap = 0x0;
     mpi->pcimodesel |= (PCI_BAR2_NOSWAP | 0x40);
 
+    if ((chipid == 0x6348) && (chiprev == 0xb0)) {
+        mpi->sp0range = ~(sdramsize-1);
+        mpi->sp1range = ~(sdramsize-1);
+    }
     /*
      * Change 6348 PCI Cfg Reg. offset 0x40 to PCI memory read retry count infinity
      * by set 0 in bit 8~15.  This resolve read Bcm4306 srom return 0xffff in