mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-08-15 17:07:04 +02:00
mbed TLS provides the debug API `mbedtls_memory_buffer_alloc_status()` to analyse the RAM usage of the library. When RSA is selected as algorithm, the maximum heap usage in FVP and Juno has been determined empirically to be approximately 5.5 KiB. However, The default heap size used when RSA is selected is 8 KiB. This patch reduces the buffer from 8 KiB to 6 KiB so that the BSS sections of both BL1 and BL2 are 2 KiB smaller when the firmware is compiled with TBB support. Change-Id: I43878a4e7af50c97be9c8d027c728c8483f24fbf Signed-off-by: Antonio Nino Diaz <antonio.ninodiaz@arm.com>
40 lines
816 B
C
40 lines
816 B
C
/*
|
|
* Copyright (c) 2015-2017, ARM Limited and Contributors. All rights reserved.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#include <debug.h>
|
|
|
|
/* mbed TLS headers */
|
|
#include <mbedtls/memory_buffer_alloc.h>
|
|
#include <mbedtls/platform.h>
|
|
|
|
/*
|
|
* mbed TLS heap
|
|
*/
|
|
#if (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_ECDSA)
|
|
#define MBEDTLS_HEAP_SIZE (14*1024)
|
|
#elif (TF_MBEDTLS_KEY_ALG_ID == TF_MBEDTLS_RSA)
|
|
#define MBEDTLS_HEAP_SIZE (6*1024)
|
|
#endif
|
|
static unsigned char heap[MBEDTLS_HEAP_SIZE];
|
|
|
|
/*
|
|
* mbed TLS initialization function
|
|
*/
|
|
void mbedtls_init(void)
|
|
{
|
|
static int ready;
|
|
|
|
if (!ready) {
|
|
/* Initialize the mbed TLS heap */
|
|
mbedtls_memory_buffer_alloc_init(heap, MBEDTLS_HEAP_SIZE);
|
|
|
|
/* Use reduced version of snprintf to save space. */
|
|
mbedtls_platform_set_snprintf(tf_snprintf);
|
|
|
|
ready = 1;
|
|
}
|
|
}
|