diff options
author | Haojian Zhuang <haojian.zhuang@linaro.org> | 2018-03-26 13:18:13 +0800 |
---|---|---|
committer | Haojian Zhuang <haojian.zhuang@linaro.org> | 2018-03-28 08:30:31 +0800 |
commit | 7dcef5ebbbb969ebf6397b640c0b81dc6dc2ef75 (patch) | |
tree | b77bba2ade654e9ba0d712f3e3b654de2895e3fa /plat/hisilicon/hikey960 | |
parent | ba7848e283cd11326f60f3a3084c142875f3ec41 (diff) |
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>
Diffstat (limited to 'plat/hisilicon/hikey960')
-rw-r--r-- | plat/hisilicon/hikey960/hikey960_pm.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/plat/hisilicon/hikey960/hikey960_pm.c b/plat/hisilicon/hikey960/hikey960_pm.c index 22963c4f..ffe7fcf8 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); |