From 7dcef5ebbbb969ebf6397b640c0b81dc6dc2ef75 Mon Sep 17 00:00:00 2001 From: Haojian Zhuang <haojian.zhuang@linaro.org> Date: Mon, 26 Mar 2018 13:18:13 +0800 Subject: [PATCH] hikey960: add delay before reset If system is still accessing storage device, reboot operation may cause data broken. So add the flush and delay operation before system reset. Signed-off-by: Haojian Zhuang <haojian.zhuang@linaro.org> --- plat/hisilicon/hikey960/hikey960_pm.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plat/hisilicon/hikey960/hikey960_pm.c b/plat/hisilicon/hikey960/hikey960_pm.c index 22963c4f5..ffe7fcf87 100644 --- a/plat/hisilicon/hikey960/hikey960_pm.c +++ b/plat/hisilicon/hikey960/hikey960_pm.c @@ -9,6 +9,7 @@ #include <cci.h> #include <console.h> #include <debug.h> +#include <delay_timer.h> #include <gicv2.h> #include <hi3660.h> #include <hi3660_crg.h> @@ -114,6 +115,9 @@ void hikey960_pwr_domain_off(const psci_power_state_t *target_state) static void __dead2 hikey960_system_reset(void) { + dsb(); + isb(); + mdelay(2000); mmio_write_32(SCTRL_SCPEREN1_REG, SCPEREN1_WAIT_DDR_SELFREFRESH_DONE_BYPASS); mmio_write_32(SCTRL_SCSYSSTAT_REG, 0xdeadbeef); -- GitLab