diff options
author | Daniel Maslowski <[email protected]> | 2024-07-19 19:04:37 +0200 |
---|---|---|
committer | Palmer Dabbelt <[email protected]> | 2024-08-01 07:14:34 -0700 |
commit | fb197c5d2fd24b9af3d4697d0cf778645846d6d5 (patch) | |
tree | bd44fd9ddd59cb0d9de2b693ca54911283247312 | |
parent | b75a22e7d4f23dcd4f78ed2ff368a3d2a4556c0c (diff) |
riscv/purgatory: align riscv_kernel_entry
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: 736e30af583fb ("RISC-V: Add purgatory")
Signed-off-by: Daniel Maslowski <[email protected]>
Reviewed-by: Alexandre Ghiti <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Palmer Dabbelt <[email protected]>
-rw-r--r-- | arch/riscv/purgatory/entry.S | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/riscv/purgatory/entry.S b/arch/riscv/purgatory/entry.S index 5bcf3af903da..0e6ca6d5ae4b 100644 --- a/arch/riscv/purgatory/entry.S +++ b/arch/riscv/purgatory/entry.S @@ -7,6 +7,7 @@ * Author: Li Zhengyu ([email protected]) * */ +#include <asm/asm.h> #include <linux/linkage.h> .text @@ -34,6 +35,7 @@ SYM_CODE_END(purgatory_start) .data +.align LGREG SYM_DATA(riscv_kernel_entry, .quad 0) .end |