[PATCH] powerpc: incorrect rmo_top handling in prom_init
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Thu, 2 Mar 2006 23:35:40 +0000 (10:35 +1100)
committerPaul Mackerras <paulus@samba.org>
Fri, 3 Mar 2006 11:01:05 +0000 (22:01 +1100)
On Thu, 2006-03-02 at 19:55 +0100, Olaf Hering wrote:

> My iBook1 has 2 memory regions in reg. Depending on how I boot it
> (vmlinux+initrd) or zImage.initrd, it will not boot with current Linus
> tree.
> rmo_top should be 160MB instead of 32MB.

On logically-partitioned machines the first element of the reg
property in the memory node is defined to be the "RMO" region,
i.e. the memory that the processor can access in real mode.  On other
machines the first element has no special meaning, so only take it to
be the RMO region on LPAR machines.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/kernel/prom_init.c

index d34fe537400e657996521a7cba0025c3febc7bfa..813c2cd194c218dd0d2803c402b9a2e9281b887f 100644 (file)
@@ -978,7 +978,7 @@ static void __init prom_init_mem(void)
                        if (size == 0)
                                continue;
                        prom_debug("    %x %x\n", base, size);
-                       if (base == 0)
+                       if (base == 0 && (RELOC(of_platform) & PLATFORM_LPAR))
                                RELOC(rmo_top) = size;
                        if ((base + size) > RELOC(ram_top))
                                RELOC(ram_top) = base + size;