summaryrefslogtreecommitdiff
path: root/cpu/ppc4xx/cpu.c
diff options
context:
space:
mode:
authorroy zang <tie-fei.zang@freescale.com>2006-12-04 23:57:35 +0800
committerZang Tiefei <roy@bus.ap.freescale.net>2006-12-04 23:57:35 +0800
commitd3bb5ec198edad4869ac5276a5899881b7bf5433 (patch)
tree409a70e937d5f826df7929d11cb08a7cd207f5cd /cpu/ppc4xx/cpu.c
parent41862d13a87ec58c21166b10fcb754c963bc46f2 (diff)
parent9d27b3a0685ff99fc477983f315c04d49f657a8a (diff)
downloadu-boot-imx-d3bb5ec198edad4869ac5276a5899881b7bf5433.zip
u-boot-imx-d3bb5ec198edad4869ac5276a5899881b7bf5433.tar.gz
u-boot-imx-d3bb5ec198edad4869ac5276a5899881b7bf5433.tar.bz2
Merge /home/roy/CVS/7448/Open_Source/u-boot.git.dev
Diffstat (limited to 'cpu/ppc4xx/cpu.c')
-rw-r--r--cpu/ppc4xx/cpu.c28
1 files changed, 16 insertions, 12 deletions
diff --git a/cpu/ppc4xx/cpu.c b/cpu/ppc4xx/cpu.c
index f4a7208..9c5c910 100644
--- a/cpu/ppc4xx/cpu.c
+++ b/cpu/ppc4xx/cpu.c
@@ -41,6 +41,10 @@
DECLARE_GLOBAL_DATA_PTR;
#endif
+#if defined(CONFIG_BOARD_RESET)
+void board_reset(void);
+#endif
+
#if defined(CONFIG_440)
#define FREQ_EBC (sys_info.freqEPB)
#else
@@ -336,6 +340,10 @@ int checkcpu (void)
puts("SP Rev. B");
break;
+ case PVR_440SP_RC:
+ puts("SP Rev. C");
+ break;
+
case PVR_440SPe_RA:
puts("SPe Rev. A");
break;
@@ -422,23 +430,19 @@ int ppc440spe_revB() {
int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
{
-#if defined(CONFIG_YOSEMITE) || defined(CONFIG_YELLOWSTONE)
- /*give reset to BCSR*/
- *(unsigned char*)(CFG_BCSR_BASE | 0x06) = 0x09;
-
+#if defined(CONFIG_BOARD_RESET)
+ board_reset();
+#else
+#if defined(CFG_4xx_RESET_TYPE)
+ mtspr(dbcr0, CFG_4xx_RESET_TYPE << 28);
#else
-
/*
* Initiate system reset in debug control register DBCR
*/
- __asm__ __volatile__("lis 3, 0x3000" ::: "r3");
-#if defined(CONFIG_440)
- __asm__ __volatile__("mtspr 0x134, 3");
-#else
- __asm__ __volatile__("mtspr 0x3f2, 3");
-#endif
+ mtspr(dbcr0, 0x30000000);
+#endif /* defined(CFG_4xx_RESET_TYPE) */
+#endif /* defined(CONFIG_BOARD_RESET) */
-#endif/* defined(CONFIG_YOSEMITE) || defined(CONFIG_YELLOWSTONE)*/
return 1;
}