* [PATCH] riscv: Set text_offset correctly for M-Mode
@ 2020-10-17 18:28 Sean Anderson
2020-10-19 0:08 ` Damien Le Moal
0 siblings, 1 reply; 3+ messages in thread
From: Sean Anderson @ 2020-10-17 18:28 UTC (permalink / raw)
To: linux-riscv
Cc: Albert Ou, Anup Patel, Sean Anderson, Atish Patra,
Palmer Dabbelt, Paul Walmsley
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@gmail.com>
---
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..74679f338c65 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_S_MODE
#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
+#else
+ /* Image load offset (0MB) from start of RAM for M-mode */
+ .dword 0
#endif
/* Effective size of kernel image */
.dword _end - _start
--
2.28.0
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH] riscv: Set text_offset correctly for M-Mode
2020-10-17 18:28 [PATCH] riscv: Set text_offset correctly for M-Mode Sean Anderson
@ 2020-10-19 0:08 ` Damien Le Moal
2020-10-22 20:30 ` Sean Anderson
0 siblings, 1 reply; 3+ messages in thread
From: Damien Le Moal @ 2020-10-19 0:08 UTC (permalink / raw)
To: Sean Anderson, linux-riscv
Cc: Anup Patel, Albert Ou, Palmer Dabbelt, Paul Walmsley, Atish Patra
On 2020/10/18 3:29, 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@gmail.com>
> ---
>
> 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..74679f338c65 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_S_MODE
Shouldn't this be:
#ifndef CONFIG_RISCV_M_MODE
CONFIG_RISCV_S_MODE does not exist.
> #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
> +#else
> + /* Image load offset (0MB) from start of RAM for M-mode */
> + .dword 0
> #endif
> /* Effective size of kernel image */
> .dword _end - _start
>
Otherwise, looks good to me.
--
Damien Le Moal
Western Digital Research
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] riscv: Set text_offset correctly for M-Mode
2020-10-19 0:08 ` Damien Le Moal
@ 2020-10-22 20:30 ` Sean Anderson
0 siblings, 0 replies; 3+ messages in thread
From: Sean Anderson @ 2020-10-22 20:30 UTC (permalink / raw)
To: Damien Le Moal, linux-riscv
Cc: Anup Patel, Albert Ou, Palmer Dabbelt, Paul Walmsley, Atish Patra
On 10/18/20 8:08 PM, Damien Le Moal wrote:
> On 2020/10/18 3:29, 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@gmail.com>
>> ---
>>
>> 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..74679f338c65 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_S_MODE
>
> Shouldn't this be:
>
> #ifndef CONFIG_RISCV_M_MODE
>
> CONFIG_RISCV_S_MODE does not exist.
>
>> #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
>> +#else
>> + /* Image load offset (0MB) from start of RAM for M-mode */
>> + .dword 0
>> #endif
>> /* Effective size of kernel image */
>> .dword _end - _start
>>
>
> Otherwise, looks good to me.
>
Thanks for spotting that. Should be fixed in v2.
--Sean
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2020-10-22 20:31 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-10-17 18:28 [PATCH] riscv: Set text_offset correctly for M-Mode Sean Anderson
2020-10-19 0:08 ` Damien Le Moal
2020-10-22 20:30 ` Sean Anderson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).