1 /* 2 * Copyright (c) 2015-2017, ARM Limited and Contributors. All rights reserved. 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #include <debug.h> 8 9 /* mbed TLS headers */ 10 #include <mbedtls/memory_buffer_alloc.h> 11 #include <mbedtls/platform.h> 12 #include <mbedtls_config.h> 13 14 /* 15 * mbed TLS heap 16 */ 17 #if (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_ECDSA) \ 18 || (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_RSA_AND_ECDSA) 19 #define MBEDTLS_HEAP_SIZE (13*1024) 20 #elif (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_RSA) 21 #define MBEDTLS_HEAP_SIZE (7*1024) 22 #endif 23 static unsigned char heap[MBEDTLS_HEAP_SIZE]; 24 25 /* 26 * mbed TLS initialization function 27 */ 28 void mbedtls_init(void) 29 { 30 static int ready; 31 32 if (!ready) { 33 /* Initialize the mbed TLS heap */ 34 mbedtls_memory_buffer_alloc_init(heap, MBEDTLS_HEAP_SIZE); 35 36 #ifdef MBEDTLS_PLATFORM_SNPRINTF_ALT 37 /* Use reduced version of snprintf to save space. */ 38 mbedtls_platform_set_snprintf(tf_snprintf); 39 #endif 40 41 ready = 1; 42 } 43 } 44