From 7f72b47cedd1efc301576ff1050ec0a26c57eb48 Mon Sep 17 00:00:00 2001 From: Greg Ungerer Date: Tue, 28 Apr 2009 14:13:21 +1000 Subject: m68knommu: fix system reset for ColdFire 527x family The sofwtare reset control for the 527x ColdFire family is based on the same Reset Control Unit as the 528x ColdFire family. So use the same reset code for both. Signed-off-by: Greg Ungerer --- arch/m68k/include/asm/system_no.h | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/arch/m68k/include/asm/system_no.h b/arch/m68k/include/asm/system_no.h index 4496c0aa8379..5fbc96d933ce 100644 --- a/arch/m68k/include/asm/system_no.h +++ b/arch/m68k/include/asm/system_no.h @@ -264,18 +264,18 @@ static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int siz : /* No output */ \ : "o" (*(char *)MCF_MBAR) ); \ }) -#elif defined(CONFIG_M528x) +#elif defined(CONFIG_M528x) || defined(CONFIG_M527x) /* - * The MCF528x has a bit (SOFTRST) in memory (Reset Control Register RCR), - * that when set, resets the MCF528x. + * Most of the newer ColdFire family members have a proper RESET unit. + * Use the software reset control bit in the Reset Control Register (RCR). */ #define HARD_RESET_NOW() \ -({ \ - unsigned char volatile *reset; \ - asm("move.w #0x2700, %sr"); \ +({ \ + unsigned char volatile *reset; \ + asm("move.w #0x2700, %sr"); \ reset = ((volatile unsigned char *)(MCF_IPSBAR + 0x110000)); \ - while(1) \ - *reset |= (0x01 << 7);\ + while (1) \ + *reset |= (0x01 << 7); \ }) #elif defined(CONFIG_M523x) #define HARD_RESET_NOW() ({ \ -- cgit v1.2.2