blob: fb67ab51f2beaece6f26984ac1b5156c25b06c21 [file] [log] [blame]
shejia0184440112021-07-07 10:49:09 +08001#-------------------------------------------------------------------------------
Raef Colesf77cc172022-01-07 11:05:47 +00002# Copyright (c) 2021-2022, Arm Limited. All rights reserved.
shejia0184440112021-07-07 10:49:09 +08003#
4# SPDX-License-Identifier: BSD-3-Clause
5#
6#-------------------------------------------------------------------------------
7
8########################## MCUBoot #############################################
9
Raef Colesf77cc172022-01-07 11:05:47 +000010set(TEST_BL2 OFF CACHE BOOL "Whether to build bl2 tests")
11
shejia0184440112021-07-07 10:49:09 +080012set(DEFAULT_MCUBOOT_SECURITY_COUNTERS ON CACHE BOOL "Whether to use the default security counter configuration defined by TF-M project")
13set(DEFAULT_MCUBOOT_FLASH_MAP ON CACHE BOOL "Whether to use the default flash map defined by TF-M project")
14
Raef Coles8bc1ff82021-04-26 12:02:52 +010015set(MCUBOOT_S_IMAGE_FLASH_AREA_NUM 0 CACHE STRING "ID of the flash area containing the primary Secure image")
16set(MCUBOOT_NS_IMAGE_FLASH_AREA_NUM 1 CACHE STRING "ID of the flash area containing the primary Non-Secure image")
17
shejia0184440112021-07-07 10:49:09 +080018set(MCUBOOT_IMAGE_NUMBER 2 CACHE STRING "Whether to combine S and NS into either 1 image, or sign each seperately")
19set(MCUBOOT_EXECUTION_SLOT 1 CACHE STRING "Slot from which to execute the image, used for XIP mode")
20set(MCUBOOT_LOG_LEVEL "INFO" CACHE STRING "Level of logging to use for MCUboot [OFF, ERROR, WARNING, INFO, DEBUG]")
21set(MCUBOOT_HW_KEY ON CACHE BOOL "Whether to embed the entire public key in the image metadata instead of the hash only")
22set(MCUBOOT_UPGRADE_STRATEGY "OVERWRITE_ONLY" CACHE STRING "Upgrade strategy for images")
Ludovic Barre5319ac02021-11-02 09:51:29 +010023set(BL2_HEADER_SIZE 0x400 CACHE STRING "Header size")
Ludovic Barre6432c7f2021-11-08 11:17:33 +010024set(BL2_TRAILER_SIZE 0x400 CACHE STRING "Trailer size")
Michel Jaouen24c3dd02021-08-12 15:32:13 +020025set(MCUBOOT_ALIGN_VAL 1 CACHE STRING "align option for mcuboot and build image with imgtool [1, 2, 4, 8, 16, 32]")
shejia0184440112021-07-07 10:49:09 +080026
27# Specifying a scope of the accepted values of MCUBOOT_UPGRADE_STRATEGY for
28# platforms to choose a specific upgrade strategy for images. These certain
29# configurations will be used to facilitate the later validation.
Michel Jaouen4f342a42021-12-22 17:23:58 +010030set_property(CACHE MCUBOOT_UPGRADE_STRATEGY PROPERTY STRINGS "OVERWRITE_ONLY;SWAP_USING_SCRATCH;SWAP_USING_MOVE;DIRECT_XIP;RAM_LOAD")
shejia0184440112021-07-07 10:49:09 +080031
Michel Jaouen24c3dd02021-08-12 15:32:13 +020032# Specifying a scope of the accepted values of MCUBOOT_ALIGN_VAL for
33# platforms requiring specific flash alignmnent
34set_property(CACHE MCUBOOT_ALIGN_VAL PROPERTY STRINGS "1;2;4;8;16;32")
35
shejia0184440112021-07-07 10:49:09 +080036set(MCUBOOT_DIRECT_XIP_REVERT ON CACHE BOOL "Enable the revert mechanism in direct-xip mode")
37set(MCUBOOT_MEASURED_BOOT ON CACHE BOOL "Add boot measurement values to boot status. Used for initial attestation token")
38set(MCUBOOT_HW_ROLLBACK_PROT ON CACHE BOOL "Enable security counter validation against non-volatile HW counters")
39set(MCUBOOT_ENC_IMAGES OFF CACHE BOOL "Enable encrypted image upgrade support")
40set(MCUBOOT_ENCRYPT_RSA OFF CACHE BOOL "Use RSA for encrypted image upgrade support")
41set(MCUBOOT_FIH_PROFILE OFF CACHE STRING "Fault injection hardening profile [OFF, LOW, MEDIUM, HIGH]")
42
43# Note - If either SIGNATURE_TYPE or KEY_LEN are changed, the entries for KEY_S
44# and KEY_NS will either have to be updated manually or removed from the cache.
45# `cmake .. -UMCUBOOT_KEY_S -UMCUBOOT_KEY_NS`. Once removed from the cache it
46# will be set to default again.
47set(MCUBOOT_SIGNATURE_TYPE "RSA" CACHE STRING "Algorithm to use for signature validation")
48set(MCUBOOT_SIGNATURE_KEY_LEN 3072 CACHE STRING "Key length to use for signature validation")
49set(MCUBOOT_KEY_S "${CMAKE_SOURCE_DIR}/bl2/ext/mcuboot/root-${MCUBOOT_SIGNATURE_TYPE}-${MCUBOOT_SIGNATURE_KEY_LEN}.pem" CACHE FILEPATH "Path to key with which to sign secure binary")
50set(MCUBOOT_KEY_NS "${CMAKE_SOURCE_DIR}/bl2/ext/mcuboot/root-${MCUBOOT_SIGNATURE_TYPE}-${MCUBOOT_SIGNATURE_KEY_LEN}_1.pem" CACHE FILEPATH "Path to key with which to sign non-secure binary")
51
52set(MCUBOOT_IMAGE_VERSION_S ${TFM_VERSION} CACHE STRING "Version number of S image")
53set(MCUBOOT_IMAGE_VERSION_NS 0.0.0 CACHE STRING "Version number of NS image")
Raef Coles91fadb92021-06-18 09:20:50 +010054set(MCUBOOT_SECURITY_COUNTER_S 1 CACHE STRING "Security counter for S image. auto sets it to IMAGE_VERSION_S")
55set(MCUBOOT_SECURITY_COUNTER_NS 1 CACHE STRING "Security counter for NS image. auto sets it to IMAGE_VERSION_NS")
shejia0184440112021-07-07 10:49:09 +080056set(MCUBOOT_S_IMAGE_MIN_VER 0.0.0+0 CACHE STRING "Minimum version of secure image required by the non-secure image for upgrade to this non-secure image. If MCUBOOT_IMAGE_NUMBER == 1 this option has no effect")
57set(MCUBOOT_NS_IMAGE_MIN_VER 0.0.0+0 CACHE STRING "Minimum version of non-secure image required by the secure image for upgrade to this secure image. If MCUBOOT_IMAGE_NUMBER == 1 this option has no effect")
Sherry Zhangbc7fe462021-11-03 16:07:00 +080058set(MCUBOOT_ENC_KEY_LEN_S 128 CACHE STRING "Length of the AES key for encrypt S image")
59set(MCUBOOT_ENC_KEY_LEN_NS 128 CACHE STRING "Length of the AES key for encrypt NS image")
shejia0184440112021-07-07 10:49:09 +080060set(MCUBOOT_MBEDCRYPTO_CONFIG_FILEPATH "${CMAKE_SOURCE_DIR}/bl2/ext/mcuboot/config/mcuboot-mbedtls-cfg.h" CACHE FILEPATH "Mbedtls config file to use with MCUboot")