aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Maslowski <[email protected]>2024-07-19 19:04:37 +0200
committerPalmer Dabbelt <[email protected]>2024-08-01 07:14:34 -0700
commitfb197c5d2fd24b9af3d4697d0cf778645846d6d5 (patch)
treebd44fd9ddd59cb0d9de2b693ca54911283247312
parentb75a22e7d4f23dcd4f78ed2ff368a3d2a4556c0c (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.S2
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