[PATCH 0/2] riscv: show registers in crash dumps by default

To minimize SPL size it is reasonable to disable SHOW_REGS. For main U-Boot the size restrictions are much more relaxed.
* Provide separate Kconfig symbols for SPL and main U-Boot. * Enable showing registers in main U-Boot by default.
Heinrich Schuchardt (2): riscv: allow to enable SHOW_REGS in main U-Boot only riscv: enable showing registers by default
arch/riscv/Kconfig | 13 +++++++++++++ arch/riscv/lib/interrupts.c | 7 +++---- 2 files changed, 16 insertions(+), 4 deletions(-)

To minimize SPL size it is reasonable to disable SHOW_REGS. For main U-Boot the size restrictions are much more relaxed.
* Provide separate Kconfig symbols for SPL and main U-Boot. * Add a help text.
Signed-off-by: Heinrich Schuchardt heinrich.schuchardt@canonical.com --- arch/riscv/Kconfig | 12 ++++++++++++ arch/riscv/lib/interrupts.c | 7 +++---- 2 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index fa3b016c527..66cd512b23f 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -438,6 +438,18 @@ config AVAILABLE_HARTS
config SHOW_REGS bool "Show registers on unhandled exception" + help + By default only the program counter and the return address register + are shown in crash dumps. Enable this symbol to show all registers in + main U-Boot. + +config SPL_SHOW_REGS + bool "In SPL show registers on unhandled exception" + depends on SPL + help + By default only the program counter and the return address register + are shown in crash dumps. Enable this symbol to show all registers in + SPL.
config RISCV_PRIV_1_9 bool "Use version 1.9 of the RISC-V priviledged specification" diff --git a/arch/riscv/lib/interrupts.c b/arch/riscv/lib/interrupts.c index f9a1428a486..714cc92d03e 100644 --- a/arch/riscv/lib/interrupts.c +++ b/arch/riscv/lib/interrupts.c @@ -34,9 +34,8 @@ static void show_efi_loaded_images(uintptr_t epc) efi_print_image_infos((void *)epc); }
-static void show_regs(struct pt_regs *regs) +static void __maybe_unused show_regs(struct pt_regs *regs) { -#ifdef CONFIG_SHOW_REGS printf("\nSP: " REG_FMT " GP: " REG_FMT " TP: " REG_FMT "\n", regs->sp, regs->gp, regs->tp); printf("T0: " REG_FMT " T1: " REG_FMT " T2: " REG_FMT "\n", @@ -57,7 +56,6 @@ static void show_regs(struct pt_regs *regs) regs->s10, regs->s11, regs->t3); printf("T4: " REG_FMT " T5: " REG_FMT " T6: " REG_FMT "\n", regs->t4, regs->t5, regs->t6); -#endif }
static void __maybe_unused show_backtrace(struct pt_regs *regs) @@ -157,7 +155,8 @@ static void _exit_trap(ulong code, ulong epc, ulong tval, struct pt_regs *regs) printf("EPC: " REG_FMT " RA: " REG_FMT " reloc adjusted\n", epc - gd->reloc_off, regs->ra - gd->reloc_off);
- show_regs(regs); + if (CONFIG_IS_ENABLED(SHOW_REGS)) + show_regs(regs); if (CONFIG_IS_ENABLED(FRAMEPOINTER)) show_backtrace(regs); show_code(epc);

On Sun, Aug 11, 2024 at 01:01:03PM +0200, Heinrich Schuchardt wrote:
[EXTERNAL MAIL]
To minimize SPL size it is reasonable to disable SHOW_REGS. For main U-Boot the size restrictions are much more relaxed.
- Provide separate Kconfig symbols for SPL and main U-Boot.
- Add a help text.
Signed-off-by: Heinrich Schuchardt heinrich.schuchardt@canonical.com
arch/riscv/Kconfig | 12 ++++++++++++ arch/riscv/lib/interrupts.c | 7 +++---- 2 files changed, 15 insertions(+), 4 deletions(-)
Reviewed-by: Leo Yu-Chi Liang ycliang@andestech.com

If an exception occurs in main U-Boot, show the registers. This makes analyzing crashes especially in external applications easier.
Signed-off-by: Heinrich Schuchardt heinrich.schuchardt@canonical.com --- arch/riscv/Kconfig | 1 + 1 file changed, 1 insertion(+)
diff --git a/arch/riscv/Kconfig b/arch/riscv/Kconfig index 66cd512b23f..fc79d4902de 100644 --- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -437,6 +437,7 @@ config AVAILABLE_HARTS If disable this, it will send IPI by CPUs node numbers of device tree.
config SHOW_REGS + default y bool "Show registers on unhandled exception" help By default only the program counter and the return address register

On Sun, Aug 11, 2024 at 01:01:04PM +0200, Heinrich Schuchardt wrote:
[EXTERNAL MAIL]
If an exception occurs in main U-Boot, show the registers. This makes analyzing crashes especially in external applications easier.
Signed-off-by: Heinrich Schuchardt heinrich.schuchardt@canonical.com
arch/riscv/Kconfig | 1 + 1 file changed, 1 insertion(+)
Reviewed-by: Leo Yu-Chi Liang ycliang@andestech.com
participants (2)
-
Heinrich Schuchardt
-
Leo Liang