Skip to content

Remove SUIT #23336

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Jul 24, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
27 changes: 0 additions & 27 deletions CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -64,15 +64,8 @@

/boards/shields/pca63566/doc/*.rst @nrfconnect/ncs-doc-leads

# SUIT configuration files
/config/suit/ @nrfconnect/ncs-charon

# All cmake related files
/cmake/ @nrfconnect/ncs-co-build-system
/cmake/sysbuild/suit.cmake @nrfconnect/ncs-charon
/cmake/sysbuild/suit_utilities.cmake @nrfconnect/ncs-charon
/cmake/sysbuild/suit_provisioning.cmake @nrfconnect/ncs-charon
/cmake/sysbuild/suit_provisioning_nrf54h20.cmake @nrfconnect/ncs-charon

# All doc related files
/doc/_zoomin/ @nrfconnect/ncs-co-doc @nrfconnect/ncs-doc-leads
Expand All @@ -92,14 +85,12 @@
/doc/nrf/app_dev/device_guides/nrf91/nrf91_snippet.rst @nrfconnect/ncs-cia-doc
/doc/nrf/app_dev/device_guides/pmic/ @nrfconnect/ncs-pmic-doc
/doc/nrf/app_dev/device_guides/nrf54h/ @FrancescoSer
/doc/nrf/app_dev/device_guides/nrf54h/ug_nrf54h20_suit_*.rst @nrfconnect/ncs-charon-doc
/doc/nrf/app_dev/device_guides/wifi_coex.rst @nrfconnect/ncs-doc-leads
/doc/nrf/dev_model_and_contributions/ @nrfconnect/ncs-doc-leads @nrfconnect/ncs-vestavind-doc
/doc/nrf/drivers/bh1749.rst @nrfconnect/ncs-cia-doc
/doc/nrf/drivers/bme68x_iaq.rst @nrfconnect/ncs-cia-doc
/doc/nrf/drivers/entropy_cc3xx.rst @nrfconnect/ncs-aegir-doc
/doc/nrf/drivers/eth_rtt.rst @nrfconnect/ncs-si-muffin-doc
/doc/nrf/drivers/suit_flash_ipuc.rst @nrfconnect/ncs-charon-doc
/doc/nrf/drivers/images/flash_ipuc/* @nrfconnect/ncs-charon-doc
/doc/nrf/drivers/hw_cc3xx.rst @nrfconnect/ncs-aegir-doc
/doc/nrf/drivers/mspi_sqspi.rst @nrfconnect/ncs-lowlevel-doc
Expand Down Expand Up @@ -139,7 +130,6 @@
/doc/nrf/libraries/debug/memfault_ncs.rst @nrfconnect/ncs-cia-doc
/doc/nrf/libraries/debug/ppi_trace.rst @nrfconnect/ncs-doc-leads
/doc/nrf/libraries/dfu/ @nrfconnect/ncs-pluto-doc
/doc/nrf/libraries/dfu/suit_dfu.rst @nrfconnect/ncs-charon-doc
/doc/nrf/libraries/gazell/ @nrfconnect/ncs-si-muffin-doc
/doc/nrf/libraries/modem/nrf_modem_lib/ @nrfconnect/ncs-modem-doc
/doc/nrf/libraries/modem/at_cmd_custom.rst @nrfconnect/ncs-modem-doc
Expand Down Expand Up @@ -272,7 +262,6 @@
/doc/nrf/samples/pmic.rst @nrfconnect/ncs-pmic-doc
/doc/nrf/samples/sensor.rst @nrfconnect/ncs-cia-doc
/doc/nrf/samples/serialization.rst @nrfconnect/ncs-terahertz-doc
/doc/nrf/samples/suit.rst @nrfconnect/ncs-charon-doc
/doc/nrf/samples/tfm.rst @nrfconnect/ncs-aegir-doc
/doc/nrf/samples/thread.rst @nrfconnect/ncs-terahertz-doc
/doc/nrf/samples/wifi.rst @nrfconnect/ncs-wifi-doc
Expand All @@ -295,7 +284,6 @@
/drivers/bluetooth/ @nrfconnect/ncs-co-drivers @nrfconnect/ncs-dragoon
/drivers/entropy/ @nrfconnect/ncs-co-drivers @nrfconnect/ncs-aegir
/drivers/flash/ @nrfconnect/ncs-co-drivers
/drivers/flash/flash_ipuc/ @nrfconnect/ncs-co-drivers @nrfconnect/ncs-charon
/drivers/gpio/ @nrfconnect/ncs-co-drivers @nrfconnect/ncs-ll-ursus
/drivers/hw_cc3xx/ @nrfconnect/ncs-co-drivers @nrfconnect/ncs-aegir
/drivers/mpsl/ @nrfconnect/ncs-co-drivers @nrfconnect/ncs-dragoon
Expand Down Expand Up @@ -346,11 +334,7 @@
/include/debug/ @nrfconnect/ncs-co-drivers
/include/debug/ppi_trace.h @nrfconnect/ncs-co-drivers @nordic-krch
/include/dfu/ @nrfconnect/ncs-code-owners
/include/dfu/dfu_target_suit.h @nrfconnect/ncs-charon
/include/dfu/suit_dfu_fetch_source.h @nrfconnect/ncs-charon
/include/dfu/suit_dfu.h @nrfconnect/ncs-charon
/include/drivers/flash/ @nrfconnect/ncs-co-drivers
/include/drivers/flash/flash_ipuc.h @nrfconnect/ncs-co-drivers @nrfconnect/ncs-charon
/include/drivers/gpio/ @nrfconnect/ncs-co-drivers @nrfconnect/ncs-ll-ursus
/include/drivers/bme68x_iaq.h @nrfconnect/ncs-co-drivers @nrfconnect/ncs-cia
/include/drivers/mspi/hpf_mspi.h @nrfconnect/ncs-co-drivers @nrfconnect/ncs-ll-ursus
Expand Down Expand Up @@ -553,7 +537,6 @@
/samples/pmic/native/ @nordic-auko
/samples/sensor/bh1749/ @nrfconnect/ncs-co-drivers @nrfconnect/ncs-cia
/samples/sensor/bme68x_iaq/ @nrfconnect/ncs-co-drivers @nrfconnect/ncs-cia
/samples/suit/ @nrfconnect/ncs-charon
/samples/tfm/ @nrfconnect/ncs-aegir
/samples/wifi/provisioning/ble/ @wentong-li @bama-nordic
/samples/wifi/provisioning/softap/ @nrfconnect/ncs-cia
Expand Down Expand Up @@ -673,7 +656,6 @@
/samples/peripheral/radio_test/*.rst @nrfconnect/ncs-si-muffin-doc
/samples/pmic/**/*.rst @nrfconnect/ncs-pmic-doc
/samples/sensor/**/*.rst @nrfconnect/ncs-cia-doc
/samples/suit/**/*.rst @nrfconnect/ncs-charon-doc
/samples/tfm/**/*.rst @nrfconnect/ncs-aegir-doc
/samples/wifi/**/*.rst @nrfconnect/ncs-wifi-doc
/samples/wifi/provisioning/softap/*.rst @nrfconnect/ncs-cia-doc
Expand Down Expand Up @@ -801,7 +783,6 @@
/subsys/logging/ @nrfconnect/ncs-protocols-serialization
/subsys/mcuboot/ @nrfconnect/ncs-charon
/subsys/mgmt/ @nrfconnect/ncs-pluto
/subsys/mgmt/suitfu/ @nrfconnect/ncs-charon
/subsys/mpsl/ @nrfconnect/ncs-dragoon
/subsys/mpsl/cx/ @nrfconnect/ncs-radio-sw
/subsys/mpsl/fem/ @nrfconnect/ncs-radio-sw
Expand Down Expand Up @@ -835,18 +816,12 @@
/subsys/secure_storage/ @nrfconnect/ncs-aegir
/subsys/settings/ @nrfconnect/ncs-pluto @rghaddab
/subsys/sdfw_services/services/extmem/ @nrfconnect/ncs-charon
/subsys/sdfw_services/services/suit_service/ @nrfconnect/ncs-charon
/subsys/shell/ @nordic-krch
/subsys/suit/ @nrfconnect/ncs-charon
/subsys/trusted_storage/ @nrfconnect/ncs-aegir
/subsys/uart_async_adapter/ @nrfconnect/ncs-si-muffin

# Sysbuild
/sysbuild/ @nrfconnect/ncs-co-build-system
/sysbuild/Kconfig.suit @nrfconnect/ncs-charon
/sysbuild/Kconfig.suit_provisioning @nrfconnect/ncs-charon
/sysbuild/suit_provisioning/ @nrfconnect/ncs-charon
/sysbuild/suit.cmake @nrfconnect/ncs-charon

# Tests
/tests/benchmarks/ @nrfconnect/ncs-low-level-test
Expand All @@ -860,7 +835,6 @@
/tests/bluetooth/tester/ @carlescufi @nrfconnect/ncs-paladin
/tests/crypto/ @magnev
/tests/drivers/audio/ @nrfconnect/ncs-low-level-test
/tests/drivers/flash/flash_ipuc/ @nrfconnect/ncs-charon
/tests/drivers/flash/flash_rpc/ @nrfconnect/ncs-pluto
/tests/drivers/flash_patch/ @nrfconnect/ncs-pluto
/tests/drivers/fprotect/ @nrfconnect/ncs-pluto
Expand Down Expand Up @@ -955,7 +929,6 @@
/tests/subsys/partition_manager/region/ @nordicjm @tejlmand
/tests/subsys/partition_manager/static_pm_file/ @nordicjm @tejlmand
/tests/subsys/pcd/ @nrfconnect/ncs-pluto
/tests/subsys/suit/ @nrfconnect/ncs-charon
/tests/subsys/usb/negotiated_speed/ @nrfconnect/ncs-low-level-test
/tests/tfm/ @nrfconnect/ncs-aegir @magnev
/tests/unity/ @nordic-krch
Expand Down
70 changes: 1 addition & 69 deletions applications/nrf_desktop/bootloader_dfu.rst
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ nRF Desktop: Bootloader and Device Firmware Update
:local:
:depth: 2

The nRF Desktop application uses the :ref:`bootloaders <app_bootloaders>` firmware image that allows you to upgrade the used application firmware image using either the :ref:`app_dfu` procedure or :ref:`ug_nrf54h20_suit_dfu`.
The nRF Desktop application uses the :ref:`bootloaders <app_bootloaders>` firmware image that allows you to upgrade the used application firmware image using the :ref:`app_dfu` procedure.

You can use the following Device Firmware Update (DFU) procedures for upgrading the application firmware version:

Expand Down Expand Up @@ -203,54 +203,6 @@ You can enhance security further by enabling the following sysbuild Kconfig opti
Using KMU requires provisioning the public key manually.
See the :ref:`ug_nrf54l_developing_provision_kmu` documentation for details.

.. _nrf_desktop_suit:

Software Update for Internet of Things (SUIT)
=============================================

SUIT is a metadata format and procedure for performing Device Firmware Update (DFU).
It allows you to update and boot multiple CPU cores of the supported System on Chip (SoC).
The SUIT DFU is currently available only for the nRF54H20 SoC.
The application stores an update image in the dedicated DFU partition and triggers firmware update using the SUIT API.
The firmware update affects the firmware of both the application and radio cores.
The update candidates are moved directly to the corresponding image slots.

SUIT can be used for the :ref:`background DFU <nrf_desktop_bootloader_background_dfu>` through:

* The :ref:`nrf_desktop_config_channel` and :ref:`nrf_desktop_dfu`.
* The :ref:`nrf_desktop_dfu_mcumgr`.

For an introduction to SUIT and more detailed information, see the :ref:`ug_nrf54h20_suit_dfu`.

Configuring SUIT
----------------

To enable SUIT on the supported target, enable the :kconfig:option:`CONFIG_SUIT` Kconfig option in the application configuration.
This option enables service on application core that communicates with the Secure Domain on which the SUIT is executed.
You can also enable :kconfig:option:`CONFIG_SUIT_DFU_CANDIDATE_PROCESSING_MINIMAL`, because application core only stores the SUIT envelope to a dedicated partition and then it passes control to the Secure Domain.

SUIT also has the following options in the sysbuild configuration:

* ``SB_CONFIG_SUIT_ENVELOPE`` - Required to create the SUIT envelope.
Turned on by default on the ``nrf54h20dk`` board.
The envelope is used directly as a DFU update file by the DFU tools.

.. note::
The nRF Desktop application configurations do not enable signing of SUIT envelopes.
See the :ref:`ug_nrf54h20_suit_signing` documentation for details on how to sign the envelopes.

By default, the SUIT generator sets the values inside the manifest based on the content of the :file:`VERSION` file, used for :ref:`zephyr:app-version-details` in Zephyr and the |NCS|:

* The manifest sequence number is set in the same manner as the ``APPVERSION`` CMake variable.
* The manifest current (semantic) version is set in the same manner as the ``APP_VERSION_EXTENDED_STRING`` CMake variable.

On the ``nrf54h20dk`` board, the dedicated DFU partition called ``dfu_partition`` is defined by default in the DTS.
The partition is used to store the incoming SUIT envelope with an update candidate.
The application relies on the default memory layout defined by the board.

.. note::
The Partition Manager is disabled for the nRF54H Series.
The memory layout for these devices is always defined in the DTS.

.. _nrf_desktop_bootloader_background_dfu:

Expand All @@ -262,7 +214,6 @@ From the application perspective, the update image transfer during the backgroun

* MCUboot
* Secure Bootloader (B0)
* SUIT

The firmware update process has the following three stages:

Expand Down Expand Up @@ -299,15 +250,6 @@ Otherwise, the image is always uploaded to the slot 1 and then moved to slot 0 b
.. note::
Make sure to properly configure the sysbuild to ensure that the build system generates the :file:`<build_dir>/dfu_application.zip` archive containing all of the required update images.

SUIT
----

The :file:`<build_dir>/DFU/root.suit` SUIT envelope is used in the SUIT DFU procedure.
The envelope contains both the manifest and the update candidates for the application and radio cores.

Alternatively, the :file:`<build_dir>/zephyr/dfu_suit.zip` package can be used in the SUIT DFU procedure.
Apart from the :file:`root.suit` SUIT envelope and image binaries, the ZIP package contains the :file:`manifest.json` that describes the DFU package similarly to the one used in MCUboot and B0-based DFU solutions (:file:`<build_dir>/dfu_application.zip`).

Update image transfer
=====================

Expand Down Expand Up @@ -358,10 +300,6 @@ To perform DFU using the `nRF Connect Device Manager`_ mobile app, complete the
When the :kconfig:option:`CONFIG_MCUMGR_GRP_IMG_REJECT_DIRECT_XIP_MISMATCHED_SLOT` Kconfig option is enabled in the application configuration, the device rejects the update image upload for the invalid slot.
It is recommended to enable the option if the application uses MCUboot in the direct-xip mode.

.. tab:: SUIT

.. include:: /includes/suit_fota_update_nrfcdm_test_steps.txt

Update image verification and application image update
======================================================

Expand All @@ -379,12 +317,6 @@ The image verification process ensures the integrity of the image and checks if
If verification is successful, the bootloader boots the new version of the application.
Otherwise, the old version is used.

SUIT
----

For this configuration variant, the :c:func:`suit_trigger_update` function is called to trigger an update.
Once the update is triggered, the SUIT will install, verify, and boot the new image as specified in the manifest.

.. _nrf_desktop_bootloader_serial_dfu:

Serial recovery DFU
Expand Down
15 changes: 0 additions & 15 deletions applications/nrf_desktop/doc/dfu.rst
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,6 @@ You can use this module for the following devices:
You can use the DFU module with either MCUboot or B0 bootloader.
For more information on how to enable and configure a bootloader, see the :ref:`nrf_desktop_bootloader` section.

* nRF54H Series - You can use the DFU module for the Software Update for Internet of Things (SUIT) procedure.
The DFU module acts as a transport for the SUIT envelope used to update device firmware.
For more information on how to enable the SUIT procedure, see the :ref:`nrf_desktop_suit` section.

To enable the DFU module, use the :ref:`CONFIG_DESKTOP_CONFIG_CHANNEL_DFU_ENABLE <config_desktop_app_options>` Kconfig option.
It requires the transport option :ref:`CONFIG_DESKTOP_CONFIG_CHANNEL_ENABLE <config_desktop_app_options>` to be selected, as it uses :ref:`nrf_desktop_config_channel` for the transmission of the update image.

Expand Down Expand Up @@ -262,14 +258,3 @@ For example, the memory is not erased right after the Bluetooth connection is es
.. note::
The DFU process cannot be started before the entire partition used for storing the update image is erased.
If the DFU command is rejected, you must wait until the non-volatile memory area used for the update image is erased.

SUIT integration
================

The module can act as a transport for the SUIT DFU procedure.
The module receives the SUIT envelope with update image data over the :ref:`nrf_desktop_config_channel` and stores the envelope to a dedicated DFU partition (``dfu_partition`` defined in the DTS).

After a complete transfer, the :ref:`reboot <dfu_reboot>` command triggers a firmware update using the envelope.
The module calls the :c:func:`suit_trigger_update` function to trigger an update instead of rebooting the device using the :c:func:`sys_reboot` function.
Triggering an update using the :ref:`reboot <dfu_reboot>` command makes the user experience consistent with nRF52, nRF53, and nRF54L Series devices.
For these devices, the :ref:`reboot <dfu_reboot>` command after a complete update image transfer triggers an image update performed by the bootloader.
22 changes: 2 additions & 20 deletions applications/nrf_desktop/doc/dfu_mcumgr.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ Device Firmware Upgrade MCUmgr module
:depth: 2

The Device Firmware Upgrade MCUmgr module is responsible for performing a Device Firmware Upgrade (DFU) over Simple Management Protocol (SMP).
The module supports both MCUboot bootloader and SUIT for performing DFU.
The module supports the MCUboot bootloader for performing DFU.

If you enable the Bluetooth LE as transport, you can perform DFU using, for example, the `nRF Connect Device Manager`_ application.
See the :ref:`nrf_desktop_image_transfer_over_smp` section for more details.
Expand Down Expand Up @@ -69,12 +69,10 @@ Make sure that the DFU lock utility is enabled if your nRF Desktop application c
You cannot use this module with the :ref:`caf_ble_smp`.
In other words, you cannot simultaneously enable the :ref:`CONFIG_DESKTOP_DFU_MCUMGR_ENABLE <config_desktop_app_options>` option and the :kconfig:option:`CONFIG_CAF_BLE_SMP` Kconfig option.

You have to choose the backend for the DFU process by enabling one of the following options:
You have to choose the backend for the DFU process by enabling the following option:

* :kconfig:option:`CONFIG_DESKTOP_DFU_BACKEND_MCUBOOT` - This option depends on the MCUboot bootloader support for the DFU process.
For details, see :ref:`mcuboot` in the Zephyr documentation.
* :kconfig:option:`CONFIG_DESKTOP_DFU_BACKEND_SUIT` - This option depends on the SUIT support for the DFU process.
For details, see :ref:`ug_nrf54h20_suit_dfu` in the Zephyr documentation.

.. note::
B0 bootloader is not integrated with MCUmgr.
Expand All @@ -100,22 +98,6 @@ If the :kconfig:option:`CONFIG_DESKTOP_DFU_MCUMGR_MCUBOOT_DIRECT_XIP` option is
Make sure that :kconfig:option:`CONFIG_DESKTOP_DFU_MCUMGR_MCUBOOT_DIRECT_XIP` Kconfig option is enabled, if devices use the MCUboot bootloader in direct-xip mode without revert.
The option is enabled by default if :kconfig:option:`CONFIG_MCUBOOT_BOOTLOADER_MODE_DIRECT_XIP` is enabled.

.. _nrf_desktop_dfu_mcumgr_suit:

MCUmgr configuration using SUIT backend
=======================================

The SUIT backend configuration selects the following options:

* :kconfig:option:`CONFIG_MGMT_SUITFU` - This option enables the SUIT Firmware Update Management that implements MCUmgr image management handlers required for the DFU process.
* :kconfig:option:`CONFIG_MGMT_SUITFU_GRP_SUIT` - This option is needed to upload information about all manifests present on the device.
* :kconfig:option:`CONFIG_SSF_SUIT_SERVICE_ENABLED`
* :kconfig:option:`CONFIG_ZCBOR_CANONICAL`
* :kconfig:option:`CONFIG_MCUMGR_SMP_LEGACY_RC_BEHAVIOUR`

To use the module with this backend, you must also enable the :kconfig:option:`CONFIG_SUIT` Kconfig option.
See :ref:`ug_nrf54h20_suit_dfu` for more information.

Implementation details
**********************

Expand Down
Loading
Loading