patch-2.3.99-pre9 linux/arch/mips/ddb5074/setup.c

Next file: linux/arch/mips/ddb5074/time.c
Previous file: linux/arch/mips/ddb5074/prom.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.99-pre8/linux/arch/mips/ddb5074/setup.c linux/arch/mips/ddb5074/setup.c
@@ -2,9 +2,9 @@
  *  arch/mips/ddb5074/setup.c -- NEC DDB Vrc-5074 setup routines
  *
  *  Copyright (C) 2000 Geert Uytterhoeven <geert@sonycom.com>
- *                     Sony Suprastructure Center Europe (SUPC-E), Brussels
+ *                     Sony Software Development Center Europe (SDCE), Brussels
  *
- *  $Id: setup.c,v 1.2 2000/02/14 17:07:36 ralf Exp $
+ *  $Id: setup.c,v 1.1 2000/01/26 00:07:44 ralf Exp $
  */
 
 #include <linux/config.h>
@@ -40,12 +40,12 @@
 
 extern struct rtc_ops ddb_rtc_ops;
 
+static void (*back_to_prom)(void) = (void (*)(void))0xbfc00000;
+
 static void ddb_machine_restart(char *command)
 {
     u32 t;
 
-    // FIXME: This doesn't seem to work...
-    printk("Restarting DDB Vrc-5074...");
     /* PCI cold reset */
     t = nile4_in32(NILE4_PCICTRL+4);
     t |= 0x40000000;
@@ -54,8 +54,8 @@
     t = nile4_in32(NILE4_CPUSTAT);
     t |= 1;
     nile4_out32(NILE4_CPUSTAT, t);
-    printk("Restart failed!\n");
-    do {} while (1);
+    /* Call the PROM */
+    back_to_prom();
 }
 
 static void ddb_machine_halt(void)
@@ -91,6 +91,8 @@
 
 void __init ddb_setup(void)
 {
+    extern int panic_timeout;
+
     irq_setup = ddb_irq_setup;
     mips_io_port_base = NILE4_PCI_IO_BASE;
     isa_slot_offset = NILE4_PCI_MEM_BASE;
@@ -106,6 +108,9 @@
     _machine_power_off = ddb_machine_power_off;
 
     rtc_ops = &ddb_rtc_ops;
+
+    /* Reboot on panic */
+    panic_timeout = 180;
 }
 
 int __init page_is_ram(unsigned long pagenr)

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)