Unmask SError and Debug exceptions.

Any asynchronous exception caused by the firmware should be handled
in the firmware itself.  For this reason, unmask SError exceptions
(and Debug ones as well) on all boot paths.  Also route external
abort and SError interrupts to EL3, otherwise they will target EL1.

Change-Id: I9c191d2d0dcfef85f265641c8460dfbb4d112092
diff --git a/bl1/aarch64/bl1_arch_setup.c b/bl1/aarch64/bl1_arch_setup.c
index d4be9d6..7085f77 100644
--- a/bl1/aarch64/bl1_arch_setup.c
+++ b/bl1/aarch64/bl1_arch_setup.c
@@ -48,11 +48,19 @@
 	write_sctlr(tmp_reg);
 
 	/*
-	 * Enable HVCs, 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);