summaryrefslogtreecommitdiffstats
path: root/arch/powerpc/sysdev
diff options
context:
space:
mode:
authorStefan Roese <sr@denx.de>2008-03-28 01:43:31 +1100
committerJosh Boyer <jwboyer@linux.vnet.ibm.com>2008-04-02 20:44:56 -0500
commit93173ce272e54f81460986ff5040d16ab79488a9 (patch)
tree7bb4e15ac4cf3853f81e358fb1b21aa2fef6b4ce /arch/powerpc/sysdev
parentd2477b5cc8ca95b8c15133ffbbebf0bd9783f560 (diff)
[POWERPC] 4xx: Create common ppc4xx_reset_system() in ppc4xx_soc.c
This patch creates a common system reset routine for all 40x and 44x systems. Previously only a 44x routine existed. But since this system reset via the debug control register is common for 40x and 44x let's share this code for all those platforms in ppc4xx_soc.c. This patch also enables CONFIG_4xx_SOC for all 40x and 44x platforms. Tested on Kilauea (405EX) and Canyonlands (440EX). Signed-off-by: Stefan Roese <sr@denx.de> Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
Diffstat (limited to 'arch/powerpc/sysdev')
-rw-r--r--arch/powerpc/sysdev/ppc4xx_soc.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/powerpc/sysdev/ppc4xx_soc.c b/arch/powerpc/sysdev/ppc4xx_soc.c
index 4b8617e4431..5b32adc9a9b 100644
--- a/arch/powerpc/sysdev/ppc4xx_soc.c
+++ b/arch/powerpc/sysdev/ppc4xx_soc.c
@@ -23,6 +23,7 @@
#include <asm/dcr.h>
#include <asm/dcr-regs.h>
+#include <asm/reg.h>
static u32 dcrbase_l2c;
@@ -187,3 +188,13 @@ static int __init ppc4xx_l2c_probe(void)
return 0;
}
arch_initcall(ppc4xx_l2c_probe);
+
+/*
+ * At present, this routine just applies a system reset.
+ */
+void ppc4xx_reset_system(char *cmd)
+{
+ mtspr(SPRN_DBCR0, mfspr(SPRN_DBCR0) | DBCR0_RST_SYSTEM);
+ while (1)
+ ; /* Just in case the reset doesn't work */
+}