# board.yaml

Board descriptor. Describes the SoC, the CPU ABI and the toolchains a board can be built with. A board may inherit from another and apply deltas.

## Fields

| Field | Type | Default | Meaning |
| --- | --- | --- | --- |
| schema_version | int (1), required |  | Board descriptor schema version. |
| board.name | string, required when inherits is not set |  | Board name as used by --board and by targets.supported. |
| board.soc | string, required when inherits is not set |  | SoC this board carries. |
| board.tier | string | evb | Board tier. Custom boards created from an EVB baseline record their own tier. |
| board.registered | bool | true | Whether the board appears in nsx board list. |
| sdk_provider | string, required when inherits is not set |  | SDK provider module the board builds against. |
| cpu.core | string, required |  | Arm core name, for example cortex-m55. |
| cpu.float_abi | string, required |  | Floating-point ABI passed to the toolchain. |
| cpu.abi | string, required |  | Full ABI triple used to select toolchain flags. |
| toolchains | list of string |  | Toolchains the board supports. |
| inherits | string |  | Board this descriptor inherits from. Only custom boards set it. |
| overrides.toolchains | list of string |  | Delta applied to the inherited toolchain list, using +name to add and -name to remove. Only valid with inherits. |

## Example

```yaml
schema_version: 1
board:
  name: apollo510_evb
  tier: evb
  soc: apollo510
  registered: true
sdk_provider: ambiqsuite
cpu:
  core: cortex-m55
  float_abi: hard
  abi: thumbv8.1m-fpv5-hard
toolchains:
  - arm-none-eabi-gcc
  - armclang
```

## How it is read

NSX reads `board.yaml` through `neuralspotx.board_descriptors.load_board_descriptor_file`, which raises `BoardDescriptorError` when the document is invalid. The supported `schema_version` is `1`.

**Unknown keys:** Kept. Unrecognized keys are ignored by the parser.
