Re: [U-Boot] [RESEND][PATCH 22/24] sh: share the correct version of start.S among all cpus

2016-11-29 Thread Simon Glass
On 27 November 2016 at 15:15, Vladimir Zapolskiy  wrote:
> 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 
> ---
>  arch/sh/Makefile |  2 +-
>  arch/sh/cpu/sh2/Makefile |  1 -
>  arch/sh/cpu/sh2/start.S  | 66 
> 
>  arch/sh/cpu/sh3/Makefile |  1 -
>  arch/sh/cpu/sh3/start.S  | 65 ---
>  arch/sh/cpu/sh4/Makefile |  1 -
>  arch/sh/lib/Makefile |  2 ++
>  arch/sh/{cpu/sh4 => lib}/start.S |  6 
>  8 files changed, 9 insertions(+), 135 deletions(-)
>  delete mode 100644 arch/sh/cpu/sh2/start.S
>  delete mode 100644 arch/sh/cpu/sh3/start.S
>  rename arch/sh/{cpu/sh4 => lib}/start.S (87%)

Reviewed-by: Simon Glass 
___
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot


[U-Boot] [RESEND][PATCH 22/24] sh: share the correct version of start.S among all cpus

2016-11-27 Thread Vladimir Zapolskiy
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 
---
 arch/sh/Makefile |  2 +-
 arch/sh/cpu/sh2/Makefile |  1 -
 arch/sh/cpu/sh2/start.S  | 66 
 arch/sh/cpu/sh3/Makefile |  1 -
 arch/sh/cpu/sh3/start.S  | 65 ---
 arch/sh/cpu/sh4/Makefile |  1 -
 arch/sh/lib/Makefile |  2 ++
 arch/sh/{cpu/sh4 => lib}/start.S |  6 
 8 files changed, 9 insertions(+), 135 deletions(-)
 delete mode 100644 arch/sh/cpu/sh2/start.S
 delete mode 100644 arch/sh/cpu/sh3/start.S
 rename arch/sh/{cpu/sh4 => lib}/start.S (87%)

diff --git a/arch/sh/Makefile b/arch/sh/Makefile
index ca55fac..14e0b66 100644
--- a/arch/sh/Makefile
+++ b/arch/sh/Makefile
@@ -2,7 +2,7 @@
 # SPDX-License-Identifier: GPL-2.0+
 #
 
-head-y := arch/sh/cpu/$(CPU)/start.o
+head-y := arch/sh/lib/start.o
 
 libs-y += arch/sh/cpu/$(CPU)/
 libs-y += arch/sh/lib/
diff --git a/arch/sh/cpu/sh2/Makefile b/arch/sh/cpu/sh2/Makefile
index a19ed5e..80fff49 100644
--- a/arch/sh/cpu/sh2/Makefile
+++ b/arch/sh/cpu/sh2/Makefile
@@ -8,5 +8,4 @@
 # SPDX-License-Identifier: GPL-2.0+
 #
 
-extra-y= start.o
 obj-y  = cpu.o interrupts.o watchdog.o
diff --git a/arch/sh/cpu/sh2/start.S b/arch/sh/cpu/sh2/start.S
deleted file mode 100644
index 6171edc..000
--- a/arch/sh/cpu/sh2/start.S
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Copyright (C) 2007,2008 Nobuhiro Iwamatsu 
- * Copyright (C) 2008 Renesas Solutions Corp.
-
- * SPDX-License-Identifier:GPL-2.0+
- */
-
-#include 
-#include 
-
-   .text
-   .align  2
-
-   .global _start
-_sh_start:
-   .long 0x0010/* Ppower ON reset PC*/
-   .long 0x
-   .long 0x0010/* Manual reset PC */
-   .long 0x
-_init:
-   mov.l   ._lowlevel_init, r0
-100:   bsrfr0
-   nop
-   bsr 1f
-   nop
-1: sts pr, r5
-   mov.l   ._reloc_dst, r4
-   add #(_sh_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 */
-
-   #TODO(sh maintainer): Fix this up to call the correct code
-   #mov.l  ._sh_generic_init, r0
-   #jsr@r0
-   nop
-
-loop:
-   bra loop
-
-   .align  2
-
-._lowlevel_init:   .long   (lowlevel_init - (100b + 4))
-._reloc_dst:   .long   reloc_dst
-._reloc_dst_end:   .long   reloc_dst_end
-._bss_start:   .long   bss_start
-._bss_end: .long   bss_end
-._gd_init: .long   (_sh_start - GENERATED_GBL_DATA_SIZE)
-._stack_init:  .long   (_sh_start - GENERATED_GBL_DATA_SIZE - 
CONFIG_SYS_MALLOC_LEN - 16)
-#._sh_generic_init:.long   sh_generic_init
diff --git a/arch/sh/cpu/sh3/Makefile b/arch/sh/cpu/sh3/Makefile
index 85917b9..cddc15b 100644
--- a/arch/sh/cpu/sh3/Makefile
+++ b/arch/sh/cpu/sh3/Makefile
@@ -11,5 +11,4 @@
 # SPDX-License-Identifier: GPL-2.0+
 #
 
-extra-y= start.o
 obj-y  = cpu.o interrupts.o watchdog.o
diff --git a/arch/sh/cpu/sh3/start.S b/arch/sh/cpu/sh3/start.S
deleted file mode 100644
index 9ed7198..000
--- a/arch/sh/cpu/sh3/start.S
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * (C) Copyright 2007
- * Yoshihiro Shimoda 
- *
- * (C) Copyright 2007
- * Nobuhiro Iwamatsu 
- *
- * SPDX-License-Identifier:GPL-2.0+
- */
-
-#include 
-#include 
-
-   .text
-   .align  2
-
-   .global _start
-_sh_start:
-   mov.l   ._lowlevel_init, r0
-100:   bsrfr0
-   nop
-
-   bsr 1f
-   nop
-1: sts pr, r5
-   mov.l   ._reloc_dst, r4
-   add #(_sh_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 */
-
-   #TODO(sh maintainer): Fix this up to call the correct code
-   #mov.l