From eaeaa4d048076cf48abb42a288ec9ef7a57dd0e6 Mon Sep 17 00:00:00 2001 From: Jeenu Viswambharan Date: Fri, 6 Jul 2018 16:50:06 +0100 Subject: [PATCH] RAS: Introduce handler for EL3 EAs External Aborts while executing in EL3 is fatal in nature. This patch allows for the platform to define a handler for External Aborts received while executing in EL3. A default implementation is added which falls back to platform unhandled exception. Change-Id: I466f2c8113a33870f2c7d2d8f2bf20437d9fd354 Signed-off-by: Jeenu Viswambharan --- bl31/aarch64/runtime_exceptions.S | 4 ++-- plat/common/aarch64/platform_helpers.S | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/bl31/aarch64/runtime_exceptions.S b/bl31/aarch64/runtime_exceptions.S index ff77597a7..54db6814d 100644 --- a/bl31/aarch64/runtime_exceptions.S +++ b/bl31/aarch64/runtime_exceptions.S @@ -213,7 +213,7 @@ end_vector_entry fiq_sp_el0 vector_entry serror_sp_el0 - b report_unhandled_exception + no_ret plat_handle_el3_ea end_vector_entry serror_sp_el0 /* --------------------------------------------------------------------- @@ -239,7 +239,7 @@ vector_entry fiq_sp_elx end_vector_entry fiq_sp_elx vector_entry serror_sp_elx - b report_unhandled_exception + no_ret plat_handle_el3_ea end_vector_entry serror_sp_elx /* --------------------------------------------------------------------- diff --git a/plat/common/aarch64/platform_helpers.S b/plat/common/aarch64/platform_helpers.S index 8a07f8f54..a5d26c013 100644 --- a/plat/common/aarch64/platform_helpers.S +++ b/plat/common/aarch64/platform_helpers.S @@ -22,6 +22,7 @@ .weak plat_handle_uncontainable_ea .weak plat_handle_double_fault + .weak plat_handle_el3_ea #if !ENABLE_PLAT_COMPAT .globl platform_get_core_pos @@ -212,3 +213,11 @@ endfunc plat_handle_uncontainable_ea func plat_handle_double_fault b report_unhandled_exception endfunc plat_handle_double_fault + + /* ----------------------------------------------------- + * Platform handler for EL3 External Abort. + * ----------------------------------------------------- + */ +func plat_handle_el3_ea + b report_unhandled_exception +endfunc plat_handle_el3_ea