diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2021-08-25 23:47:08 +0300 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2021-08-25 23:47:08 +0300 |
| commit | 5dfac4879ce5f34503ae7537eefd3fc48d6fa750 (patch) | |
| tree | 7ac25f1a14373ae08ea6aa2406d8f83026dba74a /arch/riscv/conf | |
| parent | b235f49f31d11e68019c42f48b6641c37e4c986e (diff) | |
| download | kmi-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.cmd | 6 | ||||
| -rw-r--r-- | arch/riscv/conf/init-link.S | 1 | ||||
| -rw-r--r-- | arch/riscv/conf/kernel-link.S | 3 |
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); } |
