diff options
-rw-r--r-- | cpu/arm1136/cpu.c | 8 | ||||
-rw-r--r-- | cpu/arm1176/cpu.c | 8 | ||||
-rw-r--r-- | cpu/arm720t/cpu.c | 8 | ||||
-rw-r--r-- | cpu/arm920t/cpu.c | 8 | ||||
-rw-r--r-- | cpu/arm925t/cpu.c | 8 | ||||
-rw-r--r-- | cpu/arm926ejs/cpu.c | 8 | ||||
-rw-r--r-- | cpu/arm946es/cpu.c | 10 | ||||
-rw-r--r-- | cpu/arm_cortexa8/cpu.c | 9 | ||||
-rw-r--r-- | cpu/arm_intcm/cpu.c | 10 | ||||
-rw-r--r-- | cpu/ixp/cpu.c | 12 | ||||
-rw-r--r-- | cpu/lh7a40x/cpu.c | 9 | ||||
-rw-r--r-- | cpu/pxa/cpu.c | 12 | ||||
-rw-r--r-- | cpu/s3c44b0/cpu.c | 9 | ||||
-rw-r--r-- | cpu/sa1100/cpu.c | 12 | ||||
-rw-r--r-- | lib_arm/Makefile | 1 | ||||
-rw-r--r-- | lib_arm/reset.c | 53 |
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; +} |