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:
parent
384ee9f142
commit
b313e90162
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue