]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
riscv: allow to enable SHOW_REGS in main U-Boot only
authorHeinrich Schuchardt <heinrich.schuchardt@canonical.com>
Sun, 11 Aug 2024 11:01:03 +0000 (13:01 +0200)
committerLeo Yu-Chi Liang <ycliang@andestech.com>
Tue, 10 Sep 2024 02:10:43 +0000 (10:10 +0800)
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>
Reviewed-by: Leo Yu-Chi Liang <ycliang@andestech.com>
arch/riscv/Kconfig
arch/riscv/lib/interrupts.c

index 4e228a659f2ca4b7c6bfe06cca01dd7aad831cf3..fd1f5f87b6309ec5b9bca888c43b35c6e1c70568 100644 (file)
@@ -439,6 +439,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"
index f9a1428a486c6bf7dc01200d7611d7c40a15ac98..714cc92d03e0f6164959372016729ef3271d582a 100644 (file)
@@ -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);