.. 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. .. contents:: :depth: 2 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 <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>`). 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: - `distro/oniro <https://booting.oniroproject.org/distro/oniro>`_