riscv: Add a bandaid for the new toolchain

Hardware / Coreboot - Ronald G. Minnich [gmail.com] - 2 November 2016 13:01 UTC

After I did a new toolchain build, I found the the mhartid register value is wrong for Spike. The docs seem to agree with Spike, not the code the toolchain produces?

Until such time as the bitstreams and toolchain can find a way to agree, just hardcode it. We've been playing this game for two years now so this is hardly a new approach.

This is intentionally ugly because we really need the toolchains and emulators and bitstreams to sync up, and that's not happening yet. Lowrisc allegedly implements the v1.9 spec but it's PTEs are clearly 1.7. Once it all settles down we can just use constants supplied by the toolchain.

I hope the syncup will have happened by the workshop in November.

This gets spike running again.

Change-Id: If259bcb6b6320ef01ed29a20ce3d2dcfd0bc7326

571c230 riscv: Add a bandaid for the new toolchain
src/arch/riscv/bootblock.S | 6 +++++-
src/arch/riscv/trap_handler.c | 2 +-
src/arch/riscv/trap_util.S | 4 +++-
3 files changed, 9 insertions(+), 3 deletions(-)

Upstream: review.coreboot.org


  • Share