[PATCH] riscv: Set text_offset correctly for M-Mode
Sean Anderson
seanga2 at gmail.com
Sat Oct 17 14:28:48 EDT 2020
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>
---
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
More information about the linux-riscv
mailing list