xref: /rk3399_ARM-atf/drivers/auth/mbedtls/mbedtls_common.c (revision 38aacad3cb4842a267d2cd5a22d0e6439c0d37e6)
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