sh4: use single u-boot linker script for all boards
authorVladimir Zapolskiy <vz@mleia.com>
Sun, 27 Nov 2016 22:15:25 +0000 (00:15 +0200)
committerTom Rini <trini@konsulko.com>
Sat, 3 Dec 2016 02:32:46 +0000 (21:32 -0500)
Three supported SH4/SH4A boards with the bootloader image stored on
SPI flash have own flavour of a linker script, in turn they are equal
among each other. The only difference is that the text from
lowlevel_init.o is placed right after start.o, which makes sense.

Note that .bss section is not marked as NOLOAD, because for about
10 years this is a default option of a GNU linker, either the
attribute is found or not the resulting image file is the same.

Signed-off-by: Vladimir Zapolskiy <vz@mleia.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
arch/sh/cpu/u-boot.lds
board/renesas/sh7752evb/Makefile
board/renesas/sh7752evb/u-boot.lds [deleted file]
board/renesas/sh7753evb/Makefile
board/renesas/sh7753evb/u-boot.lds [deleted file]
board/renesas/sh7757lcr/Makefile
board/renesas/sh7757lcr/u-boot.lds [deleted file]
include/configs/sh7752evb.h
include/configs/sh7753evb.h
include/configs/sh7757lcr.h

index 78611c21e67dd1b741a232caafa9184f2f612990..6f38563303793f32996b3223121eb780ddaa55ce 100644 (file)
@@ -11,6 +11,8 @@
  * SPDX-License-Identifier:    GPL-2.0+
  */
 
+#include "config.h"
+
 OUTPUT_FORMAT("elf32-sh-linux", "elf32-sh-linux", "elf32-sh-linux")
 OUTPUT_ARCH(sh)
 ENTRY(_start)
@@ -29,6 +31,8 @@ SECTIONS
        .text :
        {
                KEEP(*/start.o          (.text))
+               KEEP(CONFIG_BOARDDIR/lowlevel_init.o    (.spiboot1.text))
+               KEEP(*(.spiboot2.text))
                . = ALIGN(8192);
                common/env_embedded.o   (.ppcenv)
                . = ALIGN(8192);
index 856af8138574a771bb14a8c780a818b40dd181d4..fb6eeeccda8e1c5dc075a4bfc2b2a2c3ac9f88bd 100644 (file)
@@ -4,4 +4,4 @@
 # SPDX-License-Identifier:     GPL-2.0+
 
 obj-y  := sh7752evb.o spi-boot.o
-obj-y  += lowlevel_init.o
+extra-y        += lowlevel_init.o
diff --git a/board/renesas/sh7752evb/u-boot.lds b/board/renesas/sh7752evb/u-boot.lds
deleted file mode 100644 (file)
index 6cd4056..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2007
- * Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
- *
- * Copyright (C) 2012
- * Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
- *
- * SPDX-License-Identifier:    GPL-2.0+
- */
-
-OUTPUT_FORMAT("elf32-sh-linux", "elf32-sh-linux", "elf32-sh-linux")
-OUTPUT_ARCH(sh)
-ENTRY(_start)
-
-SECTIONS
-{
-       /*
-        * entry and reloct_dst will be provided via ldflags
-        */
-       . = .;
-
-       PROVIDE (_ftext = .);
-       PROVIDE (_fcode = .);
-       PROVIDE (_start = .);
-
-       .text :
-       {
-               KEEP(arch/sh/cpu/sh4/start.o            (.text))
-               *(.spiboot1.text)
-               *(.spiboot2.text)
-               . = ALIGN(8192);
-               common/env_embedded.o   (.ppcenv)
-               . = ALIGN(8192);
-               common/env_embedded.o   (.ppcenvr)
-               . = ALIGN(8192);
-               *(.text)
-               . = ALIGN(4);
-       } =0xFF
-       PROVIDE (_ecode = .);
-       .rodata :
-       {
-               *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
-               . = ALIGN(4);
-       }
-       PROVIDE (_etext = .);
-
-
-       PROVIDE (_fdata = .);
-       .data :
-       {
-               *(.data)
-               . = ALIGN(4);
-       }
-       PROVIDE (_edata = .);
-
-       PROVIDE (_fgot = .);
-       .got :
-       {
-               *(.got)
-               . = ALIGN(4);
-       }
-       PROVIDE (_egot = .);
-
-       .u_boot_list : {
-               KEEP(*(SORT(.u_boot_list*)));
-       }
-
-       PROVIDE (__init_end = .);
-       PROVIDE (reloc_dst_end = .);
-       /* _reloc_dst_end = .; */
-
-       PROVIDE (bss_start = .);
-       PROVIDE (__bss_start = .);
-       .bss (NOLOAD) :
-       {
-               *(.bss)
-               . = ALIGN(4);
-       }
-       PROVIDE (bss_end = .);
-
-       PROVIDE (__bss_end = .);
-}
index f7c8e949f9f698b2ff36cd8fd0161b3010df25e5..429314226216cda242f4a0ca29eb00e4d0ee8e64 100644 (file)
@@ -4,4 +4,4 @@
 # SPDX-License-Identifier:     GPL-2.0+
 
 obj-y  := sh7753evb.o spi-boot.o
-obj-y  += lowlevel_init.o
+extra-y        += lowlevel_init.o
diff --git a/board/renesas/sh7753evb/u-boot.lds b/board/renesas/sh7753evb/u-boot.lds
deleted file mode 100644 (file)
index 6cd4056..0000000
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * Copyright (C) 2007
- * Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
- *
- * Copyright (C) 2012
- * Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
- *
- * SPDX-License-Identifier:    GPL-2.0+
- */
-
-OUTPUT_FORMAT("elf32-sh-linux", "elf32-sh-linux", "elf32-sh-linux")
-OUTPUT_ARCH(sh)
-ENTRY(_start)
-
-SECTIONS
-{
-       /*
-        * entry and reloct_dst will be provided via ldflags
-        */
-       . = .;
-
-       PROVIDE (_ftext = .);
-       PROVIDE (_fcode = .);
-       PROVIDE (_start = .);
-
-       .text :
-       {
-               KEEP(arch/sh/cpu/sh4/start.o            (.text))
-               *(.spiboot1.text)
-               *(.spiboot2.text)
-               . = ALIGN(8192);
-               common/env_embedded.o   (.ppcenv)
-               . = ALIGN(8192);
-               common/env_embedded.o   (.ppcenvr)
-               . = ALIGN(8192);
-               *(.text)
-               . = ALIGN(4);
-       } =0xFF
-       PROVIDE (_ecode = .);
-       .rodata :
-       {
-               *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
-               . = ALIGN(4);
-       }
-       PROVIDE (_etext = .);
-
-
-       PROVIDE (_fdata = .);
-       .data :
-       {
-               *(.data)
-               . = ALIGN(4);
-       }
-       PROVIDE (_edata = .);
-
-       PROVIDE (_fgot = .);
-       .got :
-       {
-               *(.got)
-               . = ALIGN(4);
-       }
-       PROVIDE (_egot = .);
-
-       .u_boot_list : {
-               KEEP(*(SORT(.u_boot_list*)));
-       }
-
-       PROVIDE (__init_end = .);
-       PROVIDE (reloc_dst_end = .);
-       /* _reloc_dst_end = .; */
-
-       PROVIDE (bss_start = .);
-       PROVIDE (__bss_start = .);
-       .bss (NOLOAD) :
-       {
-               *(.bss)
-               . = ALIGN(4);
-       }
-       PROVIDE (bss_end = .);
-
-       PROVIDE (__bss_end = .);
-}
index 1fa3992e1da32ad2541d69e154e7f7118478165d..f1ce0f687d17e0a3571e473e069ddcd8a6332b54 100644 (file)
@@ -4,4 +4,4 @@
 # SPDX-License-Identifier:     GPL-2.0+
 
 obj-y  := sh7757lcr.o spi-boot.o
-obj-y  += lowlevel_init.o
+extra-y        += lowlevel_init.o
diff --git a/board/renesas/sh7757lcr/u-boot.lds b/board/renesas/sh7757lcr/u-boot.lds
deleted file mode 100644 (file)
index d701367..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-/*
- * Copyright (C) 2007
- * Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
- *
- * Copyright (C) 2011
- * Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
- *
- * SPDX-License-Identifier:    GPL-2.0+
- */
-
-OUTPUT_FORMAT("elf32-sh-linux", "elf32-sh-linux", "elf32-sh-linux")
-OUTPUT_ARCH(sh)
-ENTRY(_start)
-
-SECTIONS
-{
-       /*
-        * entry and reloct_dst will be provided via ldflags
-        */
-       . = .;
-
-       PROVIDE (_ftext = .);
-       PROVIDE (_fcode = .);
-       PROVIDE (_start = .);
-
-       .text :
-       {
-               KEEP(arch/sh/cpu/sh4/start.o            (.text))
-               *(.spiboot1.text)
-               *(.spiboot2.text)
-               . = ALIGN(8192);
-               common/env_embedded.o   (.ppcenv)
-               . = ALIGN(8192);
-               common/env_embedded.o   (.ppcenvr)
-               . = ALIGN(8192);
-               *(.text)
-               . = ALIGN(4);
-       } =0xFF
-       PROVIDE (_ecode = .);
-       .rodata :
-       {
-               *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
-               . = ALIGN(4);
-       }
-       PROVIDE (_etext = .);
-
-
-       PROVIDE (_fdata = .);
-       .data :
-       {
-               *(.data)
-               . = ALIGN(4);
-       }
-       PROVIDE (_edata = .);
-
-       PROVIDE (_fgot = .);
-       .got :
-       {
-               *(.got)
-               . = ALIGN(4);
-       }
-       PROVIDE (_egot = .);
-
-
-       .u_boot_list : {
-               KEEP(*(SORT(.u_boot_list*)));
-       }
-
-       PROVIDE (__init_end = .);
-       PROVIDE (reloc_dst_end = .);
-       /* _reloc_dst_end = .; */
-
-       PROVIDE (bss_start = .);
-       PROVIDE (__bss_start = .);
-       .bss (NOLOAD) :
-       {
-               *(.bss)
-               . = ALIGN(4);
-       }
-       PROVIDE (bss_end = .);
-
-       PROVIDE (__bss_end = .);
-}
index 38bf4081383a0aad55e9160bbc763d429d91038f..23c830048306c3735072cf81befc942d2949f4a9 100644 (file)
@@ -14,7 +14,6 @@
 #define CONFIG_SH7752EVB       1
 
 #define CONFIG_SYS_TEXT_BASE   0x5ff80000
-#define CONFIG_SYS_LDSCRIPT    "board/renesas/sh7752evb/u-boot.lds"
 
 #define CONFIG_CMD_DFL
 #define CONFIG_CMD_SDRAM
index 3718bc5fb3bd230bf4e306e68d8a0738eb7e946b..9c601b5a7d0aafdf513ae1f581bdacdb81bd6c0c 100644 (file)
@@ -14,7 +14,6 @@
 #define CONFIG_SH7753EVB       1
 
 #define CONFIG_SYS_TEXT_BASE   0x5ff80000
-#define CONFIG_SYS_LDSCRIPT    "board/renesas/sh7753evb/u-boot.lds"
 
 #define CONFIG_CMD_DFL
 #define CONFIG_CMD_SDRAM
index 8820e15fc2b64098ba7632abeadcadeba6d86902..8345e539d15c1b31a9ab180738afd1f51eb11e42 100644 (file)
@@ -15,7 +15,6 @@
 #define CONFIG_SH7757LCR_DDR_ECC       1
 
 #define CONFIG_SYS_TEXT_BASE   0x8ef80000
-#define CONFIG_SYS_LDSCRIPT    "board/renesas/sh7757lcr/u-boot.lds"
 
 #define CONFIG_CMD_SDRAM
 #define CONFIG_CMD_MD5SUM