[U-Boot] [PATCH 3/3] arm: unify reset command
Jean-Christophe PLAGNIOL-VILLARD
plagnioj at jcrosoft.com
Mon Mar 30 18:48:20 CEST 2009
Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
---
cpu/arm1136/cpu.c | 8 ----
cpu/arm1176/cpu.c | 8 ----
cpu/arm720t/cpu.c | 8 ----
cpu/arm920t/cpu.c | 8 ----
cpu/arm925t/cpu.c | 8 ----
cpu/arm926ejs/cpu.c | 8 ----
cpu/arm946es/cpu.c | 10 -----
cpu/arm_cortexa8/cpu.c | 9 ----
cpu/arm_intcm/cpu.c | 10 -----
cpu/ixp/cpu.c | 12 ------
cpu/lh7a40x/cpu.c | 9 ----
cpu/pxa/cpu.c | 12 ------
cpu/s3c44b0/cpu.c | 9 ----
cpu/sa1100/cpu.c | 12 ------
lib_arm/Makefile | 1 +
cpu/s3c44b0/cpu.c => lib_arm/reset.c | 68 +++++++++------------------------
16 files changed, 20 insertions(+), 180 deletions(-)
copy cpu/s3c44b0/cpu.c => lib_arm/reset.c (58%)
diff --git a/cpu/arm1136/cpu.c b/cpu/arm1136/cpu.c
index 78f6e92..e03a765 100644
--- a/cpu/arm1136/cpu.c
+++ b/cpu/arm1136/cpu.c
@@ -83,14 +83,6 @@ int cleanup_before_linux (void)
return 0;
}
-int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- disable_interrupts ();
- reset_cpu (0);
- /*NOTREACHED*/
- return(0);
-}
-
static void cache_flush(void)
{
unsigned long i = 0;
diff --git a/cpu/arm1176/cpu.c b/cpu/arm1176/cpu.c
index 8aefbe3..bfa4378 100644
--- a/cpu/arm1176/cpu.c
+++ b/cpu/arm1176/cpu.c
@@ -79,14 +79,6 @@ void reset_cpu (ulong ignored)
/*NOTREACHED*/
}
-int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- disable_interrupts ();
- reset_cpu (0);
- /*NOTREACHED*/
- return 0;
-}
-
/* flush I/D-cache */
static void cache_flush (void)
{
diff --git a/cpu/arm720t/cpu.c b/cpu/arm720t/cpu.c
index a6f5c4d..6c40903 100644
--- a/cpu/arm720t/cpu.c
+++ b/cpu/arm720t/cpu.c
@@ -86,14 +86,6 @@ int cleanup_before_linux (void)
return 0;
}
-int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- disable_interrupts ();
- reset_cpu (0);
- /*NOTREACHED*/
- return (0);
-}
-
#if defined(CONFIG_IMPA7) || defined(CONFIG_EP7312) || defined(CONFIG_ARMADILLO)
/* flush I/D-cache */
static void cache_flush (void)
diff --git a/cpu/arm920t/cpu.c b/cpu/arm920t/cpu.c
index 08c9339..87c1adc 100644
--- a/cpu/arm920t/cpu.c
+++ b/cpu/arm920t/cpu.c
@@ -72,14 +72,6 @@ int cleanup_before_linux (void)
return 0;
}
-int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- disable_interrupts ();
- reset_cpu (0);
- /*NOTREACHED*/
- return 0;
-}
-
/* flush I/D-cache */
static void cache_flush (void)
{
diff --git a/cpu/arm925t/cpu.c b/cpu/arm925t/cpu.c
index eb6364d..cf6a489 100644
--- a/cpu/arm925t/cpu.c
+++ b/cpu/arm925t/cpu.c
@@ -73,14 +73,6 @@ int cleanup_before_linux (void)
return 0;
}
-int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- disable_interrupts ();
- reset_cpu (0);
- /*NOTREACHED*/
- return (0);
-}
-
/* flush I/D-cache */
static void cache_flush (void)
{
diff --git a/cpu/arm926ejs/cpu.c b/cpu/arm926ejs/cpu.c
index 84c169e..6307e33 100644
--- a/cpu/arm926ejs/cpu.c
+++ b/cpu/arm926ejs/cpu.c
@@ -73,14 +73,6 @@ int cleanup_before_linux (void)
return 0;
}
-int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- disable_interrupts ();
- reset_cpu (0);
- /*NOTREACHED*/
- return (0);
-}
-
/* flush I/D-cache */
static void cache_flush (void)
{
diff --git a/cpu/arm946es/cpu.c b/cpu/arm946es/cpu.c
index 8d0c533..ef7995d 100644
--- a/cpu/arm946es/cpu.c
+++ b/cpu/arm946es/cpu.c
@@ -76,16 +76,6 @@ int cleanup_before_linux (void)
return 0;
}
-int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- extern void reset_cpu (ulong addr);
-
- disable_interrupts ();
- reset_cpu (0);
- /*NOTREACHED*/
- return (0);
-}
-
/* flush I/D-cache */
static void cache_flush (void)
{
diff --git a/cpu/arm_cortexa8/cpu.c b/cpu/arm_cortexa8/cpu.c
index 64ee972..5e7b935 100644
--- a/cpu/arm_cortexa8/cpu.c
+++ b/cpu/arm_cortexa8/cpu.c
@@ -95,15 +95,6 @@ int cleanup_before_linux(void)
return 0;
}
-int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- disable_interrupts();
- reset_cpu(0);
-
- /* NOTREACHED */
- return 0;
-}
-
void l2cache_enable()
{
unsigned long i;
diff --git a/cpu/arm_intcm/cpu.c b/cpu/arm_intcm/cpu.c
index ea6747a..1636ffb 100644
--- a/cpu/arm_intcm/cpu.c
+++ b/cpu/arm_intcm/cpu.c
@@ -66,13 +66,3 @@ int cleanup_before_linux (void)
return (0);
}
-
-int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- extern void reset_cpu (ulong addr);
-
- disable_interrupts ();
- reset_cpu (0);
- /*NOTREACHED*/
- return (0);
-}
diff --git a/cpu/ixp/cpu.c b/cpu/ixp/cpu.c
index d9cfbab..42c62f6 100644
--- a/cpu/ixp/cpu.c
+++ b/cpu/ixp/cpu.c
@@ -113,18 +113,6 @@ int cleanup_before_linux (void)
return 0;
}
-int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- printf ("resetting ...\n");
-
- udelay (50000); /* wait 50 ms */
- disable_interrupts ();
- reset_cpu (0);
-
- /*NOTREACHED*/
- return (0);
-}
-
/* flush I/D-cache */
static void cache_flush (void)
{
diff --git a/cpu/lh7a40x/cpu.c b/cpu/lh7a40x/cpu.c
index e862251..93ebd13 100644
--- a/cpu/lh7a40x/cpu.c
+++ b/cpu/lh7a40x/cpu.c
@@ -73,15 +73,6 @@ int cleanup_before_linux (void)
return 0;
}
-int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- disable_interrupts ();
- reset_cpu (0);
- /*NOTREACHED*/
- return (0);
-}
-
-
/* flush I/D-cache */
static void cache_flush (void)
{
diff --git a/cpu/pxa/cpu.c b/cpu/pxa/cpu.c
index ab58d39..3a1be57 100644
--- a/cpu/pxa/cpu.c
+++ b/cpu/pxa/cpu.c
@@ -74,18 +74,6 @@ int cleanup_before_linux (void)
return (0);
}
-int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- printf ("resetting ...\n");
-
- udelay (50000); /* wait 50 ms */
- disable_interrupts ();
- reset_cpu (0);
-
- /*NOTREACHED*/
- return (0);
-}
-
/* flush I/D-cache */
static void cache_flush (void)
{
diff --git a/cpu/s3c44b0/cpu.c b/cpu/s3c44b0/cpu.c
index e4cdb82..7ef4a1f 100644
--- a/cpu/s3c44b0/cpu.c
+++ b/cpu/s3c44b0/cpu.c
@@ -72,12 +72,3 @@ void reset_cpu (ulong addr)
/*NOP*/
}
}
-
-int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- disable_interrupts ();
- reset_cpu (0);
-
- /*NOTREACHED*/
- return (0);
-}
diff --git a/cpu/sa1100/cpu.c b/cpu/sa1100/cpu.c
index 6c897d0..ed1a6f7 100644
--- a/cpu/sa1100/cpu.c
+++ b/cpu/sa1100/cpu.c
@@ -73,18 +73,6 @@ int cleanup_before_linux (void)
return (0);
}
-int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- printf ("resetting ...\n");
-
- udelay (50000); /* wait 50 ms */
- disable_interrupts ();
- reset_cpu (0);
-
- /*NOTREACHED*/
- return (0);
-}
-
/* flush I/D-cache */
static void cache_flush (void)
{
diff --git a/lib_arm/Makefile b/lib_arm/Makefile
index 3ac9d1f..4469361 100644
--- a/lib_arm/Makefile
+++ b/lib_arm/Makefile
@@ -40,6 +40,7 @@ COBJS-y += cache-cp15.o
endif
COBJS-y += div0.o
COBJS-y += interrupts.o
+COBJS-y += reset.o
SRCS := $(SOBJS-y:.o=.S) $(COBJS-y:.o=.c)
OBJS := $(addprefix $(obj),$(SOBJS-y) $(COBJS-y))
diff --git a/cpu/s3c44b0/cpu.c b/lib_arm/reset.c
similarity index 58%
copy from cpu/s3c44b0/cpu.c
copy to lib_arm/reset.c
index e4cdb82..550d1e5 100644
--- a/cpu/s3c44b0/cpu.c
+++ b/lib_arm/reset.c
@@ -1,10 +1,23 @@
/*
+ * (C) Copyright 2002
+ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
+ * Marius Groeger <mgroeger at sysgo.de>
+ *
+ * (C) Copyright 2002
+ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
+ * Alex Zuepke <azu at sysgo.de>
+ *
+ * (C) Copyright 2002
+ * Gary Jennejohn, DENX Software Engineering, <gj at denx.de>
+ *
* (C) Copyright 2004
* DAVE Srl
* http://www.dave-tech.it
* http://www.wawnet.biz
* mailto:info at wawnet.biz
*
+ * (C) Copyright 2004 Texas Insturments
+ *
* See file CREDITS for list of people who contributed to this
* project.
*
@@ -24,60 +37,17 @@
* MA 02111-1307 USA
*/
-/*
- * S3C44B0 CPU specific code
- */
-
#include <common.h>
-#include <command.h>
-#include <asm/hardware.h>
-
-int cpu_init (void)
-{
- icache_enable();
-
- return 0;
-}
-int cleanup_before_linux (void)
+int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
{
- /*
- cache memory should be enabled before calling
- Linux to make the kernel uncompression faster
- */
- icache_enable();
+ puts ("resetting ...\n");
- disable_interrupts ();
+ udelay (50000); /* wait 50 ms */
- return 0;
-}
-
-void reset_cpu (ulong addr)
-{
- /*
- reset the cpu using watchdog
- */
-
- /* Disable the watchdog.*/
- WTCON&=~(1<<5);
-
- /* set the timeout value to a short time... */
- WTCNT = 0x1;
-
- /* Enable the watchdog. */
- WTCON|=1;
- WTCON|=(1<<5);
-
- while(1) {
- /*NOP*/
- }
-}
-
-int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
-{
- disable_interrupts ();
- reset_cpu (0);
+ disable_interrupts();
+ reset_cpu(0);
/*NOTREACHED*/
- return (0);
+ return 0;
}
--
1.6.2.1
More information about the U-Boot
mailing list