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, err, val; char buf[2048]; /* early stack supposedly big enough */ vm_offset_t dtbp; phandle_t chosen; @@ -268,6 +270,16 @@ cninit(); printf("entry: platform_start()\n"); +#ifdef FDT + /* + * Try to grab physical memory regions information from device tree. + * Override value provided by miniboot on success. + */ + err = fdt_get_mem_regions(mr, &mr_cnt, &val); + if (err == 0) + memsize = val; +#endif + bootverbose = 1; if (bootverbose) { printf("cmd line: ");