Commit fb197c5d authored by Daniel Maslowski's avatar Daniel Maslowski Committed by Palmer Dabbelt

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: 736e30af ("RISC-V: Add purgatory")
Signed-off-by: default avatarDaniel Maslowski <cyrevolt@gmail.com>
Reviewed-by: default avatarAlexandre Ghiti <alexghiti@rivosinc.com>
Link: https://lore.kernel.org/r/20240719170437.247457-1-cyrevolt@gmail.comSigned-off-by: default avatarPalmer Dabbelt <palmer@rivosinc.com>
parent b75a22e7
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
* Author: Li Zhengyu (lizhengyu3@huawei.com) * Author: Li Zhengyu (lizhengyu3@huawei.com)
* *
*/ */
#include <asm/asm.h>
#include <linux/linkage.h> #include <linux/linkage.h>
.text .text
...@@ -34,6 +35,7 @@ SYM_CODE_END(purgatory_start) ...@@ -34,6 +35,7 @@ SYM_CODE_END(purgatory_start)
.data .data
.align LGREG
SYM_DATA(riscv_kernel_entry, .quad 0) SYM_DATA(riscv_kernel_entry, .quad 0)
.end .end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment