Update VexRiscv to b6118e6cc2a3
, sbt to 1.9.7, SpinalHDL to 1.9.4; make PMP plugin selection configurable
#20
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 updates the pinned VexRiscv commit to b6118e6cc2a3, which (amongst other things) integrates the changes
PmpPlugin -> PmpPluginNapot
,PmpPluginOld -> PmpPlugin
SpinalHDL/VexRiscv#378These changes fix a bug in the "PmpPluginOld" (which supports all PMP addressing modes of NA4, NAPOT, and TOR) relating to address calculation for NAPOT regions. Futhermore, they "undeprecate" the
PmpPluginOld
by renaming it toPmpPlugin
, indicating its full-featuredness compared to the now-calledPmpPluginNapot
.Shipping both of these plugins, upstream VexRiscv allows this repository to select the appropriate one depending on the particular user preferences. To this end, I introduce a
pmpAddressMatchingModes
switch, where users can indicate which modes shall be supported in their CPU. For theVexRiscv_Secure
target, it now defaults to the full-featured PMP plugin, effectively reverting to the state of #9. Changing this to thePmpPluginNapot
as done in #12 unexpectedly broke downstream consumers such as TockOS, which thus needed to build and ship their own CPU variant (tock/tock#2860). Thus, this change should allow OSes such as Tock, which require a spec-compliant PMP implementation, to revert back to the pre-builtVexRiscv_Secure
CPU target.I can add a
VexRiscv_SecureNapot
target, to also retain the more optimized, but feature-limited and non-spec compliant version, if desired.Furthermore, this PR updates the
sbt
version to 1.9.7, to work around an issue with using it with recent JREs ([error] [launcher] error during sbt launcher: java.lang.UnsupportedOperationException: The Security Manager is deprecated and will be removed in a future release
), and updates the SpinalHDL versions to match those of the upstream VexRiscv repo.