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/lib/arch/aarch64/misc_helpers.S b/lib/arch/aarch64/misc_helpers.S
index 8c1f740..05e90f9 100644
--- a/lib/arch/aarch64/misc_helpers.S
+++ b/lib/arch/aarch64/misc_helpers.S
@@ -39,6 +39,9 @@
 	.globl	enable_serror
 	.globl	disable_serror
 
+	.globl	enable_debug_exceptions
+	.globl	disable_debug_exceptions
+
 	.globl	read_daif
 	.globl	write_daif
 
@@ -110,6 +113,11 @@
 	ret
 
 
+enable_debug_exceptions:
+	msr	daifclr, #DAIF_DBG_BIT
+	ret
+
+
 disable_irq:; .type disable_irq, %function
 	msr	daifset, #DAIF_IRQ_BIT
 	ret
@@ -125,6 +133,11 @@
 	ret
 
 
+disable_debug_exceptions:
+	msr	daifset, #DAIF_DBG_BIT
+	ret
+
+
 read_daif:; .type read_daif, %function
 	mrs	x0, daif
 	ret