Skip to content

Commit 4d6b85d

Browse files
ahasztagrlubos
authored andcommitted
doc: SUIT DFU customize guide fixes for 2.8.0
This commit updates this part of the documentation taking into account changes for 2.8.0 release Signed-off-by: Artur Hadasz <[email protected]>
1 parent ac2764c commit 4d6b85d

File tree

2 files changed

+15
-13
lines changed

2 files changed

+15
-13
lines changed

doc/nrf/app_dev/device_guides/working_with_nrf/nrf54h/ug_nrf54h20_suit_customize_dfu.rst

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ How to customize the SUIT DFU process
77
:local:
88
:depth: 2
99

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

@@ -61,7 +61,7 @@ Build system configuration
6161
**************************
6262

6363
By default the build system generates SUIT envelopes using predefined manifest templates provided by Nordic Semiconductor.
64-
These templates can be found in :file:`modules/lib/suit-generator/ncs`, and are suitable for standard development needs.
64+
These templates can be found in :file:`nrf/config/suit/templates` and are suitable for typical development needs.
6565

6666
Three manifests are used in the most common case:
6767

@@ -98,7 +98,7 @@ The build system searches for the manifest templates in the following order:
9898

9999
#. It checks if :kconfig:option:`SB_CONFIG_SUIT_ENVELOPE_ROOT_TEMPLATE_FILENAME` or :kconfig:option:`CONFIG_SUIT_ENVELOPE_TEMPLATE_FILENAME` exists in the :file:`<sample-dir>/suit/${SB_CONFIG_SOC}/` file.
100100

101-
#. It checks if :kconfig:option:`SB_CONFIG_SUIT_ENVELOPE_ROOT_TEMPLATE_FILENAME` or :kconfig:option:`CONFIG_SUIT_ENVELOPE_TEMPLATE_FILENAME` exists in the :file:`<sdk-nrf-dir>/config/suit/templates/${SB_CONFIG_SOC}/${SB_CONFIG_SUIT_BASE_MANIFEST_VARIANT}/` file.
101+
#. It checks if :kconfig:option:`SB_CONFIG_SUIT_ENVELOPE_ROOT_TEMPLATE_FILENAME` or :kconfig:option:`CONFIG_SUIT_ENVELOPE_TEMPLATE_FILENAME` exists in the :file:`<sdk-nrf-dir>/nrf/config/suit/templates/${SB_CONFIG_SOC}/${SB_CONFIG_SUIT_BASE_MANIFEST_VARIANT}/` file.
102102

103103
The build system selects the set of files from the first successful step.
104104

@@ -230,16 +230,17 @@ The manifest templates have access to the following:
230230

231231
Some of these values are stored in the Python dictionaries that are named after the target name.
232232
(Therefore, Python is used within the ``.jinja2`` files to fill in the necessary values in the manifest(s).)
233-
For example, for the :ref:`nrf54h_suit_sample` there will be two variables available: ``application`` and ``radio``.
233+
For example, for the ``sample.suit.smp_transfer.bt`` configuration (simple bluetooth configuration) in :ref:`nrf54h_suit_sample` there will be two variables available: ``application`` and ``radio``.
234234
The target names (the names of these variables) can be changed using the :kconfig:option:`CONFIG_SUIT_ENVELOPE_TARGET` Kconfig option for a given image.
235235
Each variable is a Python dictionary type (``dict``) containing the following keys:
236236

237237
* ``name`` - Name of the target
238238
* ``dt`` - Devicetree representation (`edtlib`_ object)
239+
* ``config`` - Kconfig options
239240
* ``binary`` - Path to the binary, which holds the firmware for the target
240241

241242
Additionally, the Python dictionary holds all the variables defined inside the :file:`VERSION` file, used for :ref:`zephyr:app-version-details` in Zephyr and the |NCS|.
242-
The default templates searches for the following options inside the :file:`VERSION` file:
243+
The default templates search for the following options inside the :file:`VERSION` file:
243244

244245
* ``APP_ROOT_SEQ_NUM`` - Sets the application root manifest sequence number.
245246
* ``APP_ROOT_VERSION`` - Sets the application root manifest current (semantic) version.
@@ -264,6 +265,7 @@ With the Python dictionary you are able to, for example:
264265
* Obtain the size of partition with ``application['dt'].chosen_nodes['zephyr,code-partition'].regs[0].size``
265266
* Get the pair of URI name and the binary path by using ``'#{{ application['name'] }}': {{ application['binary'] }}``
266267
* Get the root manifest sequence number with ``suit-manifest-sequence-number: {{ APP_ROOT_SEQ_NUM }}``
268+
* Get the vendor name by using ``application['config']['CONFIG_SUIT_MPI_APP_LOCAL_1_VENDOR_NAME']``
267269

268270
Additionally, the **get_absolute_address** method is available to recalculate the absolute address of the partition.
269271
With these variables and methods, you can define templates which will next be filled out by the build system and use them to prepare the output binary SUIT envelope.
@@ -274,7 +276,7 @@ The examples below demonstrate the use of these variables and methods.
274276
Set component definition and memory ranges
275277
------------------------------------------
276278

277-
In :file:`modules/lib/suit-generator/ncs/app_envelope.yaml.jinja2`
279+
In :file:`nrf/config/suit/templates/nrf54h20/default/v1/app_envelope.yaml.jinja2`
278280
, the component definition and memory ranges are filled out by using the ``edtlib`` (devicetree values) object like so:
279281

280282
.. code-block::
@@ -286,12 +288,12 @@ In :file:`modules/lib/suit-generator/ncs/app_envelope.yaml.jinja2`
286288
- ``{{ application['dt'].chosen_nodes['zephyr,code-partition'].regs[0].size }}``
287289
288290
.. note::
289-
See the :ref:`ug_suit_dfu_component_def` page for a full list and table of the available customizable components.
291+
See the :ref:`ug_nrf54h20_suit_components` page for a full list and table of the available customizable components.
290292

291293
Set integrated payload
292294
----------------------
293295

294-
In :file:`modules/lib/suit-generator/ncs/app_envelope.yaml.jinja2`
296+
In :file:`nrf/config/suit/templates/nrf54h20/default/v1/app_envelope.yaml.jinja2`
295297
, the integrated payload definition is done using the target name and binary location:
296298

297299
.. code-block::
@@ -304,7 +306,7 @@ In :file:`modules/lib/suit-generator/ncs/app_envelope.yaml.jinja2`
304306
Root manifest template
305307
----------------------
306308

307-
The file :file:`modules/lib/suit-generator/ncs/root_with_binary_nordic_top.yaml.jinja2` contains content that is dynamically created, depending on how many targets are built.
309+
The file :file:`nrf/config/suit/templates/nrf54h20/default/v1/root_with_binary_nordic_top.yaml.jinja2` contains content that is dynamically created, depending on how many targets are built.
308310
The following example only shows a selected portion of the root manifest file.
309311
For more information, see the file available in the sample and `Jinja documentation`_:
310312

doc/nrf/app_dev/device_guides/working_with_nrf/nrf54h/ug_nrf54h20_suit_customize_qsg.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ The following are basic SUIT concepts you need to understand to be able to custo
1919
* SUIT envelopes are generated from manifest templates.
2020
* The SUIT manifest is like a blueprint that tells the system how to create a SUIT envelope, and contains instructions and metadata for the DFU procedure.
2121
* Default SUIT manifest templates are provided, but customization, especially for UUIDs, is recommended.
22-
* The manifest templates are automatically created and copied to the sample directory on the first build of SUIT samples.
2322

2423
.. figure:: images/nrf54h20_suit_dfu_overview.png
2524
:alt: Overview of the SUIT DFU procedure
@@ -32,8 +31,10 @@ SUIT DFU process
3231
================
3332

3433
The SUIT DFU process involves creating a SUIT envelope, which includes a manifest outlining the steps for the update.
35-
When you first build the SUIT sample in the |NCS|, you receive default manifest templates which you can customize according to your project's requirements.
36-
This guide will walk you through how to customize the SUIT manifest to target your specific device.
34+
By default, manifests templates provided in :file:`nrf/config/suit/templates` are used to create the envelopes.
35+
These templates can be copied and customized according to your project's requirements.
36+
37+
This guide will walk you through how to customize the SUIT DFU process to target your specific device.
3738

3839
For a complete guide on all customizable aspects of the SUIT DFU procedure, see the :ref:`ug_nrf54h20_suit_customize_dfu` user guide.
3940

@@ -115,7 +116,6 @@ The SUIT DFU procedure can further be customized by:
115116

116117
* Creating and modifying your own manifests
117118
* Generating raw UUID values
118-
* Changing the default location of the manifests
119119

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

0 commit comments

Comments
 (0)