diff --git a/plat/hisilicon/hikey960/hikey960_pm.c b/plat/hisilicon/hikey960/hikey960_pm.c index 22963c4f52a8ef5a0bf4f3a43691056d5adb6387..ffe7fcf87fcb59a8c98499f8baf0abd70cdea96e 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);