Linux-RISC-V Archive on lore.kernel.org
 help / color / Atom feed
* [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	[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, back to index

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

Linux-RISC-V Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-riscv/0 linux-riscv/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-riscv linux-riscv/ https://lore.kernel.org/linux-riscv \
		linux-riscv@lists.infradead.org
	public-inbox-index linux-riscv

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.infradead.lists.linux-riscv


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git