fix problem with 128MB ram.

This patch is out of broadcoms official source code

SVN-Revision: 18413
master
Hauke Mehrtens 15 years ago
parent 00808aaff3
commit 30f859403a
  1. 9
      target/linux/brcm-2.4/files/arch/mips/bcm947xx/prom.c
  2. 17
      target/linux/brcm47xx/patches-2.6.28/170-128MB_ram_bugfix.patch
  3. 17
      target/linux/brcm47xx/patches-2.6.30/170-128MB_ram_bugfix.patch
  4. 17
      target/linux/brcm47xx/patches-2.6.31/170-128MB_ram_bugfix.patch

@ -31,6 +31,15 @@ prom_init(int argc, const char **argv)
*(unsigned long *)(prom_init)) *(unsigned long *)(prom_init))
break; break;
} }
/* Ignoring the last page when ddr size is 128M. Cached
* accesses to last page is causing the processor to prefetch
* using address above 128M stepping out of the ddr address
* space.
*/
if (mem == 0x8000000)
mem -= 0x1000;
add_memory_region(0, mem, BOOT_MEM_RAM); add_memory_region(0, mem, BOOT_MEM_RAM);
} }

@ -0,0 +1,17 @@
--- a/arch/mips/bcm47xx/prom.c
+++ b/arch/mips/bcm47xx/prom.c
@@ -141,6 +141,14 @@ static __init void prom_init_mem(void)
break;
}
+ /* Ignoring the last page when ddr size is 128M. Cached
+ * accesses to last page is causing the processor to prefetch
+ * using address above 128M stepping out of the ddr address
+ * space.
+ */
+ if (mem == 0x8000000)
+ mem -= 0x1000;
+
add_memory_region(0, mem, BOOT_MEM_RAM);
}

@ -0,0 +1,17 @@
--- a/arch/mips/bcm47xx/prom.c
+++ b/arch/mips/bcm47xx/prom.c
@@ -141,6 +141,14 @@ static __init void prom_init_mem(void)
break;
}
+ /* Ignoring the last page when ddr size is 128M. Cached
+ * accesses to last page is causing the processor to prefetch
+ * using address above 128M stepping out of the ddr address
+ * space.
+ */
+ if (mem == 0x8000000)
+ mem -= 0x1000;
+
add_memory_region(0, mem, BOOT_MEM_RAM);
}

@ -0,0 +1,17 @@
--- a/arch/mips/bcm47xx/prom.c
+++ b/arch/mips/bcm47xx/prom.c
@@ -141,6 +141,14 @@ static __init void prom_init_mem(void)
break;
}
+ /* Ignoring the last page when ddr size is 128M. Cached
+ * accesses to last page is causing the processor to prefetch
+ * using address above 128M stepping out of the ddr address
+ * space.
+ */
+ if (mem == 0x8000000)
+ mem -= 0x1000;
+
add_memory_region(0, mem, BOOT_MEM_RAM);
}
Loading…
Cancel
Save