mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-06-13 15:03:58 +03:00
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>
This commit is contained in:
@@ -79,6 +79,15 @@ config SPL_SYS_NO_VECTOR_TABLE
|
||||
depends on SPL
|
||||
bool
|
||||
|
||||
config SPL_USE_SEPARATE_FAULT_HANDLERS
|
||||
bool "Use separate fault handlers instead of a single common one"
|
||||
depends on !SPL_SYS_NO_VECTOR_TABLE && !ARM64 && !CPU_V7M
|
||||
help
|
||||
Instead of a common fault handler, generate a separate one for
|
||||
undefined_instruction, software_interrupt, prefetch_abort etc.
|
||||
This is for debugging purposes, when you want to set breakpoints
|
||||
on them separately.
|
||||
|
||||
config LINUX_KERNEL_IMAGE_HEADER
|
||||
depends on ARM64
|
||||
bool
|
||||
|
||||
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user