This directory contains YAML files that specify how to apply initial tags to SOC elements when the validator starts up.
The SOC configuration is applied before any tagging information generated by the tools in
tagging_tools
is applied.
The validator itself will, in a hardcoded manner, tag the initial register state of the processor, but items that are memory mapped, such as UARTs, and which can shift around depending on which SOC configuration Renode or some other simulator is using, are left to be specified by the configuration files here.
Currently, there is only a single miv_cfg.yml
file that specifies how to setup initial tags for
elements of the SOC in the MiV demo board supplied by Renode. The values of the actual tags is
determined by looking at information provided by the policy tool in the generated policy.
The syntax should be fairly obvious from the example file, with a couple of caveats.
Each element in the SOC is named for descriptive purposes only. The name
field in each
element specifies the name of the tag that should be applied to this element. This
value will be looked up in the generated policy YAML files. The heterogenous
field
specifies to the validator that for the address range specified, there may end up being
multiple different tags over time. Initially they will be all set to the one initial tag.
Elements that have a false
for the heterogeneous
field will be assumed to have one and
only one tag for the entire address range.
On 32-bit platforms, everything is tagged at 32-bit granularity. On 64-bit
systems, instructions are tagged at 32-bit and data is tagged, by default, at
64-bit. This can be overridden by setting the tag_granularity
field for a
region to the correct number of bytes.