Support shared Mbed TLS heap for SGI
authorJohn Tsichritzis <[email protected]>
Wed, 22 Aug 2018 11:36:37 +0000 (12:36 +0100)
committerJohn Tsichritzis <[email protected]>
Tue, 4 Sep 2018 09:33:08 +0000 (10:33 +0100)
Change-Id: Iac454c745543842bfeed004aee7a3f4fb94d37e1
Signed-off-by: John Tsichritzis <[email protected]>
plat/arm/css/sgi/fdts/sgi575_tb_fw_config.dts
plat/arm/css/sgi/sgi_plat.c

index 0bb0a94e3b9af3ba45dac52bdab2723dc2e821e1..315fa6999ce556a270791e5fbf88fdabd41236e7 100644 (file)
        compatible = "arm,tb_fw";
        hw_config_addr = <0x0 0xFEF00000>;
        hw_config_max_size = <0x0100000>;
+       /*
+        * The following two entries are placeholders for Mbed TLS
+        * heap information. The default values don't matter since
+        * they will be overwritten by BL1.
+        * In case of having shared Mbed TLS heap between BL1 and BL2,
+        * BL1 will populate these two properties with the respective
+        * info about the shared heap. This info will be available for
+        * BL2 in order to locate and re-use the heap.
+        */
+       mbedtls_heap_addr = <0x0 0x0>;
+       mbedtls_heap_size = <0x0>;
 };
index 6aa76efe0f02f272f9649f145ecc47945654c70d..0a7e319dbe7bdffd39deee7d7a6c4aeeff762a8e 100644 (file)
@@ -6,6 +6,7 @@
 
 #include <arm_def.h>
 #include <arm_spm_def.h>
+#include <assert.h>
 #include <bl_common.h>
 #include <ccn.h>
 #include <debug.h>
@@ -63,6 +64,9 @@ const mmap_region_t plat_arm_mmap[] = {
 #endif
 #if ENABLE_SPM
        ARM_SP_IMAGE_MMAP,
+#endif
+#if TRUSTED_BOARD_BOOT && LOAD_IMAGE_V2 && !BL2_AT_EL3
+       ARM_MAP_BL1_RW,
 #endif
        {0}
 };
@@ -143,3 +147,13 @@ const struct secure_partition_boot_info *plat_get_secure_partition_boot_info(
        return &plat_arm_secure_partition_boot_info;
 }
 #endif /* ENABLE_SPM && defined(IMAGE_BL31) */
+
+#if TRUSTED_BOARD_BOOT && LOAD_IMAGE_V2
+int plat_get_mbedtls_heap(void **heap_addr, size_t *heap_size)
+{
+       assert(heap_addr != NULL);
+       assert(heap_size != NULL);
+
+       return arm_get_mbedtls_heap(heap_addr, heap_size);
+}
+#endif