From 5c472ab9b9874f1ba897c9ae6a9f6de66c3f7f58 Mon Sep 17 00:00:00 2001 From: Jamie McCrae Date: Wed, 16 Jul 2025 10:25:03 +0100 Subject: [PATCH 1/6] sysbuild: Add nrf54l15 SHA512 support for firmware loader Adds support for using SHA512 hashes when signing firmware loader images Signed-off-by: Jamie McCrae --- .../image_signing_firmware_loader.cmake | 8 ++++++++ sysbuild/CMakeLists.txt | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/cmake/sysbuild/image_signing_firmware_loader.cmake b/cmake/sysbuild/image_signing_firmware_loader.cmake index a2a05b243ee0..af5358ab3690 100644 --- a/cmake/sysbuild/image_signing_firmware_loader.cmake +++ b/cmake/sysbuild/image_signing_firmware_loader.cmake @@ -84,6 +84,14 @@ function(zephyr_mcuboot_tasks) set(imgtool_extra) endif() + if(CONFIG_SOC_SERIES_NRF54LX AND CONFIG_MCUBOOT_BOOTLOADER_SIGNATURE_TYPE_ED25519) + if(NOT CONFIG_MCUBOOT_BOOTLOADER_SIGNATURE_TYPE_PURE) + set(imgtool_extra --sha 512 ${imgtool_extra}) + else() + set(imgtool_extra --pure ${imgtool_extra}) + endif() + endif() + if(NOT "${keyfile}" STREQUAL "") set(imgtool_extra -k "${keyfile}" ${imgtool_extra}) endif() diff --git a/sysbuild/CMakeLists.txt b/sysbuild/CMakeLists.txt index 87f3d5d9d845..1a5a81fdc7b7 100644 --- a/sysbuild/CMakeLists.txt +++ b/sysbuild/CMakeLists.txt @@ -233,6 +233,11 @@ function(${SYSBUILD_CURRENT_MODULE_NAME}_pre_cmake) set_config_bool(${DEFAULT_IMAGE} CONFIG_MCUBOOT_BOOTLOADER_SIGNATURE_TYPE_ED25519 y) set_config_bool(${DEFAULT_IMAGE} CONFIG_MCUBOOT_BOOTLOADER_USES_SHA512 y) + if(SB_CONFIG_MCUBOOT_MODE_FIRMWARE_UPDATER) + set_config_bool(${SB_CONFIG_FIRMWARE_LOADER_IMAGE_NAME} CONFIG_MCUBOOT_BOOTLOADER_SIGNATURE_TYPE_ED25519 y) + set_config_bool(${SB_CONFIG_FIRMWARE_LOADER_IMAGE_NAME} CONFIG_MCUBOOT_BOOTLOADER_USES_SHA512 y) + endif() + # We are sure that ED25519 signature on MCUboot does not need these set_config_bool(mcuboot CONFIG_PSA_USE_CRACEN_AEAD_DRIVER n) set_config_bool(mcuboot CONFIG_PSA_USE_CRACEN_PAKE_DRIVER n) @@ -257,9 +262,17 @@ function(${SYSBUILD_CURRENT_MODULE_NAME}_pre_cmake) if(SB_CONFIG_BOOT_SIGNATURE_TYPE_PURE) set_config_bool(mcuboot CONFIG_BOOT_SIGNATURE_TYPE_PURE y) set_config_bool(${DEFAULT_IMAGE} CONFIG_MCUBOOT_BOOTLOADER_SIGNATURE_TYPE_PURE y) + + if(SB_CONFIG_MCUBOOT_MODE_FIRMWARE_UPDATER) + set_config_bool(${SB_CONFIG_FIRMWARE_LOADER_IMAGE_NAME} CONFIG_MCUBOOT_BOOTLOADER_SIGNATURE_TYPE_PURE y) + endif() else() set_config_bool(mcuboot CONFIG_BOOT_SIGNATURE_TYPE_PURE n) set_config_bool(${DEFAULT_IMAGE} CONFIG_MCUBOOT_BOOTLOADER_SIGNATURE_TYPE_PURE n) + + if(SB_CONFIG_MCUBOOT_MODE_FIRMWARE_UPDATER) + set_config_bool(${SB_CONFIG_FIRMWARE_LOADER_IMAGE_NAME} CONFIG_MCUBOOT_BOOTLOADER_SIGNATURE_TYPE_PURE n) + endif() endif() # MCUboot uses hash function to identify key internally when KMU is disabled. @@ -273,6 +286,11 @@ function(${SYSBUILD_CURRENT_MODULE_NAME}_pre_cmake) else() set_config_bool(${DEFAULT_IMAGE} CONFIG_MCUBOOT_BOOTLOADER_SIGNATURE_TYPE_ED25519 n) set_config_bool(${DEFAULT_IMAGE} CONFIG_MCUBOOT_BOOTLOADER_USES_SHA512 n) + + if(SB_CONFIG_MCUBOOT_MODE_FIRMWARE_UPDATER) + set_config_bool(${SB_CONFIG_FIRMWARE_LOADER_IMAGE_NAME} CONFIG_MCUBOOT_BOOTLOADER_SIGNATURE_TYPE_ED25519 n) + set_config_bool(${SB_CONFIG_FIRMWARE_LOADER_IMAGE_NAME} CONFIG_MCUBOOT_BOOTLOADER_USES_SHA512 n) + endif() endif() endif() From f04c4087d2903dbb381df82212ec106fc961a431 Mon Sep 17 00:00:00 2001 From: Jamie McCrae Date: Wed, 16 Jul 2025 10:26:26 +0100 Subject: [PATCH 2/6] manifest: Update sdk-zephyr Includes a fix for missing aliases for nrf54l15dk Signed-off-by: Jamie McCrae --- west.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/west.yml b/west.yml index 63c6086bd885..cf4b0b6c0ead 100644 --- a/west.yml +++ b/west.yml @@ -65,7 +65,7 @@ manifest: # https://developer.nordicsemi.com/nRF_Connect_SDK/doc/latest/zephyr/guides/modules.html - name: zephyr repo-path: sdk-zephyr - revision: 237ef2e9225a5130047a24f368650c279b676f0b + revision: 587776675ddc6fbfe97e36eb5177130e38c826a0 import: # In addition to the zephyr repository itself, NCS also # imports the contents of zephyr/west.yml at the above From e4cfe13f23c7d19c632f28b4ebb658ee6aff5668 Mon Sep 17 00:00:00 2001 From: Jamie McCrae Date: Thu, 17 Jul 2025 13:37:00 +0100 Subject: [PATCH 3/6] boards: shields: pca63565: Delete additional aliases Fixes an issue with this shield Signed-off-by: Jamie McCrae --- .../shields/pca63565/boards/nrf54l15dk_nrf54l15_cpuapp.overlay | 2 ++ 1 file changed, 2 insertions(+) diff --git a/boards/shields/pca63565/boards/nrf54l15dk_nrf54l15_cpuapp.overlay b/boards/shields/pca63565/boards/nrf54l15dk_nrf54l15_cpuapp.overlay index 0533b61ea356..e98b362dd589 100644 --- a/boards/shields/pca63565/boards/nrf54l15dk_nrf54l15_cpuapp.overlay +++ b/boards/shields/pca63565/boards/nrf54l15dk_nrf54l15_cpuapp.overlay @@ -11,6 +11,8 @@ /delete-property/ led0; /delete-property/ led3; /delete-property/ sw0; + /delete-property/ mcuboot-button0; + /delete-property/ mcuboot-led0; }; }; From 9c61cd07a27c9eafd2b0f5c0f3f976cd02c897cb Mon Sep 17 00:00:00 2001 From: Jamie McCrae Date: Wed, 16 Jul 2025 09:10:09 +0100 Subject: [PATCH 4/6] sysbuild: Add firmware loader smp_svr_mini_boot image support Adds support for picking this image as a firmware loader image Signed-off-by: Jamie McCrae --- sysbuild/Kconfig.firmware_loader | 26 ++++++++++++++++++++++++++ sysbuild/Kconfig.sysbuild | 1 + 2 files changed, 27 insertions(+) create mode 100644 sysbuild/Kconfig.firmware_loader diff --git a/sysbuild/Kconfig.firmware_loader b/sysbuild/Kconfig.firmware_loader new file mode 100644 index 000000000000..29710665968e --- /dev/null +++ b/sysbuild/Kconfig.firmware_loader @@ -0,0 +1,26 @@ +# +# Copyright (c) 2025 Nordic Semiconductor +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# + +config SUPPORT_FIRMWARE_LOADER_SMP_SVR_MINI_BOOT + bool + default y + +choice FIRMWARE_LOADER + +config FIRMWARE_LOADER_IMAGE_SMP_SVR_MINI_BOOT + bool "smp_svr_mini_boot" + depends on SUPPORT_FIRMWARE_LOADER_SMP_SVR_MINI_BOOT + help + Include the minified MCUmgr ``smp_svr_mini_boot`` sample as the firmware loader image + to use. + +endchoice + +config FIRMWARE_LOADER_IMAGE_NAME + default "smp_svr_mini_boot" if FIRMWARE_LOADER_IMAGE_SMP_SVR_MINI_BOOT + +config FIRMWARE_LOADER_IMAGE_PATH + default "${ZEPHYR_NRF_MODULE_DIR}/samples/zephyr/smp_svr_mini_boot" if FIRMWARE_LOADER_IMAGE_SMP_SVR_MINI_BOOT diff --git a/sysbuild/Kconfig.sysbuild b/sysbuild/Kconfig.sysbuild index 77377ec5bed7..cd6c6a455191 100644 --- a/sysbuild/Kconfig.sysbuild +++ b/sysbuild/Kconfig.sysbuild @@ -87,3 +87,4 @@ rsource "Kconfig.lwm2m_carrier" rsource "Kconfig.cracen" rsource "Kconfig.tfm" rsource "Kconfig.periphconf" +rsource "Kconfig.firmware_loader" From 02be92fe760e36a263dfff399018cf6529350e46 Mon Sep 17 00:00:00 2001 From: Jamie McCrae Date: Wed, 16 Jul 2025 09:08:25 +0100 Subject: [PATCH 5/6] samples: mcuboot: Add firmware loader entrance sample Adds a sample showing how to reboot into MCUboot's firmware loader application for being able to load firmware updates Signed-off-by: Jamie McCrae --- .../firmware_loader_entrance/CMakeLists.txt | 12 ++ .../pm_static_nrf52840dk_nrf52840.yml | 51 +++++ .../pm_static_nrf54l15dk_nrf54l15_cpuapp.yml | 51 +++++ .../mcuboot/firmware_loader_entrance/prj.conf | 35 ++++ .../firmware_loader_entrance/sample.yaml | 16 ++ .../firmware_loader_entrance/src/main.c | 183 ++++++++++++++++++ .../firmware_loader_entrance/sysbuild.conf | 10 + .../sysbuild/mcuboot.conf | 8 + 8 files changed, 366 insertions(+) create mode 100644 samples/mcuboot/firmware_loader_entrance/CMakeLists.txt create mode 100644 samples/mcuboot/firmware_loader_entrance/pm_static_nrf52840dk_nrf52840.yml create mode 100644 samples/mcuboot/firmware_loader_entrance/pm_static_nrf54l15dk_nrf54l15_cpuapp.yml create mode 100644 samples/mcuboot/firmware_loader_entrance/prj.conf create mode 100644 samples/mcuboot/firmware_loader_entrance/sample.yaml create mode 100644 samples/mcuboot/firmware_loader_entrance/src/main.c create mode 100644 samples/mcuboot/firmware_loader_entrance/sysbuild.conf create mode 100644 samples/mcuboot/firmware_loader_entrance/sysbuild/mcuboot.conf diff --git a/samples/mcuboot/firmware_loader_entrance/CMakeLists.txt b/samples/mcuboot/firmware_loader_entrance/CMakeLists.txt new file mode 100644 index 000000000000..e4ebe5583443 --- /dev/null +++ b/samples/mcuboot/firmware_loader_entrance/CMakeLists.txt @@ -0,0 +1,12 @@ +# +# Copyright (c) 2025 Nordic Semiconductor +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# + +cmake_minimum_required(VERSION 3.20.0) + +find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) +project(firmware_loader_entrance) + +target_sources(app PRIVATE src/main.c) diff --git a/samples/mcuboot/firmware_loader_entrance/pm_static_nrf52840dk_nrf52840.yml b/samples/mcuboot/firmware_loader_entrance/pm_static_nrf52840dk_nrf52840.yml new file mode 100644 index 000000000000..07110c86786d --- /dev/null +++ b/samples/mcuboot/firmware_loader_entrance/pm_static_nrf52840dk_nrf52840.yml @@ -0,0 +1,51 @@ +mcuboot: + address: 0x0 + region: flash_primary + size: 0x8000 +app: + address: 0x8200 + region: flash_primary + size: 0x5fe00 +mcuboot_pad: + address: 0x8000 + region: flash_primary + size: 0x200 +mcuboot_primary: + address: 0x8000 + orig_span: &id001 + - app + - mcuboot_pad + region: flash_primary + size: 0x60000 + span: *id001 +mcuboot_primary_app: + address: 0x8200 + orig_span: &id002 + - app + region: flash_primary + size: 0x5fe00 + span: *id002 +mcuboot_secondary: + address: 0x68000 + orig_span: &id003 + - mcuboot_secondary_pad + - firmware_loader + region: flash_primary + size: 0x60000 + span: *id003 +mcuboot_secondary_pad: + region: flash_primary + address: 0x68000 + size: 0x200 +firmware_loader: + region: flash_primary + address: 0x68200 + size: 0x5fe00 +settings_storage: + address: 0xc8000 + region: flash_primary + size: 0x4000 +unallocated: + address: 0xcc000 + region: flash_primary + size: 0x34000 diff --git a/samples/mcuboot/firmware_loader_entrance/pm_static_nrf54l15dk_nrf54l15_cpuapp.yml b/samples/mcuboot/firmware_loader_entrance/pm_static_nrf54l15dk_nrf54l15_cpuapp.yml new file mode 100644 index 000000000000..c246b5626dd3 --- /dev/null +++ b/samples/mcuboot/firmware_loader_entrance/pm_static_nrf54l15dk_nrf54l15_cpuapp.yml @@ -0,0 +1,51 @@ +mcuboot: + address: 0x0 + region: flash_primary + size: 0xa000 +app: + address: 0xa800 + region: flash_primary + size: 0x60000 +mcuboot_pad: + address: 0xa000 + region: flash_primary + size: 0x800 +mcuboot_primary: + address: 0xa000 + orig_span: &id001 + - app + - mcuboot_pad + region: flash_primary + size: 0x60800 + span: *id001 +mcuboot_primary_app: + address: 0xa800 + orig_span: &id002 + - app + region: flash_primary + size: 0x60000 + span: *id002 +mcuboot_secondary: + address: 0x6a800 + orig_span: &id003 + - mcuboot_secondary_pad + - firmware_loader + region: flash_primary + size: 0x60800 + span: *id003 +mcuboot_secondary_pad: + region: flash_primary + address: 0x6a800 + size: 0x800 +firmware_loader: + region: flash_primary + address: 0x6b000 + size: 0x60000 +settings_storage: + address: 0xcb000 + region: flash_primary + size: 0x4000 +unallocated: + address: 0xcf000 + region: flash_primary + size: 0x96000 diff --git a/samples/mcuboot/firmware_loader_entrance/prj.conf b/samples/mcuboot/firmware_loader_entrance/prj.conf new file mode 100644 index 000000000000..5ae0db1b40a4 --- /dev/null +++ b/samples/mcuboot/firmware_loader_entrance/prj.conf @@ -0,0 +1,35 @@ +# Enable MCUmgr and dependencies. +CONFIG_NET_BUF=y +CONFIG_ZCBOR=y +CONFIG_MCUMGR=y +CONFIG_BT=y +CONFIG_BT_PERIPHERAL=y + +# Allow for large Bluetooth data packets. +CONFIG_BT_L2CAP_TX_MTU=498 +CONFIG_BT_BUF_ACL_RX_SIZE=502 +CONFIG_BT_BUF_ACL_TX_SIZE=502 +CONFIG_BT_CTLR_DATA_LENGTH_MAX=251 + +# Enable the Bluetooth mcumgr transport (unauthenticated). +CONFIG_MCUMGR_TRANSPORT_BT=y +CONFIG_MCUMGR_TRANSPORT_BT_CONN_PARAM_CONTROL=y + +# Enable the mcumgr Packet Reassembly feature over Bluetooth and its configuration dependencies. +# MCUmgr buffer size is optimized to fit one SMP packet divided into five Bluetooth Write Commands, +# transmitted with the maximum possible MTU value: 498 bytes. +CONFIG_MCUMGR_TRANSPORT_BT_REASSEMBLY=y +CONFIG_MCUMGR_TRANSPORT_NETBUF_SIZE=2475 +CONFIG_MCUMGR_GRP_OS_MCUMGR_PARAMS=y +CONFIG_MCUMGR_TRANSPORT_WORKQUEUE_STACK_SIZE=4608 + +# Enable OS management with bootloader information and boot mode support +CONFIG_MCUMGR_GRP_OS=y +CONFIG_MCUMGR_GRP_OS_RESET_BOOT_MODE=y +CONFIG_MCUMGR_GRP_OS_BOOTLOADER_INFO=y + +# Disable Bluetooth ping support +CONFIG_BT_CTLR_LE_PING=n + +# Enable logging +CONFIG_LOG=y diff --git a/samples/mcuboot/firmware_loader_entrance/sample.yaml b/samples/mcuboot/firmware_loader_entrance/sample.yaml new file mode 100644 index 000000000000..055e50738099 --- /dev/null +++ b/samples/mcuboot/firmware_loader_entrance/sample.yaml @@ -0,0 +1,16 @@ +sample: + name: Firmware loader entrance + description: Demo application for entering the firmware loader application +common: + sysbuild: true + build_only: true +tests: + sample.mcuboot.firmware_loader_entrance: + harness: bluetooth + tags: bluetooth + platform_allow: + - nrf52840dk/nrf52840 + - nrf54l15dk/nrf54l15/cpuapp + integration_platforms: + - nrf52840dk/nrf52840 + - nrf54l15dk/nrf54l15/cpuapp diff --git a/samples/mcuboot/firmware_loader_entrance/src/main.c b/samples/mcuboot/firmware_loader_entrance/src/main.c new file mode 100644 index 000000000000..a9f7fe771a85 --- /dev/null +++ b/samples/mcuboot/firmware_loader_entrance/src/main.c @@ -0,0 +1,183 @@ +/* + * Copyright (c) 2025 Nordic Semiconductor ASA + * + * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +LOG_MODULE_REGISTER(firmware_entrance_loader, LOG_LEVEL_DBG); + +static struct k_work adv_work; + +static const struct bt_data ad[] = { + BT_DATA_BYTES(BT_DATA_FLAGS, (BT_LE_AD_GENERAL | BT_LE_AD_NO_BREDR)), + BT_DATA_BYTES(BT_DATA_UUID128_ALL, SMP_BT_SVC_UUID_VAL), +}; + +static const struct bt_data sd[] = { + BT_DATA(BT_DATA_NAME_COMPLETE, CONFIG_BT_DEVICE_NAME, (sizeof(CONFIG_BT_DEVICE_NAME) - 1)), +}; + +static void adv_work_handler(struct k_work *work) +{ + int rc = bt_le_adv_start(BT_LE_ADV_CONN_FAST_2, ad, ARRAY_SIZE(ad), sd, ARRAY_SIZE(sd)); + + if (rc) { + LOG_ERR("Advertising failed to start: %d", rc); + return; + } + + LOG_INF("Advertising successfully started, device name: %s", CONFIG_BT_DEVICE_NAME); +} + +static void advertising_start(void) +{ + k_work_submit(&adv_work); +} + +static void connected(struct bt_conn *conn, uint8_t err) +{ + if (err) { + LOG_ERR("Connection failed: 0x%02x (%s)", err, bt_hci_err_to_str(err)); + return; + } + + LOG_INF("Connected"); +} + +static void disconnected(struct bt_conn *conn, uint8_t reason) +{ + LOG_INF("Disconnected, reason: 0x%02x (%s)", reason, bt_hci_err_to_str(reason)); +} + +static void recycled_cb(void) +{ + LOG_INF("Connection object available from previous conn. Disconnect is complete!"); + advertising_start(); +} + +#ifdef CONFIG_BT_SMP +static void security_changed(struct bt_conn *conn, bt_security_t level, + enum bt_security_err err) +{ + char addr[BT_ADDR_LE_STR_LEN]; + + bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr)); + + if (!err) { + LOG_INF("Security changed: %s level %u", addr, level); + } else { + LOG_INF("Security failed: %s level %u error: %d (%s)", addr, level, err, + bt_security_err_to_str(err)); + } +} +#endif + +BT_CONN_CB_DEFINE(conn_callbacks) = { + .connected = connected, + .disconnected = disconnected, + .recycled = recycled_cb, +#ifdef CONFIG_BT_SMP + .security_changed = security_changed, +#endif +}; + +#if defined(CONFIG_BT_SMP) +static void auth_passkey_display(struct bt_conn *conn, unsigned int passkey) +{ + char addr[BT_ADDR_LE_STR_LEN]; + + bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr)); + + LOG_INF("Passkey for %s: %06u", addr, passkey); +} + +static void auth_cancel(struct bt_conn *conn) +{ + char addr[BT_ADDR_LE_STR_LEN]; + + bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr)); + + LOG_INF("Pairing cancelled: %s", addr); +} + +static void pairing_complete(struct bt_conn *conn, bool bonded) +{ + char addr[BT_ADDR_LE_STR_LEN]; + + bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr)); + + LOG_INF("Pairing completed: %s, bonded: %d", addr, bonded); +} + +static void pairing_failed(struct bt_conn *conn, enum bt_security_err reason) +{ + char addr[BT_ADDR_LE_STR_LEN]; + + bt_addr_le_to_str(bt_conn_get_dst(conn), addr, sizeof(addr)); + + LOG_INF("Pairing failed conn: %s, reason: %d (%s)", addr, reason, + bt_security_err_to_str(reason)); +} + +static struct bt_conn_auth_cb conn_auth_callbacks = { + .passkey_display = auth_passkey_display, + .cancel = auth_cancel, +}; + +static struct bt_conn_auth_info_cb conn_auth_info_callbacks = { + .pairing_complete = pairing_complete, + .pairing_failed = pairing_failed +}; +#else +static struct bt_conn_auth_cb conn_auth_callbacks; +static struct bt_conn_auth_info_cb conn_auth_info_callbacks; +#endif + +int main(void) +{ + int rc; + + if (IS_ENABLED(CONFIG_BT_SMP)) { + rc = bt_conn_auth_cb_register(&conn_auth_callbacks); + + if (rc) { + LOG_ERR("Failed to register authorization callbacks."); + return 0; + } + + rc = bt_conn_auth_info_cb_register(&conn_auth_info_callbacks); + + if (rc) { + LOG_ERR("Failed to register authorization info callbacks."); + return 0; + } + } + + rc = bt_enable(NULL); + + if (rc) { + LOG_ERR("Bluetooth init failed: %d", rc); + return 0; + } + + LOG_INF("Bluetooth initialized"); + + if (IS_ENABLED(CONFIG_SETTINGS)) { + settings_load(); + } + + k_work_init(&adv_work, adv_work_handler); + advertising_start(); + + return 0; +} diff --git a/samples/mcuboot/firmware_loader_entrance/sysbuild.conf b/samples/mcuboot/firmware_loader_entrance/sysbuild.conf new file mode 100644 index 000000000000..d5903a13255e --- /dev/null +++ b/samples/mcuboot/firmware_loader_entrance/sysbuild.conf @@ -0,0 +1,10 @@ +# +# Copyright (c) 2025 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# + +SB_CONFIG_BOOTLOADER_MCUBOOT=y +SB_CONFIG_MCUBOOT_MODE_FIRMWARE_UPDATER=y +SB_CONFIG_MCUBOOT_MODE_FIRMWARE_UPDATER_BOOT_MODE_ENTRANCE=y +SB_CONFIG_FIRMWARE_LOADER_IMAGE_SMP_SVR_MINI_BOOT=y diff --git a/samples/mcuboot/firmware_loader_entrance/sysbuild/mcuboot.conf b/samples/mcuboot/firmware_loader_entrance/sysbuild/mcuboot.conf new file mode 100644 index 000000000000..771ec6d8594e --- /dev/null +++ b/samples/mcuboot/firmware_loader_entrance/sysbuild/mcuboot.conf @@ -0,0 +1,8 @@ +# +# Copyright (c) 2025 Nordic Semiconductor ASA +# +# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause +# + +CONFIG_BOOT_FIRMWARE_LOADER_ENTRANCE_GPIO=y +CONFIG_BOOT_FIRMWARE_LOADER_NO_APPLICATION=y From 832a7e42065b24e20ae3e3631e8e3e26773fdb93 Mon Sep 17 00:00:00 2001 From: Jamie McCrae Date: Wed, 16 Jul 2025 09:20:31 +0100 Subject: [PATCH 6/6] codeowners: Add entry for MCUboot samples Assigns this to pluto Signed-off-by: Jamie McCrae --- CODEOWNERS | 1 + 1 file changed, 1 insertion(+) diff --git a/CODEOWNERS b/CODEOWNERS index a1dec75b0e22..989e3706c067 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -528,6 +528,7 @@ /samples/ipc/ipc_service/ @nrfconnect/ncs-si-muffin /samples/keys/ @nrfconnect/ncs-aegir /samples/matter/ @nrfconnect/ncs-matter +/samples/mcuboot/ @nrfconnect/ncs-pluto /samples/mpsl/ @nrfconnect/ncs-dragoon /samples/net/ @nrfconnect/ncs-cia @nrfconnect/ncs-modem /samples/nfc/ @nrfconnect/ncs-si-muffin