# SPDX-License-Identifier: Apache-2.0 # # Copyright (c) 2023, Nordic Semiconductor ASA ## A pykwalify schema for basic validation of the structure of a SoC ## metadata YAML file. ## # The soc.yml file is a simple list of key value pairs containing SoCs # located and the current structure level. schema;cpucluster-schema: required: false type: seq sequence: - type: map mapping: name: required: true type: str schema;soc-schema: required: false type: seq sequence: - type: map mapping: name: required: true type: str cpuclusters: include: cpucluster-schema schema;series-schema: required: false type: seq sequence: - type: map mapping: name: required: true type: str socs: required: false include: soc-schema type: map mapping: family: required: false type: seq sequence: - type: map mapping: name: required: true type: str series: include: series-schema socs: include: soc-schema series: include: series-schema socs: include: soc-schema vendor: required: false type: str desc: SoC series of the SoC. This field is of informational use and can be used for filtering of SoCs. comment: required: false type: str desc: Free form comment with extra information regarding the SoC. runners: type: map mapping: run_once: type: map desc: | Allows for restricting west flash commands when using sysbuild to run once per given grouping of board targets. This is to allow for future image program cycles to not erase the flash of a device which has just been programmed by another image. mapping: regex;(.*): type: seq desc: | A dictionary of commands which should be limited to running once per invocation of west flash for a given set of flash runners and board targets. sequence: - type: map mapping: run: required: true type: str enum: ['first', 'last'] desc: | If first, will run this command once when the first image is flashed, if last, will run this command once when the final image is flashed. runners: required: true type: seq sequence: - type: str desc: | A list of flash runners that this applies to, can use `all` to apply to all runners. groups: required: true type: seq sequence: - type: map desc: | A grouping of board targets which the command should apply to. Can be used multiple times to have multiple groups. mapping: qualifiers: required: true type: seq sequence: - type: str desc: | A board qualifier to match against in regex form. Must be one entry per board target, a single regex entry will not match two board targets even if they both match.