From ca501ccb95281760a18eff79b23a9670d89ec652 Mon Sep 17 00:00:00 2001 From: Ye Li Date: Sun, 10 May 2020 06:52:30 -0700 Subject: [PATCH] MLK-23963 imx: mx6/7: Move configure_tzc380 to each SOC arch init The commit "TEE-520 core: imx: Set TZASC region 0 to non-sec" added configure_tzc380 function in imx_sec_init to set region 0 to non-sec, however imx_sec_init is called only on SOCs which has CAAM. For SOCs use DCP, like 6SLL, 6ULL/6ULZ, 6SL, this function does not execute, and cause the trustzone won't be configured. Signed-off-by: Ye Li Reviewed-by: Peng Fan (cherry picked from commit ab351d816b582382baf82c72546d8b7b3618de29) (cherry picked from commit 6ee1dbf350583cc5c7c8cfe3308a389c61ee38e9) --- arch/arm/include/asm/mach-imx/sys_proto.h | 1 + arch/arm/mach-imx/misc.c | 3 +-- arch/arm/mach-imx/mx6/soc.c | 1 + arch/arm/mach-imx/mx7/soc.c | 1 + 4 files changed, 4 insertions(+), 2 deletions(-) diff --git a/arch/arm/include/asm/mach-imx/sys_proto.h b/arch/arm/include/asm/mach-imx/sys_proto.h index 1aef8abf88..010f8072fc 100644 --- a/arch/arm/include/asm/mach-imx/sys_proto.h +++ b/arch/arm/include/asm/mach-imx/sys_proto.h @@ -235,4 +235,5 @@ void imx_get_mac_from_fuse(int dev_id, unsigned char *mac); int add_res_mem_dt_node(void *fdt, const char *name, phys_addr_t pa, size_t size); int add_dt_path_subnode(void *fdt, const char *path, const char *subnode); +void configure_tzc380(void); #endif diff --git a/arch/arm/mach-imx/misc.c b/arch/arm/mach-imx/misc.c index 3fee7ed90e..a4f57b66bc 100644 --- a/arch/arm/mach-imx/misc.c +++ b/arch/arm/mach-imx/misc.c @@ -111,7 +111,7 @@ void board_lmb_reserve(struct lmb *lmb) } } -static void configure_tzc380(void) +void configure_tzc380(void) { #if defined (IP2APB_TZASC1_BASE_ADDR) struct iomuxc *iomux = (struct iomuxc *)IOMUXC_BASE_ADDR; @@ -129,7 +129,6 @@ void imx_sec_init(void) #if defined(CONFIG_SPL_BUILD) || !defined(CONFIG_SPL) caam_open(); #endif - configure_tzc380(); } static void set_dt_val(void *data, uint32_t cell_size, uint64_t val) diff --git a/arch/arm/mach-imx/mx6/soc.c b/arch/arm/mach-imx/mx6/soc.c index f760e23c68..6e1ddbf6f2 100644 --- a/arch/arm/mach-imx/mx6/soc.c +++ b/arch/arm/mach-imx/mx6/soc.c @@ -670,6 +670,7 @@ int arch_cpu_init(void) /* Secure init function such RNG */ imx_sec_init(); #endif + configure_tzc380(); return 0; } diff --git a/arch/arm/mach-imx/mx7/soc.c b/arch/arm/mach-imx/mx7/soc.c index ada49b9e40..3b33fcd818 100644 --- a/arch/arm/mach-imx/mx7/soc.c +++ b/arch/arm/mach-imx/mx7/soc.c @@ -367,6 +367,7 @@ int arch_cpu_init(void) /* Secure init function such RNG */ imx_sec_init(); #endif + configure_tzc380(); return 0; } -- 2.17.1