All 3 SH processor variants have the same do_reset() and reset_cpu() function implementations. Furthermore, the only caller of the reset_cpu() function on SH is do_reset().
To simplify and prepare for SH generic-restart support this patch removes 38 lines of code by merging the functions together and moving them into common code. Signed-off-by: Kyle Moffett <kyle.d.moff...@boeing.com> Cc: Nobuhiro Iwamatsu <iwama...@nigauri.org> --- arch/sh/cpu/sh2/cpu.c | 7 ------- arch/sh/cpu/sh2/watchdog.c | 9 --------- arch/sh/cpu/sh3/cpu.c | 7 ------- arch/sh/cpu/sh3/watchdog.c | 9 --------- arch/sh/cpu/sh4/cpu.c | 7 ------- arch/sh/cpu/sh4/watchdog.c | 9 --------- arch/sh/lib/board.c | 10 ++++++++++ 7 files changed, 10 insertions(+), 48 deletions(-) diff --git a/arch/sh/cpu/sh2/cpu.c b/arch/sh/cpu/sh2/cpu.c index 6bbedd9..a88fcad 100644 --- a/arch/sh/cpu/sh2/cpu.c +++ b/arch/sh/cpu/sh2/cpu.c @@ -59,13 +59,6 @@ int cleanup_before_linux(void) return 0; } -int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) -{ - disable_interrupts(); - reset_cpu(0); - return 0; -} - void flush_cache(unsigned long addr, unsigned long size) { diff --git a/arch/sh/cpu/sh2/watchdog.c b/arch/sh/cpu/sh2/watchdog.c index 0257d8d..df7f263 100644 --- a/arch/sh/cpu/sh2/watchdog.c +++ b/arch/sh/cpu/sh2/watchdog.c @@ -26,12 +26,3 @@ int watchdog_init(void) { return 0; } - -void reset_cpu(unsigned long ignored) -{ - /* Address error with SR.BL=1 first. */ - trigger_address_error(); - - while (1) - ; -} diff --git a/arch/sh/cpu/sh3/cpu.c b/arch/sh/cpu/sh3/cpu.c index 3e9caad..824daab 100644 --- a/arch/sh/cpu/sh3/cpu.c +++ b/arch/sh/cpu/sh3/cpu.c @@ -45,13 +45,6 @@ int cleanup_before_linux(void) return 0; } -int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) -{ - disable_interrupts(); - reset_cpu(0); - return 0; -} - void flush_cache(unsigned long addr, unsigned long size) { diff --git a/arch/sh/cpu/sh3/watchdog.c b/arch/sh/cpu/sh3/watchdog.c index 90694f8..1dff27a 100644 --- a/arch/sh/cpu/sh3/watchdog.c +++ b/arch/sh/cpu/sh3/watchdog.c @@ -29,12 +29,3 @@ int watchdog_init(void) { return 0; } - -void reset_cpu(unsigned long ignored) -{ - /* Address error with SR.BL=1 first. */ - trigger_address_error(); - - while (1) - ; -} diff --git a/arch/sh/cpu/sh4/cpu.c b/arch/sh/cpu/sh4/cpu.c index f136758..264dafb 100644 --- a/arch/sh/cpu/sh4/cpu.c +++ b/arch/sh/cpu/sh4/cpu.c @@ -44,13 +44,6 @@ int cleanup_before_linux (void) return 0; } -int do_reset (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) -{ - disable_interrupts(); - reset_cpu (0); - return 0; -} - void flush_cache (unsigned long addr, unsigned long size) { dcache_invalid_range( addr , addr + size ); diff --git a/arch/sh/cpu/sh4/watchdog.c b/arch/sh/cpu/sh4/watchdog.c index d7e1703..cbc08f8 100644 --- a/arch/sh/cpu/sh4/watchdog.c +++ b/arch/sh/cpu/sh4/watchdog.c @@ -64,12 +64,3 @@ int watchdog_disable(void) return 0; } #endif - -void reset_cpu(unsigned long ignored) -{ - /* Address error with SR.BL=1 first. */ - trigger_address_error(); - - while (1) - ; -} diff --git a/arch/sh/lib/board.c b/arch/sh/lib/board.c index 968566c..07361b4 100644 --- a/arch/sh/lib/board.c +++ b/arch/sh/lib/board.c @@ -204,6 +204,16 @@ void sh_generic_init(void) /***********************************************************************/ +int do_reset(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) +{ + disable_interrupts(); + + /* Address error with SR.BL=1 first. */ + trigger_address_error(); + + while (1); +} + void hang(void) { puts("Board ERROR\n"); -- 1.7.2.3 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot