Zephyr Board Bringup (HWMv2)
Bring your custom hardware into the Zephyr ecosystem using modern Hardware Model v2 standards.
Core Workflows
1. Planning the Structure
Organize your board files by vendor and board name.
- Reference: hwmv2_structure.md
- Key Tools:
board.yml, naming conventions.
2. Defining Configuration
Implement the essential Kconfig and CMake logic.
- Reference: board_files.md
- Key Tools:
Kconfig.board,_defconfig,CMakeLists.txt.
3. Managing Revisions & Variants
Handle hardware iterations and SoC variants cleanly.
- Reference: hwmv2_structure.md
- Key Tools: Multi-revision
board.yml, revision-specific overlays.
Quick Start (Board Skeleton)
boards/<vendor>/<board>/
board.yml
<board>_defconfig
<board>.dts
Kconfig.board
Kconfig.defconfig
CMakeLists.txt
Validation Checklist
-
board.ymldefines board name, SoC, and revisions consistently. -
west build -b <board> samples/hello_worldcompletes successfully. - DTS and defconfig settings are applied in the generated build output.
- Revision-specific overlays are selected correctly when building a non-default revision.
Automation Tools
- board_yaml_lint.py: Validate basic
board.ymlstructure and naming conventions.
Examples & Templates
- board_yml_template.yml: Starter
board.ymlfor HWMv2 board metadata.
Best Practices
- Use
_common.dtsi: Share devicetree definitions across all board revisions. - Follow HWMv2: Avoid the legacy board structure (
Kconfig.defconfig, etc.). - Keep it minimal: Only define what is unique to the board; let the SoC files handle chip-level configuration.
Resources
- References:
hwmv2_structure.md: Directory layout andboard.yml.board_files.md: Kconfig, defconfig, and CMake configuration.
- Scripts:
board_yaml_lint.py: Structural checker for board metadata.
- Assets:
board_yml_template.yml: Minimal board metadata template.