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 Pull Request introduces the IOPMP Reference Model, developed in compliance with the RISC-V IOPMP Specification Version 0.9.2-RC2 (November 2024). This model serves as a reference implementation, ensuring alignment with the latest specification and will be updated as future revisions are released. Just as the RISC-V IOMMU Specification repository contains its own reference model, it is imperative that the IOPMP Specification repository includes a corresponding reference model to maintain consistency and support the community's development efforts.
Supported Features
The IOPMP Reference Model incorporates all IOPMP Models and each model can be configured based upon SRCMD_FMT and MDCFG_FMT flags at compilation time. All features outlined in the RISC-V IOPMP Specification Version 0.9.2-RC2 (November 2024). Key features include:
0: TOR not supported.
1: TOR supported
0: SPS not supported.
1: SPS is supported
prio_entry
field in HWCFG2 is programmable.0: Field is fixed.
1: Field is programmable
0: Tagging not supported.
1: New RRID tagging is supported.
rrid_transl
field is programmable.0: Field is fixed.
1: Field is programmable
0: Fields of instruction fetches are ignored
1: Fields of instruction fetches are not ignored
CHK_X
= 1.0: Instruction fetch checks are permissive.
1: Instruction fetches are always denied.
0: Write accesses are allowed based on permissions.
1: Write accesses are always denied.
0: No stalling supported.
1: Stalling features are implemented.
0: Feature not supported.
1: Interrupts can be suppressed per entry.
0: Feature not supported.
1: Errors can be suppressed per entry.
0: Feature not supported.
1: Subsequent violations will be recorded.
MDCFG_FMT
is not 0.Implementation defined value
0: Higher-address fields not available.
1: Higher-address fields are implemented.
0: Feature not supported.
1: Error details can be captured and logged.
ERR_REQID
is implemented.0: Feature not supported.
1: Errored RRID and Entry num is recorded.
0: Feature is not implemented
1: Memory domains can be locked.
4: 4-byte width.
8: 8-byte width.
0: MSI is not supported.
1: MSI can be generated.
All IOPMP Models and Mentioned features are tested using C, test files are included in the verif/tests directory.