aboutsummaryrefslogtreecommitdiff
path: root/arch/riscv/conf
diff options
context:
space:
mode:
authorKimplul <kimi.h.kuparinen@gmail.com>2021-08-25 23:47:08 +0300
committerKimplul <kimi.h.kuparinen@gmail.com>2021-08-25 23:47:08 +0300
commit5dfac4879ce5f34503ae7537eefd3fc48d6fa750 (patch)
tree7ac25f1a14373ae08ea6aa2406d8f83026dba74a /arch/riscv/conf
parentb235f49f31d11e68019c42f48b6641c37e4c986e (diff)
downloadkmi-5dfac4879ce5f34503ae7537eefd3fc48d6fa750.tar.gz
kmi-5dfac4879ce5f34503ae7537eefd3fc48d6fa750.zip
libfdt seems to work
At least as far as reading memory info, cool. One issue I have is that .(ro)data is apparently accessed by absolute addresses, so I need to know at which address the kernel is going to be loaded. I would prefer completely position independent code, but if that's not possible then eh.
Diffstat (limited to 'arch/riscv/conf')
-rw-r--r--arch/riscv/conf/boot.cmd6
-rw-r--r--arch/riscv/conf/init-link.S1
-rw-r--r--arch/riscv/conf/kernel-link.S3
3 files changed, 5 insertions, 5 deletions
diff --git a/arch/riscv/conf/boot.cmd b/arch/riscv/conf/boot.cmd
index ddbc319..782c1e8 100644
--- a/arch/riscv/conf/boot.cmd
+++ b/arch/riscv/conf/boot.cmd
@@ -1,2 +1,4 @@
-fatload ${devtype} ${devnum} ${kernel_addr_r} apos.itb
-bootm ${kernel_addr_r}
+fdt move ${fdt_addr} ${fdt_addr_r}
+fdt addr ${fdt_addr_r}
+load ${devtype} ${devnum} ${kernel_addr_r} apos.itb
+bootm ${kernel_addr_r} - ${fdt_addr_r}
diff --git a/arch/riscv/conf/init-link.S b/arch/riscv/conf/init-link.S
index db18822..f1ceadc 100644
--- a/arch/riscv/conf/init-link.S
+++ b/arch/riscv/conf/init-link.S
@@ -1,4 +1,3 @@
-#include <apos/link.lds.h>
#include <vmap.h>
OUTPUT_ARCH(riscv)
diff --git a/arch/riscv/conf/kernel-link.S b/arch/riscv/conf/kernel-link.S
index 873c7de..ebcc877 100644
--- a/arch/riscv/conf/kernel-link.S
+++ b/arch/riscv/conf/kernel-link.S
@@ -1,4 +1,3 @@
-#include <apos/link.lds.h>
#include <vmap.h>
OUTPUT_ARCH(riscv)
@@ -7,7 +6,7 @@ ENTRY(main)
SECTIONS {
. = ABSOLUTE(VM_KERN);
.text ALIGN(4K) : AT(0) {
- *(.text.start);
+ *(.kernel.start);
*(.text);
. = ALIGN(4K);
}