From b86048c40cb7d9ccd7aeac1681945676a6dc36ff Mon Sep 17 00:00:00 2001 From: Antonio Nino Diaz Date: Tue, 19 Feb 2019 11:53:51 +0000 Subject: Add support for pointer authentication The previous commit added the infrastructure to load and save ARMv8.3-PAuth registers during Non-secure <-> Secure world switches, but didn't actually enable pointer authentication in the firmware. This patch adds the functionality needed for platforms to provide authentication keys for the firmware, and a new option (ENABLE_PAUTH) to enable pointer authentication in the firmware itself. This option is disabled by default, and it requires CTX_INCLUDE_PAUTH_REGS to be enabled. Change-Id: I35127ec271e1198d43209044de39fa712ef202a5 Signed-off-by: Antonio Nino Diaz --- bl31/aarch64/ea_delegate.S | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'bl31/aarch64/ea_delegate.S') diff --git a/bl31/aarch64/ea_delegate.S b/bl31/aarch64/ea_delegate.S index d5ecfc50e..40c3191ac 100644 --- a/bl31/aarch64/ea_delegate.S +++ b/bl31/aarch64/ea_delegate.S @@ -68,9 +68,13 @@ func enter_lower_el_sync_ea /* Save GP registers */ bl save_gp_registers + /* Save ARMv8.3-PAuth registers and load firmware key */ #if CTX_INCLUDE_PAUTH_REGS bl pauth_context_save #endif +#if ENABLE_PAUTH + bl pauth_load_bl_apiakey +#endif /* Setup exception class and syndrome arguments for platform handler */ mov x0, #ERROR_EA_SYNC @@ -102,9 +106,13 @@ func enter_lower_el_async_ea /* Save GP registers */ bl save_gp_registers + /* Save ARMv8.3-PAuth registers and load firmware key */ #if CTX_INCLUDE_PAUTH_REGS bl pauth_context_save #endif +#if ENABLE_PAUTH + bl pauth_load_bl_apiakey +#endif /* Setup exception class and syndrome arguments for platform handler */ mov x0, #ERROR_EA_ASYNC -- cgit v1.2.3