armv7: init stack to 0xdeadbeef to detect stack overflows

This adds a simple loop which initializes the stack to 0xdeadbeef
which is used by checkstack().

Change-Id: I8aecf7bfb1067de68c4080c1fcb7eefa28fd04a7
Signed-off-by: David Hendricks <dhendrix@chromium.org>
Reviewed-on: http://review.coreboot.org/2421
Tested-by: build bot (Jenkins)
Reviewed-by: Paul Menzel <paulepanter@users.sourceforge.net>
This commit is contained in:
David Hendricks 2013-02-15 17:50:20 -08:00
parent 384ee9f142
commit b313e90162
1 changed files with 18 additions and 0 deletions

View File

@ -71,6 +71,21 @@ reset:
cmp r1, #0
bne wait_for_interrupt @ If this is not core0, wait
/*
* Initialize the stack to a known value. This is used to check for
* stack overflow later in the boot process.
*/
ldr r0, .Stack
ldr r1, .Stack_size
sub r0, r0, r1
ldr r1, .Stack
ldr r2, =0xdeadbeef
init_stack_loop:
str r2, [r0]
add r0, #4
cmp r0, r1
bne init_stack_loop
/* Set stackpointer in internal RAM to call board_init_f */
call_bootblock:
ldr sp, .Stack /* Set up stack pointer */
@ -95,3 +110,6 @@ wait_for_interrupt:
.align 2
.Stack:
.word CONFIG_STACK_TOP
.align 2
.Stack_size:
.word CONFIG_STACK_SIZE