#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>
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
*/
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