aboutsummaryrefslogtreecommitdiff
path: root/bl31/aarch64/bl31_arch_setup.c
diff options
context:
space:
mode:
Diffstat (limited to 'bl31/aarch64/bl31_arch_setup.c')
-rw-r--r--bl31/aarch64/bl31_arch_setup.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/bl31/aarch64/bl31_arch_setup.c b/bl31/aarch64/bl31_arch_setup.c
index f6fa088..238af7b 100644
--- a/bl31/aarch64/bl31_arch_setup.c
+++ b/bl31/aarch64/bl31_arch_setup.c
@@ -49,12 +49,19 @@ void bl31_arch_setup(void)
write_sctlr(tmp_reg);
/*
- * Enable HVCs, allow NS to mask CPSR.A, route FIQs to EL3, set the
- * next EL to be aarch64
+ * Enable HVCs, route FIQs to EL3, set the next EL to be AArch64, route
+ * external abort and SError interrupts to EL3
*/
- tmp_reg = SCR_RES1_BITS | SCR_RW_BIT | SCR_HCE_BIT | SCR_FIQ_BIT;
+ tmp_reg = SCR_RES1_BITS | SCR_RW_BIT | SCR_HCE_BIT | SCR_EA_BIT |
+ SCR_FIQ_BIT;
write_scr(tmp_reg);
+ /*
+ * Enable SError and Debug exceptions
+ */
+ enable_serror();
+ enable_debug_exceptions();
+
/* Do not trap coprocessor accesses from lower ELs to EL3 */
write_cptr_el3(0);