cva6
cva6 copied to clipboard
Fix the 65x CSR document
Several feedbacks from 65x CSR document https://docs.openhwgroup.org/projects/cva6-user-manual/04_cv32a65x/design/source/CSRs.html
- exception information need ot be added: when exception will be generated ?
- Upper PMP CSR are ROCST zero
- PMPCfg have several bits stuck at zero
- MCONFIGPTR does not exist
- replace MHPMCOUNTER[]H by MHPMCOUNTERH[]
- in CSR list, replace []_ by []
- In legal value, replace "0 - 1" by "0x0 - 0x1"
Taking the points in order:
-
exception information need to be added: when exception will be generated ?
- This requires a careful analysis of the RV ISA spec (upstream and annotated). Since
riscv-configdoes not support per-CSR exception information, the requested "exception information" will most likely take the form of an additional paragraph in the introduction of the CSR design doc (@zchamski)
- This requires a careful analysis of the RV ISA spec (upstream and annotated). Since
-
Upper PMP CSR are ROCST zero
- @JeanRochCoulon; I guess this applies to
PMPADDRnregisters withn = 8-15? The definitions of these registers are ROCST zero in theriscv-configspec but they are later folded into a generic definition in the CSR factorizer. I will have a look at the code and ask @AbdessamiiOukalrazqou for help if needed.
- @JeanRochCoulon; I guess this applies to
-
PMPCfg have several bits stuck at zero
- will be updated in the
riscv-configinput spec (@zchamski) and handled in the CSR factorizer (@zchamski with support from @AbdessamiiOukalrazqou). In the rv-config input spec there are two tasks:- the bits stuck at zero in
PMPCONFIG0/PMPCONFIG1need to be made explicit by masking - the definitions of PMPCFG2 and PMPCFG3 need to be made ROCST zero.
- the bits stuck at zero in
- will be updated in the
-
MCONFIGPTR does not exist
- @JeanRochCoulon: Please clarify. This read-only CSR is present in the annotated spec for CV32A65X, in the
riscv-configinput spec, in the rendered CSR design doc and in the RTL.
- @JeanRochCoulon: Please clarify. This read-only CSR is present in the annotated spec for CV32A65X, in the
-
replace MHPMCOUNTER[]H by MHPMCOUNTERH[]
- This needs further discussion as the
Hsuffix is placed after the number. Maybe the interval notation ("firsteg - lastreg") and properly typeset names such as MHPMCOUNTERnH will be a better solution (but RST is limited in this respect.)
- This needs further discussion as the
-
in CSR list, replace []_ by []
- @AbdessamiiOukalrazqou, can you take a look at this? I confirm that hyperlinks do not function for indexed register names.
-
In legal value, replace "0 - 1" by "0x0 - 0x1"
- this is a value rendering problem, will be fixed by @zchamski
I agree about MCONFIGPTR, this CSR exists. And I am ok to keep MHPMCOUNTERH as it is Today.
This issue has been fixed in CSR specification, thanks @AbdessamiiOukalrazqou