Skip to content

Commit

Permalink
doc: suit updates
Browse files Browse the repository at this point in the history
Remove orphan tag for SUIT docs
Update terms and location

Signed-off-by: Katherine Depa <[email protected]>
  • Loading branch information
Katherine Depa authored and rlubos committed Jun 5, 2024
1 parent b0a8666 commit df5bfe1
Show file tree
Hide file tree
Showing 15 changed files with 118 additions and 172 deletions.
1 change: 1 addition & 0 deletions doc/nrf/device_guides/nrf54h.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,6 @@ Zephyr and the |NCS| provide support and contain board definitions for developin
working_with_nrf/nrf54h/ug_nrf54h20_gs
working_with_nrf/nrf54h/ug_nrf54h20_architecture
working_with_nrf/nrf54h/ug_nrf54h20_configuration
working_with_nrf/nrf54h/ug_nrf54h20_suit_dfu
working_with_nrf/nrf54h/ug_nrf54h20_debugging
working_with_nrf/nrf54h/ug_nrf54h20_custom_pcb
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
:orphan:

.. _ug_nrf54h20_suit_compare_other_dfu:

DFU and bootloader comparison
Expand All @@ -10,9 +8,9 @@ It provides a more flexible and tailored DFU experience compared to the MCUboot
See the diagram and comparison table below for further comparison.

.. figure:: images/nrf54h20_suit_mcuboot_comparison.png
:alt: MCUboot and SUIT architecture comparison
:alt: MCUboot and SUIT, and nRF Secure Immutable Bootloader architecture comparison

MCUboot and SUIT architecture comparison
MCUboot, SUIT, and |NSIB| architecture comparison

+--------------------------+-------------------------------------------------------------------------+-------------------------------------------------------------------------------------------------------------------+-------------------------------------------------------------------------------------------+
| Characteristic | MCUboot | SUIT | nRF Secure Immutable Bootloader |
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
:orphan:

.. _ug_nrf54h20_suit_components:

SUIT components
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
:orphan:

.. _ug_nrf54h20_suit_customize_dfu:

How to customize the SUIT DFU process
Expand All @@ -9,7 +7,7 @@ How to customize the SUIT DFU process
:local:
:depth: 2

Nordic Semiconductor provides a Software Update Internet of Things (SUIT) sample (```nrf54h_suit_sample``) which uses predefined configurations in the build system.
Nordic Semiconductor provides a Software Update Internet of Things (SUIT) sample (:ref:`ug_nrf54h20_suit_intro`) which uses predefined configurations in the build system.
The specified Kconfig options in the sample can be used to customize the DFU process and integrate the DFU solution with external build systems.
This guide provides a comprehensive set of instructions for modifying values in the :ref:`SUIT manifest <ug_nrf54h20_suit_manifest_overview>`.

Expand All @@ -22,7 +20,7 @@ It consists of two main concepts: the SUIT envelope and the SUIT manifest.
* The SUIT envelope acts as a secure container for transporting firmware updates, encapsulating the firmware binary and its manifest.
* The SUIT manifest is a structured file with metadata essential for the update process, including firmware version, size, and hash for integrity verification.

During the first build of the ``nrf54h_suit_sample``, default manifest templates are provided.
During the first build of the :ref:`nrf54h_suit_sample`, default manifest templates are provided.
These templates form the basis for generating SUIT envelopes and manifests tailored to specific application requirements.
Customization of these templates is crucial for specific use cases and security requirements.

Expand Down Expand Up @@ -67,16 +65,16 @@ These templates, suitable for standard development needs, are automatically plac
Customizing UUIDs in the manifest templates enhances security and is recommended for specific use cases.
For information about adding custom UUID values, refer to the :ref:`ug_suit_using_manifest_gen` section.

After the first build of the ``nrf54h_suit_sample``, three additional files are created in the :file:`nrf/samples/suit/smp_transfer` directory (or two levels above the build directory when using the ``west -d`` parameter):
After the first build of the :ref:`nrf54h_suit_sample`, three additional files are created in the :file:`nrf/samples/suit/smp_transfer` directory (or two levels above the build directory when using the ``west -d`` parameter):

* Root manifest - :file:`root_hierarchical_envelope.yaml.jinja2`
* Application Domain manifest - :file:`app_envelope.yaml.jinja2`
* Radio Domain manifest - :file:`rad_envelope.yaml.jinja2`
* Application domain manifest - :file:`app_envelope.yaml.jinja2`
* Radio domain manifest - :file:`rad_envelope.yaml.jinja2`

The destination directory for these :file:`jinja2` file templates can be changed by setting the :kconfig:option:`SB_CONFIG_SUIT_ENVELOPE_EDITABLE_TEMPLATES_LOCATION` Kconfig option.

.. note::
The Radio Domain manifest template is available only for the Bluetooth® Low Energy version of the ``nrf54h_suit_sample``, not the UART version.
The radio domain manifest template is available only for the Bluetooth® Low Energy version of the :ref:`nrf54h_suit_sample`, not the UART version.

.. _ug_suit_change_manifest_location:

Expand Down Expand Up @@ -140,9 +138,9 @@ The following files should be used to create DFU envelope:

* Root envelope - :file:`root.yaml.jinja2`

* Application Domain - :file:`app.yaml.jinja2`
* Application domain - :file:`app.yaml.jinja2`

* Radio Domain - :file:`radio.yaml.jinja2`
* Radio domain - :file:`radio.yaml.jinja2`

.. figure:: images/nrf54h20_suit_example_update_process.png
:alt: Example update process
Expand Down Expand Up @@ -197,7 +195,7 @@ The component values are filled out automatically by the build system during the
Variables in the provided templates, like memory ranges and paths to binaries, are filled out by the build system.
However, values like ``class-identifier`` and ``vendor-identifier`` should be customized manually.

An example of a YAML representation for a basic installation and invoke-process of the Application firmware could look like the following:
An example of a YAML representation for a basic installation and invoke-process of the application firmware could look like the following:

.. code-block::
Expand Down Expand Up @@ -247,7 +245,7 @@ An example of a YAML representation for a basic installation and invoke-process
'#app': ``/path/to/application_fw.bin``
.. note::
Default values of OEM-controlled manifests (related to the Application and Radio Domains) are hardcoded in the SDFW, but you can overwrite these values and this is strongly recommended.
Default values of OEM-controlled manifests (related to the application and radio domains) are hardcoded in the SDFW, but you can overwrite these values and this is strongly recommended.

The ``class-identifier`` and ``vendor-identifier`` values in the manifest templates, like :file:`app_envelope_yam.jinja2`, can be modified to suit specific requirements.
For example, changing these values from `nordicsemi.com` to a custom vendor or class identifier enhances the specificity and security of the DFU process.
Expand Down Expand Up @@ -308,7 +306,7 @@ The manifest templates have access to the following:

Some of these values are stored in the Python dictionaries that are named after the target name.
(Therefore, Python is used within the ``.jinja2`` files to fill in the necessary values in the manifest(s).)
For example, for the ``nrf54h_suit_sample`` there will be two variables available: ``app`` and ``hci_rpmsg_subimage``.
For example, for the :ref:`nrf54h_suit_sample` there will be two variables available: ``app`` and ``hci_rpmsg_subimage``.
Each variable is a Python dictionary type (``dict``) containing the following keys:

* ``name`` - name of the target
Expand Down Expand Up @@ -375,7 +373,7 @@ For more information, see the file available in the sample and `Jinja <https://j
{%- set component_index = 0 %} # Initialize the `component_index variable`.
# This variable will be used to assign component indexes dynamically depending on
# how many cores have been built.
# How many cores have been built.
{%- set component_list = [] %} # Initialize the `component_list variable`.
Expand All @@ -393,7 +391,7 @@ For more information, see the file available in the sample and `Jinja <https://j
suit-components:
- - CAND_MFST
- 0
{%- if hci_rpmsg_subimage is defined %} # Add section below only, in case the Radio Core has been already been built.
{%- if hci_rpmsg_subimage is defined %} # Add section below only, in case the radio core has been already been built.
{%- set component_index = component_index + 1 %} # Increment `component_index`.
{%- set hci_rpmsg_subimage_component_index = component_index %} # Store the current component index for further use.
{{- component_list.append( hci_rpmsg_subimage_component_index ) or ""}} # Append the current component index to the common list.
Expand Down Expand Up @@ -478,7 +476,7 @@ Executing the Python script from the command line:
Edit build artifacts
--------------------

The ``nrf54h_suit_sample`` :file:`/build` directory contains several artifacts related to the SUIT process:
The :ref:`nrf54h_suit_sample` :file:`/build` directory contains several artifacts related to the SUIT process:

* :file:`./build/hci_rpmsg/zephyr/hci_rpmsg_subimage.yaml`
* :file:`./build/zephyr/app.yaml`
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
:orphan:

.. _ug_nrf54h20_suit_customize_dfu_qsg:

Customize SUIT DFU quick start guide
Expand Down Expand Up @@ -51,7 +49,6 @@ If you want to learn more about SUIT DFU topics and terminology mentioned in thi
* :ref:`ug_nrf54h20_suit_intro` page to learn more about SUIT-specific concepts, and an overview of the SUIT DFU procedure
* :ref:`ug_nrf54h20_suit_manifest_overview` page for more information on how the SUIT manifest works
* :ref:`ug_nrf54h20_suit_hierarchical_manifests` to learn more about the structure of the SUIT manifests implemented by Nordic Semiconductor
* :ref:`ug_nrf54h20_suit_why` to learn why SUIT was selected as the DFU procedure for the nRF54H Series devices

Requirements
************
Expand All @@ -73,7 +70,7 @@ For this quick start guide, we will install the following software:
* Microsoft's |VSC| - The recommended IDE for the |NCS|.
* |nRFVSC| - An add-on for |VSC| that allows you to develop applications for the |NCS|.
* nRF Command Line Tools - A set of mandatory tools for working with the |NCS|.
* Any additional requirements described in the ``nrf54h_suit_sample` sample``.
* Any additional requirements described in the :ref:`nrf54h_suit_sample` sample.

Building the SUIT sample
************************
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
:orphan:

.. _ug_nrf54h20_suit_dfu:

Device Firmware Update using SUIT
Expand All @@ -15,18 +13,21 @@ The manifest contains instructions for the DFU and booting procedure, and can be
It includes the use of :ref:`sequences <ug_suit_dfu_suit_concepts_sequences>` (conditions and directives) as well as the concept of :ref:`components <ug_suit_dfu_component_def>`.

To use the SUIT DFU in a product you need to customize it.
You can learn about this in the :ref:`ug_nrf54h20_suit_customize_dfu` page, which involves using the ``nrf54h_suit_sample`` sample.
You can learn about this in the :ref:`ug_nrf54h20_suit_customize_dfu` page, which involves using the :ref:`nrf54h_suit_sample` sample.

For a list of available SUIT samples, see the :ref:`suit_samples` page.


.. toctree::
:maxdepth: 2
:caption: Subpages:

ug_nrf54h20_suit_customize_qsg.rst
ug_nrf54h20_suit_customize_dfu.rst
ug_nrf54h20_suit_intro.rst
ug_nrf54h20_suit_manifest_overview.rst
ug_nrf54h20_suit_customize_qsg.rst
ug_nrf54h20_suit_customize_dfu.rst
ug_nrf54h20_suit_fetch
ug_nrf54h20_suit_external_memory
ug_nrf54h20_suit_components.rst
ug_nrf54h20_suit_hierarchical_manifests.rst
ug_nrf54h20_suit_why.rst
ug_nrf54h20_suit_compare_other_dfu.rst
Loading

0 comments on commit df5bfe1

Please sign in to comment.