armv7-m: set stack pointer to _estack
this change sets the stack pointer to the value specified in memlayout.ld before jumping to the bootblock. BUG=none BRANCH=ToT TEST=Built cosmos and all other current boards. Change-Id: Ic1b790f27bce431124ba70cc2d3d3607c537564b Signed-off-by: Patrick Georgi <pgeorgi@chromium.org> Original-Commit-Id: d50fd02db8bf10147fd808f3030e6297b9ca0aad Original-Change-Id: I4bb8cea7435d2a0e2c1ced050c3366d2e636cb8a Original-Signed-off-by: Daisuke Nojiri <dnojiri@chromium.org> Original-Reviewed-on: https://chromium-review.googlesource.com/225420 Original-Reviewed-by: Vadim Bendebury <vbendeb@chromium.org> Reviewed-on: http://review.coreboot.org/9384 Tested-by: build bot (Jenkins) Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
parent
c5a4c12431
commit
907fd12cf6
|
@ -31,5 +31,20 @@
|
||||||
#include <arch/asm.h>
|
#include <arch/asm.h>
|
||||||
|
|
||||||
ENTRY(_start)
|
ENTRY(_start)
|
||||||
|
/*
|
||||||
|
* 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, =_estack
|
||||||
|
ldr r2, =0xdeadbeef
|
||||||
|
init_stack_loop:
|
||||||
|
str r2, [r0]
|
||||||
|
add r0, #4
|
||||||
|
cmp r0, r1
|
||||||
|
bne init_stack_loop
|
||||||
|
|
||||||
|
call_bootblock:
|
||||||
|
ldr sp, =_estack /* Set up stack pointer */
|
||||||
bl main
|
bl main
|
||||||
ENDPROC(_start)
|
ENDPROC(_start)
|
||||||
|
|
Loading…
Reference in New Issue