]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
riscv: Set text_offset correctly for M-Mode
authorSean Anderson <seanga2@gmail.com>
Thu, 22 Oct 2020 20:30:12 +0000 (16:30 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 18 Nov 2020 18:22:14 +0000 (19:22 +0100)
[ Upstream commit 79605f1394261995c2b955c906a5a20fb27cdc84 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/riscv/kernel/head.S

index 0a4e81b8dc7957dc86dc0ee218493bf6a014cdf2..5a0ae2eaf5e2f4745a34c5c656d519cc437c52d2 100644 (file)
@@ -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