diff options
author | Jens Wiklander <jens.wiklander@linaro.org> | 2014-12-02 10:34:54 +0100 |
---|---|---|
committer | Jens Wiklander <jens.wiklander@linaro.org> | 2014-12-12 10:03:05 +0100 |
commit | e3bbec52c001ec97832897c8aa3fa325464f37c8 (patch) | |
tree | 98d77826764cca0a13010f88c961cb5017cf7ae9 /core/arch/arm32 | |
parent | 76d547995486aa59966da74669913cd4bb0e3f31 (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.c | 3 | ||||
-rw-r--r-- | core/arch/arm32/plat-vexpress/main.c | 2 | ||||
-rw-r--r-- | core/arch/arm32/tee/init.c | 1 |
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 */ |