aboutsummaryrefslogtreecommitdiff
path: root/debug/programs
diff options
context:
space:
mode:
authorTim Newsome <tim@sifive.com>2017-06-27 10:53:16 -0700
committerTim Newsome <tim@sifive.com>2017-06-27 10:53:16 -0700
commit0bca79a33e902a7c43626ef89c51ecb9efd2125e (patch)
tree4c4feaa1e1172d08734a53d7ade689bccb0b9505 /debug/programs
parenta0d927de2db60e20cd05ea245aa01f85aa99db94 (diff)
downloadriscv-tests-0bca79a33e902a7c43626ef89c51ecb9efd2125e.zip
riscv-tests-0bca79a33e902a7c43626ef89c51ecb9efd2125e.tar.gz
riscv-tests-0bca79a33e902a7c43626ef89c51ecb9efd2125e.tar.bz2
Tolerate missing misa register.
At least in the test programs. There are other places where this causes trouble as well.
Diffstat (limited to 'debug/programs')
-rwxr-xr-xdebug/programs/entry.S8
1 files changed, 7 insertions, 1 deletions
diff --git a/debug/programs/entry.S b/debug/programs/entry.S
index c9e319c..ff8ae30 100755
--- a/debug/programs/entry.S
+++ b/debug/programs/entry.S
@@ -27,7 +27,9 @@ trap_vector:
j trap_entry
handle_reset:
- la t0, trap_entry
+ // If misa doesn't exist (or is following an old spec where it has a
+ // different number), skip the next block.
+ la t0, 3f
csrw mtvec, t0
csrwi mstatus, 0
@@ -48,6 +50,10 @@ handle_reset:
csrwi medeleg, 0
2:
csrwi mie, 0
+3:
+ la t0, trap_entry
+ csrw mtvec, t0
+ csrwi mstatus, 0
# initialize global pointer
.option push