Commit 70896274 authored by Etienne Carriere's avatar Etienne Carriere
Browse files

ARMv7 requires the clear exclusive access at monitor entry



Clear exclusive monitor on SMC and FIQ entry for ARMv7 cores.
Signed-off-by: default avatarEtienne Carriere <etienne.carriere@linaro.org>
parent 26e63c44
......@@ -30,6 +30,16 @@
stcopr \reg, SCR
.endm
.macro clrex_on_monitor_entry
#if (ARM_ARCH_MAJOR == 7)
/*
* ARMv7 architectures need to clear the exclusive access when
* entering Monitor mode.
*/
clrex
#endif
.endm
vector_base sp_min_vector_table
b sp_min_entrypoint
b plat_panic_handler /* Undef */
......@@ -147,6 +157,8 @@ func handle_smc
smcc_save_gp_mode_regs
clrex_on_monitor_entry
/*
* `sp` still points to `smc_ctx_t`. Save it to a register
* and restore the C runtime stack pointer to `sp`.
......@@ -203,11 +215,7 @@ func handle_fiq
smcc_save_gp_mode_regs
/*
* AArch32 architectures need to clear the exclusive access when
* entering Monitor mode.
*/
clrex
clrex_on_monitor_entry
/* load run-time stack */
mov r2, sp
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment