Skip to content
Snippets Groups Projects
adding-hardware-support.rst 2.88 KiB
Newer Older
.. SPDX-FileCopyrightText: Huawei Inc.
..
.. SPDX-License-Identifier: CC-BY-4.0

.. include:: ../definitions.rst

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
************************

Gururaj Shetty's avatar
Gururaj Shetty committed
Oniro flavours configuration templates (stored in `distro/oniro/flavours <https://booting.oniroproject.org/distro/oniro/-/tree/dunfell/flavours>`_
directory) consist of the following files:

.. list-table:: Configuration Files
   :header-rows: 1

   * - 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>`).
Gururaj Shetty's avatar
Gururaj Shetty committed
To include a new layer, it has to be added in two places of the `oniro repository <https://booting.oniroproject.org/distro/oniro/-/tree/dunfell/manifests>`_:
- 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:
Gururaj Shetty's avatar
Gururaj Shetty committed
- `distro/oniro <https://booting.oniroproject.org/distro/oniro>`_