aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichel Jaouen <michel.jaouen@st.com>2021-07-12 23:46:00 +0200
committerDavid Hu <david.hu@arm.com>2021-07-16 11:49:26 +0200
commit42f7e6050bf8991c982bdb7de8dd9edc9852fe27 (patch)
tree52e7b3457e949a57f3f9df1af572634b38424896
parent82f770ad38ec9f86b642b2c4dfc01d42f7b8bd93 (diff)
downloadtrusted-firmware-m-42f7e6050bf8991c982bdb7de8dd9edc9852fe27.tar.gz
Platform: stm: Fix for TF-M small profile support
Since platform is not built in small profile, Error_Handler defined in platform service and used only by low_level_rng is removed. Since stm platform does not support for now MBEDTLS_AES_SETKEY_DEC_ALT and MBEDTLS_AES_SETKEY_DEC_ALT beeing defined in small profile, they are undefined. Signed-off-by: Michel Jaouen <michel.jaouen@st.com> Change-Id: I32c4808865558a6ce42105ef978b53740e8d52d6
-rw-r--r--platform/ext/target/stm/common/stm32l5xx/Native_Driver/low_level_rng.c12
-rw-r--r--platform/ext/target/stm/common/stm32l5xx/secure/tfm_platform_system.c6
-rw-r--r--platform/ext/target/stm/nucleo_l552ze_q/accelerator/mbedtls_accelerator_config.h2
-rw-r--r--platform/ext/target/stm/stm32l562e_dk/accelerator/mbedtls_accelerator_config.h3
4 files changed, 12 insertions, 11 deletions
diff --git a/platform/ext/target/stm/common/stm32l5xx/Native_Driver/low_level_rng.c b/platform/ext/target/stm/common/stm32l5xx/Native_Driver/low_level_rng.c
index 7c1c4b25e5..1799d02283 100644
--- a/platform/ext/target/stm/common/stm32l5xx/Native_Driver/low_level_rng.c
+++ b/platform/ext/target/stm/common/stm32l5xx/Native_Driver/low_level_rng.c
@@ -20,7 +20,6 @@
*/
#include "low_level_rng.h"
#include "stm32l5xx_hal.h"
-extern void Error_Handler(void);
static RNG_HandleTypeDef handle;
static uint8_t users = 0;
@@ -39,13 +38,13 @@ static uint8_t atomic_incr_u8(__IO uint8_t *valuePtr, uint8_t delta)
return newValue;
}
-static void RNG_Init(void)
+static int RNG_Init(void)
{
uint32_t dummy;
/* We're only supporting a single user of RNG */
if (atomic_incr_u8(&users, 1) > 1)
{
- Error_Handler();
+ return -1;
}
RCC_PeriphCLKInitTypeDef PeriphClkInitStruct;
@@ -55,7 +54,8 @@ static void RNG_Init(void)
PeriphClkInitStruct.RngClockSelection = RCC_RNGCLKSOURCE_MSI;
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{
- Error_Handler();
+ users=0;
+ return -1;
}
/* RNG Peripheral clock enable */
@@ -70,6 +70,7 @@ static void RNG_Init(void)
/* first random number generated after setting the RNGEN bit should not be used */
HAL_RNG_GenerateRandomNumber(&handle, &dummy);
+ return 0;
}
static void RNG_GetBytes(uint8_t *output, size_t length, size_t *output_length)
@@ -116,7 +117,8 @@ static void RNG_DeInit(void)
/* interface for mbed-crypto */
int mbedtls_hardware_poll(void *data, unsigned char *output, size_t len, size_t *olen)
{
- RNG_Init();
+ if (RNG_Init())
+ return -1;
RNG_GetBytes(output, len, olen);
RNG_DeInit();
if (*olen != len)
diff --git a/platform/ext/target/stm/common/stm32l5xx/secure/tfm_platform_system.c b/platform/ext/target/stm/common/stm32l5xx/secure/tfm_platform_system.c
index ee68f7a9dd..c3615f8fd0 100644
--- a/platform/ext/target/stm/common/stm32l5xx/secure/tfm_platform_system.c
+++ b/platform/ext/target/stm/common/stm32l5xx/secure/tfm_platform_system.c
@@ -38,9 +38,3 @@ enum tfm_platform_err_t tfm_platform_hal_ioctl(tfm_platform_ioctl_req_t request,
return TFM_PLATFORM_ERR_NOT_SUPPORTED;
}
-
-void Error_Handler(void)
-{
- /* Reset the system */
- NVIC_SystemReset();
-}
diff --git a/platform/ext/target/stm/nucleo_l552ze_q/accelerator/mbedtls_accelerator_config.h b/platform/ext/target/stm/nucleo_l552ze_q/accelerator/mbedtls_accelerator_config.h
index bb2125f3ac..fe13fc6b55 100644
--- a/platform/ext/target/stm/nucleo_l552ze_q/accelerator/mbedtls_accelerator_config.h
+++ b/platform/ext/target/stm/nucleo_l552ze_q/accelerator/mbedtls_accelerator_config.h
@@ -29,6 +29,8 @@ extern "C" {
#define MBEDTLS_SHA256_ALT
#endif /* MBEDTLS_SHA256_C */
+#undef MBEDTLS_AES_SETKEY_DEC_ALT
+#undef MBEDTLS_AES_DECRYPT_ALT
#ifdef __cplusplus
}
#endif /* __cplusplus */
diff --git a/platform/ext/target/stm/stm32l562e_dk/accelerator/mbedtls_accelerator_config.h b/platform/ext/target/stm/stm32l562e_dk/accelerator/mbedtls_accelerator_config.h
index 89473e4b4a..c93f90a446 100644
--- a/platform/ext/target/stm/stm32l562e_dk/accelerator/mbedtls_accelerator_config.h
+++ b/platform/ext/target/stm/stm32l562e_dk/accelerator/mbedtls_accelerator_config.h
@@ -53,6 +53,9 @@ extern "C" {
#define MBEDTLS_MD5_ALT
#endif /* MBEDTLS_ECP_C && MBEDTLS_MD_C */
+#undef MBEDTLS_AES_SETKEY_DEC_ALT
+#undef MBEDTLS_AES_DECRYPT_ALT
+
#ifdef __cplusplus
}
#endif /* __cplusplus */