On Fri, May 8, 2015 at 8:32 AM, Arnd Bergmann <arnd@xxxxxxxx> wrote: > On Friday 08 May 2015 07:40:44 Kevin Cernekee wrote: >> On Fri, May 8, 2015 at 5:59 AM, Jaedon Shin <jaedon.shin@xxxxxxxxx> wrote: >> > Remove unsupported memory entry for the bcm7362 platform. The BMIPS4380 >> > processor only supports ZONE_NORMAL is not available for HIGHMEM. >> > >> > Signed-off-by: Jaedon Shin <jaedon.shin@xxxxxxxxx> >> > --- >> > arch/mips/boot/dts/brcm/bcm97362svmb.dts | 2 +- >> > 1 file changed, 1 insertion(+), 1 deletion(-) >> > >> > diff --git a/arch/mips/boot/dts/brcm/bcm97362svmb.dts b/arch/mips/boot/dts/brcm/bcm97362svmb.dts >> > index b7b88e5dc9e7..ab8b01fa7dcf 100644 >> > --- a/arch/mips/boot/dts/brcm/bcm97362svmb.dts >> > +++ b/arch/mips/boot/dts/brcm/bcm97362svmb.dts >> > @@ -8,7 +8,7 @@ >> > >> > memory@0 { >> > device_type = "memory"; >> > - reg = <0x00000000 0x10000000>, <0x20000000 0x30000000>; >> > + reg = <0x00000000 0x10000000>; >> >> Hmm, this is more of a kernel limitation than a hardware limitation, >> though. The board physically has 1GB of memory, right? It is best if >> the DT entry reflects the actual hardware configuration. >> >> The Broadcom kernels enable the CPU's special "XKS01" feature to put >> 1GB of memory in ZONE_NORMAL: >> >> https://github.com/Broadcom/stblinux-3.3/tree/master/linux >> > > What exactly is the kernel limitation here? If we can't enable HIGHMEM, e.g. because the MIPS CPU has D$ aliases, then Linux is supposed to ignore any RAM above the highmem/lowmem boundary. There is code in paging_init() that tries to do this. Several years ago it used to work, but the last time I tried it (~Oct 2014) it was broken due to some other changes in MIPS early memory init, so Linux hangs on boot unless you take the excess RAM out of DT. Jaedon may be running into the same issue.