
The code first aligns the SP to 16 then subtract 8, making it 8 bytes aligned. Furthermore the initial stack frame not quite correct either.
Signed-off-by: Joakim Tjernlund Joakim.Tjernlund@transmode.se ---
v2 - Address Scott Wood's comments
arch/powerpc/lib/board.c | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-)
diff --git arch/powerpc/lib/board.c arch/powerpc/lib/board.c index d5b75e5..a46942c 100644 --- arch/powerpc/lib/board.c +++ arch/powerpc/lib/board.c @@ -521,9 +521,8 @@ void board_init_f(ulong bootflag) addr_sp -= 16; addr_sp &= ~0xF; s = (ulong *) addr_sp; - *s-- = 0; - *s-- = 0; - addr_sp = (ulong) s; + *s = 0; /* Terminate back chain */ + *++s = 0; /* NULL return address */ debug("Stack Pointer at: %08lx\n", addr_sp);
/*