summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cpu/arm1136/cpu.c8
-rw-r--r--cpu/arm1176/cpu.c8
-rw-r--r--cpu/arm720t/cpu.c8
-rw-r--r--cpu/arm920t/cpu.c8
-rw-r--r--cpu/arm925t/cpu.c8
-rw-r--r--cpu/arm926ejs/cpu.c8
-rw-r--r--cpu/arm946es/cpu.c10
-rw-r--r--cpu/arm_cortexa8/cpu.c9
-rw-r--r--cpu/arm_intcm/cpu.c10
-rw-r--r--cpu/ixp/cpu.c12
-rw-r--r--cpu/lh7a40x/cpu.c9
-rw-r--r--cpu/pxa/cpu.c12
-rw-r--r--cpu/s3c44b0/cpu.c9
-rw-r--r--cpu/sa1100/cpu.c12
-rw-r--r--lib_arm/Makefile1
-rw-r--r--lib_arm/reset.c53
16 files changed, 54 insertions, 131 deletions
diff --git a/cpu/arm1136/cpu.c b/cpu/arm1136/cpu.c
index 78f6e928f9d..e03a7654347 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 8aefbe37c8f..bfa437835cc 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 a6f5c4d8bb6..6c40903b7db 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 08c9339a35b..87c1adc5912 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 eb6364d6945..cf6a4891019 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 84c169e9b14..6307e3389d8 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 8d0c53343a9..ef7995d609b 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 64ee9723251..5e7b935e4b9 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 ea6747ae963..1636ffb1ff8 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 d9cfbabc16c..42c62f6e397 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 e862251ca2d..93ebd13234b 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 ab58d39efcd..3a1be57f44a 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 e4cdb823b4a..7ef4a1fdb0d 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 6c897d0d56e..ed1a6f7cd30 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 3ac9d1f0937..4469361a8ac 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/lib_arm/reset.c b/lib_arm/reset.c
new file mode 100644
index 00000000000..550d1e59c70
--- /dev/null
+++ b/lib_arm/reset.c
@@ -0,0 +1,53 @@
+/*
+ * (C) Copyright 2002
+ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
+ * Marius Groeger <mgroeger@sysgo.de>
+ *
+ * (C) Copyright 2002
+ * Sysgo Real-Time Solutions, GmbH <www.elinos.com>
+ * Alex Zuepke <azu@sysgo.de>
+ *
+ * (C) Copyright 2002
+ * Gary Jennejohn, DENX Software Engineering, <gj@denx.de>
+ *
+ * (C) Copyright 2004
+ * DAVE Srl
+ * http://www.dave-tech.it
+ * http://www.wawnet.biz
+ * mailto:info@wawnet.biz
+ *
+ * (C) Copyright 2004 Texas Insturments
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#include <common.h>
+
+int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+{
+ puts ("resetting ...\n");
+
+ udelay (50000); /* wait 50 ms */
+
+ disable_interrupts();
+ reset_cpu(0);
+
+ /*NOTREACHED*/
+ return 0;
+}