aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/boot/oflib.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/boot/oflib.c')
-rw-r--r--arch/powerpc/boot/oflib.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/arch/powerpc/boot/oflib.c b/arch/powerpc/boot/oflib.c
index 95b8fd69a403..b0ec9cf3eaaf 100644
--- a/arch/powerpc/boot/oflib.c
+++ b/arch/powerpc/boot/oflib.c
@@ -168,8 +168,19 @@ void *of_claim(unsigned long virt, unsigned long size, unsigned long align)
168 168
169void *of_vmlinux_alloc(unsigned long size) 169void *of_vmlinux_alloc(unsigned long size)
170{ 170{
171 void *p = malloc(size); 171 unsigned long start = (unsigned long)_start, end = (unsigned long)_end;
172 172 void *addr;
173 void *p;
174
175 /* With some older POWER4 firmware we need to claim the area the kernel
176 * will reside in. Newer firmwares don't need this so we just ignore
177 * the return value.
178 */
179 addr = of_claim(start, end - start, 0);
180 printf("Trying to claim from 0x%lx to 0x%lx (0x%lx) got %p\r\n",
181 start, end, end - start, addr);
182
183 p = malloc(size);
173 if (!p) 184 if (!p)
174 fatal("Can't allocate memory for kernel image!\n\r"); 185 fatal("Can't allocate memory for kernel image!\n\r");
175 186