riscv: Set text_offset correctly for M-Mode

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>
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
This commit is contained in:
Sean Anderson 2020-10-22 16:30:12 -04:00 committed by Palmer Dabbelt
parent 1bd14a66ee
commit 79605f1394
No known key found for this signature in database
GPG Key ID: 2E1319F35FBB1889

View File

@ -35,12 +35,17 @@ ENTRY(_start)
.word 0 .word 0
#endif #endif
.balign 8 .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 #if __riscv_xlen == 64
/* Image load offset(2MB) from start of RAM */ /* Image load offset(2MB) from start of RAM */
.dword 0x200000 .dword 0x200000
#else #else
/* Image load offset(4MB) from start of RAM */ /* Image load offset(4MB) from start of RAM */
.dword 0x400000 .dword 0x400000
#endif
#endif #endif
/* Effective size of kernel image */ /* Effective size of kernel image */
.dword _end - _start .dword _end - _start