136 lines
4.2 KiB
YAML
136 lines
4.2 KiB
YAML
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
# Copyright (c) 2023, Nordic Semiconductor ASA
|
|
|
|
## A pykwalify schema for basic validation of the structure of a
|
|
## board metadata YAML file.
|
|
##
|
|
# The board.yml file is a simple list of key value pairs containing board
|
|
# information like: name, vendor, socs, variants.
|
|
schema;variant-schema:
|
|
required: false
|
|
type: seq
|
|
sequence:
|
|
- type: map
|
|
mapping:
|
|
name:
|
|
required: true
|
|
type: str
|
|
cpucluster:
|
|
required: false
|
|
type: str
|
|
variants:
|
|
required: false
|
|
include: variant-schema
|
|
|
|
schema;board-schema:
|
|
type: map
|
|
mapping:
|
|
name:
|
|
required: true
|
|
type: str
|
|
desc: Name of the board
|
|
full_name:
|
|
required: false
|
|
type: str
|
|
desc: Full name of the board. Typically set to the commercial name of the board.
|
|
vendor:
|
|
required: false
|
|
type: str
|
|
desc: SoC family of the SoC on the board.
|
|
revision:
|
|
required: false
|
|
type: map
|
|
mapping:
|
|
format:
|
|
required: true
|
|
type: str
|
|
enum:
|
|
["major.minor.patch", "letter", "number", "custom"]
|
|
default:
|
|
required: false # This field is required when 'format' != 'custom'
|
|
type: str
|
|
exact:
|
|
required: false
|
|
type: bool
|
|
revisions:
|
|
required: false # This field is required when 'format' != 'custom'
|
|
type: seq
|
|
sequence:
|
|
- type: map
|
|
mapping:
|
|
name:
|
|
required: true
|
|
type: str
|
|
socs:
|
|
required: true
|
|
type: seq
|
|
sequence:
|
|
- type: map
|
|
mapping:
|
|
name:
|
|
required: true
|
|
type: str
|
|
variants:
|
|
include: variant-schema
|
|
|
|
type: map
|
|
mapping:
|
|
board:
|
|
include: board-schema
|
|
boards:
|
|
type: seq
|
|
sequence:
|
|
- include: board-schema
|
|
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:
|
|
boards:
|
|
required: true
|
|
type: seq
|
|
sequence:
|
|
- type: str
|
|
desc: |
|
|
A board target to match against in regex. Must be one entry
|
|
per board target, a single regex entry will not match two
|
|
board targets even if they both match.
|