Skip to content
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

NCSDK-32185: Add SUIT A/B sample #21158

Merged

Conversation

tomchy
Copy link
Contributor

@tomchy tomchy commented Mar 26, 2025

No description provided.

@github-actions github-actions bot added doc-required PR must not be merged without tech writer approval. changelog-entry-required Update changelog before merge. Remove label if entry is not needed or already added. labels Mar 26, 2025
@NordicBuilder
Copy link
Contributor

NordicBuilder commented Mar 26, 2025

CI Information

To view the history of this post, clich the 'edited' button above
Build number: 14

Inputs:

Sources:

sdk-nrf: PR head: 21322f7c4fc02480706827cc04c57035965b8c06

more details

sdk-nrf:

PR head: 21322f7c4fc02480706827cc04c57035965b8c06
merge base: 94d394275d4028b52c4f8a087f56789d980c0a59
target head (main): adc57324c5c667ff4124e6e69c42a61f64af58db
Diff

Github labels

Enabled Name Description
ci-disabled Disable the ci execution
ci-all-test Run all of ci, no test spec filtering will be done
ci-force-downstream Force execution of downstream even if twister fails
ci-run-twister Force run twister
ci-run-zephyr-twister Force run zephyr twister
List of changed files detected by CI (39)
cmake
│  ├── sysbuild
│  │  ├── suit.cmake
│  │  │ suit_utilities.cmake
config
│  ├── suit
│  │  ├── templates
│  │  │  ├── nrf54h20
│  │  │  │  ├── default
│  │  │  │  │  ├── v1
│  │  │  │  │  │  │ root_with_binary_nordic_top.yaml.jinja2
drivers
│  ├── flash
│  │  ├── flash_ipuc
│  │  │  │ flash_ipuc.c
samples
│  ├── suit
│  │  ├── ab
│  │  │  ├── CMakeLists.txt
│  │  │  ├── Kconfig
│  │  │  ├── VERSION
│  │  │  ├── boards
│  │  │  │  │ nrf54h20dk_nrf54h20_cpuapp.overlay
│  │  │  ├── prj.conf
│  │  │  ├── sample.yaml
│  │  │  ├── src
│  │  │  │  ├── device_management.c
│  │  │  │  ├── device_management.h
│  │  │  │  ├── main.c
│  │  │  │  ├── suit_components_state.c
│  │  │  │  ├── suit_components_state.h
│  │  │  │  ├── suit_manifests_state.c
│  │  │  │  │ suit_manifests_state.h
│  │  │  ├── suit
│  │  │  │  ├── nrf54h20
│  │  │  │  │  ├── app_envelope.yaml.jinja2
│  │  │  │  │  ├── app_recovery_envelope.jinja2
│  │  │  │  │  ├── rad_envelope.yaml.jinja2
│  │  │  │  │  │ root_with_binary_nordic_top.yaml.jinja2
│  │  │  ├── suit_mpi.conf
│  │  │  ├── sysbuild.conf
│  │  │  ├── sysbuild
│  │  │  │  ├── ab_slot_b.overlay
│  │  │  │  ├── hci_ipc.conf
│  │  │  │  ├── hci_ipc.overlay
│  │  │  │  ├── hci_ipc_slot_b.overlay
│  │  │  │  │ nrf54h20dk_nrf54h20_memory_map.dtsi
│  │  ├── smp_transfer
│  │  │  ├── VERSION
│  │  │  ├── suit
│  │  │  │  ├── nrf54h20
│  │  │  │  │  │ root_with_binary_nordic_top_extflash.yaml.jinja2
subsys
│  ├── mgmt
│  │  ├── suitfu
│  │  │  ├── Kconfig
│  │  │  ├── src
│  │  │  │  │ suitfu_mgmt.c
│  ├── suit
│  │  ├── cache
│  │  │  ├── src
│  │  │  │  │ suit_dfu_cache_rw.c
│  │  ├── orchestrator_app
│  │  │  ├── Kconfig
│  │  │  ├── src
│  │  │  │  │ suit_orchestrator_app.c
sysbuild
│  ├── Kconfig.suit
│  ├── suit.cmake
│  ├── suit_provisioning
│  │  ├── Kconfig.nrf54h20
│  │  │ Kconfig.nrf9280

Outputs:

Toolchain

Version: 4ffa2202d5
Build docker image: docker-dtr.nordicsemi.no/sw-production/ncs-build:4ffa2202d5_8bf7ca4353

Test Spec & Results: ✅ Success; ❌ Failure; 🟠 Queued; 🟡 Progress; ◻️ Skipped; ⚠️ Quarantine

  • ◻️ Toolchain - Skipped: existing toolchain is used
  • ✅ Build twister - Skipped: Skipping Build & Test as it succeeded in a previous run: 13
  • ✅ Integration tests
    • ✅ test-sdk-audio - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ desktop52_verification - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-boot
    • ✅ test-fw-nrfconnect-apps - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test_ble_nrf_config - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-ble_mesh
    • ✅ test-fw-nrfconnect-ble_samples - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-chip - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-nfc - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-nrf-iot_cloud - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-nrf-iot_libmodem-nrf - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-nrf-iot_serial_lte_modem - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-nrf-iot_zephyr_lwm2m - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-nrf-iot_samples - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-nrf-iot_lwm2m - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ doc-internal - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-nrf-iot_thingy91 - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-nrf_crypto - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-proprietary_esb - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-rpc - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-rs - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-fem - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-tfm - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-thread - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-sdk-find-my - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-nrf-iot_mosh - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-nrf-iot_positioning - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-sdk-wifi - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-low-level - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-sdk-pmic-samples - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-sdk-mcuboot - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-sdk-dfu - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-ps
    • ✅ test-secdom-samples-public - Skipped: Job was skipped as it succeeded in a previous run
    • ⚠️ test-fw-nrfconnect-fw-update

Note: This message is automatically posted and updated by the CI

@tomchy tomchy force-pushed the feature/suit/NCSDK-32185_Add_suit_ab_sample branch 3 times, most recently from eefbd2c to 472f2a3 Compare March 26, 2025 15:18
@NordicBuilder
Copy link
Contributor

NordicBuilder commented Mar 26, 2025

Memory footprint analysis revealed the following potential issues

applications.nrf_desktop.zrelease[nrf54h20dk@0.9.0/nrf54h20/cpuapp]: RAM size increased by 2048[B] in comparison to the main[94d3942] branch. - link (cc: @MarekPieta)
applications.nrf_desktop.zdebug.uart[nrf54h20dk@0.9.0/nrf54h20/cpuapp]: RAM size increased by 2048[B] in comparison to the main[94d3942] branch. - link (cc: @MarekPieta)
applications.nrf_desktop.zrelease[nrf54h20dk@0.9.0/nrf54h20/cpuapp]: RAM size increased by 2048[B] in comparison to the main[e2245b1] branch. - link (cc: @MarekPieta)
applications.nrf_desktop.zrelease[nrf54h20dk@0.9.0/nrf54h20/cpuapp]: RAM size increased by 2048[B] in comparison to the main[a73c390] branch. - link (cc: @MarekPieta)
applications.nrf_desktop.zdebug.uart[nrf54h20dk@0.9.0/nrf54h20/cpuapp]: RAM size increased by 2048[B] in comparison to the main[a73c390] branch. - link (cc: @MarekPieta)

Note: This message is automatically posted and updated by the CI (latest/sdk-nrf/PR-21158/13)

@tomchy tomchy force-pushed the feature/suit/NCSDK-32185_Add_suit_ab_sample branch 2 times, most recently from a1b53b4 to 28b9c08 Compare March 27, 2025 09:45
@tomchy tomchy requested review from ahasztag and FrancescoSer March 27, 2025 09:47
@tomchy tomchy force-pushed the feature/suit/NCSDK-32185_Add_suit_ab_sample branch from 28b9c08 to 7be41b0 Compare March 27, 2025 09:51
@tomchy tomchy added this to the 3.0.0 milestone Mar 27, 2025
Copy link
Contributor

@maciejpietras maciejpietras left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really good documentation, thanks!

@tomchy tomchy force-pushed the feature/suit/NCSDK-32185_Add_suit_ab_sample branch from 7be41b0 to 5bb1adc Compare March 27, 2025 13:27
@tomchy tomchy requested a review from jnsgsr March 27, 2025 13:27
@tomchy tomchy marked this pull request as ready for review March 28, 2025 08:27
@tomchy tomchy requested review from a team as code owners March 28, 2025 08:27
@tomchy tomchy requested a review from a team as a code owner March 28, 2025 08:27
Copy link
Contributor

@nordicjm nordicjm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some nits, changes OK

Copy link
Contributor

@nordicjm nordicjm left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

missed some commits

tomchy added 2 commits March 28, 2025 12:55
Reverse order of IPUC search, so any newly created device is the first
one to be returned by the find API.

Ref: NCSDK-NONE

Signed-off-by: Tomasz Chyrowicz <tomasz.chyrowicz@nordicsemi.no>
Fix warning in DFU cache module, if none of IPUCs are enabled.

Ref: NCSDK-NONE

Signed-off-by: Tomasz Chyrowicz <tomasz.chyrowicz@nordicsemi.no>
@tomchy tomchy force-pushed the feature/suit/NCSDK-32185_Add_suit_ab_sample branch from 5bb1adc to 8fdb574 Compare March 28, 2025 11:55
@github-actions github-actions bot removed the doc-required PR must not be merged without tech writer approval. label Mar 28, 2025
ahasztag and others added 7 commits March 28, 2025 13:03
This commit allows to build a SUIT envelope prepared for pulling
Nordic firmware binaries into the build system.

Signed-off-by: Artur Hadasz <artur.hadasz@nordicsemi.no>
Add a possibility to block nordic_top updates in case
they should only be orchestrated from the root manifest.

Signed-off-by: Artur Hadasz <artur.hadasz@nordicsemi.no>
This commit adds a check inside the default root envelope
verifying if the installed nordic top manifest version is
not too old.
The minimal version of the Nordic top manifest is defined by
the VARSION file.

Signed-off-by: Artur Hadasz <artur.hadasz@nordicsemi.no>
Modifications to the build system to support running the
app_recovery manifest without a recovery image.

Signed-off-by: Artur Hadasz <artur.hadasz@nordicsemi.no>
Add extensions to SUIT build system, so it is capable of automatic
generation of two slots for all sysbuild images if the A/B update scheme
is enabled.

ref: NCSDK-30812

Signed-off-by: Tomasz Chyrowicz <tomasz.chyrowicz@nordicsemi.no>
It is required to flash image IPUC at the end of the transfer, so the
digest check will be performed on the new content.

Ref: NCSDK-32185

Signed-off-by: Tomasz Chyrowicz <tomasz.chyrowicz@nordicsemi.no>
Add sample that demonstrates how to perform A/B updates using SUIT.

Ref: NCSDK-32185

Signed-off-by: Tomasz Chyrowicz <tomasz.chyrowicz@nordicsemi.no>
@tomchy tomchy force-pushed the feature/suit/NCSDK-32185_Add_suit_ab_sample branch from 8fdb574 to 21322f7 Compare March 28, 2025 12:03
@tomchy
Copy link
Contributor Author

tomchy commented Mar 28, 2025

Documentation moved into separate PR: #21213

Copy link

You can find the documentation preview for this PR here.

@tomchy tomchy merged commit 8f271ef into nrfconnect:main Mar 28, 2025
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changelog-entry-required Update changelog before merge. Remove label if entry is not needed or already added.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants