Ralf Baechle wrote:
On Tue, Jan 18, 2005 at 03:44:51PM +0100, Rojhalat Ibrahim wrote:
is there anything special I have to do
when I want to use more than 512MB of memory?
My Yosemite board works fine with 512MB
but when I try 1GB it crashes in 32bit mode
with highmem and also in 64bit mode.
The boot monitor (PMON) maps the 1024MB
to physical addresses 0x0000.0000 - 0x4000.0000.
Can you try below patch?
Ralf
--- linux/arch/mips/mm/c-r4k.c 2004-12-07 02:30:50.000000000 +0000
+++ linux/arch/mips/mm/c-r4k.c 2005-02-04 00:31:34.623814760 +0000
@@ -566,7 +566,10 @@
if (!cpu_has_ic_fills_f_dc) {
unsigned long addr = (unsigned long) page_address(page);
- r4k_blast_dcache_page(addr);
+ if (addr)
+ r4k_blast_dcache_page(addr);
+ else
+ r4k_blast_dcache();
if (!cpu_icache_snoops_remote_store)
r4k_blast_scache_page(addr);
ClearPageDcacheDirty(page);
With a slightly extended patch it actually works. But afterwards
I get a lot of Illegal instructions and Segmentation faults, where
there shouldn't be any. Below is the patch I used.
Thanks
Rojhalat Ibrahim
--- linux/arch/mips/mm/c-r4k.c 2005-01-03 10:23:27.000000000 +0100
+++ linux-2.6.10/arch/mips/mm/c-r4k.c 2005-02-07 09:04:27.000000000 +0100
@@ -566,9 +566,17 @@
if (!cpu_has_ic_fills_f_dc) {
unsigned long addr = (unsigned long) page_address(page);
- r4k_blast_dcache_page(addr);
+ if (addr)
+ r4k_blast_dcache_page(addr);
+ else
+ r4k_blast_dcache();
if (!cpu_icache_snoops_remote_store)
- r4k_blast_scache_page(addr);
+ {
+ if (addr)
+ r4k_blast_scache_page(addr);
+ else
+ r4k_blast_scache();
+ }
ClearPageDcacheDirty(page);
}