SGI support for capDL-tool #75
Closed
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.
Add support for SGISignal caps on Arm. See also RFC-17.
SGISignalCaps do not reference objects which is unusual in capDL. IRQHandler caps solve this by pointing to an artificial IRQ node, but that IRQ node exists at least in some form in the seL4 implementation. For SGISignalCaps, we chose to use only cap parameters instead, reflecting their intended use in multikernel setups where the target IRQ and core are for a different kernel and have no further representation in the sender kernel apart from the capability.
Support includes parsing with the cap syntax
and printing to .cdl, XML, C, and Isabelle.
Despite printing support for C, there is no support for SGISignalCap in the capdl-loader-app or python-capdl-tool yet.
I'm not planning to add support for these for now, but wait for demand first, since new systems are mostly using the Rust capDL loader instead.
This PR also adds an SGISignalCap example to the AArch32 example for testing, and a new AArch64 test with a small fix for the ASIDPool cap check on 64 bit architectures (it looks like we generally do not specify ASID pools explicitly).