Commit 7f72b47c authored by Greg Ungerer's avatar Greg Ungerer

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: default avatarGreg Ungerer <gerg@uclinux.org>
parent 769f3e8c
...@@ -264,18 +264,18 @@ static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int siz ...@@ -264,18 +264,18 @@ static inline unsigned long __xchg(unsigned long x, volatile void * ptr, int siz
: /* No output */ \ : /* No output */ \
: "o" (*(char *)MCF_MBAR) ); \ : "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), * Most of the newer ColdFire family members have a proper RESET unit.
* that when set, resets the MCF528x. * Use the software reset control bit in the Reset Control Register (RCR).
*/ */
#define HARD_RESET_NOW() \ #define HARD_RESET_NOW() \
({ \ ({ \
unsigned char volatile *reset; \ unsigned char volatile *reset; \
asm("move.w #0x2700, %sr"); \ asm("move.w #0x2700, %sr"); \
reset = ((volatile unsigned char *)(MCF_IPSBAR + 0x110000)); \ reset = ((volatile unsigned char *)(MCF_IPSBAR + 0x110000)); \
while(1) \ while (1) \
*reset |= (0x01 << 7);\ *reset |= (0x01 << 7); \
}) })
#elif defined(CONFIG_M523x) #elif defined(CONFIG_M523x)
#define HARD_RESET_NOW() ({ \ #define HARD_RESET_NOW() ({ \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment