forked from luck/tmp_suning_uos_patched
[PATCH] PPC64: Don't try to claim memory from OF at 1GB mark
Some RS64-based machines (p620, F80, others) have problems with firmware returning 0xdeadbeef instead of failure to allocations that end at the 1GB mark. We have two options: 1. Detect the undocumented 0xdeadbeef return value and interpret it as a failure. 2. Avoid allocating that high. (2) is really the cleaner solution here. 768MB is plenty of room so use that as the max alloc_top instead of 1GB. Signed-off-by: Olof Johansson <olof@lixom.net> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
6f9aa72743
commit
7fea82ab1a
@ -892,7 +892,10 @@ static void __init prom_init_mem(void)
|
||||
if ( RELOC(of_platform) == PLATFORM_PSERIES_LPAR )
|
||||
RELOC(alloc_top) = RELOC(rmo_top);
|
||||
else
|
||||
RELOC(alloc_top) = RELOC(rmo_top) = min(0x40000000ul, RELOC(ram_top));
|
||||
/* Some RS64 machines have buggy firmware where claims up at 1GB
|
||||
* fails. Cap at 768MB as a workaround. Still plenty of room.
|
||||
*/
|
||||
RELOC(alloc_top) = RELOC(rmo_top) = min(0x30000000ul, RELOC(ram_top));
|
||||
|
||||
prom_printf("memory layout at init:\n");
|
||||
prom_printf(" memory_limit : %x (16 MB aligned)\n", RELOC(prom_memory_limit));
|
||||
|
Loading…
Reference in New Issue
Block a user