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

sysbuild: Add compression options for MCUboot #17330

Open
wants to merge 5 commits into
base: main
Choose a base branch
from

Conversation

nordicjm
Copy link
Contributor

manifest: Update sdk-mcuboot

Pulls in changes for image decompression support



sysbuild: Add compression options for MCUboot

Adds an option which will enable compressed image support in
MCUboot



tests: nrf_compress: decompression: Add mcuboot_update test

Adds a test which ensures compressed update image support works
in MCUbot

@github-actions github-actions bot added manifest changelog-entry-required Update changelog before merge. Remove label if entry is not needed or already added. labels Sep 16, 2024
@NordicBuilder
Copy link
Contributor

NordicBuilder commented Sep 16, 2024

The following west manifest projects have been modified in this Pull Request:

Name Old Revision New Revision Diff
mcuboot nrfconnect/sdk-mcuboot@763edd6 nrfconnect/sdk-mcuboot@3909498 nrfconnect/[email protected]
zephyr nrfconnect/sdk-zephyr@8005d4e nrfconnect/sdk-zephyr@3f835fe (main) nrfconnect/[email protected]

Note: This message is automatically posted and updated by the Manifest GitHub Action.

@NordicBuilder
Copy link
Contributor

NordicBuilder commented Sep 16, 2024

CI Information

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

Inputs:

Sources:

sdk-nrf: PR head: 02ff74376488e1949cfcb2e1a89246eb76ee25db
mcuboot: PR head: 3909498f76f91c5b8a95ea38d4c7084a03459a55
zephyr: PR head: 3f835fec4f01a10a055c23760f6a0f40aa77eaab

more details

sdk-nrf:

PR head: 02ff74376488e1949cfcb2e1a89246eb76ee25db
merge base: c0ec7662c35b545b96759e3cf9e50ba0216b3b82
target head (main): ca2219e2b85e60fd6e9d948f0f059eeb97dd27a3
Diff

mcuboot:

PR head: 3909498f76f91c5b8a95ea38d4c7084a03459a55
merge base: 763edd653b1b9a5efd643221333e9ea16767da11
Diff

zephyr:

PR head: 3f835fec4f01a10a055c23760f6a0f40aa77eaab
merge base: 8005d4e87b9bcba25f441a51f4f5d29b541022b9
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 (36)
bootloader
│  ├── mcuboot
│  │  ├── boot
│  │  │  ├── zephyr
│  │  │  │  │ Kconfig
│  │  ├── scripts
│  │  │  ├── imgtool
│  │  │  │  ├── image.py
│  │  │  │  │ main.py
cmake
│  ├── sysbuild
│  │  │ image_signing.cmake
samples
│  ├── nrf_compress
│  │  ├── mcuboot_update
│  │  │  ├── CMakeLists.txt
│  │  │  ├── prj.conf
│  │  │  ├── src
│  │  │  │  │ hook.c
│  │  │  ├── sysbuild.conf
│  │  │  ├── sysbuild
│  │  │  │  │ mcuboot.conf
│  │  │  │ testcase.yaml
subsys
│  ├── bootloader
│  │  │ Kconfig
│  ├── partition_manager
│  │  │ Kconfig
sysbuild
│  ├── CMakeLists.txt
│  │ Kconfig.mcuboot
tests
│  ├── subsys
│  │  ├── nrf_compress
│  │  │  ├── decompression
│  │  │  │  ├── mcuboot_update
│  │  │  │  │  ├── CMakeLists.txt
│  │  │  │  │  ├── Kconfig
│  │  │  │  │  ├── app.overlay
│  │  │  │  │  ├── compressed_app
│  │  │  │  │  │  ├── CMakeLists.txt
│  │  │  │  │  │  ├── prj.conf
│  │  │  │  │  │  ├── src
│  │  │  │  │  │  │  │ main.c
│  │  │  │  │  ├── modified_signing.cmake
│  │  │  │  │  ├── pm_static_nrf52840dk_nrf52840.yml
│  │  │  │  │  ├── pm_static_nrf5340dk_nrf5340_cpuapp.yml
│  │  │  │  │  ├── pm_static_nrf54l15dk_nrf54l15_cpuapp.yml
│  │  │  │  │  ├── prj.conf
│  │  │  │  │  ├── src
│  │  │  │  │  │  │ main.c
│  │  │  │  │  ├── sysbuild.cmake
│  │  │  │  │  ├── sysbuild.conf
│  │  │  │  │  ├── sysbuild
│  │  │  │  │  │  ├── mcuboot
│  │  │  │  │  │  │  ├── app.overlay
│  │  │  │  │  │  │  ├── boards
│  │  │  │  │  │  │  │  ├── nrf52840dk_nrf52840.conf
│  │  │  │  │  │  │  │  ├── nrf54l15dk_nrf54l15_cpuapp.conf
│  │  │  │  │  │  │  │  │ nrf54l15dk_nrf54l15_cpuapp.overlay
│  │  │  │  │  │  │  │ prj.conf
│  │  │  │  │  │ testcase.yaml
west.yml
zephyr
│  ├── include
│  │  ├── zephyr
│  │  │  ├── arch
│  │  │  │  ├── arm
│  │  │  │  │  ├── cortex_m
│  │  │  │  │  │  ├── scripts
│  │  │  │  │  │  │  │ linker.ld

Outputs:

Toolchain

Version: 9583beca34
Build docker image: docker-dtr.nordicsemi.no/sw-production/ncs-build:9583beca34_81ed5a52d6

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

  • ◻️ Toolchain - Skipped: existing toolchain is used
  • ❌ Build twister
  • ❌ Integration tests
    • ❌ test-sdk-audio
    • ❌ desktop52_verification
    • ❌ test-fw-nrfconnect-boot
    • ❌ test-fw-nrfconnect-apps
    • ❌ test_ble_nrf_config
    • ❌ test-fw-nrfconnect-ble_mesh
    • ❌ test-fw-nrfconnect-ble_samples
    • ❌ test-fw-nrfconnect-chip
    • ❌ test-fw-nrfconnect-nfc
    • ❌ test-fw-nrfconnect-nrf-iot_cloud
    • ❌ test-fw-nrfconnect-nrf-iot_libmodem-nrf
    • ❌ test-fw-nrfconnect-nrf-iot_serial_lte_modem
    • ❌ test-fw-nrfconnect-nrf-iot_zephyr_lwm2m
    • ❌ test-fw-nrfconnect-nrf-iot_samples
    • ❌ test-fw-nrfconnect-nrf-iot_lwm2m
    • ❌ doc-internal
    • ❌ test-fw-nrfconnect-nrf-iot_thingy91
    • ❌ test-fw-nrfconnect-nrf_crypto
    • ❌ test-fw-nrfconnect-proprietary_esb
    • ❌ test-fw-nrfconnect-rpc
    • ❌ test-fw-nrfconnect-rs
    • ❌ test-fw-nrfconnect-fem
    • ❌ test-fw-nrfconnect-tfm
    • ❌ test-fw-nrfconnect-thread
    • ❌ test-fw-nrfconnect-zigbee
    • ❌ test-sdk-find-my
    • ❌ test-fw-nrfconnect-nrf-iot_mosh
    • ❌ test-fw-nrfconnect-nrf-iot_positioning
    • ❌ test-sdk-sidewalk
    • ❌ test-sdk-wifi
    • ❌ test-low-level
    • ❌ test-fw-nrfconnect-nrf-iot_nrf_provisioning
    • ❌ test-sdk-pmic-samples
    • ❌ test-sdk-mcuboot
    • ❌ test-sdk-dfu
    • ❌ test-fw-nrfconnect-ps
    • ❌ test-secdom-samples-public
    • ⚠️ test-fw-nrfconnect-fw-update

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

@NordicBuilder
Copy link
Contributor

You can find the documentation preview for this PR at this link. It will be updated about 10 minutes after the documentation build succeeds.

Note: This comment is automatically posted by the Documentation Publishing GitHub Action.

@nordicjm nordicjm force-pushed the mcubootcompresstest branch 5 times, most recently from 2b69b1a to 9df875d Compare September 20, 2024 12:11
@nordicjm nordicjm marked this pull request as ready for review September 20, 2024 12:11
@nordicjm nordicjm requested review from a team as code owners September 20, 2024 12:11
@nordicjm nordicjm force-pushed the mcubootcompresstest branch 3 times, most recently from 861cdf9 to 1481c87 Compare September 24, 2024 15:03
Copy link
Contributor

@nvlsianpu nvlsianpu left a comment

Choose a reason for hiding this comment

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

just a few nits. Now I see why you need intel-hex output from imgtool.py

Copy link
Contributor

Choose a reason for hiding this comment

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

not a main content of this sample in this file - expect main(). rename?

#endif

static struct mgmt_callback img_slot_callback;

Copy link
Contributor

Choose a reason for hiding this comment

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

comment in the code for explaining what is it doing would be helpful once someone will look at this in few months.

return 0;
}

SYS_INIT(setup_something, APPLICATION, 0);
Copy link
Contributor

Choose a reason for hiding this comment

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

what does this SYS_INIT?

CONFIG_BOOT_MAX_IMG_SECTORS=256

# Ensure that the qspi driver is disabled by default
CONFIG_NORDIC_QSPI_NOR=n
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
CONFIG_NORDIC_QSPI_NOR=n
CONFIG_NORDIC_SPI_NOR=n

nRF54l15 hasn't QSPI.

Adds an option that will utilise the whole SRAM size as specified
by a single image, and enables it for nrf54l15 when using
decompression in MCUboot

Signed-off-by: Jamie McCrae <[email protected]>
Pulls in changes for image decompression support and PM SRAM
using the Kconfig value

Signed-off-by: Jamie McCrae <[email protected]>
Adds an option which will enable compressed image support in
MCUboot

Signed-off-by: Jamie McCrae <[email protected]>
Adds a test which ensures compressed update image support works
in MCUbot

Signed-off-by: Jamie McCrae <[email protected]>
Adds a sample which shows usage of compressed image updates

Signed-off-by: Jamie McCrae <[email protected]>
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. manifest manifest-mcuboot manifest-zephyr
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants