From e03c22a98cf5deffd0dec2f9ff88a600aa330bc4 Mon Sep 17 00:00:00 2001 From: Lars Munch Date: Sat, 8 May 2010 22:43:35 +0200 Subject: arm: fix arm kernel boot for non zero start addr Booting an arm kernel has been broken a while when booting from non zero start address. This is due to the order of events: board init loads the kernel and sets register 15 to the start address and then qemu_system_reset reset the cpu making register 15 zero again. This patch fixes the usage of the register 15 start address trick in combination with arm_load_kernel. Signed-off-by: Lars Munch Signed-off-by: Aurelien Jarno --- hw/arm_boot.c | 1 + 1 file changed, 1 insertion(+) (limited to 'hw/arm_boot.c') diff --git a/hw/arm_boot.c b/hw/arm_boot.c index df031a5952..620550b5ab 100644 --- a/hw/arm_boot.c +++ b/hw/arm_boot.c @@ -187,6 +187,7 @@ static void main_cpu_reset(void *opaque) env->regs[15] = info->entry & 0xfffffffe; env->thumb = info->entry & 1; } else { + env->regs[15] = info->loader_start; if (old_param) { set_kernel_args_old(info, info->initrd_size, info->loader_start); -- cgit 1.4.1