[PATCH] powerpc: prpmc2800 - Don't trust documented memory size
Mark A. Greer
mgreer at mvista.com
Tue Nov 6 12:28:05 EST 2007
It turns out that the firmware on some PrPMC2800 processor modules
initializes the memory controller for 512 MB even when there is more
memory. As a simple work around, set the amount of memory in the
device tree passed to the kernel to the lesser of what the memory
controller is set up for and the actual amount of memory.
Signed-off-by: Mark A. Greer <mgreer at mvista.com>
---
arch/powerpc/boot/prpmc2800.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/boot/prpmc2800.c b/arch/powerpc/boot/prpmc2800.c
index 9614e1d..559c45e 100644
--- a/arch/powerpc/boot/prpmc2800.c
+++ b/arch/powerpc/boot/prpmc2800.c
@@ -405,7 +405,10 @@ static void prpmc2800_fixups(void)
bip = prpmc2800_get_bip(); /* Get board info based on VPD */
- mem_size = (bip) ? bip->mem_size : mv64x60_get_mem_size(bridge_base);
+ mem_size = mv64x60_get_mem_size(bridge_base);
+ if (bip)
+ mem_size = min(mem_size, bip->mem_size);
+
prpmc2800_bridge_setup(mem_size); /* Do necessary bridge setup */
/* If the VPD doesn't match what we know about, just use the
More information about the Linuxppc-dev
mailing list