summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJi Luo <ji.luo@nxp.com>2018-10-26 17:26:31 +0800
committerJi Luo <ji.luo@nxp.com>2018-11-01 10:01:10 +0800
commit4f00df596a80cb4b4539d228332d976cf38d4183 (patch)
treeac1eba995523da7a392353d2cedd03f4d8d6d89f
parente09c4b62ec5a426c02d644974695df829f84aec3 (diff)
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 <ji.luo@nxp.com>
-rw-r--r--plat/imx/imx8qm/imx8qm_bl31_setup.c6
-rw-r--r--plat/imx/imx8qm/include/sec_rsrc.h6
-rw-r--r--plat/imx/imx8qxp/imx8qxp_bl31_setup.c6
-rw-r--r--plat/imx/imx8qxp/include/sec_rsrc.h6
4 files changed, 24 insertions, 0 deletions
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
};