summaryrefslogtreecommitdiffstats
path: root/sys/arm64
diff options
context:
space:
mode:
authorandrew <andrew@FreeBSD.org>2017-05-30 13:26:37 +0000
committerandrew <andrew@FreeBSD.org>2017-05-30 13:26:37 +0000
commit02cff81c14829d2a6f6f89d2f999a32ef542d199 (patch)
treef0931aad041cb26a8a6a9f29bd21a1a199bc6246 /sys/arm64
parent47a9c98749e1a947c17d80568ab5f5eda143630e (diff)
downloadFreeBSD-src-02cff81c14829d2a6f6f89d2f999a32ef542d199.zip
FreeBSD-src-02cff81c14829d2a6f6f89d2f999a32ef542d199.tar.gz
MFC r317361:
Call the PSCI reset from cpu_reset on arm64. When rebooting from DDB the kernel calls this directly so the event handler is not called, meaning the computer fails to reboot.
Diffstat (limited to 'sys/arm64')
-rw-r--r--sys/arm64/arm64/vm_machdep.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/sys/arm64/arm64/vm_machdep.c b/sys/arm64/arm64/vm_machdep.c
index 1f8466d..acce93c 100644
--- a/sys/arm64/arm64/vm_machdep.c
+++ b/sys/arm64/arm64/vm_machdep.c
@@ -25,6 +25,8 @@
*
*/
+#include "opt_platform.h"
+
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
@@ -52,6 +54,10 @@ __FBSDID("$FreeBSD$");
#include <machine/vfp.h>
#endif
+#ifdef DEV_PSCI
+#include <dev/psci/psci.h>
+#endif
+
/*
* Finish a fork operation, with process p2 nearly set up.
* Copy and update the pcb, set up the stack so that the child
@@ -112,7 +118,11 @@ void
cpu_reset(void)
{
- printf("cpu_reset");
+#ifdef DEV_PSCI
+ psci_reset();
+#endif
+
+ printf("cpu_reset failed");
while(1)
__asm volatile("wfi" ::: "memory");
}
OpenPOWER on IntegriCloud