Skip to content

Commit

Permalink
doc: SUIT documentation on updating Nordic Bundles
Browse files Browse the repository at this point in the history
Added the documnetation regarding updating of Nordic Semiconductor
provided firmware components.

Signed-off-by: Artur Hadasz <[email protected]>
  • Loading branch information
ahasztag committed Oct 4, 2024
1 parent a5d11ef commit 82c4230
Show file tree
Hide file tree
Showing 3 changed files with 78 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -119,3 +119,5 @@ The SUIT DFU procedure can further be customized by:

Instructions for these actions and further customization are described in the :ref:`ug_nrf54h20_suit_customize_dfu` page.
Additionally, you can modify SUIT components within the manifest (see the :ref:`ug_nrf54h20_suit_components` page for more information).

If an update to the *nRF54H20 SoC binaries* (precompiled binaries provided by Nordic Semiconductor) is required, refer to the :ref:`ug_nrf54h20_suit_soc_binaries` page.
Original file line number Diff line number Diff line change
Expand Up @@ -28,5 +28,6 @@ For a list of available SUIT samples, see the :ref:`suit_samples` page.
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_components
ug_nrf54h20_suit_hierarchical_manifests
ug_nrf54h20_suit_soc_binaries
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
.. _ug_nrf54h20_suit_soc_binaries:

Upgrade the nRF54h20 SOC binaries with SUIT
#############################################################

The nRF54H20 SoC includes the *nRF54h20 SOC binaries*, precompiled firmware components provided by Nordic Semiconductor that provide basic functionality and security features.

To see which version of the nRF54h20 SOC binaries to use with the given version of the nRF Connect SDK, see the :ref:`ABI compatibility page <https://docs.nordicsemi.com/bundle/ncs-latest/page/nrf/releases_and_maturity/abi_compatibility.html>`.

Updating the nRF54h20 SOC binaries
**********************************

You can update the nRF54h20 SoC binaries in two ways.
Both methods require using the :file:`nordic_top.suit` envelope, which can be found inside the nRF54h20 SOC binaries ZIP file.

The two methods for updating are the following:

* Updating separately from the manufacturer application.

* Updating along with the manufacturer application, by attaching the :file:`nordic_top.suit` envelope to the manufacturer root manifest, updating both the SoC binaries and the manufacturer's application simultaneously.


Updating the nRF54h20 SOC binaries separately from the manufacturer application
===========================================================================

When using this method, two separate updates are performed:

1. An update using a manufacturer envelope that contains the update candidate.
2. A second update, provided by the :file:`nordic_top.suit` envelope from the SoC binaries bundle.

Each envelope contains all the necessary information, allowing the device to differentiate between the two updates.

This approach was chosen for the following benefits:

* A smaller partition is required for storing the update candidate.
* There is no need to integrate the process of downloading Nordic artifacts into the manufacturer application build process.
* There is no need to update the version and sequence number of the manufacturer root manifest, if only SoC binaries updates are required.

However, there are the following limitations:

* Two separate updates are required, which is not supported by all protocols.
* The manufacturer envelope cannot ensure the compatibility of SoC binaries with the manufacturer application.


Attaching the nordic_top.suit envelope to the manufacturer root manifest
========================================================================

When building an application, you can configure the build system to include the Nordic components inside the SUIT root envelope used for updates.

This approach has the following benefits:

* The entire update can be performed by pushing a single image to the device, which may be required by some protocols.
* The manufacturer root manifest can be used to manage dependencies between the manufacturer application and the SoC binaries.

This approach has the following drawbacks:

* A larger partition is required to store the update candidate, as both the manufacturer and the SoC binaries must fit within it.
* The manufacturer must integrate the process of downloading Nordic artifacts into the update package creation process.

To build and perform an update using this method, do the following:

1. Unpack the SoC binaries ZIP file to a directory of your choice.
One of the extracted files will be the :file:`nordic_top.suit` envelope.

2. Build the application, pointing to the directory containing the :file:`nordic_top.suit` envelope.
To do this, set the ``SUIT_ENVELOPE_NORDIC_TOP_DIRECTORY`` sysbuild configuration option.
For example::

west build -b nrf54h20dk/nrf54h20/cpuapp -- -DSB_CONFIG_SUIT_ENVELOPE_NORDIC_TOP_DIRECTORY="\"<NORDIC_TOP_DIRECTORY>\""

Replace ``<NORDIC_TOP_DIRECTORY>`` with the path to the directory containing the extracted :file:`nordic_top.suit` file.

3. Use the :file:`build/DFU/root.suit` file generated by the build system to update both the manufacturer application and the SoC binaries.

0 comments on commit 82c4230

Please sign in to comment.