diff options
author | Alexei Fedorov <Alexei.Fedorov@arm.com> | 2019-03-06 11:15:51 +0000 |
---|---|---|
committer | Alexei Fedorov <Alexei.Fedorov@arm.com> | 2019-03-07 10:50:10 +0000 |
commit | 7dcbb4f315087c53f3de2bf3b081f76d7513e4fd (patch) | |
tree | 1774e51af93ee60e1b002be3c2d04877dc0a7304 /bl31/aarch64 | |
parent | f009c5f312476cdfc0704a3c8a9c66b7fe5b6586 (diff) |
BL31: Enable pointer authentication support in warm boot path
In the current Pointer Authentication support added in
commit b86048c40cb7d9ccd7aeac1681945676a6dc36ff
PAuth gets enabled in BL31 cold boot entrypoint only,
(see bl31_entrypoint() in bl31\aarch64\bl31_entrypoint.S)
but not in bl31_warm_entrypoint().
This results in EnIA bit [31] in SCTLR_EL3 not being set
and pointer authentication disabled after CPU wake-up event.
Fixes ARM-software/tf-issues#684
Change-Id: I27a67804764dfba2a6d72ca119ca2bcff4f536d6
Signed-off-by: Alexei Fedorov <Alexei.Fedorov@arm.com>
Diffstat (limited to 'bl31/aarch64')
-rw-r--r-- | bl31/aarch64/bl31_entrypoint.S | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/bl31/aarch64/bl31_entrypoint.S b/bl31/aarch64/bl31_entrypoint.S index 8e9528b4..065edffc 100644 --- a/bl31/aarch64/bl31_entrypoint.S +++ b/bl31/aarch64/bl31_entrypoint.S @@ -201,6 +201,19 @@ func bl31_warm_entrypoint #endif bl bl31_plat_enable_mmu + /* -------------------------------------------------------------------- + * Enable pointer authentication + * -------------------------------------------------------------------- + */ +#if ENABLE_PAUTH + bl pauth_load_bl_apiakey + + mrs x0, sctlr_el3 + orr x0, x0, #SCTLR_EnIA_BIT + msr sctlr_el3, x0 + isb +#endif /* ENABLE_PAUTH */ + bl psci_warmboot_entrypoint #if ENABLE_RUNTIME_INSTRUMENTATION |