Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This simplifies, clarifies and fixes the reset functionality.
Until now the model conflates reset and initialisation, and does way more than it should on reset. The RISC-V spec only requires a very small number of things to be reset.
This change:
init
functions toreset
, to clarify that they correspond to resetting the chip.ext_init
andext_rvfi_init
functions. The latter is not used and the former is only used by the old CHERI code.mip
,mie
,mideleg
,mtvec
,mepc
, etc).mstatus[MIE]
andmstatus[MPRV]
. As far as I can see they were missing.mhartid
etc to 0.I didn't remove the vector register resets yet. That needs a bigger refactor.
Also note that currently there is no way to actually do a chip reset mid-simulation, but that will be needed eventually.