diff options
author | Grzegorz Jaszczyk <jaz@semihalf.com> | 2018-06-13 15:39:35 +0200 |
---|---|---|
committer | Kostya Porotchkin <kostap@marvell.com> | 2018-06-24 18:04:21 +0300 |
commit | fd1ec5abb06d7bb0191b005eff6d0246efbe3e58 (patch) | |
tree | ddf74b64f649751c388daa551b6b89767342df44 | |
parent | 92031614b561eefbfbff1cbdb0e654ec3acd8730 (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.S | 14 |
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 |