aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorPeter Chubb <peterc@gelato.unsw.edu.au>2005-08-22 20:50:00 -0400
committerTony Luck <tony.luck@intel.com>2005-08-23 10:41:56 -0400
commita4cce10492358b33d33bb43f98284c80482037e8 (patch)
tree868c53b157ceacf5be84004f9ecc464b794256c2 /arch
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>
Diffstat (limited to 'arch')
-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 9364199e5632..1c8c7e6a9a5e 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)
22 .save rp, r0 22 .save rp, r0
23 .body 23 .body
24 movl gp = __gp 24 movl gp = __gp
25 movl sp = stack_mem 25 movl sp = stack_mem+16384-16
26 bsw.1 26 bsw.1
27 br.call.sptk.many rp=start_bootloader 27 br.call.sptk.many rp=start_bootloader
28END(_start) 28END(_start)