1# Copyright (c) 2023-2024 Nordic Semiconductor 2# 3# SPDX-License-Identifier: Apache-2.0 4 5# This sysbuild CMake file sets the sysbuild controlled settings as properties 6# on Zephyr MCUboot / bootloader image. 7 8set(bootmodes CONFIG_SINGLE_APPLICATION_SLOT 9 CONFIG_BOOT_SWAP_USING_OFFSET 10 CONFIG_BOOT_SWAP_USING_SCRATCH 11 CONFIG_BOOT_UPGRADE_ONLY 12 CONFIG_BOOT_SWAP_USING_MOVE 13 CONFIG_BOOT_DIRECT_XIP 14 CONFIG_BOOT_RAM_LOAD 15 CONFIG_BOOT_FIRMWARE_LOADER) 16 17if(SB_CONFIG_MCUBOOT_MODE_SINGLE_APP) 18 set(bootmode CONFIG_SINGLE_APPLICATION_SLOT) 19elseif(SB_CONFIG_MCUBOOT_MODE_SWAP_USING_OFFSET) 20 set(bootmode CONFIG_BOOT_SWAP_USING_OFFSET) 21elseif(SB_CONFIG_MCUBOOT_MODE_SWAP_WITHOUT_SCRATCH OR SB_CONFIG_MCUBOOT_MODE_SWAP_USING_MOVE) 22 set(bootmode CONFIG_BOOT_SWAP_USING_MOVE) 23elseif(SB_CONFIG_MCUBOOT_MODE_SWAP_SCRATCH) 24 set(bootmode CONFIG_BOOT_SWAP_USING_SCRATCH) 25elseif(SB_CONFIG_MCUBOOT_MODE_OVERWRITE_ONLY) 26 set(bootmode CONFIG_BOOT_UPGRADE_ONLY) 27elseif(SB_CONFIG_MCUBOOT_MODE_DIRECT_XIP OR SB_CONFIG_MCUBOOT_MODE_DIRECT_XIP_WITH_REVERT) 28 set(bootmode CONFIG_BOOT_DIRECT_XIP) 29elseif(SB_CONFIG_MCUBOOT_MODE_RAM_LOAD) 30 set(bootmode CONFIG_BOOT_RAM_LOAD) 31elseif(SB_CONFIG_MCUBOOT_MODE_FIRMWARE_UPDATER) 32 set(bootmode CONFIG_BOOT_FIRMWARE_LOADER) 33endif() 34 35foreach(loopbootmode ${bootmodes}) 36 if("${loopbootmode}" STREQUAL "${bootmode}") 37 set_config_bool(${ZCMAKE_APPLICATION} ${loopbootmode} y) 38 else() 39 set_config_bool(${ZCMAKE_APPLICATION} ${loopbootmode} n) 40 endif() 41endforeach() 42 43if(SB_CONFIG_MCUBOOT_MODE_DIRECT_XIP_WITH_REVERT) 44 set_config_bool(${ZCMAKE_APPLICATION} CONFIG_BOOT_DIRECT_XIP_REVERT y) 45else() 46 set_config_bool(${ZCMAKE_APPLICATION} CONFIG_BOOT_DIRECT_XIP_REVERT n) 47endif() 48 49set(keytypes CONFIG_BOOT_SIGNATURE_TYPE_NONE 50 CONFIG_BOOT_SIGNATURE_TYPE_RSA 51 CONFIG_BOOT_SIGNATURE_TYPE_ECDSA_P256 52 CONFIG_BOOT_SIGNATURE_TYPE_ED25519) 53 54if(SB_CONFIG_BOOT_SIGNATURE_TYPE_NONE) 55 set(keytype CONFIG_BOOT_SIGNATURE_TYPE_NONE) 56elseif(SB_CONFIG_BOOT_SIGNATURE_TYPE_RSA) 57 set(keytype CONFIG_BOOT_SIGNATURE_TYPE_RSA) 58elseif(SB_CONFIG_BOOT_SIGNATURE_TYPE_ECDSA_P256) 59 set(keytype CONFIG_BOOT_SIGNATURE_TYPE_ECDSA_P256) 60elseif(SB_CONFIG_BOOT_SIGNATURE_TYPE_ED25519) 61 set(keytype CONFIG_BOOT_SIGNATURE_TYPE_ED25519) 62endif() 63 64foreach(loopkeytype ${keytypes}) 65 if("${loopkeytype}" STREQUAL "${keytype}") 66 set_config_bool(${ZCMAKE_APPLICATION} ${loopkeytype} y) 67 else() 68 set_config_bool(${ZCMAKE_APPLICATION} ${loopkeytype} n) 69 endif() 70endforeach() 71