[PATCH v2] riscv: Set text_offset correctly for M-Mode
Palmer Dabbelt
palmer at dabbelt.com
Thu Nov 5 20:43:47 EST 2020
On Thu, 22 Oct 2020 16:55:33 PDT (-0700), Damien Le Moal wrote:
>> 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>
Thanks. This is on fixes.
More information about the linux-riscv
mailing list