summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rvcontroller.lua3
1 files changed, 2 insertions, 1 deletions
diff --git a/rvcontroller.lua b/rvcontroller.lua
index 64be2ab..875c324 100644
--- a/rvcontroller.lua
+++ b/rvcontroller.lua
@@ -371,6 +371,7 @@ local function writecsr(address,data)
return
elseif address == 0xf11 or address == 0xf12 or address == 0xf13 or address == 0xf14 or address == 0xf15 or address == 0x300 then
--Read-only machine information register, ignore write
+ return
elseif address == 0x310 then
--mstatush
local bits = explodebits(data,32)
@@ -388,7 +389,7 @@ local function writecsr(address,data)
mem.isa.c = bits[2]
mem.isa.i = bits[8]
mem.isa.m = bits[12]
- local newbits = {[0] = mem.isa.a,mem.isa.b,mem.isa.c,[4] = not mem.isa.i,[8] = mem.isa.i,[12] = mem.isa.m}
+ local newbits = {[0] = mem.isa.a,mem.isa.b,mem.isa.c,[4] = not mem.isa.i,[8] = mem.isa.i,[12] = mem.isa.m,[30] = true}
mem.csr[0x301] = implodebits(newbits,32)
return
end