Hello Ralf Attached untested patch implements support for getting the memory size from PMON.PMON stores the memory size in MB in an env variable called memsize. This patch follows the previous hypertransport patch Thanks Manish Lachwani --- arch/mips/pmc-sierra/yosemite/setup.c.orig 2004-10-20 19:09:17.000000000 -0700 +++ arch/mips/pmc-sierra/yosemite/setup.c 2004-10-20 19:11:09.000000000 -0700 @@ -59,6 +59,7 @@ unsigned long cpu_clock; unsigned long yosemite_base; +unsigned long memory_size; void __init bus_error_init(void) { @@ -197,8 +198,12 @@ board_time_init = yosemite_time_init; late_time_init = py_map_ocd; - /* Add memory regions */ - add_memory_region(0x00000000, 0x10000000, BOOT_MEM_RAM); + /* + * Add memory regions. Check what PMON as for us and + * then config memory. PMON reports the memory config + * in MB + */ + add_memory_region(0x00000000, memory_size*1024*1024, BOOT_MEM_RAM); if (val & 0x00000020) { /* --- arch/mips/pmc-sierra/yosemite/prom.c.orig 2004-10-20 18:55:06.000000000 -0700 +++ arch/mips/pmc-sierra/yosemite/prom.c 2004-10-20 19:08:40.000000000 -0700 @@ -27,6 +27,7 @@ extern unsigned long yosemite_base; extern unsigned long cpu_clock; +extern unsigned long memory_size; /* Get the memory size from PMON */ const char *get_system_type(void) { @@ -112,6 +113,11 @@ simple_strtol(*env + strlen("cpuclock="), NULL, 10); + if (strncmp("memsize", *env, strlen("memsize")) == 0) + memory_size = + simple_strtol(*env + strlen("memsize="), NULL, + 4); + env++; } #endif /* CONFIG_MIPS32 */