RAS: Introduce handler for EL3 EAs
authorJeenu Viswambharan <[email protected]>
Fri, 6 Jul 2018 15:50:06 +0000 (16:50 +0100)
committerJeenu Viswambharan <[email protected]>
Thu, 19 Jul 2018 09:13:18 +0000 (10:13 +0100)
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 <[email protected]>
bl31/aarch64/runtime_exceptions.S
plat/common/aarch64/platform_helpers.S

index ff77597a7fca9ec9b56facbfcd18a36fa74d7538..54db6814d542d4a195a35a872ea1aa6fe4c9f68b 100644 (file)
@@ -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
 
        /* ---------------------------------------------------------------------
index 8a07f8f54cd0e253ac945f9cb0a4d1417ae9f407..a5d26c0133e0b62430b0f336263dc3d45691d2bc 100644 (file)
@@ -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