riscv/purgatory: align riscv_kernel_entry

commit fb197c5d2f upstream.

When alignment handling is delegated to the kernel, everything must be
word-aligned in purgatory, since the trap handler is then set to the
kexec one. Without the alignment, hitting the exception would
ultimately crash. On other occasions, the kernel's handler would take
care of exceptions.
This has been tested on a JH7110 SoC with oreboot and its SBI delegating
unaligned access exceptions and the kernel configured to handle them.

Fixes: 736e30af58 ("RISC-V: Add purgatory")
Signed-off-by: Daniel Maslowski <cyrevolt@gmail.com>
Reviewed-by: Alexandre Ghiti <alexghiti@rivosinc.com>
Link: https://lore.kernel.org/r/20240719170437.247457-1-cyrevolt@gmail.com
Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Daniel Maslowski 2024-07-19 19:04:37 +02:00 committed by Greg Kroah-Hartman
parent 2cb1a73d1d
commit 10ffafb456

View File

@ -11,6 +11,8 @@
.macro size, sym:req
.size \sym, . - \sym
.endm
#include <asm/asm.h>
#include <linux/linkage.h>
.text
@ -39,6 +41,7 @@ size purgatory_start
.data
.align LGREG
.globl riscv_kernel_entry
riscv_kernel_entry:
.quad 0