X-Git-Url: http://git.rot13.org/?p=bcm963xx.git;a=blobdiff_plain;f=kernel%2Flinux%2Farch%2Fmips%2Fbrcm-boards%2Fbcm963xx%2Fsetup.c;h=c304817ea63c9edb1041895d52de5bc193c8a390;hp=30607898933635becdf3c1506675fec545cbee69;hb=a2d96664d0ef34bb8bed0eb7c011b47dff43c340;hpb=f76ebf3bd5a3980496d0305c613d4623a9b41680;ds=sidebyside diff --git a/kernel/linux/arch/mips/brcm-boards/bcm963xx/setup.c b/kernel/linux/arch/mips/brcm-boards/bcm963xx/setup.c index 30607898..c304817e 100755 --- a/kernel/linux/arch/mips/brcm-boards/bcm963xx/setup.c +++ b/kernel/linux/arch/mips/brcm-boards/bcm963xx/setup.c @@ -40,6 +40,7 @@ #include extern void brcm_timer_setup(struct irqaction *irq); +extern unsigned long getMemorySize(void); #if defined(CONFIG_BCM96348) && defined(CONFIG_PCI) #include @@ -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