summaryrefslogtreecommitdiff
path: root/sys
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2008-04-20 21:42:01 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2008-04-20 21:42:01 +0000
commite2c0d8670c0c4a94f1c1a1fce050bead469315cf (patch)
tree9e021bec437b0eee5072f840dc2368cda558c168 /sys
parent22200d6adf51c3b410fc9fbca8b85bcf5c37e5d5 (diff)
Try to reset the machine through the firmware to reboot.
Diffstat (limited to 'sys')
-rw-r--r--sys/arch/hppa64/hppa64/machdep.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/arch/hppa64/hppa64/machdep.c b/sys/arch/hppa64/hppa64/machdep.c
index d8256e5c944..4f9e53bb6c0 100644
--- a/sys/arch/hppa64/hppa64/machdep.c
+++ b/sys/arch/hppa64/hppa64/machdep.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: machdep.c,v 1.9 2008/04/20 11:53:11 kettenis Exp $ */
+/* $OpenBSD: machdep.c,v 1.10 2008/04/20 21:42:00 kettenis Exp $ */
/*
* Copyright (c) 2005 Michael Shalayeff
@@ -673,6 +673,10 @@ boot(howto)
} else {
printf("rebooting...");
DELAY(2000000);
+
+ /* ask firmware to reset */
+ pdc_call((iodcio_t)pdc, 0, PDC_BROADCAST_RESET, PDC_DO_RESET);
+
__asm __volatile(".export hppa_reset, entry\n\t"
".label hppa_reset");
__asm __volatile("stwas %0, 0(%1)"