Hi Heinrich > On 29.09.20 10:22, Rick Chen wrote: > >> From: Heinrich Schuchardt [mailto:xypron.g...@gmx.de] > >> Sent: Sunday, September 27, 2020 7:21 AM > >> To: Rick Jian-Zhi Chen(陳建志) > >> Cc: Simon Glass; Sean Anderson; Bin Meng; u-boot@lists.denx.de; Heinrich > >> Schuchardt > >> Subject: [PATCH v2 1/1] riscv: reset after crash > >> > >> If an exception occurs on ARM or x86, we call panic() which will try to > >> reset the board. Do the same on RISC-V. > >> > >> To avoid -Werror=format-zero-length move a '\n' to the string passed to > >> panic. We don't need a message here as depending on CONFIG_PANIC_HANG we > >> will either see > >> > >> ### ERROR ### Please RESET the board ### > >> > >> or > >> > >> resetting ... > >> > >> as next message. > >> > >> Signed-off-by: Heinrich Schuchardt <xypron.g...@gmx.de> > >> --- > >> v2: > >> Remove a superfluous message passed to panic(). > >> --- > >> arch/riscv/lib/interrupts.c | 8 ++++---- > >> 1 file changed, 4 insertions(+), 4 deletions(-) > >> > >> diff --git a/arch/riscv/lib/interrupts.c b/arch/riscv/lib/interrupts.c > >> index 8ff40f0f36..43b10a2b9b 100644 > >> --- a/arch/riscv/lib/interrupts.c > >> +++ b/arch/riscv/lib/interrupts.c > >> @@ -27,7 +27,7 @@ static void show_efi_loaded_images(uintptr_t epc) > >> static void show_regs(struct pt_regs *regs) > >> { > >> #ifdef CONFIG_SHOW_REGS > >> - printf("SP: " REG_FMT " GP: " REG_FMT " TP: " REG_FMT "\n", > >> + 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", > >> regs->t0, regs->t1, regs->t2); > >> @@ -45,7 +45,7 @@ static void show_regs(struct pt_regs *regs) > >> regs->s7, regs->s8, regs->s9); > >> printf("S10: " REG_FMT " S11: " REG_FMT " T3: " REG_FMT "\n", > >> regs->s10, regs->s11, regs->t3); > >> - printf("T4: " REG_FMT " T5: " REG_FMT " T6: " REG_FMT "\n\n", > >> + printf("T4: " REG_FMT " T5: " REG_FMT " T6: " REG_FMT "\n", > >> regs->t4, regs->t5, regs->t6); > >> #endif > >> } > >> @@ -79,12 +79,12 @@ static void _exit_trap(ulong code, ulong epc, ulong > >> tval, struct pt_regs *regs) > >> printf("EPC: " REG_FMT " RA: " REG_FMT " TVAL: " REG_FMT "\n", > >> epc, regs->ra, tval); > >> if (gd->flags & GD_FLG_RELOC) > >> - printf("EPC: " REG_FMT " RA: " REG_FMT " reloc > >> adjusted\n\n", > >> + printf("EPC: " REG_FMT " RA: " REG_FMT " reloc adjusted\n", > >> epc - gd->reloc_off, regs->ra - gd->reloc_off); > >> > >> show_regs(regs); > >> show_efi_loaded_images(epc); > >> - hang(); > >> + panic("\n"); > >> } > >> > >> int interrupt_init(void) > >> -- > >> 2.28.0 > > > > Reviewed-by: Rick Chen <r...@andestech.com> > > > > BTW, it conflicts with Sean's [PATCH v3 0/7] riscv: Correctly handle > > IPIs already pending upon boot > > > > error: patch failed: arch/riscv/lib/interrupts.c:79 > > error: arch/riscv/lib/interrupts.c: patch does not apply > > Patch failed at 0001 riscv: reset after crash > > > > Thanks, > > Rick > > > > Thanks for reviewing. Do you have a git repository and branch on which I > should rebase my patch? Or will you handle the rebase?
You can rebase on u-boot-riscv/next. Thanks, Rick > > Best regards > > Heinrich