
Add i.MX7 PSCI system reset support, linux kernel now can use "reboot" command to reset system.
Signed-off-by: Anson Huang Anson.Huang@nxp.com --- changes since V1: write WDOG register directly instead of calling reset_cpu which is NOT safe since it is NOT in secure section. arch/arm/mach-imx/mx7/psci-mx7.c | 5 +++++ arch/arm/mach-imx/mx7/psci.S | 7 +++++++ 2 files changed, 12 insertions(+)
diff --git a/arch/arm/mach-imx/mx7/psci-mx7.c b/arch/arm/mach-imx/mx7/psci-mx7.c index 7f429b0..66f6db6 100644 --- a/arch/arm/mach-imx/mx7/psci-mx7.c +++ b/arch/arm/mach-imx/mx7/psci-mx7.c @@ -74,3 +74,8 @@ __secure int imx_cpu_off(int cpu) writel(0, SRC_BASE_ADDR + cpu * 8 + SRC_GPR1_MX7D + 4); return 0; } + +__secure void imx_system_reset(void) +{ + writew(1 << 2, WDOG1_BASE_ADDR); +} diff --git a/arch/arm/mach-imx/mx7/psci.S b/arch/arm/mach-imx/mx7/psci.S index fc5eb34..59f98cd 100644 --- a/arch/arm/mach-imx/mx7/psci.S +++ b/arch/arm/mach-imx/mx7/psci.S @@ -43,4 +43,11 @@ psci_cpu_off: 1: wfi b 1b
+.globl psci_system_reset +psci_system_reset: + b imx_system_reset + +2: wfi + b 2b + .popsection