I think I found a bug in Picorv32. Please let me know if it is incorrect.
Brief bug description
Some CSRs seem mandatory according to the specification, for example mvendorid.
The mvendorid CSR is a 32-bit read-only register providing the JEDEC manufacturer ID of the provider of the core. This register must be readable in any implementation, but a value of 0 can be returned to indicate the field is not implemented or that this is a non-commercial implementation.
However, reading such a register fails (more precisely, it hangs, like in #234). From my understanding of the code, the only CSRs supported by Picorv32 are some rvfi registers. I did not find documentation about CSRs in picorv32, maybe I missed something.
Hi there!
I think I found a bug in Picorv32. Please let me know if it is incorrect.
Brief bug description
Some CSRs seem mandatory according to the specification, for example mvendorid.
However, reading such a register fails (more precisely, it hangs, like in #234). From my understanding of the code, the only CSRs supported by Picorv32 are some rvfi registers. I did not find documentation about CSRs in picorv32, maybe I missed something.
Tested parameters
I used the following parameters:
Example snippet
Here is an example snippet, given that, as specified by the RISC-V specification:
The program below hangs after fetching the first nop.
Thanks! Flavien