diff options
author | Vladimir Zapolskiy <vz@mleia.com> | 2016-11-28 00:15:34 +0200 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2016-12-02 21:32:53 -0500 |
commit | 3500581ef3461c7cf5ca6fef7b45dd2dee0df28e (patch) | |
tree | 4f830b74f45b000c2728688aec1bd151eaea1c7b /arch/sh/cpu/sh4 | |
parent | 9c141b2bd72f9e51bd627580be7ffca93ba9b2d4 (diff) |
sh: share the correct version of start.S among all cpus
It is easy to note that SH2/SH3/SH4 start.S code is practically
the same with a minor difference for SH2 where a short data header is
present. To avoid unwanted code duplication and to automatically
convert SH2 and SH3 platforms to generic board support move fixed SH4
start.S into arch/sh/lib/start.S and share it among all platforms.
Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'arch/sh/cpu/sh4')
-rw-r--r-- | arch/sh/cpu/sh4/Makefile | 1 | ||||
-rw-r--r-- | arch/sh/cpu/sh4/start.S | 61 |
2 files changed, 0 insertions, 62 deletions
diff --git a/arch/sh/cpu/sh4/Makefile b/arch/sh/cpu/sh4/Makefile index 38c6188c38..976994b082 100644 --- a/arch/sh/cpu/sh4/Makefile +++ b/arch/sh/cpu/sh4/Makefile @@ -8,5 +8,4 @@ # SPDX-License-Identifier: GPL-2.0+ # -extra-y = start.o obj-y = cpu.o interrupts.o watchdog.o cache.o diff --git a/arch/sh/cpu/sh4/start.S b/arch/sh/cpu/sh4/start.S deleted file mode 100644 index 416adcfb1c..0000000000 --- a/arch/sh/cpu/sh4/start.S +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright (C) 2016 Vladimir Zapolskiy <vz@mleia.com> - * Copyright (C) 2007, 2010 Nobuhiro Iwamatsu <iwamatsu@nigauri.org> - * - * SPDX-License-Identifier: GPL-2.0+ - */ - -#include <asm-offsets.h> -#include <config.h> - - .text - .align 2 - - .global _start -_start: - mov.l ._lowlevel_init, r0 -100: bsrf r0 - nop - - bsr 1f - nop -1: sts pr, r5 - mov.l ._reloc_dst, r4 - add #(_start-1b), r5 - mov.l ._reloc_dst_end, r6 - -2: mov.l @r5+, r1 - mov.l r1, @r4 - add #4, r4 - cmp/hs r6, r4 - bf 2b - - mov.l ._bss_start, r4 - mov.l ._bss_end, r5 - mov #0, r1 - -3: mov.l r1, @r4 /* bss clear */ - add #4, r4 - cmp/hs r5, r4 - bf 3b - - mov.l ._gd_init, r13 /* global data */ - mov.l ._stack_init, r15 /* stack */ - - mov.l ._sh_generic_init, r0 - jsr @r0 - mov #0, r4 - -loop: - bra loop - - .align 2 - -._lowlevel_init: .long (lowlevel_init - (100b + 4)) -._reloc_dst: .long _start -._reloc_dst_end: .long reloc_dst_end -._bss_start: .long bss_start -._bss_end: .long bss_end -._gd_init: .long (_start - GENERATED_GBL_DATA_SIZE) -._stack_init: .long (_start - GENERATED_GBL_DATA_SIZE - CONFIG_SYS_MALLOC_LEN - 16) -._sh_generic_init: .long board_init_f |