riscv-qemu
riscv-qemu copied to clipboard
RV64 mstatus/status: SXL and UXL are not correctly implemented
Hi !
The misa
register correctly provides the value of MXL
, but the mstatus/sstatus
register do not provide a valid value for the SXL
and UXL
bits (which are always returned as 0). For example, the documentation states that:
For RV64 and RV128 systems, if S-mode is not supported, then SXL is hardwired to zero. Other-
wise, it is a WARL field that encodes the current value of S-XLEN. In particular, the implemen-
tation may hardwire SXL so that S-XLEN = M-XLEN.
In the case of the sifive_u
machine, where Supervisor mode is implemented, 0
is incorrect. Hard-wiring it MXL
seems a good option to have a legal value for the time being.
Thanks for the bug report. Will look into this...
SXL and UXL are not implemented at all.