riscv: allow to enable SHOW_REGS in main U-Boot only

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>
This commit is contained in:
Heinrich Schuchardt
2024-08-11 13:01:03 +02:00
committed by Leo Yu-Chi Liang
parent aeff27c0aa
commit 73e73f04b7
2 changed files with 15 additions and 4 deletions

View 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"

View 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);