aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/m68k/include/asm/m528xsim.h8
-rw-r--r--arch/m68knommu/platform/528x/config.c13
2 files changed, 17 insertions, 4 deletions
diff --git a/arch/m68k/include/asm/m528xsim.h b/arch/m68k/include/asm/m528xsim.h
index 28bf783a5d6..d79c49f8134 100644
--- a/arch/m68k/include/asm/m528xsim.h
+++ b/arch/m68k/include/asm/m528xsim.h
@@ -56,6 +56,14 @@
56#define MCF5282_INTC0_ICR17 (volatile u8 *) (MCF_IPSBAR + 0x0C51) 56#define MCF5282_INTC0_ICR17 (volatile u8 *) (MCF_IPSBAR + 0x0C51)
57 57
58 58
59/*
60 * Reset Control Unit (relative to IPSBAR).
61 */
62#define MCF_RCR 0x110000
63#define MCF_RSR 0x110001
64
65#define MCF_RCR_SWRESET 0x80 /* Software reset bit */
66#define MCF_RCR_FRCSTOUT 0x40 /* Force external reset */
59 67
60/********************************************************************* 68/*********************************************************************
61* 69*
diff --git a/arch/m68knommu/platform/528x/config.c b/arch/m68knommu/platform/528x/config.c
index bee526f4d1a..a1d1a61c4fe 100644
--- a/arch/m68knommu/platform/528x/config.c
+++ b/arch/m68knommu/platform/528x/config.c
@@ -31,10 +31,6 @@
31 31
32/***************************************************************************/ 32/***************************************************************************/
33 33
34void coldfire_reset(void);
35
36/***************************************************************************/
37
38static struct mcf_platform_uart m528x_uart_platform[] = { 34static struct mcf_platform_uart m528x_uart_platform[] = {
39 { 35 {
40 .mapbase = MCF_MBAR + MCFUART_BASE1, 36 .mapbase = MCF_MBAR + MCFUART_BASE1,
@@ -171,6 +167,14 @@ void mcf_autovector(unsigned int vec)
171 167
172/***************************************************************************/ 168/***************************************************************************/
173 169
170static void m528x_cpu_reset(void)
171{
172 local_irq_disable();
173 __raw_writeb(MCF_RCR_SWRESET, MCF_IPSBAR + MCF_RCR);
174}
175
176/***************************************************************************/
177
174#ifdef CONFIG_WILDFIRE 178#ifdef CONFIG_WILDFIRE
175void wildfire_halt(void) 179void wildfire_halt(void)
176{ 180{
@@ -214,6 +218,7 @@ void __init config_BSP(char *commandp, int size)
214 218
215static int __init init_BSP(void) 219static int __init init_BSP(void)
216{ 220{
221 mach_reset = m528x_cpu_reset;
217 m528x_uarts_init(); 222 m528x_uarts_init();
218 m528x_fec_init(); 223 m528x_fec_init();
219 platform_add_devices(m528x_devices, ARRAY_SIZE(m528x_devices)); 224 platform_add_devices(m528x_devices, ARRAY_SIZE(m528x_devices));