diff options
author | Michel Jaouen <michel.jaouen@st.com> | 2021-07-12 23:46:00 +0200 |
---|---|---|
committer | David Hu <david.hu@arm.com> | 2021-07-16 11:49:26 +0200 |
commit | 42f7e6050bf8991c982bdb7de8dd9edc9852fe27 (patch) | |
tree | 52e7b3457e949a57f3f9df1af572634b38424896 | |
parent | 82f770ad38ec9f86b642b2c4dfc01d42f7b8bd93 (diff) | |
download | trusted-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
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 */ |