diff options
author | Andre Przywara <andre.przywara@arm.com> | 2016-05-10 00:06:30 +0100 |
---|---|---|
committer | Andre Przywara <andre.przywara@arm.com> | 2016-06-02 01:29:48 +0100 |
commit | 4a54adb1c83a17e60c387ca6509a959505bdc14f (patch) | |
tree | 570f34ec37fcece28ee0fef0446ee99c49b98160 /plat | |
parent | 7339234902fcc8b0b873636837db0804ae76dabe (diff) |
PSCI: replace arisc call for PSCI_RESET with watchdog reset
We cannot ask the arisc for help anymore, so let's program the watchdog
to trigger a reset in the shortest possible time period to achieve
a system reset if non-secure world requests it.
Signed-off-by: Andre Przywara <andre.przywara@arm.com>
Diffstat (limited to 'plat')
-rw-r--r-- | plat/sun50iw1p1/plat_pm.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/plat/sun50iw1p1/plat_pm.c b/plat/sun50iw1p1/plat_pm.c index 667f703..9d9bc0f 100644 --- a/plat/sun50iw1p1/plat_pm.c +++ b/plat/sun50iw1p1/plat_pm.c @@ -40,7 +40,6 @@ #include <bakery_lock.h> #include "sunxi_def.h" #include "sunxi_private.h" -#include "scpi.h" #include "sunxi_cpu_ops.h" #include <arisc.h> #include <cci400.h> @@ -273,15 +272,10 @@ static void __dead2 sunxi_system_off(void) static void __dead2 sunxi_system_reset(void) { - uint32_t response; - - /* Send the system reset request to the SCP */ - response = arisc_system_op(scpi_system_reboot); + mmio_write_32(0x01c20cb4, 1); + mmio_write_32(0x01c20cb8, 1); + mmio_write_32(0x01c20cb0, (0xa57 << 1) | 0x01); - if (response != SCP_OK) { - ERROR("Sunxi System Reset: SCP error %u.\n", response); - panic(); - } wfi(); ERROR("Sunxi System Reset: operation not handled.\n"); panic(); |