xref: /rk3399_ARM-atf/drivers/auth/mbedtls/mbedtls_common.c (revision 8b37120065e5800c49754a5c9ba97bc98728c964)
1 /*
2  * Copyright (c) 2015-2018, 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 #include <mbedtls_common.h>
14 
15 /*
16  * mbed TLS heap
17  */
18 #if (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_ECDSA) \
19 	|| (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_RSA_AND_ECDSA)
20 #define MBEDTLS_HEAP_SIZE		(13*1024)
21 #elif (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_RSA)
22 #define MBEDTLS_HEAP_SIZE		(7*1024)
23 #endif
24 static unsigned char heap[MBEDTLS_HEAP_SIZE];
25 
26 /*
27  * mbed TLS initialization function
28  */
29 void mbedtls_init(void)
30 {
31 	static int ready;
32 
33 	if (!ready) {
34 		/* Initialize the mbed TLS heap */
35 		mbedtls_memory_buffer_alloc_init(heap, MBEDTLS_HEAP_SIZE);
36 
37 #ifdef MBEDTLS_PLATFORM_SNPRINTF_ALT
38 		/* Use reduced version of snprintf to save space. */
39 		mbedtls_platform_set_snprintf(tf_snprintf);
40 #endif
41 
42 		ready = 1;
43 	}
44 }
45