Are CSR instructions in CVA6 "precise"?
Another way to ask this question is, when a hart is running in Machine-mode what does csrrw x1, MIMPID, x2
do? It gets subtle: MIMPID
is an MRO CSR, so we should be able to read it. However, writing it should cause an illegal instruction exception. Does x1 take on the value stored in MIMPID or not?
I believe (do not know for certain) that the ISA allows for some flexibility here. In this case, we should update the User Manual to specify the behaviour of the CVA6.