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