Index: sys/mips/beri/beri_machdep.c =================================================================== --- sys/mips/beri/beri_machdep.c (revision 275803) +++ sys/mips/beri/beri_machdep.c (working copy) @@ -184,6 +184,8 @@ char **envp = (char **)a2; long memsize; #ifdef FDT + struct mem_region mr[FDT_MEM_REGIONS]; + int mr_cnt, val; char buf[2048]; /* early stack supposedly big enough */ vm_offset_t dtbp; phandle_t chosen; @@ -256,6 +258,13 @@ chosen = OF_finddevice("/chosen"); if (OF_getprop(chosen, "bootargs", buf, sizeof(buf)) != -1) _parse_bootargs(buf); + + /* + * Try to grab physical memory regions information from device tree. + * Override value provided by miniboot on success. + */ + if (fdt_get_mem_regions(mr, &mr_cnt, &val) == 0) + memsize = val; #endif