* [U-Boot] [PATCH] Handle most LDSCRIPT setting centrally
@ 2011-04-06 23:31 Scott Wood
2011-04-07 7:11 ` Wolfgang Denk
` (3 more replies)
0 siblings, 4 replies; 8+ messages in thread
From: Scott Wood @ 2011-04-06 23:31 UTC (permalink / raw)
To: u-boot
Currently, some linker scripts are found by common code in config.mk.
Some are found using CONFIG_SYS_LDSCRIPT, but the code for that is
sometimes in arch config.mk and sometimes in board config.mk. Some
are found using an arch-specific rule for looking in CPUDIR, etc.
Further, the powerpc config.mk rule relied on CONFIG_NAND_SPL
when it really wanted CONFIG_NAND_U_BOOT -- which covered up the fact
that not all NAND_U_BOOT builds actually wanted CPUDIR/u-boot-nand.lds.
Replace all of this -- except for a handful of boards that are actually
selecting a linker script in a unique way -- with centralized ldscript
finding.
If board code specifies LDSCRIPT, that will be used.
Otherwise, if CONFIG_SYS_LDSCRIPT is specified, that will be used.
If neither of these are specified, then the central config.mk will
check for the existence of the following, in order:
$(TOPDIR)/board/$(BOARDDIR)/u-boot-nand.lds (only if CONFIG_NAND_U_BOOT)
$(TOPDIR)/$(CPUDIR)/u-boot-nand.lds (only if CONFIG_NAND_U_BOOT)
$(TOPDIR)/board/$(BOARDDIR)/u-boot.lds
$(TOPDIR)/$(CPUDIR)/u-boot.lds
Some boards (sc3, cm5200, munices) provided their own u-boot.lds that
were dead code, because they were overridden by a CPUDIR u-boot.lds under
the old powerpc rules. These boards' own u-boot.lds have bitrotted and
no longer work -- these lds files have been removed.
Signed-off-by: Scott Wood <scottwood@freescale.com>
---
"./MAKEALL ppc" had identical output with and without this patch.
I tried building some arm boards, but couldn't find any that built for
me even without this patch. They didn't appear to fail differently with
it, though.
arch/arm/config.mk | 1 -
arch/i386/config.mk | 1 -
arch/nios2/config.mk | 2 -
arch/powerpc/config.mk | 11 ---
arch/sh/config.mk | 6 --
board/actux1/config.mk | 2 -
board/actux2/config.mk | 2 -
board/actux3/config.mk | 2 -
board/altera/nios2-generic/config.mk | 2 -
board/amcc/acadia/config.mk | 7 --
board/amcc/bamboo/config.mk | 7 --
board/amcc/canyonlands/config.mk | 7 --
board/amcc/kilauea/config.mk | 7 --
board/amcc/sequoia/config.mk | 7 --
board/atmel/atstk1000/config.mk | 1 -
board/avnet/fx12mm/config.mk | 29 ------
board/avnet/v5fx30teval/config.mk | 29 ------
board/cm5200/u-boot.lds | 120 --------------------------
board/cogent/config.mk | 2 -
board/earthlcd/favr-32-ezkit/config.mk | 1 -
board/freescale/mx31ads/config.mk | 2 -
board/hymod/config.mk | 2 -
board/munices/u-boot.lds | 120 --------------------------
board/samsung/smdk6400/config.mk | 2 -
board/sc3/u-boot.lds | 147 --------------------------------
board/trab/config.mk | 2 -
board/xilinx/ml507/config.mk | 4 -
board/xilinx/ppc405-generic/config.mk | 4 -
board/xilinx/ppc440-generic/config.mk | 4 -
config.mk | 33 ++++++-
30 files changed, 28 insertions(+), 538 deletions(-)
delete mode 100644 board/avnet/fx12mm/config.mk
delete mode 100644 board/avnet/v5fx30teval/config.mk
delete mode 100644 board/cm5200/u-boot.lds
delete mode 100644 board/munices/u-boot.lds
delete mode 100644 board/sc3/u-boot.lds
delete mode 100644 board/xilinx/ml507/config.mk
delete mode 100644 board/xilinx/ppc405-generic/config.mk
delete mode 100644 board/xilinx/ppc440-generic/config.mk
diff --git a/arch/arm/config.mk b/arch/arm/config.mk
index a6a4742..709eba9 100644
--- a/arch/arm/config.mk
+++ b/arch/arm/config.mk
@@ -63,7 +63,6 @@ ifeq (,$(findstring arch/arm/lib/eabi_compat.o,$(PLATFORM_LIBS)))
PLATFORM_LIBS += $(OBJTREE)/arch/arm/lib/eabi_compat.o
endif
endif
-LDSCRIPT := $(SRCTREE)/$(CPUDIR)/u-boot.lds
# needed for relocation
ifndef CONFIG_NAND_SPL
diff --git a/arch/i386/config.mk b/arch/i386/config.mk
index 47e0fb4..d6e43d1 100644
--- a/arch/i386/config.mk
+++ b/arch/i386/config.mk
@@ -39,4 +39,3 @@ PLATFORM_RELFLAGS += -ffunction-sections -fvisibility=hidden
PLATFORM_LDFLAGS += --emit-relocs -Bsymbolic -Bsymbolic-functions
LDFLAGS_FINAL += --gc-sections -pie
-LDSCRIPT := $(SRCTREE)/$(CPUDIR)/u-boot.lds
diff --git a/arch/nios2/config.mk b/arch/nios2/config.mk
index d241a96..e58ea24 100644
--- a/arch/nios2/config.mk
+++ b/arch/nios2/config.mk
@@ -29,7 +29,5 @@ STANDALONE_LOAD_ADDR ?= 0x02000000
PLATFORM_CPPFLAGS += -DCONFIG_NIOS2 -D__NIOS2__
PLATFORM_CPPFLAGS += -G0
-LDSCRIPT ?= $(SRCTREE)/$(CPUDIR)/u-boot.lds
-
LDFLAGS_FINAL += --gc-sections
PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
diff --git a/arch/powerpc/config.mk b/arch/powerpc/config.mk
index 31e4416..bb613a7 100644
--- a/arch/powerpc/config.mk
+++ b/arch/powerpc/config.mk
@@ -29,17 +29,6 @@ PLATFORM_RELFLAGS += -mrelocatable -ffunction-sections -fdata-sections
PLATFORM_CPPFLAGS += -DCONFIG_PPC -D__powerpc__
PLATFORM_LDFLAGS += -n
-ifdef CONFIG_SYS_LDSCRIPT
-# need to strip off double quotes
-LDSCRIPT := $(subst ",,$(CONFIG_SYS_LDSCRIPT))
-else ifdef CONFIG_NAND_SPL
-LDSCRIPT := $(SRCTREE)/$(CONFIG_BOARDDIR)/u-boot-nand.lds
-else
-ifneq ($(wildcard $(SRCTREE)/arch/powerpc/cpu/$(CPU)/u-boot.lds),)
-LDSCRIPT := $(SRCTREE)/arch/powerpc/cpu/$(CPU)/u-boot.lds
-endif
-endif
-
#
# When cross-compiling on NetBSD, we have to define __PPC__ or else we
# will pick up a va_list declaration that is incompatible with the
diff --git a/arch/sh/config.mk b/arch/sh/config.mk
index cd851f5..b5be5f2 100644
--- a/arch/sh/config.mk
+++ b/arch/sh/config.mk
@@ -31,9 +31,3 @@ endif
PLATFORM_CPPFLAGS += -DCONFIG_SH -D__SH__
PLATFORM_LDFLAGS += -e $(CONFIG_SYS_TEXT_BASE) --defsym reloc_dst=$(CONFIG_SYS_TEXT_BASE)
LDFLAGS_FINAL = --gc-sections
-
-ifdef CONFIG_SYS_LDSCRIPT
-LDSCRIPT := $(subst ",,$(CONFIG_SYS_LDSCRIPT))
-else
-LDSCRIPT := $(SRCTREE)/$(CPUDIR)/u-boot.lds
-endif
diff --git a/board/actux1/config.mk b/board/actux1/config.mk
index 88634f7..9cb838b 100644
--- a/board/actux1/config.mk
+++ b/board/actux1/config.mk
@@ -2,5 +2,3 @@ CONFIG_SYS_TEXT_BASE = 0x00e00000
# include NPE ethernet driver
BOARDLIBS = arch/arm/cpu/ixp/npe/libnpe.o
-
-LDSCRIPT := $(SRCTREE)/board/$(BOARDDIR)/u-boot.lds
diff --git a/board/actux2/config.mk b/board/actux2/config.mk
index 88634f7..9cb838b 100644
--- a/board/actux2/config.mk
+++ b/board/actux2/config.mk
@@ -2,5 +2,3 @@ CONFIG_SYS_TEXT_BASE = 0x00e00000
# include NPE ethernet driver
BOARDLIBS = arch/arm/cpu/ixp/npe/libnpe.o
-
-LDSCRIPT := $(SRCTREE)/board/$(BOARDDIR)/u-boot.lds
diff --git a/board/actux3/config.mk b/board/actux3/config.mk
index 88634f7..9cb838b 100644
--- a/board/actux3/config.mk
+++ b/board/actux3/config.mk
@@ -2,5 +2,3 @@ CONFIG_SYS_TEXT_BASE = 0x00e00000
# include NPE ethernet driver
BOARDLIBS = arch/arm/cpu/ixp/npe/libnpe.o
-
-LDSCRIPT := $(SRCTREE)/board/$(BOARDDIR)/u-boot.lds
diff --git a/board/altera/nios2-generic/config.mk b/board/altera/nios2-generic/config.mk
index 95e75af..00c16fc 100644
--- a/board/altera/nios2-generic/config.mk
+++ b/board/altera/nios2-generic/config.mk
@@ -30,5 +30,3 @@ PLATFORM_CPPFLAGS += -I$(TOPDIR)/board/$(VENDOR)/include
ifeq ($(debug),1)
PLATFORM_CPPFLAGS += -DDEBUG
endif
-
-LDSCRIPT := $(SRCTREE)/board/$(VENDOR)/$(BOARD)/u-boot.lds
diff --git a/board/amcc/acadia/config.mk b/board/amcc/acadia/config.mk
index 2f2787f..bfc0945 100644
--- a/board/amcc/acadia/config.mk
+++ b/board/amcc/acadia/config.mk
@@ -28,10 +28,3 @@
ifeq ($(debug),1)
PLATFORM_CPPFLAGS += -DDEBUG
endif
-
-ifdef CONFIG_SYS_LDSCRIPT
-# need to strip off double quotes
-LDSCRIPT := $(subst ",,$(CONFIG_SYS_LDSCRIPT))
-else ifdef CONFIG_NAND_U_BOOT
-LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot-nand.lds
-endif
diff --git a/board/amcc/bamboo/config.mk b/board/amcc/bamboo/config.mk
index 7ca16a0..24f74e1 100644
--- a/board/amcc/bamboo/config.mk
+++ b/board/amcc/bamboo/config.mk
@@ -30,10 +30,3 @@ endif
ifeq ($(dbcr),1)
PLATFORM_CPPFLAGS += -DCONFIG_SYS_INIT_DBCR=0x8cff0000
endif
-
-ifdef CONFIG_SYS_LDSCRIPT
-# need to strip off double quotes
-LDSCRIPT := $(subst ",,$(CONFIG_SYS_LDSCRIPT))
-else ifdef CONFIG_NAND_U_BOOT
-LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot-nand.lds
-endif
diff --git a/board/amcc/canyonlands/config.mk b/board/amcc/canyonlands/config.mk
index abf2a26..d693a26 100644
--- a/board/amcc/canyonlands/config.mk
+++ b/board/amcc/canyonlands/config.mk
@@ -33,10 +33,3 @@ endif
ifeq ($(dbcr),1)
PLATFORM_CPPFLAGS += -DCONFIG_SYS_INIT_DBCR=0x8cff0000
endif
-
-ifdef CONFIG_SYS_LDSCRIPT
-# need to strip off double quotes
-LDSCRIPT := $(subst ",,$(CONFIG_SYS_LDSCRIPT))
-else ifdef CONFIG_NAND_U_BOOT
-LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot-nand.lds
-endif
diff --git a/board/amcc/kilauea/config.mk b/board/amcc/kilauea/config.mk
index 4ae3ea9..003b8c3 100644
--- a/board/amcc/kilauea/config.mk
+++ b/board/amcc/kilauea/config.mk
@@ -24,10 +24,3 @@
ifeq ($(debug),1)
PLATFORM_CPPFLAGS += -DDEBUG
endif
-
-ifdef CONFIG_SYS_LDSCRIPT
-# need to strip off double quotes
-LDSCRIPT := $(subst ",,$(CONFIG_SYS_LDSCRIPT))
-else ifdef CONFIG_NAND_U_BOOT
-LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot-nand.lds
-endif
diff --git a/board/amcc/sequoia/config.mk b/board/amcc/sequoia/config.mk
index 73efe72..e0bf071 100644
--- a/board/amcc/sequoia/config.mk
+++ b/board/amcc/sequoia/config.mk
@@ -33,10 +33,3 @@ endif
ifeq ($(dbcr),1)
PLATFORM_CPPFLAGS += -DCONFIG_SYS_INIT_DBCR=0x8cff0000
endif
-
-ifdef CONFIG_SYS_LDSCRIPT
-# need to strip off double quotes
-LDSCRIPT := $(subst ",,$(CONFIG_SYS_LDSCRIPT))
-else ifdef CONFIG_NAND_U_BOOT
-LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot-nand.lds
-endif
diff --git a/board/atmel/atstk1000/config.mk b/board/atmel/atstk1000/config.mk
index 8c03b77..284f7ff 100644
--- a/board/atmel/atstk1000/config.mk
+++ b/board/atmel/atstk1000/config.mk
@@ -1,4 +1,3 @@
PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
PLATFORM_LDFLAGS += --gc-sections
CONFIG_SYS_TEXT_BASE = 0x00000000
-LDSCRIPT = $(src)board/atmel/atstk1000/u-boot.lds
diff --git a/board/avnet/fx12mm/config.mk b/board/avnet/fx12mm/config.mk
deleted file mode 100644
index 78dde62..0000000
--- a/board/avnet/fx12mm/config.mk
+++ /dev/null
@@ -1,29 +0,0 @@
-#
-# (C) Copyright 2008
-# Ricardo Ribalda-Universidad Autonoma de Madrid-ricardo.ribalda at uam.es
-# Work supported by Qtechnology http://www.qtec.com
-#
-# 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
-#
-#
-
-ifdef CONFIG_SYS_LDSCRIPT
-# need to strip off double quotes
-LDSCRIPT := $(subst ",,$(CONFIG_SYS_LDSCRIPT))
-endif
diff --git a/board/avnet/v5fx30teval/config.mk b/board/avnet/v5fx30teval/config.mk
deleted file mode 100644
index 78dde62..0000000
--- a/board/avnet/v5fx30teval/config.mk
+++ /dev/null
@@ -1,29 +0,0 @@
-#
-# (C) Copyright 2008
-# Ricardo Ribalda-Universidad Autonoma de Madrid-ricardo.ribalda at uam.es
-# Work supported by Qtechnology http://www.qtec.com
-#
-# 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
-#
-#
-
-ifdef CONFIG_SYS_LDSCRIPT
-# need to strip off double quotes
-LDSCRIPT := $(subst ",,$(CONFIG_SYS_LDSCRIPT))
-endif
diff --git a/board/cm5200/u-boot.lds b/board/cm5200/u-boot.lds
deleted file mode 100644
index cf73b11..0000000
--- a/board/cm5200/u-boot.lds
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * (C) Copyright 2003-2007
- * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
- *
- * 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
- */
-
-OUTPUT_ARCH(powerpc)
-SECTIONS
-{
- /* Read-only sections, merged into text segment: */
- . = + SIZEOF_HEADERS;
- .interp : { *(.interp) }
- .hash : { *(.hash) }
- .dynsym : { *(.dynsym) }
- .dynstr : { *(.dynstr) }
- .rel.text : { *(.rel.text) }
- .rela.text : { *(.rela.text) }
- .rel.data : { *(.rel.data) }
- .rela.data : { *(.rela.data) }
- .rel.rodata : { *(.rel.rodata) }
- .rela.rodata : { *(.rela.rodata) }
- .rel.got : { *(.rel.got) }
- .rela.got : { *(.rela.got) }
- .rel.ctors : { *(.rel.ctors) }
- .rela.ctors : { *(.rela.ctors) }
- .rel.dtors : { *(.rel.dtors) }
- .rela.dtors : { *(.rela.dtors) }
- .rel.bss : { *(.rel.bss) }
- .rela.bss : { *(.rela.bss) }
- .rel.plt : { *(.rel.plt) }
- .rela.plt : { *(.rela.plt) }
- .init : { *(.init) }
- .plt : { *(.plt) }
- .text :
- {
- arch/powerpc/cpu/mpc5xxx/start.o (.text)
- *(.text)
- *(.got1)
- . = ALIGN(16);
- *(.eh_frame)
- *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
- }
- .fini : { *(.fini) } =0
- .ctors : { *(.ctors) }
- .dtors : { *(.dtors) }
-
- /* Read-write section, merged into data segment: */
- . = (. + 0x0FFF) & 0xFFFFF000;
- _erotext = .;
- PROVIDE (erotext = .);
- .reloc :
- {
- *(.got)
- _GOT2_TABLE_ = .;
- *(.got2)
- _FIXUP_TABLE_ = .;
- *(.fixup)
- }
- __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
- __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
-
- .data :
- {
- *(.data)
- *(.data1)
- *(.sdata)
- *(.sdata2)
- *(.dynamic)
- CONSTRUCTORS
- }
- _edata = .;
- PROVIDE (edata = .);
-
- . = .;
- __u_boot_cmd_start = .;
- .u_boot_cmd : { *(.u_boot_cmd) }
- __u_boot_cmd_end = .;
-
-
- . = .;
- __start___ex_table = .;
- __ex_table : { *(__ex_table) }
- __stop___ex_table = .;
-
- . = ALIGN(4096);
- __init_begin = .;
- .text.init : { *(.text.init) }
- .data.init : { *(.data.init) }
- . = ALIGN(4096);
- __init_end = .;
-
- __bss_start = .;
- .bss (NOLOAD) :
- {
- *(.sbss) *(.scommon)
- *(.dynbss)
- *(.bss)
- *(COMMON)
- . = ALIGN(4);
- }
- __bss_end__ = . ;
- PROVIDE (end = .);
-}
diff --git a/board/cogent/config.mk b/board/cogent/config.mk
index 78730db..12e2e7c 100644
--- a/board/cogent/config.mk
+++ b/board/cogent/config.mk
@@ -26,5 +26,3 @@
#
PLATFORM_CPPFLAGS += -I$(TOPDIR)
-
-LDSCRIPT := $(SRCTREE)/board/cogent/u-boot.lds
diff --git a/board/earthlcd/favr-32-ezkit/config.mk b/board/earthlcd/favr-32-ezkit/config.mk
index f8bc88d..284f7ff 100644
--- a/board/earthlcd/favr-32-ezkit/config.mk
+++ b/board/earthlcd/favr-32-ezkit/config.mk
@@ -1,4 +1,3 @@
PLATFORM_RELFLAGS += -ffunction-sections -fdata-sections
PLATFORM_LDFLAGS += --gc-sections
CONFIG_SYS_TEXT_BASE = 0x00000000
-LDSCRIPT = $(src)board/earthlcd/favr-32-ezkit/u-boot.lds
diff --git a/board/freescale/mx31ads/config.mk b/board/freescale/mx31ads/config.mk
index 2303f30..0131edf 100644
--- a/board/freescale/mx31ads/config.mk
+++ b/board/freescale/mx31ads/config.mk
@@ -1,3 +1 @@
CONFIG_SYS_TEXT_BASE = 0x87f00000
-
-LDSCRIPT := $(SRCTREE)/board/$(BOARDDIR)/u-boot.lds
diff --git a/board/hymod/config.mk b/board/hymod/config.mk
index ae766bc..ea64004 100644
--- a/board/hymod/config.mk
+++ b/board/hymod/config.mk
@@ -28,5 +28,3 @@
PLATFORM_CPPFLAGS += -I$(TOPDIR)
OBJCFLAGS = --remove-section=.ppcenv
-
-LDSCRIPT := $(SRCTREE)/board/hymod/u-boot.lds
diff --git a/board/munices/u-boot.lds b/board/munices/u-boot.lds
deleted file mode 100644
index 99576bf..0000000
--- a/board/munices/u-boot.lds
+++ /dev/null
@@ -1,120 +0,0 @@
-/*
- * (C) Copyright 2007
- * Heiko Schocher, DENX Software Engineering, hs at denx.de.
- *
- * 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
- */
-
-OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
- __DYNAMIC = 0; */
-SECTIONS
-{
- /* Read-only sections, merged into text segment: */
- . = + SIZEOF_HEADERS;
- .interp : { *(.interp) }
- .hash : { *(.hash) }
- .dynsym : { *(.dynsym) }
- .dynstr : { *(.dynstr) }
- .rel.text : { *(.rel.text) }
- .rela.text : { *(.rela.text) }
- .rel.data : { *(.rel.data) }
- .rela.data : { *(.rela.data) }
- .rel.rodata : { *(.rel.rodata) }
- .rela.rodata : { *(.rela.rodata) }
- .rel.got : { *(.rel.got) }
- .rela.got : { *(.rela.got) }
- .rel.ctors : { *(.rel.ctors) }
- .rela.ctors : { *(.rela.ctors) }
- .rel.dtors : { *(.rel.dtors) }
- .rela.dtors : { *(.rela.dtors) }
- .rel.bss : { *(.rel.bss) }
- .rela.bss : { *(.rela.bss) }
- .rel.plt : { *(.rel.plt) }
- .rela.plt : { *(.rela.plt) }
- .init : { *(.init) }
- .plt : { *(.plt) }
- .text :
- {
- arch/powerpc/cpu/mpc5xxx/start.o (.text)
- *(.text)
- *(.got1)
- . = ALIGN(16);
- *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
- }
- .fini : { *(.fini) } =0
- .ctors : { *(.ctors) }
- .dtors : { *(.dtors) }
-
- /* Read-write section, merged into data segment: */
- . = (. + 0x0FFF) & 0xFFFFF000;
- _erotext = .;
- PROVIDE (erotext = .);
- .reloc :
- {
- *(.got)
- _GOT2_TABLE_ = .;
- *(.got2)
- _FIXUP_TABLE_ = .;
- *(.fixup)
- }
- __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >> 2;
- __fixup_entries = (. - _FIXUP_TABLE_) >> 2;
-
- .data :
- {
- *(.data)
- *(.data1)
- *(.sdata)
- *(.sdata2)
- *(.dynamic)
- CONSTRUCTORS
- }
- _edata = .;
- PROVIDE (edata = .);
-
- . = .;
- __u_boot_cmd_start = .;
- .u_boot_cmd : { *(.u_boot_cmd) }
- __u_boot_cmd_end = .;
-
-
- __start___ex_table = .;
- __ex_table : { *(__ex_table) }
- __stop___ex_table = .;
-
- . = ALIGN(4096);
- __init_begin = .;
- .text.init : { *(.text.init) }
- .data.init : { *(.data.init) }
- . = ALIGN(4096);
- __init_end = .;
-
- __bss_start = .;
- .bss (NOLOAD) :
- {
- *(.sbss) *(.scommon)
- *(.dynbss)
- *(.bss)
- *(COMMON)
- . = ALIGN(4);
- }
- __bss_end__ = . ;
- PROVIDE (end = .);
-}
diff --git a/board/samsung/smdk6400/config.mk b/board/samsung/smdk6400/config.mk
index 90cbcf2..6f04c2f 100644
--- a/board/samsung/smdk6400/config.mk
+++ b/board/samsung/smdk6400/config.mk
@@ -28,5 +28,3 @@ CONFIG_SYS_TEXT_BASE = $(RAM_TEXT)
else
CONFIG_SYS_TEXT_BASE = 0
endif
-
-LDSCRIPT := $(SRCTREE)/board/$(BOARDDIR)/u-boot-nand.lds
diff --git a/board/sc3/u-boot.lds b/board/sc3/u-boot.lds
deleted file mode 100644
index 2cbbca5..0000000
--- a/board/sc3/u-boot.lds
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * (C) Copyright 2000
- * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
- *
- * 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
- */
-
-OUTPUT_ARCH(powerpc)
-/* Do we need any of these for elf?
- __DYNAMIC = 0; */
-SECTIONS
-{
- .resetvec 0xFFFFFFFC :
- {
- *(.resetvec)
- } = 0xffff
-
- /* Read-only sections, merged into text segment: */
- . = + SIZEOF_HEADERS;
- .interp : { *(.interp) }
- .hash : { *(.hash) }
- .dynsym : { *(.dynsym) }
- .dynstr : { *(.dynstr) }
- .rel.text : { *(.rel.text) }
- .rela.text : { *(.rela.text) }
- .rel.data : { *(.rel.data) }
- .rela.data : { *(.rela.data) }
- .rel.rodata : { *(.rel.rodata) }
- .rela.rodata : { *(.rela.rodata) }
- .rel.got : { *(.rel.got) }
- .rela.got : { *(.rela.got) }
- .rel.ctors : { *(.rel.ctors) }
- .rela.ctors : { *(.rela.ctors) }
- .rel.dtors : { *(.rel.dtors) }
- .rela.dtors : { *(.rela.dtors) }
- .rel.bss : { *(.rel.bss) }
- .rela.bss : { *(.rela.bss) }
- .rel.plt : { *(.rel.plt) }
- .rela.plt : { *(.rela.plt) }
- .init : { *(.init) }
- .plt : { *(.plt) }
- .text :
- {
- /* WARNING - the following is hand-optimized to fit within */
- /* the sector layout of our flash chips! XXX FIXME XXX */
-
- arch/powerpc/cpu/ppc4xx/start.o (.text)
- board/sc3/init.o (.text)
- arch/powerpc/cpu/ppc4xx/kgdb.o (.text)
- arch/powerpc/cpu/ppc4xx/traps.o (.text)
- arch/powerpc/cpu/ppc4xx/interrupts.o (.text)
- arch/powerpc/cpu/ppc4xx/4xx_uart.o (.text)
- arch/powerpc/cpu/ppc4xx/cpu_init.o (.text)
- arch/powerpc/cpu/ppc4xx/speed.o (.text)
- common/dlmalloc.o (.text)
- lib/crc32.o (.text)
- arch/powerpc/lib/extable.o (.text)
- lib/zlib.o (.text)
-
-/* . = env_offset;*/
-/* common/env_embedded.o(.text)*/
-
- *(.text)
- *(.got1)
- }
- _etext = .;
- PROVIDE (etext = .);
- .rodata :
- {
- *(.eh_frame)
- *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
- }
- .fini : { *(.fini) } =0
- .ctors : { *(.ctors) }
- .dtors : { *(.dtors) }
-
- /* Read-write section, merged into data segment: */
- . = (. + 0x00FF) & 0xFFFFFF00;
- _erotext = .;
- PROVIDE (erotext = .);
- .reloc :
- {
- *(.got)
- _GOT2_TABLE_ = .;
- *(.got2)
- _FIXUP_TABLE_ = .;
- *(.fixup)
- }
- __got2_entries = (_FIXUP_TABLE_ - _GOT2_TABLE_) >>2;
- __fixup_entries = (. - _FIXUP_TABLE_)>>2;
-
- .data :
- {
- *(.data)
- *(.data1)
- *(.sdata)
- *(.sdata2)
- *(.dynamic)
- CONSTRUCTORS
- }
- _edata = .;
- PROVIDE (edata = .);
-
- . = .;
- __u_boot_cmd_start = .;
- .u_boot_cmd : { *(.u_boot_cmd) }
- __u_boot_cmd_end = .;
-
- __start___ex_table = .;
- __ex_table : { *(__ex_table) }
- __stop___ex_table = .;
-
- . = ALIGN(256);
- __init_begin = .;
- .text.init : { *(.text.init) }
- .data.init : { *(.data.init) }
- . = ALIGN(256);
- __init_end = .;
-
- __bss_start = .;
- .bss (NOLOAD) :
- {
- *(.sbss) *(.scommon)
- *(.dynbss)
- *(.bss)
- *(COMMON)
- . = ALIGN(4);
- }
- __bss_end__ = . ;
- PROVIDE (end = .);
-}
diff --git a/board/trab/config.mk b/board/trab/config.mk
index a349b8c..367f0b7 100644
--- a/board/trab/config.mk
+++ b/board/trab/config.mk
@@ -24,5 +24,3 @@ sinclude $(OBJTREE)/board/$(BOARDDIR)/config.tmp
ifndef CONFIG_SYS_TEXT_BASE
CONFIG_SYS_TEXT_BASE = 0x0DF40000
endif
-
-LDSCRIPT := $(SRCTREE)/board/$(BOARDDIR)/u-boot.lds
diff --git a/board/xilinx/ml507/config.mk b/board/xilinx/ml507/config.mk
deleted file mode 100644
index 4df1d9c..0000000
--- a/board/xilinx/ml507/config.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-# need to strip off double quotes
-ifneq ($(CONFIG_SYS_LDSCRIPT),)
-LDSCRIPT := $(subst ",,$(CONFIG_SYS_LDSCRIPT))
-endif
diff --git a/board/xilinx/ppc405-generic/config.mk b/board/xilinx/ppc405-generic/config.mk
deleted file mode 100644
index 4df1d9c..0000000
--- a/board/xilinx/ppc405-generic/config.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-# need to strip off double quotes
-ifneq ($(CONFIG_SYS_LDSCRIPT),)
-LDSCRIPT := $(subst ",,$(CONFIG_SYS_LDSCRIPT))
-endif
diff --git a/board/xilinx/ppc440-generic/config.mk b/board/xilinx/ppc440-generic/config.mk
deleted file mode 100644
index 4df1d9c..0000000
--- a/board/xilinx/ppc440-generic/config.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-# need to strip off double quotes
-ifneq ($(CONFIG_SYS_LDSCRIPT),)
-LDSCRIPT := $(subst ",,$(CONFIG_SYS_LDSCRIPT))
-endif
diff --git a/config.mk b/config.mk
index fa46ff1..7ce554e 100644
--- a/config.mk
+++ b/config.mk
@@ -153,14 +153,37 @@ endif
RELFLAGS= $(PLATFORM_RELFLAGS)
DBGFLAGS= -g # -DDEBUG
OPTFLAGS= -Os #-fomit-frame-pointer
+
+# If board code explicitly specified LDSCRIPT or CONFIG_SYS_LDSCRIPT, use
+# that (or fail if absent). Otherwise, search for a linker script in a
+# standard location.
+
ifndef LDSCRIPT
-#LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds.debug
-ifeq ($(CONFIG_NAND_U_BOOT),y)
-LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot-nand.lds
-else
-LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds
+ #LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds.debug
+ ifdef CONFIG_SYS_LDSCRIPT
+ # need to strip off double quotes
+ LDSCRIPT := $(subst ",,$(CONFIG_SYS_LDSCRIPT))
+ endif
endif
+
+ifndef LDSCRIPT
+ ifeq ($(CONFIG_NAND_U_BOOT),y)
+ LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot-nand.lds
+ ifeq ($(wildcard $(LDSCRIPT)),)
+ LDSCRIPT := $(TOPDIR)/$(CPUDIR)/u-boot-nand.lds
+ endif
+ endif
+ ifeq ($(wildcard $(LDSCRIPT)),)
+ LDSCRIPT := $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds
+ endif
+ ifeq ($(wildcard $(LDSCRIPT)),)
+ LDSCRIPT := $(TOPDIR)/$(CPUDIR)/u-boot.lds
+ endif
+ ifeq ($(wildcard $(LDSCRIPT)),)
+$(error could not find linker script)
+ endif
endif
+
OBJCFLAGS += --gap-fill=0xff
gccincdir := $(shell $(CC) -print-file-name=include)
--
1.7.1
^ permalink raw reply related [flat|nested] 8+ messages in thread* [U-Boot] [PATCH] Handle most LDSCRIPT setting centrally
2011-04-06 23:31 [U-Boot] [PATCH] Handle most LDSCRIPT setting centrally Scott Wood
@ 2011-04-07 7:11 ` Wolfgang Denk
2011-04-07 16:01 ` Scott Wood
2011-04-07 19:55 ` Mike Frysinger
` (2 subsequent siblings)
3 siblings, 1 reply; 8+ messages in thread
From: Wolfgang Denk @ 2011-04-07 7:11 UTC (permalink / raw)
To: u-boot
Dear Scott Wood,
In message <20110406233136.GA13709@schlenkerla.am.freescale.net> you wrote:
> Currently, some linker scripts are found by common code in config.mk.
> Some are found using CONFIG_SYS_LDSCRIPT, but the code for that is
> sometimes in arch config.mk and sometimes in board config.mk. Some
> are found using an arch-specific rule for looking in CPUDIR, etc.
>
> Further, the powerpc config.mk rule relied on CONFIG_NAND_SPL
> when it really wanted CONFIG_NAND_U_BOOT -- which covered up the fact
> that not all NAND_U_BOOT builds actually wanted CPUDIR/u-boot-nand.lds.
>
> Replace all of this -- except for a handful of boards that are actually
> selecting a linker script in a unique way -- with centralized ldscript
> finding.
Thanks for this nice cleanup.
Only one question: Which boards / architectures did you cover during
your tests?
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Q: How do you play religious roulette?
A: You stand around in a circle and blaspheme and see who gets
struck by lightning first.
^ permalink raw reply [flat|nested] 8+ messages in thread* [U-Boot] [PATCH] Handle most LDSCRIPT setting centrally
2011-04-07 7:11 ` Wolfgang Denk
@ 2011-04-07 16:01 ` Scott Wood
2011-04-08 6:07 ` Graeme Russ
0 siblings, 1 reply; 8+ messages in thread
From: Scott Wood @ 2011-04-07 16:01 UTC (permalink / raw)
To: u-boot
On Thu, 7 Apr 2011 09:11:03 +0200
Wolfgang Denk <wd@denx.de> wrote:
> Dear Scott Wood,
>
> In message <20110406233136.GA13709@schlenkerla.am.freescale.net> you wrote:
> > Currently, some linker scripts are found by common code in config.mk.
> > Some are found using CONFIG_SYS_LDSCRIPT, but the code for that is
> > sometimes in arch config.mk and sometimes in board config.mk. Some
> > are found using an arch-specific rule for looking in CPUDIR, etc.
> >
> > Further, the powerpc config.mk rule relied on CONFIG_NAND_SPL
> > when it really wanted CONFIG_NAND_U_BOOT -- which covered up the fact
> > that not all NAND_U_BOOT builds actually wanted CPUDIR/u-boot-nand.lds.
> >
> > Replace all of this -- except for a handful of boards that are actually
> > selecting a linker script in a unique way -- with centralized ldscript
> > finding.
>
> Thanks for this nice cleanup.
>
> Only one question: Which boards / architectures did you cover during
> your tests?
As I noted, I did a MAKEALL ppc and all the output (sizes, errors, etc) was
the same as before the patch.
I tried a few arm boards, and all the ones I tried failed the same way they
did before the patch. I don't have toolchains for the other arches
readily available. Any help in testing this change on non-ppc would be
appreciated.
-Scott
^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] [PATCH] Handle most LDSCRIPT setting centrally
2011-04-07 16:01 ` Scott Wood
@ 2011-04-08 6:07 ` Graeme Russ
0 siblings, 0 replies; 8+ messages in thread
From: Graeme Russ @ 2011-04-08 6:07 UTC (permalink / raw)
To: u-boot
On 08/04/11 02:01, Scott Wood wrote:
> On Thu, 7 Apr 2011 09:11:03 +0200
> Wolfgang Denk <wd@denx.de> wrote:
>
>> Dear Scott Wood,
>>
>> In message <20110406233136.GA13709@schlenkerla.am.freescale.net> you wrote:
>>> Currently, some linker scripts are found by common code in config.mk.
>>> Some are found using CONFIG_SYS_LDSCRIPT, but the code for that is
>>> sometimes in arch config.mk and sometimes in board config.mk. Some
>>> are found using an arch-specific rule for looking in CPUDIR, etc.
>>>
>>> Further, the powerpc config.mk rule relied on CONFIG_NAND_SPL
>>> when it really wanted CONFIG_NAND_U_BOOT -- which covered up the fact
>>> that not all NAND_U_BOOT builds actually wanted CPUDIR/u-boot-nand.lds.
>>>
>>> Replace all of this -- except for a handful of boards that are actually
>>> selecting a linker script in a unique way -- with centralized ldscript
>>> finding.
>>
>> Thanks for this nice cleanup.
>>
>> Only one question: Which boards / architectures did you cover during
>> your tests?
>
> As I noted, I did a MAKEALL ppc and all the output (sizes, errors, etc) was
> the same as before the patch.
>
> I tried a few arm boards, and all the ones I tried failed the same way they
> did before the patch. I don't have toolchains for the other arches
> readily available. Any help in testing this change on non-ppc would be
> appreciated.
>
I have tried this patch on all (two!) x86 configurations and looks good
You may have my:
Tested-by: Graeme Russ <graeme.russ@gmail.com>
Regards,
Graeme
^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] [PATCH] Handle most LDSCRIPT setting centrally
2011-04-06 23:31 [U-Boot] [PATCH] Handle most LDSCRIPT setting centrally Scott Wood
2011-04-07 7:11 ` Wolfgang Denk
@ 2011-04-07 19:55 ` Mike Frysinger
2011-04-08 4:56 ` [U-Boot] [PATCH] Blackfin: use common LDSCRIPT logic Mike Frysinger
2011-04-29 23:00 ` [U-Boot] [PATCH] Handle most LDSCRIPT setting centrally Wolfgang Denk
3 siblings, 0 replies; 8+ messages in thread
From: Mike Frysinger @ 2011-04-07 19:55 UTC (permalink / raw)
To: u-boot
On Wed, Apr 6, 2011 at 7:31 PM, Scott Wood wrote:
> Currently, some linker scripts are found by common code in config.mk.
> Some are found using CONFIG_SYS_LDSCRIPT, but the code for that is
> sometimes in arch config.mk and sometimes in board config.mk. ?Some
> are found using an arch-specific rule for looking in CPUDIR, etc.
>
> Further, the powerpc config.mk rule relied on CONFIG_NAND_SPL
> when it really wanted CONFIG_NAND_U_BOOT -- which covered up the fact
> that not all NAND_U_BOOT builds actually wanted CPUDIR/u-boot-nand.lds.
>
> Replace all of this -- except for a handful of boards that are actually
> selecting a linker script in a unique way -- with centralized ldscript
> finding.
>
> If board code specifies LDSCRIPT, that will be used.
> Otherwise, if CONFIG_SYS_LDSCRIPT is specified, that will be used.
>
> If neither of these are specified, then the central config.mk will
> check for the existence of the following, in order:
>
> $(TOPDIR)/board/$(BOARDDIR)/u-boot-nand.lds (only if CONFIG_NAND_U_BOOT)
> $(TOPDIR)/$(CPUDIR)/u-boot-nand.lds (only if CONFIG_NAND_U_BOOT)
> $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds
> $(TOPDIR)/$(CPUDIR)/u-boot.lds
i guess if i simply renamed blackfin/u-boot.lds.S to
blackfin/u-boot.lds, things would "just work" for me too.
-mike
^ permalink raw reply [flat|nested] 8+ messages in thread
* [U-Boot] [PATCH] Blackfin: use common LDSCRIPT logic
2011-04-06 23:31 [U-Boot] [PATCH] Handle most LDSCRIPT setting centrally Scott Wood
2011-04-07 7:11 ` Wolfgang Denk
2011-04-07 19:55 ` Mike Frysinger
@ 2011-04-08 4:56 ` Mike Frysinger
2011-04-08 5:29 ` Mike Frysinger
2011-04-29 23:00 ` [U-Boot] [PATCH] Handle most LDSCRIPT setting centrally Wolfgang Denk
3 siblings, 1 reply; 8+ messages in thread
From: Mike Frysinger @ 2011-04-08 4:56 UTC (permalink / raw)
To: u-boot
Now that common code is a bit smarter when it comes to default LDSCRIPT
values, rename the default Blackfin file and drop the Blackfin-specific
config.mk logic.
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
---
arch/blackfin/config.mk | 4 -
arch/blackfin/cpu/u-boot.lds | 158 ++++++++++++++++++++++++++++++++++++++++
arch/blackfin/lib/u-boot.lds.S | 158 ----------------------------------------
3 files changed, 158 insertions(+), 162 deletions(-)
create mode 100644 arch/blackfin/cpu/u-boot.lds
delete mode 100644 arch/blackfin/lib/u-boot.lds.S
diff --git a/arch/blackfin/config.mk b/arch/blackfin/config.mk
index 95cf7db..f35b579 100644
--- a/arch/blackfin/config.mk
+++ b/arch/blackfin/config.mk
@@ -76,10 +76,6 @@ LDR_FLAGS += $(LDR_FLAGS-y)
# Set some default LDR flags based on boot mode.
LDR_FLAGS += $(LDR_FLAGS-$(CONFIG_BFIN_BOOT_MODE))
-ifeq ($(wildcard $(TOPDIR)/board/$(BOARD)/u-boot.lds*),)
-LDSCRIPT = $(obj)arch/$(ARCH)/lib/u-boot.lds.S
-endif
-
ifneq ($(CONFIG_SYS_TEXT_BASE),)
$(error do not set CONFIG_SYS_TEXT_BASE for Blackfin boards)
endif
diff --git a/arch/blackfin/cpu/u-boot.lds b/arch/blackfin/cpu/u-boot.lds
new file mode 100644
index 0000000..2b8d285
--- /dev/null
+++ b/arch/blackfin/cpu/u-boot.lds
@@ -0,0 +1,158 @@
+/*
+ * U-boot - u-boot.lds.S
+ *
+ * Copyright (c) 2005-2010 Analog Device Inc.
+ *
+ * (C) Copyright 2000-2004
+ * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
+ *
+ * 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 <config.h>
+#include <asm/blackfin.h>
+#undef ALIGN
+#undef ENTRY
+
+#ifndef LDS_BOARD_TEXT
+# define LDS_BOARD_TEXT
+#endif
+
+/* If we don't actually load anything into L1 data, this will avoid
+ * a syntax error. If we do actually load something into L1 data,
+ * we'll get a linker memory load error (which is what we'd want).
+ * This is here in the first place so we can quickly test building
+ * for different CPU's which may lack non-cache L1 data.
+ */
+#ifndef L1_DATA_A_SRAM
+# define L1_DATA_A_SRAM 0
+# define L1_DATA_A_SRAM_SIZE 0
+#endif
+#ifndef L1_DATA_B_SRAM
+# define L1_DATA_B_SRAM L1_DATA_A_SRAM
+# define L1_DATA_B_SRAM_SIZE L1_DATA_A_SRAM_SIZE
+#endif
+
+/* The 0xC offset is so we don't clobber the tiny LDR jump block. */
+#ifdef CONFIG_BFIN_BOOTROM_USES_EVT1
+# define L1_CODE_ORIGIN L1_INST_SRAM
+#else
+# define L1_CODE_ORIGIN L1_INST_SRAM + 0xC
+#endif
+
+OUTPUT_ARCH(bfin)
+
+MEMORY
+{
+#if CONFIG_MEM_SIZE
+ ram : ORIGIN = CONFIG_SYS_MONITOR_BASE, LENGTH = CONFIG_SYS_MONITOR_LEN
+# define ram_code ram
+# define ram_data ram
+#else
+# define ram_code l1_code
+# define ram_data l1_data
+#endif
+ l1_code : ORIGIN = L1_CODE_ORIGIN, LENGTH = L1_INST_SRAM_SIZE
+ l1_data : ORIGIN = L1_DATA_B_SRAM, LENGTH = L1_DATA_B_SRAM_SIZE
+}
+
+ENTRY(_start)
+SECTIONS
+{
+ .text.pre :
+ {
+ arch/blackfin/cpu/start.o (.text .text.*)
+
+ LDS_BOARD_TEXT
+ } >ram_code
+
+ .text.init :
+ {
+ arch/blackfin/cpu/initcode.o (.text .text.*)
+ } >ram_code
+ __initcode_lma = LOADADDR(.text.init);
+ __initcode_len = SIZEOF(.text.init);
+
+ .text :
+ {
+ *(.text .text.*)
+ } >ram_code
+
+ .rodata :
+ {
+ . = ALIGN(4);
+ *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
+ . = ALIGN(4);
+ } >ram_data
+
+ .data :
+ {
+ . = ALIGN(4);
+ *(.data .data.*)
+ *(.data1)
+ *(.sdata)
+ *(.sdata2)
+ *(.dynamic)
+ CONSTRUCTORS
+ } >ram_data
+
+ .u_boot_cmd :
+ {
+ ___u_boot_cmd_start = .;
+ *(.u_boot_cmd)
+ ___u_boot_cmd_end = .;
+ } >ram_data
+
+ .text_l1 :
+ {
+ . = ALIGN(4);
+ __stext_l1 = .;
+ *(.l1.text)
+ . = ALIGN(4);
+ __etext_l1 = .;
+ } >l1_code AT>ram_code
+ __text_l1_lma = LOADADDR(.text_l1);
+ __text_l1_len = SIZEOF(.text_l1);
+ ASSERT (__text_l1_len <= L1_INST_SRAM_SIZE, "L1 text overflow!")
+
+ .data_l1 :
+ {
+ . = ALIGN(4);
+ __sdata_l1 = .;
+ *(.l1.data)
+ *(.l1.bss)
+ . = ALIGN(4);
+ __edata_l1 = .;
+ } >l1_data AT>ram_data
+ __data_l1_lma = LOADADDR(.data_l1);
+ __data_l1_len = SIZEOF(.data_l1);
+ ASSERT (__data_l1_len <= L1_DATA_B_SRAM_SIZE, "L1 data overflow!")
+
+ .bss :
+ {
+ . = ALIGN(4);
+ *(.sbss) *(.scommon)
+ *(.dynbss)
+ *(.bss .bss.*)
+ *(COMMON)
+ . = ALIGN(4);
+ } >ram_data
+ __bss_vma = ADDR(.bss);
+ __bss_len = SIZEOF(.bss);
+}
diff --git a/arch/blackfin/lib/u-boot.lds.S b/arch/blackfin/lib/u-boot.lds.S
deleted file mode 100644
index 2b8d285..0000000
--- a/arch/blackfin/lib/u-boot.lds.S
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * U-boot - u-boot.lds.S
- *
- * Copyright (c) 2005-2010 Analog Device Inc.
- *
- * (C) Copyright 2000-2004
- * Wolfgang Denk, DENX Software Engineering, wd at denx.de.
- *
- * 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 <config.h>
-#include <asm/blackfin.h>
-#undef ALIGN
-#undef ENTRY
-
-#ifndef LDS_BOARD_TEXT
-# define LDS_BOARD_TEXT
-#endif
-
-/* If we don't actually load anything into L1 data, this will avoid
- * a syntax error. If we do actually load something into L1 data,
- * we'll get a linker memory load error (which is what we'd want).
- * This is here in the first place so we can quickly test building
- * for different CPU's which may lack non-cache L1 data.
- */
-#ifndef L1_DATA_A_SRAM
-# define L1_DATA_A_SRAM 0
-# define L1_DATA_A_SRAM_SIZE 0
-#endif
-#ifndef L1_DATA_B_SRAM
-# define L1_DATA_B_SRAM L1_DATA_A_SRAM
-# define L1_DATA_B_SRAM_SIZE L1_DATA_A_SRAM_SIZE
-#endif
-
-/* The 0xC offset is so we don't clobber the tiny LDR jump block. */
-#ifdef CONFIG_BFIN_BOOTROM_USES_EVT1
-# define L1_CODE_ORIGIN L1_INST_SRAM
-#else
-# define L1_CODE_ORIGIN L1_INST_SRAM + 0xC
-#endif
-
-OUTPUT_ARCH(bfin)
-
-MEMORY
-{
-#if CONFIG_MEM_SIZE
- ram : ORIGIN = CONFIG_SYS_MONITOR_BASE, LENGTH = CONFIG_SYS_MONITOR_LEN
-# define ram_code ram
-# define ram_data ram
-#else
-# define ram_code l1_code
-# define ram_data l1_data
-#endif
- l1_code : ORIGIN = L1_CODE_ORIGIN, LENGTH = L1_INST_SRAM_SIZE
- l1_data : ORIGIN = L1_DATA_B_SRAM, LENGTH = L1_DATA_B_SRAM_SIZE
-}
-
-ENTRY(_start)
-SECTIONS
-{
- .text.pre :
- {
- arch/blackfin/cpu/start.o (.text .text.*)
-
- LDS_BOARD_TEXT
- } >ram_code
-
- .text.init :
- {
- arch/blackfin/cpu/initcode.o (.text .text.*)
- } >ram_code
- __initcode_lma = LOADADDR(.text.init);
- __initcode_len = SIZEOF(.text.init);
-
- .text :
- {
- *(.text .text.*)
- } >ram_code
-
- .rodata :
- {
- . = ALIGN(4);
- *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
- . = ALIGN(4);
- } >ram_data
-
- .data :
- {
- . = ALIGN(4);
- *(.data .data.*)
- *(.data1)
- *(.sdata)
- *(.sdata2)
- *(.dynamic)
- CONSTRUCTORS
- } >ram_data
-
- .u_boot_cmd :
- {
- ___u_boot_cmd_start = .;
- *(.u_boot_cmd)
- ___u_boot_cmd_end = .;
- } >ram_data
-
- .text_l1 :
- {
- . = ALIGN(4);
- __stext_l1 = .;
- *(.l1.text)
- . = ALIGN(4);
- __etext_l1 = .;
- } >l1_code AT>ram_code
- __text_l1_lma = LOADADDR(.text_l1);
- __text_l1_len = SIZEOF(.text_l1);
- ASSERT (__text_l1_len <= L1_INST_SRAM_SIZE, "L1 text overflow!")
-
- .data_l1 :
- {
- . = ALIGN(4);
- __sdata_l1 = .;
- *(.l1.data)
- *(.l1.bss)
- . = ALIGN(4);
- __edata_l1 = .;
- } >l1_data AT>ram_data
- __data_l1_lma = LOADADDR(.data_l1);
- __data_l1_len = SIZEOF(.data_l1);
- ASSERT (__data_l1_len <= L1_DATA_B_SRAM_SIZE, "L1 data overflow!")
-
- .bss :
- {
- . = ALIGN(4);
- *(.sbss) *(.scommon)
- *(.dynbss)
- *(.bss .bss.*)
- *(COMMON)
- . = ALIGN(4);
- } >ram_data
- __bss_vma = ADDR(.bss);
- __bss_len = SIZEOF(.bss);
-}
--
1.7.4.1
^ permalink raw reply related [flat|nested] 8+ messages in thread* [U-Boot] [PATCH] Handle most LDSCRIPT setting centrally
2011-04-06 23:31 [U-Boot] [PATCH] Handle most LDSCRIPT setting centrally Scott Wood
` (2 preceding siblings ...)
2011-04-08 4:56 ` [U-Boot] [PATCH] Blackfin: use common LDSCRIPT logic Mike Frysinger
@ 2011-04-29 23:00 ` Wolfgang Denk
3 siblings, 0 replies; 8+ messages in thread
From: Wolfgang Denk @ 2011-04-29 23:00 UTC (permalink / raw)
To: u-boot
Dear Scott Wood,
In message <20110406233136.GA13709@schlenkerla.am.freescale.net> you wrote:
> Currently, some linker scripts are found by common code in config.mk.
> Some are found using CONFIG_SYS_LDSCRIPT, but the code for that is
> sometimes in arch config.mk and sometimes in board config.mk. Some
> are found using an arch-specific rule for looking in CPUDIR, etc.
>
> Further, the powerpc config.mk rule relied on CONFIG_NAND_SPL
> when it really wanted CONFIG_NAND_U_BOOT -- which covered up the fact
> that not all NAND_U_BOOT builds actually wanted CPUDIR/u-boot-nand.lds.
>
> Replace all of this -- except for a handful of boards that are actually
> selecting a linker script in a unique way -- with centralized ldscript
> finding.
>
> If board code specifies LDSCRIPT, that will be used.
> Otherwise, if CONFIG_SYS_LDSCRIPT is specified, that will be used.
>
> If neither of these are specified, then the central config.mk will
> check for the existence of the following, in order:
>
> $(TOPDIR)/board/$(BOARDDIR)/u-boot-nand.lds (only if CONFIG_NAND_U_BOOT)
> $(TOPDIR)/$(CPUDIR)/u-boot-nand.lds (only if CONFIG_NAND_U_BOOT)
> $(TOPDIR)/board/$(BOARDDIR)/u-boot.lds
> $(TOPDIR)/$(CPUDIR)/u-boot.lds
>
> Some boards (sc3, cm5200, munices) provided their own u-boot.lds that
> were dead code, because they were overridden by a CPUDIR u-boot.lds under
> the old powerpc rules. These boards' own u-boot.lds have bitrotted and
> no longer work -- these lds files have been removed.
>
> Signed-off-by: Scott Wood <scottwood@freescale.com>
> ---
> "./MAKEALL ppc" had identical output with and without this patch.
>
> I tried building some arm boards, but couldn't find any that built for
> me even without this patch. They didn't appear to fail differently with
> it, though.
>
> arch/arm/config.mk | 1 -
> arch/i386/config.mk | 1 -
> arch/nios2/config.mk | 2 -
> arch/powerpc/config.mk | 11 ---
> arch/sh/config.mk | 6 --
> board/actux1/config.mk | 2 -
> board/actux2/config.mk | 2 -
> board/actux3/config.mk | 2 -
> board/altera/nios2-generic/config.mk | 2 -
> board/amcc/acadia/config.mk | 7 --
> board/amcc/bamboo/config.mk | 7 --
> board/amcc/canyonlands/config.mk | 7 --
> board/amcc/kilauea/config.mk | 7 --
> board/amcc/sequoia/config.mk | 7 --
> board/atmel/atstk1000/config.mk | 1 -
> board/avnet/fx12mm/config.mk | 29 ------
> board/avnet/v5fx30teval/config.mk | 29 ------
> board/cm5200/u-boot.lds | 120 --------------------------
> board/cogent/config.mk | 2 -
> board/earthlcd/favr-32-ezkit/config.mk | 1 -
> board/freescale/mx31ads/config.mk | 2 -
> board/hymod/config.mk | 2 -
> board/munices/u-boot.lds | 120 --------------------------
> board/samsung/smdk6400/config.mk | 2 -
> board/sc3/u-boot.lds | 147 --------------------------------
> board/trab/config.mk | 2 -
> board/xilinx/ml507/config.mk | 4 -
> board/xilinx/ppc405-generic/config.mk | 4 -
> board/xilinx/ppc440-generic/config.mk | 4 -
> config.mk | 33 ++++++-
> 30 files changed, 28 insertions(+), 538 deletions(-)
> delete mode 100644 board/avnet/fx12mm/config.mk
> delete mode 100644 board/avnet/v5fx30teval/config.mk
> delete mode 100644 board/cm5200/u-boot.lds
> delete mode 100644 board/munices/u-boot.lds
> delete mode 100644 board/sc3/u-boot.lds
> delete mode 100644 board/xilinx/ml507/config.mk
> delete mode 100644 board/xilinx/ppc405-generic/config.mk
> delete mode 100644 board/xilinx/ppc440-generic/config.mk
Applied, thanks.
Best regards,
Wolfgang Denk
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Imagination is more important than knowledge. -- Albert Einstein
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2011-04-29 23:00 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-04-06 23:31 [U-Boot] [PATCH] Handle most LDSCRIPT setting centrally Scott Wood
2011-04-07 7:11 ` Wolfgang Denk
2011-04-07 16:01 ` Scott Wood
2011-04-08 6:07 ` Graeme Russ
2011-04-07 19:55 ` Mike Frysinger
2011-04-08 4:56 ` [U-Boot] [PATCH] Blackfin: use common LDSCRIPT logic Mike Frysinger
2011-04-08 5:29 ` Mike Frysinger
2011-04-29 23:00 ` [U-Boot] [PATCH] Handle most LDSCRIPT setting centrally Wolfgang Denk
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.