-
Notifications
You must be signed in to change notification settings - Fork 842
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Wrong mstatus.[SXL|UXL] for RV64I in M-mode only config #1781
Comments
I only looked into this one long enough to find that, at the time that the mstatus CSR is created, Spike believes that U and S modes are present, despite the —-priv setting. There is clearly a bug, but I’d appreciate it if someone else can try to ferret it out. @mkpest As with the RV32E issue you raised earlier, you are poking around corners of Spike that we theoretically should support but that we don’t put much effort behind. Most of the maintainers build RV32I and RV64I systems with multiple privilege modes. If you’re interested in helping us out in verifying and fixing these nooks and crannies, we’d certainly appreciate your help. |
I just ran into this same bug. Looks like the first processor created gets it right, and then there's an issue where some device tree parsing code gets to run, and has MSU hard-coded:
The code where MSU is hard-coded was introduced by @jerryz123 in f11bd7b |
Sorry, I think #1787 should fix this |
It's working now. Thank you. |
I'm runnig some simple asm code using Spike (current version - today's build) in RV64I, M mode only config:
At some point code reads mstatus (from log):
Read value is
0x0000000a00001800
which seems wrong assuming--priv=m
flag. It seems that spike assigns mstatus.SXL|UXL as misa.MXL. Correct value should be:0x0000000000001800
. Accroding to spec:The text was updated successfully, but these errors were encountered: