summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plat/freescale/imx8qm/imx8qm_psci.c9
-rw-r--r--plat/freescale/imx8qm/include/sec_rsrc.h3
2 files changed, 11 insertions, 1 deletions
diff --git a/plat/freescale/imx8qm/imx8qm_psci.c b/plat/freescale/imx8qm/imx8qm_psci.c
index 1f038f18..7cc80c88 100644
--- a/plat/freescale/imx8qm/imx8qm_psci.c
+++ b/plat/freescale/imx8qm/imx8qm_psci.c
@@ -216,6 +216,14 @@ void imx_get_sys_suspend_power_state(psci_power_state_t *req_state)
req_state->pwr_domain_state[i] = PLAT_MAX_RET_STATE;
}
+void __attribute__((noreturn)) imx_system_reset(void)
+{
+ sc_pm_reset(ipc_handle, SC_PM_RESET_TYPE_BOARD);
+
+ while (1)
+ ;
+}
+
static const plat_psci_ops_t imx_plat_psci_ops = {
.pwr_domain_on = imx_pwr_domain_on,
.pwr_domain_on_finish = imx_pwr_domain_on_finish,
@@ -226,6 +234,7 @@ static const plat_psci_ops_t imx_plat_psci_ops = {
.pwr_domain_suspend = imx_domain_suspend,
.pwr_domain_suspend_finish = imx_domain_suspend_finish,
.get_sys_suspend_power_state = imx_get_sys_suspend_power_state,
+ .system_reset = imx_system_reset,
};
/* export the platform specific psci ops */
diff --git a/plat/freescale/imx8qm/include/sec_rsrc.h b/plat/freescale/imx8qm/include/sec_rsrc.h
index b05f0aa0..7a1ee361 100644
--- a/plat/freescale/imx8qm/include/sec_rsrc.h
+++ b/plat/freescale/imx8qm/include/sec_rsrc.h
@@ -14,7 +14,8 @@ sc_rsrc_t secure_rsrcs[] = {
SC_R_A72_1,
SC_R_GIC,
SC_R_GIC_SMMU,
- SC_R_CCI
+ SC_R_CCI,
+ SC_R_SYSTEM
};
/* resources that have register access for non-secure domain */