aboutsummaryrefslogtreecommitdiff
path: root/core/arch/arm32
diff options
context:
space:
mode:
authorJens Wiklander <jens.wiklander@linaro.org>2014-12-02 10:34:54 +0100
committerJens Wiklander <jens.wiklander@linaro.org>2014-12-12 10:03:05 +0100
commite3bbec52c001ec97832897c8aa3fa325464f37c8 (patch)
tree98d77826764cca0a13010f88c961cb5017cf7ae9 /core/arch/arm32
parent76d547995486aa59966da74669913cd4bb0e3f31 (diff)
arm32: move call to teecore_init_ta_ram()
Moves call to teecore_init_ta_ram() from init_teecore() to be called directly from platform initialization routines. It's needed later when the pager allocates secure DDR to store that backing pages. We don't want to call init_teecore() until the pager is fully initialized because init_teecore() pulls in many dependencies. Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org> Reviewed-by: Pascal Brand <pascal.brand@linaro.org>
Diffstat (limited to 'core/arch/arm32')
-rw-r--r--core/arch/arm32/plat-stm/main.c3
-rw-r--r--core/arch/arm32/plat-vexpress/main.c2
-rw-r--r--core/arch/arm32/tee/init.c1
3 files changed, 5 insertions, 1 deletions
diff --git a/core/arch/arm32/plat-stm/main.c b/core/arch/arm32/plat-stm/main.c
index b81e70a..f01bc27 100644
--- a/core/arch/arm32/plat-stm/main.c
+++ b/core/arch/arm32/plat-stm/main.c
@@ -41,6 +41,7 @@
#include <kernel/misc.h>
#include <mm/tee_pager.h>
#include <mm/core_mmu.h>
+#include <mm/tee_mmu.h>
#include <mm/tee_mmu_defs.h>
#include <tee/entry.h>
#include <tee/arch_svc.h>
@@ -208,6 +209,8 @@ void main_init(uint32_t nsec_entry)
s = s - a;
#endif
malloc_init((void *)a, s);
+
+ teecore_init_ta_ram();
}
}
diff --git a/core/arch/arm32/plat-vexpress/main.c b/core/arch/arm32/plat-vexpress/main.c
index 5a89a91..feeda7d 100644
--- a/core/arch/arm32/plat-vexpress/main.c
+++ b/core/arch/arm32/plat-vexpress/main.c
@@ -50,6 +50,7 @@
#include <kernel/tee_time.h>
#include <mm/tee_pager.h>
#include <mm/core_mmu.h>
+#include <mm/tee_mmu.h>
#include <mm/tee_mmu_defs.h>
#include <tee/entry.h>
#include <tee/arch_svc.h>
@@ -336,6 +337,7 @@ static void main_init_helper(bool is_primary, size_t pos, uint32_t nsec_entry)
(uintptr_t)&__nozi_pad_end -
(uintptr_t)&__nozi_pad_start);
+ teecore_init_ta_ram();
if (init_teecore() != TEE_SUCCESS)
panic();
DMSG("Primary CPU switching to normal world boot\n");
diff --git a/core/arch/arm32/tee/init.c b/core/arch/arm32/tee/init.c
index 2b9dfe0..76dc43f 100644
--- a/core/arch/arm32/tee/init.c
+++ b/core/arch/arm32/tee/init.c
@@ -61,7 +61,6 @@ TEE_Result init_teecore(void)
/* init support for futur mapping of TAs */
tee_mmu_kmap_init();
- teecore_init_ta_ram();
teecore_init_pub_ram();
/* Initialize cryptographic provider */