From b5f28817d6d68c2cb2a3e5eaefe4633b085557b6 Mon Sep 17 00:00:00 2001 From: Anton Blanchard Date: Thu, 8 Jul 2010 19:03:41 +0000 Subject: [PATCH] Allocate malloc region with prom_claim_chunk_top We want the kernel and initrd to be as low as possible in the address space. Allocate the temporary malloc region at the top of the address space. Signed-off-by: Anton Blanchard Signed-off-by: Tony Breeds --- Makefile | 3 +-- second/yaboot.c | 6 +++--- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Makefile b/Makefile index 336ac52..78184a0 100644 --- a/Makefile +++ b/Makefile @@ -17,8 +17,7 @@ GETROOT = fakeroot # Load the bootstrap at 2Mb TEXTADDR = 0x200000 -# Malloc block at 3Mb -> 4Mb -MALLOCADDR = 0x300000 +# Malloc block of 1MB MALLOCSIZE = 0x100000 # Load kernel and ramdisk at real-base. If there is overlap, will retry until find open space KERNELADDR = 0x00C00000 diff --git a/second/yaboot.c b/second/yaboot.c index c733488..b7b9280 100644 --- a/second/yaboot.c +++ b/second/yaboot.c @@ -180,10 +180,10 @@ yaboot_start (unsigned long r3, unsigned long r4, unsigned long r5) prom_print_available(); /* Allocate some memory for malloc'ator */ - malloc_base = prom_claim_chunk((void *)MALLOCADDR, MALLOCSIZE, 0); + malloc_base = prom_claim_chunk_top(MALLOCSIZE, 0); if (malloc_base == (void *)-1) { - prom_printf("Can't claim malloc buffer (%d bytes at 0x%08x)\n", - MALLOCSIZE, MALLOCADDR); + prom_printf("Can't claim malloc buffer of %d bytes\n", + MALLOCSIZE); return -1; } malloc_init(malloc_base, MALLOCSIZE); -- 2.39.2