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 poitner 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).

The correct patch is attached (my previous one misaligned the stack
pointer when compiled with some toolchains).

Signed-off-by: Peter Chubb <[EMAIL PROTECTED]>

 
diff --git a/arch/ia64/hp/sim/boot/boot_head.S 
b/arch/ia64/hp/sim/boot/boot_head.S
--- 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)
-
To unsubscribe from this list: send the line "unsubscribe linux-ia64" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to