summaryrefslogtreecommitdiff
path: root/src/mainboard/emulation
diff options
context:
space:
mode:
authorRonald G. Minnich <rminnich@gmail.com>2016-10-19 08:07:13 -0700
committerRonald G. Minnich <rminnich@gmail.com>2016-10-24 20:25:04 +0200
commit5965cba3dc1fc48b1a1734fc21c05950ccc7cc4f (patch)
treeaef12a167553dacca6305aa7e99d46695f9c1534 /src/mainboard/emulation
parent0a48aee795942538e006bba42c188ee95afb49bb (diff)
downloadcoreboot-5965cba3dc1fc48b1a1734fc21c05950ccc7cc4f.tar.xz
RISCV: Clean up the common architectural code
This version of coreboot successfully starts a Harvey (Plan 9) kernel as a payload, entering main() with no supporting assembly code for startup. The Harvey port is not complete so it just panics but ... it gets started. We provide a standard payload function that takes a pointer argument and makes the jump from machine to supervisor mode; the days of kernels running in machine mode are over. We do some small tweaks to the virtual memory code. We temporarily disable two functions that won't work on some targets as register numbers changed between 1.7 and 1.9. Once lowrisc catches up we'll reenable them. We add the PAGETABLES to the memlayout.ld and use _pagetables in the virtual memory setup code. We now use the _stack and _estack from memlayout so we know where things are. As time goes on maybe we can kill all the magic numbers. Change-Id: I6caadfa9627fa35e31580492be01d4af908d31d9 Signed-off-by: Ronald G. Minnich <rminnich@gmail.com> Reviewed-on: https://review.coreboot.org/17058 Tested-by: build bot (Jenkins) Reviewed-by: Furquan Shaikh <furquan@google.com>
Diffstat (limited to 'src/mainboard/emulation')
-rw-r--r--src/mainboard/emulation/qemu-riscv/memlayout.ld1
-rw-r--r--src/mainboard/emulation/spike-riscv/memlayout.ld3
2 files changed, 3 insertions, 1 deletions
diff --git a/src/mainboard/emulation/qemu-riscv/memlayout.ld b/src/mainboard/emulation/qemu-riscv/memlayout.ld
index 615d1f2b72..8cc6d4126b 100644
--- a/src/mainboard/emulation/qemu-riscv/memlayout.ld
+++ b/src/mainboard/emulation/qemu-riscv/memlayout.ld
@@ -24,5 +24,6 @@ SECTIONS
ROMSTAGE(0x20000, 128K)
STACK(0x40000, 0x3ff00)
PRERAM_CBMEM_CONSOLE(0x80000, 8K)
+ PAGETABLES(0x80000+8K, 60K)
RAMSTAGE(0x100000, 16M)
}
diff --git a/src/mainboard/emulation/spike-riscv/memlayout.ld b/src/mainboard/emulation/spike-riscv/memlayout.ld
index 8d35a64a9c..8596723796 100644
--- a/src/mainboard/emulation/spike-riscv/memlayout.ld
+++ b/src/mainboard/emulation/spike-riscv/memlayout.ld
@@ -23,7 +23,8 @@ SECTIONS
{
DRAM_START(START)
BOOTBLOCK(START, 64K)
- STACK(START + 8M, 64K)
+ STACK(START + 8M, 4K)
+ PAGETABLES(START + 8M + 4K, 60K)
ROMSTAGE(START + 8M + 64K, 128K)
PRERAM_CBMEM_CONSOLE(START + 8M + 192k, 8K)
RAMSTAGE(START + 8M + 200K, 256K)