summaryrefslogtreecommitdiffstats
path: root/arch/mips64
diff options
context:
space:
mode:
authorKanoj Sarcar <kanoj@engr.sgi.com>2000-05-11 23:03:10 +0000
committerKanoj Sarcar <kanoj@engr.sgi.com>2000-05-11 23:03:10 +0000
commit1dfd14568d2f2d73e8625ab3e5fa575a75f26af9 (patch)
tree6c1fb43e4a684e117cb933ecf898484fa478d3c7 /arch/mips64
parente3b4abcb9607063735ea134eca6fad62f8147f20 (diff)
Enable "reboot"ing the system.
Diffstat (limited to 'arch/mips64')
-rw-r--r--arch/mips64/sgi-ip27/ip27-reset.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/arch/mips64/sgi-ip27/ip27-reset.c b/arch/mips64/sgi-ip27/ip27-reset.c
index fade7ed76..388fb6026 100644
--- a/arch/mips64/sgi-ip27/ip27-reset.c
+++ b/arch/mips64/sgi-ip27/ip27-reset.c
@@ -9,15 +9,22 @@
* Copyright (C) 1997, 1998, 1999 by Ralf Baechle
* Copyright (C) 1999 Silicon Graphics, Inc.
*/
+#include <linux/config.h>
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/timer.h>
+#include <linux/smp.h>
+#include <linux/mmzone.h>
#include <asm/io.h>
#include <asm/irq.h>
#include <asm/system.h>
#include <asm/sgialib.h>
#include <asm/sgi/sgihpc.h>
#include <asm/sgi/sgint23.h>
+#include <asm/sn/addrs.h>
+#include <asm/sn/arch.h>
+#include <asm/sn/gda.h>
+#include <asm/sn/sn0/hub.h>
void machine_restart(char *command) __attribute__((noreturn));
void machine_halt(void) __attribute__((noreturn));
@@ -26,7 +33,19 @@ void machine_power_off(void) __attribute__((noreturn));
/* XXX How to pass the reboot command to the firmware??? */
void machine_restart(char *command)
{
- ArcReboot();
+ int i;
+
+ printk("Reboot started from CPU %d\n", smp_processor_id());
+#ifdef CONFIG_SMP
+ smp_send_stop();
+#endif
+#if 0
+ for (i = 0; i < numnodes; i++)
+ REMOTE_HUB_S(COMPACT_TO_NASID_NODEID(i), PROMOP_REG,
+ PROMOP_RESTART);
+#else
+ LOCAL_HUB_S(NI_PORT_RESET, NPR_PORTRESET | NPR_LOCALRESET);
+#endif
}
void machine_halt(void)