Skip to content

Latest commit

 

History

History

soc_cfg

soc_cfg

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.

Syntax

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.