riscv: fix compatibility with Linux toolchain
authorAlec Roelke <ar4jc@virginia.edu>
Tue, 21 Mar 2017 16:56:32 +0000 (12:56 -0400)
committerAlec Roelke <ar4jc@virginia.edu>
Wed, 5 Apr 2017 20:21:52 +0000 (20:21 +0000)
commit6b7d30688d44952fcbb98b3e0f2bfc5155f1f9a5
tree5a14b4da7e50488675871f22ba7286ac267d3c5a
parent616d48a570296f3d6eb38e5ce5e6fe41facf1a29
riscv: fix compatibility with Linux toolchain

Previously, RISC-V in gem5 only supported RISC-V's Newlib toolchain
(riscv64-unknown-elf-*) due to incorrect assumptions made in the initial
setup of the user stack in SE mode.  This patch fixes that by referring
to the RISC-V proxy kernel code (https://github.com/riscv/riscv-pk) and
setting up the stack according to how it does it.  Now binaries compiled
using the Linux toolchain (riscv64-unknown-linux-gnu-*) will run as
well.

[Update for recent changes to MemState to add accessors and mutators to
get its members.]

Change-Id: I6d2c486df7688efe3df54273e9aa0fd686851285
Reviewed-on: https://gem5-review.googlesource.com/2305
Maintainer: Alec Roelke <ar4jc@virginia.edu>
Reviewed-by: Brandon Potter <Brandon.Potter@amd.com>
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
src/arch/riscv/process.cc
tests/test-progs/insttest/src/riscv/Makefile