diff options
Diffstat (limited to 'src/arch/arm64/transition_asm.S')
-rw-r--r-- | src/arch/arm64/transition_asm.S | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/arch/arm64/transition_asm.S b/src/arch/arm64/transition_asm.S index 24eab13fa2..8fd629a8af 100644 --- a/src/arch/arm64/transition_asm.S +++ b/src/arch/arm64/transition_asm.S @@ -155,11 +155,18 @@ ENTRY(exc_exit) eret ENDPROC(exc_exit) -/* exc_set_vbar: Initialize the exception entry address in vbar */ -ENTRY(exc_set_vbar) +/* + * exception_init_asm: Initialize VBAR and point SP_EL3 to exception stack. + * x0 = end of exception stack + */ +ENTRY(exception_init_asm) + msr SPSel, #SPSR_USE_H + mov sp, x0 + msr SPSel, #SPSR_USE_L + adr x0, exc_vectors write_current vbar, x0, x1 dsb sy isb ret -ENDPROC(exc_set_vbar) +ENDPROC(exception_init_asm) |