feat(slave side prot): Add support for slave side mmio protection #260
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.
PR description
This PR introduces support for slave-side MMIO protection. This is needed on MCU platforms that otherwise would require each device to be mapped in the MPU. With this PR, the entire MMIO region(s) is mapped on the MPU and each architecture/platform needs to implement a functions that enables and controls the access to each device. This function is called during vm device initialization.
It is important to note that, when installing an emul handler for a device inside the mmio region, if slave side mmio protection is enabled, we have to unmap the device memory range.
This PR was only tested for TC4, as it is the current platform that needs this feature. Before accepting the PR we have to make sure all other platforms are running as expected.
Platforms working: