[PATCH v2] riscv: Set text_offset correctly for M-Mode
Damien Le Moal
Damien.LeMoal at wdc.com
Thu Oct 22 19:55:33 EDT 2020
On 2020/10/23 5:30, Sean Anderson wrote:
> M-Mode Linux is loaded at the start of RAM, not 2MB later. Perhaps this
> should be calculated based on PAGE_OFFSET somehow? Even better would be to
> deprecate text_offset and instead introduce something absolute.
>
> Signed-off-by: Sean Anderson <seanga2 at gmail.com>
> ---
>
> Changes in v2:
> - RISCV_S_MODE does not exist; use RISCV_M_MODE instead
>
> arch/riscv/kernel/head.S | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/arch/riscv/kernel/head.S b/arch/riscv/kernel/head.S
> index 0a4e81b8dc79..5a0ae2eaf5e2 100644
> --- a/arch/riscv/kernel/head.S
> +++ b/arch/riscv/kernel/head.S
> @@ -27,12 +27,17 @@ ENTRY(_start)
> /* reserved */
> .word 0
> .balign 8
> +#ifdef CONFIG_RISCV_M_MODE
> + /* Image load offset (0MB) from start of RAM for M-mode */
> + .dword 0
> +#else
> #if __riscv_xlen == 64
> /* Image load offset(2MB) from start of RAM */
> .dword 0x200000
> #else
> /* Image load offset(4MB) from start of RAM */
> .dword 0x400000
> #endif
> +#endif
> /* Effective size of kernel image */
> .dword _end - _start
>
Looks good to me. Added this to my upcoming pile of patches for Kendryte and
tested. No problems.
Reviewed-by: Damien Le Moal <damien.lemoal at wdc.com>
Tested-by: Damien Le Moal <damien.lemoal at wdc.com>
--
Damien Le Moal
Western Digital Research
More information about the linux-riscv
mailing list