[PATCH v2] riscv/purgatory: align riscv_kernel_entry
Jessica Clarke
jrtc27 at jrtc27.com
Tue Jul 16 13:53:33 PDT 2024
On 16 Jul 2024, at 21:40, Daniel Maslowski <cyrevolt at googlemail.com> wrote:
>
> 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: 736e30af583fb6e0e2b8211b894ff99dea0f1ee7
> Signed-off-by: Daniel Maslowski <cyrevolt at gmail.com>
> ---
> arch/riscv/purgatory/entry.S | 2 ++
> 1 file changed, 2 insertions(+)
>
> 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 (lizhengyu3 at huawei.com)
> *
> */
> +#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)
It’s a bit weird to use LGREG for a .quad. The file is RV64-only
already, anyway.
Jess
More information about the linux-riscv
mailing list