|
@@ -12,7 +12,6 @@
|
|
|
#include <linux/kernel.h>
|
|
|
#include <linux/param.h>
|
|
|
#include <linux/init.h>
|
|
|
-#include <linux/interrupt.h>
|
|
|
#include <linux/io.h>
|
|
|
#include <asm/machdep.h>
|
|
|
#include <asm/coldfire.h>
|
|
@@ -21,8 +20,6 @@
|
|
|
|
|
|
/***************************************************************************/
|
|
|
|
|
|
-void coldfire_reset(void);
|
|
|
-
|
|
|
extern unsigned int mcf_timervector;
|
|
|
extern unsigned int mcf_profilevector;
|
|
|
extern unsigned int mcf_timerlevel;
|
|
@@ -170,6 +167,19 @@ void mcf_settimericr(int timer, int level)
|
|
|
|
|
|
/***************************************************************************/
|
|
|
|
|
|
+static void m5272_cpu_reset(void)
|
|
|
+{
|
|
|
+ local_irq_disable();
|
|
|
+ /* Set watchdog to reset, and enabled */
|
|
|
+ __raw_writew(0, MCF_MBAR + MCFSIM_WIRR);
|
|
|
+ __raw_writew(1, MCF_MBAR + MCFSIM_WRRR);
|
|
|
+ __raw_writew(0, MCF_MBAR + MCFSIM_WCR);
|
|
|
+ for (;;)
|
|
|
+ /* wait for watchdog to timeout */;
|
|
|
+}
|
|
|
+
|
|
|
+/***************************************************************************/
|
|
|
+
|
|
|
void __init config_BSP(char *commandp, int size)
|
|
|
{
|
|
|
#if defined (CONFIG_MOD5272)
|
|
@@ -194,7 +204,7 @@ void __init config_BSP(char *commandp, int size)
|
|
|
|
|
|
mcf_timervector = 69;
|
|
|
mcf_profilevector = 70;
|
|
|
- mach_reset = coldfire_reset;
|
|
|
+ mach_reset = m5272_cpu_reset;
|
|
|
}
|
|
|
|
|
|
/***************************************************************************/
|