1#------------------------------------------------------------------------------- 2# Copyright (c) 2022-2023, Arm Limited. All rights reserved. 3# 4# SPDX-License-Identifier: BSD-3-Clause 5# 6#------------------------------------------------------------------------------- 7 8if (RSS_XIP) 9set(PLATFORM_DEFAULT_IMAGE_SIGNING OFF CACHE BOOL "Use default image signing implementation") 10 11set(MCUBOOT_S_IMAGE_FLASH_AREA_NUM 10 CACHE STRING "ID of the flash area containing the primary Secure image") 12set(MCUBOOT_NS_IMAGE_FLASH_AREA_NUM 11 CACHE STRING "ID of the flash area containing the primary Non-Secure image") 13endif() 14 15set(RSS_USE_HOST_UART ON CACHE BOOL "Whether RSS should setup to use the UART from the host system") 16set(RSS_HAS_EXPANSION_PERIPHERALS OFF CACHE BOOL "Whether RSS has sub-platform specific peripherals in the expansion layer") 17 18set(CRYPTO_HW_ACCELERATOR ON CACHE BOOL "Whether to enable the crypto hardware accelerator on supported platforms") 19set(PLATFORM_DEFAULT_OTP OFF CACHE BOOL "Use trusted on-chip flash to implement OTP memory") 20set(PLATFORM_DEFAULT_CRYPTO_KEYS OFF CACHE BOOL "Use default crypto keys implementation.") 21set(PLATFORM_DEFAULT_PROVISIONING OFF CACHE BOOL "Use default provisioning implementation") 22set(TFM_BL1_DEFAULT_PROVISIONING OFF CACHE BOOL "Whether BL1_1 will use default provisioning") 23set(PLATFORM_DEFAULT_NV_SEED OFF CACHE BOOL "Use default NV seed implementation.") 24set(PLATFORM_DEFAULT_NV_COUNTERS OFF CACHE BOOL "Use default nv counter implementation.") 25set(PLATFORM_DEFAULT_ATTEST_HAL OFF CACHE BOOL "Use default attest hal implementation.") 26set(PLATFORM_DEFAULT_SYSTEM_RESET_HALT OFF CACHE BOOL "Use default system reset/halt implementation") 27set(PLATFORM_HAS_BOOT_DMA ON CACHE BOOL "Enable dma support for memory transactions for bootloader") 28set(PLATFORM_BOOT_DMA_MIN_SIZE_REQ 0x40 CACHE STRING "Minimum transaction size (in bytes) required to enable dma support for bootloader") 29set(PLATFORM_SVC_HANDLERS ON CACHE BOOL "Platform supports custom SVC handlers") 30 31set(BL1 ON CACHE BOOL "Whether to build BL1") 32set(PLATFORM_DEFAULT_BL1 ON CACHE STRING "Whether to use default BL1 or platform-specific one") 33set(TFM_BL1_SOFTWARE_CRYPTO OFF CACHE BOOL "Whether BL1_1 will use software crypto") 34set(TFM_BL1_MEMORY_MAPPED_FLASH ON CACHE BOOL "Whether BL1 can directly access flash content") 35set(TFM_BL1_PQ_CRYPTO ON CACHE BOOL "Enable LMS PQ crypto for BL2 verification. This is experimental and should not yet be used in production") 36set(TFM_BL1_DUMMY_TRNG OFF CACHE BOOL "Whether BL1_1 will use dummy TRNG") 37 38set(BL2 ON CACHE BOOL "Whether to build BL2") 39set(MCUBOOT_UPGRADE_STRATEGY "RAM_LOAD" CACHE STRING "Upgrade strategy when multiple boot images are loaded [OVERWRITE_ONLY, SWAP, DIRECT_XIP, RAM_LOAD]") 40set(MCUBOOT_IMAGE_NUMBER 4 CACHE STRING "Number of images supported by MCUBoot") 41set(DEFAULT_MCUBOOT_FLASH_MAP OFF CACHE BOOL "Whether to use the default flash map defined by TF-M project") 42set(MCUBOOT_S_IMAGE_FLASH_AREA_NUM 2 CACHE STRING "ID of the flash area containing the primary Secure image") 43set(MCUBOOT_NS_IMAGE_FLASH_AREA_NUM 3 CACHE STRING "ID of the flash area containing the primary Non-Secure image") 44set(CONFIG_TFM_BOOT_STORE_ENCODED_MEASUREMENTS OFF CACHE BOOL "Enable storing of encoded measurements in boot.") 45set(RSS_USE_HOST_FLASH ON CACHE BOOL "Enable RSS using the host flash.") 46 47set(TFM_PARTITION_CRYPTO ON CACHE BOOL "Enable Crypto partition") 48set(TFM_PARTITION_INITIAL_ATTESTATION ON CACHE BOOL "Enable Initial Attestation partition") 49set(TFM_PARTITION_PROTECTED_STORAGE OFF CACHE BOOL "Enable Protected Storage partition") 50set(TFM_PARTITION_INTERNAL_TRUSTED_STORAGE OFF CACHE BOOL "Enable Internal Trusted Storage partition") 51set(TFM_PARTITION_PLATFORM ON CACHE BOOL "Enable Platform partition") 52set(MEASURED_BOOT_HASH_ALG PSA_ALG_SHA_256 CACHE STRING "Hash algorithm used by Measured boot services") 53set(TFM_MBEDCRYPTO_PLATFORM_EXTRA_CONFIG_PATH ${CMAKE_CURRENT_LIST_DIR}/mbedtls_extra_config.h CACHE PATH "Config to append to standard Mbed Crypto config, used by platforms to cnfigure feature support") 54 55set(TFM_EXTRAS_REPO_PATH "DOWNLOAD" CACHE PATH "Path to tf-m-extras repo (or DOWNLOAD to fetch automatically") 56set(TFM_EXTRAS_REPO_VERSION "805db7b" CACHE STRING "The version of tf-m-extras to use") 57set(TFM_EXTRAS_REPO_EXTRA_PARTITIONS "measured_boot;delegated_attestation" CACHE STRING "List of extra secure partition directory name(s)") 58# Below TFM_EXTRAS_REPO_EXTRA_MANIFEST_LIST path is relative to tf-m-extras repo 59set(TFM_EXTRAS_REPO_EXTRA_MANIFEST_LIST "partitions/measured_boot/measured_boot_manifest_list.yaml;partitions/delegated_attestation/delegated_attestation_manifest_list.yaml" CACHE STRING "List of extra secure partition manifests") 60 61set(TFM_PARTITION_DELEGATED_ATTESTATION ON CACHE BOOL "Enable Delegated Attestation partition") 62 63set(ATTEST_KEY_BITS 384 CACHE STRING "The size of the initial attestation key in bits") 64set(PSA_INITIAL_ATTEST_MAX_TOKEN_SIZE 0x800 CACHE STRING "The maximum possible size of a token") 65 66set(TFM_NS_NV_COUNTER_AMOUNT 3 CACHE STRING "How many NS NV counters are enabled") 67 68set(TFM_PLAT_SPECIFIC_MULTI_CORE_COMM ON CACHE BOOL "Whether to use a platform specific inter-core communication instead of mailbox in dual-cpu topology") 69 70set(TFM_PXN_ENABLE ON CACHE BOOL "Use Privileged execute never (PXN)") 71 72set(TFM_MANIFEST_LIST "${CMAKE_CURRENT_LIST_DIR}/manifest/tfm_manifest_list.yaml" CACHE PATH "Platform specific Secure Partition manifests file") 73 74# Platform-specific configurations 75set(CONFIG_TFM_USE_TRUSTZONE ON) 76set(TFM_MULTI_CORE_TOPOLOGY ON) 77set(MCUBOOT_DATA_SHARING ON) 78set(TFM_PARTITION_MEASURED_BOOT ON) 79 80set(RSS_AMOUNT 1 CACHE STRING "Amount of RSSes in the system") 81 82set(BL1_SHARED_SYMBOLS_PATH ${CMAKE_CURRENT_LIST_DIR}/bl1/bl1_1_shared_symbols.txt CACHE FILEPATH "Path to list of symbols that BL1_1 that can be referenced from BL1_2") 83set(RSS_RTL_KEY_PATH ${CMAKE_CURRENT_LIST_DIR}/provisioning/tci_krtl.bin CACHE FILEPATH "Path to binary RTL key for encrypting provisioning bundles") 84 85set(RSS_ENCRYPTED_OTP_KEYS ON CACHE BOOL "Whether keys in OTP are encrypted") 86