summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrzegorz Jaszczyk <jaz@semihalf.com>2018-06-13 15:39:35 +0200
committerKostya Porotchkin <kostap@marvell.com>2018-06-24 18:04:21 +0300
commitfd1ec5abb06d7bb0191b005eff6d0246efbe3e58 (patch)
treeddf74b64f649751c388daa551b6b89767342df44
parent92031614b561eefbfbff1cbdb0e654ec3acd8730 (diff)
runtime_exceptions: add default lower el data abort handler
When ATF is built with HANDLE_EA_EL3_FIRST (more in doc), the external aborts and serror interrupts will be trapped in EL3. Add simple weak data abort handler for lower level data aborts. Change-Id: I4342df4e1c42626ba4f7ae0d976244f7af0e5fa9 Signed-off-by: Grzegorz Jaszczyk <jaz@semihalf.com> Reviewed-on: http://vgitil04.il.marvell.com:8080/56757 Tested-by: iSoC Platform CI <ykjenk@marvell.com> Reviewed-by: Kostya Porotchkin <kostap@marvell.com> Reviewed-by: Hanna Hawa <hannah@marvell.com>
-rw-r--r--bl31/aarch64/runtime_exceptions.S14
1 files changed, 14 insertions, 0 deletions
diff --git a/bl31/aarch64/runtime_exceptions.S b/bl31/aarch64/runtime_exceptions.S
index 60be9327..9719874e 100644
--- a/bl31/aarch64/runtime_exceptions.S
+++ b/bl31/aarch64/runtime_exceptions.S
@@ -34,6 +34,8 @@
.globl fiq_aarch32
.globl serror_aarch32
+ .weak dabort_lower_el_handler
+
/* ---------------------------------------------------------------------
* This macro handles Synchronous exceptions.
* Only SMC exceptions are supported.
@@ -68,6 +70,9 @@
cmp x30, #EC_AARCH64_SMC
b.eq smc_handler64
+ cmp x30, #EC_DABORT_LOWER_EL
+ b.eq dabort_lower_el_handler
+
/* Other kinds of synchronous exceptions are not handled */
ldr x30, [sp, #CTX_GPREGS_OFFSET + CTX_GPREG_LR]
b report_unhandled_exception
@@ -403,3 +408,12 @@ rt_svc_fw_critical_error:
msr spsel, #1
no_ret report_unhandled_exception
endfunc smc_handler
+
+ /* ---------------------------------------------------------------------
+ * Weak handler for data abort calls from lower exception levels, can be
+ * overwritten by platform handler.
+ * ---------------------------------------------------------------------
+ */
+dabort_lower_el_handler:
+ ldr x30, [sp, #CTX_GPREGS_OFFSET + CTX_GPREG_LR]
+ b report_unhandled_exception