Skip to content

Commit d4144fe

Browse files
committed
STM32H5: update for TF-PSA-Crypto 1.0.0
deactivate hardware crypto acceleration Change-Id: I398f245445e746161196d5ab276db6ec4625f462 Signed-off-by: Ronan Gabou <ronan.gabou@st.com>
1 parent 35aa1cd commit d4144fe

7 files changed

Lines changed: 76 additions & 157 deletions

File tree

platform/ext/target/stm/common/stm32h5xx/CMakeLists.txt

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,21 @@ if(BL2)
154154
${STM_COMMON_DIR}/hal/Native_Driver/low_level_rng.c
155155
)
156156

157+
# Add sources TF-PSA-Crypto for BL2
158+
target_sources(bl2
159+
PRIVATE
160+
${TF_PSA_CRYPTO_PATH}/drivers/builtin/src/constant_time.c
161+
${TF_PSA_CRYPTO_PATH}/drivers/builtin/src/cipher.c
162+
${TF_PSA_CRYPTO_PATH}/drivers/builtin/src/cipher_wrap.c
163+
${TF_PSA_CRYPTO_PATH}/drivers/builtin/src/psa_crypto_cipher.c
164+
)
165+
166+
# for BL2 Crypto: provide mbedtls_psa_external_get_random()
167+
target_sources(bl2_crypto
168+
PRIVATE
169+
${STM_COMMON_DIR}/hal/accelerator/rng.c
170+
)
171+
157172
target_compile_options(platform_bl2
158173
PUBLIC
159174
${COMPILER_CMSE_FLAG}

platform/ext/target/stm/stm32h573i_dk/accelerator/CMakeLists.txt

Lines changed: 14 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -7,53 +7,27 @@
77
#-------------------------------------------------------------------------------
88

99
############################ Crypto Service ####################################
10-
if(TFM_PARTITION_CRYPTO)
10+
11+
if (TFM_PARTITION_CRYPTO)
1112
target_sources(crypto_service_crypto_hw
1213
PRIVATE
13-
${PLATFORM_DIR}/ext/target/stm/common/hal/accelerator/rsa_alt.c
14-
${PLATFORM_DIR}/ext/target/stm/common/hal/accelerator/ecdsa_alt.c
15-
${PLATFORM_DIR}/ext/target/stm/common/hal/accelerator/gcm_alt.c
16-
${PLATFORM_DIR}/ext/target/stm/common/hal/accelerator/aes_alt.c
17-
${PLATFORM_DIR}/ext/target/stm/common/hal/accelerator/ccm_alt.c
18-
${PLATFORM_DIR}/ext/target/stm/common/hal/accelerator/ecp_alt.c
19-
${PLATFORM_DIR}/ext/target/stm/common/hal/accelerator/ecp_curves_alt.c
20-
${PLATFORM_DIR}/ext/target/stm/common/hal/accelerator/sha1_alt.c
21-
${PLATFORM_DIR}/ext/target/stm/common/hal/accelerator/sha256_alt.c
2214
${PLATFORM_DIR}/ext/target/stm/common/hal/accelerator/stm.c
15+
${PLATFORM_DIR}/ext/target/stm/common/hal/accelerator/rng.c
2316
)
2417

2518
target_include_directories(crypto_service_crypto_hw
26-
PRIVATE
27-
${PLATFORM_DIR}/ext/target/${TFM_PLATFORM}/accelerator/
19+
PUBLIC
20+
${PLATFORM_DIR}/ext/target/${TFM_PLATFORM}/accelerator/include
2821
${PLATFORM_DIR}/ext/target/stm/common/hal/accelerator/
22+
${PLATFORM_DIR}/ext/target/stm/common/hal/Native_Driver/
2923
${PLATFORM_DIR}/ext/target/${TFM_PLATFORM}/include/
3024
${PLATFORM_DIR}/ext/target/stm/common/stm32h5xx/hal/Inc/
31-
${PLATFORM_DIR}/ext/target/stm/common/stm32h5xx/Device/Include/
32-
${PLATFORM_DIR}/include
33-
${CMAKE_BINARY_DIR}/generated
34-
${CMAKE_SOURCE_DIR}/interface/include
35-
)
36-
target_include_directories(crypto_service_tfpsacrypto
37-
PUBLIC
38-
${PLATFORM_DIR}/ext/target/${TFM_PLATFORM}/accelerator/
39-
${PLATFORM_DIR}/ext/target/stm/common/hal/accelerator/
40-
${PLATFORM_DIR}/ext/target/${TFM_PLATFORM}/include/
41-
${PLATFORM_DIR}/ext/target/stm/common/stm32h5xx/hal/Inc/
42-
${PLATFORM_DIR}/ext/target/stm/common/stm32h5xx/Device/Include/
43-
${PLATFORM_DIR}/include
25+
${PLATFORM_DIR}/ext/target/stm/common/stm32h5xx/Device/Include/
4426
)
4527

46-
target_include_directories(psa_crypto_config
47-
INTERFACE
48-
$<BUILD_INTERFACE:${PLATFORM_DIR}/ext/target/${TFM_PLATFORM}/accelerator/>
49-
)
50-
51-
target_compile_definitions(crypto_service_crypto_hw
52-
PRIVATE
53-
ST_HW_CONTEXT_SAVING
54-
$<$<AND:$<BOOL:${TFM_PARTITION_PROTECTED_STORAGE}>,$<STREQUAL:${PS_CRYPTO_AEAD_ALG},PSA_ALG_GCM>>:BUILD_CRYPTO_TFM>
55-
INTERFACE
56-
$<$<AND:$<BOOL:${TFM_PARTITION_PROTECTED_STORAGE}>,$<STREQUAL:${PS_CRYPTO_AEAD_ALG},PSA_ALG_GCM>>:PSA_WANT_ALG_GCM>
28+
target_include_directories(platform_s
29+
PUBLIC
30+
${PLATFORM_DIR}/ext/target/${TFM_PLATFORM}/accelerator/include
5731
)
5832

5933
target_link_libraries(crypto_service_crypto_hw
@@ -63,18 +37,10 @@ if(TFM_PARTITION_CRYPTO)
6337
cmsis
6438
)
6539

66-
target_link_libraries(crypto_service_tfpsacrypto
67-
PUBLIC
68-
cmsis
69-
)
70-
71-
target_link_libraries(platform_s
72-
PRIVATE
73-
crypto_service_crypto_hw
40+
# The config files need to access crypto accelerator configurations.
41+
target_include_directories(psa_crypto_library_config
42+
INTERFACE
43+
${PLATFORM_DIR}/ext/target/${TFM_PLATFORM}/accelerator/include
7444
)
7545

76-
target_link_libraries(crypto_service_crypto_hw
77-
INTERFACE
78-
tfm_config
79-
)
8046
endif()

platform/ext/target/stm/stm32h573i_dk/accelerator/crypto_accelerator_config.h

Lines changed: 0 additions & 25 deletions
This file was deleted.
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
2+
/*
3+
* SPDX-FileCopyrightText: Copyright The TrustedFirmware-M Contributors
4+
* Copyright (c) 2026 STMicroelectronics. All rights reserved.
5+
*
6+
* SPDX-License-Identifier: BSD-3-Clause
7+
*
8+
*/
9+
#ifndef __TF_PSA_CRYPTO_ACCELERATOR_CONFIG_H__
10+
#define __TF_PSA_CRYPTO_ACCELERATOR_CONFIG_H__
11+
12+
#ifdef __cplusplus
13+
extern "C" {
14+
#endif /* __cplusplus */
15+
16+
/* RNG Config */
17+
#undef MBEDTLS_ENTROPY_NV_SEED
18+
#undef MBEDTLS_ENTROPY_NO_SOURCES_OK
19+
#define MBEDTLS_PSA_CRYPTO_EXTERNAL_RNG
20+
21+
/****************************************************************/
22+
/* Require built-in implementations based on PSA requirements */
23+
/****************************************************************/
24+
25+
#ifdef __cplusplus
26+
}
27+
#endif /* __cplusplus */
28+
29+
#endif /* __TF_PSA_CRYPTO_ACCELERATOR_CONFIG_H__ */

platform/ext/target/stm/stm32h573i_dk/accelerator/mbedtls_accelerator_config.h

Lines changed: 0 additions & 67 deletions
This file was deleted.

platform/ext/target/stm/stm32h573i_dk/config.cmake

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,17 @@ set(BL2_HEADER_SIZE 0x400 CACHE STRING "Header s
1212
set(BL2_TRAILER_SIZE 0x2000 CACHE STRING "Trailer size")
1313
set(MCUBOOT_ALIGN_VAL 16 CACHE STRING "Align option to build image with imgtool")
1414
set(MCUBOOT_UPGRADE_STRATEGY "SWAP_USING_SCRATCH" CACHE STRING "Upgrade strategy for images")
15+
set(MCUBOOT_USE_PSA_CRYPTO ON CACHE BOOL "Enable the cryptographic abstraction layer to use PSA Crypto APIs")
1516
set(TFM_PARTITION_PLATFORM ON CACHE BOOL "Enable platform partition")
1617
set(MCUBOOT_DATA_SHARING ON CACHE BOOL "Enable Data Sharing")
1718
set(MCUBOOT_BOOTSTRAP ON CACHE BOOL "Allow initial state with images in secondary slots(empty primary slots)")
18-
set(MCUBOOT_ENC_IMAGES ON CACHE BOOL "Enable encrypted image upgrade support")
19-
set(MCUBOOT_ENCRYPT_RSA ON CACHE BOOL "Use RSA for encrypted image upgrade support")
19+
set(MCUBOOT_ENC_IMAGES OFF CACHE BOOL "Enable encrypted image upgrade support")
20+
set(MCUBOOT_ENCRYPT_RSA OFF CACHE BOOL "Use RSA for encrypted image upgrade support")
2021
################################## Dependencies ########################################
2122
set(TFM_PARTITION_INTERNAL_TRUSTED_STORAGE ON CACHE BOOL "Enable Internal Trusted Storage partition")
2223
set(TFM_PARTITION_CRYPTO ON CACHE BOOL "Enable Crypto partition")
2324
set(CRYPTO_HW_ACCELERATOR ON CACHE BOOL "Whether to enable the crypto hardware accelerator on supported platforms")
2425
set(TF_PSA_CRYPTO_BUILD_TYPE minsizerel CACHE STRING "Build type of TF-PSA-Crypto library")
25-
set(PS_CRYPTO_AEAD_ALG PSA_ALG_GCM CACHE STRING "The AEAD algorithm to use for authenticated encryption in Protected Storage")
2626
set(MCUBOOT_FIH_PROFILE LOW CACHE STRING "Fault injection hardening profile [OFF, LOW, MEDIUM, HIGH]")
2727
################################## LOG LEVEL ###########################################
2828
set(TFM_SPM_LOG_LEVEL LOG_LEVEL_INFO CACHE STRING "Set default SPM log level as INFO level")

platform/ext/target/stm/stm32h573i_dk/include/flash_layout.h

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,20 @@
2525
*/
2626
/* Flash layout for stm32h573i_dk with BL2 (multiple image boot):
2727
*
28-
* 0x0000_0000 SCRATCH (40KB)
29-
* 0x0001_0000 BL2 - counters(16 KB)
30-
* 0x0001_4000 BL2 - MCUBoot (48 KB)
28+
* 0x0000_0000 SCRATCH (48 KB)
29+
* 0x0000_C000 BL2 - counters(16 KB)
30+
* 0x0001_0000 BL2 - MCUBoot (96 KB)
3131
* 0x0002_8000 OTP Write Protect (16 KB)
32-
* 0x0003_2000 NV counters area (16 KB)
33-
* 0x0003_6000 Secure Storage Area (16 KB)
34-
* 0x0003_A000 Internal Trusted Storage Area (16 KB)
35-
* 0x0003_E000 Secure image primary slot (100 KB)
36-
* 0x0007_E000 Non-secure image primary slot (280 KB)
37-
* 0x000C_E000 Secure image secondary slot (100 KB)
38-
* 0x0010_E000 Non-secure image secondary slot (280 KB)
32+
* 0x0002_C000 NV counters area (16 KB)
33+
* 0x0003_0000 Secure Storage Area (16 KB)
34+
* 0x0003_4000 Internal Trusted Storage Area (16 KB)
35+
* 0x0003_8000 Secure image primary slot (320 KB)
36+
* 0x0008_8000 Non-secure image primary slot (576 KB)
37+
* 0x0011_8000 Secure image secondary slot (320 KB)
38+
* 0x0016_8000 Non-secure image secondary slot (576 KB)
39+
* 0x001f_8000 Non-secure free data (32 KB)
3940
*
40-
* Bl2 binary is written at 0x1_2000:
41+
* Bl2 binary is written at 0x1_0000:
4142
* it contains bl2_counter init value, OTP write protect, NV counters area init.
4243
*/
4344

@@ -58,7 +59,7 @@
5859

5960
/* scratch area */
6061
#define FLASH_AREA_SCRATCH_OFFSET (0x0)
61-
#define FLASH_AREA_SCRATCH_SIZE (0xC000) /* 40 KB */
62+
#define FLASH_AREA_SCRATCH_SIZE (0xC000) /* 48 KB */
6263

6364
/* control scratch area */
6465
#if (FLASH_AREA_SCRATCH_OFFSET % FLASH_AREA_IMAGE_SECTOR_SIZE) != 0
@@ -153,8 +154,8 @@
153154

154155
/* Secure image primary slot */
155156
#define FLASH_AREA_0_ID (1)
156-
#define FLASH_AREA_0_DEVICE_ID (FLASH_DEVICE_ID-FLASH_DEVICE_ID)
157-
#define FLASH_AREA_0_OFFSET (FLASH_ITS_AREA_OFFSET+FLASH_ITS_AREA_SIZE)
157+
#define FLASH_AREA_0_DEVICE_ID (0)
158+
#define FLASH_AREA_0_OFFSET (FLASH_AREA_BEGIN_OFFSET)
158159
/* Control Secure image primary slot */
159160
#if (FLASH_AREA_0_OFFSET % FLASH_AREA_IMAGE_SECTOR_SIZE) != 0
160161
#error "FLASH_AREA_0_OFFSET not aligned on FLASH_AREA_IMAGE_SECTOR_SIZE"

0 commit comments

Comments
 (0)