Skip to content

Commit 1db5745

Browse files
committed
TF-M WIP
Signed-off-by: Tomi Fontanilles <tomi.fontanilles@nordicsemi.no>
1 parent 454d5f1 commit 1db5745

13 files changed

Lines changed: 34 additions & 58 deletions

File tree

modules/trusted-firmware-m/tfm_boards/external_core.cmake

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,25 +27,12 @@ if(TARGET tfm_api_ns)
2727
)
2828
endif()
2929

30-
# Duplicates that can be removed
31-
#set(TFM_MBEDCRYPTO_CONFIG_PATH ${CONFIG_MBEDTLS_CONFIG_FILE})
32-
#set(TFM_MBEDCRYPTO_PSA_CRYPTO_CONFIG_PATH ${CONFIG_TF_PSA_CRYPTO_CONFIG_FILE})
33-
#set(TFM_MBEDCRYPTO_PSA_CRYPTO_USER_CONFIG_PATH ${CONFIG_TF_PSA_CRYPTO_USER_CONFIG_FILE})
34-
35-
# Note: This is a duplicate from nrf_security/CMakeLists.txt
36-
# with additions of the install-target for Oberon-psa-core includes
3730
if(TARGET psa_interface)
3831
set(EXTERNAL_CRYPTO_CORE_HANDLED_PSA_INTERFACE True)
32+
include(${NRF_SECURITY_DIR}/cmake/psa_interface_shared_properties.cmake)
3933
target_include_directories(psa_interface
4034
INTERFACE
4135
${NRF_SECURITY_DIR}/include
42-
$<BUILD_INTERFACE:${ZEPHYR_OBERON_PSA_CRYPTO_MODULE_DIR}/include>
43-
# Oberon library
44-
${ZEPHYR_OBERON_PSA_CRYPTO_MODULE_DIR}/library
45-
# Mbed TLS (mbedcrypto) PSA headers
46-
${ZEPHYR_MBEDTLS_MODULE_DIR}/library
47-
${ZEPHYR_MBEDTLS_MODULE_DIR}/include
48-
${ZEPHYR_MBEDTLS_MODULE_DIR}/include/library
4936
)
5037
endif()
5138

subsys/nrf_security/CMakeLists.txt

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ if(CONFIG_BUILD_WITH_TFM OR CONFIG_PSA_SSF_CRYPTO_CLIENT)
4444

4545
# Add replacement platform.c for NS build
4646
list(APPEND src_zephyr
47-
${ZEPHYR_MBEDTLS_MODULE_DIR}/library/platform.c
47+
${ZEPHYR_OBERON_PSA_CRYPTO_MODULE_DIR}/platform/platform.c
4848
)
4949

5050
# The current version of the mbed TLS deliverables requires mbedcrypto built
@@ -54,10 +54,7 @@ if(CONFIG_BUILD_WITH_TFM OR CONFIG_PSA_SSF_CRYPTO_CLIENT)
5454

5555
get_cmake_property(all_vars VARIABLES)
5656

57-
# 1. Non-secure should not build the PSA core or drivers
58-
set(CONFIG_MBEDTLS_PSA_CRYPTO_C False)
59-
60-
# 2. Enable OBERON_BACKEND, disable CC3XX_BACKEND
57+
# Enable OBERON_BACKEND, disable CC3XX_BACKEND
6158
set(CONFIG_NRF_OBERON True)
6259
set(CONFIG_OBERON_BACKEND True)
6360
set(CONFIG_CC3XX_BACKEND False)
@@ -66,7 +63,7 @@ if(CONFIG_BUILD_WITH_TFM OR CONFIG_PSA_SSF_CRYPTO_CLIENT)
6663
set(CONFIG_NRF_CC3XX_PLATFORM False)
6764
set(CONFIG_PSA_CRYPTO_DRIVER_CC3XX False)
6865

69-
# 3. Special case: _ALT in CC3XX, not in OBERON (set to False)
66+
# Special case: _ALT in CC3XX, not in OBERON (set to False)
7067
set(CONFIG_MBEDTLS_AES_ALT False)
7168
set(CONFIG_MBEDTLS_CCM_ALT False)
7269
set(CONFIG_MBEDTLS_CHACHAPOLY_ALT False)
@@ -76,11 +73,11 @@ if(CONFIG_BUILD_WITH_TFM OR CONFIG_PSA_SSF_CRYPTO_CLIENT)
7673
set(CONFIG_MBEDTLS_DHM_ALT False)
7774
set(CONFIG_MBEDTLS_RSA_ALT False)
7875

79-
# 4. Special case: _ALT in ECJPAKE (only in OBERON, set to True)
80-
# Only has effect if ECJPAKE is enabled
76+
# Special case: _ALT in ECJPAKE (only in OBERON, set to True)
77+
# Only has effect if ECJPAKE is enabled
8178
set(CONFIG_MBEDTLS_ECJPAKE_ALT True)
8279

83-
# 5. Special case: Handle platform specific configurations
80+
# Special case: Handle platform specific configurations
8481
set(CONFIG_MBEDTLS_PLATFORM_EXIT_ALT False)
8582
set(CONFIG_MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT False)
8683
else()
@@ -112,14 +109,7 @@ target_compile_definitions(psa_crypto_library_config
112109
# The name and intent of this comes from TF-M distribution
113110
add_library(psa_interface INTERFACE)
114111

115-
target_include_directories(psa_interface
116-
INTERFACE
117-
${ZEPHYR_OBERON_PSA_CRYPTO_MODULE_DIR}/include
118-
${ZEPHYR_OBERON_PSA_CRYPTO_MODULE_DIR}/library
119-
${ZEPHYR_OBERON_PSA_CRYPTO_MODULE_DIR}/core/
120-
${ZEPHYR_OBERON_PSA_CRYPTO_MODULE_DIR}/dispatch/
121-
${ZEPHYR_OBERON_PSA_CRYPTO_MODULE_DIR}/platform/
122-
)
112+
include(cmake/psa_interface_shared_properties.cmake)
123113

124114
# Finally adding the crypto lib
125115
add_subdirectory(${ZEPHYR_NRFXLIB_MODULE_DIR}/crypto crypto_copy)

subsys/nrf_security/Kconfig.legacy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ config MBEDTLS_PLATFORM_FPRINTF_ALT
5555

5656
config MBEDTLS_PLATFORM_PRINTF_ALT
5757
bool
58+
default y if BUILD_WITH_TFM
5859

5960
config MBEDTLS_PLATFORM_SNPRINTF_ALT
6061
bool

subsys/nrf_security/cmake/generate_configs.cmake

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,6 @@ macro(generate_mbedcrypto_library_configs)
8585
kconfig_backup_current_config(CONFIG_MBEDTLS_PSA_CRYPTO_C)
8686
kconfig_backup_current_config(CONFIG_MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER)
8787
kconfig_backup_current_config(CONFIG_MBEDTLS_PSA_CRYPTO_SPM)
88-
kconfig_backup_current_config(CONFIG_MBEDTLS_PLATFORM_PRINTF_ALT)
8988
kconfig_backup_current_config(CONFIG_MBEDTLS_THREADING_C)
9089
kconfig_backup_current_config(CONFIG_MBEDTLS_THREADING_ALT)
9190
kconfig_backup_current_config(CONFIG_MBEDTLS_MEMORY_BUFFER_ALLOC_C)
@@ -108,8 +107,6 @@ macro(generate_mbedcrypto_library_configs)
108107
set(CONFIG_MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER True)
109108
# CONFIG_MBEDTLS_PSA_CRYPTO_SPM must be set for the library build in TF-M
110109
set(CONFIG_MBEDTLS_PSA_CRYPTO_SPM True)
111-
# CONFIG_MBEDTLS_PLATFORM_PRINTF_ALT must be set for the library build in TF-M
112-
set(CONFIG_MBEDTLS_PLATFORM_PRINTF_ALT True)
113110
# Disable threading for the PSA interface used in TF-M build (NS and S image)
114111
set(CONFIG_MBEDTLS_THREADING_C False)
115112
set(CONFIG_MBEDTLS_THREADING_ALT False)
@@ -142,7 +139,6 @@ macro(generate_mbedcrypto_library_configs)
142139
kconfig_restore_backup_config(CONFIG_MBEDTLS_PSA_CRYPTO_C)
143140
kconfig_restore_backup_config(CONFIG_MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER)
144141
kconfig_restore_backup_config(CONFIG_MBEDTLS_PSA_CRYPTO_SPM)
145-
kconfig_restore_backup_config(CONFIG_MBEDTLS_PLATFORM_PRINTF_ALT)
146142
kconfig_restore_backup_config(CONFIG_MBEDTLS_THREADING_C)
147143
kconfig_restore_backup_config(CONFIG_MBEDTLS_THREADING_ALT)
148144
kconfig_restore_backup_config(CONFIG_MBEDTLS_MEMORY_BUFFER_ALLOC_C)

subsys/nrf_security/cmake/nrf_config.cmake

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ kconfig_check_and_set_base(MBEDTLS_THREADING_ALT)
1919
# Platform configurations for _ALT defines
2020
kconfig_check_and_set_base(MBEDTLS_PLATFORM_EXIT_ALT)
2121
kconfig_check_and_set_base(MBEDTLS_PLATFORM_FPRINTF_ALT)
22-
kconfig_check_and_set_base(MBEDTLS_PLATFORM_PRINTF_ALT)
2322
kconfig_check_and_set_base(MBEDTLS_PLATFORM_SNPRINTF_ALT)
2423
kconfig_check_and_set_base(MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT)
2524
kconfig_check_and_set_base(MBEDTLS_ENTROPY_HARDWARE_ALT)

subsys/nrf_security/cmake/psa_crypto_config.cmake

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ kconfig_check_and_set_base(MBEDTLS_PLATFORM_C)
1919

2020
# TF-M
2121
kconfig_check_and_set_base_to_one(MBEDTLS_PSA_CRYPTO_SPM)
22+
kconfig_check_and_set_base_to_one(MBEDTLS_PLATFORM_PRINTF_ALT)
2223

2324
# Convert CRACEN driver configuration
2425
kconfig_check_and_set_base_to_one(PSA_CRYPTO_DRIVER_CRACEN)
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#
2+
# Copyright (c) 2026 Nordic Semiconductor
3+
#
4+
# SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
5+
#
6+
7+
target_include_directories(psa_interface
8+
INTERFACE
9+
${ZEPHYR_OBERON_PSA_CRYPTO_MODULE_DIR}/include
10+
${ZEPHYR_OBERON_PSA_CRYPTO_MODULE_DIR}/library
11+
${ZEPHYR_OBERON_PSA_CRYPTO_MODULE_DIR}/core
12+
${ZEPHYR_OBERON_PSA_CRYPTO_MODULE_DIR}/dispatch
13+
${ZEPHYR_OBERON_PSA_CRYPTO_MODULE_DIR}/platform
14+
)

subsys/nrf_security/configs/nrf-config.h.template

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
/* Platform configurations for _ALT defines */
2626
#cmakedefine MBEDTLS_PLATFORM_EXIT_ALT
2727
#cmakedefine MBEDTLS_PLATFORM_FPRINTF_ALT
28-
#cmakedefine MBEDTLS_PLATFORM_PRINTF_ALT
2928
#cmakedefine MBEDTLS_PLATFORM_SNPRINTF_ALT
3029
#cmakedefine MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT
3130
#cmakedefine MBEDTLS_ENTROPY_HARDWARE_ALT

subsys/nrf_security/configs/psa_crypto_config.h.template

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
/* TF-M */
2424
#cmakedefine MBEDTLS_PSA_CRYPTO_SPM
25+
#cmakedefine MBEDTLS_PLATFORM_PRINTF_ALT
2526

2627
/* RSA */
2728
#cmakedefine PSA_MAX_RSA_KEY_BITS @PSA_MAX_RSA_KEY_BITS@

subsys/nrf_security/src/CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ target_include_directories(psa_crypto_config
2828
INTERFACE
2929
${PSA_CRYPTO_CONFIG_INTERFACE_PATH}
3030
${NRF_SECURITY_DIR}/include
31+
${ZEPHYR_OBERON_PSA_CRYPTO_MODULE_DIR}/core
3132
)
3233

3334
# Add fallback include folders from Mbed TLS for driver context structures
@@ -171,8 +172,7 @@ endif()
171172
# Add drivers (for legacy and PSA crypto build)
172173
add_subdirectory(drivers)
173174

174-
# Add legacy Mbed TLS APIs
175-
if(CONFIG_MBEDTLS_LEGACY_CRYPTO_C OR (CONFIG_NRF_OBERON AND CONFIG_BUILD_WITH_TFM))
175+
if(CONFIG_MBEDTLS_LEGACY_CRYPTO_C)
176176
add_subdirectory(legacy)
177177
endif()
178178

0 commit comments

Comments
 (0)