summaryrefslogtreecommitdiffstats
path: root/arch/mips/ddb5074/setup.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2000-03-29 19:05:58 +0000
committerRalf Baechle <ralf@linux-mips.org>2000-03-29 19:05:58 +0000
commit4c0cda9278fa9ebc9b214e34cd28adce25e6c683 (patch)
treefcaa04df97d40d7edce728016d848f7ce6e2f2c1 /arch/mips/ddb5074/setup.c
parent68d2855f87ad909786effe8abe0f8f0e046f8a0f (diff)
More DDB5074 updates.
Diffstat (limited to 'arch/mips/ddb5074/setup.c')
-rw-r--r--arch/mips/ddb5074/setup.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/arch/mips/ddb5074/setup.c b/arch/mips/ddb5074/setup.c
index 00bfd4c1f..6f0eff4d9 100644
--- a/arch/mips/ddb5074/setup.c
+++ b/arch/mips/ddb5074/setup.c
@@ -40,12 +40,12 @@ extern void console_setup(char *);
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 @@ static void ddb_machine_restart(char *command)
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 @@ static void __init ddb_time_init(struct irqaction *irq)
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 @@ void __init ddb_setup(void)
_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)