aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Chubb <peterc@gelato.unsw.edu.au>2005-08-22 17:50:00 -0700
committerTony Luck <tony.luck@intel.com>2005-08-23 07:41:56 -0700
commita4cce10492358b33d33bb43f98284c80482037e8 (patch)
tree868c53b157ceacf5be84004f9ecc464b794256c2
parent62d75f3753647656323b0365faa43fc1a8f7be97 (diff)
[IA64] Fix simulator boot (for real this time).
Thanks to Stephane, we've now worked out the real cause of the `Linux will not boot on simulator' problem. Turns out it's a stack overflow because the stack pointer wasn't being initialised properly in boot_head.S (it was being initialised to the lowest instead of the highest address of the stack, so the first push started to overwrite data in the BSS). Signed-off-by: Peter Chubb <peterc@gelato.unsw.edu.au> Signed-off-by: Tony Luck <tony.luck@intel.com>
-rw-r--r--arch/ia64/hp/sim/boot/boot_head.S2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/ia64/hp/sim/boot/boot_head.S b/arch/ia64/hp/sim/boot/boot_head.S
index 9364199e563..1c8c7e6a9a5 100644
--- a/arch/ia64/hp/sim/boot/boot_head.S
+++ b/arch/ia64/hp/sim/boot/boot_head.S
@@ -22,7 +22,7 @@ GLOBAL_ENTRY(_start)
.save rp, r0
.body
movl gp = __gp
- movl sp = stack_mem
+ movl sp = stack_mem+16384-16
bsw.1
br.call.sptk.many rp=start_bootloader
END(_start)