summaryrefslogtreecommitdiff
path: root/plat
diff options
context:
space:
mode:
authorAndre Przywara <andre.przywara@arm.com>2016-05-10 00:06:30 +0100
committerAndre Przywara <andre.przywara@arm.com>2016-06-02 01:29:48 +0100
commit4a54adb1c83a17e60c387ca6509a959505bdc14f (patch)
tree570f34ec37fcece28ee0fef0446ee99c49b98160 /plat
parent7339234902fcc8b0b873636837db0804ae76dabe (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.c12
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();