[U-Boot-Users] [PATCH] Fixed MPC8548CDS post-reset freeze

Kim Phillips kim.phillips at freescale.com
Wed Nov 15 19:00:26 CET 2006


From: Dai Haruki <Dai.Haruki at freescale.com>

Fixed MPC8548CDS post-reset freeze

- Add MPC8543,8548_E SVR symbol
- Add Reset control register into global utility structure
- Fix MPC8548 family post-reset freeze

Signed-off-by: Dai Haruki <dai.haruki at freescale.com>
---

 cpu/mpc85xx/cpu.c            |   10 +++++++++-
 include/asm-ppc/immap_85xx.h |   14 ++++++++------
 include/asm-ppc/processor.h  |    2 ++
 3 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/cpu/mpc85xx/cpu.c b/cpu/mpc85xx/cpu.c
index 0507c47..0277f2c 100644
--- a/cpu/mpc85xx/cpu.c
+++ b/cpu/mpc85xx/cpu.c
@@ -145,7 +145,15 @@ int do_reset (cmd_tbl_t *cmdtp, bd_t *bd
 	 * Make sure MSR[DE] = 1
 	 */
 	unsigned long val;
-
+	unsigned long svr;
+
+	svr = SVR_VER(get_svr());
+	svr &= 0xfff3;  /* mask SEC flag */
+	if ( (svr == SVR_8548) || (svr == SVR_8543) ) {
+		volatile immap_t *immap = (immap_t *)CFG_IMMR;
+		volatile ccsr_gur_t *gur = &immap->im_gur;
+		gur->rstcr = 0x2;
+	}
 	val = mfspr(DBCR0);
 	val |= 0x70000000;
 	mtspr(DBCR0,val);
diff --git a/include/asm-ppc/immap_85xx.h b/include/asm-ppc/immap_85xx.h
index 7a4345a..a16fc5b 100644
--- a/include/asm-ppc/immap_85xx.h
+++ b/include/asm-ppc/immap_85xx.h
@@ -1574,19 +1574,21 @@ typedef struct ccsr_gur {
 	char	res9[12];
 	uint	pvr;		/* 0xe00a0 - Processor version register */
 	uint	svr;		/* 0xe00a4 - System version register */
-	char	res10[3416];
+	char    res10[8];
+	uint	rstcr;		/* 0xe00b0 - Reset control register */
+	char	res11[3404];
 	uint	clkocr;		/* 0xe0e00 - Clock out select register */
-	char	res11[12];
-	uint	ddrdllcr;	/* 0xe0e10 - DDR DLL control register */
 	char	res12[12];
+	uint	ddrdllcr;	/* 0xe0e10 - DDR DLL control register */
+	char	res13[12];
 	uint	lbcdllcr;	/* 0xe0e20 - LBC DLL control register */
-	char	res13[248];
+	char	res14[248];
 	uint	lbiuiplldcr0;	/* 0xe0f1c -- LBIU PLL Debug Reg 0 */
 	uint	lbiuiplldcr1;	/* 0xe0f20 -- LBIU PLL Debug Reg 1 */
 	uint	ddrioovcr;	/* 0xe0f24 - DDR IO Override Control */
-	uint	res14;		/* 0xe0f28 */
+	uint	res15;		/* 0xe0f28 */
 	uint	tsec34ioovcr;	/* 0xe0f2c - eTSEC 3/4 IO override control */
-	char	res15[61651];
+	char	res16[61651];
 } ccsr_gur_t;
 
 #define PORDEVSR_PCI	(0x00800000)	/* PCI Mode */
diff --git a/include/asm-ppc/processor.h b/include/asm-ppc/processor.h
index 388dea4..5320fab 100644
--- a/include/asm-ppc/processor.h
+++ b/include/asm-ppc/processor.h
@@ -827,6 +827,8 @@ #define SVR_8540	0x8030
 #define SVR_8560	0x8070
 #define SVR_8555	0x8079
 #define SVR_8541	0x807A
+#define SVR_8543	0x8032
+#define SVR_8543_E	0x803A
 #define SVR_8548	0x8031
 #define SVR_8548_E	0x8039
 #define SVR_8641	0x8090
--
1.4.0




More information about the U-Boot mailing list