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> 12c46c18c5SAntonio Nino Diaz #include <mbedtls_config.h> 137d37aa17SJuan Castillo 147d37aa17SJuan Castillo /* 157d37aa17SJuan Castillo * mbed TLS heap 167d37aa17SJuan Castillo */ 17*dcbf3932SQixiang Xu #if (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_ECDSA) \ 18*dcbf3932SQixiang Xu || (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_RSA_AND_ECDSA) 199db9c65aSQixiang Xu #define MBEDTLS_HEAP_SIZE (13*1024) 20b1883510SDavid Cunado #elif (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_RSA) 2138aacad3SSoby Mathew #define MBEDTLS_HEAP_SIZE (7*1024) 227d37aa17SJuan Castillo #endif 237d37aa17SJuan Castillo static unsigned char heap[MBEDTLS_HEAP_SIZE]; 247d37aa17SJuan Castillo 257d37aa17SJuan Castillo /* 267d37aa17SJuan Castillo * mbed TLS initialization function 277d37aa17SJuan Castillo */ 287d37aa17SJuan Castillo void mbedtls_init(void) 297d37aa17SJuan Castillo { 307d37aa17SJuan Castillo static int ready; 317d37aa17SJuan Castillo 327d37aa17SJuan Castillo if (!ready) { 337d37aa17SJuan Castillo /* Initialize the mbed TLS heap */ 34649dbf6fSJuan Castillo mbedtls_memory_buffer_alloc_init(heap, MBEDTLS_HEAP_SIZE); 35ab1794f5SAntonio Nino Diaz 36c46c18c5SAntonio Nino Diaz #ifdef MBEDTLS_PLATFORM_SNPRINTF_ALT 37ab1794f5SAntonio Nino Diaz /* Use reduced version of snprintf to save space. */ 38ab1794f5SAntonio Nino Diaz mbedtls_platform_set_snprintf(tf_snprintf); 39c46c18c5SAntonio Nino Diaz #endif 40ab1794f5SAntonio Nino Diaz 417d37aa17SJuan Castillo ready = 1; 427d37aa17SJuan Castillo } 437d37aa17SJuan Castillo } 44