Browse Source

ColdFire: MCF532x - Update do_reset() using core reset

Signed-off-by: TsiChungLiew <Tsi-Chung.Liew@freescale.com>
TsiChungLiew 17 years ago
parent
commit
248c7c1483
3 changed files with 19 additions and 7 deletions
  1. 2 6
      cpu/mcf532x/cpu.c
  2. 2 1
      include/asm-m68k/immap_5329.h
  3. 15 0
      include/asm-m68k/m5329.h

+ 2 - 6
cpu/mcf532x/cpu.c

@@ -35,14 +35,10 @@ DECLARE_GLOBAL_DATA_PTR;
 
 int do_reset(cmd_tbl_t * cmdtp, bd_t * bd, int flag, int argc, char *argv[])
 {
-	volatile wdog_t *wdp = (wdog_t *) (MMAP_WDOG);
+	volatile rcm_t *rcm = (rcm_t *) (MMAP_RCM);
 
-	wdp->cr = 0;
 	udelay(1000);
-
-	/* enable watchdog, set timeout to 0 and wait */
-	wdp->cr = WTM_WCR_EN;
-	while (1) ;
+	rcm->rcr |= RCM_RCR_SOFTRST;
 
 	/* we don't return! */
 	return 0;

+ 2 - 1
include/asm-m68k/immap_5329.h

@@ -57,7 +57,8 @@
 #define MMAP_PWM	0xFC090000
 #define MMAP_EPORT	0xFC094000
 #define MMAP_WDOG	0xFC098000
-#define MMAP_CCM	0xFC0A0000
+#define MMAP_RCM	0xFC0A0000
+#define MMAP_CCM	0xFC0A0004
 #define MMAP_GPIO	0xFC0A4000
 #define MMAP_RTC	0xFC0A8000
 #define MMAP_LCDC	0xFC0AC000

+ 15 - 0
include/asm-m68k/m5329.h

@@ -245,6 +245,21 @@
 #define CSCR_BSTR			(0x00000010)
 #define CSCR_BSTW			(0x00000008)
 
+/*********************************************************************
+* Reset Controller Module (RCM)
+*********************************************************************/
+
+/* Bit definitions and macros for RCR */
+#define RCM_RCR_FRCRSTOUT		(0x40)
+#define RCM_RCR_SOFTRST			(0x80)
+
+/* Bit definitions and macros for RSR */
+#define RCM_RSR_LOL			(0x01)
+#define RCM_RSR_WDR_CORE		(0x02)
+#define RCM_RSR_EXT			(0x04)
+#define RCM_RSR_POR			(0x08)
+#define RCM_RSR_SOFT			(0x20)
+
 /*********************************************************************
 * FlexCAN Module (CAN)
 *********************************************************************/