aboutsummaryrefslogtreecommitdiff
path: root/arch/arm/lib
diff options
context:
space:
mode:
authorCsókás Bence <csokas.bence@prolan.hu>2023-12-19 14:33:18 +0100
committerTom Rini <trini@konsulko.com>2024-01-11 21:19:25 -0500
commit29f390bbd5b463676065134e3e58f7a50dbfd8ec (patch)
tree51caa0401d13e85bc9d7c45d210f6055d91e7a7d /arch/arm/lib
parent6e75ae1a39431fad9a14d7718582d86d90997545 (diff)
arm: spl: Use separate fault handlers instead of a single common one
It may be necessary to set breakpoints etc. on a specific fault handler in SPL. Add a Kconfig option to separate the different handlers into their own individual infinite loops. Signed-off-by: Csókás Bence <csokas.bence@prolan.hu>
Diffstat (limited to 'arch/arm/lib')
-rw-r--r--arch/arm/lib/vectors.S18
1 files changed, 18 insertions, 0 deletions
diff --git a/arch/arm/lib/vectors.S b/arch/arm/lib/vectors.S
index 843f9b9c28..b6b879339d 100644
--- a/arch/arm/lib/vectors.S
+++ b/arch/arm/lib/vectors.S
@@ -138,11 +138,29 @@ _fiq: .word fiq
#if !CONFIG_IS_ENABLED(SYS_NO_VECTOR_TABLE)
.align 5
undefined_instruction:
+#if CONFIG_IS_ENABLED(USE_SEPARATE_FAULT_HANDLERS)
+ b undefined_instruction
+#endif
software_interrupt:
+#if CONFIG_IS_ENABLED(USE_SEPARATE_FAULT_HANDLERS)
+ b software_interrupt
+#endif
prefetch_abort:
+#if CONFIG_IS_ENABLED(USE_SEPARATE_FAULT_HANDLERS)
+ b prefetch_abort
+#endif
data_abort:
+#if CONFIG_IS_ENABLED(USE_SEPARATE_FAULT_HANDLERS)
+ b data_abort
+#endif
not_used:
+#if CONFIG_IS_ENABLED(USE_SEPARATE_FAULT_HANDLERS)
+ b not_used
+#endif
irq:
+#if CONFIG_IS_ENABLED(USE_SEPARATE_FAULT_HANDLERS)
+ b irq
+#endif
fiq:
1:
b 1b /* hang and never return */