Skip to content

Commit 4378c9a

Browse files
committed
trusted-firmware-m: trusted-firmware-m: bump to upstream TF-Mv1.2-RC2
Synchronize the trusted-firmware-m directory with the corresponding upstream repository up to commit 368a25f (TF-Mv1.2-RC2) Signed-off-by: Ioannis Glaropoulos <[email protected]>
1 parent 9f32f4e commit 4378c9a

File tree

4,312 files changed

+1237134
-20208
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

4,312 files changed

+1237134
-20208
lines changed

trusted-firmware-m/CMakeLists.txt

Lines changed: 33 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -5,64 +5,62 @@
55
#
66
#-------------------------------------------------------------------------------
77

8-
cmake_minimum_required(VERSION 3.13)
8+
cmake_minimum_required(VERSION 3.15)
99

10-
project("Trusted Firmware M" VERSION 1.1.0 LANGUAGES C ASM)
11-
set(TFM_VERSION ${PROJECT_VERSION})
10+
set(TFM_VERSION 1.1.0)
1211

13-
if(NOT TFM_CMAKE_TOOLCHAIN_FILE_LOADED)
14-
Message(FATAL_ERROR "Cmake toolchain file not set.")
15-
endif()
16-
17-
if(NOT ${CMAKE_GENERATOR} STREQUAL "Unix Makefiles" AND
18-
NOT ${CMAKE_GENERATOR} STREQUAL "Ninja")
19-
Message(FATAL_ERROR "Unsupported generator ${CMAKE_GENERATOR}. Hint: Try -G\"Unix Makefiles\"")
20-
endif()
12+
############################ CONFIGURATION #####################################
2113

2214
# Some compiler flags depend on the CPU / platform config. This include should
23-
# be run before anything else so the compiler can be configured properly.
15+
# be run before the toolchain file so the compiler can be configured properly.
2416
if (NOT EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/platform/ext/target/${TFM_PLATFORM}/preload.cmake)
2517
Message(FATAL_ERROR "Unsupported TFM_PLATFORM ${TFM_PLATFORM}")
2618
else()
2719
include(platform/ext/target/${TFM_PLATFORM}/preload.cmake)
2820
endif()
2921

22+
include(config/set_config.cmake)
23+
24+
if(NOT ${CMAKE_GENERATOR} STREQUAL "Unix Makefiles" AND
25+
NOT ${CMAKE_GENERATOR} STREQUAL "Ninja")
26+
Message(FATAL_ERROR "Unsupported generator ${CMAKE_GENERATOR}. Hint: Try -G\"Unix Makefiles\"")
27+
endif()
28+
3029
# The default build type is release. If debug symbols are needed then
3130
# -DCMAKE_BUILD_TYPE=debug should be used (likewise with other build types)
3231
if (NOT CMAKE_BUILD_TYPE)
3332
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "Build type: [Debug, Release, RelWithDebInfo, MinSizeRel]" FORCE)
3433
endif()
3534

36-
############################ CONFIGURATION #####################################
35+
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
3736

38-
# First load defaults.
39-
include(config/config_default.cmake)
37+
############################### Compiler configuration #########################
4038

41-
# Then load the build type config, overriding defaults and command line.
42-
string(TOLOWER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE_LOWERCASE)
43-
if (EXISTS ${CMAKE_SOURCE_DIR}/config/build_type/${CMAKE_BUILD_TYPE_LOWERCASE}.cmake)
44-
include(${CMAKE_SOURCE_DIR}/config/build_type/${CMAKE_BUILD_TYPE_LOWERCASE}.cmake)
39+
#Legacy compat option - load CMAKE_TOOLCHAIN_FILE as a TFM_TOOLCHAIN_FILE
40+
if (CMAKE_TOOLCHAIN_FILE)
41+
message(DEPRECATION "SETTING CMAKE_TOOLCHAIN_FILE is deprecated. It has been replaced with TFM_TOOLCHAIN_FILE.")
42+
message(DEPRECATION "INTERPRETING -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE} as -DTFM_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}")
43+
set(TFM_TOOLCHAIN_FILE ${CMAKE_TOOLCHAIN_FILE})
44+
unset(CMAKE_TOOLCHAIN_FILE)
4545
endif()
4646

47-
# Then load the profile, overriding build type config, defaults and command
48-
# line.
49-
if (TFM_PROFILE)
50-
include(config/profile/${TFM_PROFILE}.cmake)
47+
if (NOT IS_ABSOLUTE ${TFM_TOOLCHAIN_FILE})
48+
message(FATAL_ERROR "SETTING CMAKE_TOOLCHAIN_FILE no longer accepts relative paths. Please supply an absolute path or instead use TFM_TOOLCHAIN_FILE (which does accept relative paths)")
5149
endif()
5250

53-
# Then load the platform options, overriding profile, build type config,
54-
# defaults and command line.
55-
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/platform/ext/target/${TFM_PLATFORM}/config.cmake)
56-
include(platform/ext/target/${TFM_PLATFORM}/config.cmake)
57-
endif()
51+
include(${TFM_TOOLCHAIN_FILE})
52+
set(CMAKE_PROJECT_INCLUDE_BEFORE ${CMAKE_SOURCE_DIR}/cmake/disable_compiler_detection.cmake)
5853

59-
# Optionally load extra config, overriding platform options, overriding profile,
60-
# build type config, defaults and command line.
61-
if (TFM_EXTRA_CONFIG_PATH)
62-
include(${TFM_EXTRA_CONFIG_PATH})
63-
endif()
54+
project("Trusted Firmware M" VERSION ${TFM_VERSION} LANGUAGES C ASM)
55+
tfm_toolchain_reload_compiler()
6456

65-
list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
57+
############################ Config Check ######################################
58+
59+
include(${CMAKE_SOURCE_DIR}/config/check_config.cmake)
60+
61+
if (EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/platform/ext/target/${TFM_PLATFORM}/check_config.cmake)
62+
include(platform/ext/target/${TFM_PLATFORM}/check_config.cmake)
63+
endif()
6664

6765
################################################################################
6866

@@ -72,6 +70,7 @@ add_subdirectory(docs)
7270
if(NS)
7371
# Set to ${TFM_TEST_REPO_PATH}/app by default
7472
add_subdirectory(${TFM_APP_PATH} ${CMAKE_CURRENT_BINARY_DIR}/app)
73+
add_subdirectory(${TFM_NS_LOG_PATH} ${CMAKE_CURRENT_BINARY_DIR}/ns_log)
7574
endif()
7675
add_subdirectory(secure_fw)
7776
add_subdirectory(interface)

trusted-firmware-m/bl2/CMakeLists.txt

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#
66
#-------------------------------------------------------------------------------
77

8-
cmake_minimum_required(VERSION 3.13)
8+
cmake_minimum_required(VERSION 3.15)
99

1010
project("Bootloader" VERSION 0.1.0 LANGUAGES C ASM)
1111

@@ -31,13 +31,14 @@ target_link_libraries(bl2
3131
PRIVATE
3232
platform_bl2
3333
tfm_boot_status
34-
mbedcrypto_bl2
34+
bl2_mbedcrypto
3535
)
3636

3737
target_link_options(bl2
3838
PRIVATE
3939
$<$<C_COMPILER_ID:GNU>:-Wl,-Map=${CMAKE_BINARY_DIR}/bin/bl2.map>
4040
$<$<C_COMPILER_ID:ARMClang>:--map>
41+
$<$<C_COMPILER_ID:IAR>:--map\;${CMAKE_BINARY_DIR}/bin/bl2.map>
4142
)
4243

4344
add_convert_to_bin_target(bl2)
@@ -53,9 +54,9 @@ target_include_directories(bl2_hal
5354

5455
############################### MBEDCRYPTO #####################################
5556

56-
add_library(mbedcrypto_bl2_config INTERFACE)
57+
add_library(bl2_mbedcrypto_config INTERFACE)
5758

58-
target_compile_definitions(mbedcrypto_bl2_config
59+
target_compile_definitions(bl2_mbedcrypto_config
5960
INTERFACE
6061
$<$<STREQUAL:${MCUBOOT_SIGNATURE_TYPE},RSA>:MCUBOOT_SIGN_RSA>
6162
$<$<STREQUAL:${MCUBOOT_SIGNATURE_TYPE},RSA>:MCUBOOT_SIGN_RSA_LEN=${MCUBOOT_SIGNATURE_KEY_LEN}>
@@ -72,17 +73,14 @@ set(ENABLE_TESTING OFF)
7273
set(ENABLE_PROGRAMS OFF)
7374
set(MBEDTLS_FATAL_WARNINGS OFF)
7475
set(ENABLE_DOCS OFF)
75-
set(INSTALL_MBEDTLS OFF)
7676
set(INSTALL_MBEDTLS_HEADERS OFF)
77+
set(LIB_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/mbedcrypto/install)
7778

78-
# Current variables
79-
set(mbedcrypto_static_target mbedcrypto_bl2)
80-
set(mbedcrypto_lib_target mbedcrypto_lib_bl2)
81-
# Future variables
82-
set(lib_target lib_bl2)
83-
set(mbedcrypto_target mbedcrypto_bl2)
84-
set(mbedtls_target mbedtls_bl2)
85-
set(mbedx509_target mbedx509_bl2)
79+
set(lib_target bl2_mbedcrypto_libs)
80+
set(mbedcrypto_target bl2_mbedcrypto)
81+
set(mbedtls_target bl2_mbedtls)
82+
set(mbedx509_target bl2_mbedx509)
83+
set(MBEDTLS_TARGET_PREFIX bl2_)
8684

8785
# Mbedcrypto is quite a large lib, and it uses too much memory for it to be
8886
# reasonable to build it in debug info. As a compromise, if `debug` build type
@@ -93,17 +91,12 @@ set(CMAKE_BUILD_TYPE ${MBEDCRYPTO_BUILD_TYPE})
9391
add_subdirectory(${MBEDCRYPTO_PATH} ${CMAKE_CURRENT_BINARY_DIR}/mbedcrypto)
9492
set(CMAKE_BUILD_TYPE ${SAVED_BUILD_TYPE} CACHE STRING "Build type: [Debug, Release, RelWithDebInfo, MinSizeRel]" FORCE)
9593

96-
if(NOT TARGET mbedcrypto_bl2)
97-
message(FATAL_ERROR "Target mbedcrypto_bl2 does not exist. Have the patches in ${CMAKE_SOURCE_DIR}/lib/ext/mbedcrypto been applied to the mbedcrypto repo at ${MBEDCRYPTO_PATH} ?
94+
if(NOT TARGET bl2_mbedcrypto)
95+
message(FATAL_ERROR "Target bl2_mbedcrypto does not exist. Have the patches in ${CMAKE_SOURCE_DIR}/lib/ext/mbedcrypto been applied to the mbedcrypto repo at ${MBEDCRYPTO_PATH} ?
9896
Hint: The command might be `cd ${MBEDCRYPTO_PATH} && git apply ${CMAKE_SOURCE_DIR}/lib/ext/mbedcrypto/*.patch`")
9997
endif()
10098

101-
set_target_properties(${mbedtls_target} ${mbedx509_target}
102-
PROPERTIES
103-
EXCLUDE_FROM_ALL TRUE
104-
)
105-
106-
target_link_libraries(mbedcrypto_bl2
99+
target_link_libraries(bl2_mbedcrypto
107100
PUBLIC
108-
mbedcrypto_bl2_config
101+
bl2_mbedcrypto_config
109102
)

trusted-firmware-m/bl2/ext/mcuboot/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
#
66
#------------------------------------------------------------------------------
77

8-
cmake_minimum_required(VERSION 3.13)
8+
cmake_minimum_required(VERSION 3.15)
99
cmake_policy(SET CMP0079 NEW)
1010

1111
set(MCUBOOT_KEY_ENC "${MCUBOOT_PATH}/enc-rsa2048-pub.pem" CACHE FILEPATH "Path to key with which to encrypt binary")

trusted-firmware-m/bl2/ext/mcuboot/include/mcuboot-mbedtls-cfg.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
#define MBEDTLS_OID_C
5858
#define MBEDTLS_SHA256_C
5959
#define MBEDTLS_AES_C
60+
#define MBEDTLS_CIPHER_MODE_CTR
6061

6162
/* Save RAM by adjusting to our exact needs */
6263
#if MCUBOOT_SIGN_RSA_LEN == 3072
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#-------------------------------------------------------------------------------
2+
# Copyright (c) 2020, Arm Limited. All rights reserved.
3+
#
4+
# SPDX-License-Identifier: BSD-3-Clause
5+
#
6+
#-------------------------------------------------------------------------------
7+
8+
#Stop cmake running compiler tests.
9+
set (CMAKE_C_COMPILER_FORCED true)

trusted-firmware-m/cmake/install.cmake

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,13 @@ install(TARGETS psa_api_ns
2424
DESTINATION ${CMAKE_BINARY_DIR}/install/export/tfm/lib
2525
)
2626

27+
# export veneer lib
28+
if (NOT TFM_MULTI_CORE_TOPOLOGY)
29+
install(TARGETS tfm_s_veneers
30+
ARCHIVE
31+
DESTINATION ${CMAKE_BINARY_DIR}/install/export/tfm/lib)
32+
endif()
33+
2734
####################### export headers #########################################
2835

2936
install(FILES ${INTERFACE_INC_DIR}/psa/client.h
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#-------------------------------------------------------------------------------
2+
# Copyright (c) 2020, Arm Limited. All rights reserved.
3+
#
4+
# SPDX-License-Identifier: BSD-3-Clause
5+
#
6+
#-------------------------------------------------------------------------------
7+
8+
function(tfm_invalid_config)
9+
if (${ARGV})
10+
string (REPLACE ";" " " ARGV_STRING "${ARGV}")
11+
string (REPLACE "STREQUAL" "=" ARGV_STRING "${ARGV_STRING}")
12+
string (REPLACE "GREATER" ">" ARGV_STRING "${ARGV_STRING}")
13+
string (REPLACE "LESS" "<" ARGV_STRING "${ARGV_STRING}")
14+
string (REPLACE "VERSION_LESS" "<" ARGV_STRING "${ARGV_STRING}")
15+
string (REPLACE "EQUAL" "=" ARGV_STRING "${ARGV_STRING}")
16+
string (REPLACE "IN_LIST" "in" ARGV_STRING "${ARGV_STRING}")
17+
18+
message(FATAL_ERROR "INVALID CONFIG: ${ARGV_STRING}")
19+
endif()
20+
endfunction()
21+
22+
tfm_invalid_config(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND CMAKE_C_COMPILER_VERSION VERSION_LESS "7.3.1")
23+
24+
set (TFM_L3_PLATFORM_LISTS mps2/an521 musca_b1)
25+
26+
tfm_invalid_config(TFM_ISOLATION_LEVEL LESS 1 OR TFM_ISOLATION_LEVEL GREATER 3)
27+
tfm_invalid_config(TFM_ISOLATION_LEVEL EQUAL 3 AND NOT TFM_PLATFORM IN_LIST TFM_L3_PLATFORM_LISTS)
28+
tfm_invalid_config(TFM_ISOLATION_LEVEL GREATER 1 AND NOT TFM_PSA_API)
29+
30+
tfm_invalid_config(TFM_MULTI_CORE_TOPOLOGY AND NOT TFM_PSA_API)
31+
tfm_invalid_config(TFM_MULTI_CORE_MULTI_CLIENT_CALL AND NOT TFM_MULTI_CORE_TOPOLOGY)
32+
33+
tfm_invalid_config(TEST_S AND TEST_PSA_API)
34+
tfm_invalid_config(TEST_NS AND TEST_PSA_API)
35+
36+
tfm_invalid_config((TFM_PARTITION_PROTECTED_STORAGE AND PS_ROLLBACK_PROTECTION) AND NOT TFM_PARTITION_PLATFORM)
37+
38+
tfm_invalid_config(TEST_PSA_API STREQUAL "IPC" AND NOT TFM_PSA_API)
39+
tfm_invalid_config(TEST_PSA_API STREQUAL "CRYPTO" AND NOT TFM_PARTITION_CRYPTO)
40+
tfm_invalid_config(TEST_PSA_API STREQUAL "INITIAL_ATTESTATION" AND NOT TFM_PARTITION_INITIAL_ATTESTATION)
41+
tfm_invalid_config(TEST_PSA_API STREQUAL "INTERNAL_TRUSTED_STORAGE" AND NOT TFM_PARTITION_INTERNAL_TRUSTED_STORAGE)
42+
tfm_invalid_config(TEST_PSA_API STREQUAL "PROTECTED_STORAGE" AND NOT TFM_PARTITION_PROTECTED_STORAGE)
43+
tfm_invalid_config(TEST_PSA_API STREQUAL "STORAGE" AND NOT TFM_PARTITION_INTERNAL_TRUSTED_STORAGE)
44+
tfm_invalid_config(TEST_PSA_API STREQUAL "STORAGE" AND NOT TFM_PARTITION_PROTECTED_STORAGE)
45+
46+
tfm_invalid_config(CRYPTO_HW_ACCELERATOR_OTP_STATE AND NOT CRYPTO_HW_ACCELERATOR)
47+
tfm_invalid_config(CRYPTO_HW_ACCELERATOR_OTP_STATE AND NOT (CRYPTO_HW_ACCELERATOR_OTP_STATE STREQUAL "ENABLED" OR CRYPTO_HW_ACCELERATOR_OTP_STATE STREQUAL "PROVISIONING"))

0 commit comments

Comments
 (0)