Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
adding-hardware-support.rst 2.86 KiB

Adding New Hardware Support in |main_project_name|

This section details the addition of new hardware to the supported set in |main_project_name|. It is intended as a checklist for adding new boards to |main_project_name| build system.

Before starting get familiar with |main_project_name| Contribution Process.

Select |main_project_name| Flavour

|main_project_name| uses a notion of kernel specific flavours:

  • Linux flavour
  • Zephyr flavour
  • FreeRTOS flavour (experimental)

Flavours have predefined IMAGES and MACHINES.

A single board can be included in more than one flavour only when it has well maintained support in targeted kernels.

Add Required meta-layers

Oniro flavours configuration templates (stored in distro/oniro/flavours directory) consist of the following files:

Configuration Files
File Name Description
bblayers.conf.sample set of meta-layers for the specific flavour (it can be unified across multiple layers where there are no layers incompatibilities)
conf-notes.txt text snippet to be used as part of build logs
local.conf.sample default flavour build configuration

|main_project_name| build system uses *repo* tool for cloning required meta-layers into appropriate build directory structure (see :ref:`Setting up a repo workspace <RepoWorkspace>`). To include a new layer, it has to be added in two places of the oniro repository:

  • The manifest file
  • The flavours bblayers.conf.sample file

Test Image Backward Compatibility Of Newly Added Layers

New BSP layers cannot interfere / break already supported IMAGES / MACHINES.

Document and Advertise the New MACHINE Support

Newly added MACHINE shall be documented in: :ref:`Hardware Support <RepoWorkspace>`. Use an existing board documentation as template and populate it accordingly for your newly added machine.

The same machine needs to also be advertised in two places:

  • Flavour's local.conf.sample as a commented out MACHINE variable value (tweak this step accordingly for default machine change)
  • Flavour's conf-notes.txt to surface the support in build logs

Create Merge Requests

Create the Merge Request against the *dunfell* branch according to the Contributing Process for repositories: