diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2000-03-29 19:05:58 +0000 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2000-03-29 19:05:58 +0000 |
commit | 4c0cda9278fa9ebc9b214e34cd28adce25e6c683 (patch) | |
tree | fcaa04df97d40d7edce728016d848f7ce6e2f2c1 /arch/mips/ddb5074/setup.c | |
parent | 68d2855f87ad909786effe8abe0f8f0e046f8a0f (diff) |
More DDB5074 updates.
Diffstat (limited to 'arch/mips/ddb5074/setup.c')
-rw-r--r-- | arch/mips/ddb5074/setup.c | 13 |
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) |