From 4f00df596a80cb4b4539d228332d976cf38d4183 Mon Sep 17 00:00:00 2001 From: Ji Luo Date: Fri, 26 Oct 2018 17:26:31 +0800 Subject: imx8q: [trusty] Kick CAAM power JR0 and JR1 of CAAM are owned by SECO, only kick the power of JR2 and JR3 here and assign the resources to be accessed by secure world. Signed-off-by: Ji Luo --- plat/imx/imx8qm/imx8qm_bl31_setup.c | 6 ++++++ plat/imx/imx8qm/include/sec_rsrc.h | 6 ++++++ plat/imx/imx8qxp/imx8qxp_bl31_setup.c | 6 ++++++ plat/imx/imx8qxp/include/sec_rsrc.h | 6 ++++++ 4 files changed, 24 insertions(+) diff --git a/plat/imx/imx8qm/imx8qm_bl31_setup.c b/plat/imx/imx8qm/imx8qm_bl31_setup.c index d4008ece..df1316f3 100644 --- a/plat/imx/imx8qm/imx8qm_bl31_setup.c +++ b/plat/imx/imx8qm/imx8qm_bl31_setup.c @@ -395,6 +395,12 @@ void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1, * uses global structs defined in sec_rsrc.h */ mx8_partition_resources(); +#ifdef SPD_trusty + sc_pm_set_resource_power_mode(ipc_handle, SC_R_CAAM_JR2, SC_PM_PW_MODE_ON); + sc_pm_set_resource_power_mode(ipc_handle, SC_R_CAAM_JR2_OUT, SC_PM_PW_MODE_ON); + sc_pm_set_resource_power_mode(ipc_handle, SC_R_CAAM_JR3, SC_PM_PW_MODE_ON); + sc_pm_set_resource_power_mode(ipc_handle, SC_R_CAAM_JR3_OUT, SC_PM_PW_MODE_ON); +#endif /* * tell BL3-1 where the non-secure software image is located diff --git a/plat/imx/imx8qm/include/sec_rsrc.h b/plat/imx/imx8qm/include/sec_rsrc.h index 7ad46751..e77a4bd9 100644 --- a/plat/imx/imx8qm/include/sec_rsrc.h +++ b/plat/imx/imx8qm/include/sec_rsrc.h @@ -21,6 +21,12 @@ sc_rsrc_t secure_rsrcs[] = { SC_R_GIC_SMMU, SC_R_CCI, SC_R_SYSTEM, +#ifdef SPD_trusty + SC_R_CAAM_JR2, + SC_R_CAAM_JR2_OUT, + SC_R_CAAM_JR3, + SC_R_CAAM_JR3_OUT, +#endif SC_R_IRQSTR_SCU2 }; diff --git a/plat/imx/imx8qxp/imx8qxp_bl31_setup.c b/plat/imx/imx8qxp/imx8qxp_bl31_setup.c index 829d25bb..5b508f94 100644 --- a/plat/imx/imx8qxp/imx8qxp_bl31_setup.c +++ b/plat/imx/imx8qxp/imx8qxp_bl31_setup.c @@ -382,6 +382,12 @@ void bl31_early_platform_setup2(u_register_t arg0, u_register_t arg1, * uses global structs defined in sec_rsrc.h */ imx8_partition_resources(); +#ifdef SPD_trusty + sc_pm_set_resource_power_mode(ipc_handle, SC_R_CAAM_JR2, SC_PM_PW_MODE_ON); + sc_pm_set_resource_power_mode(ipc_handle, SC_R_CAAM_JR2_OUT, SC_PM_PW_MODE_ON); + sc_pm_set_resource_power_mode(ipc_handle, SC_R_CAAM_JR3, SC_PM_PW_MODE_ON); + sc_pm_set_resource_power_mode(ipc_handle, SC_R_CAAM_JR3_OUT, SC_PM_PW_MODE_ON); +#endif /* * tell BL3-1 where the non-secure software image is located diff --git a/plat/imx/imx8qxp/include/sec_rsrc.h b/plat/imx/imx8qxp/include/sec_rsrc.h index 81114d18..6b497153 100644 --- a/plat/imx/imx8qxp/include/sec_rsrc.h +++ b/plat/imx/imx8qxp/include/sec_rsrc.h @@ -17,6 +17,12 @@ sc_rsrc_t secure_rsrcs[] = { SC_R_GIC, SC_R_SYSTEM, SC_R_GPT_0, +#ifdef SPD_trusty + SC_R_CAAM_JR2, + SC_R_CAAM_JR2_OUT, + SC_R_CAAM_JR3, + SC_R_CAAM_JR3_OUT, +#endif SC_R_IRQSTR_SCU2 }; -- cgit v1.2.3