summaryrefslogtreecommitdiffstats
path: root/arch/mips/vr41xx/common/pmu.c
diff options
context:
space:
mode:
authorYoichi Yuasa <yoichi_yuasa@tripeaks.co.jp>2007-08-16 22:20:11 +0900
committerRalf Baechle <ralf@linux-mips.org>2007-10-11 23:45:59 +0100
commit2f2a2d9987c4836493bfb2a80960056ef86742d2 (patch)
tree17bed3c7a493c8b308dbbd484ec0ef4859929973 /arch/mips/vr41xx/common/pmu.c
parent054c51b4368648406f487f54b7ed6ba75bbb3f8b (diff)
[MIPS] VR41xx: Add default restart routine.
Signed-off-by: Yoichi Yuasa <yoichi_yuasa@tripeaks.co.jp> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/vr41xx/common/pmu.c')
-rw-r--r--arch/mips/vr41xx/common/pmu.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/mips/vr41xx/common/pmu.c b/arch/mips/vr41xx/common/pmu.c
index e0ffbe9a984..ba0a4f6483a 100644
--- a/arch/mips/vr41xx/common/pmu.c
+++ b/arch/mips/vr41xx/common/pmu.c
@@ -25,6 +25,7 @@
#include <linux/sched.h>
#include <linux/types.h>
+#include <asm/cacheflush.h>
#include <asm/cpu.h>
#include <asm/io.h>
#include <asm/processor.h>
@@ -70,6 +71,11 @@ static inline void software_reset(void)
pmu_write(PMUCNT2REG, pmucnt2);
break;
default:
+ set_c0_status(ST0_BEV | ST0_ERL);
+ change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
+ flush_cache_all();
+ write_c0_wired(0);
+ __asm__("jr %0"::"r"(0xbfc00000));
break;
}
}
@@ -78,7 +84,6 @@ static void vr41xx_restart(char *command)
{
local_irq_disable();
software_reset();
- printk(KERN_NOTICE "\nYou can reset your system\n");
while (1) ;
}