17d37aa17SJuan Castillo /* 266b4c166Sdp-arm * Copyright (c) 2015-2017, ARM Limited and Contributors. All rights reserved. 37d37aa17SJuan Castillo * 482cb2c1aSdp-arm * SPDX-License-Identifier: BSD-3-Clause 57d37aa17SJuan Castillo */ 67d37aa17SJuan Castillo 7ab1794f5SAntonio Nino Diaz #include <debug.h> 87d37aa17SJuan Castillo 97d37aa17SJuan Castillo /* mbed TLS headers */ 10649dbf6fSJuan Castillo #include <mbedtls/memory_buffer_alloc.h> 11ab1794f5SAntonio Nino Diaz #include <mbedtls/platform.h> 127d37aa17SJuan Castillo 137d37aa17SJuan Castillo /* 147d37aa17SJuan Castillo * mbed TLS heap 157d37aa17SJuan Castillo */ 16b1883510SDavid Cunado #if (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_ECDSA) 177d37aa17SJuan Castillo #define MBEDTLS_HEAP_SIZE (14*1024) 18b1883510SDavid Cunado #elif (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_RSA) 19*38aacad3SSoby Mathew #define MBEDTLS_HEAP_SIZE (7*1024) 207d37aa17SJuan Castillo #endif 217d37aa17SJuan Castillo static unsigned char heap[MBEDTLS_HEAP_SIZE]; 227d37aa17SJuan Castillo 237d37aa17SJuan Castillo /* 247d37aa17SJuan Castillo * mbed TLS initialization function 257d37aa17SJuan Castillo */ 267d37aa17SJuan Castillo void mbedtls_init(void) 277d37aa17SJuan Castillo { 287d37aa17SJuan Castillo static int ready; 297d37aa17SJuan Castillo 307d37aa17SJuan Castillo if (!ready) { 317d37aa17SJuan Castillo /* Initialize the mbed TLS heap */ 32649dbf6fSJuan Castillo mbedtls_memory_buffer_alloc_init(heap, MBEDTLS_HEAP_SIZE); 33ab1794f5SAntonio Nino Diaz 34ab1794f5SAntonio Nino Diaz /* Use reduced version of snprintf to save space. */ 35ab1794f5SAntonio Nino Diaz mbedtls_platform_set_snprintf(tf_snprintf); 36ab1794f5SAntonio Nino Diaz 377d37aa17SJuan Castillo ready = 1; 387d37aa17SJuan Castillo } 397d37aa17SJuan Castillo } 40