summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--plat/imx/common/imx8_psci.c7
-rw-r--r--plat/imx/common/include/plat_imx8.h1
-rw-r--r--plat/imx/imx8qx/imx8qx_psci.c1
3 files changed, 9 insertions, 0 deletions
diff --git a/plat/imx/common/imx8_psci.c b/plat/imx/common/imx8_psci.c
index 0b0dcb57..37eda3e6 100644
--- a/plat/imx/common/imx8_psci.c
+++ b/plat/imx/common/imx8_psci.c
@@ -19,4 +19,11 @@ void __dead2 imx_system_off(void)
panic();
}
+void __dead2 imx_system_reset(void)
+{
+ sc_pm_reset(ipc_handle, SC_PM_RESET_TYPE_BOARD);
+ wfi();
+ ERROR("system reset failed.\n");
+ panic();
+}
diff --git a/plat/imx/common/include/plat_imx8.h b/plat/imx/common/include/plat_imx8.h
index 640d60e7..3b5f4ec6 100644
--- a/plat/imx/common/include/plat_imx8.h
+++ b/plat/imx/common/include/plat_imx8.h
@@ -18,4 +18,5 @@ void plat_gic_cpuif_disable(void);
void plat_gic_pcpu_init(void);
void __dead2 imx_system_off(void);
+void __dead2 imx_system_reset(void);
#endif /*__PLAT_IMX8_H__ */
diff --git a/plat/imx/imx8qx/imx8qx_psci.c b/plat/imx/imx8qx/imx8qx_psci.c
index 1e8f7fa4..80f747b1 100644
--- a/plat/imx/imx8qx/imx8qx_psci.c
+++ b/plat/imx/imx8qx/imx8qx_psci.c
@@ -65,6 +65,7 @@ static const plat_psci_ops_t imx_plat_psci_ops = {
.pwr_domain_on_finish = imx_pwr_domain_on_finish,
.validate_ns_entrypoint = imx_validate_ns_entrypoint,
.system_off = imx_system_off,
+ .system_reset = imx_system_reset,
};
int plat_setup_psci_ops(uintptr_t sec_entrypoint,