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