aboutsummaryrefslogtreecommitdiff
path: root/arch/riscv64/conf/kernel-link.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/riscv64/conf/kernel-link.S')
-rw-r--r--arch/riscv64/conf/kernel-link.S9
1 files changed, 7 insertions, 2 deletions
diff --git a/arch/riscv64/conf/kernel-link.S b/arch/riscv64/conf/kernel-link.S
index d93b642..1a0d42f 100644
--- a/arch/riscv64/conf/kernel-link.S
+++ b/arch/riscv64/conf/kernel-link.S
@@ -5,9 +5,14 @@ OUTPUT_ARCH(riscv)
ENTRY(main)
SECTIONS {
- . = ABSOLUTE(VM_KERN);
+ /* This is apparently necessary. I *think* it is to tell the linker that
+ * the kernel should be able to run in the bottom half of the address
+ * space, but I don't know for sure and this feels like a fairly major
+ * hack.
+ * @todo look into this further.
+ */
+ . = ABSOLUTE(VM_DMAP);
__kernel_start = .;
-
.text ALIGN(4K) : AT(0) {
*(.kernel.start);
*(.text*);