Browse Source
Adds support for setting up a firmware loader image in a build, which can also optionally automatically configure MCUboot and the application image to be able to boot the firmware loader image using the retention subsystem Signed-off-by: Jamie McCrae <jamie.mccrae@nordicsemi.no>pull/89092/head
9 changed files with 99 additions and 5 deletions
@ -0,0 +1,22 @@ |
|||||||
|
# Copyright (c) 2025 Nordic Semiconductor |
||||||
|
# |
||||||
|
# SPDX-License-Identifier: Apache-2.0 |
||||||
|
|
||||||
|
# This sysbuild CMake file sets the sysbuild controlled settings as properties |
||||||
|
# on a firmware updater image. |
||||||
|
|
||||||
|
set_config_bool(${ZCMAKE_APPLICATION} CONFIG_BOOTLOADER_MCUBOOT "${SB_CONFIG_BOOTLOADER_MCUBOOT}") |
||||||
|
set_config_string(${ZCMAKE_APPLICATION} CONFIG_MCUBOOT_SIGNATURE_KEY_FILE |
||||||
|
"${SB_CONFIG_BOOT_SIGNATURE_KEY_FILE}" |
||||||
|
) |
||||||
|
set_config_string(${ZCMAKE_APPLICATION} CONFIG_MCUBOOT_ENCRYPTION_KEY_FILE |
||||||
|
"${SB_CONFIG_BOOT_ENCRYPTION_KEY_FILE}" |
||||||
|
) |
||||||
|
|
||||||
|
if("${SB_CONFIG_SIGNATURE_TYPE}" STREQUAL "NONE") |
||||||
|
set_config_bool(${ZCMAKE_APPLICATION} CONFIG_MCUBOOT_GENERATE_UNSIGNED_IMAGE y) |
||||||
|
else() |
||||||
|
set_config_bool(${ZCMAKE_APPLICATION} CONFIG_MCUBOOT_GENERATE_UNSIGNED_IMAGE n) |
||||||
|
endif() |
||||||
|
|
||||||
|
set_config_bool(${ZCMAKE_APPLICATION} CONFIG_MCUBOOT_BOOTLOADER_MODE_FIRMWARE_UPDATER y) |
@ -0,0 +1,11 @@ |
|||||||
|
# Copyright (c) 2025 Nordic Semiconductor |
||||||
|
# |
||||||
|
# SPDX-License-Identifier: Apache-2.0 |
||||||
|
|
||||||
|
if(SB_CONFIG_FIRMWARE_LOADER_IMAGE_PATH) |
||||||
|
ExternalZephyrProject_Add( |
||||||
|
APPLICATION ${SB_CONFIG_FIRMWARE_LOADER_IMAGE_NAME} |
||||||
|
SOURCE_DIR ${SB_CONFIG_FIRMWARE_LOADER_IMAGE_PATH} |
||||||
|
APP_TYPE FIRMWARE_LOADER |
||||||
|
) |
||||||
|
endif() |
@ -0,0 +1,37 @@ |
|||||||
|
# Copyright (c) 2025 Nordic Semiconductor |
||||||
|
# |
||||||
|
# SPDX-License-Identifier: Apache-2.0 |
||||||
|
|
||||||
|
config SUPPORT_FIRMWARE_LOADER_SMP_SVR |
||||||
|
bool |
||||||
|
default y |
||||||
|
|
||||||
|
choice FIRMWARE_LOADER |
||||||
|
prompt "Firmware loader image" |
||||||
|
default FIRMWARE_LOADER_IMAGE_NONE |
||||||
|
depends on MCUBOOT_MODE_FIRMWARE_UPDATER |
||||||
|
|
||||||
|
config FIRMWARE_LOADER_IMAGE_NONE |
||||||
|
bool "None" |
||||||
|
help |
||||||
|
Do not Include a firmware loader image in the build. |
||||||
|
|
||||||
|
config FIRMWARE_LOADER_IMAGE_SMP_SVR |
||||||
|
bool "smp_svr" |
||||||
|
depends on SUPPORT_FIRMWARE_LOADER_SMP_SVR |
||||||
|
help |
||||||
|
Include the MCUmgr ``smp_svr`` sample as the firmware loader image to use. |
||||||
|
|
||||||
|
endchoice |
||||||
|
|
||||||
|
config FIRMWARE_LOADER_IMAGE_NAME |
||||||
|
string |
||||||
|
default "smp_svr" if FIRMWARE_LOADER_IMAGE_SMP_SVR |
||||||
|
help |
||||||
|
Name of firmware loader image. |
||||||
|
|
||||||
|
config FIRMWARE_LOADER_IMAGE_PATH |
||||||
|
string |
||||||
|
default "${ZEPHYR_BASE}/samples/subsys/mgmt/mcumgr/smp_svr" if FIRMWARE_LOADER_IMAGE_SMP_SVR |
||||||
|
help |
||||||
|
Source directory of firmware loader image. |
Loading…
Reference in new issue