All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 0/5] Linker-generated arrays (take 2)
@ 2012-09-30  0:17 Marek Vasut
  2012-09-30  0:17 ` [U-Boot] [PATCH 1/5] common: Add symbol handling for generic lists into Makefile Marek Vasut
                   ` (5 more replies)
  0 siblings, 6 replies; 48+ messages in thread
From: Marek Vasut @ 2012-09-30  0:17 UTC (permalink / raw)
  To: u-boot

This is a second stab at the linker-generated array. Basically, this
concept is a generic abstraction of how u_boot_cmd works today. The
patch 2/4 contains a huge pile of documentation which should clarify
most of the questions.

I don't see size growth, I see size fluctiation in the order of tens
of bytes with these patches applied. Subsequent patch added to this
series removes the __u_boot_cmd section completely.

NOTE: This patchset has a cross-dependency on:
        [PATCH 0/4 V2] Implant kernel-doc from Linux kernel

TAKE 2: Start again, try aligning it with patchwork workflow ... didn't
        quite work out before due to my sloppiness.

Marek Vasut (5):
  common: Add symbol handling for generic lists into Makefile
  common: Implement support for linker-generated arrays
  common: Add .u_boot_list into all linker files
  common: Convert the U-Boot commands to LG-arrays
  common: Discard the __u_boot_cmd section

 .gitignore                                       |    1 +
 Makefile                                         |   13 +-
 arch/arm/cpu/arm920t/ep93xx/u-boot.lds           |    8 +-
 arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds        |    7 +-
 arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds      |    7 +-
 arch/arm/cpu/armv7/omap-common/u-boot-spl.lds    |    5 +
 arch/arm/cpu/ixp/u-boot.lds                      |    8 +-
 arch/arm/cpu/u-boot.lds                          |    8 +-
 arch/arm/imx-common/cmd_bmode.c                  |   11 +-
 arch/avr32/cpu/u-boot.lds                        |    8 +-
 arch/avr32/lib/board.c                           |    4 +-
 arch/blackfin/cpu/u-boot.lds                     |    8 +-
 arch/m68k/lib/board.c                            |    4 +-
 arch/microblaze/cpu/u-boot.lds                   |    6 -
 arch/mips/lib/board.c                            |    4 +-
 arch/nds32/cpu/n1213/u-boot.lds                  |    8 +-
 arch/nds32/lib/board.c                           |    4 +-
 arch/nios2/cpu/u-boot.lds                        |   10 +-
 arch/powerpc/cpu/74xx_7xx/u-boot.lds             |    8 +-
 arch/powerpc/cpu/mpc512x/u-boot.lds              |    8 +-
 arch/powerpc/cpu/mpc5xx/u-boot.lds               |    8 +-
 arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds |    6 +-
 arch/powerpc/cpu/mpc5xxx/u-boot.lds              |    8 +-
 arch/powerpc/cpu/mpc8220/u-boot.lds              |    8 +-
 arch/powerpc/cpu/mpc824x/u-boot.lds              |    8 +-
 arch/powerpc/cpu/mpc8260/u-boot.lds              |    8 +-
 arch/powerpc/cpu/mpc83xx/u-boot.lds              |    8 +-
 arch/powerpc/cpu/mpc85xx/u-boot-nand.lds         |    7 +-
 arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds     |    4 +
 arch/powerpc/cpu/mpc85xx/u-boot.lds              |    8 +-
 arch/powerpc/cpu/mpc86xx/u-boot.lds              |    8 +-
 arch/powerpc/cpu/ppc4xx/u-boot.lds               |    8 +-
 arch/sandbox/cpu/u-boot.lds                      |    8 +-
 arch/sh/cpu/sh2/u-boot.lds                       |    9 +-
 arch/sh/cpu/sh3/u-boot.lds                       |    9 +-
 arch/sh/cpu/sh4/u-boot.lds                       |    9 +-
 arch/sparc/lib/board.c                           |    4 +-
 arch/x86/cpu/u-boot.lds                          |    7 +-
 board/BuS/eb_cpu5282/u-boot.lds                  |    8 +-
 board/LEOX/elpt860/u-boot.lds                    |    8 +-
 board/RPXClassic/u-boot.lds                      |    8 +-
 board/RPXClassic/u-boot.lds.debug                |    8 +-
 board/RPXlite/u-boot.lds                         |    8 +-
 board/RPXlite/u-boot.lds.debug                   |    8 +-
 board/RPXlite_dw/u-boot.lds                      |    8 +-
 board/RPXlite_dw/u-boot.lds.debug                |    8 +-
 board/RRvision/u-boot.lds                        |    8 +-
 board/actux1/u-boot.lds                          |    8 +-
 board/actux2/u-boot.lds                          |    8 +-
 board/actux3/u-boot.lds                          |    8 +-
 board/adder/u-boot.lds                           |    8 +-
 board/ait/cam_enc_4xx/u-boot-spl.lds             |    4 +
 board/altera/nios2-generic/u-boot.lds            |   10 +-
 board/amcc/acadia/u-boot-nand.lds                |    6 +-
 board/amcc/bamboo/u-boot-nand.lds                |    6 +-
 board/amcc/canyonlands/u-boot-nand.lds           |    6 +-
 board/amcc/kilauea/u-boot-nand.lds               |    6 +-
 board/amcc/sequoia/u-boot-nand.lds               |    6 +-
 board/amcc/sequoia/u-boot-ram.lds                |    6 +-
 board/amirix/ap1000/u-boot.lds                   |    8 +-
 board/astro/mcf5373l/u-boot.lds                  |    8 +-
 board/c2mon/u-boot.lds                           |    8 +-
 board/c2mon/u-boot.lds.debug                     |    8 +-
 board/cobra5272/u-boot.lds                       |    8 +-
 board/cogent/u-boot.lds                          |    8 +-
 board/cogent/u-boot.lds.debug                    |    8 +-
 board/cray/L1/u-boot.lds.debug                   |    8 +-
 board/dave/PPChameleonEVB/u-boot.lds             |    8 +-
 board/davinci/da8xxevm/u-boot-spl-da850evm.lds   |    6 +
 board/davinci/da8xxevm/u-boot-spl-hawk.lds       |    5 +
 board/dbau1x00/u-boot.lds                        |    4 -
 board/dvlhost/u-boot.lds                         |    8 +-
 board/eltec/mhpc/u-boot.lds                      |    8 +-
 board/eltec/mhpc/u-boot.lds.debug                |    8 +-
 board/emk/top860/u-boot.lds                      |    8 +-
 board/ep88x/u-boot.lds                           |    8 +-
 board/esd/dasa_sim/u-boot.lds                    |    8 +-
 board/esd/pmc440/u-boot-nand.lds                 |    6 +-
 board/esd/tasreg/u-boot.lds                      |    8 +-
 board/esteem192e/u-boot.lds                      |    8 +-
 board/etx094/u-boot.lds                          |    8 +-
 board/evb64260/u-boot.lds                        |    8 +-
 board/fads/u-boot.lds                            |    8 +-
 board/flagadm/u-boot.lds                         |    8 +-
 board/flagadm/u-boot.lds.debug                   |    8 +-
 board/freescale/m5208evbe/u-boot.lds             |    8 +-
 board/freescale/m52277evb/u-boot.lds             |    8 +-
 board/freescale/m5235evb/u-boot.lds              |    8 +-
 board/freescale/m5249evb/u-boot.lds              |    8 +-
 board/freescale/m5253demo/u-boot.lds             |    8 +-
 board/freescale/m5253evbe/u-boot.lds             |    8 +-
 board/freescale/m5271evb/u-boot.lds              |    8 +-
 board/freescale/m5272c3/u-boot.lds               |    8 +-
 board/freescale/m5275evb/u-boot.lds              |    8 +-
 board/freescale/m5282evb/u-boot.lds              |    8 +-
 board/freescale/m53017evb/u-boot.lds             |    8 +-
 board/freescale/m5329evb/u-boot.lds              |    8 +-
 board/freescale/m5373evb/u-boot.lds              |    8 +-
 board/freescale/m54451evb/u-boot.lds             |    8 +-
 board/freescale/m54455evb/u-boot.lds             |    8 +-
 board/freescale/m547xevb/u-boot.lds              |    8 +-
 board/freescale/m548xevb/u-boot.lds              |    8 +-
 board/freescale/mx31ads/u-boot.lds               |    8 +-
 board/gaisler/gr_cpci_ax2000/u-boot.lds          |    7 +-
 board/gaisler/gr_ep2s60/u-boot.lds               |    7 +-
 board/gaisler/gr_xc3s_1500/u-boot.lds            |    7 +-
 board/gaisler/grsim/u-boot.lds                   |    7 +-
 board/gaisler/grsim_leon2/u-boot.lds             |    7 +-
 board/gen860t/u-boot-flashenv.lds                |    7 +-
 board/gen860t/u-boot.lds                         |    8 +-
 board/genietv/u-boot.lds                         |    8 +-
 board/genietv/u-boot.lds.debug                   |    8 +-
 board/hermes/u-boot.lds                          |    8 +-
 board/hermes/u-boot.lds.debug                    |    8 +-
 board/hymod/u-boot.lds                           |    8 +-
 board/hymod/u-boot.lds.debug                     |    8 +-
 board/icu862/u-boot.lds                          |    8 +-
 board/icu862/u-boot.lds.debug                    |    8 +-
 board/idmr/u-boot.lds                            |    8 +-
 board/incaip/u-boot.lds                          |    4 -
 board/ip860/u-boot.lds                           |    8 +-
 board/ip860/u-boot.lds.debug                     |    8 +-
 board/ivm/u-boot.lds                             |    8 +-
 board/ivm/u-boot.lds.debug                       |    8 +-
 board/korat/u-boot-F7FC.lds                      |    6 +-
 board/kup/kup4k/u-boot.lds                       |    8 +-
 board/kup/kup4k/u-boot.lds.debug                 |    8 +-
 board/kup/kup4x/u-boot.lds                       |    8 +-
 board/kup/kup4x/u-boot.lds.debug                 |    8 +-
 board/lantec/u-boot.lds                          |    8 +-
 board/lantec/u-boot.lds.debug                    |    8 +-
 board/lwmon/u-boot.lds                           |    8 +-
 board/lwmon/u-boot.lds.debug                     |    8 +-
 board/manroland/uc100/u-boot.lds                 |    8 +-
 board/matrix_vision/mvsmr/u-boot.lds             |    8 +-
 board/mbx8xx/u-boot.lds                          |    8 +-
 board/mbx8xx/u-boot.lds.debug                    |    8 +-
 board/micronas/vct/u-boot.lds                    |    4 -
 board/ml2/u-boot.lds                             |    8 +-
 board/ml2/u-boot.lds.debug                       |    8 +-
 board/mousse/u-boot.lds                          |    8 +-
 board/mousse/u-boot.lds.ram                      |    3 -
 board/mousse/u-boot.lds.rom                      |    3 -
 board/mpl/pip405/u-boot.lds.debug                |    8 +-
 board/mvblue/u-boot.lds                          |    8 +-
 board/netphone/u-boot.lds                        |    8 +-
 board/netphone/u-boot.lds.debug                  |    8 +-
 board/netta/u-boot.lds                           |    8 +-
 board/netta/u-boot.lds.debug                     |    8 +-
 board/netta2/u-boot.lds                          |    8 +-
 board/netta2/u-boot.lds.debug                    |    8 +-
 board/netvia/u-boot.lds                          |    8 +-
 board/netvia/u-boot.lds.debug                    |    8 +-
 board/nx823/u-boot.lds                           |    8 +-
 board/nx823/u-boot.lds.debug                     |    8 +-
 board/openrisc/openrisc-generic/u-boot.lds       |    8 +-
 board/pb1x00/u-boot.lds                          |    4 -
 board/qemu-mips/u-boot.lds                       |    4 -
 board/qi/qi_lb60/u-boot.lds                      |    8 +-
 board/quantum/u-boot.lds                         |    8 +-
 board/r360mpi/u-boot.lds                         |    8 +-
 board/rbc823/u-boot.lds                          |    8 +-
 board/renesas/sh7757lcr/u-boot.lds               |    9 +-
 board/rsdproto/u-boot.lds                        |    8 +-
 board/samsung/smdk5250/smdk5250-uboot-spl.lds    |    5 +
 board/samsung/smdk6400/u-boot-nand.lds           |   10 +-
 board/sandburst/karef/u-boot.lds.debug           |    8 +-
 board/sandburst/metrobox/u-boot.lds.debug        |    8 +-
 board/sandpoint/u-boot.lds                       |    8 +-
 board/siemens/IAD210/u-boot.lds                  |    8 +-
 board/sixnet/u-boot.lds                          |    8 +-
 board/snmc/qs850/u-boot.lds                      |    8 +-
 board/snmc/qs860t/u-boot.lds                     |    8 +-
 board/spc1920/u-boot.lds                         |    8 +-
 board/spd8xx/u-boot.lds                          |    8 +-
 board/spd8xx/u-boot.lds.debug                    |    8 +-
 board/stx/stxxtc/u-boot.lds                      |    8 +-
 board/stx/stxxtc/u-boot.lds.debug                |    8 +-
 board/svm_sc8xx/u-boot.lds                       |    8 +-
 board/tqc/tqm8xx/u-boot.lds                      |    8 +-
 board/v37/u-boot.lds                             |    8 +-
 board/vpac270/u-boot-spl.lds                     |    4 +
 board/w7o/u-boot.lds.debug                       |    8 +-
 board/westel/amx860/u-boot.lds                   |    8 +-
 board/westel/amx860/u-boot.lds.debug             |    8 +-
 board/xes/xpedite1000/u-boot.lds.debug           |    8 +-
 common/cmd_help.c                                |    8 +-
 common/command.c                                 |   17 ++-
 config.mk                                        |    2 +
 doc/README.commands                              |   10 +-
 examples/standalone/mips.lds                     |    4 +
 examples/standalone/nds32.lds                    |    4 +
 examples/standalone/sparc.lds                    |    5 +
 helper.mk                                        |   64 ++++++++++
 include/command.h                                |   28 ++--
 include/linker_lists.h                           |  148 ++++++++++++++++++++++
 nand_spl/board/freescale/mpc8536ds/Makefile      |    9 +-
 nand_spl/board/freescale/mpc8569mds/Makefile     |    9 +-
 nand_spl/board/freescale/mpc8572ds/Makefile      |    9 +-
 nand_spl/board/freescale/mx31pdk/Makefile        |    9 +-
 nand_spl/board/freescale/mx31pdk/u-boot.lds      |    8 +-
 nand_spl/board/freescale/p1010rdb/Makefile       |    9 +-
 nand_spl/board/freescale/p1023rds/Makefile       |    9 +-
 nand_spl/board/freescale/p1_p2_rdb/Makefile      |    9 +-
 nand_spl/board/freescale/p1_p2_rdb_pc/Makefile   |    9 +-
 nand_spl/board/karo/tx25/Makefile                |    9 +-
 nand_spl/board/karo/tx25/u-boot.lds              |    8 +-
 nand_spl/board/samsung/smdk6400/u-boot.lds       |    8 +-
 spl/.gitignore                                   |    1 +
 spl/Makefile                                     |    6 +-
 210 files changed, 1176 insertions(+), 622 deletions(-)
 create mode 100644 helper.mk
 create mode 100644 include/linker_lists.h

Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>

-- 
1.7.10.4

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 1/5] common: Add symbol handling for generic lists into Makefile
  2012-09-30  0:17 [U-Boot] [PATCH 0/5] Linker-generated arrays (take 2) Marek Vasut
@ 2012-09-30  0:17 ` Marek Vasut
  2012-10-02 23:40   ` Joe Hershberger
  2012-09-30  0:17 ` [U-Boot] [PATCH 2/5] common: Implement support for linker-generated arrays Marek Vasut
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 48+ messages in thread
From: Marek Vasut @ 2012-09-30  0:17 UTC (permalink / raw)
  To: u-boot

This patch adds essential components for generation of the contents of
the linker section that is used by the linker-generated array. All of
the contents is held in a separate file, u-boot.lst, which is generated
at runtime just before U-Boot is linked.

The purpose of this code is to especially generate the appropriate
boundary symbols around each subsection in the section carrying the
linker-generated arrays. Obviously, the interim linker code for actual
placement of the variables into the section is generated too. The
generated file, u-boot.lst, is included into u-boot.lds via the linker
INCLUDE directive in u-boot.lds .

Adjustments are made in the Makefile and spl/Makefile so that the
u-boot.lds and u-boot-spl.lds depend on their respective .lst files.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>
---
 .gitignore                                     |    1 +
 Makefile                                       |   13 +++--
 config.mk                                      |    2 +
 helper.mk                                      |   64 ++++++++++++++++++++++++
 nand_spl/board/freescale/mpc8536ds/Makefile    |    9 +++-
 nand_spl/board/freescale/mpc8569mds/Makefile   |    9 +++-
 nand_spl/board/freescale/mpc8572ds/Makefile    |    9 +++-
 nand_spl/board/freescale/mx31pdk/Makefile      |    9 +++-
 nand_spl/board/freescale/p1010rdb/Makefile     |    9 +++-
 nand_spl/board/freescale/p1023rds/Makefile     |    9 +++-
 nand_spl/board/freescale/p1_p2_rdb/Makefile    |    9 +++-
 nand_spl/board/freescale/p1_p2_rdb_pc/Makefile |    9 +++-
 nand_spl/board/karo/tx25/Makefile              |    9 +++-
 spl/.gitignore                                 |    1 +
 spl/Makefile                                   |    6 ++-
 15 files changed, 146 insertions(+), 22 deletions(-)
 create mode 100644 helper.mk

diff --git a/.gitignore b/.gitignore
index d91e91b..1ac43f2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,6 +38,7 @@
 /u-boot.sha1
 /u-boot.dis
 /u-boot.lds
+/u-boot.lst
 /u-boot.ubl
 /u-boot.ais
 /u-boot.dtb
diff --git a/Makefile b/Makefile
index 4c515ac..ab9ff4e 100644
--- a/Makefile
+++ b/Makefile
@@ -515,7 +515,10 @@ else
 GEN_UBOOT = \
 		UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
 		sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
-		cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) $$UNDEF_SYM $(__OBJS) \
+		UNDEF_LST=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
+		sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_list_.*\)/-u\1/p'|sort|uniq`;\
+		cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) \
+			$$UNDEF_SYM $$UNDEF_LST $(__OBJS) \
 			--start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
 			-Map u-boot.map -o u-boot
 endif
@@ -548,8 +551,12 @@ $(SUBDIR_EXAMPLES): $(obj)u-boot
 $(LDSCRIPT):	depend
 		$(MAKE) -C $(dir $@) $(notdir $@)
 
-$(obj)u-boot.lds: $(LDSCRIPT)
-		$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates u-boot.lst,
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(obj)u-boot.lst, $(LIBBOARD) $(LIBS)))
+$(obj)u-boot.lds: $(LDSCRIPT) $(obj)u-boot.lst
+		$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 nand_spl:	$(TIMESTAMP_FILE) $(VERSION_FILE) depend
 		$(MAKE) -C nand_spl/board/$(BOARDDIR) all
diff --git a/config.mk b/config.mk
index c3822a2..d2ed5bf 100644
--- a/config.mk
+++ b/config.mk
@@ -23,6 +23,8 @@
 
 #########################################################################
 
+include $(TOPDIR)/helper.mk
+
 ifeq ($(CURDIR),$(SRCTREE))
 dir :=
 else
diff --git a/helper.mk b/helper.mk
new file mode 100644
index 0000000..79a1da0
--- /dev/null
+++ b/helper.mk
@@ -0,0 +1,64 @@
+#
+# Copyright (C) 2012 Marek Vasut <marex@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.
+#
+#########################################################################
+
+##
+# make_u_boot_list - Generate contents of u_boot_list section
+# 1:		The name of the resulting file (usually u-boot.lst)
+# 2:		Files to analyze for possible u_boot_list entries
+#
+# This function generates the contents of the u_boot_list section,
+# including all the border symbols for it's subsections. The operation
+# of this function is as follows, numbering goes per lines:
+#
+# 1) Dump the ELF header sections from all files supplied via $(2)
+# 2) Filter out all other stuff that does not belong into .u_boot_list
+#    section.
+# 3) Fix up the lines so that the resulting output is is in format
+#    ".u_boot_list.*".
+# 4) Remove the last .something$, since that only contains the name
+#    of the variable to be put into a subsection. This name is irelevant
+#    for generation of border symbols, thus of no interest, remove it.
+# 5) Take each line and for every dot "." in that line, print the whole
+#    line until that dot "." . This is important so that we have all
+#    parent border symbols generated as well.
+# 6) Load every line and firstly append "\a" at the end and print the
+#    line. Next, append "@" at the end and print the line. Finally,
+#    append "~" at the end of line. This will make sense in conjunction
+#    with 6) and 7).
+# 7) Sort the lines. It is imperative to use LC_COLLATE=C here because
+#    with this, the "\a" symbol is first and "~" symbol is last. Any
+#    other symbols fall inbetween. Symbols like "@", which marks the
+#    end of current line (representing current section) and ".", which
+#    means the line continues and thus represents subsection.
+# 8) With such ordering, all lines ending with "\a" will float at the
+#    begining of all lines with the same prefix. Thus it is easy to
+#    replace "\a" with __start and make it the __start border symbol.
+#    Very similarly for "~", which will be always at the bottom and so
+#    can be replaced by "__end" and made into the __end border symbol.
+#    Finally, every line ending with "@" symbol will be transformed
+#    into " *(SORT(${line}*)); " format, which in the linker parlance
+#    will allow it to trap all symbols relevant to the subsection.
+#
+define make_u_boot_list
+$(1): $(2)
+	$(OBJDUMP) -h $(2) | \
+	sed -n -e '/.*\.u_boot_list[^ ]\+/ ! {d;n}' \
+		-e 's/.*\(\.u_boot_list[^ ]\+\).*$$$$/\1/' \
+		-e 's/\.[^\.]\+$$$$//' \
+		-e ':s /^.\+$$$$/ { p;s/^\(.*\)\.[^\.]*$$$$/\1/;b s }' | \
+	sed -n -e 'h;s/$$$$/\a/p;g;s/$$$$/@/p;g;s/$$$$/~/p;' | \
+	LC_COLLATE=C sort -u | \
+	sed -n -e '/\a$$$$/ { s/\./_/g;s/\a$$$$/__start = .;/p; }'\
+		-e '/~$$$$/ { s/\./_/g;s/~$$$$/__end = .;/p; }'\
+		-e '/@$$$$/ { s/\(.*\)@$$$$/*(SORT(\1.*));/p }' > $(1)
+endef
diff --git a/nand_spl/board/freescale/mpc8536ds/Makefile b/nand_spl/board/freescale/mpc8536ds/Makefile
index 43da3df..fe6a8e0 100644
--- a/nand_spl/board/freescale/mpc8536ds/Makefile
+++ b/nand_spl/board/freescale/mpc8536ds/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -61,8 +62,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(__OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/mpc8569mds/Makefile b/nand_spl/board/freescale/mpc8569mds/Makefile
index 43da3df..fe6a8e0 100644
--- a/nand_spl/board/freescale/mpc8569mds/Makefile
+++ b/nand_spl/board/freescale/mpc8569mds/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -61,8 +62,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(__OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/mpc8572ds/Makefile b/nand_spl/board/freescale/mpc8572ds/Makefile
index 43da3df..fe6a8e0 100644
--- a/nand_spl/board/freescale/mpc8572ds/Makefile
+++ b/nand_spl/board/freescale/mpc8572ds/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -61,8 +62,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(__OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/mx31pdk/Makefile b/nand_spl/board/freescale/mx31pdk/Makefile
index 87784d2..4beb3f3 100644
--- a/nand_spl/board/freescale/mx31pdk/Makefile
+++ b/nand_spl/board/freescale/mx31pdk/Makefile
@@ -6,6 +6,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
+LSTSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
 	   $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_SPL_BUILD -DCONFIG_NAND_SPL
@@ -36,8 +37,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $@
 
-$(nandobj)u-boot.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(__OBJS)))
+$(nandobj)u-boot.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 #########################################################################
 
diff --git a/nand_spl/board/freescale/p1010rdb/Makefile b/nand_spl/board/freescale/p1010rdb/Makefile
index cdbd492..9c2c588 100644
--- a/nand_spl/board/freescale/p1010rdb/Makefile
+++ b/nand_spl/board/freescale/p1010rdb/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) $(LDFLAGS) \
 	   $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -62,8 +63,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(__OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/p1023rds/Makefile b/nand_spl/board/freescale/p1023rds/Makefile
index da43521..8c71ee1 100644
--- a/nand_spl/board/freescale/p1023rds/Makefile
+++ b/nand_spl/board/freescale/p1023rds/Makefile
@@ -27,6 +27,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -57,8 +58,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(__OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/p1_p2_rdb/Makefile b/nand_spl/board/freescale/p1_p2_rdb/Makefile
index 43da3df..fe6a8e0 100644
--- a/nand_spl/board/freescale/p1_p2_rdb/Makefile
+++ b/nand_spl/board/freescale/p1_p2_rdb/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -61,8 +62,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(__OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/p1_p2_rdb_pc/Makefile b/nand_spl/board/freescale/p1_p2_rdb_pc/Makefile
index 46cf709..abd6e68 100644
--- a/nand_spl/board/freescale/p1_p2_rdb_pc/Makefile
+++ b/nand_spl/board/freescale/p1_p2_rdb_pc/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -62,8 +63,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(__OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/karo/tx25/Makefile b/nand_spl/board/karo/tx25/Makefile
index 0336346..bfd5bde 100644
--- a/nand_spl/board/karo/tx25/Makefile
+++ b/nand_spl/board/karo/tx25/Makefile
@@ -27,6 +27,7 @@ include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
+LSTSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
 	   $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_SPL_BUILD -DCONFIG_NAND_SPL
@@ -57,8 +58,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $@
 
-$(nandobj)u-boot.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(__OBJS)))
+$(nandobj)u-boot.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 #########################################################################
 
diff --git a/spl/.gitignore b/spl/.gitignore
index 7c88147..8cf487e 100644
--- a/spl/.gitignore
+++ b/spl/.gitignore
@@ -2,3 +2,4 @@ u-boot-spl
 u-boot-spl.bin
 u-boot-spl.lds
 u-boot-spl.map
+u-boot.lst
diff --git a/spl/Makefile b/spl/Makefile
index d9b1c2f..6b37339 100644
--- a/spl/Makefile
+++ b/spl/Makefile
@@ -149,7 +149,11 @@ $(START):	depend
 $(LIBS):	depend
 	$(MAKE) -C $(SRCTREE)$(dir $(subst $(SPLTREE),,$@))
 
-$(obj)u-boot-spl.lds: $(LDSCRIPT) depend
+# The following line expands into whole rule which generates u-boot.lst,
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(obj)u-boot.lst, $(LIBS)))
+$(obj)u-boot-spl.lds: $(LDSCRIPT) $(obj)u-boot.lst depend
 	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - < $< > $@
 
 depend:	$(obj).depend
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 2/5] common: Implement support for linker-generated arrays
  2012-09-30  0:17 [U-Boot] [PATCH 0/5] Linker-generated arrays (take 2) Marek Vasut
  2012-09-30  0:17 ` [U-Boot] [PATCH 1/5] common: Add symbol handling for generic lists into Makefile Marek Vasut
@ 2012-09-30  0:17 ` Marek Vasut
  2012-10-02 23:40   ` Joe Hershberger
  2012-09-30  0:17 ` [U-Boot] [PATCH 3/5] common: Add .u_boot_list into all linker files Marek Vasut
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 48+ messages in thread
From: Marek Vasut @ 2012-09-30  0:17 UTC (permalink / raw)
  To: u-boot

This patch adds support for linker-generated array. These arrays
are a generalization of the U-Boot command declaration approach.

Basically, the idea is to generate an array, where elements of the
array are statically initialized at compile time and each element
is declared separatelly at different place. Such array is assembled
together into continuous piece of memory by linker and a pointer to
it's first entry can then be retrieved via accessor.

The actual implementation relies on placing any variable that is to
represent an element of LG-array into particular subsection of the
.u_boot_list linker section . The subsection is determined by user
options. Once compiled, it is possible to dump all symbols placed
in .u_boot_list section and the subsections in which they should be
and generate appropriate bounds for each requested subsection of the
.u_boot_list section. Each such subsection thus contains __start and
__end entries at the begining and end respecitively.

This allows for simple run-time traversing of the array, since the
symbols are properly defined.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>
---
 include/linker_lists.h |  148 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 148 insertions(+)
 create mode 100644 include/linker_lists.h

diff --git a/include/linker_lists.h b/include/linker_lists.h
new file mode 100644
index 0000000..0b405d7
--- /dev/null
+++ b/include/linker_lists.h
@@ -0,0 +1,148 @@
+/*
+ * include/linker_lists.h
+ *
+ * Implementation of linker-generated arrays
+ *
+ * Copyright (C) 2012 Marek Vasut <marex@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.
+ */
+#ifndef __LINKER_LISTS_H__
+#define __LINKER_LISTS_H__
+
+/**
+ * ll_entry_declare() - Declare linker-generated array entry
+ * @_type:	Data type of the entry
+ * @_name:	Name of the entry
+ * @_section_u:	Subsection of u_boot_list in which this entry is placed
+ *		(with underscores instead of dots, for name concatenation)
+ * @_section_d:	Subsection of u_boot_list in which this entry is placed
+ *		(with dots, for section concatenation)
+ *
+ * This macro declares a variable that is placed into a linker-generated
+ * array. This is a basic building block for more advanced use of linker-
+ * generated arrays. The user is expected to build their own macro wrapper
+ * around this one.
+ *
+ * A variable declared using this macro must be compile-time initialized
+ * and is as such placed into subsection of special section, .u_boot_list.
+ * The subsection is specified by the _section_[u,d] parameter, see below.
+ * The base name of the variable is _name, yet the actual variable is
+ * declared as concatenation of
+ *
+ *   %_u_boot_list_ + @_section_u + _ + @_name
+ *
+ * which ensures name uniqueness. This variable shall never be refered
+ * directly though.
+ *
+ * Special precaution must be made when using this macro:
+ * 1) The _type must not contain the "static" keyword, otherwise the entry
+ *    is not generated.
+ *
+ * 2) The @_section_u and @_section_d variables must match, the only difference
+ *    is that in @_section_u is every dot "." character present in @_section_d
+ *    replaced by a single underscore "_" character in @_section_u. The actual
+ *    purpose of these parameters is to select proper subsection in the global
+ *    .u_boot_list section.
+ *
+ * 3) In case a section is declared that contains some array elements AND a
+ *    subsection of this section is declared and contains some elements, it is
+ *    imperative that the elements are of the same type.
+ *
+ * 4) In case an outer section is declared that contains some array elements
+ *    AND am inner subsection of this section is declared and contains some
+ *    elements, then when traversing the outer section, even the elements of
+ *    the inner sections are present in the array.
+ *
+ * Example:
+ * ll_entry_declare(struct my_sub_cmd, my_sub_cmd, cmd_sub, cmd.sub) = {
+ *         .x = 3,
+ *         .y = 4,
+ * };
+ */
+#define ll_entry_declare(_type, _name, _section_u, _section_d)		\
+	_type _u_boot_list_##_section_u##_##_name __attribute__((	\
+			unused,	aligned(4),				\
+			section(".u_boot_list."#_section_d"."#_name)))
+
+/**
+ * ll_entry_start() - Point to first entry of linker-generated array
+ * @_type:	Data type of the entry
+ * @_section_u:	Subsection of u_boot_list in which this entry is placed
+ *		(with underscores instead of dots)
+ *
+ * This function returns (_type *) pointer to the very first entry of a
+ * linker-generated array placed into subsection of .u_boot_list section
+ * specified by _section_u argument.
+ *
+ * Example:
+ * struct my_sub_cmd *msc = ll_entry_start(struct my_sub_cmd, cmd_sub);
+ */
+#define ll_entry_start(_type, _section_u)				\
+	({								\
+		extern _type _u_boot_list_##_section_u##__start;	\
+		_type *_ll_result = &_u_boot_list_##_section_u##__start;\
+		_ll_result;						\
+	})
+
+/**
+ * ll_entry_count() - Return the number of elements in linker-generated array
+ * @_type:	Data type of the entry
+ * @_section_u:	Subsection of u_boot_list in which this entry is placed
+ *		(with underscores instead of dots)
+ *
+ * This function returns the number of elements of a linker-generated array
+ * placed into subsection of .u_boot_list section specified by _section_u
+ * argument. The result is of an unsigned int type.
+ *
+ * Example:
+ * int i;
+ * const unsigned int count = ll_entry_count(struct my_sub_cmd, cmd_sub);
+ * struct my_sub_cmd *msc = ll_entry_start(struct my_sub_cmd, cmd_sub);
+ * for (i = 0; i < count; i++, msc++)
+ *         printf("Entry %i, x=%i y=%i\n", i, msc->x, msc->y);
+ */
+#define ll_entry_count(_type, _section_u)				\
+	({								\
+		extern _type _u_boot_list_##_section_u##__start;	\
+		extern _type _u_boot_list_##_section_u##__end;		\
+		unsigned int _ll_result =				\
+			&_u_boot_list_##_section_u##__end -		\
+			&_u_boot_list_##_section_u##__start;		\
+		_ll_result;						\
+	})
+
+
+/**
+ * ll_entry_get() - Retrieve entry from linker-generated array by name
+ * @_type:	Data type of the entry
+ * @_name:	Name of the entry
+ * @_section_u:	Subsection of u_boot_list in which this entry is placed
+ *		(with underscores instead of dots)
+ *
+ * This function returns a pointer to a particular entry in LG-array
+ * identified by the subsection of u_boot_list where the entry resides
+ * and it's name.
+ *
+ * Example:
+ * ll_entry_declare(struct my_sub_cmd, my_sub_cmd, cmd_sub, cmd.sub) = {
+ *         .x = 3,
+ *         .y = 4,
+ * };
+ * ...
+ * struct my_sub_cmd *c = ll_entry_get(struct my_sub_cmd, my_sub_cmd, cmd_sub);
+ */
+#define ll_entry_get(_type, _name, _section_u)				\
+	({								\
+		extern _type _u_boot_list_##_section_u##_##_name;	\
+		_type *_ll_result = &_u_boot_list_##_section_u##_##_name;\
+		_ll_result;						\
+	})
+
+#endif	/* __LINKER_LISTS_H__ */
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 3/5] common: Add .u_boot_list into all linker files
  2012-09-30  0:17 [U-Boot] [PATCH 0/5] Linker-generated arrays (take 2) Marek Vasut
  2012-09-30  0:17 ` [U-Boot] [PATCH 1/5] common: Add symbol handling for generic lists into Makefile Marek Vasut
  2012-09-30  0:17 ` [U-Boot] [PATCH 2/5] common: Implement support for linker-generated arrays Marek Vasut
@ 2012-09-30  0:17 ` Marek Vasut
  2012-10-02 23:41   ` Joe Hershberger
                     ` (2 more replies)
  2012-09-30  0:17 ` [U-Boot] [PATCH 4/5] common: Convert the U-Boot commands to LG-arrays Marek Vasut
                   ` (2 subsequent siblings)
  5 siblings, 3 replies; 48+ messages in thread
From: Marek Vasut @ 2012-09-30  0:17 UTC (permalink / raw)
  To: u-boot

Add section for the linker-generated lists into all possible linker
files, so that everyone can easily use these lists. This is mostly
a mechanical adjustment.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>
---
 arch/arm/cpu/arm920t/ep93xx/u-boot.lds           |    5 +++++
 arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds        |    4 ++++
 arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds      |    4 ++++
 arch/arm/cpu/armv7/omap-common/u-boot-spl.lds    |    5 +++++
 arch/arm/cpu/ixp/u-boot.lds                      |    5 +++++
 arch/arm/cpu/u-boot.lds                          |    5 +++++
 arch/avr32/cpu/u-boot.lds                        |    5 +++++
 arch/blackfin/cpu/u-boot.lds                     |    4 ++++
 arch/microblaze/cpu/u-boot.lds                   |    5 +++++
 arch/nds32/cpu/n1213/u-boot.lds                  |    5 +++++
 arch/nios2/cpu/u-boot.lds                        |    5 +++++
 arch/powerpc/cpu/74xx_7xx/u-boot.lds             |    5 +++++
 arch/powerpc/cpu/mpc512x/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc5xx/u-boot.lds               |    5 +++++
 arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds |    3 +++
 arch/powerpc/cpu/mpc5xxx/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc8220/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc824x/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc8260/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc83xx/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc85xx/u-boot-nand.lds         |    4 ++++
 arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds     |    4 ++++
 arch/powerpc/cpu/mpc85xx/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc86xx/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/ppc4xx/u-boot.lds               |    5 +++++
 arch/sandbox/cpu/u-boot.lds                      |    5 +++++
 arch/sh/cpu/sh2/u-boot.lds                       |    4 ++++
 arch/sh/cpu/sh3/u-boot.lds                       |    4 ++++
 arch/sh/cpu/sh4/u-boot.lds                       |    4 ++++
 arch/x86/cpu/u-boot.lds                          |    5 +++++
 board/BuS/eb_cpu5282/u-boot.lds                  |    5 +++++
 board/LEOX/elpt860/u-boot.lds                    |    5 +++++
 board/RPXClassic/u-boot.lds                      |    5 +++++
 board/RPXClassic/u-boot.lds.debug                |    5 +++++
 board/RPXlite/u-boot.lds                         |    5 +++++
 board/RPXlite/u-boot.lds.debug                   |    5 +++++
 board/RPXlite_dw/u-boot.lds                      |    5 +++++
 board/RPXlite_dw/u-boot.lds.debug                |    5 +++++
 board/RRvision/u-boot.lds                        |    5 +++++
 board/actux1/u-boot.lds                          |    5 +++++
 board/actux2/u-boot.lds                          |    5 +++++
 board/actux3/u-boot.lds                          |    5 +++++
 board/adder/u-boot.lds                           |    5 +++++
 board/ait/cam_enc_4xx/u-boot-spl.lds             |    4 ++++
 board/altera/nios2-generic/u-boot.lds            |    5 +++++
 board/amcc/acadia/u-boot-nand.lds                |    3 +++
 board/amcc/bamboo/u-boot-nand.lds                |    3 +++
 board/amcc/canyonlands/u-boot-nand.lds           |    3 +++
 board/amcc/kilauea/u-boot-nand.lds               |    3 +++
 board/amcc/sequoia/u-boot-nand.lds               |    3 +++
 board/amcc/sequoia/u-boot-ram.lds                |    3 +++
 board/amirix/ap1000/u-boot.lds                   |    5 +++++
 board/astro/mcf5373l/u-boot.lds                  |    5 +++++
 board/c2mon/u-boot.lds                           |    5 +++++
 board/c2mon/u-boot.lds.debug                     |    5 +++++
 board/cobra5272/u-boot.lds                       |    5 +++++
 board/cogent/u-boot.lds                          |    5 +++++
 board/cogent/u-boot.lds.debug                    |    5 +++++
 board/cray/L1/u-boot.lds.debug                   |    5 +++++
 board/dave/PPChameleonEVB/u-boot.lds             |    5 +++++
 board/davinci/da8xxevm/u-boot-spl-da850evm.lds   |    6 ++++++
 board/davinci/da8xxevm/u-boot-spl-hawk.lds       |    5 +++++
 board/dbau1x00/u-boot.lds                        |    5 +++++
 board/dvlhost/u-boot.lds                         |    5 +++++
 board/eltec/mhpc/u-boot.lds                      |    5 +++++
 board/eltec/mhpc/u-boot.lds.debug                |    5 +++++
 board/emk/top860/u-boot.lds                      |    5 +++++
 board/ep88x/u-boot.lds                           |    5 +++++
 board/esd/dasa_sim/u-boot.lds                    |    5 +++++
 board/esd/pmc440/u-boot-nand.lds                 |    3 +++
 board/esd/tasreg/u-boot.lds                      |    5 +++++
 board/esteem192e/u-boot.lds                      |    5 +++++
 board/etx094/u-boot.lds                          |    5 +++++
 board/evb64260/u-boot.lds                        |    5 +++++
 board/fads/u-boot.lds                            |    5 +++++
 board/flagadm/u-boot.lds                         |    5 +++++
 board/flagadm/u-boot.lds.debug                   |    5 +++++
 board/freescale/m5208evbe/u-boot.lds             |    5 +++++
 board/freescale/m52277evb/u-boot.lds             |    5 +++++
 board/freescale/m5235evb/u-boot.lds              |    5 +++++
 board/freescale/m5249evb/u-boot.lds              |    5 +++++
 board/freescale/m5253demo/u-boot.lds             |    5 +++++
 board/freescale/m5253evbe/u-boot.lds             |    5 +++++
 board/freescale/m5271evb/u-boot.lds              |    5 +++++
 board/freescale/m5272c3/u-boot.lds               |    5 +++++
 board/freescale/m5275evb/u-boot.lds              |    5 +++++
 board/freescale/m5282evb/u-boot.lds              |    5 +++++
 board/freescale/m53017evb/u-boot.lds             |    5 +++++
 board/freescale/m5329evb/u-boot.lds              |    5 +++++
 board/freescale/m5373evb/u-boot.lds              |    5 +++++
 board/freescale/m54451evb/u-boot.lds             |    5 +++++
 board/freescale/m54455evb/u-boot.lds             |    5 +++++
 board/freescale/m547xevb/u-boot.lds              |    5 +++++
 board/freescale/m548xevb/u-boot.lds              |    5 +++++
 board/freescale/mx31ads/u-boot.lds               |    5 +++++
 board/gaisler/gr_cpci_ax2000/u-boot.lds          |    5 +++++
 board/gaisler/gr_ep2s60/u-boot.lds               |    5 +++++
 board/gaisler/gr_xc3s_1500/u-boot.lds            |    5 +++++
 board/gaisler/grsim/u-boot.lds                   |    5 +++++
 board/gaisler/grsim_leon2/u-boot.lds             |    5 +++++
 board/gen860t/u-boot-flashenv.lds                |    4 ++++
 board/gen860t/u-boot.lds                         |    5 +++++
 board/genietv/u-boot.lds                         |    5 +++++
 board/genietv/u-boot.lds.debug                   |    5 +++++
 board/hermes/u-boot.lds                          |    5 +++++
 board/hermes/u-boot.lds.debug                    |    5 +++++
 board/hymod/u-boot.lds                           |    5 +++++
 board/hymod/u-boot.lds.debug                     |    5 +++++
 board/icu862/u-boot.lds                          |    5 +++++
 board/icu862/u-boot.lds.debug                    |    5 +++++
 board/idmr/u-boot.lds                            |    5 +++++
 board/incaip/u-boot.lds                          |    5 +++++
 board/ip860/u-boot.lds                           |    5 +++++
 board/ip860/u-boot.lds.debug                     |    5 +++++
 board/ivm/u-boot.lds                             |    5 +++++
 board/ivm/u-boot.lds.debug                       |    5 +++++
 board/korat/u-boot-F7FC.lds                      |    3 +++
 board/kup/kup4k/u-boot.lds                       |    5 +++++
 board/kup/kup4k/u-boot.lds.debug                 |    5 +++++
 board/kup/kup4x/u-boot.lds                       |    5 +++++
 board/kup/kup4x/u-boot.lds.debug                 |    5 +++++
 board/lantec/u-boot.lds                          |    5 +++++
 board/lantec/u-boot.lds.debug                    |    5 +++++
 board/lwmon/u-boot.lds                           |    5 +++++
 board/lwmon/u-boot.lds.debug                     |    5 +++++
 board/manroland/uc100/u-boot.lds                 |    5 +++++
 board/matrix_vision/mvsmr/u-boot.lds             |    5 +++++
 board/mbx8xx/u-boot.lds                          |    5 +++++
 board/mbx8xx/u-boot.lds.debug                    |    5 +++++
 board/micronas/vct/u-boot.lds                    |    5 +++++
 board/ml2/u-boot.lds                             |    5 +++++
 board/ml2/u-boot.lds.debug                       |    5 +++++
 board/mousse/u-boot.lds                          |    5 +++++
 board/mpl/pip405/u-boot.lds.debug                |    5 +++++
 board/mvblue/u-boot.lds                          |    5 +++++
 board/netphone/u-boot.lds                        |    5 +++++
 board/netphone/u-boot.lds.debug                  |    5 +++++
 board/netta/u-boot.lds                           |    5 +++++
 board/netta/u-boot.lds.debug                     |    5 +++++
 board/netta2/u-boot.lds                          |    5 +++++
 board/netta2/u-boot.lds.debug                    |    5 +++++
 board/netvia/u-boot.lds                          |    5 +++++
 board/netvia/u-boot.lds.debug                    |    5 +++++
 board/nx823/u-boot.lds                           |    5 +++++
 board/nx823/u-boot.lds.debug                     |    5 +++++
 board/openrisc/openrisc-generic/u-boot.lds       |    5 +++++
 board/pb1x00/u-boot.lds                          |    5 +++++
 board/qemu-mips/u-boot.lds                       |    5 +++++
 board/qi/qi_lb60/u-boot.lds                      |    5 +++++
 board/quantum/u-boot.lds                         |    5 +++++
 board/r360mpi/u-boot.lds                         |    5 +++++
 board/rbc823/u-boot.lds                          |    5 +++++
 board/renesas/sh7757lcr/u-boot.lds               |    4 ++++
 board/rsdproto/u-boot.lds                        |    5 +++++
 board/samsung/smdk5250/smdk5250-uboot-spl.lds    |    5 +++++
 board/samsung/smdk6400/u-boot-nand.lds           |    7 ++++++-
 board/sandburst/karef/u-boot.lds.debug           |    5 +++++
 board/sandburst/metrobox/u-boot.lds.debug        |    5 +++++
 board/sandpoint/u-boot.lds                       |    5 +++++
 board/siemens/IAD210/u-boot.lds                  |    5 +++++
 board/sixnet/u-boot.lds                          |    5 +++++
 board/snmc/qs850/u-boot.lds                      |    5 +++++
 board/snmc/qs860t/u-boot.lds                     |    5 +++++
 board/spc1920/u-boot.lds                         |    5 +++++
 board/spd8xx/u-boot.lds                          |    5 +++++
 board/spd8xx/u-boot.lds.debug                    |    5 +++++
 board/stx/stxxtc/u-boot.lds                      |    5 +++++
 board/stx/stxxtc/u-boot.lds.debug                |    5 +++++
 board/svm_sc8xx/u-boot.lds                       |    5 +++++
 board/tqc/tqm8xx/u-boot.lds                      |    5 +++++
 board/v37/u-boot.lds                             |    5 +++++
 board/vpac270/u-boot-spl.lds                     |    4 ++++
 board/w7o/u-boot.lds.debug                       |    5 +++++
 board/westel/amx860/u-boot.lds                   |    5 +++++
 board/westel/amx860/u-boot.lds.debug             |    5 +++++
 board/xes/xpedite1000/u-boot.lds.debug           |    5 +++++
 examples/standalone/mips.lds                     |    4 ++++
 examples/standalone/nds32.lds                    |    4 ++++
 examples/standalone/sparc.lds                    |    5 +++++
 nand_spl/board/freescale/mx31pdk/u-boot.lds      |    5 +++++
 nand_spl/board/karo/tx25/u-boot.lds              |    5 +++++
 nand_spl/board/samsung/smdk6400/u-boot.lds       |    5 +++++
 182 files changed, 880 insertions(+), 1 deletion(-)

diff --git a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
index dc6ba34..6ad9169 100644
--- a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
+++ b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
@@ -53,6 +53,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 	__bss_start = .;
 	.bss : { *(.bss) }
 	__bss_end__ = .;
diff --git a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
index f8ea38c..dd12607 100644
--- a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
+++ b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
@@ -54,6 +54,10 @@ SECTIONS
 	.u_boot_cmd : { *(.u_boot_cmd) }
 	__u_boot_cmd_end = .;
 
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	. = ALIGN(4);
 
 	.rel.dyn : {
diff --git a/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
index afd3381..65f80c2 100644
--- a/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
+++ b/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
@@ -54,6 +54,10 @@ SECTIONS
 	.u_boot_cmd : { *(.u_boot_cmd) }
 	__u_boot_cmd_end = .;
 
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	. = ALIGN(4);
 
 	.rel.dyn : {
diff --git a/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds b/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds
index 1d8efb2..c24c4e9 100644
--- a/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds
+++ b/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds
@@ -47,6 +47,11 @@ SECTIONS
 
 	. = ALIGN(4);
 	.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
+
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	. = ALIGN(4);
 	__image_copy_end = .;
 	_end = .;
diff --git a/arch/arm/cpu/ixp/u-boot.lds b/arch/arm/cpu/ixp/u-boot.lds
index 7199de4..e08f10b 100644
--- a/arch/arm/cpu/ixp/u-boot.lds
+++ b/arch/arm/cpu/ixp/u-boot.lds
@@ -51,6 +51,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/arch/arm/cpu/u-boot.lds b/arch/arm/cpu/u-boot.lds
index e49ca0c..18eaf73 100644
--- a/arch/arm/cpu/u-boot.lds
+++ b/arch/arm/cpu/u-boot.lds
@@ -54,6 +54,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 
 	__image_copy_end = .;
 
diff --git a/arch/avr32/cpu/u-boot.lds b/arch/avr32/cpu/u-boot.lds
index 0e532f2..5aef19b 100644
--- a/arch/avr32/cpu/u-boot.lds
+++ b/arch/avr32/cpu/u-boot.lds
@@ -54,6 +54,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 	_got = .;
 	.got : {
 		*(.got)
diff --git a/arch/blackfin/cpu/u-boot.lds b/arch/blackfin/cpu/u-boot.lds
index 2b8d285..be70d81 100644
--- a/arch/blackfin/cpu/u-boot.lds
+++ b/arch/blackfin/cpu/u-boot.lds
@@ -119,6 +119,10 @@ SECTIONS
 		___u_boot_cmd_end = .;
 	} >ram_data
 
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	} >ram_data
+
 	.text_l1 :
 	{
 		. = ALIGN(4);
diff --git a/arch/microblaze/cpu/u-boot.lds b/arch/microblaze/cpu/u-boot.lds
index d033a28..86773b5e 100644
--- a/arch/microblaze/cpu/u-boot.lds
+++ b/arch/microblaze/cpu/u-boot.lds
@@ -56,6 +56,11 @@ SECTIONS
 		__u_boot_cmd_start = .;
 		*(.u_boot_cmd)
 		__u_boot_cmd_end = .;
+
+		. = ALIGN(4);
+		.u_boot_list : {
+	INCLUDE u-boot.lst;
+		}
 	}
 
 	.bss ALIGN(0x4):
diff --git a/arch/nds32/cpu/n1213/u-boot.lds b/arch/nds32/cpu/n1213/u-boot.lds
index 1903420..48d5b90 100644
--- a/arch/nds32/cpu/n1213/u-boot.lds
+++ b/arch/nds32/cpu/n1213/u-boot.lds
@@ -57,6 +57,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 
 	_end = .;
 
diff --git a/arch/nios2/cpu/u-boot.lds b/arch/nios2/cpu/u-boot.lds
index 4856bd3..33cd0e2 100644
--- a/arch/nios2/cpu/u-boot.lds
+++ b/arch/nios2/cpu/u-boot.lds
@@ -53,6 +53,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	/* INIT DATA sections - "Small" data (see the gcc -G option)
 	 * is always gp-relative. Here we make all init data sections
 	 * adjacent to simplify the startup code -- and provide
diff --git a/arch/powerpc/cpu/74xx_7xx/u-boot.lds b/arch/powerpc/cpu/74xx_7xx/u-boot.lds
index 24823cd..049ae63 100644
--- a/arch/powerpc/cpu/74xx_7xx/u-boot.lds
+++ b/arch/powerpc/cpu/74xx_7xx/u-boot.lds
@@ -66,6 +66,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc512x/u-boot.lds b/arch/powerpc/cpu/mpc512x/u-boot.lds
index 7a4d927..d93c097 100644
--- a/arch/powerpc/cpu/mpc512x/u-boot.lds
+++ b/arch/powerpc/cpu/mpc512x/u-boot.lds
@@ -61,6 +61,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc5xx/u-boot.lds b/arch/powerpc/cpu/mpc5xx/u-boot.lds
index e02b213..2fbc379 100644
--- a/arch/powerpc/cpu/mpc5xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc5xx/u-boot.lds
@@ -69,6 +69,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds b/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
index 0c6c54e..1574767 100644
--- a/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
+++ b/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
@@ -70,6 +70,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc5xxx/u-boot.lds b/arch/powerpc/cpu/mpc5xxx/u-boot.lds
index 5dcaec1..52755e6 100644
--- a/arch/powerpc/cpu/mpc5xxx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc5xxx/u-boot.lds
@@ -64,6 +64,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc8220/u-boot.lds b/arch/powerpc/cpu/mpc8220/u-boot.lds
index 39bb42e..222f907 100644
--- a/arch/powerpc/cpu/mpc8220/u-boot.lds
+++ b/arch/powerpc/cpu/mpc8220/u-boot.lds
@@ -63,6 +63,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc824x/u-boot.lds b/arch/powerpc/cpu/mpc824x/u-boot.lds
index b30ce76..bb16926 100644
--- a/arch/powerpc/cpu/mpc824x/u-boot.lds
+++ b/arch/powerpc/cpu/mpc824x/u-boot.lds
@@ -64,6 +64,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc8260/u-boot.lds b/arch/powerpc/cpu/mpc8260/u-boot.lds
index 60b71ec..722d7fb 100644
--- a/arch/powerpc/cpu/mpc8260/u-boot.lds
+++ b/arch/powerpc/cpu/mpc8260/u-boot.lds
@@ -63,6 +63,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc83xx/u-boot.lds b/arch/powerpc/cpu/mpc83xx/u-boot.lds
index 2f4b9ad..416bc07 100644
--- a/arch/powerpc/cpu/mpc83xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc83xx/u-boot.lds
@@ -62,6 +62,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds b/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
index 8ba9399..5563b5f 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
@@ -74,6 +74,10 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds b/arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds
index 668158f..6c8ae9a 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds
@@ -53,6 +53,10 @@ SECTIONS
 	}
 	_edata  =  .;
 
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	. = ALIGN(8);
 	__init_begin = .;
 	__init_end = .;
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot.lds b/arch/powerpc/cpu/mpc85xx/u-boot.lds
index efe34b7..009214b 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot.lds
@@ -81,6 +81,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/arch/powerpc/cpu/mpc86xx/u-boot.lds b/arch/powerpc/cpu/mpc86xx/u-boot.lds
index 121e529..e3b19d4 100644
--- a/arch/powerpc/cpu/mpc86xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc86xx/u-boot.lds
@@ -68,6 +68,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/arch/powerpc/cpu/ppc4xx/u-boot.lds b/arch/powerpc/cpu/ppc4xx/u-boot.lds
index 2466b79..005ec61 100644
--- a/arch/powerpc/cpu/ppc4xx/u-boot.lds
+++ b/arch/powerpc/cpu/ppc4xx/u-boot.lds
@@ -82,6 +82,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/arch/sandbox/cpu/u-boot.lds b/arch/sandbox/cpu/u-boot.lds
index 9960138..0a37657 100644
--- a/arch/sandbox/cpu/u-boot.lds
+++ b/arch/sandbox/cpu/u-boot.lds
@@ -28,6 +28,11 @@ SECTIONS
 	_u_boot_cmd : { *(.u_boot_cmd) }
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	__u_boot_sandbox_option_start = .;
 	_u_boot_sandbox_getopt : { *(.u_boot_sandbox_getopt) }
 	__u_boot_sandbox_option_end = .;
diff --git a/arch/sh/cpu/sh2/u-boot.lds b/arch/sh/cpu/sh2/u-boot.lds
index b86a822..2331152 100644
--- a/arch/sh/cpu/sh2/u-boot.lds
+++ b/arch/sh/cpu/sh2/u-boot.lds
@@ -80,6 +80,10 @@ SECTIONS
 	}
 	PROVIDE (__u_boot_cmd_end = .);
 
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	PROVIDE (reloc_dst_end = .);
 
 	PROVIDE (bss_start = .);
diff --git a/arch/sh/cpu/sh3/u-boot.lds b/arch/sh/cpu/sh3/u-boot.lds
index 9bf8503..9d99434 100644
--- a/arch/sh/cpu/sh3/u-boot.lds
+++ b/arch/sh/cpu/sh3/u-boot.lds
@@ -86,6 +86,10 @@ SECTIONS
 	}
 	PROVIDE (__u_boot_cmd_end = .);
 
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	PROVIDE (reloc_dst_end = .);
 	/* _reloc_dst_end = .; */
 
diff --git a/arch/sh/cpu/sh4/u-boot.lds b/arch/sh/cpu/sh4/u-boot.lds
index d9c70bc..8702c9e 100644
--- a/arch/sh/cpu/sh4/u-boot.lds
+++ b/arch/sh/cpu/sh4/u-boot.lds
@@ -83,6 +83,10 @@ SECTIONS
 	}
 	PROVIDE (__u_boot_cmd_end = .);
 
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	PROVIDE (reloc_dst_end = .);
 	/* _reloc_dst_end = .; */
 
diff --git a/arch/x86/cpu/u-boot.lds b/arch/x86/cpu/u-boot.lds
index fe28030..aa2b653 100644
--- a/arch/x86/cpu/u-boot.lds
+++ b/arch/x86/cpu/u-boot.lds
@@ -39,6 +39,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 	.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
 
 	. = ALIGN(4);
diff --git a/board/BuS/eb_cpu5282/u-boot.lds b/board/BuS/eb_cpu5282/u-boot.lds
index 4ba1964..3132a55 100644
--- a/board/BuS/eb_cpu5282/u-boot.lds
+++ b/board/BuS/eb_cpu5282/u-boot.lds
@@ -69,6 +69,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/LEOX/elpt860/u-boot.lds b/board/LEOX/elpt860/u-boot.lds
index 5aaf6b3..d85943c 100644
--- a/board/LEOX/elpt860/u-boot.lds
+++ b/board/LEOX/elpt860/u-boot.lds
@@ -90,6 +90,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/RPXClassic/u-boot.lds b/board/RPXClassic/u-boot.lds
index d0b60cf..92f78be 100644
--- a/board/RPXClassic/u-boot.lds
+++ b/board/RPXClassic/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/RPXClassic/u-boot.lds.debug b/board/RPXClassic/u-boot.lds.debug
index 99c48f2..47ad2e7 100644
--- a/board/RPXClassic/u-boot.lds.debug
+++ b/board/RPXClassic/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/RPXlite/u-boot.lds b/board/RPXlite/u-boot.lds
index d0b60cf..92f78be 100644
--- a/board/RPXlite/u-boot.lds
+++ b/board/RPXlite/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/RPXlite/u-boot.lds.debug b/board/RPXlite/u-boot.lds.debug
index 99c48f2..47ad2e7 100644
--- a/board/RPXlite/u-boot.lds.debug
+++ b/board/RPXlite/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/RPXlite_dw/u-boot.lds b/board/RPXlite_dw/u-boot.lds
index d0b60cf..92f78be 100644
--- a/board/RPXlite_dw/u-boot.lds
+++ b/board/RPXlite_dw/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/RPXlite_dw/u-boot.lds.debug b/board/RPXlite_dw/u-boot.lds.debug
index 4491edd..c76f9d0 100644
--- a/board/RPXlite_dw/u-boot.lds.debug
+++ b/board/RPXlite_dw/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/RRvision/u-boot.lds b/board/RRvision/u-boot.lds
index 8385373..3c2c708 100644
--- a/board/RRvision/u-boot.lds
+++ b/board/RRvision/u-boot.lds
@@ -75,6 +75,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/actux1/u-boot.lds b/board/actux1/u-boot.lds
index 9dbaa6f..e5d59db 100644
--- a/board/actux1/u-boot.lds
+++ b/board/actux1/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	}
 	__u_boot_cmd_end =.;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	. = ALIGN (4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/actux2/u-boot.lds b/board/actux2/u-boot.lds
index 3575ed9..09bb7ab 100644
--- a/board/actux2/u-boot.lds
+++ b/board/actux2/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	}
 	__u_boot_cmd_end =.;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	. = ALIGN (4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/actux3/u-boot.lds b/board/actux3/u-boot.lds
index 35aab29..71b6791 100644
--- a/board/actux3/u-boot.lds
+++ b/board/actux3/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	}
 	__u_boot_cmd_end =.;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	. = ALIGN (4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/adder/u-boot.lds b/board/adder/u-boot.lds
index a762769..62afcb80 100644
--- a/board/adder/u-boot.lds
+++ b/board/adder/u-boot.lds
@@ -66,6 +66,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/ait/cam_enc_4xx/u-boot-spl.lds b/board/ait/cam_enc_4xx/u-boot-spl.lds
index 52c986e..9403c3c 100644
--- a/board/ait/cam_enc_4xx/u-boot-spl.lds
+++ b/board/ait/cam_enc_4xx/u-boot-spl.lds
@@ -48,6 +48,10 @@ SECTIONS
 	. = ALIGN(4);
 	.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
 	. = ALIGN(4);
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	} >.sram
+	. = ALIGN(4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
 		*(.rel*)
diff --git a/board/altera/nios2-generic/u-boot.lds b/board/altera/nios2-generic/u-boot.lds
index 88ced62..764cc7d 100644
--- a/board/altera/nios2-generic/u-boot.lds
+++ b/board/altera/nios2-generic/u-boot.lds
@@ -54,6 +54,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	/* INIT DATA sections - "Small" data (see the gcc -G option)
 	 * is always gp-relative. Here we make all init data sections
 	 * adjacent to simplify the startup code -- and provide
diff --git a/board/amcc/acadia/u-boot-nand.lds b/board/amcc/acadia/u-boot-nand.lds
index ab67de2..bc0356b 100644
--- a/board/amcc/acadia/u-boot-nand.lds
+++ b/board/amcc/acadia/u-boot-nand.lds
@@ -76,6 +76,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/amcc/bamboo/u-boot-nand.lds b/board/amcc/bamboo/u-boot-nand.lds
index 3ad8709..2382ea9 100644
--- a/board/amcc/bamboo/u-boot-nand.lds
+++ b/board/amcc/bamboo/u-boot-nand.lds
@@ -77,6 +77,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/amcc/canyonlands/u-boot-nand.lds b/board/amcc/canyonlands/u-boot-nand.lds
index 76f89f1..0816387 100644
--- a/board/amcc/canyonlands/u-boot-nand.lds
+++ b/board/amcc/canyonlands/u-boot-nand.lds
@@ -77,6 +77,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/amcc/kilauea/u-boot-nand.lds b/board/amcc/kilauea/u-boot-nand.lds
index ab67de2..bc0356b 100644
--- a/board/amcc/kilauea/u-boot-nand.lds
+++ b/board/amcc/kilauea/u-boot-nand.lds
@@ -76,6 +76,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/amcc/sequoia/u-boot-nand.lds b/board/amcc/sequoia/u-boot-nand.lds
index 07ae8b1..94234de 100644
--- a/board/amcc/sequoia/u-boot-nand.lds
+++ b/board/amcc/sequoia/u-boot-nand.lds
@@ -77,6 +77,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/amcc/sequoia/u-boot-ram.lds b/board/amcc/sequoia/u-boot-ram.lds
index 423400a..0f594f5 100644
--- a/board/amcc/sequoia/u-boot-ram.lds
+++ b/board/amcc/sequoia/u-boot-ram.lds
@@ -68,6 +68,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/amirix/ap1000/u-boot.lds b/board/amirix/ap1000/u-boot.lds
index cd8f5ce..575d390 100644
--- a/board/amirix/ap1000/u-boot.lds
+++ b/board/amirix/ap1000/u-boot.lds
@@ -71,6 +71,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/astro/mcf5373l/u-boot.lds b/board/astro/mcf5373l/u-boot.lds
index a1d8e0f..d800805 100644
--- a/board/astro/mcf5373l/u-boot.lds
+++ b/board/astro/mcf5373l/u-boot.lds
@@ -113,6 +113,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/c2mon/u-boot.lds b/board/c2mon/u-boot.lds
index b9b8e3c..a170f06 100644
--- a/board/c2mon/u-boot.lds
+++ b/board/c2mon/u-boot.lds
@@ -78,6 +78,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/c2mon/u-boot.lds.debug b/board/c2mon/u-boot.lds.debug
index c771102..fd278a4 100644
--- a/board/c2mon/u-boot.lds.debug
+++ b/board/c2mon/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/cobra5272/u-boot.lds b/board/cobra5272/u-boot.lds
index c4039ed..d49b0ef 100644
--- a/board/cobra5272/u-boot.lds
+++ b/board/cobra5272/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/cogent/u-boot.lds b/board/cogent/u-boot.lds
index 2393d8d..3a3d988 100644
--- a/board/cogent/u-boot.lds
+++ b/board/cogent/u-boot.lds
@@ -74,6 +74,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/cogent/u-boot.lds.debug b/board/cogent/u-boot.lds.debug
index 99c48f2..47ad2e7 100644
--- a/board/cogent/u-boot.lds.debug
+++ b/board/cogent/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/cray/L1/u-boot.lds.debug b/board/cray/L1/u-boot.lds.debug
index fcf8ebb..78fe44c 100644
--- a/board/cray/L1/u-boot.lds.debug
+++ b/board/cray/L1/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/dave/PPChameleonEVB/u-boot.lds b/board/dave/PPChameleonEVB/u-boot.lds
index 3b10114..fb40e3d 100644
--- a/board/dave/PPChameleonEVB/u-boot.lds
+++ b/board/dave/PPChameleonEVB/u-boot.lds
@@ -78,6 +78,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/davinci/da8xxevm/u-boot-spl-da850evm.lds b/board/davinci/da8xxevm/u-boot-spl-da850evm.lds
index 6f6e065..f1b53aa 100644
--- a/board/davinci/da8xxevm/u-boot-spl-da850evm.lds
+++ b/board/davinci/da8xxevm/u-boot-spl-da850evm.lds
@@ -47,6 +47,12 @@ SECTIONS
 
 	. = ALIGN(4);
 	.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
+
+	. = ALIGN(4);
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	} >.sram
+
 	. = ALIGN(4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/davinci/da8xxevm/u-boot-spl-hawk.lds b/board/davinci/da8xxevm/u-boot-spl-hawk.lds
index b3a41af..15fa53a 100644
--- a/board/davinci/da8xxevm/u-boot-spl-hawk.lds
+++ b/board/davinci/da8xxevm/u-boot-spl-hawk.lds
@@ -58,6 +58,11 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 	__rel_dyn_start = .;
 	__rel_dyn_end = .;
 	__dynsym_start = .;
diff --git a/board/dbau1x00/u-boot.lds b/board/dbau1x00/u-boot.lds
index 4a59cea..0569133 100644
--- a/board/dbau1x00/u-boot.lds
+++ b/board/dbau1x00/u-boot.lds
@@ -58,6 +58,11 @@ SECTIONS
 	  __u_boot_cmd_start = .;
 	  *(.u_boot_cmd)
 	  __u_boot_cmd_end = .;
+
+	  . = ALIGN(4);
+	  .u_boot_list : {
+	INCLUDE u-boot.lst;
+	  }
 	}
 
 	uboot_end_data = .;
diff --git a/board/dvlhost/u-boot.lds b/board/dvlhost/u-boot.lds
index 01ec390..897263e 100644
--- a/board/dvlhost/u-boot.lds
+++ b/board/dvlhost/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	}
 	__u_boot_cmd_end =.;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	. = ALIGN (4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/eltec/mhpc/u-boot.lds b/board/eltec/mhpc/u-boot.lds
index fd4e8a5..4385876 100644
--- a/board/eltec/mhpc/u-boot.lds
+++ b/board/eltec/mhpc/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/eltec/mhpc/u-boot.lds.debug b/board/eltec/mhpc/u-boot.lds.debug
index c771102..fd278a4 100644
--- a/board/eltec/mhpc/u-boot.lds.debug
+++ b/board/eltec/mhpc/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/emk/top860/u-boot.lds b/board/emk/top860/u-boot.lds
index fb06648..887ee6b 100644
--- a/board/emk/top860/u-boot.lds
+++ b/board/emk/top860/u-boot.lds
@@ -71,6 +71,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/ep88x/u-boot.lds b/board/ep88x/u-boot.lds
index 332b35a..0c5a03e 100644
--- a/board/ep88x/u-boot.lds
+++ b/board/ep88x/u-boot.lds
@@ -66,6 +66,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/esd/dasa_sim/u-boot.lds b/board/esd/dasa_sim/u-boot.lds
index b15948d..9a3249d 100644
--- a/board/esd/dasa_sim/u-boot.lds
+++ b/board/esd/dasa_sim/u-boot.lds
@@ -77,6 +77,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/esd/pmc440/u-boot-nand.lds b/board/esd/pmc440/u-boot-nand.lds
index 71f0fd2..d4ef403 100644
--- a/board/esd/pmc440/u-boot-nand.lds
+++ b/board/esd/pmc440/u-boot-nand.lds
@@ -106,6 +106,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+		INCLUDE u-boot.lst;
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/esd/tasreg/u-boot.lds b/board/esd/tasreg/u-boot.lds
index f697ccd..b302ba0 100644
--- a/board/esd/tasreg/u-boot.lds
+++ b/board/esd/tasreg/u-boot.lds
@@ -69,6 +69,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/esteem192e/u-boot.lds b/board/esteem192e/u-boot.lds
index 163b83d..83d9ec0 100644
--- a/board/esteem192e/u-boot.lds
+++ b/board/esteem192e/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/etx094/u-boot.lds b/board/etx094/u-boot.lds
index 8465937..a98ee23 100644
--- a/board/etx094/u-boot.lds
+++ b/board/etx094/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/evb64260/u-boot.lds b/board/evb64260/u-boot.lds
index 2d031ef..1eb7f30 100644
--- a/board/evb64260/u-boot.lds
+++ b/board/evb64260/u-boot.lds
@@ -74,6 +74,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/fads/u-boot.lds b/board/fads/u-boot.lds
index 9ea0674..deee255 100644
--- a/board/fads/u-boot.lds
+++ b/board/fads/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/flagadm/u-boot.lds b/board/flagadm/u-boot.lds
index fd4e8a5..4385876 100644
--- a/board/flagadm/u-boot.lds
+++ b/board/flagadm/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/flagadm/u-boot.lds.debug b/board/flagadm/u-boot.lds.debug
index c771102..fd278a4 100644
--- a/board/flagadm/u-boot.lds.debug
+++ b/board/flagadm/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5208evbe/u-boot.lds b/board/freescale/m5208evbe/u-boot.lds
index 6e39be1..e184013 100644
--- a/board/freescale/m5208evbe/u-boot.lds
+++ b/board/freescale/m5208evbe/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m52277evb/u-boot.lds b/board/freescale/m52277evb/u-boot.lds
index 3e9f4c3..6214098 100644
--- a/board/freescale/m52277evb/u-boot.lds
+++ b/board/freescale/m52277evb/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5235evb/u-boot.lds b/board/freescale/m5235evb/u-boot.lds
index d39e734..9b5e5e2 100644
--- a/board/freescale/m5235evb/u-boot.lds
+++ b/board/freescale/m5235evb/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5249evb/u-boot.lds b/board/freescale/m5249evb/u-boot.lds
index c4039ed..d49b0ef 100644
--- a/board/freescale/m5249evb/u-boot.lds
+++ b/board/freescale/m5249evb/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5253demo/u-boot.lds b/board/freescale/m5253demo/u-boot.lds
index cbd2831..3487a8d 100644
--- a/board/freescale/m5253demo/u-boot.lds
+++ b/board/freescale/m5253demo/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5253evbe/u-boot.lds b/board/freescale/m5253evbe/u-boot.lds
index c4039ed..d49b0ef 100644
--- a/board/freescale/m5253evbe/u-boot.lds
+++ b/board/freescale/m5253evbe/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5271evb/u-boot.lds b/board/freescale/m5271evb/u-boot.lds
index 4717036..3a86350 100644
--- a/board/freescale/m5271evb/u-boot.lds
+++ b/board/freescale/m5271evb/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5272c3/u-boot.lds b/board/freescale/m5272c3/u-boot.lds
index c4039ed..d49b0ef 100644
--- a/board/freescale/m5272c3/u-boot.lds
+++ b/board/freescale/m5272c3/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5275evb/u-boot.lds b/board/freescale/m5275evb/u-boot.lds
index 6c2dfe8..b37b06b 100644
--- a/board/freescale/m5275evb/u-boot.lds
+++ b/board/freescale/m5275evb/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5282evb/u-boot.lds b/board/freescale/m5282evb/u-boot.lds
index 4ba1964..3132a55 100644
--- a/board/freescale/m5282evb/u-boot.lds
+++ b/board/freescale/m5282evb/u-boot.lds
@@ -69,6 +69,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m53017evb/u-boot.lds b/board/freescale/m53017evb/u-boot.lds
index 80935f2..662bd31 100644
--- a/board/freescale/m53017evb/u-boot.lds
+++ b/board/freescale/m53017evb/u-boot.lds
@@ -75,6 +75,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5329evb/u-boot.lds b/board/freescale/m5329evb/u-boot.lds
index 40af8bc..fe5be41 100644
--- a/board/freescale/m5329evb/u-boot.lds
+++ b/board/freescale/m5329evb/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5373evb/u-boot.lds b/board/freescale/m5373evb/u-boot.lds
index 19342ac..8ff6fc9 100644
--- a/board/freescale/m5373evb/u-boot.lds
+++ b/board/freescale/m5373evb/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m54451evb/u-boot.lds b/board/freescale/m54451evb/u-boot.lds
index 45924b7..ea0984f 100644
--- a/board/freescale/m54451evb/u-boot.lds
+++ b/board/freescale/m54451evb/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m54455evb/u-boot.lds b/board/freescale/m54455evb/u-boot.lds
index f341449..fe1b58c 100644
--- a/board/freescale/m54455evb/u-boot.lds
+++ b/board/freescale/m54455evb/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m547xevb/u-boot.lds b/board/freescale/m547xevb/u-boot.lds
index 5472689..877eaf2 100644
--- a/board/freescale/m547xevb/u-boot.lds
+++ b/board/freescale/m547xevb/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m548xevb/u-boot.lds b/board/freescale/m548xevb/u-boot.lds
index cf3f38c..33e054b 100644
--- a/board/freescale/m548xevb/u-boot.lds
+++ b/board/freescale/m548xevb/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/mx31ads/u-boot.lds b/board/freescale/mx31ads/u-boot.lds
index 79eb7ac..3db5dc3 100644
--- a/board/freescale/mx31ads/u-boot.lds
+++ b/board/freescale/mx31ads/u-boot.lds
@@ -62,6 +62,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/gaisler/gr_cpci_ax2000/u-boot.lds b/board/gaisler/gr_cpci_ax2000/u-boot.lds
index 87cb8e3..416761b 100644
--- a/board/gaisler/gr_cpci_ax2000/u-boot.lds
+++ b/board/gaisler/gr_cpci_ax2000/u-boot.lds
@@ -90,6 +90,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	.data	:
 	{
 		*(.data)
diff --git a/board/gaisler/gr_ep2s60/u-boot.lds b/board/gaisler/gr_ep2s60/u-boot.lds
index 2fb44aa..43faf26 100644
--- a/board/gaisler/gr_ep2s60/u-boot.lds
+++ b/board/gaisler/gr_ep2s60/u-boot.lds
@@ -90,6 +90,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	.data	:
 	{
 		*(.data)
diff --git a/board/gaisler/gr_xc3s_1500/u-boot.lds b/board/gaisler/gr_xc3s_1500/u-boot.lds
index 8719e97..14c631e 100644
--- a/board/gaisler/gr_xc3s_1500/u-boot.lds
+++ b/board/gaisler/gr_xc3s_1500/u-boot.lds
@@ -90,6 +90,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	.data	:
 	{
 		*(.data)
diff --git a/board/gaisler/grsim/u-boot.lds b/board/gaisler/grsim/u-boot.lds
index 33890b5..4766465 100644
--- a/board/gaisler/grsim/u-boot.lds
+++ b/board/gaisler/grsim/u-boot.lds
@@ -89,6 +89,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	.data	:
 	{
 		*(.data)
diff --git a/board/gaisler/grsim_leon2/u-boot.lds b/board/gaisler/grsim_leon2/u-boot.lds
index cf6e502..cbd4ed6 100644
--- a/board/gaisler/grsim_leon2/u-boot.lds
+++ b/board/gaisler/grsim_leon2/u-boot.lds
@@ -89,6 +89,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	.data	:
 	{
 		*(.data)
diff --git a/board/gen860t/u-boot-flashenv.lds b/board/gen860t/u-boot-flashenv.lds
index 5bb6c62..1302eaa 100644
--- a/board/gen860t/u-boot-flashenv.lds
+++ b/board/gen860t/u-boot-flashenv.lds
@@ -75,6 +75,10 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+		INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/gen860t/u-boot.lds b/board/gen860t/u-boot.lds
index be99b51..de57dd1 100644
--- a/board/gen860t/u-boot.lds
+++ b/board/gen860t/u-boot.lds
@@ -75,6 +75,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/genietv/u-boot.lds b/board/genietv/u-boot.lds
index 1d66a9b..45c56bb 100644
--- a/board/genietv/u-boot.lds
+++ b/board/genietv/u-boot.lds
@@ -84,6 +84,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/genietv/u-boot.lds.debug b/board/genietv/u-boot.lds.debug
index cfa4ef3..4783367 100644
--- a/board/genietv/u-boot.lds.debug
+++ b/board/genietv/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/hermes/u-boot.lds b/board/hermes/u-boot.lds
index ca97115..8b90f6c 100644
--- a/board/hermes/u-boot.lds
+++ b/board/hermes/u-boot.lds
@@ -76,6 +76,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/hermes/u-boot.lds.debug b/board/hermes/u-boot.lds.debug
index 8a197de..53ffee1 100644
--- a/board/hermes/u-boot.lds.debug
+++ b/board/hermes/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/hymod/u-boot.lds b/board/hymod/u-boot.lds
index 1309f20..83d2dd4 100644
--- a/board/hymod/u-boot.lds
+++ b/board/hymod/u-boot.lds
@@ -114,6 +114,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/hymod/u-boot.lds.debug b/board/hymod/u-boot.lds.debug
index 99c48f2..47ad2e7 100644
--- a/board/hymod/u-boot.lds.debug
+++ b/board/hymod/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/icu862/u-boot.lds b/board/icu862/u-boot.lds
index 93c79a6..23d4405 100644
--- a/board/icu862/u-boot.lds
+++ b/board/icu862/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/icu862/u-boot.lds.debug b/board/icu862/u-boot.lds.debug
index 91d3e67..203f704 100644
--- a/board/icu862/u-boot.lds.debug
+++ b/board/icu862/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/idmr/u-boot.lds b/board/idmr/u-boot.lds
index f697ccd..b302ba0 100644
--- a/board/idmr/u-boot.lds
+++ b/board/idmr/u-boot.lds
@@ -69,6 +69,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/incaip/u-boot.lds b/board/incaip/u-boot.lds
index 4a59cea..0569133 100644
--- a/board/incaip/u-boot.lds
+++ b/board/incaip/u-boot.lds
@@ -58,6 +58,11 @@ SECTIONS
 	  __u_boot_cmd_start = .;
 	  *(.u_boot_cmd)
 	  __u_boot_cmd_end = .;
+
+	  . = ALIGN(4);
+	  .u_boot_list : {
+	INCLUDE u-boot.lst;
+	  }
 	}
 
 	uboot_end_data = .;
diff --git a/board/ip860/u-boot.lds b/board/ip860/u-boot.lds
index d0b60cf..92f78be 100644
--- a/board/ip860/u-boot.lds
+++ b/board/ip860/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/ip860/u-boot.lds.debug b/board/ip860/u-boot.lds.debug
index 2f61b11..4fc4c0f 100644
--- a/board/ip860/u-boot.lds.debug
+++ b/board/ip860/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/ivm/u-boot.lds b/board/ivm/u-boot.lds
index 1e843eb..d0d9a37 100644
--- a/board/ivm/u-boot.lds
+++ b/board/ivm/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/ivm/u-boot.lds.debug b/board/ivm/u-boot.lds.debug
index 732a46f..f4c04b3 100644
--- a/board/ivm/u-boot.lds.debug
+++ b/board/ivm/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/korat/u-boot-F7FC.lds b/board/korat/u-boot-F7FC.lds
index 6a017e3..da33f00 100644
--- a/board/korat/u-boot-F7FC.lds
+++ b/board/korat/u-boot-F7FC.lds
@@ -112,6 +112,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/kup/kup4k/u-boot.lds b/board/kup/kup4k/u-boot.lds
index d0b60cf..92f78be 100644
--- a/board/kup/kup4k/u-boot.lds
+++ b/board/kup/kup4k/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/kup/kup4k/u-boot.lds.debug b/board/kup/kup4k/u-boot.lds.debug
index 4491edd..c76f9d0 100644
--- a/board/kup/kup4k/u-boot.lds.debug
+++ b/board/kup/kup4k/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/kup/kup4x/u-boot.lds b/board/kup/kup4x/u-boot.lds
index d0b60cf..92f78be 100644
--- a/board/kup/kup4x/u-boot.lds
+++ b/board/kup/kup4x/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/kup/kup4x/u-boot.lds.debug b/board/kup/kup4x/u-boot.lds.debug
index 4491edd..c76f9d0 100644
--- a/board/kup/kup4x/u-boot.lds.debug
+++ b/board/kup/kup4x/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/lantec/u-boot.lds b/board/lantec/u-boot.lds
index de0b355..9360839 100644
--- a/board/lantec/u-boot.lds
+++ b/board/lantec/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/lantec/u-boot.lds.debug b/board/lantec/u-boot.lds.debug
index 856a99b..7c1ccb2 100644
--- a/board/lantec/u-boot.lds.debug
+++ b/board/lantec/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/lwmon/u-boot.lds b/board/lwmon/u-boot.lds
index 8bf7324..7dfa157 100644
--- a/board/lwmon/u-boot.lds
+++ b/board/lwmon/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/lwmon/u-boot.lds.debug b/board/lwmon/u-boot.lds.debug
index 2412234..0778758 100644
--- a/board/lwmon/u-boot.lds.debug
+++ b/board/lwmon/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/manroland/uc100/u-boot.lds b/board/manroland/uc100/u-boot.lds
index 731cec9..d291d60 100644
--- a/board/manroland/uc100/u-boot.lds
+++ b/board/manroland/uc100/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/matrix_vision/mvsmr/u-boot.lds b/board/matrix_vision/mvsmr/u-boot.lds
index 57c37de..2445b97 100644
--- a/board/matrix_vision/mvsmr/u-boot.lds
+++ b/board/matrix_vision/mvsmr/u-boot.lds
@@ -78,6 +78,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/mbx8xx/u-boot.lds b/board/mbx8xx/u-boot.lds
index d0b60cf..92f78be 100644
--- a/board/mbx8xx/u-boot.lds
+++ b/board/mbx8xx/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/mbx8xx/u-boot.lds.debug b/board/mbx8xx/u-boot.lds.debug
index a95c47f..7e62932 100644
--- a/board/mbx8xx/u-boot.lds.debug
+++ b/board/mbx8xx/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/micronas/vct/u-boot.lds b/board/micronas/vct/u-boot.lds
index 3a05ef9..273d190 100644
--- a/board/micronas/vct/u-boot.lds
+++ b/board/micronas/vct/u-boot.lds
@@ -57,6 +57,11 @@ SECTIONS
 	  __u_boot_cmd_start = .;
 	  *(.u_boot_cmd)
 	  __u_boot_cmd_end = .;
+
+	  . = ALIGN(4);
+	  .u_boot_list : {
+	INCLUDE u-boot.lst;
+	  }
 	}
 
 	. = ALIGN(4);
diff --git a/board/ml2/u-boot.lds b/board/ml2/u-boot.lds
index 9f9ddb8..a6cad6d 100644
--- a/board/ml2/u-boot.lds
+++ b/board/ml2/u-boot.lds
@@ -68,6 +68,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/ml2/u-boot.lds.debug b/board/ml2/u-boot.lds.debug
index fcf8ebb..78fe44c 100644
--- a/board/ml2/u-boot.lds.debug
+++ b/board/ml2/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/mousse/u-boot.lds b/board/mousse/u-boot.lds
index dae2cfc..863468e 100644
--- a/board/mousse/u-boot.lds
+++ b/board/mousse/u-boot.lds
@@ -64,6 +64,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/mpl/pip405/u-boot.lds.debug b/board/mpl/pip405/u-boot.lds.debug
index fcf8ebb..78fe44c 100644
--- a/board/mpl/pip405/u-boot.lds.debug
+++ b/board/mpl/pip405/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/mvblue/u-boot.lds b/board/mvblue/u-boot.lds
index 11624d2..4610de9 100644
--- a/board/mvblue/u-boot.lds
+++ b/board/mvblue/u-boot.lds
@@ -74,6 +74,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/netphone/u-boot.lds b/board/netphone/u-boot.lds
index a949e4f..86bb3b4 100644
--- a/board/netphone/u-boot.lds
+++ b/board/netphone/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/netphone/u-boot.lds.debug b/board/netphone/u-boot.lds.debug
index a001f3f..480feff 100644
--- a/board/netphone/u-boot.lds.debug
+++ b/board/netphone/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/netta/u-boot.lds b/board/netta/u-boot.lds
index a949e4f..86bb3b4 100644
--- a/board/netta/u-boot.lds
+++ b/board/netta/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/netta/u-boot.lds.debug b/board/netta/u-boot.lds.debug
index a001f3f..480feff 100644
--- a/board/netta/u-boot.lds.debug
+++ b/board/netta/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/netta2/u-boot.lds b/board/netta2/u-boot.lds
index a949e4f..86bb3b4 100644
--- a/board/netta2/u-boot.lds
+++ b/board/netta2/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/netta2/u-boot.lds.debug b/board/netta2/u-boot.lds.debug
index a001f3f..480feff 100644
--- a/board/netta2/u-boot.lds.debug
+++ b/board/netta2/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/netvia/u-boot.lds b/board/netvia/u-boot.lds
index a949e4f..86bb3b4 100644
--- a/board/netvia/u-boot.lds
+++ b/board/netvia/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/netvia/u-boot.lds.debug b/board/netvia/u-boot.lds.debug
index 6c7d698..2e3f83e 100644
--- a/board/netvia/u-boot.lds.debug
+++ b/board/netvia/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/nx823/u-boot.lds b/board/nx823/u-boot.lds
index fd4e8a5..4385876 100644
--- a/board/nx823/u-boot.lds
+++ b/board/nx823/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/nx823/u-boot.lds.debug b/board/nx823/u-boot.lds.debug
index c771102..fd278a4 100644
--- a/board/nx823/u-boot.lds.debug
+++ b/board/nx823/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/openrisc/openrisc-generic/u-boot.lds b/board/openrisc/openrisc-generic/u-boot.lds
index 1aed197..bc610bd 100644
--- a/board/openrisc/openrisc-generic/u-boot.lds
+++ b/board/openrisc/openrisc-generic/u-boot.lds
@@ -30,6 +30,11 @@ SECTIONS
 	 .u_boot_cmd : { *(.u_boot_cmd) } > ram
 	 __u_boot_cmd_end = .;
 
+	 . = ALIGN(4);
+	 .u_boot_list : {
+	INCLUDE u-boot.lst;
+	 }
+
 	.rodata : {
 		*(.rodata);
 		*(.rodata.*)
diff --git a/board/pb1x00/u-boot.lds b/board/pb1x00/u-boot.lds
index bd0dee1..cac9188 100644
--- a/board/pb1x00/u-boot.lds
+++ b/board/pb1x00/u-boot.lds
@@ -58,6 +58,11 @@ SECTIONS
 	  __u_boot_cmd_start = .;
 	  *(.u_boot_cmd)
 	  __u_boot_cmd_end = .;
+
+	  . = ALIGN(4);
+	  .u_boot_list : {
+	INCLUDE u-boot.lst;
+	  }
 	}
 
 	uboot_end_data = .;
diff --git a/board/qemu-mips/u-boot.lds b/board/qemu-mips/u-boot.lds
index 9460b20..1f37e8b 100644
--- a/board/qemu-mips/u-boot.lds
+++ b/board/qemu-mips/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	__u_boot_cmd_start = .;
 	*(.u_boot_cmd)
 	__u_boot_cmd_end = .;
+
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
 	}
 
 	uboot_end_data = .;
diff --git a/board/qi/qi_lb60/u-boot.lds b/board/qi/qi_lb60/u-boot.lds
index 7317652..e1bb826 100644
--- a/board/qi/qi_lb60/u-boot.lds
+++ b/board/qi/qi_lb60/u-boot.lds
@@ -51,6 +51,11 @@ SECTIONS
 	.u_boot_cmd : { *(.u_boot_cmd) }
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
 
diff --git a/board/quantum/u-boot.lds b/board/quantum/u-boot.lds
index d0b60cf..92f78be 100644
--- a/board/quantum/u-boot.lds
+++ b/board/quantum/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/r360mpi/u-boot.lds b/board/r360mpi/u-boot.lds
index 2fa085a..181468d 100644
--- a/board/r360mpi/u-boot.lds
+++ b/board/r360mpi/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/rbc823/u-boot.lds b/board/rbc823/u-boot.lds
index d943fb6..50c3eee 100644
--- a/board/rbc823/u-boot.lds
+++ b/board/rbc823/u-boot.lds
@@ -81,6 +81,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/renesas/sh7757lcr/u-boot.lds b/board/renesas/sh7757lcr/u-boot.lds
index 38ebe88..cff6ff5 100644
--- a/board/renesas/sh7757lcr/u-boot.lds
+++ b/board/renesas/sh7757lcr/u-boot.lds
@@ -85,6 +85,10 @@ SECTIONS
 	}
 	PROVIDE (__u_boot_cmd_end = .);
 
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	PROVIDE (reloc_dst_end = .);
 	/* _reloc_dst_end = .; */
 
diff --git a/board/rsdproto/u-boot.lds b/board/rsdproto/u-boot.lds
index a729c52..ee651d4 100644
--- a/board/rsdproto/u-boot.lds
+++ b/board/rsdproto/u-boot.lds
@@ -101,6 +101,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/samsung/smdk5250/smdk5250-uboot-spl.lds b/board/samsung/smdk5250/smdk5250-uboot-spl.lds
index d78dd77..c6e6414 100644
--- a/board/samsung/smdk5250/smdk5250-uboot-spl.lds
+++ b/board/samsung/smdk5250/smdk5250-uboot-spl.lds
@@ -48,6 +48,11 @@ SECTIONS
 	.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
 	. = ALIGN(4);
 
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	} >.sram
+	. = ALIGN(4);
+
 	/* Align .machine_param on 256 byte boundary for easier searching */
 	.machine_param ALIGN(0x100) : { *(.machine_param) } >.sram
 	. = ALIGN(4);
diff --git a/board/samsung/smdk6400/u-boot-nand.lds b/board/samsung/smdk6400/u-boot-nand.lds
index f162815..27693f0e 100644
--- a/board/samsung/smdk6400/u-boot-nand.lds
+++ b/board/samsung/smdk6400/u-boot-nand.lds
@@ -51,7 +51,12 @@ SECTIONS
 	.u_boot_cmd : { *(.u_boot_cmd) }
 	__u_boot_cmd_end = .;
 
-	. = ALIGN(4);
+	. = align(4);
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
+	. = align(4);
 	.mmudata : { *(.mmudata) }
 
 	. = ALIGN(4);
diff --git a/board/sandburst/karef/u-boot.lds.debug b/board/sandburst/karef/u-boot.lds.debug
index 31746e3..586dc95 100644
--- a/board/sandburst/karef/u-boot.lds.debug
+++ b/board/sandburst/karef/u-boot.lds.debug
@@ -119,6 +119,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/sandburst/metrobox/u-boot.lds.debug b/board/sandburst/metrobox/u-boot.lds.debug
index 4922bd2..48f5be0 100644
--- a/board/sandburst/metrobox/u-boot.lds.debug
+++ b/board/sandburst/metrobox/u-boot.lds.debug
@@ -119,6 +119,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/sandpoint/u-boot.lds b/board/sandpoint/u-boot.lds
index e382fd1..a4421a7 100644
--- a/board/sandpoint/u-boot.lds
+++ b/board/sandpoint/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/siemens/IAD210/u-boot.lds b/board/siemens/IAD210/u-boot.lds
index 0e78e4f..3532d3b 100644
--- a/board/siemens/IAD210/u-boot.lds
+++ b/board/siemens/IAD210/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/sixnet/u-boot.lds b/board/sixnet/u-boot.lds
index 02d1980..4153927 100644
--- a/board/sixnet/u-boot.lds
+++ b/board/sixnet/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/snmc/qs850/u-boot.lds b/board/snmc/qs850/u-boot.lds
index 9ab248a..039597e 100644
--- a/board/snmc/qs850/u-boot.lds
+++ b/board/snmc/qs850/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/snmc/qs860t/u-boot.lds b/board/snmc/qs860t/u-boot.lds
index d0b60cf..92f78be 100644
--- a/board/snmc/qs860t/u-boot.lds
+++ b/board/snmc/qs860t/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/spc1920/u-boot.lds b/board/spc1920/u-boot.lds
index d0b60cf..92f78be 100644
--- a/board/spc1920/u-boot.lds
+++ b/board/spc1920/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/spd8xx/u-boot.lds b/board/spd8xx/u-boot.lds
index a84e7fd..ada68f1 100644
--- a/board/spd8xx/u-boot.lds
+++ b/board/spd8xx/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/spd8xx/u-boot.lds.debug b/board/spd8xx/u-boot.lds.debug
index a95c47f..7e62932 100644
--- a/board/spd8xx/u-boot.lds.debug
+++ b/board/spd8xx/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/stx/stxxtc/u-boot.lds b/board/stx/stxxtc/u-boot.lds
index a949e4f..86bb3b4 100644
--- a/board/stx/stxxtc/u-boot.lds
+++ b/board/stx/stxxtc/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/stx/stxxtc/u-boot.lds.debug b/board/stx/stxxtc/u-boot.lds.debug
index a001f3f..480feff 100644
--- a/board/stx/stxxtc/u-boot.lds.debug
+++ b/board/stx/stxxtc/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/svm_sc8xx/u-boot.lds b/board/svm_sc8xx/u-boot.lds
index c65f022..af83956 100644
--- a/board/svm_sc8xx/u-boot.lds
+++ b/board/svm_sc8xx/u-boot.lds
@@ -87,6 +87,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/tqc/tqm8xx/u-boot.lds b/board/tqc/tqm8xx/u-boot.lds
index 4f08be6..226cfc1 100644
--- a/board/tqc/tqm8xx/u-boot.lds
+++ b/board/tqc/tqm8xx/u-boot.lds
@@ -87,6 +87,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/v37/u-boot.lds b/board/v37/u-boot.lds
index e62d53d..feb3870 100644
--- a/board/v37/u-boot.lds
+++ b/board/v37/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/vpac270/u-boot-spl.lds b/board/vpac270/u-boot-spl.lds
index 1958c2f..b3551dd 100644
--- a/board/vpac270/u-boot-spl.lds
+++ b/board/vpac270/u-boot-spl.lds
@@ -57,6 +57,10 @@ SECTIONS
 		*(.data)
 	}
 
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	. = ALIGN(4);
 
 	.rel.dyn : {
diff --git a/board/w7o/u-boot.lds.debug b/board/w7o/u-boot.lds.debug
index 1c67b30..520acd5 100644
--- a/board/w7o/u-boot.lds.debug
+++ b/board/w7o/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/westel/amx860/u-boot.lds b/board/westel/amx860/u-boot.lds
index 3470b43..e642a3a 100644
--- a/board/westel/amx860/u-boot.lds
+++ b/board/westel/amx860/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/westel/amx860/u-boot.lds.debug b/board/westel/amx860/u-boot.lds.debug
index 91d3e67..203f704 100644
--- a/board/westel/amx860/u-boot.lds.debug
+++ b/board/westel/amx860/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/xes/xpedite1000/u-boot.lds.debug b/board/xes/xpedite1000/u-boot.lds.debug
index e2e66ae..d685738 100644
--- a/board/xes/xpedite1000/u-boot.lds.debug
+++ b/board/xes/xpedite1000/u-boot.lds.debug
@@ -115,6 +115,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/examples/standalone/mips.lds b/examples/standalone/mips.lds
index 5f766ed..65c654d 100644
--- a/examples/standalone/mips.lds
+++ b/examples/standalone/mips.lds
@@ -39,6 +39,10 @@ SECTIONS
 	. = ALIGN(4);
 	.data  : { *(.data*) }
 
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	. = .;
 	_gp = ALIGN(16) + 0x7ff0;
 
diff --git a/examples/standalone/nds32.lds b/examples/standalone/nds32.lds
index 50b4c4b..4e581ad 100644
--- a/examples/standalone/nds32.lds
+++ b/examples/standalone/nds32.lds
@@ -36,6 +36,10 @@ SECTIONS
 	. = ALIGN(4);
 	.data : { *(.data) }
 
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	. = ALIGN(4);
 
 	.got : {
diff --git a/examples/standalone/sparc.lds b/examples/standalone/sparc.lds
index 9733daa..908a9be 100644
--- a/examples/standalone/sparc.lds
+++ b/examples/standalone/sparc.lds
@@ -46,6 +46,11 @@ SECTIONS
 	{
 		*(.data)
 	}
+
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	. = ALIGN(4);
 	__data_end = .;
 
diff --git a/nand_spl/board/freescale/mx31pdk/u-boot.lds b/nand_spl/board/freescale/mx31pdk/u-boot.lds
index d2b08f6..363690f 100644
--- a/nand_spl/board/freescale/mx31pdk/u-boot.lds
+++ b/nand_spl/board/freescale/mx31pdk/u-boot.lds
@@ -51,6 +51,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/nand_spl/board/karo/tx25/u-boot.lds b/nand_spl/board/karo/tx25/u-boot.lds
index d2b08f6..8332710 100644
--- a/nand_spl/board/karo/tx25/u-boot.lds
+++ b/nand_spl/board/karo/tx25/u-boot.lds
@@ -51,6 +51,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/nand_spl/board/samsung/smdk6400/u-boot.lds b/nand_spl/board/samsung/smdk6400/u-boot.lds
index 567f635..7ceae32 100644
--- a/nand_spl/board/samsung/smdk6400/u-boot.lds
+++ b/nand_spl/board/samsung/smdk6400/u-boot.lds
@@ -55,6 +55,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 
 	.rel.dyn : {
 	__rel_dyn_start = .;
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 4/5] common: Convert the U-Boot commands to LG-arrays
  2012-09-30  0:17 [U-Boot] [PATCH 0/5] Linker-generated arrays (take 2) Marek Vasut
                   ` (2 preceding siblings ...)
  2012-09-30  0:17 ` [U-Boot] [PATCH 3/5] common: Add .u_boot_list into all linker files Marek Vasut
@ 2012-09-30  0:17 ` Marek Vasut
  2012-10-02 23:43   ` Joe Hershberger
  2012-09-30  0:17 ` [U-Boot] [PATCH 5/5] common: Discard the __u_boot_cmd section Marek Vasut
  2012-10-07  0:06 ` [U-Boot] [PATCH 0/6 V2] Linker-generated arrays (take 2) Marek Vasut
  5 siblings, 1 reply; 48+ messages in thread
From: Marek Vasut @ 2012-09-30  0:17 UTC (permalink / raw)
  To: u-boot

This patch converts the old method of creating a list of command
onto the new LG-arrays code. The old u_boot_cmd section is converted
to new u_boot_list_cmd subsection and LG-array macros used as needed.

Minor adjustments had to be made to the common code to work with the
LG-array macros, mostly the fixup_cmdtable() calls are now passed the
ll_entry_start and ll_entry_count instead of linker-generated symbols.

The command.c had to be adjusted as well so it would use the newly
introduced LG-array API instead of directly using linker-generated
symbols.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>
---
 arch/arm/imx-common/cmd_bmode.c |   11 +++++++----
 arch/avr32/lib/board.c          |    4 ++--
 arch/m68k/lib/board.c           |    4 ++--
 arch/mips/lib/board.c           |    4 ++--
 arch/nds32/lib/board.c          |    4 ++--
 arch/sparc/lib/board.c          |    4 ++--
 common/cmd_help.c               |    8 ++++----
 common/command.c                |   17 ++++++++++-------
 doc/README.commands             |   10 +++++-----
 include/command.h               |   26 ++++++++++++++------------
 10 files changed, 50 insertions(+), 42 deletions(-)

diff --git a/arch/arm/imx-common/cmd_bmode.c b/arch/arm/imx-common/cmd_bmode.c
index 02fe72e..ddc14b0 100644
--- a/arch/arm/imx-common/cmd_bmode.c
+++ b/arch/arm/imx-common/cmd_bmode.c
@@ -24,6 +24,7 @@
 #include <asm/io.h>
 #include <asm/imx-common/boot_mode.h>
 #include <malloc.h>
+#include <command.h>
 
 static const struct boot_mode *modes[2];
 
@@ -103,9 +104,11 @@ void add_board_boot_modes(const struct boot_mode *p)
 	int size;
 	char *dest;
 
-	if (__u_boot_cmd_bmode.usage) {
-		free(__u_boot_cmd_bmode.usage);
-		__u_boot_cmd_bmode.usage = NULL;
+	cmd_tbl_t *entry = ll_entry_get(cmd_tbl_t, bmode, cmd);
+
+	if (entry->usage) {
+		free(entry->usage);
+		entry->usage = NULL;
 	}
 
 	modes[0] = p;
@@ -114,6 +117,6 @@ void add_board_boot_modes(const struct boot_mode *p)
 	dest = malloc(size);
 	if (dest) {
 		create_usage(dest);
-		__u_boot_cmd_bmode.usage = dest;
+		entry->usage = dest;
 	}
 }
diff --git a/arch/avr32/lib/board.c b/arch/avr32/lib/board.c
index 9d3b76e..e3287c4 100644
--- a/arch/avr32/lib/board.c
+++ b/arch/avr32/lib/board.c
@@ -272,8 +272,8 @@ void board_init_r(gd_t *new_gd, ulong dest_addr)
 	/*
 	 * We have to relocate the command table manually
 	 */
-	fixup_cmdtable(&__u_boot_cmd_start,
-		(ulong)(&__u_boot_cmd_end - &__u_boot_cmd_start));
+	fixup_cmdtable(ll_entry_start(cmd_tbl_t, cmd),
+			ll_entry_count(cmd_tbl_t, cmd));
 #endif /* defined(CONFIG_NEEDS_MANUAL_RELOC) */
 
 	/* there are some other pointer constants we must deal with */
diff --git a/arch/m68k/lib/board.c b/arch/m68k/lib/board.c
index 2add630..fc94f2b 100644
--- a/arch/m68k/lib/board.c
+++ b/arch/m68k/lib/board.c
@@ -417,8 +417,8 @@ void board_init_r (gd_t *id, ulong dest_addr)
 	/*
 	 * We have to relocate the command table manually
 	 */
-	fixup_cmdtable(&__u_boot_cmd_start,
-		(ulong)(&__u_boot_cmd_end - &__u_boot_cmd_start));
+	fixup_cmdtable(ll_entry_start(cmd_tbl_t, cmd),
+			ll_entry_count(cmd_tbl_t, cmd));
 #endif /* defined(CONFIG_NEEDS_MANUAL_RELOC) */
 
 	/* there are some other pointer constants we must deal with */
diff --git a/arch/mips/lib/board.c b/arch/mips/lib/board.c
index b14b33e..7ddd778 100644
--- a/arch/mips/lib/board.c
+++ b/arch/mips/lib/board.c
@@ -266,8 +266,8 @@ void board_init_r(gd_t *id, ulong dest_addr)
 	/*
 	 * We have to relocate the command table manually
 	 */
-	fixup_cmdtable(&__u_boot_cmd_start,
-		(ulong)(&__u_boot_cmd_end - &__u_boot_cmd_start));
+	fixup_cmdtable(ll_entry_start(cmd_tbl_t, cmd),
+			ll_entry_count(cmd_tbl_t, cmd));
 #endif /* defined(CONFIG_NEEDS_MANUAL_RELOC) */
 
 	/* there are some other pointer constants we must deal with */
diff --git a/arch/nds32/lib/board.c b/arch/nds32/lib/board.c
index 17d3ee0..b2fa40d 100644
--- a/arch/nds32/lib/board.c
+++ b/arch/nds32/lib/board.c
@@ -320,8 +320,8 @@ void board_init_r(gd_t *id, ulong dest_addr)
 	/*
 	 * We have to relocate the command table manually
 	 */
-	fixup_cmdtable(&__u_boot_cmd_start,
-		(ulong)(&__u_boot_cmd_end - &__u_boot_cmd_start));
+	fixup_cmdtable(ll_entry_start(cmd_tbl_t, cmd),
+			ll_entry_count(cmd_tbl_t, cmd));
 #endif /* defined(CONFIG_NEEDS_MANUAL_RELOC) */
 
 #ifdef CONFIG_SERIAL_MULTI
diff --git a/arch/sparc/lib/board.c b/arch/sparc/lib/board.c
index ff0e0f2..32d025a 100644
--- a/arch/sparc/lib/board.c
+++ b/arch/sparc/lib/board.c
@@ -246,8 +246,8 @@ void board_init_f(ulong bootflag)
 	/*
 	 * We have to relocate the command table manually
 	 */
-	fixup_cmdtable(&__u_boot_cmd_start,
-		(ulong)(&__u_boot_cmd_end - &__u_boot_cmd_start));
+	fixup_cmdtable(ll_entry_start(cmd_tbl_t, cmd),
+			ll_entry_count(cmd_tbl_t, cmd));
 #endif /* defined(CONFIG_NEEDS_MANUAL_RELOC) */
 
 #if defined(CONFIG_CMD_AMBAPP) && defined(CONFIG_SYS_AMBAPP_PRINT_ON_STARTUP)
diff --git a/common/cmd_help.c b/common/cmd_help.c
index 8c8178e..3178a1a 100644
--- a/common/cmd_help.c
+++ b/common/cmd_help.c
@@ -26,9 +26,9 @@
 
 int do_help(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
 {
-	return _do_help(&__u_boot_cmd_start,
-			&__u_boot_cmd_end - &__u_boot_cmd_start,
-			cmdtp, flag, argc, argv);
+	cmd_tbl_t *start = ll_entry_start(cmd_tbl_t, cmd);
+	const int len = ll_entry_count(cmd_tbl_t, cmd);
+	return _do_help(start, len, cmdtp, flag, argc, argv);
 }
 
 U_BOOT_CMD(
@@ -41,7 +41,7 @@ U_BOOT_CMD(
 );
 
 /* This does not use the U_BOOT_CMD macro as ? can't be used in symbol names */
-cmd_tbl_t __u_boot_cmd_question_mark Struct_Section = {
+ll_entry_declare(cmd_tbl_t, question_mark, cmd, cmd) = {
 	"?",	CONFIG_SYS_MAXARGS,	1,	do_help,
 	"alias for 'help'",
 #ifdef  CONFIG_SYS_LONGHELP
diff --git a/common/command.c b/common/command.c
index aa0fb0a..50c8429 100644
--- a/common/command.c
+++ b/common/command.c
@@ -137,8 +137,9 @@ cmd_tbl_t *find_cmd_tbl (const char *cmd, cmd_tbl_t *table, int table_len)
 
 cmd_tbl_t *find_cmd (const char *cmd)
 {
-	int len = &__u_boot_cmd_end - &__u_boot_cmd_start;
-	return find_cmd_tbl(cmd, &__u_boot_cmd_start, len);
+	cmd_tbl_t *start = ll_entry_start(cmd_tbl_t, cmd);
+	const int len = ll_entry_count(cmd_tbl_t, cmd);
+	return find_cmd_tbl(cmd, start, len);
 }
 
 int cmd_usage(const cmd_tbl_t *cmdtp)
@@ -181,7 +182,9 @@ int var_complete(int argc, char * const argv[], char last_char, int maxv, char *
 
 static int complete_cmdv(int argc, char * const argv[], char last_char, int maxv, char *cmdv[])
 {
-	cmd_tbl_t *cmdtp;
+	cmd_tbl_t *cmdtp = ll_entry_start(cmd_tbl_t, cmd);
+	const int count = ll_entry_count(cmd_tbl_t, cmd);
+	const cmd_tbl_t *cmdend = cmdtp + count;
 	const char *p;
 	int len, clen;
 	int n_found = 0;
@@ -195,12 +198,12 @@ static int complete_cmdv(int argc, char * const argv[], char last_char, int maxv
 
 	if (argc == 0) {
 		/* output full list of commands */
-		for (cmdtp = &__u_boot_cmd_start; cmdtp != &__u_boot_cmd_end; cmdtp++) {
+		for (; cmdtp != cmdend; cmdtp++) {
 			if (n_found >= maxv - 2) {
-				cmdv[n_found++] = "...";
+				cmdv[n_found] = "...";
 				break;
 			}
-			cmdv[n_found++] = cmdtp->name;
+			cmdv[n_found] = cmdtp->name;
 		}
 		cmdv[n_found] = NULL;
 		return n_found;
@@ -228,7 +231,7 @@ static int complete_cmdv(int argc, char * const argv[], char last_char, int maxv
 		len = p - cmd;
 
 	/* return the partial matches */
-	for (cmdtp = &__u_boot_cmd_start; cmdtp != &__u_boot_cmd_end; cmdtp++) {
+	for (; cmdtp != cmdend; cmdtp++) {
 
 		clen = strlen(cmdtp->name);
 		if (clen < len)
diff --git a/doc/README.commands b/doc/README.commands
index 125f077..ec492b2 100644
--- a/doc/README.commands
+++ b/doc/README.commands
@@ -15,12 +15,12 @@ help:	 Long description. This is a string
 
 **** Behind the scene ******
 
-The structure created is named with a special prefix (__u_boot_cmd_)
+The structure created is named with a special prefix (__u_boot_list_cmd_)
 and placed by the linker in a special section.
 
 This makes it possible for the final link to extract all commands
 compiled into any object code and construct a static array so the
-command can be found in an array starting at __u_boot_cmd_start.
+command can be found in an array starting@_u_boot_list_cmd__start.
 
 To ensure that the linker does not discard these symbols when linking
 full U-Boot we generate a list of all the commands we have built (based
@@ -33,6 +33,6 @@ If a new board is defined do not forget to define the command section
 by writing in u-boot.lds ($(TOPDIR)/board/boardname/u-boot.lds) these
 3 lines:
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
diff --git a/include/command.h b/include/command.h
index 1f06aa1..24864d5 100644
--- a/include/command.h
+++ b/include/command.h
@@ -28,6 +28,7 @@
 #define __COMMAND_H
 
 #include <config.h>
+#include <linker_lists.h>
 
 #ifndef NULL
 #define NULL	0
@@ -153,9 +154,6 @@ int cmd_process(int flag, int argc, char * const argv[],
 #define CMD_FLAG_REPEAT		0x0001	/* repeat last command		*/
 #define CMD_FLAG_BOOTD		0x0002	/* command is from bootd	*/
 
-#define Struct_Section  __attribute__((unused, section(".u_boot_cmd"), \
-		aligned(4)))
-
 #ifdef CONFIG_AUTO_COMPLETE
 # define _CMD_COMPLETE(x) x,
 #else
@@ -167,18 +165,22 @@ int cmd_process(int flag, int argc, char * const argv[],
 # define _CMD_HELP(x)
 #endif
 
-#define U_BOOT_CMD_MKENT_COMPLETE(name,maxargs,rep,cmd,usage,help,comp) \
-	{#name, maxargs, rep, cmd, usage, _CMD_HELP(help) _CMD_COMPLETE(comp)}
+#define U_BOOT_CMD_MKENT_COMPLETE(_name, _maxargs, _rep, _cmd,		\
+				_usage, _help, _comp)			\
+		{ #_name, _maxargs, _rep, _cmd, _usage,			\
+			_CMD_HELP(_help) _CMD_COMPLETE(_comp) }
 
-#define U_BOOT_CMD_MKENT(name,maxargs,rep,cmd,usage,help) \
-	U_BOOT_CMD_MKENT_COMPLETE(name,maxargs,rep,cmd,usage,help,NULL)
+#define U_BOOT_CMD_MKENT(_name, _maxargs, _rep, _cmd, _usage, _help)	\
+	U_BOOT_CMD_MKENT_COMPLETE(_name, _maxargs, _rep, _cmd,		\
+					_usage, _help, NULL)
 
-#define U_BOOT_CMD_COMPLETE(name,maxargs,rep,cmd,usage,help,comp) \
-	cmd_tbl_t __u_boot_cmd_##name Struct_Section = \
-		U_BOOT_CMD_MKENT_COMPLETE(name,maxargs,rep,cmd,usage,help,comp)
+#define U_BOOT_CMD_COMPLETE(_name, _maxargs, _rep, _cmd, _usage, _help, _comp) \
+	ll_entry_declare(cmd_tbl_t, _name, cmd, cmd) =			\
+		U_BOOT_CMD_MKENT_COMPLETE(_name, _maxargs, _rep, _cmd,	\
+						_usage, _help, _comp);
 
-#define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \
-	U_BOOT_CMD_COMPLETE(name,maxargs,rep,cmd,usage,help,NULL)
+#define U_BOOT_CMD(_name, _maxargs, _rep, _cmd, _usage, _help)		\
+	U_BOOT_CMD_COMPLETE(_name, _maxargs, _rep, _cmd, _usage, _help, NULL)
 
 #if defined(CONFIG_NEEDS_MANUAL_RELOC)
 void fixup_cmdtable(cmd_tbl_t *cmdtp, int size);
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 5/5] common: Discard the __u_boot_cmd section
  2012-09-30  0:17 [U-Boot] [PATCH 0/5] Linker-generated arrays (take 2) Marek Vasut
                   ` (3 preceding siblings ...)
  2012-09-30  0:17 ` [U-Boot] [PATCH 4/5] common: Convert the U-Boot commands to LG-arrays Marek Vasut
@ 2012-09-30  0:17 ` Marek Vasut
  2012-10-02 23:43   ` Joe Hershberger
                     ` (2 more replies)
  2012-10-07  0:06 ` [U-Boot] [PATCH 0/6 V2] Linker-generated arrays (take 2) Marek Vasut
  5 siblings, 3 replies; 48+ messages in thread
From: Marek Vasut @ 2012-09-30  0:17 UTC (permalink / raw)
  To: u-boot

The command declaration now uses the new LG-array method to generate
list of commands. Thus the __u_boot_cmd section is now superseded and
redundant and therefore can be removed. Also, remove externed symbols
associated with this section from include/command.h .

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>
---
 arch/arm/cpu/arm920t/ep93xx/u-boot.lds           |    3 ---
 arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds        |    3 ---
 arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds      |    3 ---
 arch/arm/cpu/ixp/u-boot.lds                      |    3 ---
 arch/arm/cpu/u-boot.lds                          |    3 ---
 arch/avr32/cpu/u-boot.lds                        |    5 -----
 arch/blackfin/cpu/u-boot.lds                     |    6 ------
 arch/microblaze/cpu/u-boot.lds                   |   11 -----------
 arch/nds32/cpu/n1213/u-boot.lds                  |    3 ---
 arch/nios2/cpu/u-boot.lds                        |    7 -------
 arch/powerpc/cpu/74xx_7xx/u-boot.lds             |    3 ---
 arch/powerpc/cpu/mpc512x/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc5xx/u-boot.lds               |    3 ---
 arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds |    3 ---
 arch/powerpc/cpu/mpc5xxx/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc8220/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc824x/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc8260/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc83xx/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc85xx/u-boot-nand.lds         |    3 ---
 arch/powerpc/cpu/mpc85xx/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc86xx/u-boot.lds              |    3 ---
 arch/powerpc/cpu/ppc4xx/u-boot.lds               |    3 ---
 arch/sandbox/cpu/u-boot.lds                      |    3 ---
 arch/sh/cpu/sh2/u-boot.lds                       |    7 -------
 arch/sh/cpu/sh3/u-boot.lds                       |    7 -------
 arch/sh/cpu/sh4/u-boot.lds                       |    7 -------
 arch/x86/cpu/u-boot.lds                          |    4 ----
 board/BuS/eb_cpu5282/u-boot.lds                  |    3 ---
 board/LEOX/elpt860/u-boot.lds                    |    3 ---
 board/RPXClassic/u-boot.lds                      |    3 ---
 board/RPXClassic/u-boot.lds.debug                |    3 ---
 board/RPXlite/u-boot.lds                         |    3 ---
 board/RPXlite/u-boot.lds.debug                   |    3 ---
 board/RPXlite_dw/u-boot.lds                      |    3 ---
 board/RPXlite_dw/u-boot.lds.debug                |    3 ---
 board/RRvision/u-boot.lds                        |    3 ---
 board/actux1/u-boot.lds                          |    5 -----
 board/actux2/u-boot.lds                          |    5 -----
 board/actux3/u-boot.lds                          |    5 -----
 board/adder/u-boot.lds                           |    3 ---
 board/altera/nios2-generic/u-boot.lds            |    7 -------
 board/amcc/acadia/u-boot-nand.lds                |    3 ---
 board/amcc/bamboo/u-boot-nand.lds                |    3 ---
 board/amcc/canyonlands/u-boot-nand.lds           |    3 ---
 board/amcc/kilauea/u-boot-nand.lds               |    3 ---
 board/amcc/sequoia/u-boot-nand.lds               |    3 ---
 board/amcc/sequoia/u-boot-ram.lds                |    3 ---
 board/amirix/ap1000/u-boot.lds                   |    3 ---
 board/astro/mcf5373l/u-boot.lds                  |    3 ---
 board/c2mon/u-boot.lds                           |    3 ---
 board/c2mon/u-boot.lds.debug                     |    3 ---
 board/cobra5272/u-boot.lds                       |    3 ---
 board/cogent/u-boot.lds                          |    3 ---
 board/cogent/u-boot.lds.debug                    |    3 ---
 board/cray/L1/u-boot.lds.debug                   |    3 ---
 board/dave/PPChameleonEVB/u-boot.lds             |    3 ---
 board/dbau1x00/u-boot.lds                        |    9 ---------
 board/dvlhost/u-boot.lds                         |    5 -----
 board/eltec/mhpc/u-boot.lds                      |    3 ---
 board/eltec/mhpc/u-boot.lds.debug                |    3 ---
 board/emk/top860/u-boot.lds                      |    3 ---
 board/ep88x/u-boot.lds                           |    3 ---
 board/esd/dasa_sim/u-boot.lds                    |    3 ---
 board/esd/pmc440/u-boot-nand.lds                 |    3 ---
 board/esd/tasreg/u-boot.lds                      |    3 ---
 board/esteem192e/u-boot.lds                      |    3 ---
 board/etx094/u-boot.lds                          |    3 ---
 board/evb64260/u-boot.lds                        |    3 ---
 board/fads/u-boot.lds                            |    3 ---
 board/flagadm/u-boot.lds                         |    3 ---
 board/flagadm/u-boot.lds.debug                   |    3 ---
 board/freescale/m5208evbe/u-boot.lds             |    3 ---
 board/freescale/m52277evb/u-boot.lds             |    3 ---
 board/freescale/m5235evb/u-boot.lds              |    3 ---
 board/freescale/m5249evb/u-boot.lds              |    3 ---
 board/freescale/m5253demo/u-boot.lds             |    3 ---
 board/freescale/m5253evbe/u-boot.lds             |    3 ---
 board/freescale/m5271evb/u-boot.lds              |    3 ---
 board/freescale/m5272c3/u-boot.lds               |    3 ---
 board/freescale/m5275evb/u-boot.lds              |    3 ---
 board/freescale/m5282evb/u-boot.lds              |    3 ---
 board/freescale/m53017evb/u-boot.lds             |    3 ---
 board/freescale/m5329evb/u-boot.lds              |    3 ---
 board/freescale/m5373evb/u-boot.lds              |    3 ---
 board/freescale/m54451evb/u-boot.lds             |    3 ---
 board/freescale/m54455evb/u-boot.lds             |    3 ---
 board/freescale/m547xevb/u-boot.lds              |    3 ---
 board/freescale/m548xevb/u-boot.lds              |    3 ---
 board/freescale/mx31ads/u-boot.lds               |    3 ---
 board/gaisler/gr_cpci_ax2000/u-boot.lds          |    4 ----
 board/gaisler/gr_ep2s60/u-boot.lds               |    4 ----
 board/gaisler/gr_xc3s_1500/u-boot.lds            |    4 ----
 board/gaisler/grsim/u-boot.lds                   |    4 ----
 board/gaisler/grsim_leon2/u-boot.lds             |    4 ----
 board/gen860t/u-boot-flashenv.lds                |    3 ---
 board/gen860t/u-boot.lds                         |    3 ---
 board/genietv/u-boot.lds                         |    3 ---
 board/genietv/u-boot.lds.debug                   |    3 ---
 board/hermes/u-boot.lds                          |    3 ---
 board/hermes/u-boot.lds.debug                    |    3 ---
 board/hymod/u-boot.lds                           |    3 ---
 board/hymod/u-boot.lds.debug                     |    3 ---
 board/icu862/u-boot.lds                          |    3 ---
 board/icu862/u-boot.lds.debug                    |    3 ---
 board/idmr/u-boot.lds                            |    3 ---
 board/incaip/u-boot.lds                          |    9 ---------
 board/ip860/u-boot.lds                           |    3 ---
 board/ip860/u-boot.lds.debug                     |    3 ---
 board/ivm/u-boot.lds                             |    3 ---
 board/ivm/u-boot.lds.debug                       |    3 ---
 board/korat/u-boot-F7FC.lds                      |    3 ---
 board/kup/kup4k/u-boot.lds                       |    3 ---
 board/kup/kup4k/u-boot.lds.debug                 |    3 ---
 board/kup/kup4x/u-boot.lds                       |    3 ---
 board/kup/kup4x/u-boot.lds.debug                 |    3 ---
 board/lantec/u-boot.lds                          |    3 ---
 board/lantec/u-boot.lds.debug                    |    3 ---
 board/lwmon/u-boot.lds                           |    3 ---
 board/lwmon/u-boot.lds.debug                     |    3 ---
 board/manroland/uc100/u-boot.lds                 |    3 ---
 board/matrix_vision/mvsmr/u-boot.lds             |    3 ---
 board/mbx8xx/u-boot.lds                          |    3 ---
 board/mbx8xx/u-boot.lds.debug                    |    3 ---
 board/micronas/vct/u-boot.lds                    |    9 ---------
 board/ml2/u-boot.lds                             |    3 ---
 board/ml2/u-boot.lds.debug                       |    3 ---
 board/mousse/u-boot.lds                          |    3 ---
 board/mousse/u-boot.lds.ram                      |    3 ---
 board/mousse/u-boot.lds.rom                      |    3 ---
 board/mpl/pip405/u-boot.lds.debug                |    3 ---
 board/mvblue/u-boot.lds                          |    3 ---
 board/netphone/u-boot.lds                        |    3 ---
 board/netphone/u-boot.lds.debug                  |    3 ---
 board/netta/u-boot.lds                           |    3 ---
 board/netta/u-boot.lds.debug                     |    3 ---
 board/netta2/u-boot.lds                          |    3 ---
 board/netta2/u-boot.lds.debug                    |    3 ---
 board/netvia/u-boot.lds                          |    3 ---
 board/netvia/u-boot.lds.debug                    |    3 ---
 board/nx823/u-boot.lds                           |    3 ---
 board/nx823/u-boot.lds.debug                     |    3 ---
 board/openrisc/openrisc-generic/u-boot.lds       |    3 ---
 board/pb1x00/u-boot.lds                          |    9 ---------
 board/qemu-mips/u-boot.lds                       |    9 ---------
 board/qi/qi_lb60/u-boot.lds                      |    3 ---
 board/quantum/u-boot.lds                         |    3 ---
 board/r360mpi/u-boot.lds                         |    3 ---
 board/rbc823/u-boot.lds                          |    3 ---
 board/renesas/sh7757lcr/u-boot.lds               |    7 -------
 board/rsdproto/u-boot.lds                        |    3 ---
 board/samsung/smdk6400/u-boot-nand.lds           |    3 ---
 board/sandburst/karef/u-boot.lds.debug           |    3 ---
 board/sandburst/metrobox/u-boot.lds.debug        |    3 ---
 board/sandpoint/u-boot.lds                       |    3 ---
 board/siemens/IAD210/u-boot.lds                  |    3 ---
 board/sixnet/u-boot.lds                          |    3 ---
 board/snmc/qs850/u-boot.lds                      |    3 ---
 board/snmc/qs860t/u-boot.lds                     |    3 ---
 board/spc1920/u-boot.lds                         |    3 ---
 board/spd8xx/u-boot.lds                          |    3 ---
 board/spd8xx/u-boot.lds.debug                    |    3 ---
 board/stx/stxxtc/u-boot.lds                      |    3 ---
 board/stx/stxxtc/u-boot.lds.debug                |    3 ---
 board/svm_sc8xx/u-boot.lds                       |    3 ---
 board/tqc/tqm8xx/u-boot.lds                      |    3 ---
 board/v37/u-boot.lds                             |    3 ---
 board/w7o/u-boot.lds.debug                       |    3 ---
 board/westel/amx860/u-boot.lds                   |    3 ---
 board/westel/amx860/u-boot.lds.debug             |    3 ---
 board/xes/xpedite1000/u-boot.lds.debug           |    3 ---
 include/command.h                                |    2 --
 nand_spl/board/freescale/mx31pdk/u-boot.lds      |    3 ---
 nand_spl/board/karo/tx25/u-boot.lds              |    3 ---
 nand_spl/board/samsung/smdk6400/u-boot.lds       |    3 ---
 175 files changed, 605 deletions(-)

diff --git a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
index 6ad9169..7da65ab 100644
--- a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
+++ b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
@@ -48,9 +48,6 @@ SECTIONS
 	.got : { *(.got) }
 
 	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
index dd12607..2a9b150 100644
--- a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
+++ b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
@@ -50,9 +50,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	.u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
index 65f80c2..abb8aa1 100644
--- a/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
+++ b/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
@@ -50,9 +50,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	.u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/arch/arm/cpu/ixp/u-boot.lds b/arch/arm/cpu/ixp/u-boot.lds
index e08f10b..e444619 100644
--- a/arch/arm/cpu/ixp/u-boot.lds
+++ b/arch/arm/cpu/ixp/u-boot.lds
@@ -46,9 +46,6 @@ SECTIONS
 	. = ALIGN(4);
 
 	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/arm/cpu/u-boot.lds b/arch/arm/cpu/u-boot.lds
index 18eaf73..71adb6c 100644
--- a/arch/arm/cpu/u-boot.lds
+++ b/arch/arm/cpu/u-boot.lds
@@ -49,9 +49,6 @@ SECTIONS
 	. = ALIGN(4);
 
 	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/avr32/cpu/u-boot.lds b/arch/avr32/cpu/u-boot.lds
index 5aef19b..d035502 100644
--- a/arch/avr32/cpu/u-boot.lds
+++ b/arch/avr32/cpu/u-boot.lds
@@ -47,11 +47,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : {
-		KEEP(*(.u_boot_cmd))
-	}
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/blackfin/cpu/u-boot.lds b/arch/blackfin/cpu/u-boot.lds
index be70d81..0c87618 100644
--- a/arch/blackfin/cpu/u-boot.lds
+++ b/arch/blackfin/cpu/u-boot.lds
@@ -112,12 +112,6 @@ SECTIONS
 		CONSTRUCTORS
 	} >ram_data
 
-	.u_boot_cmd :
-	{
-		___u_boot_cmd_start = .;
-		*(.u_boot_cmd)
-		___u_boot_cmd_end = .;
-	} >ram_data
 
 	.u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/arch/microblaze/cpu/u-boot.lds b/arch/microblaze/cpu/u-boot.lds
index 86773b5e..7ef14a6 100644
--- a/arch/microblaze/cpu/u-boot.lds
+++ b/arch/microblaze/cpu/u-boot.lds
@@ -50,17 +50,6 @@ SECTIONS
 		__data_end = .;
 	}
 
-	.u_boot_cmd ALIGN(0x4):
-	{
-		. = .;
-		__u_boot_cmd_start = .;
-		*(.u_boot_cmd)
-		__u_boot_cmd_end = .;
-
-		. = ALIGN(4);
-		.u_boot_list : {
-	INCLUDE u-boot.lst;
-		}
 	}
 
 	.bss ALIGN(0x4):
diff --git a/arch/nds32/cpu/n1213/u-boot.lds b/arch/nds32/cpu/n1213/u-boot.lds
index 48d5b90..c46d8bb 100644
--- a/arch/nds32/cpu/n1213/u-boot.lds
+++ b/arch/nds32/cpu/n1213/u-boot.lds
@@ -52,9 +52,6 @@ SECTIONS
 	}
 
 	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/nios2/cpu/u-boot.lds b/arch/nios2/cpu/u-boot.lds
index 33cd0e2..4fd2fb0 100644
--- a/arch/nios2/cpu/u-boot.lds
+++ b/arch/nios2/cpu/u-boot.lds
@@ -45,13 +45,6 @@ SECTIONS
 	 * the initialization code relocates the command table as
 	 * well -- admittedly, this is just pure laziness ;-)
 	 */
-	__u_boot_cmd_start = .;
-	.u_boot_cmd :
-	{
-	  *(.u_boot_cmd)
-	}
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/powerpc/cpu/74xx_7xx/u-boot.lds b/arch/powerpc/cpu/74xx_7xx/u-boot.lds
index 049ae63..0575b68 100644
--- a/arch/powerpc/cpu/74xx_7xx/u-boot.lds
+++ b/arch/powerpc/cpu/74xx_7xx/u-boot.lds
@@ -62,9 +62,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc512x/u-boot.lds b/arch/powerpc/cpu/mpc512x/u-boot.lds
index d93c097..4056af4 100644
--- a/arch/powerpc/cpu/mpc512x/u-boot.lds
+++ b/arch/powerpc/cpu/mpc512x/u-boot.lds
@@ -57,9 +57,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc5xx/u-boot.lds b/arch/powerpc/cpu/mpc5xx/u-boot.lds
index 2fbc379..7d1fc30 100644
--- a/arch/powerpc/cpu/mpc5xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc5xx/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds b/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
index 1574767..6f66ee0 100644
--- a/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
+++ b/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	INCLUDE u-boot.lst;
diff --git a/arch/powerpc/cpu/mpc5xxx/u-boot.lds b/arch/powerpc/cpu/mpc5xxx/u-boot.lds
index 52755e6..0d0fe22 100644
--- a/arch/powerpc/cpu/mpc5xxx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc5xxx/u-boot.lds
@@ -60,9 +60,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc8220/u-boot.lds b/arch/powerpc/cpu/mpc8220/u-boot.lds
index 222f907..db586ab 100644
--- a/arch/powerpc/cpu/mpc8220/u-boot.lds
+++ b/arch/powerpc/cpu/mpc8220/u-boot.lds
@@ -59,9 +59,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc824x/u-boot.lds b/arch/powerpc/cpu/mpc824x/u-boot.lds
index bb16926..c2f1469 100644
--- a/arch/powerpc/cpu/mpc824x/u-boot.lds
+++ b/arch/powerpc/cpu/mpc824x/u-boot.lds
@@ -60,9 +60,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc8260/u-boot.lds b/arch/powerpc/cpu/mpc8260/u-boot.lds
index 722d7fb..50f1713 100644
--- a/arch/powerpc/cpu/mpc8260/u-boot.lds
+++ b/arch/powerpc/cpu/mpc8260/u-boot.lds
@@ -59,9 +59,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc83xx/u-boot.lds b/arch/powerpc/cpu/mpc83xx/u-boot.lds
index 416bc07..be604a1 100644
--- a/arch/powerpc/cpu/mpc83xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc83xx/u-boot.lds
@@ -58,9 +58,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds b/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
index 5563b5f..39886b5 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
@@ -70,9 +70,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	INCLUDE u-boot.lst;
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot.lds b/arch/powerpc/cpu/mpc85xx/u-boot.lds
index 009214b..4c26da9 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot.lds
@@ -77,9 +77,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc86xx/u-boot.lds b/arch/powerpc/cpu/mpc86xx/u-boot.lds
index e3b19d4..19b36f9 100644
--- a/arch/powerpc/cpu/mpc86xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc86xx/u-boot.lds
@@ -64,9 +64,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/ppc4xx/u-boot.lds b/arch/powerpc/cpu/ppc4xx/u-boot.lds
index 005ec61..6907b18 100644
--- a/arch/powerpc/cpu/ppc4xx/u-boot.lds
+++ b/arch/powerpc/cpu/ppc4xx/u-boot.lds
@@ -78,9 +78,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/sandbox/cpu/u-boot.lds b/arch/sandbox/cpu/u-boot.lds
index 0a37657..dba1a32 100644
--- a/arch/sandbox/cpu/u-boot.lds
+++ b/arch/sandbox/cpu/u-boot.lds
@@ -24,9 +24,6 @@
 
 SECTIONS
 {
-	__u_boot_cmd_start = .;
-	_u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/sh/cpu/sh2/u-boot.lds b/arch/sh/cpu/sh2/u-boot.lds
index 2331152..41a783d 100644
--- a/arch/sh/cpu/sh2/u-boot.lds
+++ b/arch/sh/cpu/sh2/u-boot.lds
@@ -72,13 +72,6 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
 
 	.u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/arch/sh/cpu/sh3/u-boot.lds b/arch/sh/cpu/sh3/u-boot.lds
index 9d99434..1c7cc80 100644
--- a/arch/sh/cpu/sh3/u-boot.lds
+++ b/arch/sh/cpu/sh3/u-boot.lds
@@ -78,13 +78,6 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
 
 	.u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/arch/sh/cpu/sh4/u-boot.lds b/arch/sh/cpu/sh4/u-boot.lds
index 8702c9e..70e7c54 100644
--- a/arch/sh/cpu/sh4/u-boot.lds
+++ b/arch/sh/cpu/sh4/u-boot.lds
@@ -75,13 +75,6 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
 
 	.u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/arch/x86/cpu/u-boot.lds b/arch/x86/cpu/u-boot.lds
index aa2b653..7c1eb6a 100644
--- a/arch/x86/cpu/u-boot.lds
+++ b/arch/x86/cpu/u-boot.lds
@@ -33,10 +33,6 @@ SECTIONS
 	.text  : { *(.text*); }
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/BuS/eb_cpu5282/u-boot.lds b/board/BuS/eb_cpu5282/u-boot.lds
index 3132a55..2d27f06 100644
--- a/board/BuS/eb_cpu5282/u-boot.lds
+++ b/board/BuS/eb_cpu5282/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/LEOX/elpt860/u-boot.lds b/board/LEOX/elpt860/u-boot.lds
index d85943c..5aafcfb 100644
--- a/board/LEOX/elpt860/u-boot.lds
+++ b/board/LEOX/elpt860/u-boot.lds
@@ -86,9 +86,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXClassic/u-boot.lds b/board/RPXClassic/u-boot.lds
index 92f78be..ca421d5 100644
--- a/board/RPXClassic/u-boot.lds
+++ b/board/RPXClassic/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXClassic/u-boot.lds.debug b/board/RPXClassic/u-boot.lds.debug
index 47ad2e7..888cbc5 100644
--- a/board/RPXClassic/u-boot.lds.debug
+++ b/board/RPXClassic/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXlite/u-boot.lds b/board/RPXlite/u-boot.lds
index 92f78be..ca421d5 100644
--- a/board/RPXlite/u-boot.lds
+++ b/board/RPXlite/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXlite/u-boot.lds.debug b/board/RPXlite/u-boot.lds.debug
index 47ad2e7..888cbc5 100644
--- a/board/RPXlite/u-boot.lds.debug
+++ b/board/RPXlite/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXlite_dw/u-boot.lds b/board/RPXlite_dw/u-boot.lds
index 92f78be..ca421d5 100644
--- a/board/RPXlite_dw/u-boot.lds
+++ b/board/RPXlite_dw/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXlite_dw/u-boot.lds.debug b/board/RPXlite_dw/u-boot.lds.debug
index c76f9d0..f99c742 100644
--- a/board/RPXlite_dw/u-boot.lds.debug
+++ b/board/RPXlite_dw/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RRvision/u-boot.lds b/board/RRvision/u-boot.lds
index 3c2c708..3c42391 100644
--- a/board/RRvision/u-boot.lds
+++ b/board/RRvision/u-boot.lds
@@ -71,9 +71,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/actux1/u-boot.lds b/board/actux1/u-boot.lds
index e5d59db..9ae694d 100644
--- a/board/actux1/u-boot.lds
+++ b/board/actux1/u-boot.lds
@@ -54,11 +54,6 @@ SECTIONS
 		*(.got)
 	}
 	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/actux2/u-boot.lds b/board/actux2/u-boot.lds
index 09bb7ab..879bb07 100644
--- a/board/actux2/u-boot.lds
+++ b/board/actux2/u-boot.lds
@@ -54,11 +54,6 @@ SECTIONS
 		*(.got)
 	}
 	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/actux3/u-boot.lds b/board/actux3/u-boot.lds
index 71b6791..843fc73 100644
--- a/board/actux3/u-boot.lds
+++ b/board/actux3/u-boot.lds
@@ -54,11 +54,6 @@ SECTIONS
 		*(.got)
 	}
 	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/adder/u-boot.lds b/board/adder/u-boot.lds
index 62afcb80..d6d3bd5 100644
--- a/board/adder/u-boot.lds
+++ b/board/adder/u-boot.lds
@@ -62,9 +62,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/altera/nios2-generic/u-boot.lds b/board/altera/nios2-generic/u-boot.lds
index 764cc7d..13661c7 100644
--- a/board/altera/nios2-generic/u-boot.lds
+++ b/board/altera/nios2-generic/u-boot.lds
@@ -46,13 +46,6 @@ SECTIONS
 	 * the initialization code relocates the command table as
 	 * well -- admittedly, this is just pure laziness ;-)
 	 */
-	__u_boot_cmd_start = .;
-	.u_boot_cmd :
-	{
-	  *(.u_boot_cmd)
-	}
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/amcc/acadia/u-boot-nand.lds b/board/amcc/acadia/u-boot-nand.lds
index bc0356b..9e28604 100644
--- a/board/amcc/acadia/u-boot-nand.lds
+++ b/board/amcc/acadia/u-boot-nand.lds
@@ -72,9 +72,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	INCLUDE u-boot.lst;
diff --git a/board/amcc/bamboo/u-boot-nand.lds b/board/amcc/bamboo/u-boot-nand.lds
index 2382ea9..b9f9de1 100644
--- a/board/amcc/bamboo/u-boot-nand.lds
+++ b/board/amcc/bamboo/u-boot-nand.lds
@@ -73,9 +73,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	INCLUDE u-boot.lst;
diff --git a/board/amcc/canyonlands/u-boot-nand.lds b/board/amcc/canyonlands/u-boot-nand.lds
index 0816387..001fa7f 100644
--- a/board/amcc/canyonlands/u-boot-nand.lds
+++ b/board/amcc/canyonlands/u-boot-nand.lds
@@ -73,9 +73,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	INCLUDE u-boot.lst;
diff --git a/board/amcc/kilauea/u-boot-nand.lds b/board/amcc/kilauea/u-boot-nand.lds
index bc0356b..9e28604 100644
--- a/board/amcc/kilauea/u-boot-nand.lds
+++ b/board/amcc/kilauea/u-boot-nand.lds
@@ -72,9 +72,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	INCLUDE u-boot.lst;
diff --git a/board/amcc/sequoia/u-boot-nand.lds b/board/amcc/sequoia/u-boot-nand.lds
index 94234de..163980e 100644
--- a/board/amcc/sequoia/u-boot-nand.lds
+++ b/board/amcc/sequoia/u-boot-nand.lds
@@ -73,9 +73,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	INCLUDE u-boot.lst;
diff --git a/board/amcc/sequoia/u-boot-ram.lds b/board/amcc/sequoia/u-boot-ram.lds
index 0f594f5..568529e 100644
--- a/board/amcc/sequoia/u-boot-ram.lds
+++ b/board/amcc/sequoia/u-boot-ram.lds
@@ -64,9 +64,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	INCLUDE u-boot.lst;
diff --git a/board/amirix/ap1000/u-boot.lds b/board/amirix/ap1000/u-boot.lds
index 575d390..d45dba6 100644
--- a/board/amirix/ap1000/u-boot.lds
+++ b/board/amirix/ap1000/u-boot.lds
@@ -67,9 +67,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/astro/mcf5373l/u-boot.lds b/board/astro/mcf5373l/u-boot.lds
index d800805..9242af2 100644
--- a/board/astro/mcf5373l/u-boot.lds
+++ b/board/astro/mcf5373l/u-boot.lds
@@ -109,9 +109,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/c2mon/u-boot.lds b/board/c2mon/u-boot.lds
index a170f06..5652797 100644
--- a/board/c2mon/u-boot.lds
+++ b/board/c2mon/u-boot.lds
@@ -74,9 +74,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/c2mon/u-boot.lds.debug b/board/c2mon/u-boot.lds.debug
index fd278a4..8bbe86a 100644
--- a/board/c2mon/u-boot.lds.debug
+++ b/board/c2mon/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/cobra5272/u-boot.lds b/board/cobra5272/u-boot.lds
index d49b0ef..897847e 100644
--- a/board/cobra5272/u-boot.lds
+++ b/board/cobra5272/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/cogent/u-boot.lds b/board/cogent/u-boot.lds
index 3a3d988..723c26f 100644
--- a/board/cogent/u-boot.lds
+++ b/board/cogent/u-boot.lds
@@ -70,9 +70,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/cogent/u-boot.lds.debug b/board/cogent/u-boot.lds.debug
index 47ad2e7..888cbc5 100644
--- a/board/cogent/u-boot.lds.debug
+++ b/board/cogent/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/cray/L1/u-boot.lds.debug b/board/cray/L1/u-boot.lds.debug
index 78fe44c..0e3940f 100644
--- a/board/cray/L1/u-boot.lds.debug
+++ b/board/cray/L1/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/dave/PPChameleonEVB/u-boot.lds b/board/dave/PPChameleonEVB/u-boot.lds
index fb40e3d..9b9264b 100644
--- a/board/dave/PPChameleonEVB/u-boot.lds
+++ b/board/dave/PPChameleonEVB/u-boot.lds
@@ -74,9 +74,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/dbau1x00/u-boot.lds b/board/dbau1x00/u-boot.lds
index 0569133..471efc1 100644
--- a/board/dbau1x00/u-boot.lds
+++ b/board/dbau1x00/u-boot.lds
@@ -54,15 +54,6 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-
-	  . = ALIGN(4);
-	  .u_boot_list : {
-	INCLUDE u-boot.lst;
-	  }
 	}
 
 	uboot_end_data = .;
diff --git a/board/dvlhost/u-boot.lds b/board/dvlhost/u-boot.lds
index 897263e..83e3913 100644
--- a/board/dvlhost/u-boot.lds
+++ b/board/dvlhost/u-boot.lds
@@ -54,11 +54,6 @@ SECTIONS
 		*(.got)
 	}
 	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/eltec/mhpc/u-boot.lds b/board/eltec/mhpc/u-boot.lds
index 4385876..dc204d2 100644
--- a/board/eltec/mhpc/u-boot.lds
+++ b/board/eltec/mhpc/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/eltec/mhpc/u-boot.lds.debug b/board/eltec/mhpc/u-boot.lds.debug
index fd278a4..8bbe86a 100644
--- a/board/eltec/mhpc/u-boot.lds.debug
+++ b/board/eltec/mhpc/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/emk/top860/u-boot.lds b/board/emk/top860/u-boot.lds
index 887ee6b..2d738a4 100644
--- a/board/emk/top860/u-boot.lds
+++ b/board/emk/top860/u-boot.lds
@@ -67,9 +67,6 @@ SECTIONS
 
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/ep88x/u-boot.lds b/board/ep88x/u-boot.lds
index 0c5a03e..47ea19c 100644
--- a/board/ep88x/u-boot.lds
+++ b/board/ep88x/u-boot.lds
@@ -62,9 +62,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/esd/dasa_sim/u-boot.lds b/board/esd/dasa_sim/u-boot.lds
index 9a3249d..b1842e1 100644
--- a/board/esd/dasa_sim/u-boot.lds
+++ b/board/esd/dasa_sim/u-boot.lds
@@ -73,9 +73,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/esd/pmc440/u-boot-nand.lds b/board/esd/pmc440/u-boot-nand.lds
index d4ef403..910793b 100644
--- a/board/esd/pmc440/u-boot-nand.lds
+++ b/board/esd/pmc440/u-boot-nand.lds
@@ -102,9 +102,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/board/esd/tasreg/u-boot.lds b/board/esd/tasreg/u-boot.lds
index b302ba0..053a54a 100644
--- a/board/esd/tasreg/u-boot.lds
+++ b/board/esd/tasreg/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/esteem192e/u-boot.lds b/board/esteem192e/u-boot.lds
index 83d9ec0..ec757ad 100644
--- a/board/esteem192e/u-boot.lds
+++ b/board/esteem192e/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/etx094/u-boot.lds b/board/etx094/u-boot.lds
index a98ee23..f26e473 100644
--- a/board/etx094/u-boot.lds
+++ b/board/etx094/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/evb64260/u-boot.lds b/board/evb64260/u-boot.lds
index 1eb7f30..e4f735a 100644
--- a/board/evb64260/u-boot.lds
+++ b/board/evb64260/u-boot.lds
@@ -70,9 +70,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/fads/u-boot.lds b/board/fads/u-boot.lds
index deee255..0549239 100644
--- a/board/fads/u-boot.lds
+++ b/board/fads/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/flagadm/u-boot.lds b/board/flagadm/u-boot.lds
index 4385876..dc204d2 100644
--- a/board/flagadm/u-boot.lds
+++ b/board/flagadm/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/flagadm/u-boot.lds.debug b/board/flagadm/u-boot.lds.debug
index fd278a4..8bbe86a 100644
--- a/board/flagadm/u-boot.lds.debug
+++ b/board/flagadm/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5208evbe/u-boot.lds b/board/freescale/m5208evbe/u-boot.lds
index e184013..41b1cc9 100644
--- a/board/freescale/m5208evbe/u-boot.lds
+++ b/board/freescale/m5208evbe/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m52277evb/u-boot.lds b/board/freescale/m52277evb/u-boot.lds
index 6214098..dc5150a 100644
--- a/board/freescale/m52277evb/u-boot.lds
+++ b/board/freescale/m52277evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5235evb/u-boot.lds b/board/freescale/m5235evb/u-boot.lds
index 9b5e5e2..8ddda1a 100644
--- a/board/freescale/m5235evb/u-boot.lds
+++ b/board/freescale/m5235evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5249evb/u-boot.lds b/board/freescale/m5249evb/u-boot.lds
index d49b0ef..897847e 100644
--- a/board/freescale/m5249evb/u-boot.lds
+++ b/board/freescale/m5249evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5253demo/u-boot.lds b/board/freescale/m5253demo/u-boot.lds
index 3487a8d..1c2e067 100644
--- a/board/freescale/m5253demo/u-boot.lds
+++ b/board/freescale/m5253demo/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5253evbe/u-boot.lds b/board/freescale/m5253evbe/u-boot.lds
index d49b0ef..897847e 100644
--- a/board/freescale/m5253evbe/u-boot.lds
+++ b/board/freescale/m5253evbe/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5271evb/u-boot.lds b/board/freescale/m5271evb/u-boot.lds
index 3a86350..04ca088 100644
--- a/board/freescale/m5271evb/u-boot.lds
+++ b/board/freescale/m5271evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5272c3/u-boot.lds b/board/freescale/m5272c3/u-boot.lds
index d49b0ef..897847e 100644
--- a/board/freescale/m5272c3/u-boot.lds
+++ b/board/freescale/m5272c3/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5275evb/u-boot.lds b/board/freescale/m5275evb/u-boot.lds
index b37b06b..335acbc 100644
--- a/board/freescale/m5275evb/u-boot.lds
+++ b/board/freescale/m5275evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5282evb/u-boot.lds b/board/freescale/m5282evb/u-boot.lds
index 3132a55..2d27f06 100644
--- a/board/freescale/m5282evb/u-boot.lds
+++ b/board/freescale/m5282evb/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m53017evb/u-boot.lds b/board/freescale/m53017evb/u-boot.lds
index 662bd31..dab62bf 100644
--- a/board/freescale/m53017evb/u-boot.lds
+++ b/board/freescale/m53017evb/u-boot.lds
@@ -71,9 +71,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5329evb/u-boot.lds b/board/freescale/m5329evb/u-boot.lds
index fe5be41..e3ac171 100644
--- a/board/freescale/m5329evb/u-boot.lds
+++ b/board/freescale/m5329evb/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5373evb/u-boot.lds b/board/freescale/m5373evb/u-boot.lds
index 8ff6fc9..fe0bb7d 100644
--- a/board/freescale/m5373evb/u-boot.lds
+++ b/board/freescale/m5373evb/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m54451evb/u-boot.lds b/board/freescale/m54451evb/u-boot.lds
index ea0984f..3eb25dd 100644
--- a/board/freescale/m54451evb/u-boot.lds
+++ b/board/freescale/m54451evb/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m54455evb/u-boot.lds b/board/freescale/m54455evb/u-boot.lds
index fe1b58c..186d122 100644
--- a/board/freescale/m54455evb/u-boot.lds
+++ b/board/freescale/m54455evb/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m547xevb/u-boot.lds b/board/freescale/m547xevb/u-boot.lds
index 877eaf2..87744e7 100644
--- a/board/freescale/m547xevb/u-boot.lds
+++ b/board/freescale/m547xevb/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m548xevb/u-boot.lds b/board/freescale/m548xevb/u-boot.lds
index 33e054b..d877872 100644
--- a/board/freescale/m548xevb/u-boot.lds
+++ b/board/freescale/m548xevb/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/mx31ads/u-boot.lds b/board/freescale/mx31ads/u-boot.lds
index 3db5dc3..8f97de5 100644
--- a/board/freescale/mx31ads/u-boot.lds
+++ b/board/freescale/mx31ads/u-boot.lds
@@ -57,9 +57,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/gr_cpci_ax2000/u-boot.lds b/board/gaisler/gr_cpci_ax2000/u-boot.lds
index 416761b..8c4a0e5 100644
--- a/board/gaisler/gr_cpci_ax2000/u-boot.lds
+++ b/board/gaisler/gr_cpci_ax2000/u-boot.lds
@@ -85,10 +85,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/gr_ep2s60/u-boot.lds b/board/gaisler/gr_ep2s60/u-boot.lds
index 43faf26..c647246 100644
--- a/board/gaisler/gr_ep2s60/u-boot.lds
+++ b/board/gaisler/gr_ep2s60/u-boot.lds
@@ -85,10 +85,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/gr_xc3s_1500/u-boot.lds b/board/gaisler/gr_xc3s_1500/u-boot.lds
index 14c631e..96c98f3 100644
--- a/board/gaisler/gr_xc3s_1500/u-boot.lds
+++ b/board/gaisler/gr_xc3s_1500/u-boot.lds
@@ -85,10 +85,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/grsim/u-boot.lds b/board/gaisler/grsim/u-boot.lds
index 4766465..df7f187 100644
--- a/board/gaisler/grsim/u-boot.lds
+++ b/board/gaisler/grsim/u-boot.lds
@@ -84,10 +84,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/grsim_leon2/u-boot.lds b/board/gaisler/grsim_leon2/u-boot.lds
index cbd4ed6..ebcdf1c 100644
--- a/board/gaisler/grsim_leon2/u-boot.lds
+++ b/board/gaisler/grsim_leon2/u-boot.lds
@@ -84,10 +84,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gen860t/u-boot-flashenv.lds b/board/gen860t/u-boot-flashenv.lds
index 1302eaa..e72e168 100644
--- a/board/gen860t/u-boot-flashenv.lds
+++ b/board/gen860t/u-boot-flashenv.lds
@@ -71,9 +71,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/board/gen860t/u-boot.lds b/board/gen860t/u-boot.lds
index de57dd1..6433828 100644
--- a/board/gen860t/u-boot.lds
+++ b/board/gen860t/u-boot.lds
@@ -71,9 +71,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/genietv/u-boot.lds b/board/genietv/u-boot.lds
index 45c56bb..d1303ff 100644
--- a/board/genietv/u-boot.lds
+++ b/board/genietv/u-boot.lds
@@ -80,9 +80,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/genietv/u-boot.lds.debug b/board/genietv/u-boot.lds.debug
index 4783367..06ee03d 100644
--- a/board/genietv/u-boot.lds.debug
+++ b/board/genietv/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/hermes/u-boot.lds b/board/hermes/u-boot.lds
index 8b90f6c..e912128 100644
--- a/board/hermes/u-boot.lds
+++ b/board/hermes/u-boot.lds
@@ -72,9 +72,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/hermes/u-boot.lds.debug b/board/hermes/u-boot.lds.debug
index 53ffee1..3618c37 100644
--- a/board/hermes/u-boot.lds.debug
+++ b/board/hermes/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/hymod/u-boot.lds b/board/hymod/u-boot.lds
index 83d2dd4..b266ec5 100644
--- a/board/hymod/u-boot.lds
+++ b/board/hymod/u-boot.lds
@@ -110,9 +110,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/hymod/u-boot.lds.debug b/board/hymod/u-boot.lds.debug
index 47ad2e7..888cbc5 100644
--- a/board/hymod/u-boot.lds.debug
+++ b/board/hymod/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/icu862/u-boot.lds b/board/icu862/u-boot.lds
index 23d4405..34f6b75 100644
--- a/board/icu862/u-boot.lds
+++ b/board/icu862/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/icu862/u-boot.lds.debug b/board/icu862/u-boot.lds.debug
index 203f704..598b07d 100644
--- a/board/icu862/u-boot.lds.debug
+++ b/board/icu862/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/idmr/u-boot.lds b/board/idmr/u-boot.lds
index b302ba0..053a54a 100644
--- a/board/idmr/u-boot.lds
+++ b/board/idmr/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/incaip/u-boot.lds b/board/incaip/u-boot.lds
index 0569133..471efc1 100644
--- a/board/incaip/u-boot.lds
+++ b/board/incaip/u-boot.lds
@@ -54,15 +54,6 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-
-	  . = ALIGN(4);
-	  .u_boot_list : {
-	INCLUDE u-boot.lst;
-	  }
 	}
 
 	uboot_end_data = .;
diff --git a/board/ip860/u-boot.lds b/board/ip860/u-boot.lds
index 92f78be..ca421d5 100644
--- a/board/ip860/u-boot.lds
+++ b/board/ip860/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/ip860/u-boot.lds.debug b/board/ip860/u-boot.lds.debug
index 4fc4c0f..aedab36 100644
--- a/board/ip860/u-boot.lds.debug
+++ b/board/ip860/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/ivm/u-boot.lds b/board/ivm/u-boot.lds
index d0d9a37..9e9565b 100644
--- a/board/ivm/u-boot.lds
+++ b/board/ivm/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/ivm/u-boot.lds.debug b/board/ivm/u-boot.lds.debug
index f4c04b3..1f66592 100644
--- a/board/ivm/u-boot.lds.debug
+++ b/board/ivm/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/korat/u-boot-F7FC.lds b/board/korat/u-boot-F7FC.lds
index da33f00..06ece39 100644
--- a/board/korat/u-boot-F7FC.lds
+++ b/board/korat/u-boot-F7FC.lds
@@ -108,9 +108,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	INCLUDE u-boot.lst;
diff --git a/board/kup/kup4k/u-boot.lds b/board/kup/kup4k/u-boot.lds
index 92f78be..ca421d5 100644
--- a/board/kup/kup4k/u-boot.lds
+++ b/board/kup/kup4k/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/kup/kup4k/u-boot.lds.debug b/board/kup/kup4k/u-boot.lds.debug
index c76f9d0..f99c742 100644
--- a/board/kup/kup4k/u-boot.lds.debug
+++ b/board/kup/kup4k/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/kup/kup4x/u-boot.lds b/board/kup/kup4x/u-boot.lds
index 92f78be..ca421d5 100644
--- a/board/kup/kup4x/u-boot.lds
+++ b/board/kup/kup4x/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/kup/kup4x/u-boot.lds.debug b/board/kup/kup4x/u-boot.lds.debug
index c76f9d0..f99c742 100644
--- a/board/kup/kup4x/u-boot.lds.debug
+++ b/board/kup/kup4x/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/lantec/u-boot.lds b/board/lantec/u-boot.lds
index 9360839..4c80452 100644
--- a/board/lantec/u-boot.lds
+++ b/board/lantec/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/lantec/u-boot.lds.debug b/board/lantec/u-boot.lds.debug
index 7c1ccb2..b8dd61d 100644
--- a/board/lantec/u-boot.lds.debug
+++ b/board/lantec/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/lwmon/u-boot.lds b/board/lwmon/u-boot.lds
index 7dfa157..6264d2d 100644
--- a/board/lwmon/u-boot.lds
+++ b/board/lwmon/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/lwmon/u-boot.lds.debug b/board/lwmon/u-boot.lds.debug
index 0778758..dbc722e 100644
--- a/board/lwmon/u-boot.lds.debug
+++ b/board/lwmon/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/manroland/uc100/u-boot.lds b/board/manroland/uc100/u-boot.lds
index d291d60..4a96fe4 100644
--- a/board/manroland/uc100/u-boot.lds
+++ b/board/manroland/uc100/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/matrix_vision/mvsmr/u-boot.lds b/board/matrix_vision/mvsmr/u-boot.lds
index 2445b97..99b29ce 100644
--- a/board/matrix_vision/mvsmr/u-boot.lds
+++ b/board/matrix_vision/mvsmr/u-boot.lds
@@ -74,9 +74,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/mbx8xx/u-boot.lds b/board/mbx8xx/u-boot.lds
index 92f78be..ca421d5 100644
--- a/board/mbx8xx/u-boot.lds
+++ b/board/mbx8xx/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/mbx8xx/u-boot.lds.debug b/board/mbx8xx/u-boot.lds.debug
index 7e62932..da784f0 100644
--- a/board/mbx8xx/u-boot.lds.debug
+++ b/board/mbx8xx/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/micronas/vct/u-boot.lds b/board/micronas/vct/u-boot.lds
index 273d190..f3905e6 100644
--- a/board/micronas/vct/u-boot.lds
+++ b/board/micronas/vct/u-boot.lds
@@ -53,15 +53,6 @@ SECTIONS
 	.sdata  : { *(.sdata*) }
 
 	. = ALIGN(4);
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-
-	  . = ALIGN(4);
-	  .u_boot_list : {
-	INCLUDE u-boot.lst;
-	  }
 	}
 
 	. = ALIGN(4);
diff --git a/board/ml2/u-boot.lds b/board/ml2/u-boot.lds
index a6cad6d..343d0bc 100644
--- a/board/ml2/u-boot.lds
+++ b/board/ml2/u-boot.lds
@@ -64,9 +64,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/ml2/u-boot.lds.debug b/board/ml2/u-boot.lds.debug
index 78fe44c..0e3940f 100644
--- a/board/ml2/u-boot.lds.debug
+++ b/board/ml2/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/mousse/u-boot.lds b/board/mousse/u-boot.lds
index 863468e..fbfea7e 100644
--- a/board/mousse/u-boot.lds
+++ b/board/mousse/u-boot.lds
@@ -60,9 +60,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/mousse/u-boot.lds.ram b/board/mousse/u-boot.lds.ram
index b3364be..5255651 100644
--- a/board/mousse/u-boot.lds.ram
+++ b/board/mousse/u-boot.lds.ram
@@ -85,9 +85,6 @@ SECTIONS
   } > ram
   */
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
    __start___ex_table = .;
     __ex_table : { *(__ex_table) } > ram
diff --git a/board/mousse/u-boot.lds.rom b/board/mousse/u-boot.lds.rom
index b4b9e02..29a34fb 100644
--- a/board/mousse/u-boot.lds.rom
+++ b/board/mousse/u-boot.lds.rom
@@ -102,9 +102,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/mpl/pip405/u-boot.lds.debug b/board/mpl/pip405/u-boot.lds.debug
index 78fe44c..0e3940f 100644
--- a/board/mpl/pip405/u-boot.lds.debug
+++ b/board/mpl/pip405/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/mvblue/u-boot.lds b/board/mvblue/u-boot.lds
index 4610de9..e3de27a 100644
--- a/board/mvblue/u-boot.lds
+++ b/board/mvblue/u-boot.lds
@@ -70,9 +70,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netphone/u-boot.lds b/board/netphone/u-boot.lds
index 86bb3b4..1bd1fa0 100644
--- a/board/netphone/u-boot.lds
+++ b/board/netphone/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netphone/u-boot.lds.debug b/board/netphone/u-boot.lds.debug
index 480feff..7b933f2 100644
--- a/board/netphone/u-boot.lds.debug
+++ b/board/netphone/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netta/u-boot.lds b/board/netta/u-boot.lds
index 86bb3b4..1bd1fa0 100644
--- a/board/netta/u-boot.lds
+++ b/board/netta/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netta/u-boot.lds.debug b/board/netta/u-boot.lds.debug
index 480feff..7b933f2 100644
--- a/board/netta/u-boot.lds.debug
+++ b/board/netta/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netta2/u-boot.lds b/board/netta2/u-boot.lds
index 86bb3b4..1bd1fa0 100644
--- a/board/netta2/u-boot.lds
+++ b/board/netta2/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netta2/u-boot.lds.debug b/board/netta2/u-boot.lds.debug
index 480feff..7b933f2 100644
--- a/board/netta2/u-boot.lds.debug
+++ b/board/netta2/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netvia/u-boot.lds b/board/netvia/u-boot.lds
index 86bb3b4..1bd1fa0 100644
--- a/board/netvia/u-boot.lds
+++ b/board/netvia/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netvia/u-boot.lds.debug b/board/netvia/u-boot.lds.debug
index 2e3f83e..cb71f3c 100644
--- a/board/netvia/u-boot.lds.debug
+++ b/board/netvia/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/nx823/u-boot.lds b/board/nx823/u-boot.lds
index 4385876..dc204d2 100644
--- a/board/nx823/u-boot.lds
+++ b/board/nx823/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/nx823/u-boot.lds.debug b/board/nx823/u-boot.lds.debug
index fd278a4..8bbe86a 100644
--- a/board/nx823/u-boot.lds.debug
+++ b/board/nx823/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/openrisc/openrisc-generic/u-boot.lds b/board/openrisc/openrisc-generic/u-boot.lds
index bc610bd..912aca0 100644
--- a/board/openrisc/openrisc-generic/u-boot.lds
+++ b/board/openrisc/openrisc-generic/u-boot.lds
@@ -26,9 +26,6 @@ SECTIONS
 		_endtext = .;
 	}  > ram
 
-	 __u_boot_cmd_start = .;
-	 .u_boot_cmd : { *(.u_boot_cmd) } > ram
-	 __u_boot_cmd_end = .;
 
 	 . = ALIGN(4);
 	 .u_boot_list : {
diff --git a/board/pb1x00/u-boot.lds b/board/pb1x00/u-boot.lds
index cac9188..4af40c6 100644
--- a/board/pb1x00/u-boot.lds
+++ b/board/pb1x00/u-boot.lds
@@ -54,15 +54,6 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-
-	  . = ALIGN(4);
-	  .u_boot_list : {
-	INCLUDE u-boot.lst;
-	  }
 	}
 
 	uboot_end_data = .;
diff --git a/board/qemu-mips/u-boot.lds b/board/qemu-mips/u-boot.lds
index 1f37e8b..4b159cf 100644
--- a/board/qemu-mips/u-boot.lds
+++ b/board/qemu-mips/u-boot.lds
@@ -56,15 +56,6 @@ SECTIONS
 	.sdata  : { *(.sdata*) }
 
 	. = .;
-	.u_boot_cmd : {
-	__u_boot_cmd_start = .;
-	*(.u_boot_cmd)
-	__u_boot_cmd_end = .;
-
-	. = ALIGN(4);
-	.u_boot_list : {
-	INCLUDE u-boot.lst;
-	}
 	}
 
 	uboot_end_data = .;
diff --git a/board/qi/qi_lb60/u-boot.lds b/board/qi/qi_lb60/u-boot.lds
index e1bb826..286806a 100644
--- a/board/qi/qi_lb60/u-boot.lds
+++ b/board/qi/qi_lb60/u-boot.lds
@@ -47,9 +47,6 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/quantum/u-boot.lds b/board/quantum/u-boot.lds
index 92f78be..ca421d5 100644
--- a/board/quantum/u-boot.lds
+++ b/board/quantum/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/r360mpi/u-boot.lds b/board/r360mpi/u-boot.lds
index 181468d..4748a6b 100644
--- a/board/r360mpi/u-boot.lds
+++ b/board/r360mpi/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/rbc823/u-boot.lds b/board/rbc823/u-boot.lds
index 50c3eee..30e01d2 100644
--- a/board/rbc823/u-boot.lds
+++ b/board/rbc823/u-boot.lds
@@ -77,9 +77,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/renesas/sh7757lcr/u-boot.lds b/board/renesas/sh7757lcr/u-boot.lds
index cff6ff5..76cb82e 100644
--- a/board/renesas/sh7757lcr/u-boot.lds
+++ b/board/renesas/sh7757lcr/u-boot.lds
@@ -77,13 +77,6 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
 
 	.u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/board/rsdproto/u-boot.lds b/board/rsdproto/u-boot.lds
index ee651d4..d69af28 100644
--- a/board/rsdproto/u-boot.lds
+++ b/board/rsdproto/u-boot.lds
@@ -97,9 +97,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/samsung/smdk6400/u-boot-nand.lds b/board/samsung/smdk6400/u-boot-nand.lds
index 27693f0e..c34bd15 100644
--- a/board/samsung/smdk6400/u-boot-nand.lds
+++ b/board/samsung/smdk6400/u-boot-nand.lds
@@ -47,9 +47,6 @@ SECTIONS
 	. = ALIGN(4);
 	.got : { *(.got) }
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = align(4);
 	.u_boot_list : {
diff --git a/board/sandburst/karef/u-boot.lds.debug b/board/sandburst/karef/u-boot.lds.debug
index 586dc95..84e22ad 100644
--- a/board/sandburst/karef/u-boot.lds.debug
+++ b/board/sandburst/karef/u-boot.lds.debug
@@ -115,9 +115,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/sandburst/metrobox/u-boot.lds.debug b/board/sandburst/metrobox/u-boot.lds.debug
index 48f5be0..4aa3f21 100644
--- a/board/sandburst/metrobox/u-boot.lds.debug
+++ b/board/sandburst/metrobox/u-boot.lds.debug
@@ -115,9 +115,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/sandpoint/u-boot.lds b/board/sandpoint/u-boot.lds
index a4421a7..ba20d64 100644
--- a/board/sandpoint/u-boot.lds
+++ b/board/sandpoint/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/siemens/IAD210/u-boot.lds b/board/siemens/IAD210/u-boot.lds
index 3532d3b..ed60bf5 100644
--- a/board/siemens/IAD210/u-boot.lds
+++ b/board/siemens/IAD210/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/sixnet/u-boot.lds b/board/sixnet/u-boot.lds
index 4153927..bf5ac93 100644
--- a/board/sixnet/u-boot.lds
+++ b/board/sixnet/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/snmc/qs850/u-boot.lds b/board/snmc/qs850/u-boot.lds
index 039597e..17917bf 100644
--- a/board/snmc/qs850/u-boot.lds
+++ b/board/snmc/qs850/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/snmc/qs860t/u-boot.lds b/board/snmc/qs860t/u-boot.lds
index 92f78be..ca421d5 100644
--- a/board/snmc/qs860t/u-boot.lds
+++ b/board/snmc/qs860t/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/spc1920/u-boot.lds b/board/spc1920/u-boot.lds
index 92f78be..ca421d5 100644
--- a/board/spc1920/u-boot.lds
+++ b/board/spc1920/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/spd8xx/u-boot.lds b/board/spd8xx/u-boot.lds
index ada68f1..4fbabdf 100644
--- a/board/spd8xx/u-boot.lds
+++ b/board/spd8xx/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/spd8xx/u-boot.lds.debug b/board/spd8xx/u-boot.lds.debug
index 7e62932..da784f0 100644
--- a/board/spd8xx/u-boot.lds.debug
+++ b/board/spd8xx/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/stx/stxxtc/u-boot.lds b/board/stx/stxxtc/u-boot.lds
index 86bb3b4..1bd1fa0 100644
--- a/board/stx/stxxtc/u-boot.lds
+++ b/board/stx/stxxtc/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/stx/stxxtc/u-boot.lds.debug b/board/stx/stxxtc/u-boot.lds.debug
index 480feff..7b933f2 100644
--- a/board/stx/stxxtc/u-boot.lds.debug
+++ b/board/stx/stxxtc/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/svm_sc8xx/u-boot.lds b/board/svm_sc8xx/u-boot.lds
index af83956..e9caa85 100644
--- a/board/svm_sc8xx/u-boot.lds
+++ b/board/svm_sc8xx/u-boot.lds
@@ -83,9 +83,6 @@ SECTIONS
 
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/tqc/tqm8xx/u-boot.lds b/board/tqc/tqm8xx/u-boot.lds
index 226cfc1..ff70607 100644
--- a/board/tqc/tqm8xx/u-boot.lds
+++ b/board/tqc/tqm8xx/u-boot.lds
@@ -83,9 +83,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/v37/u-boot.lds b/board/v37/u-boot.lds
index feb3870..8626675 100644
--- a/board/v37/u-boot.lds
+++ b/board/v37/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/w7o/u-boot.lds.debug b/board/w7o/u-boot.lds.debug
index 520acd5..a0a9814 100644
--- a/board/w7o/u-boot.lds.debug
+++ b/board/w7o/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/westel/amx860/u-boot.lds b/board/westel/amx860/u-boot.lds
index e642a3a..116c5a8 100644
--- a/board/westel/amx860/u-boot.lds
+++ b/board/westel/amx860/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/westel/amx860/u-boot.lds.debug b/board/westel/amx860/u-boot.lds.debug
index 203f704..598b07d 100644
--- a/board/westel/amx860/u-boot.lds.debug
+++ b/board/westel/amx860/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/xes/xpedite1000/u-boot.lds.debug b/board/xes/xpedite1000/u-boot.lds.debug
index d685738..774dcbb 100644
--- a/board/xes/xpedite1000/u-boot.lds.debug
+++ b/board/xes/xpedite1000/u-boot.lds.debug
@@ -111,9 +111,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/include/command.h b/include/command.h
index 24864d5..10bc260 100644
--- a/include/command.h
+++ b/include/command.h
@@ -62,8 +62,6 @@ struct cmd_tbl_s {
 
 typedef struct cmd_tbl_s	cmd_tbl_t;
 
-extern cmd_tbl_t  __u_boot_cmd_start;
-extern cmd_tbl_t  __u_boot_cmd_end;
 
 #if defined(CONFIG_CMD_RUN)
 extern int do_run(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]);
diff --git a/nand_spl/board/freescale/mx31pdk/u-boot.lds b/nand_spl/board/freescale/mx31pdk/u-boot.lds
index 363690f..7a75603 100644
--- a/nand_spl/board/freescale/mx31pdk/u-boot.lds
+++ b/nand_spl/board/freescale/mx31pdk/u-boot.lds
@@ -46,9 +46,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/nand_spl/board/karo/tx25/u-boot.lds b/nand_spl/board/karo/tx25/u-boot.lds
index 8332710..d7c7060 100644
--- a/nand_spl/board/karo/tx25/u-boot.lds
+++ b/nand_spl/board/karo/tx25/u-boot.lds
@@ -46,9 +46,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/nand_spl/board/samsung/smdk6400/u-boot.lds b/nand_spl/board/samsung/smdk6400/u-boot.lds
index 7ceae32..7e92a02 100644
--- a/nand_spl/board/samsung/smdk6400/u-boot.lds
+++ b/nand_spl/board/samsung/smdk6400/u-boot.lds
@@ -50,9 +50,6 @@ SECTIONS
 	. = ALIGN(4);
 	.got : { *(.got) }
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 2/5] common: Implement support for linker-generated arrays
  2012-09-30  0:17 ` [U-Boot] [PATCH 2/5] common: Implement support for linker-generated arrays Marek Vasut
@ 2012-10-02 23:40   ` Joe Hershberger
  0 siblings, 0 replies; 48+ messages in thread
From: Joe Hershberger @ 2012-10-02 23:40 UTC (permalink / raw)
  To: u-boot

Hi Marek,

On Sat, Sep 29, 2012 at 7:17 PM, Marek Vasut <marex@denx.de> wrote:
> This patch adds support for linker-generated array. These arrays
> are a generalization of the U-Boot command declaration approach.
>
> Basically, the idea is to generate an array, where elements of the
> array are statically initialized at compile time and each element
> is declared separatelly at different place. Such array is assembled
> together into continuous piece of memory by linker and a pointer to
> it's first entry can then be retrieved via accessor.
>
> The actual implementation relies on placing any variable that is to
> represent an element of LG-array into particular subsection of the
> .u_boot_list linker section . The subsection is determined by user
> options. Once compiled, it is possible to dump all symbols placed
> in .u_boot_list section and the subsections in which they should be
> and generate appropriate bounds for each requested subsection of the
> .u_boot_list section. Each such subsection thus contains __start and
> __end entries at the begining and end respecitively.
>
> This allows for simple run-time traversing of the array, since the
> symbols are properly defined.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Joe Hershberger <joe.hershberger@gmail.com>
> Cc: Mike Frysinger <vapier@gentoo.org>
> ---

Tested-by: Joe Hershberger <joe.hershberger@ni.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 1/5] common: Add symbol handling for generic lists into Makefile
  2012-09-30  0:17 ` [U-Boot] [PATCH 1/5] common: Add symbol handling for generic lists into Makefile Marek Vasut
@ 2012-10-02 23:40   ` Joe Hershberger
  0 siblings, 0 replies; 48+ messages in thread
From: Joe Hershberger @ 2012-10-02 23:40 UTC (permalink / raw)
  To: u-boot

Hi Marek,

On Sat, Sep 29, 2012 at 7:17 PM, Marek Vasut <marex@denx.de> wrote:
> This patch adds essential components for generation of the contents of
> the linker section that is used by the linker-generated array. All of
> the contents is held in a separate file, u-boot.lst, which is generated
> at runtime just before U-Boot is linked.
>
> The purpose of this code is to especially generate the appropriate
> boundary symbols around each subsection in the section carrying the
> linker-generated arrays. Obviously, the interim linker code for actual
> placement of the variables into the section is generated too. The
> generated file, u-boot.lst, is included into u-boot.lds via the linker
> INCLUDE directive in u-boot.lds .
>
> Adjustments are made in the Makefile and spl/Makefile so that the
> u-boot.lds and u-boot-spl.lds depend on their respective .lst files.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Joe Hershberger <joe.hershberger@gmail.com>
> Cc: Mike Frysinger <vapier@gentoo.org>
> ---

Tested-by: Joe Hershberger <joe.hershberger@ni.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 3/5] common: Add .u_boot_list into all linker files
  2012-09-30  0:17 ` [U-Boot] [PATCH 3/5] common: Add .u_boot_list into all linker files Marek Vasut
@ 2012-10-02 23:41   ` Joe Hershberger
  2012-10-03 14:55   ` Daniel Schwierzeck
  2012-10-03 20:49   ` [U-Boot] [PATCH 3/5 V2] " Marek Vasut
  2 siblings, 0 replies; 48+ messages in thread
From: Joe Hershberger @ 2012-10-02 23:41 UTC (permalink / raw)
  To: u-boot

Marek,

On Sat, Sep 29, 2012 at 7:17 PM, Marek Vasut <marex@denx.de> wrote:
> Add section for the linker-generated lists into all possible linker
> files, so that everyone can easily use these lists. This is mostly
> a mechanical adjustment.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Joe Hershberger <joe.hershberger@gmail.com>
> Cc: Mike Frysinger <vapier@gentoo.org>
> ---

Tested-by: Joe Hershberger <joe.hershberger@ni.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 4/5] common: Convert the U-Boot commands to LG-arrays
  2012-09-30  0:17 ` [U-Boot] [PATCH 4/5] common: Convert the U-Boot commands to LG-arrays Marek Vasut
@ 2012-10-02 23:43   ` Joe Hershberger
  0 siblings, 0 replies; 48+ messages in thread
From: Joe Hershberger @ 2012-10-02 23:43 UTC (permalink / raw)
  To: u-boot

Hi Marek,

On Sat, Sep 29, 2012 at 7:17 PM, Marek Vasut <marex@denx.de> wrote:
> This patch converts the old method of creating a list of command
> onto the new LG-arrays code. The old u_boot_cmd section is converted
> to new u_boot_list_cmd subsection and LG-array macros used as needed.
>
> Minor adjustments had to be made to the common code to work with the
> LG-array macros, mostly the fixup_cmdtable() calls are now passed the
> ll_entry_start and ll_entry_count instead of linker-generated symbols.
>
> The command.c had to be adjusted as well so it would use the newly
> introduced LG-array API instead of directly using linker-generated
> symbols.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Joe Hershberger <joe.hershberger@gmail.com>
> Cc: Mike Frysinger <vapier@gentoo.org>
> ---

Tested-by: Joe Hershberger <joe.hershberger@ni.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 5/5] common: Discard the __u_boot_cmd section
  2012-09-30  0:17 ` [U-Boot] [PATCH 5/5] common: Discard the __u_boot_cmd section Marek Vasut
@ 2012-10-02 23:43   ` Joe Hershberger
  2012-10-03 14:56   ` Daniel Schwierzeck
  2012-10-03 20:50   ` [U-Boot] [PATCH 5/5 V2] " Marek Vasut
  2 siblings, 0 replies; 48+ messages in thread
From: Joe Hershberger @ 2012-10-02 23:43 UTC (permalink / raw)
  To: u-boot

Hi Marek,

On Sat, Sep 29, 2012 at 7:17 PM, Marek Vasut <marex@denx.de> wrote:
> The command declaration now uses the new LG-array method to generate
> list of commands. Thus the __u_boot_cmd section is now superseded and
> redundant and therefore can be removed. Also, remove externed symbols
> associated with this section from include/command.h .
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Joe Hershberger <joe.hershberger@gmail.com>
> Cc: Mike Frysinger <vapier@gentoo.org>
> ---

Tested-by: Joe Hershberger <joe.hershberger@ni.com>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 3/5] common: Add .u_boot_list into all linker files
  2012-09-30  0:17 ` [U-Boot] [PATCH 3/5] common: Add .u_boot_list into all linker files Marek Vasut
  2012-10-02 23:41   ` Joe Hershberger
@ 2012-10-03 14:55   ` Daniel Schwierzeck
  2012-10-03 15:01     ` Marek Vasut
  2012-10-03 20:49   ` [U-Boot] [PATCH 3/5 V2] " Marek Vasut
  2 siblings, 1 reply; 48+ messages in thread
From: Daniel Schwierzeck @ 2012-10-03 14:55 UTC (permalink / raw)
  To: u-boot

Hi Marek,

2012/9/30 Marek Vasut <marex@denx.de>:
> Add section for the linker-generated lists into all possible linker
> files, so that everyone can easily use these lists. This is mostly
> a mechanical adjustment.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Joe Hershberger <joe.hershberger@gmail.com>
> Cc: Mike Frysinger <vapier@gentoo.org>
> ---

<snip>

> diff --git a/examples/standalone/mips.lds b/examples/standalone/mips.lds
> index 5f766ed..65c654d 100644
> --- a/examples/standalone/mips.lds
> +++ b/examples/standalone/mips.lds
> @@ -39,6 +39,10 @@ SECTIONS
>         . = ALIGN(4);
>         .data  : { *(.data*) }
>
> +       .u_boot_list : {
> +               INCLUDE u-boot.lst;
> +       }
> +
>         . = .;
>         _gp = ALIGN(16) + 0x7ff0;
>
> diff --git a/examples/standalone/nds32.lds b/examples/standalone/nds32.lds
> index 50b4c4b..4e581ad 100644
> --- a/examples/standalone/nds32.lds
> +++ b/examples/standalone/nds32.lds
> @@ -36,6 +36,10 @@ SECTIONS
>         . = ALIGN(4);
>         .data : { *(.data) }
>
> +       .u_boot_list : {
> +               INCLUDE u-boot.lst;
> +       }
> +
>         . = ALIGN(4);
>
>         .got : {
> diff --git a/examples/standalone/sparc.lds b/examples/standalone/sparc.lds
> index 9733daa..908a9be 100644
> --- a/examples/standalone/sparc.lds
> +++ b/examples/standalone/sparc.lds
> @@ -46,6 +46,11 @@ SECTIONS
>         {
>                 *(.data)
>         }
> +
> +       .u_boot_list : {
> +               INCLUDE u-boot.lst;
> +       }
> +
>         . = ALIGN(4);
>         __data_end = .;
>
> diff --git a/nand_spl/board/freescale/mx31pdk/u-boot.lds b/nand_spl/board/freescale/mx31pdk/u-boot.lds
> index d2b08f6..363690f 100644
> --- a/nand_spl/board/freescale/mx31pdk/u-boot.lds
> +++ b/nand_spl/board/freescale/mx31pdk/u-boot.lds
> @@ -51,6 +51,11 @@ SECTIONS
>         __u_boot_cmd_end = .;
>
>         . = ALIGN(4);
> +       .u_boot_list : {
> +               INCLUDE u-boot.lst;
> +       }
> +
> +       . = ALIGN(4);
>
>         .rel.dyn : {
>                 __rel_dyn_start = .;
> diff --git a/nand_spl/board/karo/tx25/u-boot.lds b/nand_spl/board/karo/tx25/u-boot.lds
> index d2b08f6..8332710 100644
> --- a/nand_spl/board/karo/tx25/u-boot.lds
> +++ b/nand_spl/board/karo/tx25/u-boot.lds
> @@ -51,6 +51,11 @@ SECTIONS
>         __u_boot_cmd_end = .;
>
>         . = ALIGN(4);
> +       .u_boot_list : {
> +       INCLUDE u-boot.lst;
> +       }
> +
> +       . = ALIGN(4);
>
>         .rel.dyn : {
>                 __rel_dyn_start = .;
> diff --git a/nand_spl/board/samsung/smdk6400/u-boot.lds b/nand_spl/board/samsung/smdk6400/u-boot.lds
> index 567f635..7ceae32 100644
> --- a/nand_spl/board/samsung/smdk6400/u-boot.lds
> +++ b/nand_spl/board/samsung/smdk6400/u-boot.lds
> @@ -55,6 +55,11 @@ SECTIONS
>         __u_boot_cmd_end = .;
>
>         . = ALIGN(4);
> +       .u_boot_list : {
> +       INCLUDE u-boot.lst;
> +       }
> +
> +       . = ALIGN(4);
>
>         .rel.dyn : {
>         __rel_dyn_start = .;
> --
> 1.7.10.4
>

this can't work because u-boot.lst is genereated in top-level directory
but linking of standalone code happens in the according subdirectories.
Thus the linker can't find u-boot.lst.

Example for MIPS standalone:

/opt/eldk-5.2.1/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/mips-linux-ld.bfd
 -G 0 -static -n -nostdlib -EB -g -Ttext 0x80200000 -T mips.lds \
			-o hello_world -e hello_world hello_world.o libstubs.o \
			-L/opt/eldk-5.2.1/mips/sysroots/mips32-linux/usr/lib/mips-linux/4.6.4 -lgcc
/opt/eldk-5.2.1/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/mips-linux-ld.bfd:
cannot open linker script file u-boot.lst: No such file or directory

-- 
Best regards,
Daniel

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 5/5] common: Discard the __u_boot_cmd section
  2012-09-30  0:17 ` [U-Boot] [PATCH 5/5] common: Discard the __u_boot_cmd section Marek Vasut
  2012-10-02 23:43   ` Joe Hershberger
@ 2012-10-03 14:56   ` Daniel Schwierzeck
  2012-10-03 20:50   ` [U-Boot] [PATCH 5/5 V2] " Marek Vasut
  2 siblings, 0 replies; 48+ messages in thread
From: Daniel Schwierzeck @ 2012-10-03 14:56 UTC (permalink / raw)
  To: u-boot

Hi Marek,

2012/9/30 Marek Vasut <marex@denx.de>:
> The command declaration now uses the new LG-array method to generate
> list of commands. Thus the __u_boot_cmd section is now superseded and
> redundant and therefore can be removed. Also, remove externed symbols
> associated with this section from include/command.h .
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Joe Hershberger <joe.hershberger@gmail.com>
> Cc: Mike Frysinger <vapier@gentoo.org>
> ---

>  arch/microblaze/cpu/u-boot.lds                   |   11 -----------
>  board/dbau1x00/u-boot.lds                        |    9 ---------
>  board/incaip/u-boot.lds                          |    9 ---------
>  board/micronas/vct/u-boot.lds                    |    9 ---------
>  board/pb1x00/u-boot.lds                          |    9 ---------
>  board/qemu-mips/u-boot.lds                       |    9 ---------

Please recheck the lds files above. This patch removes code that
you previously added:

-       . = ALIGN(4);
-       .u_boot_list : {
-       INCLUDE u-boot.lst;
-       }

This breaks almost all MIPS boards and probably Microblaze.

-- 
Best regards,
Daniel

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 3/5] common: Add .u_boot_list into all linker files
  2012-10-03 14:55   ` Daniel Schwierzeck
@ 2012-10-03 15:01     ` Marek Vasut
  2012-10-03 15:21       ` Daniel Schwierzeck
  0 siblings, 1 reply; 48+ messages in thread
From: Marek Vasut @ 2012-10-03 15:01 UTC (permalink / raw)
  To: u-boot

Dear Daniel Schwierzeck,

[...]

> this can't work because u-boot.lst is genereated in top-level directory
> but linking of standalone code happens in the according subdirectories.
> Thus the linker can't find u-boot.lst.
> 
> Example for MIPS standalone:
> 
> /opt/eldk-5.2.1/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/mips-lin
> ux-ld.bfd -G 0 -static -n -nostdlib -EB -g -Ttext 0x80200000 -T mips.lds \
> 			-o hello_world -e hello_world hello_world.o libstubs.o \
> 			-L/opt/eldk-5.2.1/mips/sysroots/mips32-
linux/usr/lib/mips-linux/4.6.4
> -lgcc
> /opt/eldk-5.2.1/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/mips-li
> nux-ld.bfd: cannot open linker script file u-boot.lst: No such file or
> directory

Do you have any suggestion? I recall compiling it for mips ...

Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 3/5] common: Add .u_boot_list into all linker files
  2012-10-03 15:01     ` Marek Vasut
@ 2012-10-03 15:21       ` Daniel Schwierzeck
  2012-10-03 16:44         ` Marek Vasut
  0 siblings, 1 reply; 48+ messages in thread
From: Daniel Schwierzeck @ 2012-10-03 15:21 UTC (permalink / raw)
  To: u-boot

2012/10/3 Marek Vasut <marex@denx.de>:
> Dear Daniel Schwierzeck,
>
> [...]
>
>> this can't work because u-boot.lst is genereated in top-level directory
>> but linking of standalone code happens in the according subdirectories.
>> Thus the linker can't find u-boot.lst.
>>
>> Example for MIPS standalone:
>>
>> /opt/eldk-5.2.1/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/mips-lin
>> ux-ld.bfd -G 0 -static -n -nostdlib -EB -g -Ttext 0x80200000 -T mips.lds \
>>                       -o hello_world -e hello_world hello_world.o libstubs.o \
>>                       -L/opt/eldk-5.2.1/mips/sysroots/mips32-
> linux/usr/lib/mips-linux/4.6.4
>> -lgcc
>> /opt/eldk-5.2.1/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/mips-li
>> nux-ld.bfd: cannot open linker script file u-boot.lst: No such file or
>> directory
>
> Do you have any suggestion? I recall compiling it for mips ...

Do we really need u-boot.lst in standalone applications? I think there is
no need for u_boot_cmd or DM.

-- 
Best regards,
Daniel

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 3/5] common: Add .u_boot_list into all linker files
  2012-10-03 15:21       ` Daniel Schwierzeck
@ 2012-10-03 16:44         ` Marek Vasut
  2012-10-03 18:05           ` Daniel Schwierzeck
  0 siblings, 1 reply; 48+ messages in thread
From: Marek Vasut @ 2012-10-03 16:44 UTC (permalink / raw)
  To: u-boot

Dear Daniel Schwierzeck,

> 2012/10/3 Marek Vasut <marex@denx.de>:
> > Dear Daniel Schwierzeck,
> > 
> > [...]
> > 
> >> this can't work because u-boot.lst is genereated in top-level directory
> >> but linking of standalone code happens in the according subdirectories.
> >> Thus the linker can't find u-boot.lst.
> >> 
> >> Example for MIPS standalone:
> >> 
> >> /opt/eldk-5.2.1/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/mips-
> >> lin ux-ld.bfd -G 0 -static -n -nostdlib -EB -g -Ttext 0x80200000 -T
> >> mips.lds \
> >> 
> >>                       -o hello_world -e hello_world hello_world.o
> >>                       libstubs.o \
> >>                       -L/opt/eldk-5.2.1/mips/sysroots/mips32-
> > 
> > linux/usr/lib/mips-linux/4.6.4
> > 
> >> -lgcc
> >> /opt/eldk-5.2.1/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/mips-
> >> li nux-ld.bfd: cannot open linker script file u-boot.lst: No such file
> >> or directory
> > 
> > Do you have any suggestion? I recall compiling it for mips ...
> 
> Do we really need u-boot.lst in standalone applications? I think there is
> no need for u_boot_cmd or DM.

Wait, it got linked into standalone apps? I thought it broke your precious mips 
...

Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 3/5] common: Add .u_boot_list into all linker files
  2012-10-03 16:44         ` Marek Vasut
@ 2012-10-03 18:05           ` Daniel Schwierzeck
  0 siblings, 0 replies; 48+ messages in thread
From: Daniel Schwierzeck @ 2012-10-03 18:05 UTC (permalink / raw)
  To: u-boot

2012/10/3 Marek Vasut <marex@denx.de>:
> Dear Daniel Schwierzeck,
>
>> 2012/10/3 Marek Vasut <marex@denx.de>:
>> > Dear Daniel Schwierzeck,
>> >
>> > [...]
>> >
>> >> this can't work because u-boot.lst is genereated in top-level directory
>> >> but linking of standalone code happens in the according subdirectories.
>> >> Thus the linker can't find u-boot.lst.
>> >>
>> >> Example for MIPS standalone:
>> >>
>> >> /opt/eldk-5.2.1/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/mips-
>> >> lin ux-ld.bfd -G 0 -static -n -nostdlib -EB -g -Ttext 0x80200000 -T
>> >> mips.lds \
>> >>
>> >>                       -o hello_world -e hello_world hello_world.o
>> >>                       libstubs.o \
>> >>                       -L/opt/eldk-5.2.1/mips/sysroots/mips32-
>> >
>> > linux/usr/lib/mips-linux/4.6.4
>> >
>> >> -lgcc
>> >> /opt/eldk-5.2.1/mips/sysroots/i686-eldk-linux/usr/bin/mips32-linux/mips-
>> >> li nux-ld.bfd: cannot open linker script file u-boot.lst: No such file
>> >> or directory
>> >
>> > Do you have any suggestion? I recall compiling it for mips ...
>>
>> Do we really need u-boot.lst in standalone applications? I think there is
>> no need for u_boot_cmd or DM.
>
> Wait, it got linked into standalone apps? I thought it broke your precious mips
> ...

it did. MIPS, NDS32 and Sparc have extra LDS files for standalone
applications where you also
added "INCLUDE u-boot.lst". Because standalone applications are always
built unconditionally,
all MIPS boards fail at final link of the application binary.

-- 
Best regards,
Daniel

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 3/5 V2] common: Add .u_boot_list into all linker files
  2012-09-30  0:17 ` [U-Boot] [PATCH 3/5] common: Add .u_boot_list into all linker files Marek Vasut
  2012-10-02 23:41   ` Joe Hershberger
  2012-10-03 14:55   ` Daniel Schwierzeck
@ 2012-10-03 20:49   ` Marek Vasut
  2 siblings, 0 replies; 48+ messages in thread
From: Marek Vasut @ 2012-10-03 20:49 UTC (permalink / raw)
  To: u-boot

Add section for the linker-generated lists into all possible linker
files, so that everyone can easily use these lists. This is mostly
a mechanical adjustment.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>
---
 arch/arm/cpu/arm920t/ep93xx/u-boot.lds           |    5 +++++
 arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds        |    4 ++++
 arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds      |    4 ++++
 arch/arm/cpu/armv7/omap-common/u-boot-spl.lds    |    5 +++++
 arch/arm/cpu/ixp/u-boot.lds                      |    5 +++++
 arch/arm/cpu/u-boot.lds                          |    5 +++++
 arch/avr32/cpu/u-boot.lds                        |    5 +++++
 arch/blackfin/cpu/u-boot.lds                     |    4 ++++
 arch/microblaze/cpu/u-boot.lds                   |    5 +++++
 arch/nds32/cpu/n1213/u-boot.lds                  |    5 +++++
 arch/nios2/cpu/u-boot.lds                        |    5 +++++
 arch/powerpc/cpu/74xx_7xx/u-boot.lds             |    5 +++++
 arch/powerpc/cpu/mpc512x/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc5xx/u-boot.lds               |    5 +++++
 arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds |    3 +++
 arch/powerpc/cpu/mpc5xxx/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc8220/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc824x/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc8260/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc83xx/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc85xx/u-boot-nand.lds         |    4 ++++
 arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds     |    4 ++++
 arch/powerpc/cpu/mpc85xx/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc86xx/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/ppc4xx/u-boot.lds               |    5 +++++
 arch/sandbox/cpu/u-boot.lds                      |    5 +++++
 arch/sh/cpu/sh2/u-boot.lds                       |    4 ++++
 arch/sh/cpu/sh3/u-boot.lds                       |    4 ++++
 arch/sh/cpu/sh4/u-boot.lds                       |    4 ++++
 arch/x86/cpu/u-boot.lds                          |    5 +++++
 board/BuS/eb_cpu5282/u-boot.lds                  |    5 +++++
 board/LEOX/elpt860/u-boot.lds                    |    5 +++++
 board/RPXClassic/u-boot.lds                      |    5 +++++
 board/RPXClassic/u-boot.lds.debug                |    5 +++++
 board/RPXlite/u-boot.lds                         |    5 +++++
 board/RPXlite/u-boot.lds.debug                   |    5 +++++
 board/RPXlite_dw/u-boot.lds                      |    5 +++++
 board/RPXlite_dw/u-boot.lds.debug                |    5 +++++
 board/RRvision/u-boot.lds                        |    5 +++++
 board/actux1/u-boot.lds                          |    5 +++++
 board/actux2/u-boot.lds                          |    5 +++++
 board/actux3/u-boot.lds                          |    5 +++++
 board/adder/u-boot.lds                           |    5 +++++
 board/ait/cam_enc_4xx/u-boot-spl.lds             |    4 ++++
 board/altera/nios2-generic/u-boot.lds            |    5 +++++
 board/amcc/acadia/u-boot-nand.lds                |    3 +++
 board/amcc/bamboo/u-boot-nand.lds                |    3 +++
 board/amcc/canyonlands/u-boot-nand.lds           |    3 +++
 board/amcc/kilauea/u-boot-nand.lds               |    3 +++
 board/amcc/sequoia/u-boot-nand.lds               |    3 +++
 board/amcc/sequoia/u-boot-ram.lds                |    3 +++
 board/astro/mcf5373l/u-boot.lds                  |    5 +++++
 board/c2mon/u-boot.lds                           |    5 +++++
 board/c2mon/u-boot.lds.debug                     |    5 +++++
 board/cobra5272/u-boot.lds                       |    5 +++++
 board/cogent/u-boot.lds                          |    5 +++++
 board/cogent/u-boot.lds.debug                    |    5 +++++
 board/cray/L1/u-boot.lds.debug                   |    5 +++++
 board/dave/PPChameleonEVB/u-boot.lds             |    5 +++++
 board/davinci/da8xxevm/u-boot-spl-da850evm.lds   |    6 ++++++
 board/davinci/da8xxevm/u-boot-spl-hawk.lds       |    5 +++++
 board/dbau1x00/u-boot.lds                        |    5 +++++
 board/dvlhost/u-boot.lds                         |    5 +++++
 board/eltec/mhpc/u-boot.lds                      |    5 +++++
 board/eltec/mhpc/u-boot.lds.debug                |    5 +++++
 board/emk/top860/u-boot.lds                      |    5 +++++
 board/ep88x/u-boot.lds                           |    5 +++++
 board/esd/dasa_sim/u-boot.lds                    |    5 +++++
 board/esd/pmc440/u-boot-nand.lds                 |    3 +++
 board/esd/tasreg/u-boot.lds                      |    5 +++++
 board/esteem192e/u-boot.lds                      |    5 +++++
 board/etx094/u-boot.lds                          |    5 +++++
 board/evb64260/u-boot.lds                        |    5 +++++
 board/fads/u-boot.lds                            |    5 +++++
 board/flagadm/u-boot.lds                         |    5 +++++
 board/flagadm/u-boot.lds.debug                   |    5 +++++
 board/freescale/m5208evbe/u-boot.lds             |    5 +++++
 board/freescale/m52277evb/u-boot.lds             |    5 +++++
 board/freescale/m5235evb/u-boot.lds              |    5 +++++
 board/freescale/m5249evb/u-boot.lds              |    5 +++++
 board/freescale/m5253demo/u-boot.lds             |    5 +++++
 board/freescale/m5253evbe/u-boot.lds             |    5 +++++
 board/freescale/m5271evb/u-boot.lds              |    5 +++++
 board/freescale/m5272c3/u-boot.lds               |    5 +++++
 board/freescale/m5275evb/u-boot.lds              |    5 +++++
 board/freescale/m5282evb/u-boot.lds              |    5 +++++
 board/freescale/m53017evb/u-boot.lds             |    5 +++++
 board/freescale/m5329evb/u-boot.lds              |    5 +++++
 board/freescale/m5373evb/u-boot.lds              |    5 +++++
 board/freescale/m54451evb/u-boot.lds             |    5 +++++
 board/freescale/m54455evb/u-boot.lds             |    5 +++++
 board/freescale/m547xevb/u-boot.lds              |    5 +++++
 board/freescale/m548xevb/u-boot.lds              |    5 +++++
 board/freescale/mx31ads/u-boot.lds               |    5 +++++
 board/gaisler/gr_cpci_ax2000/u-boot.lds          |    5 +++++
 board/gaisler/gr_ep2s60/u-boot.lds               |    5 +++++
 board/gaisler/gr_xc3s_1500/u-boot.lds            |    5 +++++
 board/gaisler/grsim/u-boot.lds                   |    5 +++++
 board/gaisler/grsim_leon2/u-boot.lds             |    5 +++++
 board/gen860t/u-boot-flashenv.lds                |    4 ++++
 board/gen860t/u-boot.lds                         |    5 +++++
 board/genietv/u-boot.lds                         |    5 +++++
 board/genietv/u-boot.lds.debug                   |    5 +++++
 board/hermes/u-boot.lds                          |    5 +++++
 board/hermes/u-boot.lds.debug                    |    5 +++++
 board/hymod/u-boot.lds                           |    5 +++++
 board/hymod/u-boot.lds.debug                     |    5 +++++
 board/icu862/u-boot.lds                          |    5 +++++
 board/icu862/u-boot.lds.debug                    |    5 +++++
 board/idmr/u-boot.lds                            |    5 +++++
 board/incaip/u-boot.lds                          |    5 +++++
 board/ip860/u-boot.lds                           |    5 +++++
 board/ip860/u-boot.lds.debug                     |    5 +++++
 board/ivm/u-boot.lds                             |    5 +++++
 board/ivm/u-boot.lds.debug                       |    5 +++++
 board/korat/u-boot-F7FC.lds                      |    3 +++
 board/kup/kup4k/u-boot.lds                       |    5 +++++
 board/kup/kup4k/u-boot.lds.debug                 |    5 +++++
 board/kup/kup4x/u-boot.lds                       |    5 +++++
 board/kup/kup4x/u-boot.lds.debug                 |    5 +++++
 board/lantec/u-boot.lds                          |    5 +++++
 board/lantec/u-boot.lds.debug                    |    5 +++++
 board/lwmon/u-boot.lds                           |    5 +++++
 board/lwmon/u-boot.lds.debug                     |    5 +++++
 board/manroland/uc100/u-boot.lds                 |    5 +++++
 board/matrix_vision/mvsmr/u-boot.lds             |    5 +++++
 board/mbx8xx/u-boot.lds                          |    5 +++++
 board/mbx8xx/u-boot.lds.debug                    |    5 +++++
 board/micronas/vct/u-boot.lds                    |    5 +++++
 board/mousse/u-boot.lds                          |    5 +++++
 board/mpl/pip405/u-boot.lds.debug                |    5 +++++
 board/mvblue/u-boot.lds                          |    5 +++++
 board/netphone/u-boot.lds                        |    5 +++++
 board/netphone/u-boot.lds.debug                  |    5 +++++
 board/netta/u-boot.lds                           |    5 +++++
 board/netta/u-boot.lds.debug                     |    5 +++++
 board/netta2/u-boot.lds                          |    5 +++++
 board/netta2/u-boot.lds.debug                    |    5 +++++
 board/netvia/u-boot.lds                          |    5 +++++
 board/netvia/u-boot.lds.debug                    |    5 +++++
 board/nx823/u-boot.lds                           |    5 +++++
 board/nx823/u-boot.lds.debug                     |    5 +++++
 board/openrisc/openrisc-generic/u-boot.lds       |    5 +++++
 board/pb1x00/u-boot.lds                          |    5 +++++
 board/qemu-mips/u-boot.lds                       |    5 +++++
 board/qi/qi_lb60/u-boot.lds                      |    5 +++++
 board/quantum/u-boot.lds                         |    5 +++++
 board/r360mpi/u-boot.lds                         |    5 +++++
 board/rbc823/u-boot.lds                          |    5 +++++
 board/renesas/sh7757lcr/u-boot.lds               |    4 ++++
 board/rsdproto/u-boot.lds                        |    5 +++++
 board/samsung/smdk5250/smdk5250-uboot-spl.lds    |    5 +++++
 board/samsung/smdk6400/u-boot-nand.lds           |    7 ++++++-
 board/sandburst/karef/u-boot.lds.debug           |    5 +++++
 board/sandburst/metrobox/u-boot.lds.debug        |    5 +++++
 board/sandpoint/u-boot.lds                       |    5 +++++
 board/siemens/IAD210/u-boot.lds                  |    5 +++++
 board/sixnet/u-boot.lds                          |    5 +++++
 board/snmc/qs850/u-boot.lds                      |    5 +++++
 board/snmc/qs860t/u-boot.lds                     |    5 +++++
 board/spc1920/u-boot.lds                         |    5 +++++
 board/spd8xx/u-boot.lds                          |    5 +++++
 board/spd8xx/u-boot.lds.debug                    |    5 +++++
 board/stx/stxxtc/u-boot.lds                      |    5 +++++
 board/stx/stxxtc/u-boot.lds.debug                |    5 +++++
 board/svm_sc8xx/u-boot.lds                       |    5 +++++
 board/tqc/tqm8xx/u-boot.lds                      |    5 +++++
 board/v37/u-boot.lds                             |    5 +++++
 board/vpac270/u-boot-spl.lds                     |    4 ++++
 board/w7o/u-boot.lds.debug                       |    5 +++++
 board/westel/amx860/u-boot.lds                   |    5 +++++
 board/westel/amx860/u-boot.lds.debug             |    5 +++++
 board/xes/xpedite1000/u-boot.lds.debug           |    5 +++++
 examples/standalone/sparc.lds                    |    1 +
 nand_spl/board/freescale/mx31pdk/u-boot.lds      |    5 +++++
 nand_spl/board/karo/tx25/u-boot.lds              |    5 +++++
 nand_spl/board/samsung/smdk6400/u-boot.lds       |    5 +++++
 177 files changed, 853 insertions(+), 1 deletion(-)

V2: Insert u_boot_list linker script parts properly for mips boards
    Drop support for LG-arrays from standalone code, it makes no sense there

diff --git a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
index dc6ba34..6ad9169 100644
--- a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
+++ b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
@@ -53,6 +53,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 	__bss_start = .;
 	.bss : { *(.bss) }
 	__bss_end__ = .;
diff --git a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
index f8ea38c..dd12607 100644
--- a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
+++ b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
@@ -54,6 +54,10 @@ SECTIONS
 	.u_boot_cmd : { *(.u_boot_cmd) }
 	__u_boot_cmd_end = .;
 
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	. = ALIGN(4);
 
 	.rel.dyn : {
diff --git a/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
index afd3381..65f80c2 100644
--- a/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
+++ b/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
@@ -54,6 +54,10 @@ SECTIONS
 	.u_boot_cmd : { *(.u_boot_cmd) }
 	__u_boot_cmd_end = .;
 
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	. = ALIGN(4);
 
 	.rel.dyn : {
diff --git a/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds b/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds
index 1d8efb2..c24c4e9 100644
--- a/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds
+++ b/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds
@@ -47,6 +47,11 @@ SECTIONS
 
 	. = ALIGN(4);
 	.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
+
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	. = ALIGN(4);
 	__image_copy_end = .;
 	_end = .;
diff --git a/arch/arm/cpu/ixp/u-boot.lds b/arch/arm/cpu/ixp/u-boot.lds
index 7199de4..e08f10b 100644
--- a/arch/arm/cpu/ixp/u-boot.lds
+++ b/arch/arm/cpu/ixp/u-boot.lds
@@ -51,6 +51,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/arch/arm/cpu/u-boot.lds b/arch/arm/cpu/u-boot.lds
index e49ca0c..18eaf73 100644
--- a/arch/arm/cpu/u-boot.lds
+++ b/arch/arm/cpu/u-boot.lds
@@ -54,6 +54,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 
 	__image_copy_end = .;
 
diff --git a/arch/avr32/cpu/u-boot.lds b/arch/avr32/cpu/u-boot.lds
index 0e532f2..5aef19b 100644
--- a/arch/avr32/cpu/u-boot.lds
+++ b/arch/avr32/cpu/u-boot.lds
@@ -54,6 +54,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 	_got = .;
 	.got : {
 		*(.got)
diff --git a/arch/blackfin/cpu/u-boot.lds b/arch/blackfin/cpu/u-boot.lds
index 2b8d285..be70d81 100644
--- a/arch/blackfin/cpu/u-boot.lds
+++ b/arch/blackfin/cpu/u-boot.lds
@@ -119,6 +119,10 @@ SECTIONS
 		___u_boot_cmd_end = .;
 	} >ram_data
 
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	} >ram_data
+
 	.text_l1 :
 	{
 		. = ALIGN(4);
diff --git a/arch/microblaze/cpu/u-boot.lds b/arch/microblaze/cpu/u-boot.lds
index d033a28..fca0c52 100644
--- a/arch/microblaze/cpu/u-boot.lds
+++ b/arch/microblaze/cpu/u-boot.lds
@@ -58,6 +58,11 @@ SECTIONS
 		__u_boot_cmd_end = .;
 	}
 
+	. = ALIGN(4);
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	.bss ALIGN(0x4):
 	{
 		__bss_start = .;
diff --git a/arch/nds32/cpu/n1213/u-boot.lds b/arch/nds32/cpu/n1213/u-boot.lds
index 1903420..48d5b90 100644
--- a/arch/nds32/cpu/n1213/u-boot.lds
+++ b/arch/nds32/cpu/n1213/u-boot.lds
@@ -57,6 +57,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 
 	_end = .;
 
diff --git a/arch/nios2/cpu/u-boot.lds b/arch/nios2/cpu/u-boot.lds
index 4856bd3..33cd0e2 100644
--- a/arch/nios2/cpu/u-boot.lds
+++ b/arch/nios2/cpu/u-boot.lds
@@ -53,6 +53,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	/* INIT DATA sections - "Small" data (see the gcc -G option)
 	 * is always gp-relative. Here we make all init data sections
 	 * adjacent to simplify the startup code -- and provide
diff --git a/arch/powerpc/cpu/74xx_7xx/u-boot.lds b/arch/powerpc/cpu/74xx_7xx/u-boot.lds
index 24823cd..049ae63 100644
--- a/arch/powerpc/cpu/74xx_7xx/u-boot.lds
+++ b/arch/powerpc/cpu/74xx_7xx/u-boot.lds
@@ -66,6 +66,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc512x/u-boot.lds b/arch/powerpc/cpu/mpc512x/u-boot.lds
index 7a4d927..d93c097 100644
--- a/arch/powerpc/cpu/mpc512x/u-boot.lds
+++ b/arch/powerpc/cpu/mpc512x/u-boot.lds
@@ -61,6 +61,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc5xx/u-boot.lds b/arch/powerpc/cpu/mpc5xx/u-boot.lds
index e02b213..2fbc379 100644
--- a/arch/powerpc/cpu/mpc5xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc5xx/u-boot.lds
@@ -69,6 +69,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds b/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
index 0c6c54e..1574767 100644
--- a/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
+++ b/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
@@ -70,6 +70,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc5xxx/u-boot.lds b/arch/powerpc/cpu/mpc5xxx/u-boot.lds
index 5dcaec1..52755e6 100644
--- a/arch/powerpc/cpu/mpc5xxx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc5xxx/u-boot.lds
@@ -64,6 +64,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc8220/u-boot.lds b/arch/powerpc/cpu/mpc8220/u-boot.lds
index 39bb42e..222f907 100644
--- a/arch/powerpc/cpu/mpc8220/u-boot.lds
+++ b/arch/powerpc/cpu/mpc8220/u-boot.lds
@@ -63,6 +63,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc824x/u-boot.lds b/arch/powerpc/cpu/mpc824x/u-boot.lds
index b30ce76..bb16926 100644
--- a/arch/powerpc/cpu/mpc824x/u-boot.lds
+++ b/arch/powerpc/cpu/mpc824x/u-boot.lds
@@ -64,6 +64,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc8260/u-boot.lds b/arch/powerpc/cpu/mpc8260/u-boot.lds
index 60b71ec..722d7fb 100644
--- a/arch/powerpc/cpu/mpc8260/u-boot.lds
+++ b/arch/powerpc/cpu/mpc8260/u-boot.lds
@@ -63,6 +63,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc83xx/u-boot.lds b/arch/powerpc/cpu/mpc83xx/u-boot.lds
index 2f4b9ad..416bc07 100644
--- a/arch/powerpc/cpu/mpc83xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc83xx/u-boot.lds
@@ -62,6 +62,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds b/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
index 8ba9399..5563b5f 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
@@ -74,6 +74,10 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds b/arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds
index 668158f..6c8ae9a 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds
@@ -53,6 +53,10 @@ SECTIONS
 	}
 	_edata  =  .;
 
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	. = ALIGN(8);
 	__init_begin = .;
 	__init_end = .;
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot.lds b/arch/powerpc/cpu/mpc85xx/u-boot.lds
index efe34b7..009214b 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot.lds
@@ -81,6 +81,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/arch/powerpc/cpu/mpc86xx/u-boot.lds b/arch/powerpc/cpu/mpc86xx/u-boot.lds
index 121e529..e3b19d4 100644
--- a/arch/powerpc/cpu/mpc86xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc86xx/u-boot.lds
@@ -68,6 +68,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/arch/powerpc/cpu/ppc4xx/u-boot.lds b/arch/powerpc/cpu/ppc4xx/u-boot.lds
index 2466b79..005ec61 100644
--- a/arch/powerpc/cpu/ppc4xx/u-boot.lds
+++ b/arch/powerpc/cpu/ppc4xx/u-boot.lds
@@ -82,6 +82,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/arch/sandbox/cpu/u-boot.lds b/arch/sandbox/cpu/u-boot.lds
index 9960138..0a37657 100644
--- a/arch/sandbox/cpu/u-boot.lds
+++ b/arch/sandbox/cpu/u-boot.lds
@@ -28,6 +28,11 @@ SECTIONS
 	_u_boot_cmd : { *(.u_boot_cmd) }
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	__u_boot_sandbox_option_start = .;
 	_u_boot_sandbox_getopt : { *(.u_boot_sandbox_getopt) }
 	__u_boot_sandbox_option_end = .;
diff --git a/arch/sh/cpu/sh2/u-boot.lds b/arch/sh/cpu/sh2/u-boot.lds
index b86a822..2331152 100644
--- a/arch/sh/cpu/sh2/u-boot.lds
+++ b/arch/sh/cpu/sh2/u-boot.lds
@@ -80,6 +80,10 @@ SECTIONS
 	}
 	PROVIDE (__u_boot_cmd_end = .);
 
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	PROVIDE (reloc_dst_end = .);
 
 	PROVIDE (bss_start = .);
diff --git a/arch/sh/cpu/sh3/u-boot.lds b/arch/sh/cpu/sh3/u-boot.lds
index 9bf8503..9d99434 100644
--- a/arch/sh/cpu/sh3/u-boot.lds
+++ b/arch/sh/cpu/sh3/u-boot.lds
@@ -86,6 +86,10 @@ SECTIONS
 	}
 	PROVIDE (__u_boot_cmd_end = .);
 
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	PROVIDE (reloc_dst_end = .);
 	/* _reloc_dst_end = .; */
 
diff --git a/arch/sh/cpu/sh4/u-boot.lds b/arch/sh/cpu/sh4/u-boot.lds
index d9c70bc..8702c9e 100644
--- a/arch/sh/cpu/sh4/u-boot.lds
+++ b/arch/sh/cpu/sh4/u-boot.lds
@@ -83,6 +83,10 @@ SECTIONS
 	}
 	PROVIDE (__u_boot_cmd_end = .);
 
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	PROVIDE (reloc_dst_end = .);
 	/* _reloc_dst_end = .; */
 
diff --git a/arch/x86/cpu/u-boot.lds b/arch/x86/cpu/u-boot.lds
index fe28030..aa2b653 100644
--- a/arch/x86/cpu/u-boot.lds
+++ b/arch/x86/cpu/u-boot.lds
@@ -39,6 +39,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 	.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
 
 	. = ALIGN(4);
diff --git a/board/BuS/eb_cpu5282/u-boot.lds b/board/BuS/eb_cpu5282/u-boot.lds
index 4ba1964..3132a55 100644
--- a/board/BuS/eb_cpu5282/u-boot.lds
+++ b/board/BuS/eb_cpu5282/u-boot.lds
@@ -69,6 +69,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/LEOX/elpt860/u-boot.lds b/board/LEOX/elpt860/u-boot.lds
index 5aaf6b3..d85943c 100644
--- a/board/LEOX/elpt860/u-boot.lds
+++ b/board/LEOX/elpt860/u-boot.lds
@@ -90,6 +90,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/RPXClassic/u-boot.lds b/board/RPXClassic/u-boot.lds
index d0b60cf..92f78be 100644
--- a/board/RPXClassic/u-boot.lds
+++ b/board/RPXClassic/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/RPXClassic/u-boot.lds.debug b/board/RPXClassic/u-boot.lds.debug
index 99c48f2..47ad2e7 100644
--- a/board/RPXClassic/u-boot.lds.debug
+++ b/board/RPXClassic/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/RPXlite/u-boot.lds b/board/RPXlite/u-boot.lds
index d0b60cf..92f78be 100644
--- a/board/RPXlite/u-boot.lds
+++ b/board/RPXlite/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/RPXlite/u-boot.lds.debug b/board/RPXlite/u-boot.lds.debug
index 99c48f2..47ad2e7 100644
--- a/board/RPXlite/u-boot.lds.debug
+++ b/board/RPXlite/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/RPXlite_dw/u-boot.lds b/board/RPXlite_dw/u-boot.lds
index d0b60cf..92f78be 100644
--- a/board/RPXlite_dw/u-boot.lds
+++ b/board/RPXlite_dw/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/RPXlite_dw/u-boot.lds.debug b/board/RPXlite_dw/u-boot.lds.debug
index 4491edd..c76f9d0 100644
--- a/board/RPXlite_dw/u-boot.lds.debug
+++ b/board/RPXlite_dw/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/RRvision/u-boot.lds b/board/RRvision/u-boot.lds
index 8385373..3c2c708 100644
--- a/board/RRvision/u-boot.lds
+++ b/board/RRvision/u-boot.lds
@@ -75,6 +75,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/actux1/u-boot.lds b/board/actux1/u-boot.lds
index 9dbaa6f..e5d59db 100644
--- a/board/actux1/u-boot.lds
+++ b/board/actux1/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	}
 	__u_boot_cmd_end =.;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	. = ALIGN (4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/actux2/u-boot.lds b/board/actux2/u-boot.lds
index 3575ed9..09bb7ab 100644
--- a/board/actux2/u-boot.lds
+++ b/board/actux2/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	}
 	__u_boot_cmd_end =.;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	. = ALIGN (4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/actux3/u-boot.lds b/board/actux3/u-boot.lds
index 35aab29..71b6791 100644
--- a/board/actux3/u-boot.lds
+++ b/board/actux3/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	}
 	__u_boot_cmd_end =.;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	. = ALIGN (4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/adder/u-boot.lds b/board/adder/u-boot.lds
index a762769..62afcb80 100644
--- a/board/adder/u-boot.lds
+++ b/board/adder/u-boot.lds
@@ -66,6 +66,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/ait/cam_enc_4xx/u-boot-spl.lds b/board/ait/cam_enc_4xx/u-boot-spl.lds
index 52c986e..9403c3c 100644
--- a/board/ait/cam_enc_4xx/u-boot-spl.lds
+++ b/board/ait/cam_enc_4xx/u-boot-spl.lds
@@ -48,6 +48,10 @@ SECTIONS
 	. = ALIGN(4);
 	.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
 	. = ALIGN(4);
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	} >.sram
+	. = ALIGN(4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
 		*(.rel*)
diff --git a/board/altera/nios2-generic/u-boot.lds b/board/altera/nios2-generic/u-boot.lds
index 88ced62..764cc7d 100644
--- a/board/altera/nios2-generic/u-boot.lds
+++ b/board/altera/nios2-generic/u-boot.lds
@@ -54,6 +54,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	/* INIT DATA sections - "Small" data (see the gcc -G option)
 	 * is always gp-relative. Here we make all init data sections
 	 * adjacent to simplify the startup code -- and provide
diff --git a/board/amcc/acadia/u-boot-nand.lds b/board/amcc/acadia/u-boot-nand.lds
index ab67de2..bc0356b 100644
--- a/board/amcc/acadia/u-boot-nand.lds
+++ b/board/amcc/acadia/u-boot-nand.lds
@@ -76,6 +76,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/amcc/bamboo/u-boot-nand.lds b/board/amcc/bamboo/u-boot-nand.lds
index 3ad8709..2382ea9 100644
--- a/board/amcc/bamboo/u-boot-nand.lds
+++ b/board/amcc/bamboo/u-boot-nand.lds
@@ -77,6 +77,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/amcc/canyonlands/u-boot-nand.lds b/board/amcc/canyonlands/u-boot-nand.lds
index 76f89f1..0816387 100644
--- a/board/amcc/canyonlands/u-boot-nand.lds
+++ b/board/amcc/canyonlands/u-boot-nand.lds
@@ -77,6 +77,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/amcc/kilauea/u-boot-nand.lds b/board/amcc/kilauea/u-boot-nand.lds
index ab67de2..bc0356b 100644
--- a/board/amcc/kilauea/u-boot-nand.lds
+++ b/board/amcc/kilauea/u-boot-nand.lds
@@ -76,6 +76,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/amcc/sequoia/u-boot-nand.lds b/board/amcc/sequoia/u-boot-nand.lds
index 07ae8b1..94234de 100644
--- a/board/amcc/sequoia/u-boot-nand.lds
+++ b/board/amcc/sequoia/u-boot-nand.lds
@@ -77,6 +77,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/amcc/sequoia/u-boot-ram.lds b/board/amcc/sequoia/u-boot-ram.lds
index 423400a..0f594f5 100644
--- a/board/amcc/sequoia/u-boot-ram.lds
+++ b/board/amcc/sequoia/u-boot-ram.lds
@@ -68,6 +68,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/astro/mcf5373l/u-boot.lds b/board/astro/mcf5373l/u-boot.lds
index a1d8e0f..d800805 100644
--- a/board/astro/mcf5373l/u-boot.lds
+++ b/board/astro/mcf5373l/u-boot.lds
@@ -113,6 +113,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/c2mon/u-boot.lds b/board/c2mon/u-boot.lds
index b9b8e3c..a170f06 100644
--- a/board/c2mon/u-boot.lds
+++ b/board/c2mon/u-boot.lds
@@ -78,6 +78,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/c2mon/u-boot.lds.debug b/board/c2mon/u-boot.lds.debug
index c771102..fd278a4 100644
--- a/board/c2mon/u-boot.lds.debug
+++ b/board/c2mon/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/cobra5272/u-boot.lds b/board/cobra5272/u-boot.lds
index c4039ed..d49b0ef 100644
--- a/board/cobra5272/u-boot.lds
+++ b/board/cobra5272/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/cogent/u-boot.lds b/board/cogent/u-boot.lds
index 2393d8d..3a3d988 100644
--- a/board/cogent/u-boot.lds
+++ b/board/cogent/u-boot.lds
@@ -74,6 +74,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/cogent/u-boot.lds.debug b/board/cogent/u-boot.lds.debug
index 99c48f2..47ad2e7 100644
--- a/board/cogent/u-boot.lds.debug
+++ b/board/cogent/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/cray/L1/u-boot.lds.debug b/board/cray/L1/u-boot.lds.debug
index fcf8ebb..78fe44c 100644
--- a/board/cray/L1/u-boot.lds.debug
+++ b/board/cray/L1/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/dave/PPChameleonEVB/u-boot.lds b/board/dave/PPChameleonEVB/u-boot.lds
index 3b10114..fb40e3d 100644
--- a/board/dave/PPChameleonEVB/u-boot.lds
+++ b/board/dave/PPChameleonEVB/u-boot.lds
@@ -78,6 +78,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/davinci/da8xxevm/u-boot-spl-da850evm.lds b/board/davinci/da8xxevm/u-boot-spl-da850evm.lds
index 6f6e065..f1b53aa 100644
--- a/board/davinci/da8xxevm/u-boot-spl-da850evm.lds
+++ b/board/davinci/da8xxevm/u-boot-spl-da850evm.lds
@@ -47,6 +47,12 @@ SECTIONS
 
 	. = ALIGN(4);
 	.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
+
+	. = ALIGN(4);
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	} >.sram
+
 	. = ALIGN(4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/davinci/da8xxevm/u-boot-spl-hawk.lds b/board/davinci/da8xxevm/u-boot-spl-hawk.lds
index b3a41af..15fa53a 100644
--- a/board/davinci/da8xxevm/u-boot-spl-hawk.lds
+++ b/board/davinci/da8xxevm/u-boot-spl-hawk.lds
@@ -58,6 +58,11 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 	__rel_dyn_start = .;
 	__rel_dyn_end = .;
 	__dynsym_start = .;
diff --git a/board/dbau1x00/u-boot.lds b/board/dbau1x00/u-boot.lds
index 4a59cea..1b43dac 100644
--- a/board/dbau1x00/u-boot.lds
+++ b/board/dbau1x00/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	  __u_boot_cmd_end = .;
 	}
 
+	. = ALIGN(4);
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
 
diff --git a/board/dvlhost/u-boot.lds b/board/dvlhost/u-boot.lds
index 01ec390..897263e 100644
--- a/board/dvlhost/u-boot.lds
+++ b/board/dvlhost/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	}
 	__u_boot_cmd_end =.;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	. = ALIGN (4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/eltec/mhpc/u-boot.lds b/board/eltec/mhpc/u-boot.lds
index fd4e8a5..4385876 100644
--- a/board/eltec/mhpc/u-boot.lds
+++ b/board/eltec/mhpc/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/eltec/mhpc/u-boot.lds.debug b/board/eltec/mhpc/u-boot.lds.debug
index c771102..fd278a4 100644
--- a/board/eltec/mhpc/u-boot.lds.debug
+++ b/board/eltec/mhpc/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/emk/top860/u-boot.lds b/board/emk/top860/u-boot.lds
index fb06648..887ee6b 100644
--- a/board/emk/top860/u-boot.lds
+++ b/board/emk/top860/u-boot.lds
@@ -71,6 +71,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/ep88x/u-boot.lds b/board/ep88x/u-boot.lds
index 332b35a..0c5a03e 100644
--- a/board/ep88x/u-boot.lds
+++ b/board/ep88x/u-boot.lds
@@ -66,6 +66,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/esd/dasa_sim/u-boot.lds b/board/esd/dasa_sim/u-boot.lds
index b15948d..9a3249d 100644
--- a/board/esd/dasa_sim/u-boot.lds
+++ b/board/esd/dasa_sim/u-boot.lds
@@ -77,6 +77,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/esd/pmc440/u-boot-nand.lds b/board/esd/pmc440/u-boot-nand.lds
index 71f0fd2..d4ef403 100644
--- a/board/esd/pmc440/u-boot-nand.lds
+++ b/board/esd/pmc440/u-boot-nand.lds
@@ -106,6 +106,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+		INCLUDE u-boot.lst;
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/esd/tasreg/u-boot.lds b/board/esd/tasreg/u-boot.lds
index f697ccd..b302ba0 100644
--- a/board/esd/tasreg/u-boot.lds
+++ b/board/esd/tasreg/u-boot.lds
@@ -69,6 +69,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/esteem192e/u-boot.lds b/board/esteem192e/u-boot.lds
index 163b83d..83d9ec0 100644
--- a/board/esteem192e/u-boot.lds
+++ b/board/esteem192e/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/etx094/u-boot.lds b/board/etx094/u-boot.lds
index 8465937..a98ee23 100644
--- a/board/etx094/u-boot.lds
+++ b/board/etx094/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/evb64260/u-boot.lds b/board/evb64260/u-boot.lds
index 2d031ef..1eb7f30 100644
--- a/board/evb64260/u-boot.lds
+++ b/board/evb64260/u-boot.lds
@@ -74,6 +74,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/fads/u-boot.lds b/board/fads/u-boot.lds
index 9ea0674..deee255 100644
--- a/board/fads/u-boot.lds
+++ b/board/fads/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/flagadm/u-boot.lds b/board/flagadm/u-boot.lds
index fd4e8a5..4385876 100644
--- a/board/flagadm/u-boot.lds
+++ b/board/flagadm/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/flagadm/u-boot.lds.debug b/board/flagadm/u-boot.lds.debug
index c771102..fd278a4 100644
--- a/board/flagadm/u-boot.lds.debug
+++ b/board/flagadm/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5208evbe/u-boot.lds b/board/freescale/m5208evbe/u-boot.lds
index 6e39be1..e184013 100644
--- a/board/freescale/m5208evbe/u-boot.lds
+++ b/board/freescale/m5208evbe/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m52277evb/u-boot.lds b/board/freescale/m52277evb/u-boot.lds
index 3e9f4c3..6214098 100644
--- a/board/freescale/m52277evb/u-boot.lds
+++ b/board/freescale/m52277evb/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5235evb/u-boot.lds b/board/freescale/m5235evb/u-boot.lds
index d39e734..9b5e5e2 100644
--- a/board/freescale/m5235evb/u-boot.lds
+++ b/board/freescale/m5235evb/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5249evb/u-boot.lds b/board/freescale/m5249evb/u-boot.lds
index c4039ed..d49b0ef 100644
--- a/board/freescale/m5249evb/u-boot.lds
+++ b/board/freescale/m5249evb/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5253demo/u-boot.lds b/board/freescale/m5253demo/u-boot.lds
index cbd2831..3487a8d 100644
--- a/board/freescale/m5253demo/u-boot.lds
+++ b/board/freescale/m5253demo/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5253evbe/u-boot.lds b/board/freescale/m5253evbe/u-boot.lds
index c4039ed..d49b0ef 100644
--- a/board/freescale/m5253evbe/u-boot.lds
+++ b/board/freescale/m5253evbe/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5271evb/u-boot.lds b/board/freescale/m5271evb/u-boot.lds
index 4717036..3a86350 100644
--- a/board/freescale/m5271evb/u-boot.lds
+++ b/board/freescale/m5271evb/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5272c3/u-boot.lds b/board/freescale/m5272c3/u-boot.lds
index c4039ed..d49b0ef 100644
--- a/board/freescale/m5272c3/u-boot.lds
+++ b/board/freescale/m5272c3/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5275evb/u-boot.lds b/board/freescale/m5275evb/u-boot.lds
index 6c2dfe8..b37b06b 100644
--- a/board/freescale/m5275evb/u-boot.lds
+++ b/board/freescale/m5275evb/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5282evb/u-boot.lds b/board/freescale/m5282evb/u-boot.lds
index 4ba1964..3132a55 100644
--- a/board/freescale/m5282evb/u-boot.lds
+++ b/board/freescale/m5282evb/u-boot.lds
@@ -69,6 +69,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m53017evb/u-boot.lds b/board/freescale/m53017evb/u-boot.lds
index 80935f2..662bd31 100644
--- a/board/freescale/m53017evb/u-boot.lds
+++ b/board/freescale/m53017evb/u-boot.lds
@@ -75,6 +75,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5329evb/u-boot.lds b/board/freescale/m5329evb/u-boot.lds
index 40af8bc..fe5be41 100644
--- a/board/freescale/m5329evb/u-boot.lds
+++ b/board/freescale/m5329evb/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5373evb/u-boot.lds b/board/freescale/m5373evb/u-boot.lds
index 19342ac..8ff6fc9 100644
--- a/board/freescale/m5373evb/u-boot.lds
+++ b/board/freescale/m5373evb/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m54451evb/u-boot.lds b/board/freescale/m54451evb/u-boot.lds
index 45924b7..ea0984f 100644
--- a/board/freescale/m54451evb/u-boot.lds
+++ b/board/freescale/m54451evb/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m54455evb/u-boot.lds b/board/freescale/m54455evb/u-boot.lds
index f341449..fe1b58c 100644
--- a/board/freescale/m54455evb/u-boot.lds
+++ b/board/freescale/m54455evb/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m547xevb/u-boot.lds b/board/freescale/m547xevb/u-boot.lds
index 5472689..877eaf2 100644
--- a/board/freescale/m547xevb/u-boot.lds
+++ b/board/freescale/m547xevb/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m548xevb/u-boot.lds b/board/freescale/m548xevb/u-boot.lds
index cf3f38c..33e054b 100644
--- a/board/freescale/m548xevb/u-boot.lds
+++ b/board/freescale/m548xevb/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/mx31ads/u-boot.lds b/board/freescale/mx31ads/u-boot.lds
index 79eb7ac..3db5dc3 100644
--- a/board/freescale/mx31ads/u-boot.lds
+++ b/board/freescale/mx31ads/u-boot.lds
@@ -62,6 +62,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/gaisler/gr_cpci_ax2000/u-boot.lds b/board/gaisler/gr_cpci_ax2000/u-boot.lds
index 87cb8e3..416761b 100644
--- a/board/gaisler/gr_cpci_ax2000/u-boot.lds
+++ b/board/gaisler/gr_cpci_ax2000/u-boot.lds
@@ -90,6 +90,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	.data	:
 	{
 		*(.data)
diff --git a/board/gaisler/gr_ep2s60/u-boot.lds b/board/gaisler/gr_ep2s60/u-boot.lds
index 2fb44aa..43faf26 100644
--- a/board/gaisler/gr_ep2s60/u-boot.lds
+++ b/board/gaisler/gr_ep2s60/u-boot.lds
@@ -90,6 +90,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	.data	:
 	{
 		*(.data)
diff --git a/board/gaisler/gr_xc3s_1500/u-boot.lds b/board/gaisler/gr_xc3s_1500/u-boot.lds
index 8719e97..14c631e 100644
--- a/board/gaisler/gr_xc3s_1500/u-boot.lds
+++ b/board/gaisler/gr_xc3s_1500/u-boot.lds
@@ -90,6 +90,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	.data	:
 	{
 		*(.data)
diff --git a/board/gaisler/grsim/u-boot.lds b/board/gaisler/grsim/u-boot.lds
index 33890b5..4766465 100644
--- a/board/gaisler/grsim/u-boot.lds
+++ b/board/gaisler/grsim/u-boot.lds
@@ -89,6 +89,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	.data	:
 	{
 		*(.data)
diff --git a/board/gaisler/grsim_leon2/u-boot.lds b/board/gaisler/grsim_leon2/u-boot.lds
index cf6e502..cbd4ed6 100644
--- a/board/gaisler/grsim_leon2/u-boot.lds
+++ b/board/gaisler/grsim_leon2/u-boot.lds
@@ -89,6 +89,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	.data	:
 	{
 		*(.data)
diff --git a/board/gen860t/u-boot-flashenv.lds b/board/gen860t/u-boot-flashenv.lds
index 5bb6c62..1302eaa 100644
--- a/board/gen860t/u-boot-flashenv.lds
+++ b/board/gen860t/u-boot-flashenv.lds
@@ -75,6 +75,10 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+		INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/gen860t/u-boot.lds b/board/gen860t/u-boot.lds
index be99b51..de57dd1 100644
--- a/board/gen860t/u-boot.lds
+++ b/board/gen860t/u-boot.lds
@@ -75,6 +75,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/genietv/u-boot.lds b/board/genietv/u-boot.lds
index 1d66a9b..45c56bb 100644
--- a/board/genietv/u-boot.lds
+++ b/board/genietv/u-boot.lds
@@ -84,6 +84,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/genietv/u-boot.lds.debug b/board/genietv/u-boot.lds.debug
index cfa4ef3..4783367 100644
--- a/board/genietv/u-boot.lds.debug
+++ b/board/genietv/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/hermes/u-boot.lds b/board/hermes/u-boot.lds
index ca97115..8b90f6c 100644
--- a/board/hermes/u-boot.lds
+++ b/board/hermes/u-boot.lds
@@ -76,6 +76,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/hermes/u-boot.lds.debug b/board/hermes/u-boot.lds.debug
index 8a197de..53ffee1 100644
--- a/board/hermes/u-boot.lds.debug
+++ b/board/hermes/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/hymod/u-boot.lds b/board/hymod/u-boot.lds
index 1309f20..83d2dd4 100644
--- a/board/hymod/u-boot.lds
+++ b/board/hymod/u-boot.lds
@@ -114,6 +114,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/hymod/u-boot.lds.debug b/board/hymod/u-boot.lds.debug
index 99c48f2..47ad2e7 100644
--- a/board/hymod/u-boot.lds.debug
+++ b/board/hymod/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/icu862/u-boot.lds b/board/icu862/u-boot.lds
index 93c79a6..23d4405 100644
--- a/board/icu862/u-boot.lds
+++ b/board/icu862/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/icu862/u-boot.lds.debug b/board/icu862/u-boot.lds.debug
index 91d3e67..203f704 100644
--- a/board/icu862/u-boot.lds.debug
+++ b/board/icu862/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/idmr/u-boot.lds b/board/idmr/u-boot.lds
index f697ccd..b302ba0 100644
--- a/board/idmr/u-boot.lds
+++ b/board/idmr/u-boot.lds
@@ -69,6 +69,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/incaip/u-boot.lds b/board/incaip/u-boot.lds
index 4a59cea..1b43dac 100644
--- a/board/incaip/u-boot.lds
+++ b/board/incaip/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	  __u_boot_cmd_end = .;
 	}
 
+	. = ALIGN(4);
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
 
diff --git a/board/ip860/u-boot.lds b/board/ip860/u-boot.lds
index d0b60cf..92f78be 100644
--- a/board/ip860/u-boot.lds
+++ b/board/ip860/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/ip860/u-boot.lds.debug b/board/ip860/u-boot.lds.debug
index 2f61b11..4fc4c0f 100644
--- a/board/ip860/u-boot.lds.debug
+++ b/board/ip860/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/ivm/u-boot.lds b/board/ivm/u-boot.lds
index 1e843eb..d0d9a37 100644
--- a/board/ivm/u-boot.lds
+++ b/board/ivm/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/ivm/u-boot.lds.debug b/board/ivm/u-boot.lds.debug
index 732a46f..f4c04b3 100644
--- a/board/ivm/u-boot.lds.debug
+++ b/board/ivm/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/korat/u-boot-F7FC.lds b/board/korat/u-boot-F7FC.lds
index 6a017e3..da33f00 100644
--- a/board/korat/u-boot-F7FC.lds
+++ b/board/korat/u-boot-F7FC.lds
@@ -112,6 +112,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/kup/kup4k/u-boot.lds b/board/kup/kup4k/u-boot.lds
index d0b60cf..92f78be 100644
--- a/board/kup/kup4k/u-boot.lds
+++ b/board/kup/kup4k/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/kup/kup4k/u-boot.lds.debug b/board/kup/kup4k/u-boot.lds.debug
index 4491edd..c76f9d0 100644
--- a/board/kup/kup4k/u-boot.lds.debug
+++ b/board/kup/kup4k/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/kup/kup4x/u-boot.lds b/board/kup/kup4x/u-boot.lds
index d0b60cf..92f78be 100644
--- a/board/kup/kup4x/u-boot.lds
+++ b/board/kup/kup4x/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/kup/kup4x/u-boot.lds.debug b/board/kup/kup4x/u-boot.lds.debug
index 4491edd..c76f9d0 100644
--- a/board/kup/kup4x/u-boot.lds.debug
+++ b/board/kup/kup4x/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/lantec/u-boot.lds b/board/lantec/u-boot.lds
index de0b355..9360839 100644
--- a/board/lantec/u-boot.lds
+++ b/board/lantec/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/lantec/u-boot.lds.debug b/board/lantec/u-boot.lds.debug
index 856a99b..7c1ccb2 100644
--- a/board/lantec/u-boot.lds.debug
+++ b/board/lantec/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/lwmon/u-boot.lds b/board/lwmon/u-boot.lds
index 8bf7324..7dfa157 100644
--- a/board/lwmon/u-boot.lds
+++ b/board/lwmon/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/lwmon/u-boot.lds.debug b/board/lwmon/u-boot.lds.debug
index 2412234..0778758 100644
--- a/board/lwmon/u-boot.lds.debug
+++ b/board/lwmon/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/manroland/uc100/u-boot.lds b/board/manroland/uc100/u-boot.lds
index 731cec9..d291d60 100644
--- a/board/manroland/uc100/u-boot.lds
+++ b/board/manroland/uc100/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/matrix_vision/mvsmr/u-boot.lds b/board/matrix_vision/mvsmr/u-boot.lds
index 57c37de..2445b97 100644
--- a/board/matrix_vision/mvsmr/u-boot.lds
+++ b/board/matrix_vision/mvsmr/u-boot.lds
@@ -78,6 +78,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/mbx8xx/u-boot.lds b/board/mbx8xx/u-boot.lds
index d0b60cf..92f78be 100644
--- a/board/mbx8xx/u-boot.lds
+++ b/board/mbx8xx/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/mbx8xx/u-boot.lds.debug b/board/mbx8xx/u-boot.lds.debug
index a95c47f..7e62932 100644
--- a/board/mbx8xx/u-boot.lds.debug
+++ b/board/mbx8xx/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/micronas/vct/u-boot.lds b/board/micronas/vct/u-boot.lds
index 3a05ef9..4d9fab9 100644
--- a/board/micronas/vct/u-boot.lds
+++ b/board/micronas/vct/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
 
diff --git a/board/mousse/u-boot.lds b/board/mousse/u-boot.lds
index dae2cfc..863468e 100644
--- a/board/mousse/u-boot.lds
+++ b/board/mousse/u-boot.lds
@@ -64,6 +64,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/mpl/pip405/u-boot.lds.debug b/board/mpl/pip405/u-boot.lds.debug
index fcf8ebb..78fe44c 100644
--- a/board/mpl/pip405/u-boot.lds.debug
+++ b/board/mpl/pip405/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/mvblue/u-boot.lds b/board/mvblue/u-boot.lds
index 11624d2..4610de9 100644
--- a/board/mvblue/u-boot.lds
+++ b/board/mvblue/u-boot.lds
@@ -74,6 +74,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/netphone/u-boot.lds b/board/netphone/u-boot.lds
index a949e4f..86bb3b4 100644
--- a/board/netphone/u-boot.lds
+++ b/board/netphone/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/netphone/u-boot.lds.debug b/board/netphone/u-boot.lds.debug
index a001f3f..480feff 100644
--- a/board/netphone/u-boot.lds.debug
+++ b/board/netphone/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/netta/u-boot.lds b/board/netta/u-boot.lds
index a949e4f..86bb3b4 100644
--- a/board/netta/u-boot.lds
+++ b/board/netta/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/netta/u-boot.lds.debug b/board/netta/u-boot.lds.debug
index a001f3f..480feff 100644
--- a/board/netta/u-boot.lds.debug
+++ b/board/netta/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/netta2/u-boot.lds b/board/netta2/u-boot.lds
index a949e4f..86bb3b4 100644
--- a/board/netta2/u-boot.lds
+++ b/board/netta2/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/netta2/u-boot.lds.debug b/board/netta2/u-boot.lds.debug
index a001f3f..480feff 100644
--- a/board/netta2/u-boot.lds.debug
+++ b/board/netta2/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/netvia/u-boot.lds b/board/netvia/u-boot.lds
index a949e4f..86bb3b4 100644
--- a/board/netvia/u-boot.lds
+++ b/board/netvia/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/netvia/u-boot.lds.debug b/board/netvia/u-boot.lds.debug
index 6c7d698..2e3f83e 100644
--- a/board/netvia/u-boot.lds.debug
+++ b/board/netvia/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/nx823/u-boot.lds b/board/nx823/u-boot.lds
index fd4e8a5..4385876 100644
--- a/board/nx823/u-boot.lds
+++ b/board/nx823/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/nx823/u-boot.lds.debug b/board/nx823/u-boot.lds.debug
index c771102..fd278a4 100644
--- a/board/nx823/u-boot.lds.debug
+++ b/board/nx823/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/openrisc/openrisc-generic/u-boot.lds b/board/openrisc/openrisc-generic/u-boot.lds
index 1aed197..bc610bd 100644
--- a/board/openrisc/openrisc-generic/u-boot.lds
+++ b/board/openrisc/openrisc-generic/u-boot.lds
@@ -30,6 +30,11 @@ SECTIONS
 	 .u_boot_cmd : { *(.u_boot_cmd) } > ram
 	 __u_boot_cmd_end = .;
 
+	 . = ALIGN(4);
+	 .u_boot_list : {
+	INCLUDE u-boot.lst;
+	 }
+
 	.rodata : {
 		*(.rodata);
 		*(.rodata.*)
diff --git a/board/pb1x00/u-boot.lds b/board/pb1x00/u-boot.lds
index bd0dee1..522c438 100644
--- a/board/pb1x00/u-boot.lds
+++ b/board/pb1x00/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	  __u_boot_cmd_end = .;
 	}
 
+	. = ALIGN(4);
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
 
diff --git a/board/qemu-mips/u-boot.lds b/board/qemu-mips/u-boot.lds
index 9460b20..c45ccd0 100644
--- a/board/qemu-mips/u-boot.lds
+++ b/board/qemu-mips/u-boot.lds
@@ -62,6 +62,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 	}
 
+	. = ALIGN(4);
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
 
diff --git a/board/qi/qi_lb60/u-boot.lds b/board/qi/qi_lb60/u-boot.lds
index 7317652..e1bb826 100644
--- a/board/qi/qi_lb60/u-boot.lds
+++ b/board/qi/qi_lb60/u-boot.lds
@@ -51,6 +51,11 @@ SECTIONS
 	.u_boot_cmd : { *(.u_boot_cmd) }
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
 
diff --git a/board/quantum/u-boot.lds b/board/quantum/u-boot.lds
index d0b60cf..92f78be 100644
--- a/board/quantum/u-boot.lds
+++ b/board/quantum/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/r360mpi/u-boot.lds b/board/r360mpi/u-boot.lds
index 2fa085a..181468d 100644
--- a/board/r360mpi/u-boot.lds
+++ b/board/r360mpi/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/rbc823/u-boot.lds b/board/rbc823/u-boot.lds
index d943fb6..50c3eee 100644
--- a/board/rbc823/u-boot.lds
+++ b/board/rbc823/u-boot.lds
@@ -81,6 +81,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/renesas/sh7757lcr/u-boot.lds b/board/renesas/sh7757lcr/u-boot.lds
index 38ebe88..cff6ff5 100644
--- a/board/renesas/sh7757lcr/u-boot.lds
+++ b/board/renesas/sh7757lcr/u-boot.lds
@@ -85,6 +85,10 @@ SECTIONS
 	}
 	PROVIDE (__u_boot_cmd_end = .);
 
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	PROVIDE (reloc_dst_end = .);
 	/* _reloc_dst_end = .; */
 
diff --git a/board/rsdproto/u-boot.lds b/board/rsdproto/u-boot.lds
index a729c52..ee651d4 100644
--- a/board/rsdproto/u-boot.lds
+++ b/board/rsdproto/u-boot.lds
@@ -101,6 +101,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/samsung/smdk5250/smdk5250-uboot-spl.lds b/board/samsung/smdk5250/smdk5250-uboot-spl.lds
index d78dd77..c6e6414 100644
--- a/board/samsung/smdk5250/smdk5250-uboot-spl.lds
+++ b/board/samsung/smdk5250/smdk5250-uboot-spl.lds
@@ -48,6 +48,11 @@ SECTIONS
 	.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
 	. = ALIGN(4);
 
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	} >.sram
+	. = ALIGN(4);
+
 	/* Align .machine_param on 256 byte boundary for easier searching */
 	.machine_param ALIGN(0x100) : { *(.machine_param) } >.sram
 	. = ALIGN(4);
diff --git a/board/samsung/smdk6400/u-boot-nand.lds b/board/samsung/smdk6400/u-boot-nand.lds
index f162815..27693f0e 100644
--- a/board/samsung/smdk6400/u-boot-nand.lds
+++ b/board/samsung/smdk6400/u-boot-nand.lds
@@ -51,7 +51,12 @@ SECTIONS
 	.u_boot_cmd : { *(.u_boot_cmd) }
 	__u_boot_cmd_end = .;
 
-	. = ALIGN(4);
+	. = align(4);
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
+	. = align(4);
 	.mmudata : { *(.mmudata) }
 
 	. = ALIGN(4);
diff --git a/board/sandburst/karef/u-boot.lds.debug b/board/sandburst/karef/u-boot.lds.debug
index 31746e3..586dc95 100644
--- a/board/sandburst/karef/u-boot.lds.debug
+++ b/board/sandburst/karef/u-boot.lds.debug
@@ -119,6 +119,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/sandburst/metrobox/u-boot.lds.debug b/board/sandburst/metrobox/u-boot.lds.debug
index 4922bd2..48f5be0 100644
--- a/board/sandburst/metrobox/u-boot.lds.debug
+++ b/board/sandburst/metrobox/u-boot.lds.debug
@@ -119,6 +119,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/sandpoint/u-boot.lds b/board/sandpoint/u-boot.lds
index e382fd1..a4421a7 100644
--- a/board/sandpoint/u-boot.lds
+++ b/board/sandpoint/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/siemens/IAD210/u-boot.lds b/board/siemens/IAD210/u-boot.lds
index 0e78e4f..3532d3b 100644
--- a/board/siemens/IAD210/u-boot.lds
+++ b/board/siemens/IAD210/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/sixnet/u-boot.lds b/board/sixnet/u-boot.lds
index 02d1980..4153927 100644
--- a/board/sixnet/u-boot.lds
+++ b/board/sixnet/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/snmc/qs850/u-boot.lds b/board/snmc/qs850/u-boot.lds
index 9ab248a..039597e 100644
--- a/board/snmc/qs850/u-boot.lds
+++ b/board/snmc/qs850/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/snmc/qs860t/u-boot.lds b/board/snmc/qs860t/u-boot.lds
index d0b60cf..92f78be 100644
--- a/board/snmc/qs860t/u-boot.lds
+++ b/board/snmc/qs860t/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/spc1920/u-boot.lds b/board/spc1920/u-boot.lds
index d0b60cf..92f78be 100644
--- a/board/spc1920/u-boot.lds
+++ b/board/spc1920/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/spd8xx/u-boot.lds b/board/spd8xx/u-boot.lds
index a84e7fd..ada68f1 100644
--- a/board/spd8xx/u-boot.lds
+++ b/board/spd8xx/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/spd8xx/u-boot.lds.debug b/board/spd8xx/u-boot.lds.debug
index a95c47f..7e62932 100644
--- a/board/spd8xx/u-boot.lds.debug
+++ b/board/spd8xx/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/stx/stxxtc/u-boot.lds b/board/stx/stxxtc/u-boot.lds
index a949e4f..86bb3b4 100644
--- a/board/stx/stxxtc/u-boot.lds
+++ b/board/stx/stxxtc/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/stx/stxxtc/u-boot.lds.debug b/board/stx/stxxtc/u-boot.lds.debug
index a001f3f..480feff 100644
--- a/board/stx/stxxtc/u-boot.lds.debug
+++ b/board/stx/stxxtc/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/svm_sc8xx/u-boot.lds b/board/svm_sc8xx/u-boot.lds
index c65f022..af83956 100644
--- a/board/svm_sc8xx/u-boot.lds
+++ b/board/svm_sc8xx/u-boot.lds
@@ -87,6 +87,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/tqc/tqm8xx/u-boot.lds b/board/tqc/tqm8xx/u-boot.lds
index 4f08be6..226cfc1 100644
--- a/board/tqc/tqm8xx/u-boot.lds
+++ b/board/tqc/tqm8xx/u-boot.lds
@@ -87,6 +87,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/v37/u-boot.lds b/board/v37/u-boot.lds
index e62d53d..feb3870 100644
--- a/board/v37/u-boot.lds
+++ b/board/v37/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/vpac270/u-boot-spl.lds b/board/vpac270/u-boot-spl.lds
index 1958c2f..b3551dd 100644
--- a/board/vpac270/u-boot-spl.lds
+++ b/board/vpac270/u-boot-spl.lds
@@ -57,6 +57,10 @@ SECTIONS
 		*(.data)
 	}
 
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
 	. = ALIGN(4);
 
 	.rel.dyn : {
diff --git a/board/w7o/u-boot.lds.debug b/board/w7o/u-boot.lds.debug
index 1c67b30..520acd5 100644
--- a/board/w7o/u-boot.lds.debug
+++ b/board/w7o/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/westel/amx860/u-boot.lds b/board/westel/amx860/u-boot.lds
index 3470b43..e642a3a 100644
--- a/board/westel/amx860/u-boot.lds
+++ b/board/westel/amx860/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/westel/amx860/u-boot.lds.debug b/board/westel/amx860/u-boot.lds.debug
index 91d3e67..203f704 100644
--- a/board/westel/amx860/u-boot.lds.debug
+++ b/board/westel/amx860/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/xes/xpedite1000/u-boot.lds.debug b/board/xes/xpedite1000/u-boot.lds.debug
index e2e66ae..d685738 100644
--- a/board/xes/xpedite1000/u-boot.lds.debug
+++ b/board/xes/xpedite1000/u-boot.lds.debug
@@ -115,6 +115,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	INCLUDE u-boot.lst;
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/examples/standalone/sparc.lds b/examples/standalone/sparc.lds
index 9733daa..646b80f 100644
--- a/examples/standalone/sparc.lds
+++ b/examples/standalone/sparc.lds
@@ -46,6 +46,7 @@ SECTIONS
 	{
 		*(.data)
 	}
+
 	. = ALIGN(4);
 	__data_end = .;
 
diff --git a/nand_spl/board/freescale/mx31pdk/u-boot.lds b/nand_spl/board/freescale/mx31pdk/u-boot.lds
index d2b08f6..363690f 100644
--- a/nand_spl/board/freescale/mx31pdk/u-boot.lds
+++ b/nand_spl/board/freescale/mx31pdk/u-boot.lds
@@ -51,6 +51,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+		INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/nand_spl/board/karo/tx25/u-boot.lds b/nand_spl/board/karo/tx25/u-boot.lds
index d2b08f6..8332710 100644
--- a/nand_spl/board/karo/tx25/u-boot.lds
+++ b/nand_spl/board/karo/tx25/u-boot.lds
@@ -51,6 +51,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/nand_spl/board/samsung/smdk6400/u-boot.lds b/nand_spl/board/samsung/smdk6400/u-boot.lds
index 567f635..7ceae32 100644
--- a/nand_spl/board/samsung/smdk6400/u-boot.lds
+++ b/nand_spl/board/samsung/smdk6400/u-boot.lds
@@ -55,6 +55,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	INCLUDE u-boot.lst;
+	}
+
+	. = ALIGN(4);
 
 	.rel.dyn : {
 	__rel_dyn_start = .;
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 5/5 V2] common: Discard the __u_boot_cmd section
  2012-09-30  0:17 ` [U-Boot] [PATCH 5/5] common: Discard the __u_boot_cmd section Marek Vasut
  2012-10-02 23:43   ` Joe Hershberger
  2012-10-03 14:56   ` Daniel Schwierzeck
@ 2012-10-03 20:50   ` Marek Vasut
  2 siblings, 0 replies; 48+ messages in thread
From: Marek Vasut @ 2012-10-03 20:50 UTC (permalink / raw)
  To: u-boot

The command declaration now uses the new LG-array method to generate
list of commands. Thus the __u_boot_cmd section is now superseded and
redundant and therefore can be removed. Also, remove externed symbols
associated with this section from include/command.h .

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>
---
 arch/arm/cpu/arm920t/ep93xx/u-boot.lds           |    3 ---
 arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds        |    3 ---
 arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds      |    3 ---
 arch/arm/cpu/ixp/u-boot.lds                      |    3 ---
 arch/arm/cpu/u-boot.lds                          |    3 ---
 arch/avr32/cpu/u-boot.lds                        |    5 -----
 arch/blackfin/cpu/u-boot.lds                     |    6 ------
 arch/microblaze/cpu/u-boot.lds                   |    8 --------
 arch/nds32/cpu/n1213/u-boot.lds                  |    3 ---
 arch/nios2/cpu/u-boot.lds                        |    7 -------
 arch/powerpc/cpu/74xx_7xx/u-boot.lds             |    3 ---
 arch/powerpc/cpu/mpc512x/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc5xx/u-boot.lds               |    3 ---
 arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds |    3 ---
 arch/powerpc/cpu/mpc5xxx/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc8220/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc824x/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc8260/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc83xx/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc85xx/u-boot-nand.lds         |    3 ---
 arch/powerpc/cpu/mpc85xx/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc86xx/u-boot.lds              |    3 ---
 arch/powerpc/cpu/ppc4xx/u-boot.lds               |    3 ---
 arch/sandbox/cpu/u-boot.lds                      |    3 ---
 arch/sh/cpu/sh2/u-boot.lds                       |    7 -------
 arch/sh/cpu/sh3/u-boot.lds                       |    7 -------
 arch/sh/cpu/sh4/u-boot.lds                       |    7 -------
 arch/x86/cpu/u-boot.lds                          |    4 ----
 board/BuS/eb_cpu5282/u-boot.lds                  |    3 ---
 board/LEOX/elpt860/u-boot.lds                    |    3 ---
 board/RPXClassic/u-boot.lds                      |    3 ---
 board/RPXClassic/u-boot.lds.debug                |    3 ---
 board/RPXlite/u-boot.lds                         |    3 ---
 board/RPXlite/u-boot.lds.debug                   |    3 ---
 board/RPXlite_dw/u-boot.lds                      |    3 ---
 board/RPXlite_dw/u-boot.lds.debug                |    3 ---
 board/RRvision/u-boot.lds                        |    3 ---
 board/actux1/u-boot.lds                          |    5 -----
 board/actux2/u-boot.lds                          |    5 -----
 board/actux3/u-boot.lds                          |    5 -----
 board/adder/u-boot.lds                           |    3 ---
 board/altera/nios2-generic/u-boot.lds            |    7 -------
 board/amcc/acadia/u-boot-nand.lds                |    3 ---
 board/amcc/bamboo/u-boot-nand.lds                |    3 ---
 board/amcc/canyonlands/u-boot-nand.lds           |    3 ---
 board/amcc/kilauea/u-boot-nand.lds               |    3 ---
 board/amcc/sequoia/u-boot-nand.lds               |    3 ---
 board/amcc/sequoia/u-boot-ram.lds                |    3 ---
 board/astro/mcf5373l/u-boot.lds                  |    3 ---
 board/c2mon/u-boot.lds                           |    3 ---
 board/c2mon/u-boot.lds.debug                     |    3 ---
 board/cobra5272/u-boot.lds                       |    3 ---
 board/cogent/u-boot.lds                          |    3 ---
 board/cogent/u-boot.lds.debug                    |    3 ---
 board/cray/L1/u-boot.lds.debug                   |    3 ---
 board/dave/PPChameleonEVB/u-boot.lds             |    3 ---
 board/dbau1x00/u-boot.lds                        |    6 ------
 board/dvlhost/u-boot.lds                         |    5 -----
 board/eltec/mhpc/u-boot.lds                      |    3 ---
 board/eltec/mhpc/u-boot.lds.debug                |    3 ---
 board/emk/top860/u-boot.lds                      |    3 ---
 board/ep88x/u-boot.lds                           |    3 ---
 board/esd/dasa_sim/u-boot.lds                    |    3 ---
 board/esd/pmc440/u-boot-nand.lds                 |    3 ---
 board/esd/tasreg/u-boot.lds                      |    3 ---
 board/esteem192e/u-boot.lds                      |    3 ---
 board/etx094/u-boot.lds                          |    3 ---
 board/evb64260/u-boot.lds                        |    3 ---
 board/fads/u-boot.lds                            |    3 ---
 board/flagadm/u-boot.lds                         |    3 ---
 board/flagadm/u-boot.lds.debug                   |    3 ---
 board/freescale/m5208evbe/u-boot.lds             |    3 ---
 board/freescale/m52277evb/u-boot.lds             |    3 ---
 board/freescale/m5235evb/u-boot.lds              |    3 ---
 board/freescale/m5249evb/u-boot.lds              |    3 ---
 board/freescale/m5253demo/u-boot.lds             |    3 ---
 board/freescale/m5253evbe/u-boot.lds             |    3 ---
 board/freescale/m5271evb/u-boot.lds              |    3 ---
 board/freescale/m5272c3/u-boot.lds               |    3 ---
 board/freescale/m5275evb/u-boot.lds              |    3 ---
 board/freescale/m5282evb/u-boot.lds              |    3 ---
 board/freescale/m53017evb/u-boot.lds             |    3 ---
 board/freescale/m5329evb/u-boot.lds              |    3 ---
 board/freescale/m5373evb/u-boot.lds              |    3 ---
 board/freescale/m54451evb/u-boot.lds             |    3 ---
 board/freescale/m54455evb/u-boot.lds             |    3 ---
 board/freescale/m547xevb/u-boot.lds              |    3 ---
 board/freescale/m548xevb/u-boot.lds              |    3 ---
 board/freescale/mx31ads/u-boot.lds               |    3 ---
 board/gaisler/gr_cpci_ax2000/u-boot.lds          |    4 ----
 board/gaisler/gr_ep2s60/u-boot.lds               |    4 ----
 board/gaisler/gr_xc3s_1500/u-boot.lds            |    4 ----
 board/gaisler/grsim/u-boot.lds                   |    4 ----
 board/gaisler/grsim_leon2/u-boot.lds             |    4 ----
 board/gen860t/u-boot-flashenv.lds                |    3 ---
 board/gen860t/u-boot.lds                         |    3 ---
 board/genietv/u-boot.lds                         |    3 ---
 board/genietv/u-boot.lds.debug                   |    3 ---
 board/hermes/u-boot.lds                          |    3 ---
 board/hermes/u-boot.lds.debug                    |    3 ---
 board/hymod/u-boot.lds                           |    3 ---
 board/hymod/u-boot.lds.debug                     |    3 ---
 board/icu862/u-boot.lds                          |    3 ---
 board/icu862/u-boot.lds.debug                    |    3 ---
 board/idmr/u-boot.lds                            |    3 ---
 board/incaip/u-boot.lds                          |    6 ------
 board/ip860/u-boot.lds                           |    3 ---
 board/ip860/u-boot.lds.debug                     |    3 ---
 board/ivm/u-boot.lds                             |    3 ---
 board/ivm/u-boot.lds.debug                       |    3 ---
 board/korat/u-boot-F7FC.lds                      |    3 ---
 board/kup/kup4k/u-boot.lds                       |    3 ---
 board/kup/kup4k/u-boot.lds.debug                 |    3 ---
 board/kup/kup4x/u-boot.lds                       |    3 ---
 board/kup/kup4x/u-boot.lds.debug                 |    3 ---
 board/lantec/u-boot.lds                          |    3 ---
 board/lantec/u-boot.lds.debug                    |    3 ---
 board/lwmon/u-boot.lds                           |    3 ---
 board/lwmon/u-boot.lds.debug                     |    3 ---
 board/manroland/uc100/u-boot.lds                 |    3 ---
 board/matrix_vision/mvsmr/u-boot.lds             |    3 ---
 board/mbx8xx/u-boot.lds                          |    3 ---
 board/mbx8xx/u-boot.lds.debug                    |    3 ---
 board/micronas/vct/u-boot.lds                    |    7 -------
 board/mousse/u-boot.lds                          |    3 ---
 board/mousse/u-boot.lds.ram                      |    3 ---
 board/mousse/u-boot.lds.rom                      |    3 ---
 board/mpl/pip405/u-boot.lds.debug                |    3 ---
 board/mvblue/u-boot.lds                          |    3 ---
 board/netphone/u-boot.lds                        |    3 ---
 board/netphone/u-boot.lds.debug                  |    3 ---
 board/netta/u-boot.lds                           |    3 ---
 board/netta/u-boot.lds.debug                     |    3 ---
 board/netta2/u-boot.lds                          |    3 ---
 board/netta2/u-boot.lds.debug                    |    3 ---
 board/netvia/u-boot.lds                          |    3 ---
 board/netvia/u-boot.lds.debug                    |    3 ---
 board/nx823/u-boot.lds                           |    3 ---
 board/nx823/u-boot.lds.debug                     |    3 ---
 board/openrisc/openrisc-generic/u-boot.lds       |    3 ---
 board/pb1x00/u-boot.lds                          |    6 ------
 board/qemu-mips/u-boot.lds                       |    7 -------
 board/qi/qi_lb60/u-boot.lds                      |    3 ---
 board/quantum/u-boot.lds                         |    3 ---
 board/r360mpi/u-boot.lds                         |    3 ---
 board/rbc823/u-boot.lds                          |    3 ---
 board/renesas/sh7757lcr/u-boot.lds               |    7 -------
 board/rsdproto/u-boot.lds                        |    3 ---
 board/samsung/smdk6400/u-boot-nand.lds           |    3 ---
 board/sandburst/karef/u-boot.lds.debug           |    3 ---
 board/sandburst/metrobox/u-boot.lds.debug        |    3 ---
 board/sandpoint/u-boot.lds                       |    3 ---
 board/siemens/IAD210/u-boot.lds                  |    3 ---
 board/sixnet/u-boot.lds                          |    3 ---
 board/snmc/qs850/u-boot.lds                      |    3 ---
 board/snmc/qs860t/u-boot.lds                     |    3 ---
 board/spc1920/u-boot.lds                         |    3 ---
 board/spd8xx/u-boot.lds                          |    3 ---
 board/spd8xx/u-boot.lds.debug                    |    3 ---
 board/stx/stxxtc/u-boot.lds                      |    3 ---
 board/stx/stxxtc/u-boot.lds.debug                |    3 ---
 board/svm_sc8xx/u-boot.lds                       |    3 ---
 board/tqc/tqm8xx/u-boot.lds                      |    3 ---
 board/v37/u-boot.lds                             |    3 ---
 board/w7o/u-boot.lds.debug                       |    3 ---
 board/westel/amx860/u-boot.lds                   |    3 ---
 board/westel/amx860/u-boot.lds.debug             |    3 ---
 board/xes/xpedite1000/u-boot.lds.debug           |    3 ---
 include/command.h                                |    2 --
 nand_spl/board/freescale/mx31pdk/u-boot.lds      |    3 ---
 nand_spl/board/karo/tx25/u-boot.lds              |    3 ---
 nand_spl/board/samsung/smdk6400/u-boot.lds       |    3 ---
 172 files changed, 580 deletions(-)

V2: Remove only the u_boot_cmd section on mips boards, preserve
    the u_boot_list section

diff --git a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
index 6ad9169..7da65ab 100644
--- a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
+++ b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
@@ -48,9 +48,6 @@ SECTIONS
 	.got : { *(.got) }
 
 	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
index dd12607..2a9b150 100644
--- a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
+++ b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
@@ -50,9 +50,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	.u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
index 65f80c2..abb8aa1 100644
--- a/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
+++ b/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
@@ -50,9 +50,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	.u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/arch/arm/cpu/ixp/u-boot.lds b/arch/arm/cpu/ixp/u-boot.lds
index e08f10b..e444619 100644
--- a/arch/arm/cpu/ixp/u-boot.lds
+++ b/arch/arm/cpu/ixp/u-boot.lds
@@ -46,9 +46,6 @@ SECTIONS
 	. = ALIGN(4);
 
 	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/arm/cpu/u-boot.lds b/arch/arm/cpu/u-boot.lds
index 18eaf73..71adb6c 100644
--- a/arch/arm/cpu/u-boot.lds
+++ b/arch/arm/cpu/u-boot.lds
@@ -49,9 +49,6 @@ SECTIONS
 	. = ALIGN(4);
 
 	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/avr32/cpu/u-boot.lds b/arch/avr32/cpu/u-boot.lds
index 5aef19b..d035502 100644
--- a/arch/avr32/cpu/u-boot.lds
+++ b/arch/avr32/cpu/u-boot.lds
@@ -47,11 +47,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : {
-		KEEP(*(.u_boot_cmd))
-	}
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/blackfin/cpu/u-boot.lds b/arch/blackfin/cpu/u-boot.lds
index be70d81..0c87618 100644
--- a/arch/blackfin/cpu/u-boot.lds
+++ b/arch/blackfin/cpu/u-boot.lds
@@ -112,12 +112,6 @@ SECTIONS
 		CONSTRUCTORS
 	} >ram_data
 
-	.u_boot_cmd :
-	{
-		___u_boot_cmd_start = .;
-		*(.u_boot_cmd)
-		___u_boot_cmd_end = .;
-	} >ram_data
 
 	.u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/arch/microblaze/cpu/u-boot.lds b/arch/microblaze/cpu/u-boot.lds
index fca0c52..b8c233c 100644
--- a/arch/microblaze/cpu/u-boot.lds
+++ b/arch/microblaze/cpu/u-boot.lds
@@ -50,14 +50,6 @@ SECTIONS
 		__data_end = .;
 	}
 
-	.u_boot_cmd ALIGN(0x4):
-	{
-		. = .;
-		__u_boot_cmd_start = .;
-		*(.u_boot_cmd)
-		__u_boot_cmd_end = .;
-	}
-
 	. = ALIGN(4);
 	.u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/arch/nds32/cpu/n1213/u-boot.lds b/arch/nds32/cpu/n1213/u-boot.lds
index 48d5b90..c46d8bb 100644
--- a/arch/nds32/cpu/n1213/u-boot.lds
+++ b/arch/nds32/cpu/n1213/u-boot.lds
@@ -52,9 +52,6 @@ SECTIONS
 	}
 
 	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/nios2/cpu/u-boot.lds b/arch/nios2/cpu/u-boot.lds
index 33cd0e2..4fd2fb0 100644
--- a/arch/nios2/cpu/u-boot.lds
+++ b/arch/nios2/cpu/u-boot.lds
@@ -45,13 +45,6 @@ SECTIONS
 	 * the initialization code relocates the command table as
 	 * well -- admittedly, this is just pure laziness ;-)
 	 */
-	__u_boot_cmd_start = .;
-	.u_boot_cmd :
-	{
-	  *(.u_boot_cmd)
-	}
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/powerpc/cpu/74xx_7xx/u-boot.lds b/arch/powerpc/cpu/74xx_7xx/u-boot.lds
index 049ae63..0575b68 100644
--- a/arch/powerpc/cpu/74xx_7xx/u-boot.lds
+++ b/arch/powerpc/cpu/74xx_7xx/u-boot.lds
@@ -62,9 +62,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc512x/u-boot.lds b/arch/powerpc/cpu/mpc512x/u-boot.lds
index d93c097..4056af4 100644
--- a/arch/powerpc/cpu/mpc512x/u-boot.lds
+++ b/arch/powerpc/cpu/mpc512x/u-boot.lds
@@ -57,9 +57,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc5xx/u-boot.lds b/arch/powerpc/cpu/mpc5xx/u-boot.lds
index 2fbc379..7d1fc30 100644
--- a/arch/powerpc/cpu/mpc5xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc5xx/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds b/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
index 1574767..6f66ee0 100644
--- a/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
+++ b/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	INCLUDE u-boot.lst;
diff --git a/arch/powerpc/cpu/mpc5xxx/u-boot.lds b/arch/powerpc/cpu/mpc5xxx/u-boot.lds
index 52755e6..0d0fe22 100644
--- a/arch/powerpc/cpu/mpc5xxx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc5xxx/u-boot.lds
@@ -60,9 +60,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc8220/u-boot.lds b/arch/powerpc/cpu/mpc8220/u-boot.lds
index 222f907..db586ab 100644
--- a/arch/powerpc/cpu/mpc8220/u-boot.lds
+++ b/arch/powerpc/cpu/mpc8220/u-boot.lds
@@ -59,9 +59,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc824x/u-boot.lds b/arch/powerpc/cpu/mpc824x/u-boot.lds
index bb16926..c2f1469 100644
--- a/arch/powerpc/cpu/mpc824x/u-boot.lds
+++ b/arch/powerpc/cpu/mpc824x/u-boot.lds
@@ -60,9 +60,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc8260/u-boot.lds b/arch/powerpc/cpu/mpc8260/u-boot.lds
index 722d7fb..50f1713 100644
--- a/arch/powerpc/cpu/mpc8260/u-boot.lds
+++ b/arch/powerpc/cpu/mpc8260/u-boot.lds
@@ -59,9 +59,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc83xx/u-boot.lds b/arch/powerpc/cpu/mpc83xx/u-boot.lds
index 416bc07..be604a1 100644
--- a/arch/powerpc/cpu/mpc83xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc83xx/u-boot.lds
@@ -58,9 +58,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds b/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
index 5563b5f..39886b5 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
@@ -70,9 +70,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	INCLUDE u-boot.lst;
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot.lds b/arch/powerpc/cpu/mpc85xx/u-boot.lds
index 009214b..4c26da9 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot.lds
@@ -77,9 +77,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc86xx/u-boot.lds b/arch/powerpc/cpu/mpc86xx/u-boot.lds
index e3b19d4..19b36f9 100644
--- a/arch/powerpc/cpu/mpc86xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc86xx/u-boot.lds
@@ -64,9 +64,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/ppc4xx/u-boot.lds b/arch/powerpc/cpu/ppc4xx/u-boot.lds
index 005ec61..6907b18 100644
--- a/arch/powerpc/cpu/ppc4xx/u-boot.lds
+++ b/arch/powerpc/cpu/ppc4xx/u-boot.lds
@@ -78,9 +78,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/sandbox/cpu/u-boot.lds b/arch/sandbox/cpu/u-boot.lds
index 0a37657..dba1a32 100644
--- a/arch/sandbox/cpu/u-boot.lds
+++ b/arch/sandbox/cpu/u-boot.lds
@@ -24,9 +24,6 @@
 
 SECTIONS
 {
-	__u_boot_cmd_start = .;
-	_u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/sh/cpu/sh2/u-boot.lds b/arch/sh/cpu/sh2/u-boot.lds
index 2331152..41a783d 100644
--- a/arch/sh/cpu/sh2/u-boot.lds
+++ b/arch/sh/cpu/sh2/u-boot.lds
@@ -72,13 +72,6 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
 
 	.u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/arch/sh/cpu/sh3/u-boot.lds b/arch/sh/cpu/sh3/u-boot.lds
index 9d99434..1c7cc80 100644
--- a/arch/sh/cpu/sh3/u-boot.lds
+++ b/arch/sh/cpu/sh3/u-boot.lds
@@ -78,13 +78,6 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
 
 	.u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/arch/sh/cpu/sh4/u-boot.lds b/arch/sh/cpu/sh4/u-boot.lds
index 8702c9e..70e7c54 100644
--- a/arch/sh/cpu/sh4/u-boot.lds
+++ b/arch/sh/cpu/sh4/u-boot.lds
@@ -75,13 +75,6 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
 
 	.u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/arch/x86/cpu/u-boot.lds b/arch/x86/cpu/u-boot.lds
index aa2b653..7c1eb6a 100644
--- a/arch/x86/cpu/u-boot.lds
+++ b/arch/x86/cpu/u-boot.lds
@@ -33,10 +33,6 @@ SECTIONS
 	.text  : { *(.text*); }
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/BuS/eb_cpu5282/u-boot.lds b/board/BuS/eb_cpu5282/u-boot.lds
index 3132a55..2d27f06 100644
--- a/board/BuS/eb_cpu5282/u-boot.lds
+++ b/board/BuS/eb_cpu5282/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/LEOX/elpt860/u-boot.lds b/board/LEOX/elpt860/u-boot.lds
index d85943c..5aafcfb 100644
--- a/board/LEOX/elpt860/u-boot.lds
+++ b/board/LEOX/elpt860/u-boot.lds
@@ -86,9 +86,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXClassic/u-boot.lds b/board/RPXClassic/u-boot.lds
index 92f78be..ca421d5 100644
--- a/board/RPXClassic/u-boot.lds
+++ b/board/RPXClassic/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXClassic/u-boot.lds.debug b/board/RPXClassic/u-boot.lds.debug
index 47ad2e7..888cbc5 100644
--- a/board/RPXClassic/u-boot.lds.debug
+++ b/board/RPXClassic/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXlite/u-boot.lds b/board/RPXlite/u-boot.lds
index 92f78be..ca421d5 100644
--- a/board/RPXlite/u-boot.lds
+++ b/board/RPXlite/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXlite/u-boot.lds.debug b/board/RPXlite/u-boot.lds.debug
index 47ad2e7..888cbc5 100644
--- a/board/RPXlite/u-boot.lds.debug
+++ b/board/RPXlite/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXlite_dw/u-boot.lds b/board/RPXlite_dw/u-boot.lds
index 92f78be..ca421d5 100644
--- a/board/RPXlite_dw/u-boot.lds
+++ b/board/RPXlite_dw/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXlite_dw/u-boot.lds.debug b/board/RPXlite_dw/u-boot.lds.debug
index c76f9d0..f99c742 100644
--- a/board/RPXlite_dw/u-boot.lds.debug
+++ b/board/RPXlite_dw/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RRvision/u-boot.lds b/board/RRvision/u-boot.lds
index 3c2c708..3c42391 100644
--- a/board/RRvision/u-boot.lds
+++ b/board/RRvision/u-boot.lds
@@ -71,9 +71,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/actux1/u-boot.lds b/board/actux1/u-boot.lds
index e5d59db..9ae694d 100644
--- a/board/actux1/u-boot.lds
+++ b/board/actux1/u-boot.lds
@@ -54,11 +54,6 @@ SECTIONS
 		*(.got)
 	}
 	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/actux2/u-boot.lds b/board/actux2/u-boot.lds
index 09bb7ab..879bb07 100644
--- a/board/actux2/u-boot.lds
+++ b/board/actux2/u-boot.lds
@@ -54,11 +54,6 @@ SECTIONS
 		*(.got)
 	}
 	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/actux3/u-boot.lds b/board/actux3/u-boot.lds
index 71b6791..843fc73 100644
--- a/board/actux3/u-boot.lds
+++ b/board/actux3/u-boot.lds
@@ -54,11 +54,6 @@ SECTIONS
 		*(.got)
 	}
 	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/adder/u-boot.lds b/board/adder/u-boot.lds
index 62afcb80..d6d3bd5 100644
--- a/board/adder/u-boot.lds
+++ b/board/adder/u-boot.lds
@@ -62,9 +62,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/altera/nios2-generic/u-boot.lds b/board/altera/nios2-generic/u-boot.lds
index 764cc7d..13661c7 100644
--- a/board/altera/nios2-generic/u-boot.lds
+++ b/board/altera/nios2-generic/u-boot.lds
@@ -46,13 +46,6 @@ SECTIONS
 	 * the initialization code relocates the command table as
 	 * well -- admittedly, this is just pure laziness ;-)
 	 */
-	__u_boot_cmd_start = .;
-	.u_boot_cmd :
-	{
-	  *(.u_boot_cmd)
-	}
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/amcc/acadia/u-boot-nand.lds b/board/amcc/acadia/u-boot-nand.lds
index bc0356b..9e28604 100644
--- a/board/amcc/acadia/u-boot-nand.lds
+++ b/board/amcc/acadia/u-boot-nand.lds
@@ -72,9 +72,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	INCLUDE u-boot.lst;
diff --git a/board/amcc/bamboo/u-boot-nand.lds b/board/amcc/bamboo/u-boot-nand.lds
index 2382ea9..b9f9de1 100644
--- a/board/amcc/bamboo/u-boot-nand.lds
+++ b/board/amcc/bamboo/u-boot-nand.lds
@@ -73,9 +73,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	INCLUDE u-boot.lst;
diff --git a/board/amcc/canyonlands/u-boot-nand.lds b/board/amcc/canyonlands/u-boot-nand.lds
index 0816387..001fa7f 100644
--- a/board/amcc/canyonlands/u-boot-nand.lds
+++ b/board/amcc/canyonlands/u-boot-nand.lds
@@ -73,9 +73,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	INCLUDE u-boot.lst;
diff --git a/board/amcc/kilauea/u-boot-nand.lds b/board/amcc/kilauea/u-boot-nand.lds
index bc0356b..9e28604 100644
--- a/board/amcc/kilauea/u-boot-nand.lds
+++ b/board/amcc/kilauea/u-boot-nand.lds
@@ -72,9 +72,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	INCLUDE u-boot.lst;
diff --git a/board/amcc/sequoia/u-boot-nand.lds b/board/amcc/sequoia/u-boot-nand.lds
index 94234de..163980e 100644
--- a/board/amcc/sequoia/u-boot-nand.lds
+++ b/board/amcc/sequoia/u-boot-nand.lds
@@ -73,9 +73,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	INCLUDE u-boot.lst;
diff --git a/board/amcc/sequoia/u-boot-ram.lds b/board/amcc/sequoia/u-boot-ram.lds
index 0f594f5..568529e 100644
--- a/board/amcc/sequoia/u-boot-ram.lds
+++ b/board/amcc/sequoia/u-boot-ram.lds
@@ -64,9 +64,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	INCLUDE u-boot.lst;
diff --git a/board/astro/mcf5373l/u-boot.lds b/board/astro/mcf5373l/u-boot.lds
index d800805..9242af2 100644
--- a/board/astro/mcf5373l/u-boot.lds
+++ b/board/astro/mcf5373l/u-boot.lds
@@ -109,9 +109,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/c2mon/u-boot.lds b/board/c2mon/u-boot.lds
index a170f06..5652797 100644
--- a/board/c2mon/u-boot.lds
+++ b/board/c2mon/u-boot.lds
@@ -74,9 +74,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/c2mon/u-boot.lds.debug b/board/c2mon/u-boot.lds.debug
index fd278a4..8bbe86a 100644
--- a/board/c2mon/u-boot.lds.debug
+++ b/board/c2mon/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/cobra5272/u-boot.lds b/board/cobra5272/u-boot.lds
index d49b0ef..897847e 100644
--- a/board/cobra5272/u-boot.lds
+++ b/board/cobra5272/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/cogent/u-boot.lds b/board/cogent/u-boot.lds
index 3a3d988..723c26f 100644
--- a/board/cogent/u-boot.lds
+++ b/board/cogent/u-boot.lds
@@ -70,9 +70,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/cogent/u-boot.lds.debug b/board/cogent/u-boot.lds.debug
index 47ad2e7..888cbc5 100644
--- a/board/cogent/u-boot.lds.debug
+++ b/board/cogent/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/cray/L1/u-boot.lds.debug b/board/cray/L1/u-boot.lds.debug
index 78fe44c..0e3940f 100644
--- a/board/cray/L1/u-boot.lds.debug
+++ b/board/cray/L1/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/dave/PPChameleonEVB/u-boot.lds b/board/dave/PPChameleonEVB/u-boot.lds
index fb40e3d..9b9264b 100644
--- a/board/dave/PPChameleonEVB/u-boot.lds
+++ b/board/dave/PPChameleonEVB/u-boot.lds
@@ -74,9 +74,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/dbau1x00/u-boot.lds b/board/dbau1x00/u-boot.lds
index 1b43dac..9106b22 100644
--- a/board/dbau1x00/u-boot.lds
+++ b/board/dbau1x00/u-boot.lds
@@ -54,12 +54,6 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-	}
-
 	. = ALIGN(4);
 	.u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/board/dvlhost/u-boot.lds b/board/dvlhost/u-boot.lds
index 897263e..83e3913 100644
--- a/board/dvlhost/u-boot.lds
+++ b/board/dvlhost/u-boot.lds
@@ -54,11 +54,6 @@ SECTIONS
 		*(.got)
 	}
 	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/eltec/mhpc/u-boot.lds b/board/eltec/mhpc/u-boot.lds
index 4385876..dc204d2 100644
--- a/board/eltec/mhpc/u-boot.lds
+++ b/board/eltec/mhpc/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/eltec/mhpc/u-boot.lds.debug b/board/eltec/mhpc/u-boot.lds.debug
index fd278a4..8bbe86a 100644
--- a/board/eltec/mhpc/u-boot.lds.debug
+++ b/board/eltec/mhpc/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/emk/top860/u-boot.lds b/board/emk/top860/u-boot.lds
index 887ee6b..2d738a4 100644
--- a/board/emk/top860/u-boot.lds
+++ b/board/emk/top860/u-boot.lds
@@ -67,9 +67,6 @@ SECTIONS
 
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/ep88x/u-boot.lds b/board/ep88x/u-boot.lds
index 0c5a03e..47ea19c 100644
--- a/board/ep88x/u-boot.lds
+++ b/board/ep88x/u-boot.lds
@@ -62,9 +62,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/esd/dasa_sim/u-boot.lds b/board/esd/dasa_sim/u-boot.lds
index 9a3249d..b1842e1 100644
--- a/board/esd/dasa_sim/u-boot.lds
+++ b/board/esd/dasa_sim/u-boot.lds
@@ -73,9 +73,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/esd/pmc440/u-boot-nand.lds b/board/esd/pmc440/u-boot-nand.lds
index d4ef403..910793b 100644
--- a/board/esd/pmc440/u-boot-nand.lds
+++ b/board/esd/pmc440/u-boot-nand.lds
@@ -102,9 +102,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/board/esd/tasreg/u-boot.lds b/board/esd/tasreg/u-boot.lds
index b302ba0..053a54a 100644
--- a/board/esd/tasreg/u-boot.lds
+++ b/board/esd/tasreg/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/esteem192e/u-boot.lds b/board/esteem192e/u-boot.lds
index 83d9ec0..ec757ad 100644
--- a/board/esteem192e/u-boot.lds
+++ b/board/esteem192e/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/etx094/u-boot.lds b/board/etx094/u-boot.lds
index a98ee23..f26e473 100644
--- a/board/etx094/u-boot.lds
+++ b/board/etx094/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/evb64260/u-boot.lds b/board/evb64260/u-boot.lds
index 1eb7f30..e4f735a 100644
--- a/board/evb64260/u-boot.lds
+++ b/board/evb64260/u-boot.lds
@@ -70,9 +70,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/fads/u-boot.lds b/board/fads/u-boot.lds
index deee255..0549239 100644
--- a/board/fads/u-boot.lds
+++ b/board/fads/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/flagadm/u-boot.lds b/board/flagadm/u-boot.lds
index 4385876..dc204d2 100644
--- a/board/flagadm/u-boot.lds
+++ b/board/flagadm/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/flagadm/u-boot.lds.debug b/board/flagadm/u-boot.lds.debug
index fd278a4..8bbe86a 100644
--- a/board/flagadm/u-boot.lds.debug
+++ b/board/flagadm/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5208evbe/u-boot.lds b/board/freescale/m5208evbe/u-boot.lds
index e184013..41b1cc9 100644
--- a/board/freescale/m5208evbe/u-boot.lds
+++ b/board/freescale/m5208evbe/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m52277evb/u-boot.lds b/board/freescale/m52277evb/u-boot.lds
index 6214098..dc5150a 100644
--- a/board/freescale/m52277evb/u-boot.lds
+++ b/board/freescale/m52277evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5235evb/u-boot.lds b/board/freescale/m5235evb/u-boot.lds
index 9b5e5e2..8ddda1a 100644
--- a/board/freescale/m5235evb/u-boot.lds
+++ b/board/freescale/m5235evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5249evb/u-boot.lds b/board/freescale/m5249evb/u-boot.lds
index d49b0ef..897847e 100644
--- a/board/freescale/m5249evb/u-boot.lds
+++ b/board/freescale/m5249evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5253demo/u-boot.lds b/board/freescale/m5253demo/u-boot.lds
index 3487a8d..1c2e067 100644
--- a/board/freescale/m5253demo/u-boot.lds
+++ b/board/freescale/m5253demo/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5253evbe/u-boot.lds b/board/freescale/m5253evbe/u-boot.lds
index d49b0ef..897847e 100644
--- a/board/freescale/m5253evbe/u-boot.lds
+++ b/board/freescale/m5253evbe/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5271evb/u-boot.lds b/board/freescale/m5271evb/u-boot.lds
index 3a86350..04ca088 100644
--- a/board/freescale/m5271evb/u-boot.lds
+++ b/board/freescale/m5271evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5272c3/u-boot.lds b/board/freescale/m5272c3/u-boot.lds
index d49b0ef..897847e 100644
--- a/board/freescale/m5272c3/u-boot.lds
+++ b/board/freescale/m5272c3/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5275evb/u-boot.lds b/board/freescale/m5275evb/u-boot.lds
index b37b06b..335acbc 100644
--- a/board/freescale/m5275evb/u-boot.lds
+++ b/board/freescale/m5275evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5282evb/u-boot.lds b/board/freescale/m5282evb/u-boot.lds
index 3132a55..2d27f06 100644
--- a/board/freescale/m5282evb/u-boot.lds
+++ b/board/freescale/m5282evb/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m53017evb/u-boot.lds b/board/freescale/m53017evb/u-boot.lds
index 662bd31..dab62bf 100644
--- a/board/freescale/m53017evb/u-boot.lds
+++ b/board/freescale/m53017evb/u-boot.lds
@@ -71,9 +71,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5329evb/u-boot.lds b/board/freescale/m5329evb/u-boot.lds
index fe5be41..e3ac171 100644
--- a/board/freescale/m5329evb/u-boot.lds
+++ b/board/freescale/m5329evb/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5373evb/u-boot.lds b/board/freescale/m5373evb/u-boot.lds
index 8ff6fc9..fe0bb7d 100644
--- a/board/freescale/m5373evb/u-boot.lds
+++ b/board/freescale/m5373evb/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m54451evb/u-boot.lds b/board/freescale/m54451evb/u-boot.lds
index ea0984f..3eb25dd 100644
--- a/board/freescale/m54451evb/u-boot.lds
+++ b/board/freescale/m54451evb/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m54455evb/u-boot.lds b/board/freescale/m54455evb/u-boot.lds
index fe1b58c..186d122 100644
--- a/board/freescale/m54455evb/u-boot.lds
+++ b/board/freescale/m54455evb/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m547xevb/u-boot.lds b/board/freescale/m547xevb/u-boot.lds
index 877eaf2..87744e7 100644
--- a/board/freescale/m547xevb/u-boot.lds
+++ b/board/freescale/m547xevb/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m548xevb/u-boot.lds b/board/freescale/m548xevb/u-boot.lds
index 33e054b..d877872 100644
--- a/board/freescale/m548xevb/u-boot.lds
+++ b/board/freescale/m548xevb/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/mx31ads/u-boot.lds b/board/freescale/mx31ads/u-boot.lds
index 3db5dc3..8f97de5 100644
--- a/board/freescale/mx31ads/u-boot.lds
+++ b/board/freescale/mx31ads/u-boot.lds
@@ -57,9 +57,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/gr_cpci_ax2000/u-boot.lds b/board/gaisler/gr_cpci_ax2000/u-boot.lds
index 416761b..8c4a0e5 100644
--- a/board/gaisler/gr_cpci_ax2000/u-boot.lds
+++ b/board/gaisler/gr_cpci_ax2000/u-boot.lds
@@ -85,10 +85,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/gr_ep2s60/u-boot.lds b/board/gaisler/gr_ep2s60/u-boot.lds
index 43faf26..c647246 100644
--- a/board/gaisler/gr_ep2s60/u-boot.lds
+++ b/board/gaisler/gr_ep2s60/u-boot.lds
@@ -85,10 +85,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/gr_xc3s_1500/u-boot.lds b/board/gaisler/gr_xc3s_1500/u-boot.lds
index 14c631e..96c98f3 100644
--- a/board/gaisler/gr_xc3s_1500/u-boot.lds
+++ b/board/gaisler/gr_xc3s_1500/u-boot.lds
@@ -85,10 +85,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/grsim/u-boot.lds b/board/gaisler/grsim/u-boot.lds
index 4766465..df7f187 100644
--- a/board/gaisler/grsim/u-boot.lds
+++ b/board/gaisler/grsim/u-boot.lds
@@ -84,10 +84,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/grsim_leon2/u-boot.lds b/board/gaisler/grsim_leon2/u-boot.lds
index cbd4ed6..ebcdf1c 100644
--- a/board/gaisler/grsim_leon2/u-boot.lds
+++ b/board/gaisler/grsim_leon2/u-boot.lds
@@ -84,10 +84,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gen860t/u-boot-flashenv.lds b/board/gen860t/u-boot-flashenv.lds
index 1302eaa..e72e168 100644
--- a/board/gen860t/u-boot-flashenv.lds
+++ b/board/gen860t/u-boot-flashenv.lds
@@ -71,9 +71,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/board/gen860t/u-boot.lds b/board/gen860t/u-boot.lds
index de57dd1..6433828 100644
--- a/board/gen860t/u-boot.lds
+++ b/board/gen860t/u-boot.lds
@@ -71,9 +71,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/genietv/u-boot.lds b/board/genietv/u-boot.lds
index 45c56bb..d1303ff 100644
--- a/board/genietv/u-boot.lds
+++ b/board/genietv/u-boot.lds
@@ -80,9 +80,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/genietv/u-boot.lds.debug b/board/genietv/u-boot.lds.debug
index 4783367..06ee03d 100644
--- a/board/genietv/u-boot.lds.debug
+++ b/board/genietv/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/hermes/u-boot.lds b/board/hermes/u-boot.lds
index 8b90f6c..e912128 100644
--- a/board/hermes/u-boot.lds
+++ b/board/hermes/u-boot.lds
@@ -72,9 +72,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/hermes/u-boot.lds.debug b/board/hermes/u-boot.lds.debug
index 53ffee1..3618c37 100644
--- a/board/hermes/u-boot.lds.debug
+++ b/board/hermes/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/hymod/u-boot.lds b/board/hymod/u-boot.lds
index 83d2dd4..b266ec5 100644
--- a/board/hymod/u-boot.lds
+++ b/board/hymod/u-boot.lds
@@ -110,9 +110,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/hymod/u-boot.lds.debug b/board/hymod/u-boot.lds.debug
index 47ad2e7..888cbc5 100644
--- a/board/hymod/u-boot.lds.debug
+++ b/board/hymod/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/icu862/u-boot.lds b/board/icu862/u-boot.lds
index 23d4405..34f6b75 100644
--- a/board/icu862/u-boot.lds
+++ b/board/icu862/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/icu862/u-boot.lds.debug b/board/icu862/u-boot.lds.debug
index 203f704..598b07d 100644
--- a/board/icu862/u-boot.lds.debug
+++ b/board/icu862/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/idmr/u-boot.lds b/board/idmr/u-boot.lds
index b302ba0..053a54a 100644
--- a/board/idmr/u-boot.lds
+++ b/board/idmr/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/incaip/u-boot.lds b/board/incaip/u-boot.lds
index 1b43dac..9106b22 100644
--- a/board/incaip/u-boot.lds
+++ b/board/incaip/u-boot.lds
@@ -54,12 +54,6 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-	}
-
 	. = ALIGN(4);
 	.u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/board/ip860/u-boot.lds b/board/ip860/u-boot.lds
index 92f78be..ca421d5 100644
--- a/board/ip860/u-boot.lds
+++ b/board/ip860/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/ip860/u-boot.lds.debug b/board/ip860/u-boot.lds.debug
index 4fc4c0f..aedab36 100644
--- a/board/ip860/u-boot.lds.debug
+++ b/board/ip860/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/ivm/u-boot.lds b/board/ivm/u-boot.lds
index d0d9a37..9e9565b 100644
--- a/board/ivm/u-boot.lds
+++ b/board/ivm/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/ivm/u-boot.lds.debug b/board/ivm/u-boot.lds.debug
index f4c04b3..1f66592 100644
--- a/board/ivm/u-boot.lds.debug
+++ b/board/ivm/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/korat/u-boot-F7FC.lds b/board/korat/u-boot-F7FC.lds
index da33f00..06ece39 100644
--- a/board/korat/u-boot-F7FC.lds
+++ b/board/korat/u-boot-F7FC.lds
@@ -108,9 +108,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	INCLUDE u-boot.lst;
diff --git a/board/kup/kup4k/u-boot.lds b/board/kup/kup4k/u-boot.lds
index 92f78be..ca421d5 100644
--- a/board/kup/kup4k/u-boot.lds
+++ b/board/kup/kup4k/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/kup/kup4k/u-boot.lds.debug b/board/kup/kup4k/u-boot.lds.debug
index c76f9d0..f99c742 100644
--- a/board/kup/kup4k/u-boot.lds.debug
+++ b/board/kup/kup4k/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/kup/kup4x/u-boot.lds b/board/kup/kup4x/u-boot.lds
index 92f78be..ca421d5 100644
--- a/board/kup/kup4x/u-boot.lds
+++ b/board/kup/kup4x/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/kup/kup4x/u-boot.lds.debug b/board/kup/kup4x/u-boot.lds.debug
index c76f9d0..f99c742 100644
--- a/board/kup/kup4x/u-boot.lds.debug
+++ b/board/kup/kup4x/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/lantec/u-boot.lds b/board/lantec/u-boot.lds
index 9360839..4c80452 100644
--- a/board/lantec/u-boot.lds
+++ b/board/lantec/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/lantec/u-boot.lds.debug b/board/lantec/u-boot.lds.debug
index 7c1ccb2..b8dd61d 100644
--- a/board/lantec/u-boot.lds.debug
+++ b/board/lantec/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/lwmon/u-boot.lds b/board/lwmon/u-boot.lds
index 7dfa157..6264d2d 100644
--- a/board/lwmon/u-boot.lds
+++ b/board/lwmon/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/lwmon/u-boot.lds.debug b/board/lwmon/u-boot.lds.debug
index 0778758..dbc722e 100644
--- a/board/lwmon/u-boot.lds.debug
+++ b/board/lwmon/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/manroland/uc100/u-boot.lds b/board/manroland/uc100/u-boot.lds
index d291d60..4a96fe4 100644
--- a/board/manroland/uc100/u-boot.lds
+++ b/board/manroland/uc100/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/matrix_vision/mvsmr/u-boot.lds b/board/matrix_vision/mvsmr/u-boot.lds
index 2445b97..99b29ce 100644
--- a/board/matrix_vision/mvsmr/u-boot.lds
+++ b/board/matrix_vision/mvsmr/u-boot.lds
@@ -74,9 +74,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/mbx8xx/u-boot.lds b/board/mbx8xx/u-boot.lds
index 92f78be..ca421d5 100644
--- a/board/mbx8xx/u-boot.lds
+++ b/board/mbx8xx/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/mbx8xx/u-boot.lds.debug b/board/mbx8xx/u-boot.lds.debug
index 7e62932..da784f0 100644
--- a/board/mbx8xx/u-boot.lds.debug
+++ b/board/mbx8xx/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/micronas/vct/u-boot.lds b/board/micronas/vct/u-boot.lds
index 4d9fab9..32654f9 100644
--- a/board/micronas/vct/u-boot.lds
+++ b/board/micronas/vct/u-boot.lds
@@ -53,13 +53,6 @@ SECTIONS
 	.sdata  : { *(.sdata*) }
 
 	. = ALIGN(4);
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-	}
-
-	. = ALIGN(4);
 	.u_boot_list : {
 		INCLUDE u-boot.lst;
 	}
diff --git a/board/mousse/u-boot.lds b/board/mousse/u-boot.lds
index 863468e..fbfea7e 100644
--- a/board/mousse/u-boot.lds
+++ b/board/mousse/u-boot.lds
@@ -60,9 +60,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/mousse/u-boot.lds.ram b/board/mousse/u-boot.lds.ram
index b3364be..5255651 100644
--- a/board/mousse/u-boot.lds.ram
+++ b/board/mousse/u-boot.lds.ram
@@ -85,9 +85,6 @@ SECTIONS
   } > ram
   */
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
    __start___ex_table = .;
     __ex_table : { *(__ex_table) } > ram
diff --git a/board/mousse/u-boot.lds.rom b/board/mousse/u-boot.lds.rom
index b4b9e02..29a34fb 100644
--- a/board/mousse/u-boot.lds.rom
+++ b/board/mousse/u-boot.lds.rom
@@ -102,9 +102,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/mpl/pip405/u-boot.lds.debug b/board/mpl/pip405/u-boot.lds.debug
index 78fe44c..0e3940f 100644
--- a/board/mpl/pip405/u-boot.lds.debug
+++ b/board/mpl/pip405/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/mvblue/u-boot.lds b/board/mvblue/u-boot.lds
index 4610de9..e3de27a 100644
--- a/board/mvblue/u-boot.lds
+++ b/board/mvblue/u-boot.lds
@@ -70,9 +70,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netphone/u-boot.lds b/board/netphone/u-boot.lds
index 86bb3b4..1bd1fa0 100644
--- a/board/netphone/u-boot.lds
+++ b/board/netphone/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netphone/u-boot.lds.debug b/board/netphone/u-boot.lds.debug
index 480feff..7b933f2 100644
--- a/board/netphone/u-boot.lds.debug
+++ b/board/netphone/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netta/u-boot.lds b/board/netta/u-boot.lds
index 86bb3b4..1bd1fa0 100644
--- a/board/netta/u-boot.lds
+++ b/board/netta/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netta/u-boot.lds.debug b/board/netta/u-boot.lds.debug
index 480feff..7b933f2 100644
--- a/board/netta/u-boot.lds.debug
+++ b/board/netta/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netta2/u-boot.lds b/board/netta2/u-boot.lds
index 86bb3b4..1bd1fa0 100644
--- a/board/netta2/u-boot.lds
+++ b/board/netta2/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netta2/u-boot.lds.debug b/board/netta2/u-boot.lds.debug
index 480feff..7b933f2 100644
--- a/board/netta2/u-boot.lds.debug
+++ b/board/netta2/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netvia/u-boot.lds b/board/netvia/u-boot.lds
index 86bb3b4..1bd1fa0 100644
--- a/board/netvia/u-boot.lds
+++ b/board/netvia/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netvia/u-boot.lds.debug b/board/netvia/u-boot.lds.debug
index 2e3f83e..cb71f3c 100644
--- a/board/netvia/u-boot.lds.debug
+++ b/board/netvia/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/nx823/u-boot.lds b/board/nx823/u-boot.lds
index 4385876..dc204d2 100644
--- a/board/nx823/u-boot.lds
+++ b/board/nx823/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/nx823/u-boot.lds.debug b/board/nx823/u-boot.lds.debug
index fd278a4..8bbe86a 100644
--- a/board/nx823/u-boot.lds.debug
+++ b/board/nx823/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/openrisc/openrisc-generic/u-boot.lds b/board/openrisc/openrisc-generic/u-boot.lds
index bc610bd..912aca0 100644
--- a/board/openrisc/openrisc-generic/u-boot.lds
+++ b/board/openrisc/openrisc-generic/u-boot.lds
@@ -26,9 +26,6 @@ SECTIONS
 		_endtext = .;
 	}  > ram
 
-	 __u_boot_cmd_start = .;
-	 .u_boot_cmd : { *(.u_boot_cmd) } > ram
-	 __u_boot_cmd_end = .;
 
 	 . = ALIGN(4);
 	 .u_boot_list : {
diff --git a/board/pb1x00/u-boot.lds b/board/pb1x00/u-boot.lds
index 522c438..8f5c3b9 100644
--- a/board/pb1x00/u-boot.lds
+++ b/board/pb1x00/u-boot.lds
@@ -54,12 +54,6 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-	}
-
 	. = ALIGN(4);
 	.u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/board/qemu-mips/u-boot.lds b/board/qemu-mips/u-boot.lds
index c45ccd0..98069c7 100644
--- a/board/qemu-mips/u-boot.lds
+++ b/board/qemu-mips/u-boot.lds
@@ -55,13 +55,6 @@ SECTIONS
 	. = ALIGN(4);
 	.sdata  : { *(.sdata*) }
 
-	. = .;
-	.u_boot_cmd : {
-	__u_boot_cmd_start = .;
-	*(.u_boot_cmd)
-	__u_boot_cmd_end = .;
-	}
-
 	. = ALIGN(4);
 	.u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/board/qi/qi_lb60/u-boot.lds b/board/qi/qi_lb60/u-boot.lds
index e1bb826..286806a 100644
--- a/board/qi/qi_lb60/u-boot.lds
+++ b/board/qi/qi_lb60/u-boot.lds
@@ -47,9 +47,6 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/quantum/u-boot.lds b/board/quantum/u-boot.lds
index 92f78be..ca421d5 100644
--- a/board/quantum/u-boot.lds
+++ b/board/quantum/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/r360mpi/u-boot.lds b/board/r360mpi/u-boot.lds
index 181468d..4748a6b 100644
--- a/board/r360mpi/u-boot.lds
+++ b/board/r360mpi/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/rbc823/u-boot.lds b/board/rbc823/u-boot.lds
index 50c3eee..30e01d2 100644
--- a/board/rbc823/u-boot.lds
+++ b/board/rbc823/u-boot.lds
@@ -77,9 +77,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/renesas/sh7757lcr/u-boot.lds b/board/renesas/sh7757lcr/u-boot.lds
index cff6ff5..76cb82e 100644
--- a/board/renesas/sh7757lcr/u-boot.lds
+++ b/board/renesas/sh7757lcr/u-boot.lds
@@ -77,13 +77,6 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
 
 	.u_boot_list : {
 		INCLUDE u-boot.lst;
diff --git a/board/rsdproto/u-boot.lds b/board/rsdproto/u-boot.lds
index ee651d4..d69af28 100644
--- a/board/rsdproto/u-boot.lds
+++ b/board/rsdproto/u-boot.lds
@@ -97,9 +97,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/samsung/smdk6400/u-boot-nand.lds b/board/samsung/smdk6400/u-boot-nand.lds
index 27693f0e..c34bd15 100644
--- a/board/samsung/smdk6400/u-boot-nand.lds
+++ b/board/samsung/smdk6400/u-boot-nand.lds
@@ -47,9 +47,6 @@ SECTIONS
 	. = ALIGN(4);
 	.got : { *(.got) }
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = align(4);
 	.u_boot_list : {
diff --git a/board/sandburst/karef/u-boot.lds.debug b/board/sandburst/karef/u-boot.lds.debug
index 586dc95..84e22ad 100644
--- a/board/sandburst/karef/u-boot.lds.debug
+++ b/board/sandburst/karef/u-boot.lds.debug
@@ -115,9 +115,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/sandburst/metrobox/u-boot.lds.debug b/board/sandburst/metrobox/u-boot.lds.debug
index 48f5be0..4aa3f21 100644
--- a/board/sandburst/metrobox/u-boot.lds.debug
+++ b/board/sandburst/metrobox/u-boot.lds.debug
@@ -115,9 +115,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/sandpoint/u-boot.lds b/board/sandpoint/u-boot.lds
index a4421a7..ba20d64 100644
--- a/board/sandpoint/u-boot.lds
+++ b/board/sandpoint/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/siemens/IAD210/u-boot.lds b/board/siemens/IAD210/u-boot.lds
index 3532d3b..ed60bf5 100644
--- a/board/siemens/IAD210/u-boot.lds
+++ b/board/siemens/IAD210/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/sixnet/u-boot.lds b/board/sixnet/u-boot.lds
index 4153927..bf5ac93 100644
--- a/board/sixnet/u-boot.lds
+++ b/board/sixnet/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/snmc/qs850/u-boot.lds b/board/snmc/qs850/u-boot.lds
index 039597e..17917bf 100644
--- a/board/snmc/qs850/u-boot.lds
+++ b/board/snmc/qs850/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/snmc/qs860t/u-boot.lds b/board/snmc/qs860t/u-boot.lds
index 92f78be..ca421d5 100644
--- a/board/snmc/qs860t/u-boot.lds
+++ b/board/snmc/qs860t/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/spc1920/u-boot.lds b/board/spc1920/u-boot.lds
index 92f78be..ca421d5 100644
--- a/board/spc1920/u-boot.lds
+++ b/board/spc1920/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/spd8xx/u-boot.lds b/board/spd8xx/u-boot.lds
index ada68f1..4fbabdf 100644
--- a/board/spd8xx/u-boot.lds
+++ b/board/spd8xx/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/spd8xx/u-boot.lds.debug b/board/spd8xx/u-boot.lds.debug
index 7e62932..da784f0 100644
--- a/board/spd8xx/u-boot.lds.debug
+++ b/board/spd8xx/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/stx/stxxtc/u-boot.lds b/board/stx/stxxtc/u-boot.lds
index 86bb3b4..1bd1fa0 100644
--- a/board/stx/stxxtc/u-boot.lds
+++ b/board/stx/stxxtc/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/stx/stxxtc/u-boot.lds.debug b/board/stx/stxxtc/u-boot.lds.debug
index 480feff..7b933f2 100644
--- a/board/stx/stxxtc/u-boot.lds.debug
+++ b/board/stx/stxxtc/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/svm_sc8xx/u-boot.lds b/board/svm_sc8xx/u-boot.lds
index af83956..e9caa85 100644
--- a/board/svm_sc8xx/u-boot.lds
+++ b/board/svm_sc8xx/u-boot.lds
@@ -83,9 +83,6 @@ SECTIONS
 
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/tqc/tqm8xx/u-boot.lds b/board/tqc/tqm8xx/u-boot.lds
index 226cfc1..ff70607 100644
--- a/board/tqc/tqm8xx/u-boot.lds
+++ b/board/tqc/tqm8xx/u-boot.lds
@@ -83,9 +83,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/v37/u-boot.lds b/board/v37/u-boot.lds
index feb3870..8626675 100644
--- a/board/v37/u-boot.lds
+++ b/board/v37/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/w7o/u-boot.lds.debug b/board/w7o/u-boot.lds.debug
index 520acd5..a0a9814 100644
--- a/board/w7o/u-boot.lds.debug
+++ b/board/w7o/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/westel/amx860/u-boot.lds b/board/westel/amx860/u-boot.lds
index e642a3a..116c5a8 100644
--- a/board/westel/amx860/u-boot.lds
+++ b/board/westel/amx860/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/westel/amx860/u-boot.lds.debug b/board/westel/amx860/u-boot.lds.debug
index 203f704..598b07d 100644
--- a/board/westel/amx860/u-boot.lds.debug
+++ b/board/westel/amx860/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/xes/xpedite1000/u-boot.lds.debug b/board/xes/xpedite1000/u-boot.lds.debug
index d685738..774dcbb 100644
--- a/board/xes/xpedite1000/u-boot.lds.debug
+++ b/board/xes/xpedite1000/u-boot.lds.debug
@@ -111,9 +111,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/include/command.h b/include/command.h
index 24864d5..10bc260 100644
--- a/include/command.h
+++ b/include/command.h
@@ -62,8 +62,6 @@ struct cmd_tbl_s {
 
 typedef struct cmd_tbl_s	cmd_tbl_t;
 
-extern cmd_tbl_t  __u_boot_cmd_start;
-extern cmd_tbl_t  __u_boot_cmd_end;
 
 #if defined(CONFIG_CMD_RUN)
 extern int do_run(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]);
diff --git a/nand_spl/board/freescale/mx31pdk/u-boot.lds b/nand_spl/board/freescale/mx31pdk/u-boot.lds
index 363690f..7a75603 100644
--- a/nand_spl/board/freescale/mx31pdk/u-boot.lds
+++ b/nand_spl/board/freescale/mx31pdk/u-boot.lds
@@ -46,9 +46,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/nand_spl/board/karo/tx25/u-boot.lds b/nand_spl/board/karo/tx25/u-boot.lds
index 8332710..d7c7060 100644
--- a/nand_spl/board/karo/tx25/u-boot.lds
+++ b/nand_spl/board/karo/tx25/u-boot.lds
@@ -46,9 +46,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/nand_spl/board/samsung/smdk6400/u-boot.lds b/nand_spl/board/samsung/smdk6400/u-boot.lds
index 7ceae32..7e92a02 100644
--- a/nand_spl/board/samsung/smdk6400/u-boot.lds
+++ b/nand_spl/board/samsung/smdk6400/u-boot.lds
@@ -50,9 +50,6 @@ SECTIONS
 	. = ALIGN(4);
 	.got : { *(.got) }
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 0/6 V2] Linker-generated arrays (take 2)
  2012-09-30  0:17 [U-Boot] [PATCH 0/5] Linker-generated arrays (take 2) Marek Vasut
                   ` (4 preceding siblings ...)
  2012-09-30  0:17 ` [U-Boot] [PATCH 5/5] common: Discard the __u_boot_cmd section Marek Vasut
@ 2012-10-07  0:06 ` Marek Vasut
  2012-10-07  0:06   ` [U-Boot] [PATCH 1/6 V2] common: Add symbol handling for generic lists into Makefile Marek Vasut
                     ` (6 more replies)
  5 siblings, 7 replies; 48+ messages in thread
From: Marek Vasut @ 2012-10-07  0:06 UTC (permalink / raw)
  To: u-boot

This is a second stab at the linker-generated array. Basically, this
concept is a generic abstraction of how u_boot_cmd works today. The
patch 2/4 contains a huge pile of documentation which should clarify
most of the questions.

I don't see size growth, I see size fluctiation in the order of tens
of bytes with these patches applied. Subsequent patch added to this
series removes the __u_boot_cmd section completely.

Marek Vasut (6):
  common: Add symbol handling for generic lists into Makefile
  common: Implement support for linker-generated arrays
  common: Add .u_boot_list into all linker files
  common: Convert the U-Boot commands to LG-arrays
  common: Discard the __u_boot_cmd section
  kerneldoc: tmpl: Implement template for LG-arrays

 .gitignore                                       |    1 +
 Makefile                                         |   19 ++-
 arch/arm/cpu/arm920t/ep93xx/u-boot.lds           |    8 +-
 arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds        |    7 +-
 arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds      |    7 +-
 arch/arm/cpu/armv7/omap-common/u-boot-spl.lds    |    5 +
 arch/arm/cpu/ixp/u-boot.lds                      |    8 +-
 arch/arm/cpu/u-boot.lds                          |    8 +-
 arch/arm/imx-common/cmd_bmode.c                  |   11 +-
 arch/avr32/cpu/u-boot.lds                        |    8 +-
 arch/avr32/lib/board.c                           |    4 +-
 arch/blackfin/cpu/u-boot.lds                     |    8 +-
 arch/m68k/lib/board.c                            |    4 +-
 arch/microblaze/cpu/u-boot.lds                   |    9 +-
 arch/mips/lib/board.c                            |    4 +-
 arch/nds32/cpu/n1213/u-boot.lds                  |    8 +-
 arch/nds32/lib/board.c                           |    4 +-
 arch/nios2/cpu/u-boot.lds                        |   10 +-
 arch/powerpc/cpu/74xx_7xx/u-boot.lds             |    8 +-
 arch/powerpc/cpu/mpc512x/u-boot.lds              |    8 +-
 arch/powerpc/cpu/mpc5xx/u-boot.lds               |    8 +-
 arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds |    6 +-
 arch/powerpc/cpu/mpc5xxx/u-boot.lds              |    8 +-
 arch/powerpc/cpu/mpc8220/u-boot.lds              |    8 +-
 arch/powerpc/cpu/mpc824x/u-boot.lds              |    8 +-
 arch/powerpc/cpu/mpc8260/u-boot.lds              |    8 +-
 arch/powerpc/cpu/mpc83xx/u-boot.lds              |    8 +-
 arch/powerpc/cpu/mpc85xx/u-boot-nand.lds         |    7 +-
 arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds     |    4 +
 arch/powerpc/cpu/mpc85xx/u-boot.lds              |    8 +-
 arch/powerpc/cpu/mpc86xx/u-boot.lds              |    8 +-
 arch/powerpc/cpu/ppc4xx/u-boot.lds               |    8 +-
 arch/sandbox/cpu/u-boot.lds                      |    8 +-
 arch/sh/cpu/sh2/u-boot.lds                       |    9 +-
 arch/sh/cpu/sh3/u-boot.lds                       |    9 +-
 arch/sh/cpu/sh4/u-boot.lds                       |    9 +-
 arch/sparc/lib/board.c                           |    4 +-
 arch/x86/cpu/u-boot.lds                          |    7 +-
 board/BuS/eb_cpu5282/u-boot.lds                  |    8 +-
 board/LEOX/elpt860/u-boot.lds                    |    8 +-
 board/RPXClassic/u-boot.lds                      |    8 +-
 board/RPXClassic/u-boot.lds.debug                |    8 +-
 board/RPXlite/u-boot.lds                         |    8 +-
 board/RPXlite/u-boot.lds.debug                   |    8 +-
 board/RPXlite_dw/u-boot.lds                      |    8 +-
 board/RPXlite_dw/u-boot.lds.debug                |    8 +-
 board/RRvision/u-boot.lds                        |    8 +-
 board/actux1/u-boot.lds                          |    8 +-
 board/actux2/u-boot.lds                          |    8 +-
 board/actux3/u-boot.lds                          |    8 +-
 board/adder/u-boot.lds                           |    8 +-
 board/ait/cam_enc_4xx/u-boot-spl.lds             |    4 +
 board/altera/nios2-generic/u-boot.lds            |   10 +-
 board/amcc/acadia/u-boot-nand.lds                |    6 +-
 board/amcc/bamboo/u-boot-nand.lds                |    6 +-
 board/amcc/canyonlands/u-boot-nand.lds           |    6 +-
 board/amcc/kilauea/u-boot-nand.lds               |    6 +-
 board/amcc/sequoia/u-boot-nand.lds               |    6 +-
 board/amcc/sequoia/u-boot-ram.lds                |    6 +-
 board/astro/mcf5373l/u-boot.lds                  |    8 +-
 board/c2mon/u-boot.lds                           |    8 +-
 board/c2mon/u-boot.lds.debug                     |    8 +-
 board/cobra5272/u-boot.lds                       |    8 +-
 board/cogent/u-boot.lds                          |    8 +-
 board/cogent/u-boot.lds.debug                    |    8 +-
 board/cray/L1/u-boot.lds.debug                   |    8 +-
 board/dave/PPChameleonEVB/u-boot.lds             |    8 +-
 board/davinci/da8xxevm/u-boot-spl-da850evm.lds   |    6 +
 board/davinci/da8xxevm/u-boot-spl-hawk.lds       |    5 +
 board/dbau1x00/u-boot.lds                        |    7 +-
 board/dvlhost/u-boot.lds                         |    8 +-
 board/eltec/mhpc/u-boot.lds                      |    8 +-
 board/eltec/mhpc/u-boot.lds.debug                |    8 +-
 board/emk/top860/u-boot.lds                      |    8 +-
 board/ep88x/u-boot.lds                           |    8 +-
 board/esd/dasa_sim/u-boot.lds                    |    8 +-
 board/esd/pmc440/u-boot-nand.lds                 |    6 +-
 board/esd/tasreg/u-boot.lds                      |    8 +-
 board/esteem192e/u-boot.lds                      |    8 +-
 board/etx094/u-boot.lds                          |    8 +-
 board/evb64260/u-boot.lds                        |    8 +-
 board/fads/u-boot.lds                            |    8 +-
 board/flagadm/u-boot.lds                         |    8 +-
 board/flagadm/u-boot.lds.debug                   |    8 +-
 board/freescale/m5208evbe/u-boot.lds             |    8 +-
 board/freescale/m52277evb/u-boot.lds             |    8 +-
 board/freescale/m5235evb/u-boot.lds              |    8 +-
 board/freescale/m5249evb/u-boot.lds              |    8 +-
 board/freescale/m5253demo/u-boot.lds             |    8 +-
 board/freescale/m5253evbe/u-boot.lds             |    8 +-
 board/freescale/m5271evb/u-boot.lds              |    8 +-
 board/freescale/m5272c3/u-boot.lds               |    8 +-
 board/freescale/m5275evb/u-boot.lds              |    8 +-
 board/freescale/m5282evb/u-boot.lds              |    8 +-
 board/freescale/m53017evb/u-boot.lds             |    8 +-
 board/freescale/m5329evb/u-boot.lds              |    8 +-
 board/freescale/m5373evb/u-boot.lds              |    8 +-
 board/freescale/m54451evb/u-boot.lds             |    8 +-
 board/freescale/m54455evb/u-boot.lds             |    8 +-
 board/freescale/m547xevb/u-boot.lds              |    8 +-
 board/freescale/m548xevb/u-boot.lds              |    8 +-
 board/freescale/mx31ads/u-boot.lds               |    8 +-
 board/gaisler/gr_cpci_ax2000/u-boot.lds          |    7 +-
 board/gaisler/gr_ep2s60/u-boot.lds               |    7 +-
 board/gaisler/gr_xc3s_1500/u-boot.lds            |    7 +-
 board/gaisler/grsim/u-boot.lds                   |    7 +-
 board/gaisler/grsim_leon2/u-boot.lds             |    7 +-
 board/gen860t/u-boot-flashenv.lds                |    7 +-
 board/gen860t/u-boot.lds                         |    8 +-
 board/genietv/u-boot.lds                         |    8 +-
 board/genietv/u-boot.lds.debug                   |    8 +-
 board/hermes/u-boot.lds                          |    8 +-
 board/hermes/u-boot.lds.debug                    |    8 +-
 board/hymod/u-boot.lds                           |    8 +-
 board/hymod/u-boot.lds.debug                     |    8 +-
 board/icu862/u-boot.lds                          |    8 +-
 board/icu862/u-boot.lds.debug                    |    8 +-
 board/idmr/u-boot.lds                            |    8 +-
 board/incaip/u-boot.lds                          |    7 +-
 board/ip860/u-boot.lds                           |    8 +-
 board/ip860/u-boot.lds.debug                     |    8 +-
 board/ivm/u-boot.lds                             |    8 +-
 board/ivm/u-boot.lds.debug                       |    8 +-
 board/korat/u-boot-F7FC.lds                      |    6 +-
 board/kup/kup4k/u-boot.lds                       |    8 +-
 board/kup/kup4k/u-boot.lds.debug                 |    8 +-
 board/kup/kup4x/u-boot.lds                       |    8 +-
 board/kup/kup4x/u-boot.lds.debug                 |    8 +-
 board/lantec/u-boot.lds                          |    8 +-
 board/lantec/u-boot.lds.debug                    |    8 +-
 board/lwmon/u-boot.lds                           |    8 +-
 board/lwmon/u-boot.lds.debug                     |    8 +-
 board/manroland/uc100/u-boot.lds                 |    8 +-
 board/matrix_vision/mvsmr/u-boot.lds             |    8 +-
 board/mbx8xx/u-boot.lds                          |    8 +-
 board/mbx8xx/u-boot.lds.debug                    |    8 +-
 board/micronas/vct/u-boot.lds                    |    6 +-
 board/mousse/u-boot.lds                          |    8 +-
 board/mousse/u-boot.lds.ram                      |    3 -
 board/mousse/u-boot.lds.rom                      |    3 -
 board/mpl/pip405/u-boot.lds.debug                |    8 +-
 board/mvblue/u-boot.lds                          |    8 +-
 board/netphone/u-boot.lds                        |    8 +-
 board/netphone/u-boot.lds.debug                  |    8 +-
 board/netta/u-boot.lds                           |    8 +-
 board/netta/u-boot.lds.debug                     |    8 +-
 board/netta2/u-boot.lds                          |    8 +-
 board/netta2/u-boot.lds.debug                    |    8 +-
 board/netvia/u-boot.lds                          |    8 +-
 board/netvia/u-boot.lds.debug                    |    8 +-
 board/nx823/u-boot.lds                           |    8 +-
 board/nx823/u-boot.lds.debug                     |    8 +-
 board/openrisc/openrisc-generic/u-boot.lds       |    8 +-
 board/pb1x00/u-boot.lds                          |    7 +-
 board/qemu-mips/u-boot.lds                       |    8 +-
 board/qi/qi_lb60/u-boot.lds                      |    8 +-
 board/quantum/u-boot.lds                         |    8 +-
 board/r360mpi/u-boot.lds                         |    8 +-
 board/rbc823/u-boot.lds                          |    8 +-
 board/renesas/sh7757lcr/u-boot.lds               |    9 +-
 board/rsdproto/u-boot.lds                        |    8 +-
 board/samsung/smdk5250/smdk5250-uboot-spl.lds    |    5 +
 board/samsung/smdk6400/u-boot-nand.lds           |   10 +-
 board/sandburst/karef/u-boot.lds.debug           |    8 +-
 board/sandburst/metrobox/u-boot.lds.debug        |    8 +-
 board/sandpoint/u-boot.lds                       |    8 +-
 board/siemens/IAD210/u-boot.lds                  |    8 +-
 board/sixnet/u-boot.lds                          |    8 +-
 board/snmc/qs850/u-boot.lds                      |    8 +-
 board/snmc/qs860t/u-boot.lds                     |    8 +-
 board/spc1920/u-boot.lds                         |    8 +-
 board/spd8xx/u-boot.lds                          |    8 +-
 board/spd8xx/u-boot.lds.debug                    |    8 +-
 board/stx/stxxtc/u-boot.lds                      |    8 +-
 board/stx/stxxtc/u-boot.lds.debug                |    8 +-
 board/svm_sc8xx/u-boot.lds                       |    8 +-
 board/tqc/tqm8xx/u-boot.lds                      |    8 +-
 board/v37/u-boot.lds                             |    8 +-
 board/vpac270/u-boot-spl.lds                     |    4 +
 board/w7o/u-boot.lds.debug                       |    8 +-
 board/westel/amx860/u-boot.lds                   |    8 +-
 board/westel/amx860/u-boot.lds.debug             |    8 +-
 board/xes/xpedite1000/u-boot.lds.debug           |    8 +-
 common/cmd_help.c                                |    8 +-
 common/command.c                                 |   17 ++-
 config.mk                                        |    2 +
 doc/DocBook/Makefile                             |    2 +-
 doc/DocBook/linker_lists.tmpl                    |   46 +++++++
 doc/README.commands                              |   10 +-
 examples/standalone/sparc.lds                    |    1 +
 helper.mk                                        |   64 ++++++++++
 include/command.h                                |   28 ++--
 include/linker_lists.h                           |  148 ++++++++++++++++++++++
 nand_spl/board/freescale/mpc8536ds/Makefile      |    9 +-
 nand_spl/board/freescale/mpc8569mds/Makefile     |    9 +-
 nand_spl/board/freescale/mpc8572ds/Makefile      |    9 +-
 nand_spl/board/freescale/mx31pdk/Makefile        |    9 +-
 nand_spl/board/freescale/mx31pdk/u-boot.lds      |    8 +-
 nand_spl/board/freescale/p1010rdb/Makefile       |    9 +-
 nand_spl/board/freescale/p1023rds/Makefile       |    9 +-
 nand_spl/board/freescale/p1_p2_rdb/Makefile      |    9 +-
 nand_spl/board/freescale/p1_p2_rdb_pc/Makefile   |    9 +-
 nand_spl/board/karo/tx25/Makefile                |    9 +-
 nand_spl/board/karo/tx25/u-boot.lds              |    8 +-
 nand_spl/board/samsung/smdk6400/u-boot.lds       |    8 +-
 spl/.gitignore                                   |    1 +
 spl/Makefile                                     |    8 +-
 207 files changed, 1217 insertions(+), 619 deletions(-)
 create mode 100644 doc/DocBook/linker_lists.tmpl
 create mode 100644 helper.mk
 create mode 100644 include/linker_lists.h

Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>

-- 
1.7.10.4

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 1/6 V2] common: Add symbol handling for generic lists into Makefile
  2012-10-07  0:06 ` [U-Boot] [PATCH 0/6 V2] Linker-generated arrays (take 2) Marek Vasut
@ 2012-10-07  0:06   ` Marek Vasut
  2012-10-07  0:06   ` [U-Boot] [PATCH 2/6 V2] common: Implement support for linker-generated arrays Marek Vasut
                     ` (5 subsequent siblings)
  6 siblings, 0 replies; 48+ messages in thread
From: Marek Vasut @ 2012-10-07  0:06 UTC (permalink / raw)
  To: u-boot

This patch adds essential components for generation of the contents of
the linker section that is used by the linker-generated array. All of
the contents is held in a separate file, u-boot.lst, which is generated
at runtime just before U-Boot is linked.

The purpose of this code is to especially generate the appropriate
boundary symbols around each subsection in the section carrying the
linker-generated arrays. Obviously, the interim linker code for actual
placement of the variables into the section is generated too. The
generated file, u-boot.lst, is included into u-boot.lds via the linker
INCLUDE directive in u-boot.lds .

Adjustments are made in the Makefile and spl/Makefile so that the
u-boot.lds and u-boot-spl.lds depend on their respective .lst files.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>

---
 .gitignore                                     |    1 +
 Makefile                                       |   19 ++++---
 config.mk                                      |    2 +
 helper.mk                                      |   64 ++++++++++++++++++++++++
 nand_spl/board/freescale/mpc8536ds/Makefile    |    9 +++-
 nand_spl/board/freescale/mpc8569mds/Makefile   |    9 +++-
 nand_spl/board/freescale/mpc8572ds/Makefile    |    9 +++-
 nand_spl/board/freescale/mx31pdk/Makefile      |    9 +++-
 nand_spl/board/freescale/p1010rdb/Makefile     |    9 +++-
 nand_spl/board/freescale/p1023rds/Makefile     |    9 +++-
 nand_spl/board/freescale/p1_p2_rdb/Makefile    |    9 +++-
 nand_spl/board/freescale/p1_p2_rdb_pc/Makefile |    9 +++-
 nand_spl/board/karo/tx25/Makefile              |    9 +++-
 spl/.gitignore                                 |    1 +
 spl/Makefile                                   |    8 ++-
 15 files changed, 150 insertions(+), 26 deletions(-)
 create mode 100644 helper.mk

V2:
- Rebase on top of testing/dm-kerneldoc
- Fix INCLUDE u-boot.lds in linker scripts. It didn't work with older LD,
  use #include instead and make use of CPP.
- Fix placement of u-boot.lds for NAND SPL

diff --git a/.gitignore b/.gitignore
index d91e91b..1ac43f2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,6 +38,7 @@
 /u-boot.sha1
 /u-boot.dis
 /u-boot.lds
+/u-boot.lst
 /u-boot.ubl
 /u-boot.ais
 /u-boot.dtb
diff --git a/Makefile b/Makefile
index 012d325..5d512f3 100644
--- a/Makefile
+++ b/Makefile
@@ -515,7 +515,10 @@ else
 GEN_UBOOT = \
 		UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
 		sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
-		cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) $$UNDEF_SYM $(__OBJS) \
+		UNDEF_LST=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
+		sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_list_.*\)/-u\1/p'|sort|uniq`;\
+		cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) \
+			$$UNDEF_SYM $$UNDEF_LST $(__OBJS) \
 			--start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
 			-Map u-boot.map -o u-boot
 endif
@@ -548,8 +551,12 @@ $(SUBDIR_EXAMPLES): $(obj)u-boot
 $(LDSCRIPT):	depend
 		$(MAKE) -C $(dir $@) $(notdir $@)
 
-$(obj)u-boot.lds: $(LDSCRIPT)
-		$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates u-boot.lst,
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(obj)u-boot.lst, $(LIBBOARD) $(LIBS)))
+$(obj)u-boot.lds: $(LDSCRIPT) $(obj)u-boot.lst
+		$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 nand_spl:	$(TIMESTAMP_FILE) $(VERSION_FILE) depend
 		$(MAKE) -C nand_spl/board/$(BOARDDIR) all
@@ -787,7 +794,7 @@ clean:
 	@rm -f $(obj)board/cray/L1/{bootscript.c,bootscript.image}	  \
 	       $(obj)board/matrix_vision/*/bootscript.img		  \
 	       $(obj)board/voiceblue/eeprom 				  \
-	       $(obj)u-boot.lds						  \
+	       $(obj)u-boot.{lds,lst}					  \
 	       $(obj)arch/blackfin/cpu/bootrom-asm-offsets.[chs]	  \
 	       $(obj)arch/blackfin/cpu/init.{lds,elf}
 	@rm -f $(obj)include/bmp_logo.h
@@ -821,8 +828,8 @@ clobber:	tidy
 	@rm -f $(obj)u-boot.dtb
 	@rm -f $(obj)u-boot.sb
 	@rm -f $(obj)u-boot.spr
-	@rm -f $(obj)nand_spl/{u-boot.lds,u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map,System.map}
-	@rm -f $(obj)spl/{u-boot-spl,u-boot-spl.bin,u-boot-spl.lds,u-boot-spl.map}
+	@rm -f $(obj)nand_spl/{u-boot.{lds,lst},u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map,System.map}
+	@rm -f $(obj)spl/{u-boot-spl,u-boot-spl.bin,u-boot-spl.{lds,lst},u-boot-spl.map}
 	@rm -f $(obj)MLO
 	@rm -f $(obj)tools/xway-swap-bytes
 	@rm -f $(obj)arch/powerpc/cpu/mpc824x/bedbug_603e.c
diff --git a/config.mk b/config.mk
index c3822a2..d2ed5bf 100644
--- a/config.mk
+++ b/config.mk
@@ -23,6 +23,8 @@
 
 #########################################################################
 
+include $(TOPDIR)/helper.mk
+
 ifeq ($(CURDIR),$(SRCTREE))
 dir :=
 else
diff --git a/helper.mk b/helper.mk
new file mode 100644
index 0000000..79a1da0
--- /dev/null
+++ b/helper.mk
@@ -0,0 +1,64 @@
+#
+# Copyright (C) 2012 Marek Vasut <marex@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.
+#
+#########################################################################
+
+##
+# make_u_boot_list - Generate contents of u_boot_list section
+# 1:		The name of the resulting file (usually u-boot.lst)
+# 2:		Files to analyze for possible u_boot_list entries
+#
+# This function generates the contents of the u_boot_list section,
+# including all the border symbols for it's subsections. The operation
+# of this function is as follows, numbering goes per lines:
+#
+# 1) Dump the ELF header sections from all files supplied via $(2)
+# 2) Filter out all other stuff that does not belong into .u_boot_list
+#    section.
+# 3) Fix up the lines so that the resulting output is is in format
+#    ".u_boot_list.*".
+# 4) Remove the last .something$, since that only contains the name
+#    of the variable to be put into a subsection. This name is irelevant
+#    for generation of border symbols, thus of no interest, remove it.
+# 5) Take each line and for every dot "." in that line, print the whole
+#    line until that dot "." . This is important so that we have all
+#    parent border symbols generated as well.
+# 6) Load every line and firstly append "\a" at the end and print the
+#    line. Next, append "@" at the end and print the line. Finally,
+#    append "~" at the end of line. This will make sense in conjunction
+#    with 6) and 7).
+# 7) Sort the lines. It is imperative to use LC_COLLATE=C here because
+#    with this, the "\a" symbol is first and "~" symbol is last. Any
+#    other symbols fall inbetween. Symbols like "@", which marks the
+#    end of current line (representing current section) and ".", which
+#    means the line continues and thus represents subsection.
+# 8) With such ordering, all lines ending with "\a" will float at the
+#    begining of all lines with the same prefix. Thus it is easy to
+#    replace "\a" with __start and make it the __start border symbol.
+#    Very similarly for "~", which will be always at the bottom and so
+#    can be replaced by "__end" and made into the __end border symbol.
+#    Finally, every line ending with "@" symbol will be transformed
+#    into " *(SORT(${line}*)); " format, which in the linker parlance
+#    will allow it to trap all symbols relevant to the subsection.
+#
+define make_u_boot_list
+$(1): $(2)
+	$(OBJDUMP) -h $(2) | \
+	sed -n -e '/.*\.u_boot_list[^ ]\+/ ! {d;n}' \
+		-e 's/.*\(\.u_boot_list[^ ]\+\).*$$$$/\1/' \
+		-e 's/\.[^\.]\+$$$$//' \
+		-e ':s /^.\+$$$$/ { p;s/^\(.*\)\.[^\.]*$$$$/\1/;b s }' | \
+	sed -n -e 'h;s/$$$$/\a/p;g;s/$$$$/@/p;g;s/$$$$/~/p;' | \
+	LC_COLLATE=C sort -u | \
+	sed -n -e '/\a$$$$/ { s/\./_/g;s/\a$$$$/__start = .;/p; }'\
+		-e '/~$$$$/ { s/\./_/g;s/~$$$$/__end = .;/p; }'\
+		-e '/@$$$$/ { s/\(.*\)@$$$$/*(SORT(\1.*));/p }' > $(1)
+endef
diff --git a/nand_spl/board/freescale/mpc8536ds/Makefile b/nand_spl/board/freescale/mpc8536ds/Makefile
index 43da3df..e5388d8 100644
--- a/nand_spl/board/freescale/mpc8536ds/Makefile
+++ b/nand_spl/board/freescale/mpc8536ds/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -61,8 +62,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/mpc8569mds/Makefile b/nand_spl/board/freescale/mpc8569mds/Makefile
index 43da3df..e5388d8 100644
--- a/nand_spl/board/freescale/mpc8569mds/Makefile
+++ b/nand_spl/board/freescale/mpc8569mds/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -61,8 +62,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/mpc8572ds/Makefile b/nand_spl/board/freescale/mpc8572ds/Makefile
index 43da3df..e5388d8 100644
--- a/nand_spl/board/freescale/mpc8572ds/Makefile
+++ b/nand_spl/board/freescale/mpc8572ds/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -61,8 +62,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/mx31pdk/Makefile b/nand_spl/board/freescale/mx31pdk/Makefile
index 87784d2..43e72c4 100644
--- a/nand_spl/board/freescale/mx31pdk/Makefile
+++ b/nand_spl/board/freescale/mx31pdk/Makefile
@@ -6,6 +6,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
 	   $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_SPL_BUILD -DCONFIG_NAND_SPL
@@ -36,8 +37,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $@
 
-$(nandobj)u-boot.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 #########################################################################
 
diff --git a/nand_spl/board/freescale/p1010rdb/Makefile b/nand_spl/board/freescale/p1010rdb/Makefile
index cdbd492..f270faa 100644
--- a/nand_spl/board/freescale/p1010rdb/Makefile
+++ b/nand_spl/board/freescale/p1010rdb/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) $(LDFLAGS) \
 	   $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -62,8 +63,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/p1023rds/Makefile b/nand_spl/board/freescale/p1023rds/Makefile
index da43521..b288284 100644
--- a/nand_spl/board/freescale/p1023rds/Makefile
+++ b/nand_spl/board/freescale/p1023rds/Makefile
@@ -27,6 +27,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -57,8 +58,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/p1_p2_rdb/Makefile b/nand_spl/board/freescale/p1_p2_rdb/Makefile
index 43da3df..e5388d8 100644
--- a/nand_spl/board/freescale/p1_p2_rdb/Makefile
+++ b/nand_spl/board/freescale/p1_p2_rdb/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -61,8 +62,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/p1_p2_rdb_pc/Makefile b/nand_spl/board/freescale/p1_p2_rdb_pc/Makefile
index 46cf709..7146d16 100644
--- a/nand_spl/board/freescale/p1_p2_rdb_pc/Makefile
+++ b/nand_spl/board/freescale/p1_p2_rdb_pc/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -62,8 +63,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/karo/tx25/Makefile b/nand_spl/board/karo/tx25/Makefile
index 0336346..becf7fa 100644
--- a/nand_spl/board/karo/tx25/Makefile
+++ b/nand_spl/board/karo/tx25/Makefile
@@ -27,6 +27,7 @@ include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
 	   $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_SPL_BUILD -DCONFIG_NAND_SPL
@@ -57,8 +58,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $@
 
-$(nandobj)u-boot.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 #########################################################################
 
diff --git a/spl/.gitignore b/spl/.gitignore
index 7c88147..8cf487e 100644
--- a/spl/.gitignore
+++ b/spl/.gitignore
@@ -2,3 +2,4 @@ u-boot-spl
 u-boot-spl.bin
 u-boot-spl.lds
 u-boot-spl.map
+u-boot.lst
diff --git a/spl/Makefile b/spl/Makefile
index d9b1c2f..f43d5ef 100644
--- a/spl/Makefile
+++ b/spl/Makefile
@@ -149,8 +149,12 @@ $(START):	depend
 $(LIBS):	depend
 	$(MAKE) -C $(SRCTREE)$(dir $(subst $(SPLTREE),,$@))
 
-$(obj)u-boot-spl.lds: $(LDSCRIPT) depend
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - < $< > $@
+# The following line expands into whole rule which generates u-boot.lst,
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(obj)u-boot.lst, $(LIBS)))
+$(obj)u-boot-spl.lds: $(LDSCRIPT) $(obj)u-boot.lst depend
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - < $< > $@
 
 depend:	$(obj).depend
 .PHONY: depend
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 2/6 V2] common: Implement support for linker-generated arrays
  2012-10-07  0:06 ` [U-Boot] [PATCH 0/6 V2] Linker-generated arrays (take 2) Marek Vasut
  2012-10-07  0:06   ` [U-Boot] [PATCH 1/6 V2] common: Add symbol handling for generic lists into Makefile Marek Vasut
@ 2012-10-07  0:06   ` Marek Vasut
  2012-10-07  0:06   ` [U-Boot] [PATCH 3/6 V2] common: Add .u_boot_list into all linker files Marek Vasut
                     ` (4 subsequent siblings)
  6 siblings, 0 replies; 48+ messages in thread
From: Marek Vasut @ 2012-10-07  0:06 UTC (permalink / raw)
  To: u-boot

This patch adds support for linker-generated array. These arrays
are a generalization of the U-Boot command declaration approach.

Basically, the idea is to generate an array, where elements of the
array are statically initialized at compile time and each element
is declared separatelly at different place. Such array is assembled
together into continuous piece of memory by linker and a pointer to
it's first entry can then be retrieved via accessor.

The actual implementation relies on placing any variable that is to
represent an element of LG-array into particular subsection of the
.u_boot_list linker section . The subsection is determined by user
options. Once compiled, it is possible to dump all symbols placed
in .u_boot_list section and the subsections in which they should be
and generate appropriate bounds for each requested subsection of the
.u_boot_list section. Each such subsection thus contains __start and
__end entries at the begining and end respecitively.

This allows for simple run-time traversing of the array, since the
symbols are properly defined.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>

---
 include/linker_lists.h |  148 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 148 insertions(+)
 create mode 100644 include/linker_lists.h

V2:
- Rebase on top of testing/dm-kerneldoc

diff --git a/include/linker_lists.h b/include/linker_lists.h
new file mode 100644
index 0000000..0b405d7
--- /dev/null
+++ b/include/linker_lists.h
@@ -0,0 +1,148 @@
+/*
+ * include/linker_lists.h
+ *
+ * Implementation of linker-generated arrays
+ *
+ * Copyright (C) 2012 Marek Vasut <marex@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.
+ */
+#ifndef __LINKER_LISTS_H__
+#define __LINKER_LISTS_H__
+
+/**
+ * ll_entry_declare() - Declare linker-generated array entry
+ * @_type:	Data type of the entry
+ * @_name:	Name of the entry
+ * @_section_u:	Subsection of u_boot_list in which this entry is placed
+ *		(with underscores instead of dots, for name concatenation)
+ * @_section_d:	Subsection of u_boot_list in which this entry is placed
+ *		(with dots, for section concatenation)
+ *
+ * This macro declares a variable that is placed into a linker-generated
+ * array. This is a basic building block for more advanced use of linker-
+ * generated arrays. The user is expected to build their own macro wrapper
+ * around this one.
+ *
+ * A variable declared using this macro must be compile-time initialized
+ * and is as such placed into subsection of special section, .u_boot_list.
+ * The subsection is specified by the _section_[u,d] parameter, see below.
+ * The base name of the variable is _name, yet the actual variable is
+ * declared as concatenation of
+ *
+ *   %_u_boot_list_ + @_section_u + _ + @_name
+ *
+ * which ensures name uniqueness. This variable shall never be refered
+ * directly though.
+ *
+ * Special precaution must be made when using this macro:
+ * 1) The _type must not contain the "static" keyword, otherwise the entry
+ *    is not generated.
+ *
+ * 2) The @_section_u and @_section_d variables must match, the only difference
+ *    is that in @_section_u is every dot "." character present in @_section_d
+ *    replaced by a single underscore "_" character in @_section_u. The actual
+ *    purpose of these parameters is to select proper subsection in the global
+ *    .u_boot_list section.
+ *
+ * 3) In case a section is declared that contains some array elements AND a
+ *    subsection of this section is declared and contains some elements, it is
+ *    imperative that the elements are of the same type.
+ *
+ * 4) In case an outer section is declared that contains some array elements
+ *    AND am inner subsection of this section is declared and contains some
+ *    elements, then when traversing the outer section, even the elements of
+ *    the inner sections are present in the array.
+ *
+ * Example:
+ * ll_entry_declare(struct my_sub_cmd, my_sub_cmd, cmd_sub, cmd.sub) = {
+ *         .x = 3,
+ *         .y = 4,
+ * };
+ */
+#define ll_entry_declare(_type, _name, _section_u, _section_d)		\
+	_type _u_boot_list_##_section_u##_##_name __attribute__((	\
+			unused,	aligned(4),				\
+			section(".u_boot_list."#_section_d"."#_name)))
+
+/**
+ * ll_entry_start() - Point to first entry of linker-generated array
+ * @_type:	Data type of the entry
+ * @_section_u:	Subsection of u_boot_list in which this entry is placed
+ *		(with underscores instead of dots)
+ *
+ * This function returns (_type *) pointer to the very first entry of a
+ * linker-generated array placed into subsection of .u_boot_list section
+ * specified by _section_u argument.
+ *
+ * Example:
+ * struct my_sub_cmd *msc = ll_entry_start(struct my_sub_cmd, cmd_sub);
+ */
+#define ll_entry_start(_type, _section_u)				\
+	({								\
+		extern _type _u_boot_list_##_section_u##__start;	\
+		_type *_ll_result = &_u_boot_list_##_section_u##__start;\
+		_ll_result;						\
+	})
+
+/**
+ * ll_entry_count() - Return the number of elements in linker-generated array
+ * @_type:	Data type of the entry
+ * @_section_u:	Subsection of u_boot_list in which this entry is placed
+ *		(with underscores instead of dots)
+ *
+ * This function returns the number of elements of a linker-generated array
+ * placed into subsection of .u_boot_list section specified by _section_u
+ * argument. The result is of an unsigned int type.
+ *
+ * Example:
+ * int i;
+ * const unsigned int count = ll_entry_count(struct my_sub_cmd, cmd_sub);
+ * struct my_sub_cmd *msc = ll_entry_start(struct my_sub_cmd, cmd_sub);
+ * for (i = 0; i < count; i++, msc++)
+ *         printf("Entry %i, x=%i y=%i\n", i, msc->x, msc->y);
+ */
+#define ll_entry_count(_type, _section_u)				\
+	({								\
+		extern _type _u_boot_list_##_section_u##__start;	\
+		extern _type _u_boot_list_##_section_u##__end;		\
+		unsigned int _ll_result =				\
+			&_u_boot_list_##_section_u##__end -		\
+			&_u_boot_list_##_section_u##__start;		\
+		_ll_result;						\
+	})
+
+
+/**
+ * ll_entry_get() - Retrieve entry from linker-generated array by name
+ * @_type:	Data type of the entry
+ * @_name:	Name of the entry
+ * @_section_u:	Subsection of u_boot_list in which this entry is placed
+ *		(with underscores instead of dots)
+ *
+ * This function returns a pointer to a particular entry in LG-array
+ * identified by the subsection of u_boot_list where the entry resides
+ * and it's name.
+ *
+ * Example:
+ * ll_entry_declare(struct my_sub_cmd, my_sub_cmd, cmd_sub, cmd.sub) = {
+ *         .x = 3,
+ *         .y = 4,
+ * };
+ * ...
+ * struct my_sub_cmd *c = ll_entry_get(struct my_sub_cmd, my_sub_cmd, cmd_sub);
+ */
+#define ll_entry_get(_type, _name, _section_u)				\
+	({								\
+		extern _type _u_boot_list_##_section_u##_##_name;	\
+		_type *_ll_result = &_u_boot_list_##_section_u##_##_name;\
+		_ll_result;						\
+	})
+
+#endif	/* __LINKER_LISTS_H__ */
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 3/6 V2] common: Add .u_boot_list into all linker files
  2012-10-07  0:06 ` [U-Boot] [PATCH 0/6 V2] Linker-generated arrays (take 2) Marek Vasut
  2012-10-07  0:06   ` [U-Boot] [PATCH 1/6 V2] common: Add symbol handling for generic lists into Makefile Marek Vasut
  2012-10-07  0:06   ` [U-Boot] [PATCH 2/6 V2] common: Implement support for linker-generated arrays Marek Vasut
@ 2012-10-07  0:06   ` Marek Vasut
  2012-10-07  0:06   ` [U-Boot] [PATCH 4/6 V2] common: Convert the U-Boot commands to LG-arrays Marek Vasut
                     ` (3 subsequent siblings)
  6 siblings, 0 replies; 48+ messages in thread
From: Marek Vasut @ 2012-10-07  0:06 UTC (permalink / raw)
  To: u-boot

Add section for the linker-generated lists into all possible linker
files, so that everyone can easily use these lists. This is mostly
a mechanical adjustment.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>

---
 arch/arm/cpu/arm920t/ep93xx/u-boot.lds           |    5 +++++
 arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds        |    4 ++++
 arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds      |    4 ++++
 arch/arm/cpu/armv7/omap-common/u-boot-spl.lds    |    5 +++++
 arch/arm/cpu/ixp/u-boot.lds                      |    5 +++++
 arch/arm/cpu/u-boot.lds                          |    5 +++++
 arch/avr32/cpu/u-boot.lds                        |    5 +++++
 arch/blackfin/cpu/u-boot.lds                     |    4 ++++
 arch/microblaze/cpu/u-boot.lds                   |    5 +++++
 arch/nds32/cpu/n1213/u-boot.lds                  |    5 +++++
 arch/nios2/cpu/u-boot.lds                        |    5 +++++
 arch/powerpc/cpu/74xx_7xx/u-boot.lds             |    5 +++++
 arch/powerpc/cpu/mpc512x/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc5xx/u-boot.lds               |    5 +++++
 arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds |    3 +++
 arch/powerpc/cpu/mpc5xxx/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc8220/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc824x/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc8260/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc83xx/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc85xx/u-boot-nand.lds         |    4 ++++
 arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds     |    4 ++++
 arch/powerpc/cpu/mpc85xx/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc86xx/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/ppc4xx/u-boot.lds               |    5 +++++
 arch/sandbox/cpu/u-boot.lds                      |    5 +++++
 arch/sh/cpu/sh2/u-boot.lds                       |    4 ++++
 arch/sh/cpu/sh3/u-boot.lds                       |    4 ++++
 arch/sh/cpu/sh4/u-boot.lds                       |    4 ++++
 arch/x86/cpu/u-boot.lds                          |    5 +++++
 board/BuS/eb_cpu5282/u-boot.lds                  |    5 +++++
 board/LEOX/elpt860/u-boot.lds                    |    5 +++++
 board/RPXClassic/u-boot.lds                      |    5 +++++
 board/RPXClassic/u-boot.lds.debug                |    5 +++++
 board/RPXlite/u-boot.lds                         |    5 +++++
 board/RPXlite/u-boot.lds.debug                   |    5 +++++
 board/RPXlite_dw/u-boot.lds                      |    5 +++++
 board/RPXlite_dw/u-boot.lds.debug                |    5 +++++
 board/RRvision/u-boot.lds                        |    5 +++++
 board/actux1/u-boot.lds                          |    5 +++++
 board/actux2/u-boot.lds                          |    5 +++++
 board/actux3/u-boot.lds                          |    5 +++++
 board/adder/u-boot.lds                           |    5 +++++
 board/ait/cam_enc_4xx/u-boot-spl.lds             |    4 ++++
 board/altera/nios2-generic/u-boot.lds            |    5 +++++
 board/amcc/acadia/u-boot-nand.lds                |    3 +++
 board/amcc/bamboo/u-boot-nand.lds                |    3 +++
 board/amcc/canyonlands/u-boot-nand.lds           |    3 +++
 board/amcc/kilauea/u-boot-nand.lds               |    3 +++
 board/amcc/sequoia/u-boot-nand.lds               |    3 +++
 board/amcc/sequoia/u-boot-ram.lds                |    3 +++
 board/astro/mcf5373l/u-boot.lds                  |    5 +++++
 board/c2mon/u-boot.lds                           |    5 +++++
 board/c2mon/u-boot.lds.debug                     |    5 +++++
 board/cobra5272/u-boot.lds                       |    5 +++++
 board/cogent/u-boot.lds                          |    5 +++++
 board/cogent/u-boot.lds.debug                    |    5 +++++
 board/cray/L1/u-boot.lds.debug                   |    5 +++++
 board/dave/PPChameleonEVB/u-boot.lds             |    5 +++++
 board/davinci/da8xxevm/u-boot-spl-da850evm.lds   |    6 ++++++
 board/davinci/da8xxevm/u-boot-spl-hawk.lds       |    5 +++++
 board/dbau1x00/u-boot.lds                        |    5 +++++
 board/dvlhost/u-boot.lds                         |    5 +++++
 board/eltec/mhpc/u-boot.lds                      |    5 +++++
 board/eltec/mhpc/u-boot.lds.debug                |    5 +++++
 board/emk/top860/u-boot.lds                      |    5 +++++
 board/ep88x/u-boot.lds                           |    5 +++++
 board/esd/dasa_sim/u-boot.lds                    |    5 +++++
 board/esd/pmc440/u-boot-nand.lds                 |    3 +++
 board/esd/tasreg/u-boot.lds                      |    5 +++++
 board/esteem192e/u-boot.lds                      |    5 +++++
 board/etx094/u-boot.lds                          |    5 +++++
 board/evb64260/u-boot.lds                        |    5 +++++
 board/fads/u-boot.lds                            |    5 +++++
 board/flagadm/u-boot.lds                         |    5 +++++
 board/flagadm/u-boot.lds.debug                   |    5 +++++
 board/freescale/m5208evbe/u-boot.lds             |    5 +++++
 board/freescale/m52277evb/u-boot.lds             |    5 +++++
 board/freescale/m5235evb/u-boot.lds              |    5 +++++
 board/freescale/m5249evb/u-boot.lds              |    5 +++++
 board/freescale/m5253demo/u-boot.lds             |    5 +++++
 board/freescale/m5253evbe/u-boot.lds             |    5 +++++
 board/freescale/m5271evb/u-boot.lds              |    5 +++++
 board/freescale/m5272c3/u-boot.lds               |    5 +++++
 board/freescale/m5275evb/u-boot.lds              |    5 +++++
 board/freescale/m5282evb/u-boot.lds              |    5 +++++
 board/freescale/m53017evb/u-boot.lds             |    5 +++++
 board/freescale/m5329evb/u-boot.lds              |    5 +++++
 board/freescale/m5373evb/u-boot.lds              |    5 +++++
 board/freescale/m54451evb/u-boot.lds             |    5 +++++
 board/freescale/m54455evb/u-boot.lds             |    5 +++++
 board/freescale/m547xevb/u-boot.lds              |    5 +++++
 board/freescale/m548xevb/u-boot.lds              |    5 +++++
 board/freescale/mx31ads/u-boot.lds               |    5 +++++
 board/gaisler/gr_cpci_ax2000/u-boot.lds          |    5 +++++
 board/gaisler/gr_ep2s60/u-boot.lds               |    5 +++++
 board/gaisler/gr_xc3s_1500/u-boot.lds            |    5 +++++
 board/gaisler/grsim/u-boot.lds                   |    5 +++++
 board/gaisler/grsim_leon2/u-boot.lds             |    5 +++++
 board/gen860t/u-boot-flashenv.lds                |    4 ++++
 board/gen860t/u-boot.lds                         |    5 +++++
 board/genietv/u-boot.lds                         |    5 +++++
 board/genietv/u-boot.lds.debug                   |    5 +++++
 board/hermes/u-boot.lds                          |    5 +++++
 board/hermes/u-boot.lds.debug                    |    5 +++++
 board/hymod/u-boot.lds                           |    5 +++++
 board/hymod/u-boot.lds.debug                     |    5 +++++
 board/icu862/u-boot.lds                          |    5 +++++
 board/icu862/u-boot.lds.debug                    |    5 +++++
 board/idmr/u-boot.lds                            |    5 +++++
 board/incaip/u-boot.lds                          |    5 +++++
 board/ip860/u-boot.lds                           |    5 +++++
 board/ip860/u-boot.lds.debug                     |    5 +++++
 board/ivm/u-boot.lds                             |    5 +++++
 board/ivm/u-boot.lds.debug                       |    5 +++++
 board/korat/u-boot-F7FC.lds                      |    3 +++
 board/kup/kup4k/u-boot.lds                       |    5 +++++
 board/kup/kup4k/u-boot.lds.debug                 |    5 +++++
 board/kup/kup4x/u-boot.lds                       |    5 +++++
 board/kup/kup4x/u-boot.lds.debug                 |    5 +++++
 board/lantec/u-boot.lds                          |    5 +++++
 board/lantec/u-boot.lds.debug                    |    5 +++++
 board/lwmon/u-boot.lds                           |    5 +++++
 board/lwmon/u-boot.lds.debug                     |    5 +++++
 board/manroland/uc100/u-boot.lds                 |    5 +++++
 board/matrix_vision/mvsmr/u-boot.lds             |    5 +++++
 board/mbx8xx/u-boot.lds                          |    5 +++++
 board/mbx8xx/u-boot.lds.debug                    |    5 +++++
 board/micronas/vct/u-boot.lds                    |    5 +++++
 board/mousse/u-boot.lds                          |    5 +++++
 board/mpl/pip405/u-boot.lds.debug                |    5 +++++
 board/mvblue/u-boot.lds                          |    5 +++++
 board/netphone/u-boot.lds                        |    5 +++++
 board/netphone/u-boot.lds.debug                  |    5 +++++
 board/netta/u-boot.lds                           |    5 +++++
 board/netta/u-boot.lds.debug                     |    5 +++++
 board/netta2/u-boot.lds                          |    5 +++++
 board/netta2/u-boot.lds.debug                    |    5 +++++
 board/netvia/u-boot.lds                          |    5 +++++
 board/netvia/u-boot.lds.debug                    |    5 +++++
 board/nx823/u-boot.lds                           |    5 +++++
 board/nx823/u-boot.lds.debug                     |    5 +++++
 board/openrisc/openrisc-generic/u-boot.lds       |    5 +++++
 board/pb1x00/u-boot.lds                          |    5 +++++
 board/qemu-mips/u-boot.lds                       |    5 +++++
 board/qi/qi_lb60/u-boot.lds                      |    5 +++++
 board/quantum/u-boot.lds                         |    5 +++++
 board/r360mpi/u-boot.lds                         |    5 +++++
 board/rbc823/u-boot.lds                          |    5 +++++
 board/renesas/sh7757lcr/u-boot.lds               |    4 ++++
 board/rsdproto/u-boot.lds                        |    5 +++++
 board/samsung/smdk5250/smdk5250-uboot-spl.lds    |    5 +++++
 board/samsung/smdk6400/u-boot-nand.lds           |    7 ++++++-
 board/sandburst/karef/u-boot.lds.debug           |    5 +++++
 board/sandburst/metrobox/u-boot.lds.debug        |    5 +++++
 board/sandpoint/u-boot.lds                       |    5 +++++
 board/siemens/IAD210/u-boot.lds                  |    5 +++++
 board/sixnet/u-boot.lds                          |    5 +++++
 board/snmc/qs850/u-boot.lds                      |    5 +++++
 board/snmc/qs860t/u-boot.lds                     |    5 +++++
 board/spc1920/u-boot.lds                         |    5 +++++
 board/spd8xx/u-boot.lds                          |    5 +++++
 board/spd8xx/u-boot.lds.debug                    |    5 +++++
 board/stx/stxxtc/u-boot.lds                      |    5 +++++
 board/stx/stxxtc/u-boot.lds.debug                |    5 +++++
 board/svm_sc8xx/u-boot.lds                       |    5 +++++
 board/tqc/tqm8xx/u-boot.lds                      |    5 +++++
 board/v37/u-boot.lds                             |    5 +++++
 board/vpac270/u-boot-spl.lds                     |    4 ++++
 board/w7o/u-boot.lds.debug                       |    5 +++++
 board/westel/amx860/u-boot.lds                   |    5 +++++
 board/westel/amx860/u-boot.lds.debug             |    5 +++++
 board/xes/xpedite1000/u-boot.lds.debug           |    5 +++++
 examples/standalone/sparc.lds                    |    1 +
 nand_spl/board/freescale/mx31pdk/u-boot.lds      |    5 +++++
 nand_spl/board/karo/tx25/u-boot.lds              |    5 +++++
 nand_spl/board/samsung/smdk6400/u-boot.lds       |    5 +++++
 177 files changed, 853 insertions(+), 1 deletion(-)

V2:
- Rebase on top of testing/dm-kerneldoc
- Remove u-boot.lds from standalone examples

diff --git a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
index dc6ba34..8c6a407 100644
--- a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
+++ b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
@@ -53,6 +53,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 	__bss_start = .;
 	.bss : { *(.bss) }
 	__bss_end__ = .;
diff --git a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
index f8ea38c..2940a6f 100644
--- a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
+++ b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
@@ -54,6 +54,10 @@ SECTIONS
 	.u_boot_cmd : { *(.u_boot_cmd) }
 	__u_boot_cmd_end = .;
 
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	. = ALIGN(4);
 
 	.rel.dyn : {
diff --git a/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
index afd3381..ae9538e 100644
--- a/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
+++ b/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
@@ -54,6 +54,10 @@ SECTIONS
 	.u_boot_cmd : { *(.u_boot_cmd) }
 	__u_boot_cmd_end = .;
 
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	. = ALIGN(4);
 
 	.rel.dyn : {
diff --git a/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds b/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds
index 1d8efb2..9979c30 100644
--- a/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds
+++ b/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds
@@ -47,6 +47,11 @@ SECTIONS
 
 	. = ALIGN(4);
 	.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
+
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	. = ALIGN(4);
 	__image_copy_end = .;
 	_end = .;
diff --git a/arch/arm/cpu/ixp/u-boot.lds b/arch/arm/cpu/ixp/u-boot.lds
index 7199de4..a7ffab3 100644
--- a/arch/arm/cpu/ixp/u-boot.lds
+++ b/arch/arm/cpu/ixp/u-boot.lds
@@ -51,6 +51,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/arch/arm/cpu/u-boot.lds b/arch/arm/cpu/u-boot.lds
index e49ca0c..85f4eec 100644
--- a/arch/arm/cpu/u-boot.lds
+++ b/arch/arm/cpu/u-boot.lds
@@ -54,6 +54,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 
 	__image_copy_end = .;
 
diff --git a/arch/avr32/cpu/u-boot.lds b/arch/avr32/cpu/u-boot.lds
index 0e532f2..2accee6 100644
--- a/arch/avr32/cpu/u-boot.lds
+++ b/arch/avr32/cpu/u-boot.lds
@@ -54,6 +54,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 	_got = .;
 	.got : {
 		*(.got)
diff --git a/arch/blackfin/cpu/u-boot.lds b/arch/blackfin/cpu/u-boot.lds
index 2b8d285..cbc79de 100644
--- a/arch/blackfin/cpu/u-boot.lds
+++ b/arch/blackfin/cpu/u-boot.lds
@@ -119,6 +119,10 @@ SECTIONS
 		___u_boot_cmd_end = .;
 	} >ram_data
 
+	.u_boot_list : {
+		#include <u-boot.lst>
+	} >ram_data
+
 	.text_l1 :
 	{
 		. = ALIGN(4);
diff --git a/arch/microblaze/cpu/u-boot.lds b/arch/microblaze/cpu/u-boot.lds
index d033a28..06a2855 100644
--- a/arch/microblaze/cpu/u-boot.lds
+++ b/arch/microblaze/cpu/u-boot.lds
@@ -58,6 +58,11 @@ SECTIONS
 		__u_boot_cmd_end = .;
 	}
 
+	. = ALIGN(4);
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	.bss ALIGN(0x4):
 	{
 		__bss_start = .;
diff --git a/arch/nds32/cpu/n1213/u-boot.lds b/arch/nds32/cpu/n1213/u-boot.lds
index 1903420..62e357a 100644
--- a/arch/nds32/cpu/n1213/u-boot.lds
+++ b/arch/nds32/cpu/n1213/u-boot.lds
@@ -57,6 +57,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 
 	_end = .;
 
diff --git a/arch/nios2/cpu/u-boot.lds b/arch/nios2/cpu/u-boot.lds
index 4856bd3..e24b769 100644
--- a/arch/nios2/cpu/u-boot.lds
+++ b/arch/nios2/cpu/u-boot.lds
@@ -53,6 +53,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	/* INIT DATA sections - "Small" data (see the gcc -G option)
 	 * is always gp-relative. Here we make all init data sections
 	 * adjacent to simplify the startup code -- and provide
diff --git a/arch/powerpc/cpu/74xx_7xx/u-boot.lds b/arch/powerpc/cpu/74xx_7xx/u-boot.lds
index 24823cd..04484a5 100644
--- a/arch/powerpc/cpu/74xx_7xx/u-boot.lds
+++ b/arch/powerpc/cpu/74xx_7xx/u-boot.lds
@@ -66,6 +66,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc512x/u-boot.lds b/arch/powerpc/cpu/mpc512x/u-boot.lds
index 7a4d927..656a062 100644
--- a/arch/powerpc/cpu/mpc512x/u-boot.lds
+++ b/arch/powerpc/cpu/mpc512x/u-boot.lds
@@ -61,6 +61,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc5xx/u-boot.lds b/arch/powerpc/cpu/mpc5xx/u-boot.lds
index e02b213..e04528d 100644
--- a/arch/powerpc/cpu/mpc5xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc5xx/u-boot.lds
@@ -69,6 +69,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds b/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
index 0c6c54e..acddf5f 100644
--- a/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
+++ b/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
@@ -70,6 +70,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc5xxx/u-boot.lds b/arch/powerpc/cpu/mpc5xxx/u-boot.lds
index 5dcaec1..998221e 100644
--- a/arch/powerpc/cpu/mpc5xxx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc5xxx/u-boot.lds
@@ -64,6 +64,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc8220/u-boot.lds b/arch/powerpc/cpu/mpc8220/u-boot.lds
index 39bb42e..45d5e19 100644
--- a/arch/powerpc/cpu/mpc8220/u-boot.lds
+++ b/arch/powerpc/cpu/mpc8220/u-boot.lds
@@ -63,6 +63,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc824x/u-boot.lds b/arch/powerpc/cpu/mpc824x/u-boot.lds
index b30ce76..a80d91e 100644
--- a/arch/powerpc/cpu/mpc824x/u-boot.lds
+++ b/arch/powerpc/cpu/mpc824x/u-boot.lds
@@ -64,6 +64,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc8260/u-boot.lds b/arch/powerpc/cpu/mpc8260/u-boot.lds
index 60b71ec..f33f648 100644
--- a/arch/powerpc/cpu/mpc8260/u-boot.lds
+++ b/arch/powerpc/cpu/mpc8260/u-boot.lds
@@ -63,6 +63,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc83xx/u-boot.lds b/arch/powerpc/cpu/mpc83xx/u-boot.lds
index 2f4b9ad..45a9cf8 100644
--- a/arch/powerpc/cpu/mpc83xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc83xx/u-boot.lds
@@ -62,6 +62,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds b/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
index 8ba9399..29aabde 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
@@ -74,6 +74,10 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds b/arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds
index 668158f..46dbaed 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds
@@ -53,6 +53,10 @@ SECTIONS
 	}
 	_edata  =  .;
 
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	. = ALIGN(8);
 	__init_begin = .;
 	__init_end = .;
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot.lds b/arch/powerpc/cpu/mpc85xx/u-boot.lds
index efe34b7..49fe44d 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot.lds
@@ -81,6 +81,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/arch/powerpc/cpu/mpc86xx/u-boot.lds b/arch/powerpc/cpu/mpc86xx/u-boot.lds
index 121e529..17371ac 100644
--- a/arch/powerpc/cpu/mpc86xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc86xx/u-boot.lds
@@ -68,6 +68,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/arch/powerpc/cpu/ppc4xx/u-boot.lds b/arch/powerpc/cpu/ppc4xx/u-boot.lds
index 2466b79..6df673e 100644
--- a/arch/powerpc/cpu/ppc4xx/u-boot.lds
+++ b/arch/powerpc/cpu/ppc4xx/u-boot.lds
@@ -82,6 +82,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/arch/sandbox/cpu/u-boot.lds b/arch/sandbox/cpu/u-boot.lds
index 9960138..b7f25ab 100644
--- a/arch/sandbox/cpu/u-boot.lds
+++ b/arch/sandbox/cpu/u-boot.lds
@@ -28,6 +28,11 @@ SECTIONS
 	_u_boot_cmd : { *(.u_boot_cmd) }
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	__u_boot_sandbox_option_start = .;
 	_u_boot_sandbox_getopt : { *(.u_boot_sandbox_getopt) }
 	__u_boot_sandbox_option_end = .;
diff --git a/arch/sh/cpu/sh2/u-boot.lds b/arch/sh/cpu/sh2/u-boot.lds
index b86a822..3cd28f7 100644
--- a/arch/sh/cpu/sh2/u-boot.lds
+++ b/arch/sh/cpu/sh2/u-boot.lds
@@ -80,6 +80,10 @@ SECTIONS
 	}
 	PROVIDE (__u_boot_cmd_end = .);
 
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	PROVIDE (reloc_dst_end = .);
 
 	PROVIDE (bss_start = .);
diff --git a/arch/sh/cpu/sh3/u-boot.lds b/arch/sh/cpu/sh3/u-boot.lds
index 9bf8503..f0bad51 100644
--- a/arch/sh/cpu/sh3/u-boot.lds
+++ b/arch/sh/cpu/sh3/u-boot.lds
@@ -86,6 +86,10 @@ SECTIONS
 	}
 	PROVIDE (__u_boot_cmd_end = .);
 
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	PROVIDE (reloc_dst_end = .);
 	/* _reloc_dst_end = .; */
 
diff --git a/arch/sh/cpu/sh4/u-boot.lds b/arch/sh/cpu/sh4/u-boot.lds
index d9c70bc..d204304 100644
--- a/arch/sh/cpu/sh4/u-boot.lds
+++ b/arch/sh/cpu/sh4/u-boot.lds
@@ -83,6 +83,10 @@ SECTIONS
 	}
 	PROVIDE (__u_boot_cmd_end = .);
 
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	PROVIDE (reloc_dst_end = .);
 	/* _reloc_dst_end = .; */
 
diff --git a/arch/x86/cpu/u-boot.lds b/arch/x86/cpu/u-boot.lds
index fe28030..4bb2a2f 100644
--- a/arch/x86/cpu/u-boot.lds
+++ b/arch/x86/cpu/u-boot.lds
@@ -39,6 +39,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 	.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
 
 	. = ALIGN(4);
diff --git a/board/BuS/eb_cpu5282/u-boot.lds b/board/BuS/eb_cpu5282/u-boot.lds
index 4ba1964..a708d06 100644
--- a/board/BuS/eb_cpu5282/u-boot.lds
+++ b/board/BuS/eb_cpu5282/u-boot.lds
@@ -69,6 +69,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/LEOX/elpt860/u-boot.lds b/board/LEOX/elpt860/u-boot.lds
index 5aaf6b3..b04e56c 100644
--- a/board/LEOX/elpt860/u-boot.lds
+++ b/board/LEOX/elpt860/u-boot.lds
@@ -90,6 +90,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/RPXClassic/u-boot.lds b/board/RPXClassic/u-boot.lds
index d0b60cf..9133469 100644
--- a/board/RPXClassic/u-boot.lds
+++ b/board/RPXClassic/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/RPXClassic/u-boot.lds.debug b/board/RPXClassic/u-boot.lds.debug
index 99c48f2..46f2f8f 100644
--- a/board/RPXClassic/u-boot.lds.debug
+++ b/board/RPXClassic/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/RPXlite/u-boot.lds b/board/RPXlite/u-boot.lds
index d0b60cf..9133469 100644
--- a/board/RPXlite/u-boot.lds
+++ b/board/RPXlite/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/RPXlite/u-boot.lds.debug b/board/RPXlite/u-boot.lds.debug
index 99c48f2..46f2f8f 100644
--- a/board/RPXlite/u-boot.lds.debug
+++ b/board/RPXlite/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/RPXlite_dw/u-boot.lds b/board/RPXlite_dw/u-boot.lds
index d0b60cf..9133469 100644
--- a/board/RPXlite_dw/u-boot.lds
+++ b/board/RPXlite_dw/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/RPXlite_dw/u-boot.lds.debug b/board/RPXlite_dw/u-boot.lds.debug
index 4491edd..1b042f8 100644
--- a/board/RPXlite_dw/u-boot.lds.debug
+++ b/board/RPXlite_dw/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/RRvision/u-boot.lds b/board/RRvision/u-boot.lds
index 8385373..4613432 100644
--- a/board/RRvision/u-boot.lds
+++ b/board/RRvision/u-boot.lds
@@ -75,6 +75,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/actux1/u-boot.lds b/board/actux1/u-boot.lds
index 9dbaa6f..a8971d0 100644
--- a/board/actux1/u-boot.lds
+++ b/board/actux1/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	}
 	__u_boot_cmd_end =.;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	. = ALIGN (4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/actux2/u-boot.lds b/board/actux2/u-boot.lds
index 3575ed9..7c0caf6 100644
--- a/board/actux2/u-boot.lds
+++ b/board/actux2/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	}
 	__u_boot_cmd_end =.;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	. = ALIGN (4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/actux3/u-boot.lds b/board/actux3/u-boot.lds
index 35aab29..530073e 100644
--- a/board/actux3/u-boot.lds
+++ b/board/actux3/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	}
 	__u_boot_cmd_end =.;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	. = ALIGN (4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/adder/u-boot.lds b/board/adder/u-boot.lds
index a762769..05d6323 100644
--- a/board/adder/u-boot.lds
+++ b/board/adder/u-boot.lds
@@ -66,6 +66,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/ait/cam_enc_4xx/u-boot-spl.lds b/board/ait/cam_enc_4xx/u-boot-spl.lds
index 52c986e..656b2fb 100644
--- a/board/ait/cam_enc_4xx/u-boot-spl.lds
+++ b/board/ait/cam_enc_4xx/u-boot-spl.lds
@@ -48,6 +48,10 @@ SECTIONS
 	. = ALIGN(4);
 	.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
 	. = ALIGN(4);
+	.u_boot_list : {
+		#include <u-boot.lst>
+	} >.sram
+	. = ALIGN(4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
 		*(.rel*)
diff --git a/board/altera/nios2-generic/u-boot.lds b/board/altera/nios2-generic/u-boot.lds
index 88ced62..f087733 100644
--- a/board/altera/nios2-generic/u-boot.lds
+++ b/board/altera/nios2-generic/u-boot.lds
@@ -54,6 +54,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	/* INIT DATA sections - "Small" data (see the gcc -G option)
 	 * is always gp-relative. Here we make all init data sections
 	 * adjacent to simplify the startup code -- and provide
diff --git a/board/amcc/acadia/u-boot-nand.lds b/board/amcc/acadia/u-boot-nand.lds
index ab67de2..9609338 100644
--- a/board/amcc/acadia/u-boot-nand.lds
+++ b/board/amcc/acadia/u-boot-nand.lds
@@ -76,6 +76,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/amcc/bamboo/u-boot-nand.lds b/board/amcc/bamboo/u-boot-nand.lds
index 3ad8709..4f4194e 100644
--- a/board/amcc/bamboo/u-boot-nand.lds
+++ b/board/amcc/bamboo/u-boot-nand.lds
@@ -77,6 +77,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/amcc/canyonlands/u-boot-nand.lds b/board/amcc/canyonlands/u-boot-nand.lds
index 76f89f1..1876bae 100644
--- a/board/amcc/canyonlands/u-boot-nand.lds
+++ b/board/amcc/canyonlands/u-boot-nand.lds
@@ -77,6 +77,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/amcc/kilauea/u-boot-nand.lds b/board/amcc/kilauea/u-boot-nand.lds
index ab67de2..9609338 100644
--- a/board/amcc/kilauea/u-boot-nand.lds
+++ b/board/amcc/kilauea/u-boot-nand.lds
@@ -76,6 +76,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/amcc/sequoia/u-boot-nand.lds b/board/amcc/sequoia/u-boot-nand.lds
index 07ae8b1..a0b98f4 100644
--- a/board/amcc/sequoia/u-boot-nand.lds
+++ b/board/amcc/sequoia/u-boot-nand.lds
@@ -77,6 +77,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/amcc/sequoia/u-boot-ram.lds b/board/amcc/sequoia/u-boot-ram.lds
index 423400a..32a7661 100644
--- a/board/amcc/sequoia/u-boot-ram.lds
+++ b/board/amcc/sequoia/u-boot-ram.lds
@@ -68,6 +68,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/astro/mcf5373l/u-boot.lds b/board/astro/mcf5373l/u-boot.lds
index a1d8e0f..e27c286 100644
--- a/board/astro/mcf5373l/u-boot.lds
+++ b/board/astro/mcf5373l/u-boot.lds
@@ -113,6 +113,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/c2mon/u-boot.lds b/board/c2mon/u-boot.lds
index b9b8e3c..0b92ef6 100644
--- a/board/c2mon/u-boot.lds
+++ b/board/c2mon/u-boot.lds
@@ -78,6 +78,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/c2mon/u-boot.lds.debug b/board/c2mon/u-boot.lds.debug
index c771102..c28e2b9 100644
--- a/board/c2mon/u-boot.lds.debug
+++ b/board/c2mon/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/cobra5272/u-boot.lds b/board/cobra5272/u-boot.lds
index c4039ed..77b8e80 100644
--- a/board/cobra5272/u-boot.lds
+++ b/board/cobra5272/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/cogent/u-boot.lds b/board/cogent/u-boot.lds
index 2393d8d..f7137bd 100644
--- a/board/cogent/u-boot.lds
+++ b/board/cogent/u-boot.lds
@@ -74,6 +74,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/cogent/u-boot.lds.debug b/board/cogent/u-boot.lds.debug
index 99c48f2..46f2f8f 100644
--- a/board/cogent/u-boot.lds.debug
+++ b/board/cogent/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/cray/L1/u-boot.lds.debug b/board/cray/L1/u-boot.lds.debug
index fcf8ebb..15cccee 100644
--- a/board/cray/L1/u-boot.lds.debug
+++ b/board/cray/L1/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/dave/PPChameleonEVB/u-boot.lds b/board/dave/PPChameleonEVB/u-boot.lds
index 3b10114..184c6fc 100644
--- a/board/dave/PPChameleonEVB/u-boot.lds
+++ b/board/dave/PPChameleonEVB/u-boot.lds
@@ -78,6 +78,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/davinci/da8xxevm/u-boot-spl-da850evm.lds b/board/davinci/da8xxevm/u-boot-spl-da850evm.lds
index 6f6e065..c5fd93c 100644
--- a/board/davinci/da8xxevm/u-boot-spl-da850evm.lds
+++ b/board/davinci/da8xxevm/u-boot-spl-da850evm.lds
@@ -47,6 +47,12 @@ SECTIONS
 
 	. = ALIGN(4);
 	.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
+
+	. = ALIGN(4);
+	.u_boot_list : {
+		#include <u-boot.lst>
+	} >.sram
+
 	. = ALIGN(4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/davinci/da8xxevm/u-boot-spl-hawk.lds b/board/davinci/da8xxevm/u-boot-spl-hawk.lds
index b3a41af..86dc172 100644
--- a/board/davinci/da8xxevm/u-boot-spl-hawk.lds
+++ b/board/davinci/da8xxevm/u-boot-spl-hawk.lds
@@ -58,6 +58,11 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 	__rel_dyn_start = .;
 	__rel_dyn_end = .;
 	__dynsym_start = .;
diff --git a/board/dbau1x00/u-boot.lds b/board/dbau1x00/u-boot.lds
index 4a59cea..6992c0f 100644
--- a/board/dbau1x00/u-boot.lds
+++ b/board/dbau1x00/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	  __u_boot_cmd_end = .;
 	}
 
+	. = ALIGN(4);
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
 
diff --git a/board/dvlhost/u-boot.lds b/board/dvlhost/u-boot.lds
index 01ec390..5171630 100644
--- a/board/dvlhost/u-boot.lds
+++ b/board/dvlhost/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	}
 	__u_boot_cmd_end =.;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	. = ALIGN (4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/eltec/mhpc/u-boot.lds b/board/eltec/mhpc/u-boot.lds
index fd4e8a5..25b8839 100644
--- a/board/eltec/mhpc/u-boot.lds
+++ b/board/eltec/mhpc/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/eltec/mhpc/u-boot.lds.debug b/board/eltec/mhpc/u-boot.lds.debug
index c771102..c28e2b9 100644
--- a/board/eltec/mhpc/u-boot.lds.debug
+++ b/board/eltec/mhpc/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/emk/top860/u-boot.lds b/board/emk/top860/u-boot.lds
index fb06648..485c68d 100644
--- a/board/emk/top860/u-boot.lds
+++ b/board/emk/top860/u-boot.lds
@@ -71,6 +71,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/ep88x/u-boot.lds b/board/ep88x/u-boot.lds
index 332b35a..067fd5f 100644
--- a/board/ep88x/u-boot.lds
+++ b/board/ep88x/u-boot.lds
@@ -66,6 +66,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/esd/dasa_sim/u-boot.lds b/board/esd/dasa_sim/u-boot.lds
index b15948d..607e601 100644
--- a/board/esd/dasa_sim/u-boot.lds
+++ b/board/esd/dasa_sim/u-boot.lds
@@ -77,6 +77,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/esd/pmc440/u-boot-nand.lds b/board/esd/pmc440/u-boot-nand.lds
index 71f0fd2..38f5cc6 100644
--- a/board/esd/pmc440/u-boot-nand.lds
+++ b/board/esd/pmc440/u-boot-nand.lds
@@ -106,6 +106,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+		#include <u-boot.lst>
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/esd/tasreg/u-boot.lds b/board/esd/tasreg/u-boot.lds
index f697ccd..158828c 100644
--- a/board/esd/tasreg/u-boot.lds
+++ b/board/esd/tasreg/u-boot.lds
@@ -69,6 +69,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/esteem192e/u-boot.lds b/board/esteem192e/u-boot.lds
index 163b83d..3eaaad8 100644
--- a/board/esteem192e/u-boot.lds
+++ b/board/esteem192e/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/etx094/u-boot.lds b/board/etx094/u-boot.lds
index 8465937..df9b44a 100644
--- a/board/etx094/u-boot.lds
+++ b/board/etx094/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/evb64260/u-boot.lds b/board/evb64260/u-boot.lds
index 2d031ef..05461ca 100644
--- a/board/evb64260/u-boot.lds
+++ b/board/evb64260/u-boot.lds
@@ -74,6 +74,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/fads/u-boot.lds b/board/fads/u-boot.lds
index 9ea0674..4a41db8 100644
--- a/board/fads/u-boot.lds
+++ b/board/fads/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/flagadm/u-boot.lds b/board/flagadm/u-boot.lds
index fd4e8a5..25b8839 100644
--- a/board/flagadm/u-boot.lds
+++ b/board/flagadm/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/flagadm/u-boot.lds.debug b/board/flagadm/u-boot.lds.debug
index c771102..c28e2b9 100644
--- a/board/flagadm/u-boot.lds.debug
+++ b/board/flagadm/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5208evbe/u-boot.lds b/board/freescale/m5208evbe/u-boot.lds
index 6e39be1..b1d2d01 100644
--- a/board/freescale/m5208evbe/u-boot.lds
+++ b/board/freescale/m5208evbe/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m52277evb/u-boot.lds b/board/freescale/m52277evb/u-boot.lds
index 3e9f4c3..0a7ca55 100644
--- a/board/freescale/m52277evb/u-boot.lds
+++ b/board/freescale/m52277evb/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5235evb/u-boot.lds b/board/freescale/m5235evb/u-boot.lds
index d39e734..a4a62ac 100644
--- a/board/freescale/m5235evb/u-boot.lds
+++ b/board/freescale/m5235evb/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5249evb/u-boot.lds b/board/freescale/m5249evb/u-boot.lds
index c4039ed..77b8e80 100644
--- a/board/freescale/m5249evb/u-boot.lds
+++ b/board/freescale/m5249evb/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5253demo/u-boot.lds b/board/freescale/m5253demo/u-boot.lds
index cbd2831..1dd5539 100644
--- a/board/freescale/m5253demo/u-boot.lds
+++ b/board/freescale/m5253demo/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5253evbe/u-boot.lds b/board/freescale/m5253evbe/u-boot.lds
index c4039ed..77b8e80 100644
--- a/board/freescale/m5253evbe/u-boot.lds
+++ b/board/freescale/m5253evbe/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5271evb/u-boot.lds b/board/freescale/m5271evb/u-boot.lds
index 4717036..ecad667 100644
--- a/board/freescale/m5271evb/u-boot.lds
+++ b/board/freescale/m5271evb/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5272c3/u-boot.lds b/board/freescale/m5272c3/u-boot.lds
index c4039ed..77b8e80 100644
--- a/board/freescale/m5272c3/u-boot.lds
+++ b/board/freescale/m5272c3/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5275evb/u-boot.lds b/board/freescale/m5275evb/u-boot.lds
index 6c2dfe8..60c0501 100644
--- a/board/freescale/m5275evb/u-boot.lds
+++ b/board/freescale/m5275evb/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5282evb/u-boot.lds b/board/freescale/m5282evb/u-boot.lds
index 4ba1964..a708d06 100644
--- a/board/freescale/m5282evb/u-boot.lds
+++ b/board/freescale/m5282evb/u-boot.lds
@@ -69,6 +69,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m53017evb/u-boot.lds b/board/freescale/m53017evb/u-boot.lds
index 80935f2..81da237 100644
--- a/board/freescale/m53017evb/u-boot.lds
+++ b/board/freescale/m53017evb/u-boot.lds
@@ -75,6 +75,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5329evb/u-boot.lds b/board/freescale/m5329evb/u-boot.lds
index 40af8bc..c575522 100644
--- a/board/freescale/m5329evb/u-boot.lds
+++ b/board/freescale/m5329evb/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5373evb/u-boot.lds b/board/freescale/m5373evb/u-boot.lds
index 19342ac..5d2c655 100644
--- a/board/freescale/m5373evb/u-boot.lds
+++ b/board/freescale/m5373evb/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m54451evb/u-boot.lds b/board/freescale/m54451evb/u-boot.lds
index 45924b7..76ead53 100644
--- a/board/freescale/m54451evb/u-boot.lds
+++ b/board/freescale/m54451evb/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m54455evb/u-boot.lds b/board/freescale/m54455evb/u-boot.lds
index f341449..0d2cb02 100644
--- a/board/freescale/m54455evb/u-boot.lds
+++ b/board/freescale/m54455evb/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m547xevb/u-boot.lds b/board/freescale/m547xevb/u-boot.lds
index 5472689..11fa8bc 100644
--- a/board/freescale/m547xevb/u-boot.lds
+++ b/board/freescale/m547xevb/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m548xevb/u-boot.lds b/board/freescale/m548xevb/u-boot.lds
index cf3f38c..0c8ffd4 100644
--- a/board/freescale/m548xevb/u-boot.lds
+++ b/board/freescale/m548xevb/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/mx31ads/u-boot.lds b/board/freescale/mx31ads/u-boot.lds
index 79eb7ac..e59fd18 100644
--- a/board/freescale/mx31ads/u-boot.lds
+++ b/board/freescale/mx31ads/u-boot.lds
@@ -62,6 +62,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/gaisler/gr_cpci_ax2000/u-boot.lds b/board/gaisler/gr_cpci_ax2000/u-boot.lds
index 87cb8e3..ec72718 100644
--- a/board/gaisler/gr_cpci_ax2000/u-boot.lds
+++ b/board/gaisler/gr_cpci_ax2000/u-boot.lds
@@ -90,6 +90,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	.data	:
 	{
 		*(.data)
diff --git a/board/gaisler/gr_ep2s60/u-boot.lds b/board/gaisler/gr_ep2s60/u-boot.lds
index 2fb44aa..5a38796 100644
--- a/board/gaisler/gr_ep2s60/u-boot.lds
+++ b/board/gaisler/gr_ep2s60/u-boot.lds
@@ -90,6 +90,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	.data	:
 	{
 		*(.data)
diff --git a/board/gaisler/gr_xc3s_1500/u-boot.lds b/board/gaisler/gr_xc3s_1500/u-boot.lds
index 8719e97..3da021c 100644
--- a/board/gaisler/gr_xc3s_1500/u-boot.lds
+++ b/board/gaisler/gr_xc3s_1500/u-boot.lds
@@ -90,6 +90,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	.data	:
 	{
 		*(.data)
diff --git a/board/gaisler/grsim/u-boot.lds b/board/gaisler/grsim/u-boot.lds
index 33890b5..eba1015 100644
--- a/board/gaisler/grsim/u-boot.lds
+++ b/board/gaisler/grsim/u-boot.lds
@@ -89,6 +89,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	.data	:
 	{
 		*(.data)
diff --git a/board/gaisler/grsim_leon2/u-boot.lds b/board/gaisler/grsim_leon2/u-boot.lds
index cf6e502..4f90a46 100644
--- a/board/gaisler/grsim_leon2/u-boot.lds
+++ b/board/gaisler/grsim_leon2/u-boot.lds
@@ -89,6 +89,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	.data	:
 	{
 		*(.data)
diff --git a/board/gen860t/u-boot-flashenv.lds b/board/gen860t/u-boot-flashenv.lds
index 5bb6c62..8e04b11 100644
--- a/board/gen860t/u-boot-flashenv.lds
+++ b/board/gen860t/u-boot-flashenv.lds
@@ -75,6 +75,10 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+		#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/gen860t/u-boot.lds b/board/gen860t/u-boot.lds
index be99b51..c8602be 100644
--- a/board/gen860t/u-boot.lds
+++ b/board/gen860t/u-boot.lds
@@ -75,6 +75,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/genietv/u-boot.lds b/board/genietv/u-boot.lds
index 1d66a9b..961222b 100644
--- a/board/genietv/u-boot.lds
+++ b/board/genietv/u-boot.lds
@@ -84,6 +84,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/genietv/u-boot.lds.debug b/board/genietv/u-boot.lds.debug
index cfa4ef3..a3479ba 100644
--- a/board/genietv/u-boot.lds.debug
+++ b/board/genietv/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/hermes/u-boot.lds b/board/hermes/u-boot.lds
index ca97115..9fe2f58 100644
--- a/board/hermes/u-boot.lds
+++ b/board/hermes/u-boot.lds
@@ -76,6 +76,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/hermes/u-boot.lds.debug b/board/hermes/u-boot.lds.debug
index 8a197de..6a53d8a 100644
--- a/board/hermes/u-boot.lds.debug
+++ b/board/hermes/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/hymod/u-boot.lds b/board/hymod/u-boot.lds
index 1309f20..50e4788 100644
--- a/board/hymod/u-boot.lds
+++ b/board/hymod/u-boot.lds
@@ -114,6 +114,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/hymod/u-boot.lds.debug b/board/hymod/u-boot.lds.debug
index 99c48f2..46f2f8f 100644
--- a/board/hymod/u-boot.lds.debug
+++ b/board/hymod/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/icu862/u-boot.lds b/board/icu862/u-boot.lds
index 93c79a6..f476967 100644
--- a/board/icu862/u-boot.lds
+++ b/board/icu862/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/icu862/u-boot.lds.debug b/board/icu862/u-boot.lds.debug
index 91d3e67..87ec870 100644
--- a/board/icu862/u-boot.lds.debug
+++ b/board/icu862/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/idmr/u-boot.lds b/board/idmr/u-boot.lds
index f697ccd..158828c 100644
--- a/board/idmr/u-boot.lds
+++ b/board/idmr/u-boot.lds
@@ -69,6 +69,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/incaip/u-boot.lds b/board/incaip/u-boot.lds
index 4a59cea..6992c0f 100644
--- a/board/incaip/u-boot.lds
+++ b/board/incaip/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	  __u_boot_cmd_end = .;
 	}
 
+	. = ALIGN(4);
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
 
diff --git a/board/ip860/u-boot.lds b/board/ip860/u-boot.lds
index d0b60cf..9133469 100644
--- a/board/ip860/u-boot.lds
+++ b/board/ip860/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/ip860/u-boot.lds.debug b/board/ip860/u-boot.lds.debug
index 2f61b11..79e4f2d 100644
--- a/board/ip860/u-boot.lds.debug
+++ b/board/ip860/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/ivm/u-boot.lds b/board/ivm/u-boot.lds
index 1e843eb..7e63cd7 100644
--- a/board/ivm/u-boot.lds
+++ b/board/ivm/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/ivm/u-boot.lds.debug b/board/ivm/u-boot.lds.debug
index 732a46f..ff4581f 100644
--- a/board/ivm/u-boot.lds.debug
+++ b/board/ivm/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/korat/u-boot-F7FC.lds b/board/korat/u-boot-F7FC.lds
index 6a017e3..f91310a 100644
--- a/board/korat/u-boot-F7FC.lds
+++ b/board/korat/u-boot-F7FC.lds
@@ -112,6 +112,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/kup/kup4k/u-boot.lds b/board/kup/kup4k/u-boot.lds
index d0b60cf..9133469 100644
--- a/board/kup/kup4k/u-boot.lds
+++ b/board/kup/kup4k/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/kup/kup4k/u-boot.lds.debug b/board/kup/kup4k/u-boot.lds.debug
index 4491edd..1b042f8 100644
--- a/board/kup/kup4k/u-boot.lds.debug
+++ b/board/kup/kup4k/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/kup/kup4x/u-boot.lds b/board/kup/kup4x/u-boot.lds
index d0b60cf..9133469 100644
--- a/board/kup/kup4x/u-boot.lds
+++ b/board/kup/kup4x/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/kup/kup4x/u-boot.lds.debug b/board/kup/kup4x/u-boot.lds.debug
index 4491edd..1b042f8 100644
--- a/board/kup/kup4x/u-boot.lds.debug
+++ b/board/kup/kup4x/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/lantec/u-boot.lds b/board/lantec/u-boot.lds
index de0b355..e57a794 100644
--- a/board/lantec/u-boot.lds
+++ b/board/lantec/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/lantec/u-boot.lds.debug b/board/lantec/u-boot.lds.debug
index 856a99b..29148ee 100644
--- a/board/lantec/u-boot.lds.debug
+++ b/board/lantec/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/lwmon/u-boot.lds b/board/lwmon/u-boot.lds
index 8bf7324..78445b3 100644
--- a/board/lwmon/u-boot.lds
+++ b/board/lwmon/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/lwmon/u-boot.lds.debug b/board/lwmon/u-boot.lds.debug
index 2412234..8fcdb90 100644
--- a/board/lwmon/u-boot.lds.debug
+++ b/board/lwmon/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/manroland/uc100/u-boot.lds b/board/manroland/uc100/u-boot.lds
index 731cec9..aa289cd 100644
--- a/board/manroland/uc100/u-boot.lds
+++ b/board/manroland/uc100/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/matrix_vision/mvsmr/u-boot.lds b/board/matrix_vision/mvsmr/u-boot.lds
index 57c37de..5222ebd 100644
--- a/board/matrix_vision/mvsmr/u-boot.lds
+++ b/board/matrix_vision/mvsmr/u-boot.lds
@@ -78,6 +78,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/mbx8xx/u-boot.lds b/board/mbx8xx/u-boot.lds
index d0b60cf..9133469 100644
--- a/board/mbx8xx/u-boot.lds
+++ b/board/mbx8xx/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/mbx8xx/u-boot.lds.debug b/board/mbx8xx/u-boot.lds.debug
index a95c47f..722a405 100644
--- a/board/mbx8xx/u-boot.lds.debug
+++ b/board/mbx8xx/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/micronas/vct/u-boot.lds b/board/micronas/vct/u-boot.lds
index 3a05ef9..114ce10 100644
--- a/board/micronas/vct/u-boot.lds
+++ b/board/micronas/vct/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
 
diff --git a/board/mousse/u-boot.lds b/board/mousse/u-boot.lds
index dae2cfc..aff4269 100644
--- a/board/mousse/u-boot.lds
+++ b/board/mousse/u-boot.lds
@@ -64,6 +64,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/mpl/pip405/u-boot.lds.debug b/board/mpl/pip405/u-boot.lds.debug
index fcf8ebb..15cccee 100644
--- a/board/mpl/pip405/u-boot.lds.debug
+++ b/board/mpl/pip405/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/mvblue/u-boot.lds b/board/mvblue/u-boot.lds
index 11624d2..dc5747c 100644
--- a/board/mvblue/u-boot.lds
+++ b/board/mvblue/u-boot.lds
@@ -74,6 +74,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/netphone/u-boot.lds b/board/netphone/u-boot.lds
index a949e4f..ae48cba 100644
--- a/board/netphone/u-boot.lds
+++ b/board/netphone/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/netphone/u-boot.lds.debug b/board/netphone/u-boot.lds.debug
index a001f3f..ffebab5 100644
--- a/board/netphone/u-boot.lds.debug
+++ b/board/netphone/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/netta/u-boot.lds b/board/netta/u-boot.lds
index a949e4f..ae48cba 100644
--- a/board/netta/u-boot.lds
+++ b/board/netta/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/netta/u-boot.lds.debug b/board/netta/u-boot.lds.debug
index a001f3f..ffebab5 100644
--- a/board/netta/u-boot.lds.debug
+++ b/board/netta/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/netta2/u-boot.lds b/board/netta2/u-boot.lds
index a949e4f..ae48cba 100644
--- a/board/netta2/u-boot.lds
+++ b/board/netta2/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/netta2/u-boot.lds.debug b/board/netta2/u-boot.lds.debug
index a001f3f..ffebab5 100644
--- a/board/netta2/u-boot.lds.debug
+++ b/board/netta2/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/netvia/u-boot.lds b/board/netvia/u-boot.lds
index a949e4f..ae48cba 100644
--- a/board/netvia/u-boot.lds
+++ b/board/netvia/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/netvia/u-boot.lds.debug b/board/netvia/u-boot.lds.debug
index 6c7d698..b37ea7b 100644
--- a/board/netvia/u-boot.lds.debug
+++ b/board/netvia/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/nx823/u-boot.lds b/board/nx823/u-boot.lds
index fd4e8a5..25b8839 100644
--- a/board/nx823/u-boot.lds
+++ b/board/nx823/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/nx823/u-boot.lds.debug b/board/nx823/u-boot.lds.debug
index c771102..c28e2b9 100644
--- a/board/nx823/u-boot.lds.debug
+++ b/board/nx823/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/openrisc/openrisc-generic/u-boot.lds b/board/openrisc/openrisc-generic/u-boot.lds
index 1aed197..5995464 100644
--- a/board/openrisc/openrisc-generic/u-boot.lds
+++ b/board/openrisc/openrisc-generic/u-boot.lds
@@ -30,6 +30,11 @@ SECTIONS
 	 .u_boot_cmd : { *(.u_boot_cmd) } > ram
 	 __u_boot_cmd_end = .;
 
+	 . = ALIGN(4);
+	 .u_boot_list : {
+	#include <u-boot.lst>
+	 }
+
 	.rodata : {
 		*(.rodata);
 		*(.rodata.*)
diff --git a/board/pb1x00/u-boot.lds b/board/pb1x00/u-boot.lds
index bd0dee1..41b001c 100644
--- a/board/pb1x00/u-boot.lds
+++ b/board/pb1x00/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	  __u_boot_cmd_end = .;
 	}
 
+	. = ALIGN(4);
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
 
diff --git a/board/qemu-mips/u-boot.lds b/board/qemu-mips/u-boot.lds
index 9460b20..4515043 100644
--- a/board/qemu-mips/u-boot.lds
+++ b/board/qemu-mips/u-boot.lds
@@ -62,6 +62,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 	}
 
+	. = ALIGN(4);
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
 
diff --git a/board/qi/qi_lb60/u-boot.lds b/board/qi/qi_lb60/u-boot.lds
index 7317652..4a373ec 100644
--- a/board/qi/qi_lb60/u-boot.lds
+++ b/board/qi/qi_lb60/u-boot.lds
@@ -51,6 +51,11 @@ SECTIONS
 	.u_boot_cmd : { *(.u_boot_cmd) }
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
 
diff --git a/board/quantum/u-boot.lds b/board/quantum/u-boot.lds
index d0b60cf..9133469 100644
--- a/board/quantum/u-boot.lds
+++ b/board/quantum/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/r360mpi/u-boot.lds b/board/r360mpi/u-boot.lds
index 2fa085a..3138154 100644
--- a/board/r360mpi/u-boot.lds
+++ b/board/r360mpi/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/rbc823/u-boot.lds b/board/rbc823/u-boot.lds
index d943fb6..5e3d78f 100644
--- a/board/rbc823/u-boot.lds
+++ b/board/rbc823/u-boot.lds
@@ -81,6 +81,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/renesas/sh7757lcr/u-boot.lds b/board/renesas/sh7757lcr/u-boot.lds
index 38ebe88..b2cf392 100644
--- a/board/renesas/sh7757lcr/u-boot.lds
+++ b/board/renesas/sh7757lcr/u-boot.lds
@@ -85,6 +85,10 @@ SECTIONS
 	}
 	PROVIDE (__u_boot_cmd_end = .);
 
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	PROVIDE (reloc_dst_end = .);
 	/* _reloc_dst_end = .; */
 
diff --git a/board/rsdproto/u-boot.lds b/board/rsdproto/u-boot.lds
index a729c52..d43663c 100644
--- a/board/rsdproto/u-boot.lds
+++ b/board/rsdproto/u-boot.lds
@@ -101,6 +101,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/samsung/smdk5250/smdk5250-uboot-spl.lds b/board/samsung/smdk5250/smdk5250-uboot-spl.lds
index d78dd77..951d8ce 100644
--- a/board/samsung/smdk5250/smdk5250-uboot-spl.lds
+++ b/board/samsung/smdk5250/smdk5250-uboot-spl.lds
@@ -48,6 +48,11 @@ SECTIONS
 	.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
 	. = ALIGN(4);
 
+	.u_boot_list : {
+		#include <u-boot.lst>
+	} >.sram
+	. = ALIGN(4);
+
 	/* Align .machine_param on 256 byte boundary for easier searching */
 	.machine_param ALIGN(0x100) : { *(.machine_param) } >.sram
 	. = ALIGN(4);
diff --git a/board/samsung/smdk6400/u-boot-nand.lds b/board/samsung/smdk6400/u-boot-nand.lds
index f162815..50924fc 100644
--- a/board/samsung/smdk6400/u-boot-nand.lds
+++ b/board/samsung/smdk6400/u-boot-nand.lds
@@ -51,7 +51,12 @@ SECTIONS
 	.u_boot_cmd : { *(.u_boot_cmd) }
 	__u_boot_cmd_end = .;
 
-	. = ALIGN(4);
+	. = align(4);
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
+	. = align(4);
 	.mmudata : { *(.mmudata) }
 
 	. = ALIGN(4);
diff --git a/board/sandburst/karef/u-boot.lds.debug b/board/sandburst/karef/u-boot.lds.debug
index 31746e3..c3a72cb 100644
--- a/board/sandburst/karef/u-boot.lds.debug
+++ b/board/sandburst/karef/u-boot.lds.debug
@@ -119,6 +119,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/sandburst/metrobox/u-boot.lds.debug b/board/sandburst/metrobox/u-boot.lds.debug
index 4922bd2..bb73307 100644
--- a/board/sandburst/metrobox/u-boot.lds.debug
+++ b/board/sandburst/metrobox/u-boot.lds.debug
@@ -119,6 +119,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/sandpoint/u-boot.lds b/board/sandpoint/u-boot.lds
index e382fd1..a9c06ad 100644
--- a/board/sandpoint/u-boot.lds
+++ b/board/sandpoint/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/siemens/IAD210/u-boot.lds b/board/siemens/IAD210/u-boot.lds
index 0e78e4f..4214ace 100644
--- a/board/siemens/IAD210/u-boot.lds
+++ b/board/siemens/IAD210/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/sixnet/u-boot.lds b/board/sixnet/u-boot.lds
index 02d1980..0a71707 100644
--- a/board/sixnet/u-boot.lds
+++ b/board/sixnet/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/snmc/qs850/u-boot.lds b/board/snmc/qs850/u-boot.lds
index 9ab248a..eca88e5 100644
--- a/board/snmc/qs850/u-boot.lds
+++ b/board/snmc/qs850/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/snmc/qs860t/u-boot.lds b/board/snmc/qs860t/u-boot.lds
index d0b60cf..9133469 100644
--- a/board/snmc/qs860t/u-boot.lds
+++ b/board/snmc/qs860t/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/spc1920/u-boot.lds b/board/spc1920/u-boot.lds
index d0b60cf..9133469 100644
--- a/board/spc1920/u-boot.lds
+++ b/board/spc1920/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/spd8xx/u-boot.lds b/board/spd8xx/u-boot.lds
index a84e7fd..a233817 100644
--- a/board/spd8xx/u-boot.lds
+++ b/board/spd8xx/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/spd8xx/u-boot.lds.debug b/board/spd8xx/u-boot.lds.debug
index a95c47f..722a405 100644
--- a/board/spd8xx/u-boot.lds.debug
+++ b/board/spd8xx/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/stx/stxxtc/u-boot.lds b/board/stx/stxxtc/u-boot.lds
index a949e4f..ae48cba 100644
--- a/board/stx/stxxtc/u-boot.lds
+++ b/board/stx/stxxtc/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/stx/stxxtc/u-boot.lds.debug b/board/stx/stxxtc/u-boot.lds.debug
index a001f3f..ffebab5 100644
--- a/board/stx/stxxtc/u-boot.lds.debug
+++ b/board/stx/stxxtc/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/svm_sc8xx/u-boot.lds b/board/svm_sc8xx/u-boot.lds
index c65f022..4cdad4b 100644
--- a/board/svm_sc8xx/u-boot.lds
+++ b/board/svm_sc8xx/u-boot.lds
@@ -87,6 +87,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/tqc/tqm8xx/u-boot.lds b/board/tqc/tqm8xx/u-boot.lds
index 4f08be6..74e2b2f 100644
--- a/board/tqc/tqm8xx/u-boot.lds
+++ b/board/tqc/tqm8xx/u-boot.lds
@@ -87,6 +87,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/v37/u-boot.lds b/board/v37/u-boot.lds
index e62d53d..c82b1b3 100644
--- a/board/v37/u-boot.lds
+++ b/board/v37/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/vpac270/u-boot-spl.lds b/board/vpac270/u-boot-spl.lds
index 1958c2f..20161a4 100644
--- a/board/vpac270/u-boot-spl.lds
+++ b/board/vpac270/u-boot-spl.lds
@@ -57,6 +57,10 @@ SECTIONS
 		*(.data)
 	}
 
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	. = ALIGN(4);
 
 	.rel.dyn : {
diff --git a/board/w7o/u-boot.lds.debug b/board/w7o/u-boot.lds.debug
index 1c67b30..4d64088 100644
--- a/board/w7o/u-boot.lds.debug
+++ b/board/w7o/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/westel/amx860/u-boot.lds b/board/westel/amx860/u-boot.lds
index 3470b43..6074736 100644
--- a/board/westel/amx860/u-boot.lds
+++ b/board/westel/amx860/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/westel/amx860/u-boot.lds.debug b/board/westel/amx860/u-boot.lds.debug
index 91d3e67..87ec870 100644
--- a/board/westel/amx860/u-boot.lds.debug
+++ b/board/westel/amx860/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/xes/xpedite1000/u-boot.lds.debug b/board/xes/xpedite1000/u-boot.lds.debug
index e2e66ae..5296165 100644
--- a/board/xes/xpedite1000/u-boot.lds.debug
+++ b/board/xes/xpedite1000/u-boot.lds.debug
@@ -115,6 +115,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/examples/standalone/sparc.lds b/examples/standalone/sparc.lds
index 9733daa..646b80f 100644
--- a/examples/standalone/sparc.lds
+++ b/examples/standalone/sparc.lds
@@ -46,6 +46,7 @@ SECTIONS
 	{
 		*(.data)
 	}
+
 	. = ALIGN(4);
 	__data_end = .;
 
diff --git a/nand_spl/board/freescale/mx31pdk/u-boot.lds b/nand_spl/board/freescale/mx31pdk/u-boot.lds
index d2b08f6..b2a0f7c 100644
--- a/nand_spl/board/freescale/mx31pdk/u-boot.lds
+++ b/nand_spl/board/freescale/mx31pdk/u-boot.lds
@@ -51,6 +51,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/nand_spl/board/karo/tx25/u-boot.lds b/nand_spl/board/karo/tx25/u-boot.lds
index d2b08f6..24a3c0c 100644
--- a/nand_spl/board/karo/tx25/u-boot.lds
+++ b/nand_spl/board/karo/tx25/u-boot.lds
@@ -51,6 +51,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/nand_spl/board/samsung/smdk6400/u-boot.lds b/nand_spl/board/samsung/smdk6400/u-boot.lds
index 567f635..8481062 100644
--- a/nand_spl/board/samsung/smdk6400/u-boot.lds
+++ b/nand_spl/board/samsung/smdk6400/u-boot.lds
@@ -55,6 +55,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 
 	.rel.dyn : {
 	__rel_dyn_start = .;
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 4/6 V2] common: Convert the U-Boot commands to LG-arrays
  2012-10-07  0:06 ` [U-Boot] [PATCH 0/6 V2] Linker-generated arrays (take 2) Marek Vasut
                     ` (2 preceding siblings ...)
  2012-10-07  0:06   ` [U-Boot] [PATCH 3/6 V2] common: Add .u_boot_list into all linker files Marek Vasut
@ 2012-10-07  0:06   ` Marek Vasut
  2012-10-07  0:06   ` [U-Boot] [PATCH 5/6 V2] common: Discard the __u_boot_cmd section Marek Vasut
                     ` (2 subsequent siblings)
  6 siblings, 0 replies; 48+ messages in thread
From: Marek Vasut @ 2012-10-07  0:06 UTC (permalink / raw)
  To: u-boot

This patch converts the old method of creating a list of command
onto the new LG-arrays code. The old u_boot_cmd section is converted
to new u_boot_list_cmd subsection and LG-array macros used as needed.

Minor adjustments had to be made to the common code to work with the
LG-array macros, mostly the fixup_cmdtable() calls are now passed the
ll_entry_start and ll_entry_count instead of linker-generated symbols.

The command.c had to be adjusted as well so it would use the newly
introduced LG-array API instead of directly using linker-generated
symbols.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>

---
 arch/arm/imx-common/cmd_bmode.c |   11 +++++++----
 arch/avr32/lib/board.c          |    4 ++--
 arch/m68k/lib/board.c           |    4 ++--
 arch/mips/lib/board.c           |    4 ++--
 arch/nds32/lib/board.c          |    4 ++--
 arch/sparc/lib/board.c          |    4 ++--
 common/cmd_help.c               |    8 ++++----
 common/command.c                |   17 ++++++++++-------
 doc/README.commands             |   10 +++++-----
 include/command.h               |   26 ++++++++++++++------------
 10 files changed, 50 insertions(+), 42 deletions(-)

V2:
- Rebase on top of testing/dm-kerneldoc

diff --git a/arch/arm/imx-common/cmd_bmode.c b/arch/arm/imx-common/cmd_bmode.c
index 02fe72e..ddc14b0 100644
--- a/arch/arm/imx-common/cmd_bmode.c
+++ b/arch/arm/imx-common/cmd_bmode.c
@@ -24,6 +24,7 @@
 #include <asm/io.h>
 #include <asm/imx-common/boot_mode.h>
 #include <malloc.h>
+#include <command.h>
 
 static const struct boot_mode *modes[2];
 
@@ -103,9 +104,11 @@ void add_board_boot_modes(const struct boot_mode *p)
 	int size;
 	char *dest;
 
-	if (__u_boot_cmd_bmode.usage) {
-		free(__u_boot_cmd_bmode.usage);
-		__u_boot_cmd_bmode.usage = NULL;
+	cmd_tbl_t *entry = ll_entry_get(cmd_tbl_t, bmode, cmd);
+
+	if (entry->usage) {
+		free(entry->usage);
+		entry->usage = NULL;
 	}
 
 	modes[0] = p;
@@ -114,6 +117,6 @@ void add_board_boot_modes(const struct boot_mode *p)
 	dest = malloc(size);
 	if (dest) {
 		create_usage(dest);
-		__u_boot_cmd_bmode.usage = dest;
+		entry->usage = dest;
 	}
 }
diff --git a/arch/avr32/lib/board.c b/arch/avr32/lib/board.c
index 9d3b76e..e3287c4 100644
--- a/arch/avr32/lib/board.c
+++ b/arch/avr32/lib/board.c
@@ -272,8 +272,8 @@ void board_init_r(gd_t *new_gd, ulong dest_addr)
 	/*
 	 * We have to relocate the command table manually
 	 */
-	fixup_cmdtable(&__u_boot_cmd_start,
-		(ulong)(&__u_boot_cmd_end - &__u_boot_cmd_start));
+	fixup_cmdtable(ll_entry_start(cmd_tbl_t, cmd),
+			ll_entry_count(cmd_tbl_t, cmd));
 #endif /* defined(CONFIG_NEEDS_MANUAL_RELOC) */
 
 	/* there are some other pointer constants we must deal with */
diff --git a/arch/m68k/lib/board.c b/arch/m68k/lib/board.c
index 67c9a13..2a694b4 100644
--- a/arch/m68k/lib/board.c
+++ b/arch/m68k/lib/board.c
@@ -415,8 +415,8 @@ void board_init_r (gd_t *id, ulong dest_addr)
 	/*
 	 * We have to relocate the command table manually
 	 */
-	fixup_cmdtable(&__u_boot_cmd_start,
-		(ulong)(&__u_boot_cmd_end - &__u_boot_cmd_start));
+	fixup_cmdtable(ll_entry_start(cmd_tbl_t, cmd),
+			ll_entry_count(cmd_tbl_t, cmd));
 #endif /* defined(CONFIG_NEEDS_MANUAL_RELOC) */
 
 	/* there are some other pointer constants we must deal with */
diff --git a/arch/mips/lib/board.c b/arch/mips/lib/board.c
index b14b33e..7ddd778 100644
--- a/arch/mips/lib/board.c
+++ b/arch/mips/lib/board.c
@@ -266,8 +266,8 @@ void board_init_r(gd_t *id, ulong dest_addr)
 	/*
 	 * We have to relocate the command table manually
 	 */
-	fixup_cmdtable(&__u_boot_cmd_start,
-		(ulong)(&__u_boot_cmd_end - &__u_boot_cmd_start));
+	fixup_cmdtable(ll_entry_start(cmd_tbl_t, cmd),
+			ll_entry_count(cmd_tbl_t, cmd));
 #endif /* defined(CONFIG_NEEDS_MANUAL_RELOC) */
 
 	/* there are some other pointer constants we must deal with */
diff --git a/arch/nds32/lib/board.c b/arch/nds32/lib/board.c
index 89900fe..cd8d6a7 100644
--- a/arch/nds32/lib/board.c
+++ b/arch/nds32/lib/board.c
@@ -320,8 +320,8 @@ void board_init_r(gd_t *id, ulong dest_addr)
 	/*
 	 * We have to relocate the command table manually
 	 */
-	fixup_cmdtable(&__u_boot_cmd_start,
-		(ulong)(&__u_boot_cmd_end - &__u_boot_cmd_start));
+	fixup_cmdtable(ll_entry_start(cmd_tbl_t, cmd),
+			ll_entry_count(cmd_tbl_t, cmd));
 #endif /* defined(CONFIG_NEEDS_MANUAL_RELOC) */
 
 	serial_initialize();
diff --git a/arch/sparc/lib/board.c b/arch/sparc/lib/board.c
index ff0e0f2..32d025a 100644
--- a/arch/sparc/lib/board.c
+++ b/arch/sparc/lib/board.c
@@ -246,8 +246,8 @@ void board_init_f(ulong bootflag)
 	/*
 	 * We have to relocate the command table manually
 	 */
-	fixup_cmdtable(&__u_boot_cmd_start,
-		(ulong)(&__u_boot_cmd_end - &__u_boot_cmd_start));
+	fixup_cmdtable(ll_entry_start(cmd_tbl_t, cmd),
+			ll_entry_count(cmd_tbl_t, cmd));
 #endif /* defined(CONFIG_NEEDS_MANUAL_RELOC) */
 
 #if defined(CONFIG_CMD_AMBAPP) && defined(CONFIG_SYS_AMBAPP_PRINT_ON_STARTUP)
diff --git a/common/cmd_help.c b/common/cmd_help.c
index 8c8178e..3178a1a 100644
--- a/common/cmd_help.c
+++ b/common/cmd_help.c
@@ -26,9 +26,9 @@
 
 int do_help(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
 {
-	return _do_help(&__u_boot_cmd_start,
-			&__u_boot_cmd_end - &__u_boot_cmd_start,
-			cmdtp, flag, argc, argv);
+	cmd_tbl_t *start = ll_entry_start(cmd_tbl_t, cmd);
+	const int len = ll_entry_count(cmd_tbl_t, cmd);
+	return _do_help(start, len, cmdtp, flag, argc, argv);
 }
 
 U_BOOT_CMD(
@@ -41,7 +41,7 @@ U_BOOT_CMD(
 );
 
 /* This does not use the U_BOOT_CMD macro as ? can't be used in symbol names */
-cmd_tbl_t __u_boot_cmd_question_mark Struct_Section = {
+ll_entry_declare(cmd_tbl_t, question_mark, cmd, cmd) = {
 	"?",	CONFIG_SYS_MAXARGS,	1,	do_help,
 	"alias for 'help'",
 #ifdef  CONFIG_SYS_LONGHELP
diff --git a/common/command.c b/common/command.c
index aa0fb0a..50c8429 100644
--- a/common/command.c
+++ b/common/command.c
@@ -137,8 +137,9 @@ cmd_tbl_t *find_cmd_tbl (const char *cmd, cmd_tbl_t *table, int table_len)
 
 cmd_tbl_t *find_cmd (const char *cmd)
 {
-	int len = &__u_boot_cmd_end - &__u_boot_cmd_start;
-	return find_cmd_tbl(cmd, &__u_boot_cmd_start, len);
+	cmd_tbl_t *start = ll_entry_start(cmd_tbl_t, cmd);
+	const int len = ll_entry_count(cmd_tbl_t, cmd);
+	return find_cmd_tbl(cmd, start, len);
 }
 
 int cmd_usage(const cmd_tbl_t *cmdtp)
@@ -181,7 +182,9 @@ int var_complete(int argc, char * const argv[], char last_char, int maxv, char *
 
 static int complete_cmdv(int argc, char * const argv[], char last_char, int maxv, char *cmdv[])
 {
-	cmd_tbl_t *cmdtp;
+	cmd_tbl_t *cmdtp = ll_entry_start(cmd_tbl_t, cmd);
+	const int count = ll_entry_count(cmd_tbl_t, cmd);
+	const cmd_tbl_t *cmdend = cmdtp + count;
 	const char *p;
 	int len, clen;
 	int n_found = 0;
@@ -195,12 +198,12 @@ static int complete_cmdv(int argc, char * const argv[], char last_char, int maxv
 
 	if (argc == 0) {
 		/* output full list of commands */
-		for (cmdtp = &__u_boot_cmd_start; cmdtp != &__u_boot_cmd_end; cmdtp++) {
+		for (; cmdtp != cmdend; cmdtp++) {
 			if (n_found >= maxv - 2) {
-				cmdv[n_found++] = "...";
+				cmdv[n_found] = "...";
 				break;
 			}
-			cmdv[n_found++] = cmdtp->name;
+			cmdv[n_found] = cmdtp->name;
 		}
 		cmdv[n_found] = NULL;
 		return n_found;
@@ -228,7 +231,7 @@ static int complete_cmdv(int argc, char * const argv[], char last_char, int maxv
 		len = p - cmd;
 
 	/* return the partial matches */
-	for (cmdtp = &__u_boot_cmd_start; cmdtp != &__u_boot_cmd_end; cmdtp++) {
+	for (; cmdtp != cmdend; cmdtp++) {
 
 		clen = strlen(cmdtp->name);
 		if (clen < len)
diff --git a/doc/README.commands b/doc/README.commands
index 125f077..923418b 100644
--- a/doc/README.commands
+++ b/doc/README.commands
@@ -15,12 +15,12 @@ help:	 Long description. This is a string
 
 **** Behind the scene ******
 
-The structure created is named with a special prefix (__u_boot_cmd_)
+The structure created is named with a special prefix (__u_boot_list_cmd_)
 and placed by the linker in a special section.
 
 This makes it possible for the final link to extract all commands
 compiled into any object code and construct a static array so the
-command can be found in an array starting at __u_boot_cmd_start.
+command can be found in an array starting@_u_boot_list_cmd__start.
 
 To ensure that the linker does not discard these symbols when linking
 full U-Boot we generate a list of all the commands we have built (based
@@ -33,6 +33,6 @@ If a new board is defined do not forget to define the command section
 by writing in u-boot.lds ($(TOPDIR)/board/boardname/u-boot.lds) these
 3 lines:
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	.u_boot_list : {
+	#include "u-boot.lst";
+	}
diff --git a/include/command.h b/include/command.h
index 1f06aa1..24864d5 100644
--- a/include/command.h
+++ b/include/command.h
@@ -28,6 +28,7 @@
 #define __COMMAND_H
 
 #include <config.h>
+#include <linker_lists.h>
 
 #ifndef NULL
 #define NULL	0
@@ -153,9 +154,6 @@ int cmd_process(int flag, int argc, char * const argv[],
 #define CMD_FLAG_REPEAT		0x0001	/* repeat last command		*/
 #define CMD_FLAG_BOOTD		0x0002	/* command is from bootd	*/
 
-#define Struct_Section  __attribute__((unused, section(".u_boot_cmd"), \
-		aligned(4)))
-
 #ifdef CONFIG_AUTO_COMPLETE
 # define _CMD_COMPLETE(x) x,
 #else
@@ -167,18 +165,22 @@ int cmd_process(int flag, int argc, char * const argv[],
 # define _CMD_HELP(x)
 #endif
 
-#define U_BOOT_CMD_MKENT_COMPLETE(name,maxargs,rep,cmd,usage,help,comp) \
-	{#name, maxargs, rep, cmd, usage, _CMD_HELP(help) _CMD_COMPLETE(comp)}
+#define U_BOOT_CMD_MKENT_COMPLETE(_name, _maxargs, _rep, _cmd,		\
+				_usage, _help, _comp)			\
+		{ #_name, _maxargs, _rep, _cmd, _usage,			\
+			_CMD_HELP(_help) _CMD_COMPLETE(_comp) }
 
-#define U_BOOT_CMD_MKENT(name,maxargs,rep,cmd,usage,help) \
-	U_BOOT_CMD_MKENT_COMPLETE(name,maxargs,rep,cmd,usage,help,NULL)
+#define U_BOOT_CMD_MKENT(_name, _maxargs, _rep, _cmd, _usage, _help)	\
+	U_BOOT_CMD_MKENT_COMPLETE(_name, _maxargs, _rep, _cmd,		\
+					_usage, _help, NULL)
 
-#define U_BOOT_CMD_COMPLETE(name,maxargs,rep,cmd,usage,help,comp) \
-	cmd_tbl_t __u_boot_cmd_##name Struct_Section = \
-		U_BOOT_CMD_MKENT_COMPLETE(name,maxargs,rep,cmd,usage,help,comp)
+#define U_BOOT_CMD_COMPLETE(_name, _maxargs, _rep, _cmd, _usage, _help, _comp) \
+	ll_entry_declare(cmd_tbl_t, _name, cmd, cmd) =			\
+		U_BOOT_CMD_MKENT_COMPLETE(_name, _maxargs, _rep, _cmd,	\
+						_usage, _help, _comp);
 
-#define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \
-	U_BOOT_CMD_COMPLETE(name,maxargs,rep,cmd,usage,help,NULL)
+#define U_BOOT_CMD(_name, _maxargs, _rep, _cmd, _usage, _help)		\
+	U_BOOT_CMD_COMPLETE(_name, _maxargs, _rep, _cmd, _usage, _help, NULL)
 
 #if defined(CONFIG_NEEDS_MANUAL_RELOC)
 void fixup_cmdtable(cmd_tbl_t *cmdtp, int size);
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 5/6 V2] common: Discard the __u_boot_cmd section
  2012-10-07  0:06 ` [U-Boot] [PATCH 0/6 V2] Linker-generated arrays (take 2) Marek Vasut
                     ` (3 preceding siblings ...)
  2012-10-07  0:06   ` [U-Boot] [PATCH 4/6 V2] common: Convert the U-Boot commands to LG-arrays Marek Vasut
@ 2012-10-07  0:06   ` Marek Vasut
  2012-10-07  0:06   ` [U-Boot] [PATCH 6/6 V2] kerneldoc: tmpl: Implement template for LG-arrays Marek Vasut
  2012-10-12 20:27   ` [U-Boot] [PATCH 0/6 V3] Linker-generated arrays (take 2) Marek Vasut
  6 siblings, 0 replies; 48+ messages in thread
From: Marek Vasut @ 2012-10-07  0:06 UTC (permalink / raw)
  To: u-boot

The command declaration now uses the new LG-array method to generate
list of commands. Thus the __u_boot_cmd section is now superseded and
redundant and therefore can be removed. Also, remove externed symbols
associated with this section from include/command.h .

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>

---
 arch/arm/cpu/arm920t/ep93xx/u-boot.lds           |    3 ---
 arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds        |    3 ---
 arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds      |    3 ---
 arch/arm/cpu/ixp/u-boot.lds                      |    3 ---
 arch/arm/cpu/u-boot.lds                          |    3 ---
 arch/avr32/cpu/u-boot.lds                        |    5 -----
 arch/blackfin/cpu/u-boot.lds                     |    6 ------
 arch/microblaze/cpu/u-boot.lds                   |    8 --------
 arch/nds32/cpu/n1213/u-boot.lds                  |    3 ---
 arch/nios2/cpu/u-boot.lds                        |    7 -------
 arch/powerpc/cpu/74xx_7xx/u-boot.lds             |    3 ---
 arch/powerpc/cpu/mpc512x/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc5xx/u-boot.lds               |    3 ---
 arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds |    3 ---
 arch/powerpc/cpu/mpc5xxx/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc8220/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc824x/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc8260/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc83xx/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc85xx/u-boot-nand.lds         |    3 ---
 arch/powerpc/cpu/mpc85xx/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc86xx/u-boot.lds              |    3 ---
 arch/powerpc/cpu/ppc4xx/u-boot.lds               |    3 ---
 arch/sandbox/cpu/u-boot.lds                      |    3 ---
 arch/sh/cpu/sh2/u-boot.lds                       |    7 -------
 arch/sh/cpu/sh3/u-boot.lds                       |    7 -------
 arch/sh/cpu/sh4/u-boot.lds                       |    7 -------
 arch/x86/cpu/u-boot.lds                          |    4 ----
 board/BuS/eb_cpu5282/u-boot.lds                  |    3 ---
 board/LEOX/elpt860/u-boot.lds                    |    3 ---
 board/RPXClassic/u-boot.lds                      |    3 ---
 board/RPXClassic/u-boot.lds.debug                |    3 ---
 board/RPXlite/u-boot.lds                         |    3 ---
 board/RPXlite/u-boot.lds.debug                   |    3 ---
 board/RPXlite_dw/u-boot.lds                      |    3 ---
 board/RPXlite_dw/u-boot.lds.debug                |    3 ---
 board/RRvision/u-boot.lds                        |    3 ---
 board/actux1/u-boot.lds                          |    5 -----
 board/actux2/u-boot.lds                          |    5 -----
 board/actux3/u-boot.lds                          |    5 -----
 board/adder/u-boot.lds                           |    3 ---
 board/altera/nios2-generic/u-boot.lds            |    7 -------
 board/amcc/acadia/u-boot-nand.lds                |    3 ---
 board/amcc/bamboo/u-boot-nand.lds                |    3 ---
 board/amcc/canyonlands/u-boot-nand.lds           |    3 ---
 board/amcc/kilauea/u-boot-nand.lds               |    3 ---
 board/amcc/sequoia/u-boot-nand.lds               |    3 ---
 board/amcc/sequoia/u-boot-ram.lds                |    3 ---
 board/astro/mcf5373l/u-boot.lds                  |    3 ---
 board/c2mon/u-boot.lds                           |    3 ---
 board/c2mon/u-boot.lds.debug                     |    3 ---
 board/cobra5272/u-boot.lds                       |    3 ---
 board/cogent/u-boot.lds                          |    3 ---
 board/cogent/u-boot.lds.debug                    |    3 ---
 board/cray/L1/u-boot.lds.debug                   |    3 ---
 board/dave/PPChameleonEVB/u-boot.lds             |    3 ---
 board/dbau1x00/u-boot.lds                        |    6 ------
 board/dvlhost/u-boot.lds                         |    5 -----
 board/eltec/mhpc/u-boot.lds                      |    3 ---
 board/eltec/mhpc/u-boot.lds.debug                |    3 ---
 board/emk/top860/u-boot.lds                      |    3 ---
 board/ep88x/u-boot.lds                           |    3 ---
 board/esd/dasa_sim/u-boot.lds                    |    3 ---
 board/esd/pmc440/u-boot-nand.lds                 |    3 ---
 board/esd/tasreg/u-boot.lds                      |    3 ---
 board/esteem192e/u-boot.lds                      |    3 ---
 board/etx094/u-boot.lds                          |    3 ---
 board/evb64260/u-boot.lds                        |    3 ---
 board/fads/u-boot.lds                            |    3 ---
 board/flagadm/u-boot.lds                         |    3 ---
 board/flagadm/u-boot.lds.debug                   |    3 ---
 board/freescale/m5208evbe/u-boot.lds             |    3 ---
 board/freescale/m52277evb/u-boot.lds             |    3 ---
 board/freescale/m5235evb/u-boot.lds              |    3 ---
 board/freescale/m5249evb/u-boot.lds              |    3 ---
 board/freescale/m5253demo/u-boot.lds             |    3 ---
 board/freescale/m5253evbe/u-boot.lds             |    3 ---
 board/freescale/m5271evb/u-boot.lds              |    3 ---
 board/freescale/m5272c3/u-boot.lds               |    3 ---
 board/freescale/m5275evb/u-boot.lds              |    3 ---
 board/freescale/m5282evb/u-boot.lds              |    3 ---
 board/freescale/m53017evb/u-boot.lds             |    3 ---
 board/freescale/m5329evb/u-boot.lds              |    3 ---
 board/freescale/m5373evb/u-boot.lds              |    3 ---
 board/freescale/m54451evb/u-boot.lds             |    3 ---
 board/freescale/m54455evb/u-boot.lds             |    3 ---
 board/freescale/m547xevb/u-boot.lds              |    3 ---
 board/freescale/m548xevb/u-boot.lds              |    3 ---
 board/freescale/mx31ads/u-boot.lds               |    3 ---
 board/gaisler/gr_cpci_ax2000/u-boot.lds          |    4 ----
 board/gaisler/gr_ep2s60/u-boot.lds               |    4 ----
 board/gaisler/gr_xc3s_1500/u-boot.lds            |    4 ----
 board/gaisler/grsim/u-boot.lds                   |    4 ----
 board/gaisler/grsim_leon2/u-boot.lds             |    4 ----
 board/gen860t/u-boot-flashenv.lds                |    3 ---
 board/gen860t/u-boot.lds                         |    3 ---
 board/genietv/u-boot.lds                         |    3 ---
 board/genietv/u-boot.lds.debug                   |    3 ---
 board/hermes/u-boot.lds                          |    3 ---
 board/hermes/u-boot.lds.debug                    |    3 ---
 board/hymod/u-boot.lds                           |    3 ---
 board/hymod/u-boot.lds.debug                     |    3 ---
 board/icu862/u-boot.lds                          |    3 ---
 board/icu862/u-boot.lds.debug                    |    3 ---
 board/idmr/u-boot.lds                            |    3 ---
 board/incaip/u-boot.lds                          |    6 ------
 board/ip860/u-boot.lds                           |    3 ---
 board/ip860/u-boot.lds.debug                     |    3 ---
 board/ivm/u-boot.lds                             |    3 ---
 board/ivm/u-boot.lds.debug                       |    3 ---
 board/korat/u-boot-F7FC.lds                      |    3 ---
 board/kup/kup4k/u-boot.lds                       |    3 ---
 board/kup/kup4k/u-boot.lds.debug                 |    3 ---
 board/kup/kup4x/u-boot.lds                       |    3 ---
 board/kup/kup4x/u-boot.lds.debug                 |    3 ---
 board/lantec/u-boot.lds                          |    3 ---
 board/lantec/u-boot.lds.debug                    |    3 ---
 board/lwmon/u-boot.lds                           |    3 ---
 board/lwmon/u-boot.lds.debug                     |    3 ---
 board/manroland/uc100/u-boot.lds                 |    3 ---
 board/matrix_vision/mvsmr/u-boot.lds             |    3 ---
 board/mbx8xx/u-boot.lds                          |    3 ---
 board/mbx8xx/u-boot.lds.debug                    |    3 ---
 board/micronas/vct/u-boot.lds                    |    7 -------
 board/mousse/u-boot.lds                          |    3 ---
 board/mousse/u-boot.lds.ram                      |    3 ---
 board/mousse/u-boot.lds.rom                      |    3 ---
 board/mpl/pip405/u-boot.lds.debug                |    3 ---
 board/mvblue/u-boot.lds                          |    3 ---
 board/netphone/u-boot.lds                        |    3 ---
 board/netphone/u-boot.lds.debug                  |    3 ---
 board/netta/u-boot.lds                           |    3 ---
 board/netta/u-boot.lds.debug                     |    3 ---
 board/netta2/u-boot.lds                          |    3 ---
 board/netta2/u-boot.lds.debug                    |    3 ---
 board/netvia/u-boot.lds                          |    3 ---
 board/netvia/u-boot.lds.debug                    |    3 ---
 board/nx823/u-boot.lds                           |    3 ---
 board/nx823/u-boot.lds.debug                     |    3 ---
 board/openrisc/openrisc-generic/u-boot.lds       |    3 ---
 board/pb1x00/u-boot.lds                          |    6 ------
 board/qemu-mips/u-boot.lds                       |    7 -------
 board/qi/qi_lb60/u-boot.lds                      |    3 ---
 board/quantum/u-boot.lds                         |    3 ---
 board/r360mpi/u-boot.lds                         |    3 ---
 board/rbc823/u-boot.lds                          |    3 ---
 board/renesas/sh7757lcr/u-boot.lds               |    7 -------
 board/rsdproto/u-boot.lds                        |    3 ---
 board/samsung/smdk6400/u-boot-nand.lds           |    3 ---
 board/sandburst/karef/u-boot.lds.debug           |    3 ---
 board/sandburst/metrobox/u-boot.lds.debug        |    3 ---
 board/sandpoint/u-boot.lds                       |    3 ---
 board/siemens/IAD210/u-boot.lds                  |    3 ---
 board/sixnet/u-boot.lds                          |    3 ---
 board/snmc/qs850/u-boot.lds                      |    3 ---
 board/snmc/qs860t/u-boot.lds                     |    3 ---
 board/spc1920/u-boot.lds                         |    3 ---
 board/spd8xx/u-boot.lds                          |    3 ---
 board/spd8xx/u-boot.lds.debug                    |    3 ---
 board/stx/stxxtc/u-boot.lds                      |    3 ---
 board/stx/stxxtc/u-boot.lds.debug                |    3 ---
 board/svm_sc8xx/u-boot.lds                       |    3 ---
 board/tqc/tqm8xx/u-boot.lds                      |    3 ---
 board/v37/u-boot.lds                             |    3 ---
 board/w7o/u-boot.lds.debug                       |    3 ---
 board/westel/amx860/u-boot.lds                   |    3 ---
 board/westel/amx860/u-boot.lds.debug             |    3 ---
 board/xes/xpedite1000/u-boot.lds.debug           |    3 ---
 include/command.h                                |    2 --
 nand_spl/board/freescale/mx31pdk/u-boot.lds      |    3 ---
 nand_spl/board/karo/tx25/u-boot.lds              |    3 ---
 nand_spl/board/samsung/smdk6400/u-boot.lds       |    3 ---
 172 files changed, 580 deletions(-)

V2:
- Rebase on top of testing/dm-kerneldoc

diff --git a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
index 8c6a407..008ae89 100644
--- a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
+++ b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
@@ -48,9 +48,6 @@ SECTIONS
 	.got : { *(.got) }
 
 	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
index 2940a6f..6dc681a 100644
--- a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
+++ b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
@@ -50,9 +50,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
index ae9538e..f3bd5e7 100644
--- a/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
+++ b/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
@@ -50,9 +50,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/arch/arm/cpu/ixp/u-boot.lds b/arch/arm/cpu/ixp/u-boot.lds
index a7ffab3..81d954f 100644
--- a/arch/arm/cpu/ixp/u-boot.lds
+++ b/arch/arm/cpu/ixp/u-boot.lds
@@ -46,9 +46,6 @@ SECTIONS
 	. = ALIGN(4);
 
 	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/arm/cpu/u-boot.lds b/arch/arm/cpu/u-boot.lds
index 85f4eec..227aaff 100644
--- a/arch/arm/cpu/u-boot.lds
+++ b/arch/arm/cpu/u-boot.lds
@@ -49,9 +49,6 @@ SECTIONS
 	. = ALIGN(4);
 
 	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/avr32/cpu/u-boot.lds b/arch/avr32/cpu/u-boot.lds
index 2accee6..0b16d2a 100644
--- a/arch/avr32/cpu/u-boot.lds
+++ b/arch/avr32/cpu/u-boot.lds
@@ -47,11 +47,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : {
-		KEEP(*(.u_boot_cmd))
-	}
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/blackfin/cpu/u-boot.lds b/arch/blackfin/cpu/u-boot.lds
index cbc79de..58db838 100644
--- a/arch/blackfin/cpu/u-boot.lds
+++ b/arch/blackfin/cpu/u-boot.lds
@@ -112,12 +112,6 @@ SECTIONS
 		CONSTRUCTORS
 	} >ram_data
 
-	.u_boot_cmd :
-	{
-		___u_boot_cmd_start = .;
-		*(.u_boot_cmd)
-		___u_boot_cmd_end = .;
-	} >ram_data
 
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/arch/microblaze/cpu/u-boot.lds b/arch/microblaze/cpu/u-boot.lds
index 06a2855..4297b93 100644
--- a/arch/microblaze/cpu/u-boot.lds
+++ b/arch/microblaze/cpu/u-boot.lds
@@ -50,14 +50,6 @@ SECTIONS
 		__data_end = .;
 	}
 
-	.u_boot_cmd ALIGN(0x4):
-	{
-		. = .;
-		__u_boot_cmd_start = .;
-		*(.u_boot_cmd)
-		__u_boot_cmd_end = .;
-	}
-
 	. = ALIGN(4);
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/arch/nds32/cpu/n1213/u-boot.lds b/arch/nds32/cpu/n1213/u-boot.lds
index 62e357a..cef19c5 100644
--- a/arch/nds32/cpu/n1213/u-boot.lds
+++ b/arch/nds32/cpu/n1213/u-boot.lds
@@ -52,9 +52,6 @@ SECTIONS
 	}
 
 	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/nios2/cpu/u-boot.lds b/arch/nios2/cpu/u-boot.lds
index e24b769..d0eb80d 100644
--- a/arch/nios2/cpu/u-boot.lds
+++ b/arch/nios2/cpu/u-boot.lds
@@ -45,13 +45,6 @@ SECTIONS
 	 * the initialization code relocates the command table as
 	 * well -- admittedly, this is just pure laziness ;-)
 	 */
-	__u_boot_cmd_start = .;
-	.u_boot_cmd :
-	{
-	  *(.u_boot_cmd)
-	}
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/powerpc/cpu/74xx_7xx/u-boot.lds b/arch/powerpc/cpu/74xx_7xx/u-boot.lds
index 04484a5..ecee439 100644
--- a/arch/powerpc/cpu/74xx_7xx/u-boot.lds
+++ b/arch/powerpc/cpu/74xx_7xx/u-boot.lds
@@ -62,9 +62,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc512x/u-boot.lds b/arch/powerpc/cpu/mpc512x/u-boot.lds
index 656a062..7faefba 100644
--- a/arch/powerpc/cpu/mpc512x/u-boot.lds
+++ b/arch/powerpc/cpu/mpc512x/u-boot.lds
@@ -57,9 +57,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc5xx/u-boot.lds b/arch/powerpc/cpu/mpc5xx/u-boot.lds
index e04528d..c91e146 100644
--- a/arch/powerpc/cpu/mpc5xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc5xx/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds b/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
index acddf5f..ac7844d 100644
--- a/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
+++ b/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/arch/powerpc/cpu/mpc5xxx/u-boot.lds b/arch/powerpc/cpu/mpc5xxx/u-boot.lds
index 998221e..1f46ead 100644
--- a/arch/powerpc/cpu/mpc5xxx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc5xxx/u-boot.lds
@@ -60,9 +60,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc8220/u-boot.lds b/arch/powerpc/cpu/mpc8220/u-boot.lds
index 45d5e19..c147954 100644
--- a/arch/powerpc/cpu/mpc8220/u-boot.lds
+++ b/arch/powerpc/cpu/mpc8220/u-boot.lds
@@ -59,9 +59,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc824x/u-boot.lds b/arch/powerpc/cpu/mpc824x/u-boot.lds
index a80d91e..a713012 100644
--- a/arch/powerpc/cpu/mpc824x/u-boot.lds
+++ b/arch/powerpc/cpu/mpc824x/u-boot.lds
@@ -60,9 +60,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc8260/u-boot.lds b/arch/powerpc/cpu/mpc8260/u-boot.lds
index f33f648..42385fc 100644
--- a/arch/powerpc/cpu/mpc8260/u-boot.lds
+++ b/arch/powerpc/cpu/mpc8260/u-boot.lds
@@ -59,9 +59,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc83xx/u-boot.lds b/arch/powerpc/cpu/mpc83xx/u-boot.lds
index 45a9cf8..d699def 100644
--- a/arch/powerpc/cpu/mpc83xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc83xx/u-boot.lds
@@ -58,9 +58,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds b/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
index 29aabde..f7c4a22 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
@@ -70,9 +70,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot.lds b/arch/powerpc/cpu/mpc85xx/u-boot.lds
index 49fe44d..4a40a1f 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot.lds
@@ -77,9 +77,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc86xx/u-boot.lds b/arch/powerpc/cpu/mpc86xx/u-boot.lds
index 17371ac..8bfadf2 100644
--- a/arch/powerpc/cpu/mpc86xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc86xx/u-boot.lds
@@ -64,9 +64,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/ppc4xx/u-boot.lds b/arch/powerpc/cpu/ppc4xx/u-boot.lds
index 6df673e..a96ddd5 100644
--- a/arch/powerpc/cpu/ppc4xx/u-boot.lds
+++ b/arch/powerpc/cpu/ppc4xx/u-boot.lds
@@ -78,9 +78,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/sandbox/cpu/u-boot.lds b/arch/sandbox/cpu/u-boot.lds
index b7f25ab..1b781eb 100644
--- a/arch/sandbox/cpu/u-boot.lds
+++ b/arch/sandbox/cpu/u-boot.lds
@@ -24,9 +24,6 @@
 
 SECTIONS
 {
-	__u_boot_cmd_start = .;
-	_u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/sh/cpu/sh2/u-boot.lds b/arch/sh/cpu/sh2/u-boot.lds
index 3cd28f7..17f8091 100644
--- a/arch/sh/cpu/sh2/u-boot.lds
+++ b/arch/sh/cpu/sh2/u-boot.lds
@@ -72,13 +72,6 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
 
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/arch/sh/cpu/sh3/u-boot.lds b/arch/sh/cpu/sh3/u-boot.lds
index f0bad51..c831961 100644
--- a/arch/sh/cpu/sh3/u-boot.lds
+++ b/arch/sh/cpu/sh3/u-boot.lds
@@ -78,13 +78,6 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
 
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/arch/sh/cpu/sh4/u-boot.lds b/arch/sh/cpu/sh4/u-boot.lds
index d204304..0ecafcf 100644
--- a/arch/sh/cpu/sh4/u-boot.lds
+++ b/arch/sh/cpu/sh4/u-boot.lds
@@ -75,13 +75,6 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
 
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/arch/x86/cpu/u-boot.lds b/arch/x86/cpu/u-boot.lds
index 4bb2a2f..a1ecefa 100644
--- a/arch/x86/cpu/u-boot.lds
+++ b/arch/x86/cpu/u-boot.lds
@@ -33,10 +33,6 @@ SECTIONS
 	.text  : { *(.text*); }
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/BuS/eb_cpu5282/u-boot.lds b/board/BuS/eb_cpu5282/u-boot.lds
index a708d06..0c92d31 100644
--- a/board/BuS/eb_cpu5282/u-boot.lds
+++ b/board/BuS/eb_cpu5282/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/LEOX/elpt860/u-boot.lds b/board/LEOX/elpt860/u-boot.lds
index b04e56c..2bb876d 100644
--- a/board/LEOX/elpt860/u-boot.lds
+++ b/board/LEOX/elpt860/u-boot.lds
@@ -86,9 +86,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXClassic/u-boot.lds b/board/RPXClassic/u-boot.lds
index 9133469..18f962c 100644
--- a/board/RPXClassic/u-boot.lds
+++ b/board/RPXClassic/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXClassic/u-boot.lds.debug b/board/RPXClassic/u-boot.lds.debug
index 46f2f8f..dc8c4e9 100644
--- a/board/RPXClassic/u-boot.lds.debug
+++ b/board/RPXClassic/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXlite/u-boot.lds b/board/RPXlite/u-boot.lds
index 9133469..18f962c 100644
--- a/board/RPXlite/u-boot.lds
+++ b/board/RPXlite/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXlite/u-boot.lds.debug b/board/RPXlite/u-boot.lds.debug
index 46f2f8f..dc8c4e9 100644
--- a/board/RPXlite/u-boot.lds.debug
+++ b/board/RPXlite/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXlite_dw/u-boot.lds b/board/RPXlite_dw/u-boot.lds
index 9133469..18f962c 100644
--- a/board/RPXlite_dw/u-boot.lds
+++ b/board/RPXlite_dw/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXlite_dw/u-boot.lds.debug b/board/RPXlite_dw/u-boot.lds.debug
index 1b042f8..b43a1e4 100644
--- a/board/RPXlite_dw/u-boot.lds.debug
+++ b/board/RPXlite_dw/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RRvision/u-boot.lds b/board/RRvision/u-boot.lds
index 4613432..748e511 100644
--- a/board/RRvision/u-boot.lds
+++ b/board/RRvision/u-boot.lds
@@ -71,9 +71,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/actux1/u-boot.lds b/board/actux1/u-boot.lds
index a8971d0..66e1e76 100644
--- a/board/actux1/u-boot.lds
+++ b/board/actux1/u-boot.lds
@@ -54,11 +54,6 @@ SECTIONS
 		*(.got)
 	}
 	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/actux2/u-boot.lds b/board/actux2/u-boot.lds
index 7c0caf6..178518d 100644
--- a/board/actux2/u-boot.lds
+++ b/board/actux2/u-boot.lds
@@ -54,11 +54,6 @@ SECTIONS
 		*(.got)
 	}
 	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/actux3/u-boot.lds b/board/actux3/u-boot.lds
index 530073e..e28b264 100644
--- a/board/actux3/u-boot.lds
+++ b/board/actux3/u-boot.lds
@@ -54,11 +54,6 @@ SECTIONS
 		*(.got)
 	}
 	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/adder/u-boot.lds b/board/adder/u-boot.lds
index 05d6323..73e2f3f 100644
--- a/board/adder/u-boot.lds
+++ b/board/adder/u-boot.lds
@@ -62,9 +62,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/altera/nios2-generic/u-boot.lds b/board/altera/nios2-generic/u-boot.lds
index f087733..289386b 100644
--- a/board/altera/nios2-generic/u-boot.lds
+++ b/board/altera/nios2-generic/u-boot.lds
@@ -46,13 +46,6 @@ SECTIONS
 	 * the initialization code relocates the command table as
 	 * well -- admittedly, this is just pure laziness ;-)
 	 */
-	__u_boot_cmd_start = .;
-	.u_boot_cmd :
-	{
-	  *(.u_boot_cmd)
-	}
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/amcc/acadia/u-boot-nand.lds b/board/amcc/acadia/u-boot-nand.lds
index 9609338..beba978 100644
--- a/board/amcc/acadia/u-boot-nand.lds
+++ b/board/amcc/acadia/u-boot-nand.lds
@@ -72,9 +72,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/board/amcc/bamboo/u-boot-nand.lds b/board/amcc/bamboo/u-boot-nand.lds
index 4f4194e..2dd00d7 100644
--- a/board/amcc/bamboo/u-boot-nand.lds
+++ b/board/amcc/bamboo/u-boot-nand.lds
@@ -73,9 +73,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/board/amcc/canyonlands/u-boot-nand.lds b/board/amcc/canyonlands/u-boot-nand.lds
index 1876bae..8ac5116 100644
--- a/board/amcc/canyonlands/u-boot-nand.lds
+++ b/board/amcc/canyonlands/u-boot-nand.lds
@@ -73,9 +73,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/board/amcc/kilauea/u-boot-nand.lds b/board/amcc/kilauea/u-boot-nand.lds
index 9609338..beba978 100644
--- a/board/amcc/kilauea/u-boot-nand.lds
+++ b/board/amcc/kilauea/u-boot-nand.lds
@@ -72,9 +72,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/board/amcc/sequoia/u-boot-nand.lds b/board/amcc/sequoia/u-boot-nand.lds
index a0b98f4..18266ef 100644
--- a/board/amcc/sequoia/u-boot-nand.lds
+++ b/board/amcc/sequoia/u-boot-nand.lds
@@ -73,9 +73,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/board/amcc/sequoia/u-boot-ram.lds b/board/amcc/sequoia/u-boot-ram.lds
index 32a7661..6b02784 100644
--- a/board/amcc/sequoia/u-boot-ram.lds
+++ b/board/amcc/sequoia/u-boot-ram.lds
@@ -64,9 +64,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/board/astro/mcf5373l/u-boot.lds b/board/astro/mcf5373l/u-boot.lds
index e27c286..04a9066 100644
--- a/board/astro/mcf5373l/u-boot.lds
+++ b/board/astro/mcf5373l/u-boot.lds
@@ -109,9 +109,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/c2mon/u-boot.lds b/board/c2mon/u-boot.lds
index 0b92ef6..b854c18 100644
--- a/board/c2mon/u-boot.lds
+++ b/board/c2mon/u-boot.lds
@@ -74,9 +74,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/c2mon/u-boot.lds.debug b/board/c2mon/u-boot.lds.debug
index c28e2b9..92796e6 100644
--- a/board/c2mon/u-boot.lds.debug
+++ b/board/c2mon/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/cobra5272/u-boot.lds b/board/cobra5272/u-boot.lds
index 77b8e80..d054f20 100644
--- a/board/cobra5272/u-boot.lds
+++ b/board/cobra5272/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/cogent/u-boot.lds b/board/cogent/u-boot.lds
index f7137bd..2a6027f 100644
--- a/board/cogent/u-boot.lds
+++ b/board/cogent/u-boot.lds
@@ -70,9 +70,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/cogent/u-boot.lds.debug b/board/cogent/u-boot.lds.debug
index 46f2f8f..dc8c4e9 100644
--- a/board/cogent/u-boot.lds.debug
+++ b/board/cogent/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/cray/L1/u-boot.lds.debug b/board/cray/L1/u-boot.lds.debug
index 15cccee..d7a2e56 100644
--- a/board/cray/L1/u-boot.lds.debug
+++ b/board/cray/L1/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/dave/PPChameleonEVB/u-boot.lds b/board/dave/PPChameleonEVB/u-boot.lds
index 184c6fc..8a306d6 100644
--- a/board/dave/PPChameleonEVB/u-boot.lds
+++ b/board/dave/PPChameleonEVB/u-boot.lds
@@ -74,9 +74,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/dbau1x00/u-boot.lds b/board/dbau1x00/u-boot.lds
index 6992c0f..8a871cf 100644
--- a/board/dbau1x00/u-boot.lds
+++ b/board/dbau1x00/u-boot.lds
@@ -54,12 +54,6 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-	}
-
 	. = ALIGN(4);
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/board/dvlhost/u-boot.lds b/board/dvlhost/u-boot.lds
index 5171630..1bd1700 100644
--- a/board/dvlhost/u-boot.lds
+++ b/board/dvlhost/u-boot.lds
@@ -54,11 +54,6 @@ SECTIONS
 		*(.got)
 	}
 	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/eltec/mhpc/u-boot.lds b/board/eltec/mhpc/u-boot.lds
index 25b8839..c8d3894 100644
--- a/board/eltec/mhpc/u-boot.lds
+++ b/board/eltec/mhpc/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/eltec/mhpc/u-boot.lds.debug b/board/eltec/mhpc/u-boot.lds.debug
index c28e2b9..92796e6 100644
--- a/board/eltec/mhpc/u-boot.lds.debug
+++ b/board/eltec/mhpc/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/emk/top860/u-boot.lds b/board/emk/top860/u-boot.lds
index 485c68d..22626d3 100644
--- a/board/emk/top860/u-boot.lds
+++ b/board/emk/top860/u-boot.lds
@@ -67,9 +67,6 @@ SECTIONS
 
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/ep88x/u-boot.lds b/board/ep88x/u-boot.lds
index 067fd5f..1dcc22a 100644
--- a/board/ep88x/u-boot.lds
+++ b/board/ep88x/u-boot.lds
@@ -62,9 +62,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/esd/dasa_sim/u-boot.lds b/board/esd/dasa_sim/u-boot.lds
index 607e601..7eca183 100644
--- a/board/esd/dasa_sim/u-boot.lds
+++ b/board/esd/dasa_sim/u-boot.lds
@@ -73,9 +73,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/esd/pmc440/u-boot-nand.lds b/board/esd/pmc440/u-boot-nand.lds
index 38f5cc6..ca7df45 100644
--- a/board/esd/pmc440/u-boot-nand.lds
+++ b/board/esd/pmc440/u-boot-nand.lds
@@ -102,9 +102,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 		#include <u-boot.lst>
diff --git a/board/esd/tasreg/u-boot.lds b/board/esd/tasreg/u-boot.lds
index 158828c..0d6a0f3 100644
--- a/board/esd/tasreg/u-boot.lds
+++ b/board/esd/tasreg/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/esteem192e/u-boot.lds b/board/esteem192e/u-boot.lds
index 3eaaad8..69f1500 100644
--- a/board/esteem192e/u-boot.lds
+++ b/board/esteem192e/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/etx094/u-boot.lds b/board/etx094/u-boot.lds
index df9b44a..56c3470 100644
--- a/board/etx094/u-boot.lds
+++ b/board/etx094/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/evb64260/u-boot.lds b/board/evb64260/u-boot.lds
index 05461ca..eac9c07 100644
--- a/board/evb64260/u-boot.lds
+++ b/board/evb64260/u-boot.lds
@@ -70,9 +70,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/fads/u-boot.lds b/board/fads/u-boot.lds
index 4a41db8..6022dbc 100644
--- a/board/fads/u-boot.lds
+++ b/board/fads/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/flagadm/u-boot.lds b/board/flagadm/u-boot.lds
index 25b8839..c8d3894 100644
--- a/board/flagadm/u-boot.lds
+++ b/board/flagadm/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/flagadm/u-boot.lds.debug b/board/flagadm/u-boot.lds.debug
index c28e2b9..92796e6 100644
--- a/board/flagadm/u-boot.lds.debug
+++ b/board/flagadm/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5208evbe/u-boot.lds b/board/freescale/m5208evbe/u-boot.lds
index b1d2d01..2c151f2 100644
--- a/board/freescale/m5208evbe/u-boot.lds
+++ b/board/freescale/m5208evbe/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m52277evb/u-boot.lds b/board/freescale/m52277evb/u-boot.lds
index 0a7ca55..dbd6f6a 100644
--- a/board/freescale/m52277evb/u-boot.lds
+++ b/board/freescale/m52277evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5235evb/u-boot.lds b/board/freescale/m5235evb/u-boot.lds
index a4a62ac..00932ae 100644
--- a/board/freescale/m5235evb/u-boot.lds
+++ b/board/freescale/m5235evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5249evb/u-boot.lds b/board/freescale/m5249evb/u-boot.lds
index 77b8e80..d054f20 100644
--- a/board/freescale/m5249evb/u-boot.lds
+++ b/board/freescale/m5249evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5253demo/u-boot.lds b/board/freescale/m5253demo/u-boot.lds
index 1dd5539..f8116f6 100644
--- a/board/freescale/m5253demo/u-boot.lds
+++ b/board/freescale/m5253demo/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5253evbe/u-boot.lds b/board/freescale/m5253evbe/u-boot.lds
index 77b8e80..d054f20 100644
--- a/board/freescale/m5253evbe/u-boot.lds
+++ b/board/freescale/m5253evbe/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5271evb/u-boot.lds b/board/freescale/m5271evb/u-boot.lds
index ecad667..133ec01 100644
--- a/board/freescale/m5271evb/u-boot.lds
+++ b/board/freescale/m5271evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5272c3/u-boot.lds b/board/freescale/m5272c3/u-boot.lds
index 77b8e80..d054f20 100644
--- a/board/freescale/m5272c3/u-boot.lds
+++ b/board/freescale/m5272c3/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5275evb/u-boot.lds b/board/freescale/m5275evb/u-boot.lds
index 60c0501..fc68de1 100644
--- a/board/freescale/m5275evb/u-boot.lds
+++ b/board/freescale/m5275evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5282evb/u-boot.lds b/board/freescale/m5282evb/u-boot.lds
index a708d06..0c92d31 100644
--- a/board/freescale/m5282evb/u-boot.lds
+++ b/board/freescale/m5282evb/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m53017evb/u-boot.lds b/board/freescale/m53017evb/u-boot.lds
index 81da237..d25a36f 100644
--- a/board/freescale/m53017evb/u-boot.lds
+++ b/board/freescale/m53017evb/u-boot.lds
@@ -71,9 +71,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5329evb/u-boot.lds b/board/freescale/m5329evb/u-boot.lds
index c575522..6616594 100644
--- a/board/freescale/m5329evb/u-boot.lds
+++ b/board/freescale/m5329evb/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5373evb/u-boot.lds b/board/freescale/m5373evb/u-boot.lds
index 5d2c655..bc40fd6 100644
--- a/board/freescale/m5373evb/u-boot.lds
+++ b/board/freescale/m5373evb/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m54451evb/u-boot.lds b/board/freescale/m54451evb/u-boot.lds
index 76ead53..91328a4 100644
--- a/board/freescale/m54451evb/u-boot.lds
+++ b/board/freescale/m54451evb/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m54455evb/u-boot.lds b/board/freescale/m54455evb/u-boot.lds
index 0d2cb02..36a4c26 100644
--- a/board/freescale/m54455evb/u-boot.lds
+++ b/board/freescale/m54455evb/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m547xevb/u-boot.lds b/board/freescale/m547xevb/u-boot.lds
index 11fa8bc..de4d0eb 100644
--- a/board/freescale/m547xevb/u-boot.lds
+++ b/board/freescale/m547xevb/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m548xevb/u-boot.lds b/board/freescale/m548xevb/u-boot.lds
index 0c8ffd4..fbbe0c5 100644
--- a/board/freescale/m548xevb/u-boot.lds
+++ b/board/freescale/m548xevb/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/mx31ads/u-boot.lds b/board/freescale/mx31ads/u-boot.lds
index e59fd18..29ad0e6 100644
--- a/board/freescale/mx31ads/u-boot.lds
+++ b/board/freescale/mx31ads/u-boot.lds
@@ -57,9 +57,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/gr_cpci_ax2000/u-boot.lds b/board/gaisler/gr_cpci_ax2000/u-boot.lds
index ec72718..774c494 100644
--- a/board/gaisler/gr_cpci_ax2000/u-boot.lds
+++ b/board/gaisler/gr_cpci_ax2000/u-boot.lds
@@ -85,10 +85,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/gr_ep2s60/u-boot.lds b/board/gaisler/gr_ep2s60/u-boot.lds
index 5a38796..f6d1301 100644
--- a/board/gaisler/gr_ep2s60/u-boot.lds
+++ b/board/gaisler/gr_ep2s60/u-boot.lds
@@ -85,10 +85,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/gr_xc3s_1500/u-boot.lds b/board/gaisler/gr_xc3s_1500/u-boot.lds
index 3da021c..7df6e83 100644
--- a/board/gaisler/gr_xc3s_1500/u-boot.lds
+++ b/board/gaisler/gr_xc3s_1500/u-boot.lds
@@ -85,10 +85,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/grsim/u-boot.lds b/board/gaisler/grsim/u-boot.lds
index eba1015..b241cbc 100644
--- a/board/gaisler/grsim/u-boot.lds
+++ b/board/gaisler/grsim/u-boot.lds
@@ -84,10 +84,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/grsim_leon2/u-boot.lds b/board/gaisler/grsim_leon2/u-boot.lds
index 4f90a46..63c15b9 100644
--- a/board/gaisler/grsim_leon2/u-boot.lds
+++ b/board/gaisler/grsim_leon2/u-boot.lds
@@ -84,10 +84,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gen860t/u-boot-flashenv.lds b/board/gen860t/u-boot-flashenv.lds
index 8e04b11..1cbe7e3 100644
--- a/board/gen860t/u-boot-flashenv.lds
+++ b/board/gen860t/u-boot-flashenv.lds
@@ -71,9 +71,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 		#include <u-boot.lst>
diff --git a/board/gen860t/u-boot.lds b/board/gen860t/u-boot.lds
index c8602be..dd89c70 100644
--- a/board/gen860t/u-boot.lds
+++ b/board/gen860t/u-boot.lds
@@ -71,9 +71,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/genietv/u-boot.lds b/board/genietv/u-boot.lds
index 961222b..124b183 100644
--- a/board/genietv/u-boot.lds
+++ b/board/genietv/u-boot.lds
@@ -80,9 +80,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/genietv/u-boot.lds.debug b/board/genietv/u-boot.lds.debug
index a3479ba..e1cf249 100644
--- a/board/genietv/u-boot.lds.debug
+++ b/board/genietv/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/hermes/u-boot.lds b/board/hermes/u-boot.lds
index 9fe2f58..f02eb1c 100644
--- a/board/hermes/u-boot.lds
+++ b/board/hermes/u-boot.lds
@@ -72,9 +72,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/hermes/u-boot.lds.debug b/board/hermes/u-boot.lds.debug
index 6a53d8a..e84cc79 100644
--- a/board/hermes/u-boot.lds.debug
+++ b/board/hermes/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/hymod/u-boot.lds b/board/hymod/u-boot.lds
index 50e4788..7afae0a 100644
--- a/board/hymod/u-boot.lds
+++ b/board/hymod/u-boot.lds
@@ -110,9 +110,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/hymod/u-boot.lds.debug b/board/hymod/u-boot.lds.debug
index 46f2f8f..dc8c4e9 100644
--- a/board/hymod/u-boot.lds.debug
+++ b/board/hymod/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/icu862/u-boot.lds b/board/icu862/u-boot.lds
index f476967..6778eb1 100644
--- a/board/icu862/u-boot.lds
+++ b/board/icu862/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/icu862/u-boot.lds.debug b/board/icu862/u-boot.lds.debug
index 87ec870..3e075a8 100644
--- a/board/icu862/u-boot.lds.debug
+++ b/board/icu862/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/idmr/u-boot.lds b/board/idmr/u-boot.lds
index 158828c..0d6a0f3 100644
--- a/board/idmr/u-boot.lds
+++ b/board/idmr/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/incaip/u-boot.lds b/board/incaip/u-boot.lds
index 6992c0f..8a871cf 100644
--- a/board/incaip/u-boot.lds
+++ b/board/incaip/u-boot.lds
@@ -54,12 +54,6 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-	}
-
 	. = ALIGN(4);
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/board/ip860/u-boot.lds b/board/ip860/u-boot.lds
index 9133469..18f962c 100644
--- a/board/ip860/u-boot.lds
+++ b/board/ip860/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/ip860/u-boot.lds.debug b/board/ip860/u-boot.lds.debug
index 79e4f2d..e47aff0 100644
--- a/board/ip860/u-boot.lds.debug
+++ b/board/ip860/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/ivm/u-boot.lds b/board/ivm/u-boot.lds
index 7e63cd7..4cca652 100644
--- a/board/ivm/u-boot.lds
+++ b/board/ivm/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/ivm/u-boot.lds.debug b/board/ivm/u-boot.lds.debug
index ff4581f..53a19b2 100644
--- a/board/ivm/u-boot.lds.debug
+++ b/board/ivm/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/korat/u-boot-F7FC.lds b/board/korat/u-boot-F7FC.lds
index f91310a..033cff4 100644
--- a/board/korat/u-boot-F7FC.lds
+++ b/board/korat/u-boot-F7FC.lds
@@ -108,9 +108,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/board/kup/kup4k/u-boot.lds b/board/kup/kup4k/u-boot.lds
index 9133469..18f962c 100644
--- a/board/kup/kup4k/u-boot.lds
+++ b/board/kup/kup4k/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/kup/kup4k/u-boot.lds.debug b/board/kup/kup4k/u-boot.lds.debug
index 1b042f8..b43a1e4 100644
--- a/board/kup/kup4k/u-boot.lds.debug
+++ b/board/kup/kup4k/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/kup/kup4x/u-boot.lds b/board/kup/kup4x/u-boot.lds
index 9133469..18f962c 100644
--- a/board/kup/kup4x/u-boot.lds
+++ b/board/kup/kup4x/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/kup/kup4x/u-boot.lds.debug b/board/kup/kup4x/u-boot.lds.debug
index 1b042f8..b43a1e4 100644
--- a/board/kup/kup4x/u-boot.lds.debug
+++ b/board/kup/kup4x/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/lantec/u-boot.lds b/board/lantec/u-boot.lds
index e57a794..9411802 100644
--- a/board/lantec/u-boot.lds
+++ b/board/lantec/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/lantec/u-boot.lds.debug b/board/lantec/u-boot.lds.debug
index 29148ee..e788f5c 100644
--- a/board/lantec/u-boot.lds.debug
+++ b/board/lantec/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/lwmon/u-boot.lds b/board/lwmon/u-boot.lds
index 78445b3..bc71b0d 100644
--- a/board/lwmon/u-boot.lds
+++ b/board/lwmon/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/lwmon/u-boot.lds.debug b/board/lwmon/u-boot.lds.debug
index 8fcdb90..0a3e646 100644
--- a/board/lwmon/u-boot.lds.debug
+++ b/board/lwmon/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/manroland/uc100/u-boot.lds b/board/manroland/uc100/u-boot.lds
index aa289cd..e32ae37 100644
--- a/board/manroland/uc100/u-boot.lds
+++ b/board/manroland/uc100/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/matrix_vision/mvsmr/u-boot.lds b/board/matrix_vision/mvsmr/u-boot.lds
index 5222ebd..5a3a9ea 100644
--- a/board/matrix_vision/mvsmr/u-boot.lds
+++ b/board/matrix_vision/mvsmr/u-boot.lds
@@ -74,9 +74,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/mbx8xx/u-boot.lds b/board/mbx8xx/u-boot.lds
index 9133469..18f962c 100644
--- a/board/mbx8xx/u-boot.lds
+++ b/board/mbx8xx/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/mbx8xx/u-boot.lds.debug b/board/mbx8xx/u-boot.lds.debug
index 722a405..4155b60 100644
--- a/board/mbx8xx/u-boot.lds.debug
+++ b/board/mbx8xx/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/micronas/vct/u-boot.lds b/board/micronas/vct/u-boot.lds
index 114ce10..2ce8d0e 100644
--- a/board/micronas/vct/u-boot.lds
+++ b/board/micronas/vct/u-boot.lds
@@ -53,13 +53,6 @@ SECTIONS
 	.sdata  : { *(.sdata*) }
 
 	. = ALIGN(4);
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-	}
-
-	. = ALIGN(4);
 	.u_boot_list : {
 		#include <u-boot.lst>
 	}
diff --git a/board/mousse/u-boot.lds b/board/mousse/u-boot.lds
index aff4269..43f91f1 100644
--- a/board/mousse/u-boot.lds
+++ b/board/mousse/u-boot.lds
@@ -60,9 +60,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/mousse/u-boot.lds.ram b/board/mousse/u-boot.lds.ram
index b3364be..5255651 100644
--- a/board/mousse/u-boot.lds.ram
+++ b/board/mousse/u-boot.lds.ram
@@ -85,9 +85,6 @@ SECTIONS
   } > ram
   */
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
    __start___ex_table = .;
     __ex_table : { *(__ex_table) } > ram
diff --git a/board/mousse/u-boot.lds.rom b/board/mousse/u-boot.lds.rom
index b4b9e02..29a34fb 100644
--- a/board/mousse/u-boot.lds.rom
+++ b/board/mousse/u-boot.lds.rom
@@ -102,9 +102,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/mpl/pip405/u-boot.lds.debug b/board/mpl/pip405/u-boot.lds.debug
index 15cccee..d7a2e56 100644
--- a/board/mpl/pip405/u-boot.lds.debug
+++ b/board/mpl/pip405/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/mvblue/u-boot.lds b/board/mvblue/u-boot.lds
index dc5747c..c378564 100644
--- a/board/mvblue/u-boot.lds
+++ b/board/mvblue/u-boot.lds
@@ -70,9 +70,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netphone/u-boot.lds b/board/netphone/u-boot.lds
index ae48cba..cdc1fda 100644
--- a/board/netphone/u-boot.lds
+++ b/board/netphone/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netphone/u-boot.lds.debug b/board/netphone/u-boot.lds.debug
index ffebab5..900da64 100644
--- a/board/netphone/u-boot.lds.debug
+++ b/board/netphone/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netta/u-boot.lds b/board/netta/u-boot.lds
index ae48cba..cdc1fda 100644
--- a/board/netta/u-boot.lds
+++ b/board/netta/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netta/u-boot.lds.debug b/board/netta/u-boot.lds.debug
index ffebab5..900da64 100644
--- a/board/netta/u-boot.lds.debug
+++ b/board/netta/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netta2/u-boot.lds b/board/netta2/u-boot.lds
index ae48cba..cdc1fda 100644
--- a/board/netta2/u-boot.lds
+++ b/board/netta2/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netta2/u-boot.lds.debug b/board/netta2/u-boot.lds.debug
index ffebab5..900da64 100644
--- a/board/netta2/u-boot.lds.debug
+++ b/board/netta2/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netvia/u-boot.lds b/board/netvia/u-boot.lds
index ae48cba..cdc1fda 100644
--- a/board/netvia/u-boot.lds
+++ b/board/netvia/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netvia/u-boot.lds.debug b/board/netvia/u-boot.lds.debug
index b37ea7b..6cbf4dc 100644
--- a/board/netvia/u-boot.lds.debug
+++ b/board/netvia/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/nx823/u-boot.lds b/board/nx823/u-boot.lds
index 25b8839..c8d3894 100644
--- a/board/nx823/u-boot.lds
+++ b/board/nx823/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/nx823/u-boot.lds.debug b/board/nx823/u-boot.lds.debug
index c28e2b9..92796e6 100644
--- a/board/nx823/u-boot.lds.debug
+++ b/board/nx823/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/openrisc/openrisc-generic/u-boot.lds b/board/openrisc/openrisc-generic/u-boot.lds
index 5995464..4cffacb 100644
--- a/board/openrisc/openrisc-generic/u-boot.lds
+++ b/board/openrisc/openrisc-generic/u-boot.lds
@@ -26,9 +26,6 @@ SECTIONS
 		_endtext = .;
 	}  > ram
 
-	 __u_boot_cmd_start = .;
-	 .u_boot_cmd : { *(.u_boot_cmd) } > ram
-	 __u_boot_cmd_end = .;
 
 	 . = ALIGN(4);
 	 .u_boot_list : {
diff --git a/board/pb1x00/u-boot.lds b/board/pb1x00/u-boot.lds
index 41b001c..07ddd36 100644
--- a/board/pb1x00/u-boot.lds
+++ b/board/pb1x00/u-boot.lds
@@ -54,12 +54,6 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-	}
-
 	. = ALIGN(4);
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/board/qemu-mips/u-boot.lds b/board/qemu-mips/u-boot.lds
index 4515043..f65a1e8 100644
--- a/board/qemu-mips/u-boot.lds
+++ b/board/qemu-mips/u-boot.lds
@@ -55,13 +55,6 @@ SECTIONS
 	. = ALIGN(4);
 	.sdata  : { *(.sdata*) }
 
-	. = .;
-	.u_boot_cmd : {
-	__u_boot_cmd_start = .;
-	*(.u_boot_cmd)
-	__u_boot_cmd_end = .;
-	}
-
 	. = ALIGN(4);
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/board/qi/qi_lb60/u-boot.lds b/board/qi/qi_lb60/u-boot.lds
index 4a373ec..b3cb869 100644
--- a/board/qi/qi_lb60/u-boot.lds
+++ b/board/qi/qi_lb60/u-boot.lds
@@ -47,9 +47,6 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/quantum/u-boot.lds b/board/quantum/u-boot.lds
index 9133469..18f962c 100644
--- a/board/quantum/u-boot.lds
+++ b/board/quantum/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/r360mpi/u-boot.lds b/board/r360mpi/u-boot.lds
index 3138154..3ef0d9e 100644
--- a/board/r360mpi/u-boot.lds
+++ b/board/r360mpi/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/rbc823/u-boot.lds b/board/rbc823/u-boot.lds
index 5e3d78f..a86b568 100644
--- a/board/rbc823/u-boot.lds
+++ b/board/rbc823/u-boot.lds
@@ -77,9 +77,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/renesas/sh7757lcr/u-boot.lds b/board/renesas/sh7757lcr/u-boot.lds
index b2cf392..cf406ce 100644
--- a/board/renesas/sh7757lcr/u-boot.lds
+++ b/board/renesas/sh7757lcr/u-boot.lds
@@ -77,13 +77,6 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
 
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/board/rsdproto/u-boot.lds b/board/rsdproto/u-boot.lds
index d43663c..ff95029 100644
--- a/board/rsdproto/u-boot.lds
+++ b/board/rsdproto/u-boot.lds
@@ -97,9 +97,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/samsung/smdk6400/u-boot-nand.lds b/board/samsung/smdk6400/u-boot-nand.lds
index 50924fc..fbb442a 100644
--- a/board/samsung/smdk6400/u-boot-nand.lds
+++ b/board/samsung/smdk6400/u-boot-nand.lds
@@ -47,9 +47,6 @@ SECTIONS
 	. = ALIGN(4);
 	.got : { *(.got) }
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = align(4);
 	.u_boot_list : {
diff --git a/board/sandburst/karef/u-boot.lds.debug b/board/sandburst/karef/u-boot.lds.debug
index c3a72cb..7a0757f 100644
--- a/board/sandburst/karef/u-boot.lds.debug
+++ b/board/sandburst/karef/u-boot.lds.debug
@@ -115,9 +115,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/sandburst/metrobox/u-boot.lds.debug b/board/sandburst/metrobox/u-boot.lds.debug
index bb73307..07bd6fe 100644
--- a/board/sandburst/metrobox/u-boot.lds.debug
+++ b/board/sandburst/metrobox/u-boot.lds.debug
@@ -115,9 +115,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/sandpoint/u-boot.lds b/board/sandpoint/u-boot.lds
index a9c06ad..ae3afa1 100644
--- a/board/sandpoint/u-boot.lds
+++ b/board/sandpoint/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/siemens/IAD210/u-boot.lds b/board/siemens/IAD210/u-boot.lds
index 4214ace..c0f1073 100644
--- a/board/siemens/IAD210/u-boot.lds
+++ b/board/siemens/IAD210/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/sixnet/u-boot.lds b/board/sixnet/u-boot.lds
index 0a71707..6cf7a01 100644
--- a/board/sixnet/u-boot.lds
+++ b/board/sixnet/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/snmc/qs850/u-boot.lds b/board/snmc/qs850/u-boot.lds
index eca88e5..f57f8a0 100644
--- a/board/snmc/qs850/u-boot.lds
+++ b/board/snmc/qs850/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/snmc/qs860t/u-boot.lds b/board/snmc/qs860t/u-boot.lds
index 9133469..18f962c 100644
--- a/board/snmc/qs860t/u-boot.lds
+++ b/board/snmc/qs860t/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/spc1920/u-boot.lds b/board/spc1920/u-boot.lds
index 9133469..18f962c 100644
--- a/board/spc1920/u-boot.lds
+++ b/board/spc1920/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/spd8xx/u-boot.lds b/board/spd8xx/u-boot.lds
index a233817..f69e39d 100644
--- a/board/spd8xx/u-boot.lds
+++ b/board/spd8xx/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/spd8xx/u-boot.lds.debug b/board/spd8xx/u-boot.lds.debug
index 722a405..4155b60 100644
--- a/board/spd8xx/u-boot.lds.debug
+++ b/board/spd8xx/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/stx/stxxtc/u-boot.lds b/board/stx/stxxtc/u-boot.lds
index ae48cba..cdc1fda 100644
--- a/board/stx/stxxtc/u-boot.lds
+++ b/board/stx/stxxtc/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/stx/stxxtc/u-boot.lds.debug b/board/stx/stxxtc/u-boot.lds.debug
index ffebab5..900da64 100644
--- a/board/stx/stxxtc/u-boot.lds.debug
+++ b/board/stx/stxxtc/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/svm_sc8xx/u-boot.lds b/board/svm_sc8xx/u-boot.lds
index 4cdad4b..1635875 100644
--- a/board/svm_sc8xx/u-boot.lds
+++ b/board/svm_sc8xx/u-boot.lds
@@ -83,9 +83,6 @@ SECTIONS
 
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/tqc/tqm8xx/u-boot.lds b/board/tqc/tqm8xx/u-boot.lds
index 74e2b2f..3c09cc0 100644
--- a/board/tqc/tqm8xx/u-boot.lds
+++ b/board/tqc/tqm8xx/u-boot.lds
@@ -83,9 +83,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/v37/u-boot.lds b/board/v37/u-boot.lds
index c82b1b3..fd2d72e 100644
--- a/board/v37/u-boot.lds
+++ b/board/v37/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/w7o/u-boot.lds.debug b/board/w7o/u-boot.lds.debug
index 4d64088..2ce5a9a 100644
--- a/board/w7o/u-boot.lds.debug
+++ b/board/w7o/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/westel/amx860/u-boot.lds b/board/westel/amx860/u-boot.lds
index 6074736..9b69d3d 100644
--- a/board/westel/amx860/u-boot.lds
+++ b/board/westel/amx860/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/westel/amx860/u-boot.lds.debug b/board/westel/amx860/u-boot.lds.debug
index 87ec870..3e075a8 100644
--- a/board/westel/amx860/u-boot.lds.debug
+++ b/board/westel/amx860/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/xes/xpedite1000/u-boot.lds.debug b/board/xes/xpedite1000/u-boot.lds.debug
index 5296165..c4e5706 100644
--- a/board/xes/xpedite1000/u-boot.lds.debug
+++ b/board/xes/xpedite1000/u-boot.lds.debug
@@ -111,9 +111,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/include/command.h b/include/command.h
index 24864d5..10bc260 100644
--- a/include/command.h
+++ b/include/command.h
@@ -62,8 +62,6 @@ struct cmd_tbl_s {
 
 typedef struct cmd_tbl_s	cmd_tbl_t;
 
-extern cmd_tbl_t  __u_boot_cmd_start;
-extern cmd_tbl_t  __u_boot_cmd_end;
 
 #if defined(CONFIG_CMD_RUN)
 extern int do_run(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]);
diff --git a/nand_spl/board/freescale/mx31pdk/u-boot.lds b/nand_spl/board/freescale/mx31pdk/u-boot.lds
index b2a0f7c..da49c10 100644
--- a/nand_spl/board/freescale/mx31pdk/u-boot.lds
+++ b/nand_spl/board/freescale/mx31pdk/u-boot.lds
@@ -46,9 +46,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/nand_spl/board/karo/tx25/u-boot.lds b/nand_spl/board/karo/tx25/u-boot.lds
index 24a3c0c..ee36131 100644
--- a/nand_spl/board/karo/tx25/u-boot.lds
+++ b/nand_spl/board/karo/tx25/u-boot.lds
@@ -46,9 +46,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/nand_spl/board/samsung/smdk6400/u-boot.lds b/nand_spl/board/samsung/smdk6400/u-boot.lds
index 8481062..2ed6466 100644
--- a/nand_spl/board/samsung/smdk6400/u-boot.lds
+++ b/nand_spl/board/samsung/smdk6400/u-boot.lds
@@ -50,9 +50,6 @@ SECTIONS
 	. = ALIGN(4);
 	.got : { *(.got) }
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 6/6 V2] kerneldoc: tmpl: Implement template for LG-arrays
  2012-10-07  0:06 ` [U-Boot] [PATCH 0/6 V2] Linker-generated arrays (take 2) Marek Vasut
                     ` (4 preceding siblings ...)
  2012-10-07  0:06   ` [U-Boot] [PATCH 5/6 V2] common: Discard the __u_boot_cmd section Marek Vasut
@ 2012-10-07  0:06   ` Marek Vasut
  2012-10-12 20:27   ` [U-Boot] [PATCH 0/6 V3] Linker-generated arrays (take 2) Marek Vasut
  6 siblings, 0 replies; 48+ messages in thread
From: Marek Vasut @ 2012-10-07  0:06 UTC (permalink / raw)
  To: u-boot

Implement kerneldoc template for linker-generated arrays. This is
the first template in U-Boot that is used to generate kerneldoc
style documentation. This template is very basic.

Signed-off-by: Marek Vasut <marex@denx.de>

---
 doc/DocBook/Makefile          |    2 +-
 doc/DocBook/linker_lists.tmpl |   46 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+), 1 deletion(-)
 create mode 100644 doc/DocBook/linker_lists.tmpl

V2:
- Rebase on top of testing/dm-kerneldoc

diff --git a/doc/DocBook/Makefile b/doc/DocBook/Makefile
index 2f2ddfc..5f13d3d 100644
--- a/doc/DocBook/Makefile
+++ b/doc/DocBook/Makefile
@@ -8,7 +8,7 @@
 
 include $(TOPDIR)/config.mk
 
-DOCBOOKS :=
+DOCBOOKS := linker_lists.xml
 
 ###
 # The build process is as follows (targets):
diff --git a/doc/DocBook/linker_lists.tmpl b/doc/DocBook/linker_lists.tmpl
new file mode 100644
index 0000000..a47377f
--- /dev/null
+++ b/doc/DocBook/linker_lists.tmpl
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+	"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>
+
+<book id="UBootLGArrays">
+ <bookinfo>
+  <title>The U-Boot Linker-Generated Arrays</title>
+  
+  <legalnotice>
+   <para>
+     This documentation 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.
+   </para>
+      
+   <para>
+     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.
+   </para>
+      
+   <para>
+     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
+   </para>
+      
+   <para>
+     For more details see the file COPYING in the source
+     distribution of U-Boot Bootloader.
+   </para>
+  </legalnotice>
+ </bookinfo>
+
+<toc></toc>
+
+  <chapter id="adt">
+     <title>Linker-Generated Arrays</title>
+!Iinclude/linker_lists.h
+  </chapter>
+
+</book>
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 0/6 V3] Linker-generated arrays (take 2)
  2012-10-07  0:06 ` [U-Boot] [PATCH 0/6 V2] Linker-generated arrays (take 2) Marek Vasut
                     ` (5 preceding siblings ...)
  2012-10-07  0:06   ` [U-Boot] [PATCH 6/6 V2] kerneldoc: tmpl: Implement template for LG-arrays Marek Vasut
@ 2012-10-12 20:27   ` Marek Vasut
  2012-10-12 20:27     ` [U-Boot] [PATCH 1/6 V3] common: Add symbol handling for generic lists into Makefile Marek Vasut
                       ` (5 more replies)
  6 siblings, 6 replies; 48+ messages in thread
From: Marek Vasut @ 2012-10-12 20:27 UTC (permalink / raw)
  To: u-boot

This is a second stab at the linker-generated array. Basically, this
concept is a generic abstraction of how u_boot_cmd works today. The
patch 2/4 contains a huge pile of documentation which should clarify
most of the questions.

I don't see size growth, I see size fluctiation in the order of tens
of bytes with these patches applied. Subsequent patch added to this
series removes the __u_boot_cmd section completely.

Marek Vasut (6):
  common: Add symbol handling for generic lists into Makefile
  common: Implement support for linker-generated arrays
  common: Add .u_boot_list into all linker files
  common: Convert the U-Boot commands to LG-arrays
  common: Discard the __u_boot_cmd section
  kerneldoc: tmpl: Implement template for LG-arrays

 .gitignore                                       |    1 +
 Makefile                                         |   19 ++-
 arch/arm/cpu/arm920t/ep93xx/u-boot.lds           |    8 +-
 arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds        |    7 +-
 arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds      |    7 +-
 arch/arm/cpu/armv7/omap-common/u-boot-spl.lds    |    5 +
 arch/arm/cpu/ixp/u-boot.lds                      |    8 +-
 arch/arm/cpu/u-boot.lds                          |    8 +-
 arch/arm/imx-common/cmd_bmode.c                  |   11 +-
 arch/avr32/cpu/u-boot.lds                        |    8 +-
 arch/avr32/lib/board.c                           |    4 +-
 arch/blackfin/cpu/u-boot.lds                     |    8 +-
 arch/m68k/lib/board.c                            |    4 +-
 arch/microblaze/cpu/u-boot.lds                   |    9 +-
 arch/mips/lib/board.c                            |    4 +-
 arch/nds32/cpu/n1213/u-boot.lds                  |    8 +-
 arch/nds32/lib/board.c                           |    4 +-
 arch/nios2/cpu/u-boot.lds                        |   10 +-
 arch/powerpc/cpu/74xx_7xx/u-boot.lds             |    8 +-
 arch/powerpc/cpu/mpc512x/u-boot.lds              |    8 +-
 arch/powerpc/cpu/mpc5xx/u-boot.lds               |    8 +-
 arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds |    6 +-
 arch/powerpc/cpu/mpc5xxx/u-boot.lds              |    8 +-
 arch/powerpc/cpu/mpc8220/u-boot.lds              |    8 +-
 arch/powerpc/cpu/mpc824x/u-boot.lds              |    8 +-
 arch/powerpc/cpu/mpc8260/u-boot.lds              |    8 +-
 arch/powerpc/cpu/mpc83xx/u-boot.lds              |    8 +-
 arch/powerpc/cpu/mpc85xx/u-boot-nand.lds         |    7 +-
 arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds     |    4 +
 arch/powerpc/cpu/mpc85xx/u-boot.lds              |    8 +-
 arch/powerpc/cpu/mpc86xx/u-boot.lds              |    8 +-
 arch/powerpc/cpu/ppc4xx/u-boot.lds               |    8 +-
 arch/sandbox/cpu/u-boot.lds                      |    8 +-
 arch/sh/cpu/sh2/u-boot.lds                       |    9 +-
 arch/sh/cpu/sh3/u-boot.lds                       |    9 +-
 arch/sh/cpu/sh4/u-boot.lds                       |    9 +-
 arch/sparc/lib/board.c                           |    4 +-
 arch/x86/cpu/u-boot.lds                          |    7 +-
 board/BuS/eb_cpu5282/u-boot.lds                  |    8 +-
 board/LEOX/elpt860/u-boot.lds                    |    8 +-
 board/RPXClassic/u-boot.lds                      |    8 +-
 board/RPXClassic/u-boot.lds.debug                |    8 +-
 board/RPXlite/u-boot.lds                         |    8 +-
 board/RPXlite/u-boot.lds.debug                   |    8 +-
 board/RPXlite_dw/u-boot.lds                      |    8 +-
 board/RPXlite_dw/u-boot.lds.debug                |    8 +-
 board/RRvision/u-boot.lds                        |    8 +-
 board/actux1/u-boot.lds                          |    8 +-
 board/actux2/u-boot.lds                          |    8 +-
 board/actux3/u-boot.lds                          |    8 +-
 board/adder/u-boot.lds                           |    8 +-
 board/ait/cam_enc_4xx/u-boot-spl.lds             |    4 +
 board/altera/nios2-generic/u-boot.lds            |   10 +-
 board/amcc/acadia/u-boot-nand.lds                |    6 +-
 board/amcc/bamboo/u-boot-nand.lds                |    6 +-
 board/amcc/canyonlands/u-boot-nand.lds           |    6 +-
 board/amcc/kilauea/u-boot-nand.lds               |    6 +-
 board/amcc/sequoia/u-boot-nand.lds               |    6 +-
 board/amcc/sequoia/u-boot-ram.lds                |    6 +-
 board/astro/mcf5373l/u-boot.lds                  |    8 +-
 board/c2mon/u-boot.lds                           |    8 +-
 board/c2mon/u-boot.lds.debug                     |    8 +-
 board/cobra5272/u-boot.lds                       |    8 +-
 board/cogent/u-boot.lds                          |    8 +-
 board/cogent/u-boot.lds.debug                    |    8 +-
 board/cray/L1/u-boot.lds.debug                   |    8 +-
 board/dave/PPChameleonEVB/u-boot.lds             |    8 +-
 board/davinci/da8xxevm/u-boot-spl-da850evm.lds   |    6 +
 board/davinci/da8xxevm/u-boot-spl-hawk.lds       |    5 +
 board/dbau1x00/u-boot.lds                        |    7 +-
 board/dvlhost/u-boot.lds                         |    8 +-
 board/eltec/mhpc/u-boot.lds                      |    8 +-
 board/eltec/mhpc/u-boot.lds.debug                |    8 +-
 board/emk/top860/u-boot.lds                      |    8 +-
 board/ep88x/u-boot.lds                           |    8 +-
 board/esd/dasa_sim/u-boot.lds                    |    8 +-
 board/esd/pmc440/u-boot-nand.lds                 |    6 +-
 board/esd/tasreg/u-boot.lds                      |    8 +-
 board/esteem192e/u-boot.lds                      |    8 +-
 board/etx094/u-boot.lds                          |    8 +-
 board/evb64260/u-boot.lds                        |    8 +-
 board/fads/u-boot.lds                            |    8 +-
 board/flagadm/u-boot.lds                         |    8 +-
 board/flagadm/u-boot.lds.debug                   |    8 +-
 board/freescale/m5208evbe/u-boot.lds             |    8 +-
 board/freescale/m52277evb/u-boot.lds             |    8 +-
 board/freescale/m5235evb/u-boot.lds              |    8 +-
 board/freescale/m5249evb/u-boot.lds              |    8 +-
 board/freescale/m5253demo/u-boot.lds             |    8 +-
 board/freescale/m5253evbe/u-boot.lds             |    8 +-
 board/freescale/m5271evb/u-boot.lds              |    8 +-
 board/freescale/m5272c3/u-boot.lds               |    8 +-
 board/freescale/m5275evb/u-boot.lds              |    8 +-
 board/freescale/m5282evb/u-boot.lds              |    8 +-
 board/freescale/m53017evb/u-boot.lds             |    8 +-
 board/freescale/m5329evb/u-boot.lds              |    8 +-
 board/freescale/m5373evb/u-boot.lds              |    8 +-
 board/freescale/m54451evb/u-boot.lds             |    8 +-
 board/freescale/m54455evb/u-boot.lds             |    8 +-
 board/freescale/m547xevb/u-boot.lds              |    8 +-
 board/freescale/m548xevb/u-boot.lds              |    8 +-
 board/freescale/mx31ads/u-boot.lds               |    8 +-
 board/gaisler/gr_cpci_ax2000/u-boot.lds          |    7 +-
 board/gaisler/gr_ep2s60/u-boot.lds               |    7 +-
 board/gaisler/gr_xc3s_1500/u-boot.lds            |    7 +-
 board/gaisler/grsim/u-boot.lds                   |    7 +-
 board/gaisler/grsim_leon2/u-boot.lds             |    7 +-
 board/gen860t/u-boot-flashenv.lds                |    7 +-
 board/gen860t/u-boot.lds                         |    8 +-
 board/genietv/u-boot.lds                         |    8 +-
 board/genietv/u-boot.lds.debug                   |    8 +-
 board/hermes/u-boot.lds                          |    8 +-
 board/hermes/u-boot.lds.debug                    |    8 +-
 board/hymod/u-boot.lds                           |    8 +-
 board/hymod/u-boot.lds.debug                     |    8 +-
 board/icu862/u-boot.lds                          |    8 +-
 board/icu862/u-boot.lds.debug                    |    8 +-
 board/idmr/u-boot.lds                            |    8 +-
 board/incaip/u-boot.lds                          |    7 +-
 board/ip860/u-boot.lds                           |    8 +-
 board/ip860/u-boot.lds.debug                     |    8 +-
 board/ivm/u-boot.lds                             |    8 +-
 board/ivm/u-boot.lds.debug                       |    8 +-
 board/korat/u-boot-F7FC.lds                      |    6 +-
 board/kup/kup4k/u-boot.lds                       |    8 +-
 board/kup/kup4k/u-boot.lds.debug                 |    8 +-
 board/kup/kup4x/u-boot.lds                       |    8 +-
 board/kup/kup4x/u-boot.lds.debug                 |    8 +-
 board/lantec/u-boot.lds                          |    8 +-
 board/lantec/u-boot.lds.debug                    |    8 +-
 board/lwmon/u-boot.lds                           |    8 +-
 board/lwmon/u-boot.lds.debug                     |    8 +-
 board/manroland/uc100/u-boot.lds                 |    8 +-
 board/matrix_vision/mvsmr/u-boot.lds             |    8 +-
 board/mbx8xx/u-boot.lds                          |    8 +-
 board/mbx8xx/u-boot.lds.debug                    |    8 +-
 board/micronas/vct/u-boot.lds                    |    6 +-
 board/mousse/u-boot.lds                          |    8 +-
 board/mousse/u-boot.lds.ram                      |    3 -
 board/mousse/u-boot.lds.rom                      |    3 -
 board/mpl/pip405/u-boot.lds.debug                |    8 +-
 board/mvblue/u-boot.lds                          |    8 +-
 board/netphone/u-boot.lds                        |    8 +-
 board/netphone/u-boot.lds.debug                  |    8 +-
 board/netta/u-boot.lds                           |    8 +-
 board/netta/u-boot.lds.debug                     |    8 +-
 board/netta2/u-boot.lds                          |    8 +-
 board/netta2/u-boot.lds.debug                    |    8 +-
 board/netvia/u-boot.lds                          |    8 +-
 board/netvia/u-boot.lds.debug                    |    8 +-
 board/nx823/u-boot.lds                           |    8 +-
 board/nx823/u-boot.lds.debug                     |    8 +-
 board/openrisc/openrisc-generic/u-boot.lds       |    8 +-
 board/pb1x00/u-boot.lds                          |    7 +-
 board/qemu-mips/u-boot.lds                       |    8 +-
 board/qi/qi_lb60/u-boot.lds                      |    8 +-
 board/quantum/u-boot.lds                         |    8 +-
 board/r360mpi/u-boot.lds                         |    8 +-
 board/rbc823/u-boot.lds                          |    8 +-
 board/renesas/sh7757lcr/u-boot.lds               |    9 +-
 board/rsdproto/u-boot.lds                        |    8 +-
 board/samsung/smdk5250/smdk5250-uboot-spl.lds    |    5 +
 board/samsung/smdk6400/u-boot-nand.lds           |   10 +-
 board/sandburst/karef/u-boot.lds.debug           |    8 +-
 board/sandburst/metrobox/u-boot.lds.debug        |    8 +-
 board/sandpoint/u-boot.lds                       |    8 +-
 board/siemens/IAD210/u-boot.lds                  |    8 +-
 board/sixnet/u-boot.lds                          |    8 +-
 board/snmc/qs850/u-boot.lds                      |    8 +-
 board/snmc/qs860t/u-boot.lds                     |    8 +-
 board/spc1920/u-boot.lds                         |    8 +-
 board/spd8xx/u-boot.lds                          |    8 +-
 board/spd8xx/u-boot.lds.debug                    |    8 +-
 board/stx/stxxtc/u-boot.lds                      |    8 +-
 board/stx/stxxtc/u-boot.lds.debug                |    8 +-
 board/svm_sc8xx/u-boot.lds                       |    8 +-
 board/tqc/tqm8xx/u-boot.lds                      |    8 +-
 board/v37/u-boot.lds                             |    8 +-
 board/vpac270/u-boot-spl.lds                     |    4 +
 board/w7o/u-boot.lds.debug                       |    8 +-
 board/westel/amx860/u-boot.lds                   |    8 +-
 board/westel/amx860/u-boot.lds.debug             |    8 +-
 board/xes/xpedite1000/u-boot.lds.debug           |    8 +-
 common/cmd_help.c                                |    8 +-
 common/command.c                                 |   17 ++-
 config.mk                                        |    2 +
 doc/DocBook/Makefile                             |    2 +-
 doc/DocBook/linker_lists.tmpl                    |   46 +++++++
 doc/README.commands                              |   10 +-
 examples/standalone/sparc.lds                    |    1 +
 helper.mk                                        |   64 ++++++++++
 include/command.h                                |   28 ++--
 include/linker_lists.h                           |  148 ++++++++++++++++++++++
 nand_spl/board/freescale/mpc8536ds/Makefile      |    9 +-
 nand_spl/board/freescale/mpc8569mds/Makefile     |    9 +-
 nand_spl/board/freescale/mpc8572ds/Makefile      |    9 +-
 nand_spl/board/freescale/mx31pdk/Makefile        |    9 +-
 nand_spl/board/freescale/mx31pdk/u-boot.lds      |    8 +-
 nand_spl/board/freescale/p1010rdb/Makefile       |    9 +-
 nand_spl/board/freescale/p1023rds/Makefile       |    9 +-
 nand_spl/board/freescale/p1_p2_rdb/Makefile      |    9 +-
 nand_spl/board/freescale/p1_p2_rdb_pc/Makefile   |    9 +-
 nand_spl/board/karo/tx25/Makefile                |    9 +-
 nand_spl/board/karo/tx25/u-boot.lds              |    8 +-
 nand_spl/board/samsung/smdk6400/u-boot.lds       |    8 +-
 spl/.gitignore                                   |    1 +
 spl/Makefile                                     |    8 +-
 207 files changed, 1217 insertions(+), 619 deletions(-)
 create mode 100644 doc/DocBook/linker_lists.tmpl
 create mode 100644 helper.mk
 create mode 100644 include/linker_lists.h

Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>

-- 
1.7.10.4

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 1/6 V3] common: Add symbol handling for generic lists into Makefile
  2012-10-12 20:27   ` [U-Boot] [PATCH 0/6 V3] Linker-generated arrays (take 2) Marek Vasut
@ 2012-10-12 20:27     ` Marek Vasut
  2012-10-14 23:28       ` Daniel Schwierzeck
  2012-10-17 10:43       ` [U-Boot] [PATCH 1/6 V4] " Marek Vasut
  2012-10-12 20:27     ` [U-Boot] [PATCH 2/6 V3] common: Implement support for linker-generated arrays Marek Vasut
                       ` (4 subsequent siblings)
  5 siblings, 2 replies; 48+ messages in thread
From: Marek Vasut @ 2012-10-12 20:27 UTC (permalink / raw)
  To: u-boot

This patch adds essential components for generation of the contents of
the linker section that is used by the linker-generated array. All of
the contents is held in a separate file, u-boot.lst, which is generated
at runtime just before U-Boot is linked.

The purpose of this code is to especially generate the appropriate
boundary symbols around each subsection in the section carrying the
linker-generated arrays. Obviously, the interim linker code for actual
placement of the variables into the section is generated too. The
generated file, u-boot.lst, is included into u-boot.lds via the linker
INCLUDE directive in u-boot.lds .

Adjustments are made in the Makefile and spl/Makefile so that the
u-boot.lds and u-boot-spl.lds depend on their respective .lst files.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>

Cover-letter:
Linker-generated arrays (take 2)

This is a second stab at the linker-generated array. Basically, this
concept is a generic abstraction of how u_boot_cmd works today. The
patch 2/4 contains a huge pile of documentation which should clarify
most of the questions.

I don't see size growth, I see size fluctiation in the order of tens
of bytes with these patches applied. Subsequent patch added to this
series removes the __u_boot_cmd section completely.
---
 .gitignore                                     |    1 +
 Makefile                                       |   19 ++++---
 config.mk                                      |    2 +
 helper.mk                                      |   64 ++++++++++++++++++++++++
 nand_spl/board/freescale/mpc8536ds/Makefile    |    9 +++-
 nand_spl/board/freescale/mpc8569mds/Makefile   |    9 +++-
 nand_spl/board/freescale/mpc8572ds/Makefile    |    9 +++-
 nand_spl/board/freescale/mx31pdk/Makefile      |    9 +++-
 nand_spl/board/freescale/p1010rdb/Makefile     |    9 +++-
 nand_spl/board/freescale/p1023rds/Makefile     |    9 +++-
 nand_spl/board/freescale/p1_p2_rdb/Makefile    |    9 +++-
 nand_spl/board/freescale/p1_p2_rdb_pc/Makefile |    9 +++-
 nand_spl/board/karo/tx25/Makefile              |    9 +++-
 spl/.gitignore                                 |    1 +
 spl/Makefile                                   |    8 ++-
 15 files changed, 150 insertions(+), 26 deletions(-)
 create mode 100644 helper.mk

V2: 
- Rebase on top of testing/dm-kerneldoc
- Fix INCLUDE u-boot.lds in linker scripts. It didn't work with older LD,
  use #include instead and make use of CPP.
- Fix placement of u-boot.lds for NAND SPL
V3:
- Rebase on top of u-boot/next
- Put u-boot.lst into include/ , so the CPP finds it easily.

diff --git a/.gitignore b/.gitignore
index d91e91b..1ac43f2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,6 +38,7 @@
 /u-boot.sha1
 /u-boot.dis
 /u-boot.lds
+/u-boot.lst
 /u-boot.ubl
 /u-boot.ais
 /u-boot.dtb
diff --git a/Makefile b/Makefile
index ab34fa7..66c8c77 100644
--- a/Makefile
+++ b/Makefile
@@ -535,7 +535,10 @@ else
 GEN_UBOOT = \
 		UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
 		sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
-		cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) $$UNDEF_SYM $(__OBJS) \
+		UNDEF_LST=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
+		sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_list_.*\)/-u\1/p'|sort|uniq`;\
+		cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) \
+			$$UNDEF_SYM $$UNDEF_LST $(__OBJS) \
 			--start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
 			-Map u-boot.map -o u-boot
 endif
@@ -568,8 +571,12 @@ $(SUBDIR_EXAMPLES): $(obj)u-boot
 $(LDSCRIPT):	depend
 		$(MAKE) -C $(dir $@) $(notdir $@)
 
-$(obj)u-boot.lds: $(LDSCRIPT)
-		$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates u-boot.lst,
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(obj)include/u-boot.lst, $(LIBBOARD) $(LIBS)))
+$(obj)u-boot.lds: $(LDSCRIPT) $(obj)include/u-boot.lst
+		$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 nand_spl:	$(TIMESTAMP_FILE) $(VERSION_FILE) depend
 		$(MAKE) -C nand_spl/board/$(BOARDDIR) all
@@ -807,7 +814,7 @@ clean:
 	@rm -f $(obj)board/cray/L1/{bootscript.c,bootscript.image}	  \
 	       $(obj)board/matrix_vision/*/bootscript.img		  \
 	       $(obj)board/voiceblue/eeprom 				  \
-	       $(obj)u-boot.lds						  \
+	       $(obj)u-boot.lds,include/u-boot.lst			  \
 	       $(obj)arch/blackfin/cpu/bootrom-asm-offsets.[chs]	  \
 	       $(obj)arch/blackfin/cpu/init.{lds,elf}
 	@rm -f $(obj)include/bmp_logo.h
@@ -841,8 +848,8 @@ clobber:	tidy
 	@rm -f $(obj)u-boot.dtb
 	@rm -f $(obj)u-boot.sb
 	@rm -f $(obj)u-boot.spr
-	@rm -f $(obj)nand_spl/{u-boot.lds,u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map,System.map}
-	@rm -f $(obj)spl/{u-boot-spl,u-boot-spl.bin,u-boot-spl.lds,u-boot-spl.map}
+	@rm -f $(obj)nand_spl/{u-boot.{lds,lst},u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map,System.map}
+	@rm -f $(obj)spl/{u-boot-spl,u-boot-spl.bin,u-boot-spl.{lds,lst},u-boot-spl.map}
 	@rm -f $(obj)MLO
 	@rm -f $(obj)tools/xway-swap-bytes
 	@rm -f $(obj)arch/powerpc/cpu/mpc824x/bedbug_603e.c
diff --git a/config.mk b/config.mk
index bb5c69a..b7cd481 100644
--- a/config.mk
+++ b/config.mk
@@ -23,6 +23,8 @@
 
 #########################################################################
 
+include $(TOPDIR)/helper.mk
+
 ifeq ($(CURDIR),$(SRCTREE))
 dir :=
 else
diff --git a/helper.mk b/helper.mk
new file mode 100644
index 0000000..79a1da0
--- /dev/null
+++ b/helper.mk
@@ -0,0 +1,64 @@
+#
+# Copyright (C) 2012 Marek Vasut <marex@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.
+#
+#########################################################################
+
+##
+# make_u_boot_list - Generate contents of u_boot_list section
+# 1:		The name of the resulting file (usually u-boot.lst)
+# 2:		Files to analyze for possible u_boot_list entries
+#
+# This function generates the contents of the u_boot_list section,
+# including all the border symbols for it's subsections. The operation
+# of this function is as follows, numbering goes per lines:
+#
+# 1) Dump the ELF header sections from all files supplied via $(2)
+# 2) Filter out all other stuff that does not belong into .u_boot_list
+#    section.
+# 3) Fix up the lines so that the resulting output is is in format
+#    ".u_boot_list.*".
+# 4) Remove the last .something$, since that only contains the name
+#    of the variable to be put into a subsection. This name is irelevant
+#    for generation of border symbols, thus of no interest, remove it.
+# 5) Take each line and for every dot "." in that line, print the whole
+#    line until that dot "." . This is important so that we have all
+#    parent border symbols generated as well.
+# 6) Load every line and firstly append "\a" at the end and print the
+#    line. Next, append "@" at the end and print the line. Finally,
+#    append "~" at the end of line. This will make sense in conjunction
+#    with 6) and 7).
+# 7) Sort the lines. It is imperative to use LC_COLLATE=C here because
+#    with this, the "\a" symbol is first and "~" symbol is last. Any
+#    other symbols fall inbetween. Symbols like "@", which marks the
+#    end of current line (representing current section) and ".", which
+#    means the line continues and thus represents subsection.
+# 8) With such ordering, all lines ending with "\a" will float at the
+#    begining of all lines with the same prefix. Thus it is easy to
+#    replace "\a" with __start and make it the __start border symbol.
+#    Very similarly for "~", which will be always at the bottom and so
+#    can be replaced by "__end" and made into the __end border symbol.
+#    Finally, every line ending with "@" symbol will be transformed
+#    into " *(SORT(${line}*)); " format, which in the linker parlance
+#    will allow it to trap all symbols relevant to the subsection.
+#
+define make_u_boot_list
+$(1): $(2)
+	$(OBJDUMP) -h $(2) | \
+	sed -n -e '/.*\.u_boot_list[^ ]\+/ ! {d;n}' \
+		-e 's/.*\(\.u_boot_list[^ ]\+\).*$$$$/\1/' \
+		-e 's/\.[^\.]\+$$$$//' \
+		-e ':s /^.\+$$$$/ { p;s/^\(.*\)\.[^\.]*$$$$/\1/;b s }' | \
+	sed -n -e 'h;s/$$$$/\a/p;g;s/$$$$/@/p;g;s/$$$$/~/p;' | \
+	LC_COLLATE=C sort -u | \
+	sed -n -e '/\a$$$$/ { s/\./_/g;s/\a$$$$/__start = .;/p; }'\
+		-e '/~$$$$/ { s/\./_/g;s/~$$$$/__end = .;/p; }'\
+		-e '/@$$$$/ { s/\(.*\)@$$$$/*(SORT(\1.*));/p }' > $(1)
+endef
diff --git a/nand_spl/board/freescale/mpc8536ds/Makefile b/nand_spl/board/freescale/mpc8536ds/Makefile
index 43da3df..e5388d8 100644
--- a/nand_spl/board/freescale/mpc8536ds/Makefile
+++ b/nand_spl/board/freescale/mpc8536ds/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -61,8 +62,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/mpc8569mds/Makefile b/nand_spl/board/freescale/mpc8569mds/Makefile
index 43da3df..e5388d8 100644
--- a/nand_spl/board/freescale/mpc8569mds/Makefile
+++ b/nand_spl/board/freescale/mpc8569mds/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -61,8 +62,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/mpc8572ds/Makefile b/nand_spl/board/freescale/mpc8572ds/Makefile
index 43da3df..e5388d8 100644
--- a/nand_spl/board/freescale/mpc8572ds/Makefile
+++ b/nand_spl/board/freescale/mpc8572ds/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -61,8 +62,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/mx31pdk/Makefile b/nand_spl/board/freescale/mx31pdk/Makefile
index 87784d2..43e72c4 100644
--- a/nand_spl/board/freescale/mx31pdk/Makefile
+++ b/nand_spl/board/freescale/mx31pdk/Makefile
@@ -6,6 +6,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
 	   $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_SPL_BUILD -DCONFIG_NAND_SPL
@@ -36,8 +37,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $@
 
-$(nandobj)u-boot.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 #########################################################################
 
diff --git a/nand_spl/board/freescale/p1010rdb/Makefile b/nand_spl/board/freescale/p1010rdb/Makefile
index cdbd492..f270faa 100644
--- a/nand_spl/board/freescale/p1010rdb/Makefile
+++ b/nand_spl/board/freescale/p1010rdb/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) $(LDFLAGS) \
 	   $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -62,8 +63,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/p1023rds/Makefile b/nand_spl/board/freescale/p1023rds/Makefile
index da43521..b288284 100644
--- a/nand_spl/board/freescale/p1023rds/Makefile
+++ b/nand_spl/board/freescale/p1023rds/Makefile
@@ -27,6 +27,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -57,8 +58,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/p1_p2_rdb/Makefile b/nand_spl/board/freescale/p1_p2_rdb/Makefile
index 43da3df..e5388d8 100644
--- a/nand_spl/board/freescale/p1_p2_rdb/Makefile
+++ b/nand_spl/board/freescale/p1_p2_rdb/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -61,8 +62,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/p1_p2_rdb_pc/Makefile b/nand_spl/board/freescale/p1_p2_rdb_pc/Makefile
index 46cf709..7146d16 100644
--- a/nand_spl/board/freescale/p1_p2_rdb_pc/Makefile
+++ b/nand_spl/board/freescale/p1_p2_rdb_pc/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -62,8 +63,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/karo/tx25/Makefile b/nand_spl/board/karo/tx25/Makefile
index 0336346..becf7fa 100644
--- a/nand_spl/board/karo/tx25/Makefile
+++ b/nand_spl/board/karo/tx25/Makefile
@@ -27,6 +27,7 @@ include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
 	   $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_SPL_BUILD -DCONFIG_NAND_SPL
@@ -57,8 +58,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $@
 
-$(nandobj)u-boot.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 #########################################################################
 
diff --git a/spl/.gitignore b/spl/.gitignore
index 7c88147..8cf487e 100644
--- a/spl/.gitignore
+++ b/spl/.gitignore
@@ -2,3 +2,4 @@ u-boot-spl
 u-boot-spl.bin
 u-boot-spl.lds
 u-boot-spl.map
+u-boot.lst
diff --git a/spl/Makefile b/spl/Makefile
index 92267d6..20a943c 100644
--- a/spl/Makefile
+++ b/spl/Makefile
@@ -154,8 +154,12 @@ $(START):	depend
 $(LIBS):	depend
 	$(MAKE) -C $(SRCTREE)$(dir $(subst $(SPLTREE),,$@))
 
-$(obj)u-boot-spl.lds: $(LDSCRIPT) depend
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - < $< > $@
+# The following line expands into whole rule which generates u-boot.lst,
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(obj)u-boot.lst, $(LIBS)))
+$(obj)u-boot-spl.lds: $(LDSCRIPT) $(obj)u-boot.lst depend
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj). -ansi -D__ASSEMBLY__ -P - < $< > $@
 
 depend:	$(obj).depend
 .PHONY: depend
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 2/6 V3] common: Implement support for linker-generated arrays
  2012-10-12 20:27   ` [U-Boot] [PATCH 0/6 V3] Linker-generated arrays (take 2) Marek Vasut
  2012-10-12 20:27     ` [U-Boot] [PATCH 1/6 V3] common: Add symbol handling for generic lists into Makefile Marek Vasut
@ 2012-10-12 20:27     ` Marek Vasut
  2012-10-12 20:27     ` [U-Boot] [PATCH 3/6 V3] common: Add .u_boot_list into all linker files Marek Vasut
                       ` (3 subsequent siblings)
  5 siblings, 0 replies; 48+ messages in thread
From: Marek Vasut @ 2012-10-12 20:27 UTC (permalink / raw)
  To: u-boot

This patch adds support for linker-generated array. These arrays
are a generalization of the U-Boot command declaration approach.

Basically, the idea is to generate an array, where elements of the
array are statically initialized at compile time and each element
is declared separatelly at different place. Such array is assembled
together into continuous piece of memory by linker and a pointer to
it's first entry can then be retrieved via accessor.

The actual implementation relies on placing any variable that is to
represent an element of LG-array into particular subsection of the
.u_boot_list linker section . The subsection is determined by user
options. Once compiled, it is possible to dump all symbols placed
in .u_boot_list section and the subsections in which they should be
and generate appropriate bounds for each requested subsection of the
.u_boot_list section. Each such subsection thus contains __start and
__end entries at the begining and end respecitively.

This allows for simple run-time traversing of the array, since the
symbols are properly defined.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>
---
 include/linker_lists.h |  148 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 148 insertions(+)
 create mode 100644 include/linker_lists.h

V2:
- Rebase on top of testing/dm-kerneldoc
V3:
- Rebase on top of u-boot/next

diff --git a/include/linker_lists.h b/include/linker_lists.h
new file mode 100644
index 0000000..0b405d7
--- /dev/null
+++ b/include/linker_lists.h
@@ -0,0 +1,148 @@
+/*
+ * include/linker_lists.h
+ *
+ * Implementation of linker-generated arrays
+ *
+ * Copyright (C) 2012 Marek Vasut <marex@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.
+ */
+#ifndef __LINKER_LISTS_H__
+#define __LINKER_LISTS_H__
+
+/**
+ * ll_entry_declare() - Declare linker-generated array entry
+ * @_type:	Data type of the entry
+ * @_name:	Name of the entry
+ * @_section_u:	Subsection of u_boot_list in which this entry is placed
+ *		(with underscores instead of dots, for name concatenation)
+ * @_section_d:	Subsection of u_boot_list in which this entry is placed
+ *		(with dots, for section concatenation)
+ *
+ * This macro declares a variable that is placed into a linker-generated
+ * array. This is a basic building block for more advanced use of linker-
+ * generated arrays. The user is expected to build their own macro wrapper
+ * around this one.
+ *
+ * A variable declared using this macro must be compile-time initialized
+ * and is as such placed into subsection of special section, .u_boot_list.
+ * The subsection is specified by the _section_[u,d] parameter, see below.
+ * The base name of the variable is _name, yet the actual variable is
+ * declared as concatenation of
+ *
+ *   %_u_boot_list_ + @_section_u + _ + @_name
+ *
+ * which ensures name uniqueness. This variable shall never be refered
+ * directly though.
+ *
+ * Special precaution must be made when using this macro:
+ * 1) The _type must not contain the "static" keyword, otherwise the entry
+ *    is not generated.
+ *
+ * 2) The @_section_u and @_section_d variables must match, the only difference
+ *    is that in @_section_u is every dot "." character present in @_section_d
+ *    replaced by a single underscore "_" character in @_section_u. The actual
+ *    purpose of these parameters is to select proper subsection in the global
+ *    .u_boot_list section.
+ *
+ * 3) In case a section is declared that contains some array elements AND a
+ *    subsection of this section is declared and contains some elements, it is
+ *    imperative that the elements are of the same type.
+ *
+ * 4) In case an outer section is declared that contains some array elements
+ *    AND am inner subsection of this section is declared and contains some
+ *    elements, then when traversing the outer section, even the elements of
+ *    the inner sections are present in the array.
+ *
+ * Example:
+ * ll_entry_declare(struct my_sub_cmd, my_sub_cmd, cmd_sub, cmd.sub) = {
+ *         .x = 3,
+ *         .y = 4,
+ * };
+ */
+#define ll_entry_declare(_type, _name, _section_u, _section_d)		\
+	_type _u_boot_list_##_section_u##_##_name __attribute__((	\
+			unused,	aligned(4),				\
+			section(".u_boot_list."#_section_d"."#_name)))
+
+/**
+ * ll_entry_start() - Point to first entry of linker-generated array
+ * @_type:	Data type of the entry
+ * @_section_u:	Subsection of u_boot_list in which this entry is placed
+ *		(with underscores instead of dots)
+ *
+ * This function returns (_type *) pointer to the very first entry of a
+ * linker-generated array placed into subsection of .u_boot_list section
+ * specified by _section_u argument.
+ *
+ * Example:
+ * struct my_sub_cmd *msc = ll_entry_start(struct my_sub_cmd, cmd_sub);
+ */
+#define ll_entry_start(_type, _section_u)				\
+	({								\
+		extern _type _u_boot_list_##_section_u##__start;	\
+		_type *_ll_result = &_u_boot_list_##_section_u##__start;\
+		_ll_result;						\
+	})
+
+/**
+ * ll_entry_count() - Return the number of elements in linker-generated array
+ * @_type:	Data type of the entry
+ * @_section_u:	Subsection of u_boot_list in which this entry is placed
+ *		(with underscores instead of dots)
+ *
+ * This function returns the number of elements of a linker-generated array
+ * placed into subsection of .u_boot_list section specified by _section_u
+ * argument. The result is of an unsigned int type.
+ *
+ * Example:
+ * int i;
+ * const unsigned int count = ll_entry_count(struct my_sub_cmd, cmd_sub);
+ * struct my_sub_cmd *msc = ll_entry_start(struct my_sub_cmd, cmd_sub);
+ * for (i = 0; i < count; i++, msc++)
+ *         printf("Entry %i, x=%i y=%i\n", i, msc->x, msc->y);
+ */
+#define ll_entry_count(_type, _section_u)				\
+	({								\
+		extern _type _u_boot_list_##_section_u##__start;	\
+		extern _type _u_boot_list_##_section_u##__end;		\
+		unsigned int _ll_result =				\
+			&_u_boot_list_##_section_u##__end -		\
+			&_u_boot_list_##_section_u##__start;		\
+		_ll_result;						\
+	})
+
+
+/**
+ * ll_entry_get() - Retrieve entry from linker-generated array by name
+ * @_type:	Data type of the entry
+ * @_name:	Name of the entry
+ * @_section_u:	Subsection of u_boot_list in which this entry is placed
+ *		(with underscores instead of dots)
+ *
+ * This function returns a pointer to a particular entry in LG-array
+ * identified by the subsection of u_boot_list where the entry resides
+ * and it's name.
+ *
+ * Example:
+ * ll_entry_declare(struct my_sub_cmd, my_sub_cmd, cmd_sub, cmd.sub) = {
+ *         .x = 3,
+ *         .y = 4,
+ * };
+ * ...
+ * struct my_sub_cmd *c = ll_entry_get(struct my_sub_cmd, my_sub_cmd, cmd_sub);
+ */
+#define ll_entry_get(_type, _name, _section_u)				\
+	({								\
+		extern _type _u_boot_list_##_section_u##_##_name;	\
+		_type *_ll_result = &_u_boot_list_##_section_u##_##_name;\
+		_ll_result;						\
+	})
+
+#endif	/* __LINKER_LISTS_H__ */
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 3/6 V3] common: Add .u_boot_list into all linker files
  2012-10-12 20:27   ` [U-Boot] [PATCH 0/6 V3] Linker-generated arrays (take 2) Marek Vasut
  2012-10-12 20:27     ` [U-Boot] [PATCH 1/6 V3] common: Add symbol handling for generic lists into Makefile Marek Vasut
  2012-10-12 20:27     ` [U-Boot] [PATCH 2/6 V3] common: Implement support for linker-generated arrays Marek Vasut
@ 2012-10-12 20:27     ` Marek Vasut
  2012-10-12 20:27     ` [U-Boot] [PATCH 4/6 V3] common: Convert the U-Boot commands to LG-arrays Marek Vasut
                       ` (2 subsequent siblings)
  5 siblings, 0 replies; 48+ messages in thread
From: Marek Vasut @ 2012-10-12 20:27 UTC (permalink / raw)
  To: u-boot

Add section for the linker-generated lists into all possible linker
files, so that everyone can easily use these lists. This is mostly
a mechanical adjustment.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>
---
 arch/arm/cpu/arm920t/ep93xx/u-boot.lds           |    5 +++++
 arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds        |    4 ++++
 arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds      |    4 ++++
 arch/arm/cpu/armv7/omap-common/u-boot-spl.lds    |    5 +++++
 arch/arm/cpu/ixp/u-boot.lds                      |    5 +++++
 arch/arm/cpu/u-boot.lds                          |    5 +++++
 arch/avr32/cpu/u-boot.lds                        |    5 +++++
 arch/blackfin/cpu/u-boot.lds                     |    4 ++++
 arch/microblaze/cpu/u-boot.lds                   |    5 +++++
 arch/nds32/cpu/n1213/u-boot.lds                  |    5 +++++
 arch/nios2/cpu/u-boot.lds                        |    5 +++++
 arch/powerpc/cpu/74xx_7xx/u-boot.lds             |    5 +++++
 arch/powerpc/cpu/mpc512x/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc5xx/u-boot.lds               |    5 +++++
 arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds |    3 +++
 arch/powerpc/cpu/mpc5xxx/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc8220/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc824x/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc8260/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc83xx/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc85xx/u-boot-nand.lds         |    4 ++++
 arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds     |    4 ++++
 arch/powerpc/cpu/mpc85xx/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/mpc86xx/u-boot.lds              |    5 +++++
 arch/powerpc/cpu/ppc4xx/u-boot.lds               |    5 +++++
 arch/sandbox/cpu/u-boot.lds                      |    5 +++++
 arch/sh/cpu/sh2/u-boot.lds                       |    4 ++++
 arch/sh/cpu/sh3/u-boot.lds                       |    4 ++++
 arch/sh/cpu/sh4/u-boot.lds                       |    4 ++++
 arch/x86/cpu/u-boot.lds                          |    5 +++++
 board/BuS/eb_cpu5282/u-boot.lds                  |    5 +++++
 board/LEOX/elpt860/u-boot.lds                    |    5 +++++
 board/RPXClassic/u-boot.lds                      |    5 +++++
 board/RPXClassic/u-boot.lds.debug                |    5 +++++
 board/RPXlite/u-boot.lds                         |    5 +++++
 board/RPXlite/u-boot.lds.debug                   |    5 +++++
 board/RPXlite_dw/u-boot.lds                      |    5 +++++
 board/RPXlite_dw/u-boot.lds.debug                |    5 +++++
 board/RRvision/u-boot.lds                        |    5 +++++
 board/actux1/u-boot.lds                          |    5 +++++
 board/actux2/u-boot.lds                          |    5 +++++
 board/actux3/u-boot.lds                          |    5 +++++
 board/adder/u-boot.lds                           |    5 +++++
 board/ait/cam_enc_4xx/u-boot-spl.lds             |    4 ++++
 board/altera/nios2-generic/u-boot.lds            |    5 +++++
 board/amcc/acadia/u-boot-nand.lds                |    3 +++
 board/amcc/bamboo/u-boot-nand.lds                |    3 +++
 board/amcc/canyonlands/u-boot-nand.lds           |    3 +++
 board/amcc/kilauea/u-boot-nand.lds               |    3 +++
 board/amcc/sequoia/u-boot-nand.lds               |    3 +++
 board/amcc/sequoia/u-boot-ram.lds                |    3 +++
 board/astro/mcf5373l/u-boot.lds                  |    5 +++++
 board/c2mon/u-boot.lds                           |    5 +++++
 board/c2mon/u-boot.lds.debug                     |    5 +++++
 board/cobra5272/u-boot.lds                       |    5 +++++
 board/cogent/u-boot.lds                          |    5 +++++
 board/cogent/u-boot.lds.debug                    |    5 +++++
 board/cray/L1/u-boot.lds.debug                   |    5 +++++
 board/dave/PPChameleonEVB/u-boot.lds             |    5 +++++
 board/davinci/da8xxevm/u-boot-spl-da850evm.lds   |    6 ++++++
 board/davinci/da8xxevm/u-boot-spl-hawk.lds       |    5 +++++
 board/dbau1x00/u-boot.lds                        |    5 +++++
 board/dvlhost/u-boot.lds                         |    5 +++++
 board/eltec/mhpc/u-boot.lds                      |    5 +++++
 board/eltec/mhpc/u-boot.lds.debug                |    5 +++++
 board/emk/top860/u-boot.lds                      |    5 +++++
 board/ep88x/u-boot.lds                           |    5 +++++
 board/esd/dasa_sim/u-boot.lds                    |    5 +++++
 board/esd/pmc440/u-boot-nand.lds                 |    3 +++
 board/esd/tasreg/u-boot.lds                      |    5 +++++
 board/esteem192e/u-boot.lds                      |    5 +++++
 board/etx094/u-boot.lds                          |    5 +++++
 board/evb64260/u-boot.lds                        |    5 +++++
 board/fads/u-boot.lds                            |    5 +++++
 board/flagadm/u-boot.lds                         |    5 +++++
 board/flagadm/u-boot.lds.debug                   |    5 +++++
 board/freescale/m5208evbe/u-boot.lds             |    5 +++++
 board/freescale/m52277evb/u-boot.lds             |    5 +++++
 board/freescale/m5235evb/u-boot.lds              |    5 +++++
 board/freescale/m5249evb/u-boot.lds              |    5 +++++
 board/freescale/m5253demo/u-boot.lds             |    5 +++++
 board/freescale/m5253evbe/u-boot.lds             |    5 +++++
 board/freescale/m5271evb/u-boot.lds              |    5 +++++
 board/freescale/m5272c3/u-boot.lds               |    5 +++++
 board/freescale/m5275evb/u-boot.lds              |    5 +++++
 board/freescale/m5282evb/u-boot.lds              |    5 +++++
 board/freescale/m53017evb/u-boot.lds             |    5 +++++
 board/freescale/m5329evb/u-boot.lds              |    5 +++++
 board/freescale/m5373evb/u-boot.lds              |    5 +++++
 board/freescale/m54451evb/u-boot.lds             |    5 +++++
 board/freescale/m54455evb/u-boot.lds             |    5 +++++
 board/freescale/m547xevb/u-boot.lds              |    5 +++++
 board/freescale/m548xevb/u-boot.lds              |    5 +++++
 board/freescale/mx31ads/u-boot.lds               |    5 +++++
 board/gaisler/gr_cpci_ax2000/u-boot.lds          |    5 +++++
 board/gaisler/gr_ep2s60/u-boot.lds               |    5 +++++
 board/gaisler/gr_xc3s_1500/u-boot.lds            |    5 +++++
 board/gaisler/grsim/u-boot.lds                   |    5 +++++
 board/gaisler/grsim_leon2/u-boot.lds             |    5 +++++
 board/gen860t/u-boot-flashenv.lds                |    4 ++++
 board/gen860t/u-boot.lds                         |    5 +++++
 board/genietv/u-boot.lds                         |    5 +++++
 board/genietv/u-boot.lds.debug                   |    5 +++++
 board/hermes/u-boot.lds                          |    5 +++++
 board/hermes/u-boot.lds.debug                    |    5 +++++
 board/hymod/u-boot.lds                           |    5 +++++
 board/hymod/u-boot.lds.debug                     |    5 +++++
 board/icu862/u-boot.lds                          |    5 +++++
 board/icu862/u-boot.lds.debug                    |    5 +++++
 board/idmr/u-boot.lds                            |    5 +++++
 board/incaip/u-boot.lds                          |    5 +++++
 board/ip860/u-boot.lds                           |    5 +++++
 board/ip860/u-boot.lds.debug                     |    5 +++++
 board/ivm/u-boot.lds                             |    5 +++++
 board/ivm/u-boot.lds.debug                       |    5 +++++
 board/korat/u-boot-F7FC.lds                      |    3 +++
 board/kup/kup4k/u-boot.lds                       |    5 +++++
 board/kup/kup4k/u-boot.lds.debug                 |    5 +++++
 board/kup/kup4x/u-boot.lds                       |    5 +++++
 board/kup/kup4x/u-boot.lds.debug                 |    5 +++++
 board/lantec/u-boot.lds                          |    5 +++++
 board/lantec/u-boot.lds.debug                    |    5 +++++
 board/lwmon/u-boot.lds                           |    5 +++++
 board/lwmon/u-boot.lds.debug                     |    5 +++++
 board/manroland/uc100/u-boot.lds                 |    5 +++++
 board/matrix_vision/mvsmr/u-boot.lds             |    5 +++++
 board/mbx8xx/u-boot.lds                          |    5 +++++
 board/mbx8xx/u-boot.lds.debug                    |    5 +++++
 board/micronas/vct/u-boot.lds                    |    5 +++++
 board/mousse/u-boot.lds                          |    5 +++++
 board/mpl/pip405/u-boot.lds.debug                |    5 +++++
 board/mvblue/u-boot.lds                          |    5 +++++
 board/netphone/u-boot.lds                        |    5 +++++
 board/netphone/u-boot.lds.debug                  |    5 +++++
 board/netta/u-boot.lds                           |    5 +++++
 board/netta/u-boot.lds.debug                     |    5 +++++
 board/netta2/u-boot.lds                          |    5 +++++
 board/netta2/u-boot.lds.debug                    |    5 +++++
 board/netvia/u-boot.lds                          |    5 +++++
 board/netvia/u-boot.lds.debug                    |    5 +++++
 board/nx823/u-boot.lds                           |    5 +++++
 board/nx823/u-boot.lds.debug                     |    5 +++++
 board/openrisc/openrisc-generic/u-boot.lds       |    5 +++++
 board/pb1x00/u-boot.lds                          |    5 +++++
 board/qemu-mips/u-boot.lds                       |    5 +++++
 board/qi/qi_lb60/u-boot.lds                      |    5 +++++
 board/quantum/u-boot.lds                         |    5 +++++
 board/r360mpi/u-boot.lds                         |    5 +++++
 board/rbc823/u-boot.lds                          |    5 +++++
 board/renesas/sh7757lcr/u-boot.lds               |    4 ++++
 board/rsdproto/u-boot.lds                        |    5 +++++
 board/samsung/smdk5250/smdk5250-uboot-spl.lds    |    5 +++++
 board/samsung/smdk6400/u-boot-nand.lds           |    7 ++++++-
 board/sandburst/karef/u-boot.lds.debug           |    5 +++++
 board/sandburst/metrobox/u-boot.lds.debug        |    5 +++++
 board/sandpoint/u-boot.lds                       |    5 +++++
 board/siemens/IAD210/u-boot.lds                  |    5 +++++
 board/sixnet/u-boot.lds                          |    5 +++++
 board/snmc/qs850/u-boot.lds                      |    5 +++++
 board/snmc/qs860t/u-boot.lds                     |    5 +++++
 board/spc1920/u-boot.lds                         |    5 +++++
 board/spd8xx/u-boot.lds                          |    5 +++++
 board/spd8xx/u-boot.lds.debug                    |    5 +++++
 board/stx/stxxtc/u-boot.lds                      |    5 +++++
 board/stx/stxxtc/u-boot.lds.debug                |    5 +++++
 board/svm_sc8xx/u-boot.lds                       |    5 +++++
 board/tqc/tqm8xx/u-boot.lds                      |    5 +++++
 board/v37/u-boot.lds                             |    5 +++++
 board/vpac270/u-boot-spl.lds                     |    4 ++++
 board/w7o/u-boot.lds.debug                       |    5 +++++
 board/westel/amx860/u-boot.lds                   |    5 +++++
 board/westel/amx860/u-boot.lds.debug             |    5 +++++
 board/xes/xpedite1000/u-boot.lds.debug           |    5 +++++
 examples/standalone/sparc.lds                    |    1 +
 nand_spl/board/freescale/mx31pdk/u-boot.lds      |    5 +++++
 nand_spl/board/karo/tx25/u-boot.lds              |    5 +++++
 nand_spl/board/samsung/smdk6400/u-boot.lds       |    5 +++++
 177 files changed, 853 insertions(+), 1 deletion(-)

V2:
- Rebase on top of testing/dm-kerneldoc
- Remove u-boot.lds from standalone examples
V3:
- Rebase on top of u-boot/next

diff --git a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
index dc6ba34..8c6a407 100644
--- a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
+++ b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
@@ -53,6 +53,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 	__bss_start = .;
 	.bss : { *(.bss) }
 	__bss_end__ = .;
diff --git a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
index f8ea38c..2940a6f 100644
--- a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
+++ b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
@@ -54,6 +54,10 @@ SECTIONS
 	.u_boot_cmd : { *(.u_boot_cmd) }
 	__u_boot_cmd_end = .;
 
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	. = ALIGN(4);
 
 	.rel.dyn : {
diff --git a/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
index afd3381..ae9538e 100644
--- a/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
+++ b/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
@@ -54,6 +54,10 @@ SECTIONS
 	.u_boot_cmd : { *(.u_boot_cmd) }
 	__u_boot_cmd_end = .;
 
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	. = ALIGN(4);
 
 	.rel.dyn : {
diff --git a/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds b/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds
index 1d8efb2..9979c30 100644
--- a/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds
+++ b/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds
@@ -47,6 +47,11 @@ SECTIONS
 
 	. = ALIGN(4);
 	.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
+
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	. = ALIGN(4);
 	__image_copy_end = .;
 	_end = .;
diff --git a/arch/arm/cpu/ixp/u-boot.lds b/arch/arm/cpu/ixp/u-boot.lds
index 7199de4..a7ffab3 100644
--- a/arch/arm/cpu/ixp/u-boot.lds
+++ b/arch/arm/cpu/ixp/u-boot.lds
@@ -51,6 +51,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/arch/arm/cpu/u-boot.lds b/arch/arm/cpu/u-boot.lds
index e49ca0c..85f4eec 100644
--- a/arch/arm/cpu/u-boot.lds
+++ b/arch/arm/cpu/u-boot.lds
@@ -54,6 +54,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 
 	__image_copy_end = .;
 
diff --git a/arch/avr32/cpu/u-boot.lds b/arch/avr32/cpu/u-boot.lds
index 0e532f2..2accee6 100644
--- a/arch/avr32/cpu/u-boot.lds
+++ b/arch/avr32/cpu/u-boot.lds
@@ -54,6 +54,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 	_got = .;
 	.got : {
 		*(.got)
diff --git a/arch/blackfin/cpu/u-boot.lds b/arch/blackfin/cpu/u-boot.lds
index 2b8d285..cbc79de 100644
--- a/arch/blackfin/cpu/u-boot.lds
+++ b/arch/blackfin/cpu/u-boot.lds
@@ -119,6 +119,10 @@ SECTIONS
 		___u_boot_cmd_end = .;
 	} >ram_data
 
+	.u_boot_list : {
+		#include <u-boot.lst>
+	} >ram_data
+
 	.text_l1 :
 	{
 		. = ALIGN(4);
diff --git a/arch/microblaze/cpu/u-boot.lds b/arch/microblaze/cpu/u-boot.lds
index d033a28..06a2855 100644
--- a/arch/microblaze/cpu/u-boot.lds
+++ b/arch/microblaze/cpu/u-boot.lds
@@ -58,6 +58,11 @@ SECTIONS
 		__u_boot_cmd_end = .;
 	}
 
+	. = ALIGN(4);
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	.bss ALIGN(0x4):
 	{
 		__bss_start = .;
diff --git a/arch/nds32/cpu/n1213/u-boot.lds b/arch/nds32/cpu/n1213/u-boot.lds
index 1903420..62e357a 100644
--- a/arch/nds32/cpu/n1213/u-boot.lds
+++ b/arch/nds32/cpu/n1213/u-boot.lds
@@ -57,6 +57,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 
 	_end = .;
 
diff --git a/arch/nios2/cpu/u-boot.lds b/arch/nios2/cpu/u-boot.lds
index 4856bd3..e24b769 100644
--- a/arch/nios2/cpu/u-boot.lds
+++ b/arch/nios2/cpu/u-boot.lds
@@ -53,6 +53,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	/* INIT DATA sections - "Small" data (see the gcc -G option)
 	 * is always gp-relative. Here we make all init data sections
 	 * adjacent to simplify the startup code -- and provide
diff --git a/arch/powerpc/cpu/74xx_7xx/u-boot.lds b/arch/powerpc/cpu/74xx_7xx/u-boot.lds
index 24823cd..04484a5 100644
--- a/arch/powerpc/cpu/74xx_7xx/u-boot.lds
+++ b/arch/powerpc/cpu/74xx_7xx/u-boot.lds
@@ -66,6 +66,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc512x/u-boot.lds b/arch/powerpc/cpu/mpc512x/u-boot.lds
index 7a4d927..656a062 100644
--- a/arch/powerpc/cpu/mpc512x/u-boot.lds
+++ b/arch/powerpc/cpu/mpc512x/u-boot.lds
@@ -61,6 +61,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc5xx/u-boot.lds b/arch/powerpc/cpu/mpc5xx/u-boot.lds
index e02b213..e04528d 100644
--- a/arch/powerpc/cpu/mpc5xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc5xx/u-boot.lds
@@ -69,6 +69,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds b/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
index 0c6c54e..acddf5f 100644
--- a/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
+++ b/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
@@ -70,6 +70,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc5xxx/u-boot.lds b/arch/powerpc/cpu/mpc5xxx/u-boot.lds
index 5dcaec1..998221e 100644
--- a/arch/powerpc/cpu/mpc5xxx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc5xxx/u-boot.lds
@@ -64,6 +64,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc8220/u-boot.lds b/arch/powerpc/cpu/mpc8220/u-boot.lds
index 39bb42e..45d5e19 100644
--- a/arch/powerpc/cpu/mpc8220/u-boot.lds
+++ b/arch/powerpc/cpu/mpc8220/u-boot.lds
@@ -63,6 +63,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc824x/u-boot.lds b/arch/powerpc/cpu/mpc824x/u-boot.lds
index b30ce76..a80d91e 100644
--- a/arch/powerpc/cpu/mpc824x/u-boot.lds
+++ b/arch/powerpc/cpu/mpc824x/u-boot.lds
@@ -64,6 +64,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc8260/u-boot.lds b/arch/powerpc/cpu/mpc8260/u-boot.lds
index 60b71ec..f33f648 100644
--- a/arch/powerpc/cpu/mpc8260/u-boot.lds
+++ b/arch/powerpc/cpu/mpc8260/u-boot.lds
@@ -63,6 +63,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc83xx/u-boot.lds b/arch/powerpc/cpu/mpc83xx/u-boot.lds
index 2f4b9ad..45a9cf8 100644
--- a/arch/powerpc/cpu/mpc83xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc83xx/u-boot.lds
@@ -62,6 +62,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds b/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
index 8ba9399..29aabde 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
@@ -74,6 +74,10 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds b/arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds
index 668158f..46dbaed 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds
@@ -53,6 +53,10 @@ SECTIONS
 	}
 	_edata  =  .;
 
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	. = ALIGN(8);
 	__init_begin = .;
 	__init_end = .;
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot.lds b/arch/powerpc/cpu/mpc85xx/u-boot.lds
index efe34b7..49fe44d 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot.lds
@@ -81,6 +81,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/arch/powerpc/cpu/mpc86xx/u-boot.lds b/arch/powerpc/cpu/mpc86xx/u-boot.lds
index 121e529..17371ac 100644
--- a/arch/powerpc/cpu/mpc86xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc86xx/u-boot.lds
@@ -68,6 +68,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/arch/powerpc/cpu/ppc4xx/u-boot.lds b/arch/powerpc/cpu/ppc4xx/u-boot.lds
index 2466b79..6df673e 100644
--- a/arch/powerpc/cpu/ppc4xx/u-boot.lds
+++ b/arch/powerpc/cpu/ppc4xx/u-boot.lds
@@ -82,6 +82,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/arch/sandbox/cpu/u-boot.lds b/arch/sandbox/cpu/u-boot.lds
index 9960138..b7f25ab 100644
--- a/arch/sandbox/cpu/u-boot.lds
+++ b/arch/sandbox/cpu/u-boot.lds
@@ -28,6 +28,11 @@ SECTIONS
 	_u_boot_cmd : { *(.u_boot_cmd) }
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	__u_boot_sandbox_option_start = .;
 	_u_boot_sandbox_getopt : { *(.u_boot_sandbox_getopt) }
 	__u_boot_sandbox_option_end = .;
diff --git a/arch/sh/cpu/sh2/u-boot.lds b/arch/sh/cpu/sh2/u-boot.lds
index b86a822..3cd28f7 100644
--- a/arch/sh/cpu/sh2/u-boot.lds
+++ b/arch/sh/cpu/sh2/u-boot.lds
@@ -80,6 +80,10 @@ SECTIONS
 	}
 	PROVIDE (__u_boot_cmd_end = .);
 
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	PROVIDE (reloc_dst_end = .);
 
 	PROVIDE (bss_start = .);
diff --git a/arch/sh/cpu/sh3/u-boot.lds b/arch/sh/cpu/sh3/u-boot.lds
index 9bf8503..f0bad51 100644
--- a/arch/sh/cpu/sh3/u-boot.lds
+++ b/arch/sh/cpu/sh3/u-boot.lds
@@ -86,6 +86,10 @@ SECTIONS
 	}
 	PROVIDE (__u_boot_cmd_end = .);
 
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	PROVIDE (reloc_dst_end = .);
 	/* _reloc_dst_end = .; */
 
diff --git a/arch/sh/cpu/sh4/u-boot.lds b/arch/sh/cpu/sh4/u-boot.lds
index d9c70bc..d204304 100644
--- a/arch/sh/cpu/sh4/u-boot.lds
+++ b/arch/sh/cpu/sh4/u-boot.lds
@@ -83,6 +83,10 @@ SECTIONS
 	}
 	PROVIDE (__u_boot_cmd_end = .);
 
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	PROVIDE (reloc_dst_end = .);
 	/* _reloc_dst_end = .; */
 
diff --git a/arch/x86/cpu/u-boot.lds b/arch/x86/cpu/u-boot.lds
index fe28030..4bb2a2f 100644
--- a/arch/x86/cpu/u-boot.lds
+++ b/arch/x86/cpu/u-boot.lds
@@ -39,6 +39,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 	.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
 
 	. = ALIGN(4);
diff --git a/board/BuS/eb_cpu5282/u-boot.lds b/board/BuS/eb_cpu5282/u-boot.lds
index 4ba1964..a708d06 100644
--- a/board/BuS/eb_cpu5282/u-boot.lds
+++ b/board/BuS/eb_cpu5282/u-boot.lds
@@ -69,6 +69,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/LEOX/elpt860/u-boot.lds b/board/LEOX/elpt860/u-boot.lds
index 5aaf6b3..b04e56c 100644
--- a/board/LEOX/elpt860/u-boot.lds
+++ b/board/LEOX/elpt860/u-boot.lds
@@ -90,6 +90,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/RPXClassic/u-boot.lds b/board/RPXClassic/u-boot.lds
index d0b60cf..9133469 100644
--- a/board/RPXClassic/u-boot.lds
+++ b/board/RPXClassic/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/RPXClassic/u-boot.lds.debug b/board/RPXClassic/u-boot.lds.debug
index 99c48f2..46f2f8f 100644
--- a/board/RPXClassic/u-boot.lds.debug
+++ b/board/RPXClassic/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/RPXlite/u-boot.lds b/board/RPXlite/u-boot.lds
index d0b60cf..9133469 100644
--- a/board/RPXlite/u-boot.lds
+++ b/board/RPXlite/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/RPXlite/u-boot.lds.debug b/board/RPXlite/u-boot.lds.debug
index 99c48f2..46f2f8f 100644
--- a/board/RPXlite/u-boot.lds.debug
+++ b/board/RPXlite/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/RPXlite_dw/u-boot.lds b/board/RPXlite_dw/u-boot.lds
index d0b60cf..9133469 100644
--- a/board/RPXlite_dw/u-boot.lds
+++ b/board/RPXlite_dw/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/RPXlite_dw/u-boot.lds.debug b/board/RPXlite_dw/u-boot.lds.debug
index 4491edd..1b042f8 100644
--- a/board/RPXlite_dw/u-boot.lds.debug
+++ b/board/RPXlite_dw/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/RRvision/u-boot.lds b/board/RRvision/u-boot.lds
index 8385373..4613432 100644
--- a/board/RRvision/u-boot.lds
+++ b/board/RRvision/u-boot.lds
@@ -75,6 +75,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/actux1/u-boot.lds b/board/actux1/u-boot.lds
index 9dbaa6f..a8971d0 100644
--- a/board/actux1/u-boot.lds
+++ b/board/actux1/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	}
 	__u_boot_cmd_end =.;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	. = ALIGN (4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/actux2/u-boot.lds b/board/actux2/u-boot.lds
index 3575ed9..7c0caf6 100644
--- a/board/actux2/u-boot.lds
+++ b/board/actux2/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	}
 	__u_boot_cmd_end =.;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	. = ALIGN (4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/actux3/u-boot.lds b/board/actux3/u-boot.lds
index 35aab29..530073e 100644
--- a/board/actux3/u-boot.lds
+++ b/board/actux3/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	}
 	__u_boot_cmd_end =.;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	. = ALIGN (4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/adder/u-boot.lds b/board/adder/u-boot.lds
index a762769..05d6323 100644
--- a/board/adder/u-boot.lds
+++ b/board/adder/u-boot.lds
@@ -66,6 +66,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/ait/cam_enc_4xx/u-boot-spl.lds b/board/ait/cam_enc_4xx/u-boot-spl.lds
index 52c986e..656b2fb 100644
--- a/board/ait/cam_enc_4xx/u-boot-spl.lds
+++ b/board/ait/cam_enc_4xx/u-boot-spl.lds
@@ -48,6 +48,10 @@ SECTIONS
 	. = ALIGN(4);
 	.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
 	. = ALIGN(4);
+	.u_boot_list : {
+		#include <u-boot.lst>
+	} >.sram
+	. = ALIGN(4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
 		*(.rel*)
diff --git a/board/altera/nios2-generic/u-boot.lds b/board/altera/nios2-generic/u-boot.lds
index 88ced62..f087733 100644
--- a/board/altera/nios2-generic/u-boot.lds
+++ b/board/altera/nios2-generic/u-boot.lds
@@ -54,6 +54,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	/* INIT DATA sections - "Small" data (see the gcc -G option)
 	 * is always gp-relative. Here we make all init data sections
 	 * adjacent to simplify the startup code -- and provide
diff --git a/board/amcc/acadia/u-boot-nand.lds b/board/amcc/acadia/u-boot-nand.lds
index ab67de2..9609338 100644
--- a/board/amcc/acadia/u-boot-nand.lds
+++ b/board/amcc/acadia/u-boot-nand.lds
@@ -76,6 +76,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/amcc/bamboo/u-boot-nand.lds b/board/amcc/bamboo/u-boot-nand.lds
index 3ad8709..4f4194e 100644
--- a/board/amcc/bamboo/u-boot-nand.lds
+++ b/board/amcc/bamboo/u-boot-nand.lds
@@ -77,6 +77,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/amcc/canyonlands/u-boot-nand.lds b/board/amcc/canyonlands/u-boot-nand.lds
index 76f89f1..1876bae 100644
--- a/board/amcc/canyonlands/u-boot-nand.lds
+++ b/board/amcc/canyonlands/u-boot-nand.lds
@@ -77,6 +77,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/amcc/kilauea/u-boot-nand.lds b/board/amcc/kilauea/u-boot-nand.lds
index ab67de2..9609338 100644
--- a/board/amcc/kilauea/u-boot-nand.lds
+++ b/board/amcc/kilauea/u-boot-nand.lds
@@ -76,6 +76,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/amcc/sequoia/u-boot-nand.lds b/board/amcc/sequoia/u-boot-nand.lds
index 07ae8b1..a0b98f4 100644
--- a/board/amcc/sequoia/u-boot-nand.lds
+++ b/board/amcc/sequoia/u-boot-nand.lds
@@ -77,6 +77,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/amcc/sequoia/u-boot-ram.lds b/board/amcc/sequoia/u-boot-ram.lds
index 423400a..32a7661 100644
--- a/board/amcc/sequoia/u-boot-ram.lds
+++ b/board/amcc/sequoia/u-boot-ram.lds
@@ -68,6 +68,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/astro/mcf5373l/u-boot.lds b/board/astro/mcf5373l/u-boot.lds
index a1d8e0f..e27c286 100644
--- a/board/astro/mcf5373l/u-boot.lds
+++ b/board/astro/mcf5373l/u-boot.lds
@@ -113,6 +113,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/c2mon/u-boot.lds b/board/c2mon/u-boot.lds
index b9b8e3c..0b92ef6 100644
--- a/board/c2mon/u-boot.lds
+++ b/board/c2mon/u-boot.lds
@@ -78,6 +78,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/c2mon/u-boot.lds.debug b/board/c2mon/u-boot.lds.debug
index c771102..c28e2b9 100644
--- a/board/c2mon/u-boot.lds.debug
+++ b/board/c2mon/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/cobra5272/u-boot.lds b/board/cobra5272/u-boot.lds
index c4039ed..77b8e80 100644
--- a/board/cobra5272/u-boot.lds
+++ b/board/cobra5272/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/cogent/u-boot.lds b/board/cogent/u-boot.lds
index 2393d8d..f7137bd 100644
--- a/board/cogent/u-boot.lds
+++ b/board/cogent/u-boot.lds
@@ -74,6 +74,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/cogent/u-boot.lds.debug b/board/cogent/u-boot.lds.debug
index 99c48f2..46f2f8f 100644
--- a/board/cogent/u-boot.lds.debug
+++ b/board/cogent/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/cray/L1/u-boot.lds.debug b/board/cray/L1/u-boot.lds.debug
index fcf8ebb..15cccee 100644
--- a/board/cray/L1/u-boot.lds.debug
+++ b/board/cray/L1/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/dave/PPChameleonEVB/u-boot.lds b/board/dave/PPChameleonEVB/u-boot.lds
index 3b10114..184c6fc 100644
--- a/board/dave/PPChameleonEVB/u-boot.lds
+++ b/board/dave/PPChameleonEVB/u-boot.lds
@@ -78,6 +78,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/davinci/da8xxevm/u-boot-spl-da850evm.lds b/board/davinci/da8xxevm/u-boot-spl-da850evm.lds
index 6f6e065..c5fd93c 100644
--- a/board/davinci/da8xxevm/u-boot-spl-da850evm.lds
+++ b/board/davinci/da8xxevm/u-boot-spl-da850evm.lds
@@ -47,6 +47,12 @@ SECTIONS
 
 	. = ALIGN(4);
 	.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
+
+	. = ALIGN(4);
+	.u_boot_list : {
+		#include <u-boot.lst>
+	} >.sram
+
 	. = ALIGN(4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/davinci/da8xxevm/u-boot-spl-hawk.lds b/board/davinci/da8xxevm/u-boot-spl-hawk.lds
index b3a41af..86dc172 100644
--- a/board/davinci/da8xxevm/u-boot-spl-hawk.lds
+++ b/board/davinci/da8xxevm/u-boot-spl-hawk.lds
@@ -58,6 +58,11 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 	__rel_dyn_start = .;
 	__rel_dyn_end = .;
 	__dynsym_start = .;
diff --git a/board/dbau1x00/u-boot.lds b/board/dbau1x00/u-boot.lds
index 4a59cea..6992c0f 100644
--- a/board/dbau1x00/u-boot.lds
+++ b/board/dbau1x00/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	  __u_boot_cmd_end = .;
 	}
 
+	. = ALIGN(4);
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
 
diff --git a/board/dvlhost/u-boot.lds b/board/dvlhost/u-boot.lds
index 01ec390..5171630 100644
--- a/board/dvlhost/u-boot.lds
+++ b/board/dvlhost/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	}
 	__u_boot_cmd_end =.;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	. = ALIGN (4);
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/eltec/mhpc/u-boot.lds b/board/eltec/mhpc/u-boot.lds
index fd4e8a5..25b8839 100644
--- a/board/eltec/mhpc/u-boot.lds
+++ b/board/eltec/mhpc/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/eltec/mhpc/u-boot.lds.debug b/board/eltec/mhpc/u-boot.lds.debug
index c771102..c28e2b9 100644
--- a/board/eltec/mhpc/u-boot.lds.debug
+++ b/board/eltec/mhpc/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/emk/top860/u-boot.lds b/board/emk/top860/u-boot.lds
index fb06648..485c68d 100644
--- a/board/emk/top860/u-boot.lds
+++ b/board/emk/top860/u-boot.lds
@@ -71,6 +71,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/ep88x/u-boot.lds b/board/ep88x/u-boot.lds
index 332b35a..067fd5f 100644
--- a/board/ep88x/u-boot.lds
+++ b/board/ep88x/u-boot.lds
@@ -66,6 +66,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/esd/dasa_sim/u-boot.lds b/board/esd/dasa_sim/u-boot.lds
index b15948d..607e601 100644
--- a/board/esd/dasa_sim/u-boot.lds
+++ b/board/esd/dasa_sim/u-boot.lds
@@ -77,6 +77,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/esd/pmc440/u-boot-nand.lds b/board/esd/pmc440/u-boot-nand.lds
index 71f0fd2..38f5cc6 100644
--- a/board/esd/pmc440/u-boot-nand.lds
+++ b/board/esd/pmc440/u-boot-nand.lds
@@ -106,6 +106,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+		#include <u-boot.lst>
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/esd/tasreg/u-boot.lds b/board/esd/tasreg/u-boot.lds
index f697ccd..158828c 100644
--- a/board/esd/tasreg/u-boot.lds
+++ b/board/esd/tasreg/u-boot.lds
@@ -69,6 +69,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/esteem192e/u-boot.lds b/board/esteem192e/u-boot.lds
index 163b83d..3eaaad8 100644
--- a/board/esteem192e/u-boot.lds
+++ b/board/esteem192e/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/etx094/u-boot.lds b/board/etx094/u-boot.lds
index 8465937..df9b44a 100644
--- a/board/etx094/u-boot.lds
+++ b/board/etx094/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/evb64260/u-boot.lds b/board/evb64260/u-boot.lds
index 2d031ef..05461ca 100644
--- a/board/evb64260/u-boot.lds
+++ b/board/evb64260/u-boot.lds
@@ -74,6 +74,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/fads/u-boot.lds b/board/fads/u-boot.lds
index 9ea0674..4a41db8 100644
--- a/board/fads/u-boot.lds
+++ b/board/fads/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/flagadm/u-boot.lds b/board/flagadm/u-boot.lds
index fd4e8a5..25b8839 100644
--- a/board/flagadm/u-boot.lds
+++ b/board/flagadm/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/flagadm/u-boot.lds.debug b/board/flagadm/u-boot.lds.debug
index c771102..c28e2b9 100644
--- a/board/flagadm/u-boot.lds.debug
+++ b/board/flagadm/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5208evbe/u-boot.lds b/board/freescale/m5208evbe/u-boot.lds
index 6e39be1..b1d2d01 100644
--- a/board/freescale/m5208evbe/u-boot.lds
+++ b/board/freescale/m5208evbe/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m52277evb/u-boot.lds b/board/freescale/m52277evb/u-boot.lds
index 3e9f4c3..0a7ca55 100644
--- a/board/freescale/m52277evb/u-boot.lds
+++ b/board/freescale/m52277evb/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5235evb/u-boot.lds b/board/freescale/m5235evb/u-boot.lds
index d39e734..a4a62ac 100644
--- a/board/freescale/m5235evb/u-boot.lds
+++ b/board/freescale/m5235evb/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5249evb/u-boot.lds b/board/freescale/m5249evb/u-boot.lds
index c4039ed..77b8e80 100644
--- a/board/freescale/m5249evb/u-boot.lds
+++ b/board/freescale/m5249evb/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5253demo/u-boot.lds b/board/freescale/m5253demo/u-boot.lds
index cbd2831..1dd5539 100644
--- a/board/freescale/m5253demo/u-boot.lds
+++ b/board/freescale/m5253demo/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5253evbe/u-boot.lds b/board/freescale/m5253evbe/u-boot.lds
index c4039ed..77b8e80 100644
--- a/board/freescale/m5253evbe/u-boot.lds
+++ b/board/freescale/m5253evbe/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5271evb/u-boot.lds b/board/freescale/m5271evb/u-boot.lds
index 4717036..ecad667 100644
--- a/board/freescale/m5271evb/u-boot.lds
+++ b/board/freescale/m5271evb/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5272c3/u-boot.lds b/board/freescale/m5272c3/u-boot.lds
index c4039ed..77b8e80 100644
--- a/board/freescale/m5272c3/u-boot.lds
+++ b/board/freescale/m5272c3/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5275evb/u-boot.lds b/board/freescale/m5275evb/u-boot.lds
index 6c2dfe8..60c0501 100644
--- a/board/freescale/m5275evb/u-boot.lds
+++ b/board/freescale/m5275evb/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5282evb/u-boot.lds b/board/freescale/m5282evb/u-boot.lds
index 4ba1964..a708d06 100644
--- a/board/freescale/m5282evb/u-boot.lds
+++ b/board/freescale/m5282evb/u-boot.lds
@@ -69,6 +69,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m53017evb/u-boot.lds b/board/freescale/m53017evb/u-boot.lds
index 80935f2..81da237 100644
--- a/board/freescale/m53017evb/u-boot.lds
+++ b/board/freescale/m53017evb/u-boot.lds
@@ -75,6 +75,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5329evb/u-boot.lds b/board/freescale/m5329evb/u-boot.lds
index 40af8bc..c575522 100644
--- a/board/freescale/m5329evb/u-boot.lds
+++ b/board/freescale/m5329evb/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m5373evb/u-boot.lds b/board/freescale/m5373evb/u-boot.lds
index 19342ac..5d2c655 100644
--- a/board/freescale/m5373evb/u-boot.lds
+++ b/board/freescale/m5373evb/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m54451evb/u-boot.lds b/board/freescale/m54451evb/u-boot.lds
index 45924b7..76ead53 100644
--- a/board/freescale/m54451evb/u-boot.lds
+++ b/board/freescale/m54451evb/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m54455evb/u-boot.lds b/board/freescale/m54455evb/u-boot.lds
index f341449..0d2cb02 100644
--- a/board/freescale/m54455evb/u-boot.lds
+++ b/board/freescale/m54455evb/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m547xevb/u-boot.lds b/board/freescale/m547xevb/u-boot.lds
index 5472689..11fa8bc 100644
--- a/board/freescale/m547xevb/u-boot.lds
+++ b/board/freescale/m547xevb/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/m548xevb/u-boot.lds b/board/freescale/m548xevb/u-boot.lds
index cf3f38c..0c8ffd4 100644
--- a/board/freescale/m548xevb/u-boot.lds
+++ b/board/freescale/m548xevb/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/freescale/mx31ads/u-boot.lds b/board/freescale/mx31ads/u-boot.lds
index 79eb7ac..e59fd18 100644
--- a/board/freescale/mx31ads/u-boot.lds
+++ b/board/freescale/mx31ads/u-boot.lds
@@ -62,6 +62,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/board/gaisler/gr_cpci_ax2000/u-boot.lds b/board/gaisler/gr_cpci_ax2000/u-boot.lds
index 87cb8e3..ec72718 100644
--- a/board/gaisler/gr_cpci_ax2000/u-boot.lds
+++ b/board/gaisler/gr_cpci_ax2000/u-boot.lds
@@ -90,6 +90,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	.data	:
 	{
 		*(.data)
diff --git a/board/gaisler/gr_ep2s60/u-boot.lds b/board/gaisler/gr_ep2s60/u-boot.lds
index 2fb44aa..5a38796 100644
--- a/board/gaisler/gr_ep2s60/u-boot.lds
+++ b/board/gaisler/gr_ep2s60/u-boot.lds
@@ -90,6 +90,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	.data	:
 	{
 		*(.data)
diff --git a/board/gaisler/gr_xc3s_1500/u-boot.lds b/board/gaisler/gr_xc3s_1500/u-boot.lds
index 8719e97..3da021c 100644
--- a/board/gaisler/gr_xc3s_1500/u-boot.lds
+++ b/board/gaisler/gr_xc3s_1500/u-boot.lds
@@ -90,6 +90,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	.data	:
 	{
 		*(.data)
diff --git a/board/gaisler/grsim/u-boot.lds b/board/gaisler/grsim/u-boot.lds
index 33890b5..eba1015 100644
--- a/board/gaisler/grsim/u-boot.lds
+++ b/board/gaisler/grsim/u-boot.lds
@@ -89,6 +89,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	.data	:
 	{
 		*(.data)
diff --git a/board/gaisler/grsim_leon2/u-boot.lds b/board/gaisler/grsim_leon2/u-boot.lds
index cf6e502..4f90a46 100644
--- a/board/gaisler/grsim_leon2/u-boot.lds
+++ b/board/gaisler/grsim_leon2/u-boot.lds
@@ -89,6 +89,11 @@ SECTIONS
 	. = ALIGN(4);
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	.data	:
 	{
 		*(.data)
diff --git a/board/gen860t/u-boot-flashenv.lds b/board/gen860t/u-boot-flashenv.lds
index 5bb6c62..8e04b11 100644
--- a/board/gen860t/u-boot-flashenv.lds
+++ b/board/gen860t/u-boot-flashenv.lds
@@ -75,6 +75,10 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+		#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/gen860t/u-boot.lds b/board/gen860t/u-boot.lds
index be99b51..c8602be 100644
--- a/board/gen860t/u-boot.lds
+++ b/board/gen860t/u-boot.lds
@@ -75,6 +75,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/genietv/u-boot.lds b/board/genietv/u-boot.lds
index 1d66a9b..961222b 100644
--- a/board/genietv/u-boot.lds
+++ b/board/genietv/u-boot.lds
@@ -84,6 +84,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/genietv/u-boot.lds.debug b/board/genietv/u-boot.lds.debug
index cfa4ef3..a3479ba 100644
--- a/board/genietv/u-boot.lds.debug
+++ b/board/genietv/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/hermes/u-boot.lds b/board/hermes/u-boot.lds
index ca97115..9fe2f58 100644
--- a/board/hermes/u-boot.lds
+++ b/board/hermes/u-boot.lds
@@ -76,6 +76,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/hermes/u-boot.lds.debug b/board/hermes/u-boot.lds.debug
index 8a197de..6a53d8a 100644
--- a/board/hermes/u-boot.lds.debug
+++ b/board/hermes/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/hymod/u-boot.lds b/board/hymod/u-boot.lds
index 1309f20..50e4788 100644
--- a/board/hymod/u-boot.lds
+++ b/board/hymod/u-boot.lds
@@ -114,6 +114,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/hymod/u-boot.lds.debug b/board/hymod/u-boot.lds.debug
index 99c48f2..46f2f8f 100644
--- a/board/hymod/u-boot.lds.debug
+++ b/board/hymod/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/icu862/u-boot.lds b/board/icu862/u-boot.lds
index 93c79a6..f476967 100644
--- a/board/icu862/u-boot.lds
+++ b/board/icu862/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/icu862/u-boot.lds.debug b/board/icu862/u-boot.lds.debug
index 91d3e67..87ec870 100644
--- a/board/icu862/u-boot.lds.debug
+++ b/board/icu862/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/idmr/u-boot.lds b/board/idmr/u-boot.lds
index f697ccd..158828c 100644
--- a/board/idmr/u-boot.lds
+++ b/board/idmr/u-boot.lds
@@ -69,6 +69,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/incaip/u-boot.lds b/board/incaip/u-boot.lds
index 4a59cea..6992c0f 100644
--- a/board/incaip/u-boot.lds
+++ b/board/incaip/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	  __u_boot_cmd_end = .;
 	}
 
+	. = ALIGN(4);
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
 
diff --git a/board/ip860/u-boot.lds b/board/ip860/u-boot.lds
index d0b60cf..9133469 100644
--- a/board/ip860/u-boot.lds
+++ b/board/ip860/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/ip860/u-boot.lds.debug b/board/ip860/u-boot.lds.debug
index 2f61b11..79e4f2d 100644
--- a/board/ip860/u-boot.lds.debug
+++ b/board/ip860/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/ivm/u-boot.lds b/board/ivm/u-boot.lds
index 1e843eb..7e63cd7 100644
--- a/board/ivm/u-boot.lds
+++ b/board/ivm/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/ivm/u-boot.lds.debug b/board/ivm/u-boot.lds.debug
index 732a46f..ff4581f 100644
--- a/board/ivm/u-boot.lds.debug
+++ b/board/ivm/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/korat/u-boot-F7FC.lds b/board/korat/u-boot-F7FC.lds
index 6a017e3..f91310a 100644
--- a/board/korat/u-boot-F7FC.lds
+++ b/board/korat/u-boot-F7FC.lds
@@ -112,6 +112,9 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
 
   . = .;
   __start___ex_table = .;
diff --git a/board/kup/kup4k/u-boot.lds b/board/kup/kup4k/u-boot.lds
index d0b60cf..9133469 100644
--- a/board/kup/kup4k/u-boot.lds
+++ b/board/kup/kup4k/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/kup/kup4k/u-boot.lds.debug b/board/kup/kup4k/u-boot.lds.debug
index 4491edd..1b042f8 100644
--- a/board/kup/kup4k/u-boot.lds.debug
+++ b/board/kup/kup4k/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/kup/kup4x/u-boot.lds b/board/kup/kup4x/u-boot.lds
index d0b60cf..9133469 100644
--- a/board/kup/kup4x/u-boot.lds
+++ b/board/kup/kup4x/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/kup/kup4x/u-boot.lds.debug b/board/kup/kup4x/u-boot.lds.debug
index 4491edd..1b042f8 100644
--- a/board/kup/kup4x/u-boot.lds.debug
+++ b/board/kup/kup4x/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/lantec/u-boot.lds b/board/lantec/u-boot.lds
index de0b355..e57a794 100644
--- a/board/lantec/u-boot.lds
+++ b/board/lantec/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/lantec/u-boot.lds.debug b/board/lantec/u-boot.lds.debug
index 856a99b..29148ee 100644
--- a/board/lantec/u-boot.lds.debug
+++ b/board/lantec/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/lwmon/u-boot.lds b/board/lwmon/u-boot.lds
index 8bf7324..78445b3 100644
--- a/board/lwmon/u-boot.lds
+++ b/board/lwmon/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/lwmon/u-boot.lds.debug b/board/lwmon/u-boot.lds.debug
index 2412234..8fcdb90 100644
--- a/board/lwmon/u-boot.lds.debug
+++ b/board/lwmon/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/manroland/uc100/u-boot.lds b/board/manroland/uc100/u-boot.lds
index 731cec9..aa289cd 100644
--- a/board/manroland/uc100/u-boot.lds
+++ b/board/manroland/uc100/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/matrix_vision/mvsmr/u-boot.lds b/board/matrix_vision/mvsmr/u-boot.lds
index 57c37de..5222ebd 100644
--- a/board/matrix_vision/mvsmr/u-boot.lds
+++ b/board/matrix_vision/mvsmr/u-boot.lds
@@ -78,6 +78,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/mbx8xx/u-boot.lds b/board/mbx8xx/u-boot.lds
index d0b60cf..9133469 100644
--- a/board/mbx8xx/u-boot.lds
+++ b/board/mbx8xx/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/mbx8xx/u-boot.lds.debug b/board/mbx8xx/u-boot.lds.debug
index a95c47f..722a405 100644
--- a/board/mbx8xx/u-boot.lds.debug
+++ b/board/mbx8xx/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/micronas/vct/u-boot.lds b/board/micronas/vct/u-boot.lds
index 3a05ef9..114ce10 100644
--- a/board/micronas/vct/u-boot.lds
+++ b/board/micronas/vct/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
 
diff --git a/board/mousse/u-boot.lds b/board/mousse/u-boot.lds
index dae2cfc..aff4269 100644
--- a/board/mousse/u-boot.lds
+++ b/board/mousse/u-boot.lds
@@ -64,6 +64,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/mpl/pip405/u-boot.lds.debug b/board/mpl/pip405/u-boot.lds.debug
index fcf8ebb..15cccee 100644
--- a/board/mpl/pip405/u-boot.lds.debug
+++ b/board/mpl/pip405/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/mvblue/u-boot.lds b/board/mvblue/u-boot.lds
index 11624d2..dc5747c 100644
--- a/board/mvblue/u-boot.lds
+++ b/board/mvblue/u-boot.lds
@@ -74,6 +74,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/netphone/u-boot.lds b/board/netphone/u-boot.lds
index a949e4f..ae48cba 100644
--- a/board/netphone/u-boot.lds
+++ b/board/netphone/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/netphone/u-boot.lds.debug b/board/netphone/u-boot.lds.debug
index a001f3f..ffebab5 100644
--- a/board/netphone/u-boot.lds.debug
+++ b/board/netphone/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/netta/u-boot.lds b/board/netta/u-boot.lds
index a949e4f..ae48cba 100644
--- a/board/netta/u-boot.lds
+++ b/board/netta/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/netta/u-boot.lds.debug b/board/netta/u-boot.lds.debug
index a001f3f..ffebab5 100644
--- a/board/netta/u-boot.lds.debug
+++ b/board/netta/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/netta2/u-boot.lds b/board/netta2/u-boot.lds
index a949e4f..ae48cba 100644
--- a/board/netta2/u-boot.lds
+++ b/board/netta2/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/netta2/u-boot.lds.debug b/board/netta2/u-boot.lds.debug
index a001f3f..ffebab5 100644
--- a/board/netta2/u-boot.lds.debug
+++ b/board/netta2/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/netvia/u-boot.lds b/board/netvia/u-boot.lds
index a949e4f..ae48cba 100644
--- a/board/netvia/u-boot.lds
+++ b/board/netvia/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/netvia/u-boot.lds.debug b/board/netvia/u-boot.lds.debug
index 6c7d698..b37ea7b 100644
--- a/board/netvia/u-boot.lds.debug
+++ b/board/netvia/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/nx823/u-boot.lds b/board/nx823/u-boot.lds
index fd4e8a5..25b8839 100644
--- a/board/nx823/u-boot.lds
+++ b/board/nx823/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/nx823/u-boot.lds.debug b/board/nx823/u-boot.lds.debug
index c771102..c28e2b9 100644
--- a/board/nx823/u-boot.lds.debug
+++ b/board/nx823/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/openrisc/openrisc-generic/u-boot.lds b/board/openrisc/openrisc-generic/u-boot.lds
index 1aed197..5995464 100644
--- a/board/openrisc/openrisc-generic/u-boot.lds
+++ b/board/openrisc/openrisc-generic/u-boot.lds
@@ -30,6 +30,11 @@ SECTIONS
 	 .u_boot_cmd : { *(.u_boot_cmd) } > ram
 	 __u_boot_cmd_end = .;
 
+	 . = ALIGN(4);
+	 .u_boot_list : {
+	#include <u-boot.lst>
+	 }
+
 	.rodata : {
 		*(.rodata);
 		*(.rodata.*)
diff --git a/board/pb1x00/u-boot.lds b/board/pb1x00/u-boot.lds
index bd0dee1..41b001c 100644
--- a/board/pb1x00/u-boot.lds
+++ b/board/pb1x00/u-boot.lds
@@ -60,6 +60,11 @@ SECTIONS
 	  __u_boot_cmd_end = .;
 	}
 
+	. = ALIGN(4);
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
 
diff --git a/board/qemu-mips/u-boot.lds b/board/qemu-mips/u-boot.lds
index 9460b20..4515043 100644
--- a/board/qemu-mips/u-boot.lds
+++ b/board/qemu-mips/u-boot.lds
@@ -62,6 +62,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 	}
 
+	. = ALIGN(4);
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
 
diff --git a/board/qi/qi_lb60/u-boot.lds b/board/qi/qi_lb60/u-boot.lds
index 7317652..4a373ec 100644
--- a/board/qi/qi_lb60/u-boot.lds
+++ b/board/qi/qi_lb60/u-boot.lds
@@ -51,6 +51,11 @@ SECTIONS
 	.u_boot_cmd : { *(.u_boot_cmd) }
 	__u_boot_cmd_end = .;
 
+	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
 
diff --git a/board/quantum/u-boot.lds b/board/quantum/u-boot.lds
index d0b60cf..9133469 100644
--- a/board/quantum/u-boot.lds
+++ b/board/quantum/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/r360mpi/u-boot.lds b/board/r360mpi/u-boot.lds
index 2fa085a..3138154 100644
--- a/board/r360mpi/u-boot.lds
+++ b/board/r360mpi/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/rbc823/u-boot.lds b/board/rbc823/u-boot.lds
index d943fb6..5e3d78f 100644
--- a/board/rbc823/u-boot.lds
+++ b/board/rbc823/u-boot.lds
@@ -81,6 +81,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
   . = .;
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/renesas/sh7757lcr/u-boot.lds b/board/renesas/sh7757lcr/u-boot.lds
index 38ebe88..b2cf392 100644
--- a/board/renesas/sh7757lcr/u-boot.lds
+++ b/board/renesas/sh7757lcr/u-boot.lds
@@ -85,6 +85,10 @@ SECTIONS
 	}
 	PROVIDE (__u_boot_cmd_end = .);
 
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	PROVIDE (reloc_dst_end = .);
 	/* _reloc_dst_end = .; */
 
diff --git a/board/rsdproto/u-boot.lds b/board/rsdproto/u-boot.lds
index a729c52..d43663c 100644
--- a/board/rsdproto/u-boot.lds
+++ b/board/rsdproto/u-boot.lds
@@ -101,6 +101,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/samsung/smdk5250/smdk5250-uboot-spl.lds b/board/samsung/smdk5250/smdk5250-uboot-spl.lds
index d78dd77..951d8ce 100644
--- a/board/samsung/smdk5250/smdk5250-uboot-spl.lds
+++ b/board/samsung/smdk5250/smdk5250-uboot-spl.lds
@@ -48,6 +48,11 @@ SECTIONS
 	.data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
 	. = ALIGN(4);
 
+	.u_boot_list : {
+		#include <u-boot.lst>
+	} >.sram
+	. = ALIGN(4);
+
 	/* Align .machine_param on 256 byte boundary for easier searching */
 	.machine_param ALIGN(0x100) : { *(.machine_param) } >.sram
 	. = ALIGN(4);
diff --git a/board/samsung/smdk6400/u-boot-nand.lds b/board/samsung/smdk6400/u-boot-nand.lds
index f162815..50924fc 100644
--- a/board/samsung/smdk6400/u-boot-nand.lds
+++ b/board/samsung/smdk6400/u-boot-nand.lds
@@ -51,7 +51,12 @@ SECTIONS
 	.u_boot_cmd : { *(.u_boot_cmd) }
 	__u_boot_cmd_end = .;
 
-	. = ALIGN(4);
+	. = align(4);
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
+	. = align(4);
 	.mmudata : { *(.mmudata) }
 
 	. = ALIGN(4);
diff --git a/board/sandburst/karef/u-boot.lds.debug b/board/sandburst/karef/u-boot.lds.debug
index 31746e3..c3a72cb 100644
--- a/board/sandburst/karef/u-boot.lds.debug
+++ b/board/sandburst/karef/u-boot.lds.debug
@@ -119,6 +119,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/sandburst/metrobox/u-boot.lds.debug b/board/sandburst/metrobox/u-boot.lds.debug
index 4922bd2..bb73307 100644
--- a/board/sandburst/metrobox/u-boot.lds.debug
+++ b/board/sandburst/metrobox/u-boot.lds.debug
@@ -119,6 +119,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/sandpoint/u-boot.lds b/board/sandpoint/u-boot.lds
index e382fd1..a9c06ad 100644
--- a/board/sandpoint/u-boot.lds
+++ b/board/sandpoint/u-boot.lds
@@ -72,6 +72,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/siemens/IAD210/u-boot.lds b/board/siemens/IAD210/u-boot.lds
index 0e78e4f..4214ace 100644
--- a/board/siemens/IAD210/u-boot.lds
+++ b/board/siemens/IAD210/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/sixnet/u-boot.lds b/board/sixnet/u-boot.lds
index 02d1980..0a71707 100644
--- a/board/sixnet/u-boot.lds
+++ b/board/sixnet/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/snmc/qs850/u-boot.lds b/board/snmc/qs850/u-boot.lds
index 9ab248a..eca88e5 100644
--- a/board/snmc/qs850/u-boot.lds
+++ b/board/snmc/qs850/u-boot.lds
@@ -73,6 +73,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/snmc/qs860t/u-boot.lds b/board/snmc/qs860t/u-boot.lds
index d0b60cf..9133469 100644
--- a/board/snmc/qs860t/u-boot.lds
+++ b/board/snmc/qs860t/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/spc1920/u-boot.lds b/board/spc1920/u-boot.lds
index d0b60cf..9133469 100644
--- a/board/spc1920/u-boot.lds
+++ b/board/spc1920/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/spd8xx/u-boot.lds b/board/spd8xx/u-boot.lds
index a84e7fd..a233817 100644
--- a/board/spd8xx/u-boot.lds
+++ b/board/spd8xx/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/spd8xx/u-boot.lds.debug b/board/spd8xx/u-boot.lds.debug
index a95c47f..722a405 100644
--- a/board/spd8xx/u-boot.lds.debug
+++ b/board/spd8xx/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/stx/stxxtc/u-boot.lds b/board/stx/stxxtc/u-boot.lds
index a949e4f..ae48cba 100644
--- a/board/stx/stxxtc/u-boot.lds
+++ b/board/stx/stxxtc/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/stx/stxxtc/u-boot.lds.debug b/board/stx/stxxtc/u-boot.lds.debug
index a001f3f..ffebab5 100644
--- a/board/stx/stxxtc/u-boot.lds.debug
+++ b/board/stx/stxxtc/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/svm_sc8xx/u-boot.lds b/board/svm_sc8xx/u-boot.lds
index c65f022..4cdad4b 100644
--- a/board/svm_sc8xx/u-boot.lds
+++ b/board/svm_sc8xx/u-boot.lds
@@ -87,6 +87,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/tqc/tqm8xx/u-boot.lds b/board/tqc/tqm8xx/u-boot.lds
index e905c26..ea2fc44 100644
--- a/board/tqc/tqm8xx/u-boot.lds
+++ b/board/tqc/tqm8xx/u-boot.lds
@@ -85,6 +85,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/v37/u-boot.lds b/board/v37/u-boot.lds
index e62d53d..c82b1b3 100644
--- a/board/v37/u-boot.lds
+++ b/board/v37/u-boot.lds
@@ -70,6 +70,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/vpac270/u-boot-spl.lds b/board/vpac270/u-boot-spl.lds
index 1958c2f..20161a4 100644
--- a/board/vpac270/u-boot-spl.lds
+++ b/board/vpac270/u-boot-spl.lds
@@ -57,6 +57,10 @@ SECTIONS
 		*(.data)
 	}
 
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
 	. = ALIGN(4);
 
 	.rel.dyn : {
diff --git a/board/w7o/u-boot.lds.debug b/board/w7o/u-boot.lds.debug
index 1c67b30..4d64088 100644
--- a/board/w7o/u-boot.lds.debug
+++ b/board/w7o/u-boot.lds.debug
@@ -110,6 +110,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/westel/amx860/u-boot.lds b/board/westel/amx860/u-boot.lds
index 3470b43..6074736 100644
--- a/board/westel/amx860/u-boot.lds
+++ b/board/westel/amx860/u-boot.lds
@@ -79,6 +79,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   . = .;
   __start___ex_table = .;
diff --git a/board/westel/amx860/u-boot.lds.debug b/board/westel/amx860/u-boot.lds.debug
index 91d3e67..87ec870 100644
--- a/board/westel/amx860/u-boot.lds.debug
+++ b/board/westel/amx860/u-boot.lds.debug
@@ -111,6 +111,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/xes/xpedite1000/u-boot.lds.debug b/board/xes/xpedite1000/u-boot.lds.debug
index e2e66ae..5296165 100644
--- a/board/xes/xpedite1000/u-boot.lds.debug
+++ b/board/xes/xpedite1000/u-boot.lds.debug
@@ -115,6 +115,11 @@ SECTIONS
   .u_boot_cmd : { *(.u_boot_cmd) }
   __u_boot_cmd_end = .;
 
+  . = ALIGN(4);
+  .u_boot_list : {
+	#include <u-boot.lst>
+  }
+
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/examples/standalone/sparc.lds b/examples/standalone/sparc.lds
index 9733daa..646b80f 100644
--- a/examples/standalone/sparc.lds
+++ b/examples/standalone/sparc.lds
@@ -46,6 +46,7 @@ SECTIONS
 	{
 		*(.data)
 	}
+
 	. = ALIGN(4);
 	__data_end = .;
 
diff --git a/nand_spl/board/freescale/mx31pdk/u-boot.lds b/nand_spl/board/freescale/mx31pdk/u-boot.lds
index d2b08f6..b2a0f7c 100644
--- a/nand_spl/board/freescale/mx31pdk/u-boot.lds
+++ b/nand_spl/board/freescale/mx31pdk/u-boot.lds
@@ -51,6 +51,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+		#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/nand_spl/board/karo/tx25/u-boot.lds b/nand_spl/board/karo/tx25/u-boot.lds
index d2b08f6..24a3c0c 100644
--- a/nand_spl/board/karo/tx25/u-boot.lds
+++ b/nand_spl/board/karo/tx25/u-boot.lds
@@ -51,6 +51,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 
 	.rel.dyn : {
 		__rel_dyn_start = .;
diff --git a/nand_spl/board/samsung/smdk6400/u-boot.lds b/nand_spl/board/samsung/smdk6400/u-boot.lds
index 567f635..8481062 100644
--- a/nand_spl/board/samsung/smdk6400/u-boot.lds
+++ b/nand_spl/board/samsung/smdk6400/u-boot.lds
@@ -55,6 +55,11 @@ SECTIONS
 	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
+	.u_boot_list : {
+	#include <u-boot.lst>
+	}
+
+	. = ALIGN(4);
 
 	.rel.dyn : {
 	__rel_dyn_start = .;
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 4/6 V3] common: Convert the U-Boot commands to LG-arrays
  2012-10-12 20:27   ` [U-Boot] [PATCH 0/6 V3] Linker-generated arrays (take 2) Marek Vasut
                       ` (2 preceding siblings ...)
  2012-10-12 20:27     ` [U-Boot] [PATCH 3/6 V3] common: Add .u_boot_list into all linker files Marek Vasut
@ 2012-10-12 20:27     ` Marek Vasut
  2012-10-12 20:27     ` [U-Boot] [PATCH 5/6 V3] common: Discard the __u_boot_cmd section Marek Vasut
  2012-10-12 20:27     ` [U-Boot] [PATCH 6/6 V3] kerneldoc: tmpl: Implement template for LG-arrays Marek Vasut
  5 siblings, 0 replies; 48+ messages in thread
From: Marek Vasut @ 2012-10-12 20:27 UTC (permalink / raw)
  To: u-boot

This patch converts the old method of creating a list of command
onto the new LG-arrays code. The old u_boot_cmd section is converted
to new u_boot_list_cmd subsection and LG-array macros used as needed.

Minor adjustments had to be made to the common code to work with the
LG-array macros, mostly the fixup_cmdtable() calls are now passed the
ll_entry_start and ll_entry_count instead of linker-generated symbols.

The command.c had to be adjusted as well so it would use the newly
introduced LG-array API instead of directly using linker-generated
symbols.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>
---
 arch/arm/imx-common/cmd_bmode.c |   11 +++++++----
 arch/avr32/lib/board.c          |    4 ++--
 arch/m68k/lib/board.c           |    4 ++--
 arch/mips/lib/board.c           |    4 ++--
 arch/nds32/lib/board.c          |    4 ++--
 arch/sparc/lib/board.c          |    4 ++--
 common/cmd_help.c               |    8 ++++----
 common/command.c                |   17 ++++++++++-------
 doc/README.commands             |   10 +++++-----
 include/command.h               |   26 ++++++++++++++------------
 10 files changed, 50 insertions(+), 42 deletions(-)

V2:
- Rebase on top of testing/dm-kerneldoc
V3:
- Rebase on top of u-boot/next

diff --git a/arch/arm/imx-common/cmd_bmode.c b/arch/arm/imx-common/cmd_bmode.c
index 02fe72e..ddc14b0 100644
--- a/arch/arm/imx-common/cmd_bmode.c
+++ b/arch/arm/imx-common/cmd_bmode.c
@@ -24,6 +24,7 @@
 #include <asm/io.h>
 #include <asm/imx-common/boot_mode.h>
 #include <malloc.h>
+#include <command.h>
 
 static const struct boot_mode *modes[2];
 
@@ -103,9 +104,11 @@ void add_board_boot_modes(const struct boot_mode *p)
 	int size;
 	char *dest;
 
-	if (__u_boot_cmd_bmode.usage) {
-		free(__u_boot_cmd_bmode.usage);
-		__u_boot_cmd_bmode.usage = NULL;
+	cmd_tbl_t *entry = ll_entry_get(cmd_tbl_t, bmode, cmd);
+
+	if (entry->usage) {
+		free(entry->usage);
+		entry->usage = NULL;
 	}
 
 	modes[0] = p;
@@ -114,6 +117,6 @@ void add_board_boot_modes(const struct boot_mode *p)
 	dest = malloc(size);
 	if (dest) {
 		create_usage(dest);
-		__u_boot_cmd_bmode.usage = dest;
+		entry->usage = dest;
 	}
 }
diff --git a/arch/avr32/lib/board.c b/arch/avr32/lib/board.c
index 9d3b76e..e3287c4 100644
--- a/arch/avr32/lib/board.c
+++ b/arch/avr32/lib/board.c
@@ -272,8 +272,8 @@ void board_init_r(gd_t *new_gd, ulong dest_addr)
 	/*
 	 * We have to relocate the command table manually
 	 */
-	fixup_cmdtable(&__u_boot_cmd_start,
-		(ulong)(&__u_boot_cmd_end - &__u_boot_cmd_start));
+	fixup_cmdtable(ll_entry_start(cmd_tbl_t, cmd),
+			ll_entry_count(cmd_tbl_t, cmd));
 #endif /* defined(CONFIG_NEEDS_MANUAL_RELOC) */
 
 	/* there are some other pointer constants we must deal with */
diff --git a/arch/m68k/lib/board.c b/arch/m68k/lib/board.c
index 67c9a13..2a694b4 100644
--- a/arch/m68k/lib/board.c
+++ b/arch/m68k/lib/board.c
@@ -415,8 +415,8 @@ void board_init_r (gd_t *id, ulong dest_addr)
 	/*
 	 * We have to relocate the command table manually
 	 */
-	fixup_cmdtable(&__u_boot_cmd_start,
-		(ulong)(&__u_boot_cmd_end - &__u_boot_cmd_start));
+	fixup_cmdtable(ll_entry_start(cmd_tbl_t, cmd),
+			ll_entry_count(cmd_tbl_t, cmd));
 #endif /* defined(CONFIG_NEEDS_MANUAL_RELOC) */
 
 	/* there are some other pointer constants we must deal with */
diff --git a/arch/mips/lib/board.c b/arch/mips/lib/board.c
index b14b33e..7ddd778 100644
--- a/arch/mips/lib/board.c
+++ b/arch/mips/lib/board.c
@@ -266,8 +266,8 @@ void board_init_r(gd_t *id, ulong dest_addr)
 	/*
 	 * We have to relocate the command table manually
 	 */
-	fixup_cmdtable(&__u_boot_cmd_start,
-		(ulong)(&__u_boot_cmd_end - &__u_boot_cmd_start));
+	fixup_cmdtable(ll_entry_start(cmd_tbl_t, cmd),
+			ll_entry_count(cmd_tbl_t, cmd));
 #endif /* defined(CONFIG_NEEDS_MANUAL_RELOC) */
 
 	/* there are some other pointer constants we must deal with */
diff --git a/arch/nds32/lib/board.c b/arch/nds32/lib/board.c
index 89900fe..cd8d6a7 100644
--- a/arch/nds32/lib/board.c
+++ b/arch/nds32/lib/board.c
@@ -320,8 +320,8 @@ void board_init_r(gd_t *id, ulong dest_addr)
 	/*
 	 * We have to relocate the command table manually
 	 */
-	fixup_cmdtable(&__u_boot_cmd_start,
-		(ulong)(&__u_boot_cmd_end - &__u_boot_cmd_start));
+	fixup_cmdtable(ll_entry_start(cmd_tbl_t, cmd),
+			ll_entry_count(cmd_tbl_t, cmd));
 #endif /* defined(CONFIG_NEEDS_MANUAL_RELOC) */
 
 	serial_initialize();
diff --git a/arch/sparc/lib/board.c b/arch/sparc/lib/board.c
index ff0e0f2..32d025a 100644
--- a/arch/sparc/lib/board.c
+++ b/arch/sparc/lib/board.c
@@ -246,8 +246,8 @@ void board_init_f(ulong bootflag)
 	/*
 	 * We have to relocate the command table manually
 	 */
-	fixup_cmdtable(&__u_boot_cmd_start,
-		(ulong)(&__u_boot_cmd_end - &__u_boot_cmd_start));
+	fixup_cmdtable(ll_entry_start(cmd_tbl_t, cmd),
+			ll_entry_count(cmd_tbl_t, cmd));
 #endif /* defined(CONFIG_NEEDS_MANUAL_RELOC) */
 
 #if defined(CONFIG_CMD_AMBAPP) && defined(CONFIG_SYS_AMBAPP_PRINT_ON_STARTUP)
diff --git a/common/cmd_help.c b/common/cmd_help.c
index 8c8178e..3178a1a 100644
--- a/common/cmd_help.c
+++ b/common/cmd_help.c
@@ -26,9 +26,9 @@
 
 int do_help(cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[])
 {
-	return _do_help(&__u_boot_cmd_start,
-			&__u_boot_cmd_end - &__u_boot_cmd_start,
-			cmdtp, flag, argc, argv);
+	cmd_tbl_t *start = ll_entry_start(cmd_tbl_t, cmd);
+	const int len = ll_entry_count(cmd_tbl_t, cmd);
+	return _do_help(start, len, cmdtp, flag, argc, argv);
 }
 
 U_BOOT_CMD(
@@ -41,7 +41,7 @@ U_BOOT_CMD(
 );
 
 /* This does not use the U_BOOT_CMD macro as ? can't be used in symbol names */
-cmd_tbl_t __u_boot_cmd_question_mark Struct_Section = {
+ll_entry_declare(cmd_tbl_t, question_mark, cmd, cmd) = {
 	"?",	CONFIG_SYS_MAXARGS,	1,	do_help,
 	"alias for 'help'",
 #ifdef  CONFIG_SYS_LONGHELP
diff --git a/common/command.c b/common/command.c
index aa0fb0a..50c8429 100644
--- a/common/command.c
+++ b/common/command.c
@@ -137,8 +137,9 @@ cmd_tbl_t *find_cmd_tbl (const char *cmd, cmd_tbl_t *table, int table_len)
 
 cmd_tbl_t *find_cmd (const char *cmd)
 {
-	int len = &__u_boot_cmd_end - &__u_boot_cmd_start;
-	return find_cmd_tbl(cmd, &__u_boot_cmd_start, len);
+	cmd_tbl_t *start = ll_entry_start(cmd_tbl_t, cmd);
+	const int len = ll_entry_count(cmd_tbl_t, cmd);
+	return find_cmd_tbl(cmd, start, len);
 }
 
 int cmd_usage(const cmd_tbl_t *cmdtp)
@@ -181,7 +182,9 @@ int var_complete(int argc, char * const argv[], char last_char, int maxv, char *
 
 static int complete_cmdv(int argc, char * const argv[], char last_char, int maxv, char *cmdv[])
 {
-	cmd_tbl_t *cmdtp;
+	cmd_tbl_t *cmdtp = ll_entry_start(cmd_tbl_t, cmd);
+	const int count = ll_entry_count(cmd_tbl_t, cmd);
+	const cmd_tbl_t *cmdend = cmdtp + count;
 	const char *p;
 	int len, clen;
 	int n_found = 0;
@@ -195,12 +198,12 @@ static int complete_cmdv(int argc, char * const argv[], char last_char, int maxv
 
 	if (argc == 0) {
 		/* output full list of commands */
-		for (cmdtp = &__u_boot_cmd_start; cmdtp != &__u_boot_cmd_end; cmdtp++) {
+		for (; cmdtp != cmdend; cmdtp++) {
 			if (n_found >= maxv - 2) {
-				cmdv[n_found++] = "...";
+				cmdv[n_found] = "...";
 				break;
 			}
-			cmdv[n_found++] = cmdtp->name;
+			cmdv[n_found] = cmdtp->name;
 		}
 		cmdv[n_found] = NULL;
 		return n_found;
@@ -228,7 +231,7 @@ static int complete_cmdv(int argc, char * const argv[], char last_char, int maxv
 		len = p - cmd;
 
 	/* return the partial matches */
-	for (cmdtp = &__u_boot_cmd_start; cmdtp != &__u_boot_cmd_end; cmdtp++) {
+	for (; cmdtp != cmdend; cmdtp++) {
 
 		clen = strlen(cmdtp->name);
 		if (clen < len)
diff --git a/doc/README.commands b/doc/README.commands
index 125f077..923418b 100644
--- a/doc/README.commands
+++ b/doc/README.commands
@@ -15,12 +15,12 @@ help:	 Long description. This is a string
 
 **** Behind the scene ******
 
-The structure created is named with a special prefix (__u_boot_cmd_)
+The structure created is named with a special prefix (__u_boot_list_cmd_)
 and placed by the linker in a special section.
 
 This makes it possible for the final link to extract all commands
 compiled into any object code and construct a static array so the
-command can be found in an array starting at __u_boot_cmd_start.
+command can be found in an array starting@_u_boot_list_cmd__start.
 
 To ensure that the linker does not discard these symbols when linking
 full U-Boot we generate a list of all the commands we have built (based
@@ -33,6 +33,6 @@ If a new board is defined do not forget to define the command section
 by writing in u-boot.lds ($(TOPDIR)/board/boardname/u-boot.lds) these
 3 lines:
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	.u_boot_list : {
+	#include "u-boot.lst";
+	}
diff --git a/include/command.h b/include/command.h
index 1f06aa1..24864d5 100644
--- a/include/command.h
+++ b/include/command.h
@@ -28,6 +28,7 @@
 #define __COMMAND_H
 
 #include <config.h>
+#include <linker_lists.h>
 
 #ifndef NULL
 #define NULL	0
@@ -153,9 +154,6 @@ int cmd_process(int flag, int argc, char * const argv[],
 #define CMD_FLAG_REPEAT		0x0001	/* repeat last command		*/
 #define CMD_FLAG_BOOTD		0x0002	/* command is from bootd	*/
 
-#define Struct_Section  __attribute__((unused, section(".u_boot_cmd"), \
-		aligned(4)))
-
 #ifdef CONFIG_AUTO_COMPLETE
 # define _CMD_COMPLETE(x) x,
 #else
@@ -167,18 +165,22 @@ int cmd_process(int flag, int argc, char * const argv[],
 # define _CMD_HELP(x)
 #endif
 
-#define U_BOOT_CMD_MKENT_COMPLETE(name,maxargs,rep,cmd,usage,help,comp) \
-	{#name, maxargs, rep, cmd, usage, _CMD_HELP(help) _CMD_COMPLETE(comp)}
+#define U_BOOT_CMD_MKENT_COMPLETE(_name, _maxargs, _rep, _cmd,		\
+				_usage, _help, _comp)			\
+		{ #_name, _maxargs, _rep, _cmd, _usage,			\
+			_CMD_HELP(_help) _CMD_COMPLETE(_comp) }
 
-#define U_BOOT_CMD_MKENT(name,maxargs,rep,cmd,usage,help) \
-	U_BOOT_CMD_MKENT_COMPLETE(name,maxargs,rep,cmd,usage,help,NULL)
+#define U_BOOT_CMD_MKENT(_name, _maxargs, _rep, _cmd, _usage, _help)	\
+	U_BOOT_CMD_MKENT_COMPLETE(_name, _maxargs, _rep, _cmd,		\
+					_usage, _help, NULL)
 
-#define U_BOOT_CMD_COMPLETE(name,maxargs,rep,cmd,usage,help,comp) \
-	cmd_tbl_t __u_boot_cmd_##name Struct_Section = \
-		U_BOOT_CMD_MKENT_COMPLETE(name,maxargs,rep,cmd,usage,help,comp)
+#define U_BOOT_CMD_COMPLETE(_name, _maxargs, _rep, _cmd, _usage, _help, _comp) \
+	ll_entry_declare(cmd_tbl_t, _name, cmd, cmd) =			\
+		U_BOOT_CMD_MKENT_COMPLETE(_name, _maxargs, _rep, _cmd,	\
+						_usage, _help, _comp);
 
-#define U_BOOT_CMD(name,maxargs,rep,cmd,usage,help) \
-	U_BOOT_CMD_COMPLETE(name,maxargs,rep,cmd,usage,help,NULL)
+#define U_BOOT_CMD(_name, _maxargs, _rep, _cmd, _usage, _help)		\
+	U_BOOT_CMD_COMPLETE(_name, _maxargs, _rep, _cmd, _usage, _help, NULL)
 
 #if defined(CONFIG_NEEDS_MANUAL_RELOC)
 void fixup_cmdtable(cmd_tbl_t *cmdtp, int size);
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 5/6 V3] common: Discard the __u_boot_cmd section
  2012-10-12 20:27   ` [U-Boot] [PATCH 0/6 V3] Linker-generated arrays (take 2) Marek Vasut
                       ` (3 preceding siblings ...)
  2012-10-12 20:27     ` [U-Boot] [PATCH 4/6 V3] common: Convert the U-Boot commands to LG-arrays Marek Vasut
@ 2012-10-12 20:27     ` Marek Vasut
  2012-10-17 10:45       ` [U-Boot] [PATCH 5/6 V4] " Marek Vasut
  2012-10-12 20:27     ` [U-Boot] [PATCH 6/6 V3] kerneldoc: tmpl: Implement template for LG-arrays Marek Vasut
  5 siblings, 1 reply; 48+ messages in thread
From: Marek Vasut @ 2012-10-12 20:27 UTC (permalink / raw)
  To: u-boot

The command declaration now uses the new LG-array method to generate
list of commands. Thus the __u_boot_cmd section is now superseded and
redundant and therefore can be removed. Also, remove externed symbols
associated with this section from include/command.h .

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>
---
 arch/arm/cpu/arm920t/ep93xx/u-boot.lds           |    3 ---
 arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds        |    3 ---
 arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds      |    3 ---
 arch/arm/cpu/ixp/u-boot.lds                      |    3 ---
 arch/arm/cpu/u-boot.lds                          |    3 ---
 arch/avr32/cpu/u-boot.lds                        |    5 -----
 arch/blackfin/cpu/u-boot.lds                     |    6 ------
 arch/microblaze/cpu/u-boot.lds                   |    8 --------
 arch/nds32/cpu/n1213/u-boot.lds                  |    3 ---
 arch/nios2/cpu/u-boot.lds                        |    7 -------
 arch/powerpc/cpu/74xx_7xx/u-boot.lds             |    3 ---
 arch/powerpc/cpu/mpc512x/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc5xx/u-boot.lds               |    3 ---
 arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds |    3 ---
 arch/powerpc/cpu/mpc5xxx/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc8220/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc824x/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc8260/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc83xx/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc85xx/u-boot-nand.lds         |    3 ---
 arch/powerpc/cpu/mpc85xx/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc86xx/u-boot.lds              |    3 ---
 arch/powerpc/cpu/ppc4xx/u-boot.lds               |    3 ---
 arch/sandbox/cpu/u-boot.lds                      |    3 ---
 arch/sh/cpu/sh2/u-boot.lds                       |    7 -------
 arch/sh/cpu/sh3/u-boot.lds                       |    7 -------
 arch/sh/cpu/sh4/u-boot.lds                       |    7 -------
 arch/x86/cpu/u-boot.lds                          |    4 ----
 board/BuS/eb_cpu5282/u-boot.lds                  |    3 ---
 board/LEOX/elpt860/u-boot.lds                    |    3 ---
 board/RPXClassic/u-boot.lds                      |    3 ---
 board/RPXClassic/u-boot.lds.debug                |    3 ---
 board/RPXlite/u-boot.lds                         |    3 ---
 board/RPXlite/u-boot.lds.debug                   |    3 ---
 board/RPXlite_dw/u-boot.lds                      |    3 ---
 board/RPXlite_dw/u-boot.lds.debug                |    3 ---
 board/RRvision/u-boot.lds                        |    3 ---
 board/actux1/u-boot.lds                          |    5 -----
 board/actux2/u-boot.lds                          |    5 -----
 board/actux3/u-boot.lds                          |    5 -----
 board/adder/u-boot.lds                           |    3 ---
 board/altera/nios2-generic/u-boot.lds            |    7 -------
 board/amcc/acadia/u-boot-nand.lds                |    3 ---
 board/amcc/bamboo/u-boot-nand.lds                |    3 ---
 board/amcc/canyonlands/u-boot-nand.lds           |    3 ---
 board/amcc/kilauea/u-boot-nand.lds               |    3 ---
 board/amcc/sequoia/u-boot-nand.lds               |    3 ---
 board/amcc/sequoia/u-boot-ram.lds                |    3 ---
 board/astro/mcf5373l/u-boot.lds                  |    3 ---
 board/c2mon/u-boot.lds                           |    3 ---
 board/c2mon/u-boot.lds.debug                     |    3 ---
 board/cobra5272/u-boot.lds                       |    3 ---
 board/cogent/u-boot.lds                          |    3 ---
 board/cogent/u-boot.lds.debug                    |    3 ---
 board/cray/L1/u-boot.lds.debug                   |    3 ---
 board/dave/PPChameleonEVB/u-boot.lds             |    3 ---
 board/dbau1x00/u-boot.lds                        |    6 ------
 board/dvlhost/u-boot.lds                         |    5 -----
 board/eltec/mhpc/u-boot.lds                      |    3 ---
 board/eltec/mhpc/u-boot.lds.debug                |    3 ---
 board/emk/top860/u-boot.lds                      |    3 ---
 board/ep88x/u-boot.lds                           |    3 ---
 board/esd/dasa_sim/u-boot.lds                    |    3 ---
 board/esd/pmc440/u-boot-nand.lds                 |    3 ---
 board/esd/tasreg/u-boot.lds                      |    3 ---
 board/esteem192e/u-boot.lds                      |    3 ---
 board/etx094/u-boot.lds                          |    3 ---
 board/evb64260/u-boot.lds                        |    3 ---
 board/fads/u-boot.lds                            |    3 ---
 board/flagadm/u-boot.lds                         |    3 ---
 board/flagadm/u-boot.lds.debug                   |    3 ---
 board/freescale/m5208evbe/u-boot.lds             |    3 ---
 board/freescale/m52277evb/u-boot.lds             |    3 ---
 board/freescale/m5235evb/u-boot.lds              |    3 ---
 board/freescale/m5249evb/u-boot.lds              |    3 ---
 board/freescale/m5253demo/u-boot.lds             |    3 ---
 board/freescale/m5253evbe/u-boot.lds             |    3 ---
 board/freescale/m5271evb/u-boot.lds              |    3 ---
 board/freescale/m5272c3/u-boot.lds               |    3 ---
 board/freescale/m5275evb/u-boot.lds              |    3 ---
 board/freescale/m5282evb/u-boot.lds              |    3 ---
 board/freescale/m53017evb/u-boot.lds             |    3 ---
 board/freescale/m5329evb/u-boot.lds              |    3 ---
 board/freescale/m5373evb/u-boot.lds              |    3 ---
 board/freescale/m54451evb/u-boot.lds             |    3 ---
 board/freescale/m54455evb/u-boot.lds             |    3 ---
 board/freescale/m547xevb/u-boot.lds              |    3 ---
 board/freescale/m548xevb/u-boot.lds              |    3 ---
 board/freescale/mx31ads/u-boot.lds               |    3 ---
 board/gaisler/gr_cpci_ax2000/u-boot.lds          |    4 ----
 board/gaisler/gr_ep2s60/u-boot.lds               |    4 ----
 board/gaisler/gr_xc3s_1500/u-boot.lds            |    4 ----
 board/gaisler/grsim/u-boot.lds                   |    4 ----
 board/gaisler/grsim_leon2/u-boot.lds             |    4 ----
 board/gen860t/u-boot-flashenv.lds                |    3 ---
 board/gen860t/u-boot.lds                         |    3 ---
 board/genietv/u-boot.lds                         |    3 ---
 board/genietv/u-boot.lds.debug                   |    3 ---
 board/hermes/u-boot.lds                          |    3 ---
 board/hermes/u-boot.lds.debug                    |    3 ---
 board/hymod/u-boot.lds                           |    3 ---
 board/hymod/u-boot.lds.debug                     |    3 ---
 board/icu862/u-boot.lds                          |    3 ---
 board/icu862/u-boot.lds.debug                    |    3 ---
 board/idmr/u-boot.lds                            |    3 ---
 board/incaip/u-boot.lds                          |    6 ------
 board/ip860/u-boot.lds                           |    3 ---
 board/ip860/u-boot.lds.debug                     |    3 ---
 board/ivm/u-boot.lds                             |    3 ---
 board/ivm/u-boot.lds.debug                       |    3 ---
 board/korat/u-boot-F7FC.lds                      |    3 ---
 board/kup/kup4k/u-boot.lds                       |    3 ---
 board/kup/kup4k/u-boot.lds.debug                 |    3 ---
 board/kup/kup4x/u-boot.lds                       |    3 ---
 board/kup/kup4x/u-boot.lds.debug                 |    3 ---
 board/lantec/u-boot.lds                          |    3 ---
 board/lantec/u-boot.lds.debug                    |    3 ---
 board/lwmon/u-boot.lds                           |    3 ---
 board/lwmon/u-boot.lds.debug                     |    3 ---
 board/manroland/uc100/u-boot.lds                 |    3 ---
 board/matrix_vision/mvsmr/u-boot.lds             |    3 ---
 board/mbx8xx/u-boot.lds                          |    3 ---
 board/mbx8xx/u-boot.lds.debug                    |    3 ---
 board/micronas/vct/u-boot.lds                    |    7 -------
 board/mousse/u-boot.lds                          |    3 ---
 board/mousse/u-boot.lds.ram                      |    3 ---
 board/mousse/u-boot.lds.rom                      |    3 ---
 board/mpl/pip405/u-boot.lds.debug                |    3 ---
 board/mvblue/u-boot.lds                          |    3 ---
 board/netphone/u-boot.lds                        |    3 ---
 board/netphone/u-boot.lds.debug                  |    3 ---
 board/netta/u-boot.lds                           |    3 ---
 board/netta/u-boot.lds.debug                     |    3 ---
 board/netta2/u-boot.lds                          |    3 ---
 board/netta2/u-boot.lds.debug                    |    3 ---
 board/netvia/u-boot.lds                          |    3 ---
 board/netvia/u-boot.lds.debug                    |    3 ---
 board/nx823/u-boot.lds                           |    3 ---
 board/nx823/u-boot.lds.debug                     |    3 ---
 board/openrisc/openrisc-generic/u-boot.lds       |    3 ---
 board/pb1x00/u-boot.lds                          |    6 ------
 board/qemu-mips/u-boot.lds                       |    7 -------
 board/qi/qi_lb60/u-boot.lds                      |    3 ---
 board/quantum/u-boot.lds                         |    3 ---
 board/r360mpi/u-boot.lds                         |    3 ---
 board/rbc823/u-boot.lds                          |    3 ---
 board/renesas/sh7757lcr/u-boot.lds               |    7 -------
 board/rsdproto/u-boot.lds                        |    3 ---
 board/samsung/smdk6400/u-boot-nand.lds           |    3 ---
 board/sandburst/karef/u-boot.lds.debug           |    3 ---
 board/sandburst/metrobox/u-boot.lds.debug        |    3 ---
 board/sandpoint/u-boot.lds                       |    3 ---
 board/siemens/IAD210/u-boot.lds                  |    3 ---
 board/sixnet/u-boot.lds                          |    3 ---
 board/snmc/qs850/u-boot.lds                      |    3 ---
 board/snmc/qs860t/u-boot.lds                     |    3 ---
 board/spc1920/u-boot.lds                         |    3 ---
 board/spd8xx/u-boot.lds                          |    3 ---
 board/spd8xx/u-boot.lds.debug                    |    3 ---
 board/stx/stxxtc/u-boot.lds                      |    3 ---
 board/stx/stxxtc/u-boot.lds.debug                |    3 ---
 board/svm_sc8xx/u-boot.lds                       |    3 ---
 board/tqc/tqm8xx/u-boot.lds                      |    3 ---
 board/v37/u-boot.lds                             |    3 ---
 board/w7o/u-boot.lds.debug                       |    3 ---
 board/westel/amx860/u-boot.lds                   |    3 ---
 board/westel/amx860/u-boot.lds.debug             |    3 ---
 board/xes/xpedite1000/u-boot.lds.debug           |    3 ---
 include/command.h                                |    2 --
 nand_spl/board/freescale/mx31pdk/u-boot.lds      |    3 ---
 nand_spl/board/karo/tx25/u-boot.lds              |    3 ---
 nand_spl/board/samsung/smdk6400/u-boot.lds       |    3 ---
 172 files changed, 580 deletions(-)

V2:
- Rebase on top of testing/dm-kerneldoc
V3:
- Rebase on top of u-boot/next

diff --git a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
index 8c6a407..008ae89 100644
--- a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
+++ b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
@@ -48,9 +48,6 @@ SECTIONS
 	.got : { *(.got) }
 
 	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
index 2940a6f..6dc681a 100644
--- a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
+++ b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
@@ -50,9 +50,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
index ae9538e..f3bd5e7 100644
--- a/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
+++ b/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
@@ -50,9 +50,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/arch/arm/cpu/ixp/u-boot.lds b/arch/arm/cpu/ixp/u-boot.lds
index a7ffab3..81d954f 100644
--- a/arch/arm/cpu/ixp/u-boot.lds
+++ b/arch/arm/cpu/ixp/u-boot.lds
@@ -46,9 +46,6 @@ SECTIONS
 	. = ALIGN(4);
 
 	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/arm/cpu/u-boot.lds b/arch/arm/cpu/u-boot.lds
index 85f4eec..227aaff 100644
--- a/arch/arm/cpu/u-boot.lds
+++ b/arch/arm/cpu/u-boot.lds
@@ -49,9 +49,6 @@ SECTIONS
 	. = ALIGN(4);
 
 	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/avr32/cpu/u-boot.lds b/arch/avr32/cpu/u-boot.lds
index 2accee6..0b16d2a 100644
--- a/arch/avr32/cpu/u-boot.lds
+++ b/arch/avr32/cpu/u-boot.lds
@@ -47,11 +47,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : {
-		KEEP(*(.u_boot_cmd))
-	}
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/blackfin/cpu/u-boot.lds b/arch/blackfin/cpu/u-boot.lds
index cbc79de..58db838 100644
--- a/arch/blackfin/cpu/u-boot.lds
+++ b/arch/blackfin/cpu/u-boot.lds
@@ -112,12 +112,6 @@ SECTIONS
 		CONSTRUCTORS
 	} >ram_data
 
-	.u_boot_cmd :
-	{
-		___u_boot_cmd_start = .;
-		*(.u_boot_cmd)
-		___u_boot_cmd_end = .;
-	} >ram_data
 
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/arch/microblaze/cpu/u-boot.lds b/arch/microblaze/cpu/u-boot.lds
index 06a2855..4297b93 100644
--- a/arch/microblaze/cpu/u-boot.lds
+++ b/arch/microblaze/cpu/u-boot.lds
@@ -50,14 +50,6 @@ SECTIONS
 		__data_end = .;
 	}
 
-	.u_boot_cmd ALIGN(0x4):
-	{
-		. = .;
-		__u_boot_cmd_start = .;
-		*(.u_boot_cmd)
-		__u_boot_cmd_end = .;
-	}
-
 	. = ALIGN(4);
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/arch/nds32/cpu/n1213/u-boot.lds b/arch/nds32/cpu/n1213/u-boot.lds
index 62e357a..cef19c5 100644
--- a/arch/nds32/cpu/n1213/u-boot.lds
+++ b/arch/nds32/cpu/n1213/u-boot.lds
@@ -52,9 +52,6 @@ SECTIONS
 	}
 
 	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/nios2/cpu/u-boot.lds b/arch/nios2/cpu/u-boot.lds
index e24b769..d0eb80d 100644
--- a/arch/nios2/cpu/u-boot.lds
+++ b/arch/nios2/cpu/u-boot.lds
@@ -45,13 +45,6 @@ SECTIONS
 	 * the initialization code relocates the command table as
 	 * well -- admittedly, this is just pure laziness ;-)
 	 */
-	__u_boot_cmd_start = .;
-	.u_boot_cmd :
-	{
-	  *(.u_boot_cmd)
-	}
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/powerpc/cpu/74xx_7xx/u-boot.lds b/arch/powerpc/cpu/74xx_7xx/u-boot.lds
index 04484a5..ecee439 100644
--- a/arch/powerpc/cpu/74xx_7xx/u-boot.lds
+++ b/arch/powerpc/cpu/74xx_7xx/u-boot.lds
@@ -62,9 +62,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc512x/u-boot.lds b/arch/powerpc/cpu/mpc512x/u-boot.lds
index 656a062..7faefba 100644
--- a/arch/powerpc/cpu/mpc512x/u-boot.lds
+++ b/arch/powerpc/cpu/mpc512x/u-boot.lds
@@ -57,9 +57,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc5xx/u-boot.lds b/arch/powerpc/cpu/mpc5xx/u-boot.lds
index e04528d..c91e146 100644
--- a/arch/powerpc/cpu/mpc5xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc5xx/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds b/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
index acddf5f..ac7844d 100644
--- a/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
+++ b/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/arch/powerpc/cpu/mpc5xxx/u-boot.lds b/arch/powerpc/cpu/mpc5xxx/u-boot.lds
index 998221e..1f46ead 100644
--- a/arch/powerpc/cpu/mpc5xxx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc5xxx/u-boot.lds
@@ -60,9 +60,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc8220/u-boot.lds b/arch/powerpc/cpu/mpc8220/u-boot.lds
index 45d5e19..c147954 100644
--- a/arch/powerpc/cpu/mpc8220/u-boot.lds
+++ b/arch/powerpc/cpu/mpc8220/u-boot.lds
@@ -59,9 +59,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc824x/u-boot.lds b/arch/powerpc/cpu/mpc824x/u-boot.lds
index a80d91e..a713012 100644
--- a/arch/powerpc/cpu/mpc824x/u-boot.lds
+++ b/arch/powerpc/cpu/mpc824x/u-boot.lds
@@ -60,9 +60,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc8260/u-boot.lds b/arch/powerpc/cpu/mpc8260/u-boot.lds
index f33f648..42385fc 100644
--- a/arch/powerpc/cpu/mpc8260/u-boot.lds
+++ b/arch/powerpc/cpu/mpc8260/u-boot.lds
@@ -59,9 +59,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc83xx/u-boot.lds b/arch/powerpc/cpu/mpc83xx/u-boot.lds
index 45a9cf8..d699def 100644
--- a/arch/powerpc/cpu/mpc83xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc83xx/u-boot.lds
@@ -58,9 +58,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds b/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
index 29aabde..f7c4a22 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
@@ -70,9 +70,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot.lds b/arch/powerpc/cpu/mpc85xx/u-boot.lds
index 49fe44d..4a40a1f 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot.lds
@@ -77,9 +77,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc86xx/u-boot.lds b/arch/powerpc/cpu/mpc86xx/u-boot.lds
index 17371ac..8bfadf2 100644
--- a/arch/powerpc/cpu/mpc86xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc86xx/u-boot.lds
@@ -64,9 +64,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/ppc4xx/u-boot.lds b/arch/powerpc/cpu/ppc4xx/u-boot.lds
index 6df673e..a96ddd5 100644
--- a/arch/powerpc/cpu/ppc4xx/u-boot.lds
+++ b/arch/powerpc/cpu/ppc4xx/u-boot.lds
@@ -78,9 +78,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/sandbox/cpu/u-boot.lds b/arch/sandbox/cpu/u-boot.lds
index b7f25ab..1b781eb 100644
--- a/arch/sandbox/cpu/u-boot.lds
+++ b/arch/sandbox/cpu/u-boot.lds
@@ -24,9 +24,6 @@
 
 SECTIONS
 {
-	__u_boot_cmd_start = .;
-	_u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/sh/cpu/sh2/u-boot.lds b/arch/sh/cpu/sh2/u-boot.lds
index 3cd28f7..17f8091 100644
--- a/arch/sh/cpu/sh2/u-boot.lds
+++ b/arch/sh/cpu/sh2/u-boot.lds
@@ -72,13 +72,6 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
 
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/arch/sh/cpu/sh3/u-boot.lds b/arch/sh/cpu/sh3/u-boot.lds
index f0bad51..c831961 100644
--- a/arch/sh/cpu/sh3/u-boot.lds
+++ b/arch/sh/cpu/sh3/u-boot.lds
@@ -78,13 +78,6 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
 
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/arch/sh/cpu/sh4/u-boot.lds b/arch/sh/cpu/sh4/u-boot.lds
index d204304..0ecafcf 100644
--- a/arch/sh/cpu/sh4/u-boot.lds
+++ b/arch/sh/cpu/sh4/u-boot.lds
@@ -75,13 +75,6 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
 
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/arch/x86/cpu/u-boot.lds b/arch/x86/cpu/u-boot.lds
index 4bb2a2f..a1ecefa 100644
--- a/arch/x86/cpu/u-boot.lds
+++ b/arch/x86/cpu/u-boot.lds
@@ -33,10 +33,6 @@ SECTIONS
 	.text  : { *(.text*); }
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/BuS/eb_cpu5282/u-boot.lds b/board/BuS/eb_cpu5282/u-boot.lds
index a708d06..0c92d31 100644
--- a/board/BuS/eb_cpu5282/u-boot.lds
+++ b/board/BuS/eb_cpu5282/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/LEOX/elpt860/u-boot.lds b/board/LEOX/elpt860/u-boot.lds
index b04e56c..2bb876d 100644
--- a/board/LEOX/elpt860/u-boot.lds
+++ b/board/LEOX/elpt860/u-boot.lds
@@ -86,9 +86,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXClassic/u-boot.lds b/board/RPXClassic/u-boot.lds
index 9133469..18f962c 100644
--- a/board/RPXClassic/u-boot.lds
+++ b/board/RPXClassic/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXClassic/u-boot.lds.debug b/board/RPXClassic/u-boot.lds.debug
index 46f2f8f..dc8c4e9 100644
--- a/board/RPXClassic/u-boot.lds.debug
+++ b/board/RPXClassic/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXlite/u-boot.lds b/board/RPXlite/u-boot.lds
index 9133469..18f962c 100644
--- a/board/RPXlite/u-boot.lds
+++ b/board/RPXlite/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXlite/u-boot.lds.debug b/board/RPXlite/u-boot.lds.debug
index 46f2f8f..dc8c4e9 100644
--- a/board/RPXlite/u-boot.lds.debug
+++ b/board/RPXlite/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXlite_dw/u-boot.lds b/board/RPXlite_dw/u-boot.lds
index 9133469..18f962c 100644
--- a/board/RPXlite_dw/u-boot.lds
+++ b/board/RPXlite_dw/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXlite_dw/u-boot.lds.debug b/board/RPXlite_dw/u-boot.lds.debug
index 1b042f8..b43a1e4 100644
--- a/board/RPXlite_dw/u-boot.lds.debug
+++ b/board/RPXlite_dw/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RRvision/u-boot.lds b/board/RRvision/u-boot.lds
index 4613432..748e511 100644
--- a/board/RRvision/u-boot.lds
+++ b/board/RRvision/u-boot.lds
@@ -71,9 +71,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/actux1/u-boot.lds b/board/actux1/u-boot.lds
index a8971d0..66e1e76 100644
--- a/board/actux1/u-boot.lds
+++ b/board/actux1/u-boot.lds
@@ -54,11 +54,6 @@ SECTIONS
 		*(.got)
 	}
 	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/actux2/u-boot.lds b/board/actux2/u-boot.lds
index 7c0caf6..178518d 100644
--- a/board/actux2/u-boot.lds
+++ b/board/actux2/u-boot.lds
@@ -54,11 +54,6 @@ SECTIONS
 		*(.got)
 	}
 	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/actux3/u-boot.lds b/board/actux3/u-boot.lds
index 530073e..e28b264 100644
--- a/board/actux3/u-boot.lds
+++ b/board/actux3/u-boot.lds
@@ -54,11 +54,6 @@ SECTIONS
 		*(.got)
 	}
 	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/adder/u-boot.lds b/board/adder/u-boot.lds
index 05d6323..73e2f3f 100644
--- a/board/adder/u-boot.lds
+++ b/board/adder/u-boot.lds
@@ -62,9 +62,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/altera/nios2-generic/u-boot.lds b/board/altera/nios2-generic/u-boot.lds
index f087733..289386b 100644
--- a/board/altera/nios2-generic/u-boot.lds
+++ b/board/altera/nios2-generic/u-boot.lds
@@ -46,13 +46,6 @@ SECTIONS
 	 * the initialization code relocates the command table as
 	 * well -- admittedly, this is just pure laziness ;-)
 	 */
-	__u_boot_cmd_start = .;
-	.u_boot_cmd :
-	{
-	  *(.u_boot_cmd)
-	}
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/amcc/acadia/u-boot-nand.lds b/board/amcc/acadia/u-boot-nand.lds
index 9609338..beba978 100644
--- a/board/amcc/acadia/u-boot-nand.lds
+++ b/board/amcc/acadia/u-boot-nand.lds
@@ -72,9 +72,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/board/amcc/bamboo/u-boot-nand.lds b/board/amcc/bamboo/u-boot-nand.lds
index 4f4194e..2dd00d7 100644
--- a/board/amcc/bamboo/u-boot-nand.lds
+++ b/board/amcc/bamboo/u-boot-nand.lds
@@ -73,9 +73,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/board/amcc/canyonlands/u-boot-nand.lds b/board/amcc/canyonlands/u-boot-nand.lds
index 1876bae..8ac5116 100644
--- a/board/amcc/canyonlands/u-boot-nand.lds
+++ b/board/amcc/canyonlands/u-boot-nand.lds
@@ -73,9 +73,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/board/amcc/kilauea/u-boot-nand.lds b/board/amcc/kilauea/u-boot-nand.lds
index 9609338..beba978 100644
--- a/board/amcc/kilauea/u-boot-nand.lds
+++ b/board/amcc/kilauea/u-boot-nand.lds
@@ -72,9 +72,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/board/amcc/sequoia/u-boot-nand.lds b/board/amcc/sequoia/u-boot-nand.lds
index a0b98f4..18266ef 100644
--- a/board/amcc/sequoia/u-boot-nand.lds
+++ b/board/amcc/sequoia/u-boot-nand.lds
@@ -73,9 +73,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/board/amcc/sequoia/u-boot-ram.lds b/board/amcc/sequoia/u-boot-ram.lds
index 32a7661..6b02784 100644
--- a/board/amcc/sequoia/u-boot-ram.lds
+++ b/board/amcc/sequoia/u-boot-ram.lds
@@ -64,9 +64,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/board/astro/mcf5373l/u-boot.lds b/board/astro/mcf5373l/u-boot.lds
index e27c286..04a9066 100644
--- a/board/astro/mcf5373l/u-boot.lds
+++ b/board/astro/mcf5373l/u-boot.lds
@@ -109,9 +109,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/c2mon/u-boot.lds b/board/c2mon/u-boot.lds
index 0b92ef6..b854c18 100644
--- a/board/c2mon/u-boot.lds
+++ b/board/c2mon/u-boot.lds
@@ -74,9 +74,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/c2mon/u-boot.lds.debug b/board/c2mon/u-boot.lds.debug
index c28e2b9..92796e6 100644
--- a/board/c2mon/u-boot.lds.debug
+++ b/board/c2mon/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/cobra5272/u-boot.lds b/board/cobra5272/u-boot.lds
index 77b8e80..d054f20 100644
--- a/board/cobra5272/u-boot.lds
+++ b/board/cobra5272/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/cogent/u-boot.lds b/board/cogent/u-boot.lds
index f7137bd..2a6027f 100644
--- a/board/cogent/u-boot.lds
+++ b/board/cogent/u-boot.lds
@@ -70,9 +70,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/cogent/u-boot.lds.debug b/board/cogent/u-boot.lds.debug
index 46f2f8f..dc8c4e9 100644
--- a/board/cogent/u-boot.lds.debug
+++ b/board/cogent/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/cray/L1/u-boot.lds.debug b/board/cray/L1/u-boot.lds.debug
index 15cccee..d7a2e56 100644
--- a/board/cray/L1/u-boot.lds.debug
+++ b/board/cray/L1/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/dave/PPChameleonEVB/u-boot.lds b/board/dave/PPChameleonEVB/u-boot.lds
index 184c6fc..8a306d6 100644
--- a/board/dave/PPChameleonEVB/u-boot.lds
+++ b/board/dave/PPChameleonEVB/u-boot.lds
@@ -74,9 +74,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/dbau1x00/u-boot.lds b/board/dbau1x00/u-boot.lds
index 6992c0f..8a871cf 100644
--- a/board/dbau1x00/u-boot.lds
+++ b/board/dbau1x00/u-boot.lds
@@ -54,12 +54,6 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-	}
-
 	. = ALIGN(4);
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/board/dvlhost/u-boot.lds b/board/dvlhost/u-boot.lds
index 5171630..1bd1700 100644
--- a/board/dvlhost/u-boot.lds
+++ b/board/dvlhost/u-boot.lds
@@ -54,11 +54,6 @@ SECTIONS
 		*(.got)
 	}
 	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/eltec/mhpc/u-boot.lds b/board/eltec/mhpc/u-boot.lds
index 25b8839..c8d3894 100644
--- a/board/eltec/mhpc/u-boot.lds
+++ b/board/eltec/mhpc/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/eltec/mhpc/u-boot.lds.debug b/board/eltec/mhpc/u-boot.lds.debug
index c28e2b9..92796e6 100644
--- a/board/eltec/mhpc/u-boot.lds.debug
+++ b/board/eltec/mhpc/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/emk/top860/u-boot.lds b/board/emk/top860/u-boot.lds
index 485c68d..22626d3 100644
--- a/board/emk/top860/u-boot.lds
+++ b/board/emk/top860/u-boot.lds
@@ -67,9 +67,6 @@ SECTIONS
 
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/ep88x/u-boot.lds b/board/ep88x/u-boot.lds
index 067fd5f..1dcc22a 100644
--- a/board/ep88x/u-boot.lds
+++ b/board/ep88x/u-boot.lds
@@ -62,9 +62,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/esd/dasa_sim/u-boot.lds b/board/esd/dasa_sim/u-boot.lds
index 607e601..7eca183 100644
--- a/board/esd/dasa_sim/u-boot.lds
+++ b/board/esd/dasa_sim/u-boot.lds
@@ -73,9 +73,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/esd/pmc440/u-boot-nand.lds b/board/esd/pmc440/u-boot-nand.lds
index 38f5cc6..ca7df45 100644
--- a/board/esd/pmc440/u-boot-nand.lds
+++ b/board/esd/pmc440/u-boot-nand.lds
@@ -102,9 +102,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 		#include <u-boot.lst>
diff --git a/board/esd/tasreg/u-boot.lds b/board/esd/tasreg/u-boot.lds
index 158828c..0d6a0f3 100644
--- a/board/esd/tasreg/u-boot.lds
+++ b/board/esd/tasreg/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/esteem192e/u-boot.lds b/board/esteem192e/u-boot.lds
index 3eaaad8..69f1500 100644
--- a/board/esteem192e/u-boot.lds
+++ b/board/esteem192e/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/etx094/u-boot.lds b/board/etx094/u-boot.lds
index df9b44a..56c3470 100644
--- a/board/etx094/u-boot.lds
+++ b/board/etx094/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/evb64260/u-boot.lds b/board/evb64260/u-boot.lds
index 05461ca..eac9c07 100644
--- a/board/evb64260/u-boot.lds
+++ b/board/evb64260/u-boot.lds
@@ -70,9 +70,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/fads/u-boot.lds b/board/fads/u-boot.lds
index 4a41db8..6022dbc 100644
--- a/board/fads/u-boot.lds
+++ b/board/fads/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/flagadm/u-boot.lds b/board/flagadm/u-boot.lds
index 25b8839..c8d3894 100644
--- a/board/flagadm/u-boot.lds
+++ b/board/flagadm/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/flagadm/u-boot.lds.debug b/board/flagadm/u-boot.lds.debug
index c28e2b9..92796e6 100644
--- a/board/flagadm/u-boot.lds.debug
+++ b/board/flagadm/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5208evbe/u-boot.lds b/board/freescale/m5208evbe/u-boot.lds
index b1d2d01..2c151f2 100644
--- a/board/freescale/m5208evbe/u-boot.lds
+++ b/board/freescale/m5208evbe/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m52277evb/u-boot.lds b/board/freescale/m52277evb/u-boot.lds
index 0a7ca55..dbd6f6a 100644
--- a/board/freescale/m52277evb/u-boot.lds
+++ b/board/freescale/m52277evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5235evb/u-boot.lds b/board/freescale/m5235evb/u-boot.lds
index a4a62ac..00932ae 100644
--- a/board/freescale/m5235evb/u-boot.lds
+++ b/board/freescale/m5235evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5249evb/u-boot.lds b/board/freescale/m5249evb/u-boot.lds
index 77b8e80..d054f20 100644
--- a/board/freescale/m5249evb/u-boot.lds
+++ b/board/freescale/m5249evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5253demo/u-boot.lds b/board/freescale/m5253demo/u-boot.lds
index 1dd5539..f8116f6 100644
--- a/board/freescale/m5253demo/u-boot.lds
+++ b/board/freescale/m5253demo/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5253evbe/u-boot.lds b/board/freescale/m5253evbe/u-boot.lds
index 77b8e80..d054f20 100644
--- a/board/freescale/m5253evbe/u-boot.lds
+++ b/board/freescale/m5253evbe/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5271evb/u-boot.lds b/board/freescale/m5271evb/u-boot.lds
index ecad667..133ec01 100644
--- a/board/freescale/m5271evb/u-boot.lds
+++ b/board/freescale/m5271evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5272c3/u-boot.lds b/board/freescale/m5272c3/u-boot.lds
index 77b8e80..d054f20 100644
--- a/board/freescale/m5272c3/u-boot.lds
+++ b/board/freescale/m5272c3/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5275evb/u-boot.lds b/board/freescale/m5275evb/u-boot.lds
index 60c0501..fc68de1 100644
--- a/board/freescale/m5275evb/u-boot.lds
+++ b/board/freescale/m5275evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5282evb/u-boot.lds b/board/freescale/m5282evb/u-boot.lds
index a708d06..0c92d31 100644
--- a/board/freescale/m5282evb/u-boot.lds
+++ b/board/freescale/m5282evb/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m53017evb/u-boot.lds b/board/freescale/m53017evb/u-boot.lds
index 81da237..d25a36f 100644
--- a/board/freescale/m53017evb/u-boot.lds
+++ b/board/freescale/m53017evb/u-boot.lds
@@ -71,9 +71,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5329evb/u-boot.lds b/board/freescale/m5329evb/u-boot.lds
index c575522..6616594 100644
--- a/board/freescale/m5329evb/u-boot.lds
+++ b/board/freescale/m5329evb/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5373evb/u-boot.lds b/board/freescale/m5373evb/u-boot.lds
index 5d2c655..bc40fd6 100644
--- a/board/freescale/m5373evb/u-boot.lds
+++ b/board/freescale/m5373evb/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m54451evb/u-boot.lds b/board/freescale/m54451evb/u-boot.lds
index 76ead53..91328a4 100644
--- a/board/freescale/m54451evb/u-boot.lds
+++ b/board/freescale/m54451evb/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m54455evb/u-boot.lds b/board/freescale/m54455evb/u-boot.lds
index 0d2cb02..36a4c26 100644
--- a/board/freescale/m54455evb/u-boot.lds
+++ b/board/freescale/m54455evb/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m547xevb/u-boot.lds b/board/freescale/m547xevb/u-boot.lds
index 11fa8bc..de4d0eb 100644
--- a/board/freescale/m547xevb/u-boot.lds
+++ b/board/freescale/m547xevb/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m548xevb/u-boot.lds b/board/freescale/m548xevb/u-boot.lds
index 0c8ffd4..fbbe0c5 100644
--- a/board/freescale/m548xevb/u-boot.lds
+++ b/board/freescale/m548xevb/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/mx31ads/u-boot.lds b/board/freescale/mx31ads/u-boot.lds
index e59fd18..29ad0e6 100644
--- a/board/freescale/mx31ads/u-boot.lds
+++ b/board/freescale/mx31ads/u-boot.lds
@@ -57,9 +57,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/gr_cpci_ax2000/u-boot.lds b/board/gaisler/gr_cpci_ax2000/u-boot.lds
index ec72718..774c494 100644
--- a/board/gaisler/gr_cpci_ax2000/u-boot.lds
+++ b/board/gaisler/gr_cpci_ax2000/u-boot.lds
@@ -85,10 +85,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/gr_ep2s60/u-boot.lds b/board/gaisler/gr_ep2s60/u-boot.lds
index 5a38796..f6d1301 100644
--- a/board/gaisler/gr_ep2s60/u-boot.lds
+++ b/board/gaisler/gr_ep2s60/u-boot.lds
@@ -85,10 +85,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/gr_xc3s_1500/u-boot.lds b/board/gaisler/gr_xc3s_1500/u-boot.lds
index 3da021c..7df6e83 100644
--- a/board/gaisler/gr_xc3s_1500/u-boot.lds
+++ b/board/gaisler/gr_xc3s_1500/u-boot.lds
@@ -85,10 +85,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/grsim/u-boot.lds b/board/gaisler/grsim/u-boot.lds
index eba1015..b241cbc 100644
--- a/board/gaisler/grsim/u-boot.lds
+++ b/board/gaisler/grsim/u-boot.lds
@@ -84,10 +84,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/grsim_leon2/u-boot.lds b/board/gaisler/grsim_leon2/u-boot.lds
index 4f90a46..63c15b9 100644
--- a/board/gaisler/grsim_leon2/u-boot.lds
+++ b/board/gaisler/grsim_leon2/u-boot.lds
@@ -84,10 +84,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gen860t/u-boot-flashenv.lds b/board/gen860t/u-boot-flashenv.lds
index 8e04b11..1cbe7e3 100644
--- a/board/gen860t/u-boot-flashenv.lds
+++ b/board/gen860t/u-boot-flashenv.lds
@@ -71,9 +71,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 		#include <u-boot.lst>
diff --git a/board/gen860t/u-boot.lds b/board/gen860t/u-boot.lds
index c8602be..dd89c70 100644
--- a/board/gen860t/u-boot.lds
+++ b/board/gen860t/u-boot.lds
@@ -71,9 +71,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/genietv/u-boot.lds b/board/genietv/u-boot.lds
index 961222b..124b183 100644
--- a/board/genietv/u-boot.lds
+++ b/board/genietv/u-boot.lds
@@ -80,9 +80,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/genietv/u-boot.lds.debug b/board/genietv/u-boot.lds.debug
index a3479ba..e1cf249 100644
--- a/board/genietv/u-boot.lds.debug
+++ b/board/genietv/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/hermes/u-boot.lds b/board/hermes/u-boot.lds
index 9fe2f58..f02eb1c 100644
--- a/board/hermes/u-boot.lds
+++ b/board/hermes/u-boot.lds
@@ -72,9 +72,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/hermes/u-boot.lds.debug b/board/hermes/u-boot.lds.debug
index 6a53d8a..e84cc79 100644
--- a/board/hermes/u-boot.lds.debug
+++ b/board/hermes/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/hymod/u-boot.lds b/board/hymod/u-boot.lds
index 50e4788..7afae0a 100644
--- a/board/hymod/u-boot.lds
+++ b/board/hymod/u-boot.lds
@@ -110,9 +110,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/hymod/u-boot.lds.debug b/board/hymod/u-boot.lds.debug
index 46f2f8f..dc8c4e9 100644
--- a/board/hymod/u-boot.lds.debug
+++ b/board/hymod/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/icu862/u-boot.lds b/board/icu862/u-boot.lds
index f476967..6778eb1 100644
--- a/board/icu862/u-boot.lds
+++ b/board/icu862/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/icu862/u-boot.lds.debug b/board/icu862/u-boot.lds.debug
index 87ec870..3e075a8 100644
--- a/board/icu862/u-boot.lds.debug
+++ b/board/icu862/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/idmr/u-boot.lds b/board/idmr/u-boot.lds
index 158828c..0d6a0f3 100644
--- a/board/idmr/u-boot.lds
+++ b/board/idmr/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/incaip/u-boot.lds b/board/incaip/u-boot.lds
index 6992c0f..8a871cf 100644
--- a/board/incaip/u-boot.lds
+++ b/board/incaip/u-boot.lds
@@ -54,12 +54,6 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-	}
-
 	. = ALIGN(4);
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/board/ip860/u-boot.lds b/board/ip860/u-boot.lds
index 9133469..18f962c 100644
--- a/board/ip860/u-boot.lds
+++ b/board/ip860/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/ip860/u-boot.lds.debug b/board/ip860/u-boot.lds.debug
index 79e4f2d..e47aff0 100644
--- a/board/ip860/u-boot.lds.debug
+++ b/board/ip860/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/ivm/u-boot.lds b/board/ivm/u-boot.lds
index 7e63cd7..4cca652 100644
--- a/board/ivm/u-boot.lds
+++ b/board/ivm/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/ivm/u-boot.lds.debug b/board/ivm/u-boot.lds.debug
index ff4581f..53a19b2 100644
--- a/board/ivm/u-boot.lds.debug
+++ b/board/ivm/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/korat/u-boot-F7FC.lds b/board/korat/u-boot-F7FC.lds
index f91310a..033cff4 100644
--- a/board/korat/u-boot-F7FC.lds
+++ b/board/korat/u-boot-F7FC.lds
@@ -108,9 +108,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/board/kup/kup4k/u-boot.lds b/board/kup/kup4k/u-boot.lds
index 9133469..18f962c 100644
--- a/board/kup/kup4k/u-boot.lds
+++ b/board/kup/kup4k/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/kup/kup4k/u-boot.lds.debug b/board/kup/kup4k/u-boot.lds.debug
index 1b042f8..b43a1e4 100644
--- a/board/kup/kup4k/u-boot.lds.debug
+++ b/board/kup/kup4k/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/kup/kup4x/u-boot.lds b/board/kup/kup4x/u-boot.lds
index 9133469..18f962c 100644
--- a/board/kup/kup4x/u-boot.lds
+++ b/board/kup/kup4x/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/kup/kup4x/u-boot.lds.debug b/board/kup/kup4x/u-boot.lds.debug
index 1b042f8..b43a1e4 100644
--- a/board/kup/kup4x/u-boot.lds.debug
+++ b/board/kup/kup4x/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/lantec/u-boot.lds b/board/lantec/u-boot.lds
index e57a794..9411802 100644
--- a/board/lantec/u-boot.lds
+++ b/board/lantec/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/lantec/u-boot.lds.debug b/board/lantec/u-boot.lds.debug
index 29148ee..e788f5c 100644
--- a/board/lantec/u-boot.lds.debug
+++ b/board/lantec/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/lwmon/u-boot.lds b/board/lwmon/u-boot.lds
index 78445b3..bc71b0d 100644
--- a/board/lwmon/u-boot.lds
+++ b/board/lwmon/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/lwmon/u-boot.lds.debug b/board/lwmon/u-boot.lds.debug
index 8fcdb90..0a3e646 100644
--- a/board/lwmon/u-boot.lds.debug
+++ b/board/lwmon/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/manroland/uc100/u-boot.lds b/board/manroland/uc100/u-boot.lds
index aa289cd..e32ae37 100644
--- a/board/manroland/uc100/u-boot.lds
+++ b/board/manroland/uc100/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/matrix_vision/mvsmr/u-boot.lds b/board/matrix_vision/mvsmr/u-boot.lds
index 5222ebd..5a3a9ea 100644
--- a/board/matrix_vision/mvsmr/u-boot.lds
+++ b/board/matrix_vision/mvsmr/u-boot.lds
@@ -74,9 +74,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/mbx8xx/u-boot.lds b/board/mbx8xx/u-boot.lds
index 9133469..18f962c 100644
--- a/board/mbx8xx/u-boot.lds
+++ b/board/mbx8xx/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/mbx8xx/u-boot.lds.debug b/board/mbx8xx/u-boot.lds.debug
index 722a405..4155b60 100644
--- a/board/mbx8xx/u-boot.lds.debug
+++ b/board/mbx8xx/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/micronas/vct/u-boot.lds b/board/micronas/vct/u-boot.lds
index 114ce10..2ce8d0e 100644
--- a/board/micronas/vct/u-boot.lds
+++ b/board/micronas/vct/u-boot.lds
@@ -53,13 +53,6 @@ SECTIONS
 	.sdata  : { *(.sdata*) }
 
 	. = ALIGN(4);
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-	}
-
-	. = ALIGN(4);
 	.u_boot_list : {
 		#include <u-boot.lst>
 	}
diff --git a/board/mousse/u-boot.lds b/board/mousse/u-boot.lds
index aff4269..43f91f1 100644
--- a/board/mousse/u-boot.lds
+++ b/board/mousse/u-boot.lds
@@ -60,9 +60,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/mousse/u-boot.lds.ram b/board/mousse/u-boot.lds.ram
index b3364be..5255651 100644
--- a/board/mousse/u-boot.lds.ram
+++ b/board/mousse/u-boot.lds.ram
@@ -85,9 +85,6 @@ SECTIONS
   } > ram
   */
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
    __start___ex_table = .;
     __ex_table : { *(__ex_table) } > ram
diff --git a/board/mousse/u-boot.lds.rom b/board/mousse/u-boot.lds.rom
index b4b9e02..29a34fb 100644
--- a/board/mousse/u-boot.lds.rom
+++ b/board/mousse/u-boot.lds.rom
@@ -102,9 +102,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/mpl/pip405/u-boot.lds.debug b/board/mpl/pip405/u-boot.lds.debug
index 15cccee..d7a2e56 100644
--- a/board/mpl/pip405/u-boot.lds.debug
+++ b/board/mpl/pip405/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/mvblue/u-boot.lds b/board/mvblue/u-boot.lds
index dc5747c..c378564 100644
--- a/board/mvblue/u-boot.lds
+++ b/board/mvblue/u-boot.lds
@@ -70,9 +70,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netphone/u-boot.lds b/board/netphone/u-boot.lds
index ae48cba..cdc1fda 100644
--- a/board/netphone/u-boot.lds
+++ b/board/netphone/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netphone/u-boot.lds.debug b/board/netphone/u-boot.lds.debug
index ffebab5..900da64 100644
--- a/board/netphone/u-boot.lds.debug
+++ b/board/netphone/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netta/u-boot.lds b/board/netta/u-boot.lds
index ae48cba..cdc1fda 100644
--- a/board/netta/u-boot.lds
+++ b/board/netta/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netta/u-boot.lds.debug b/board/netta/u-boot.lds.debug
index ffebab5..900da64 100644
--- a/board/netta/u-boot.lds.debug
+++ b/board/netta/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netta2/u-boot.lds b/board/netta2/u-boot.lds
index ae48cba..cdc1fda 100644
--- a/board/netta2/u-boot.lds
+++ b/board/netta2/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netta2/u-boot.lds.debug b/board/netta2/u-boot.lds.debug
index ffebab5..900da64 100644
--- a/board/netta2/u-boot.lds.debug
+++ b/board/netta2/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netvia/u-boot.lds b/board/netvia/u-boot.lds
index ae48cba..cdc1fda 100644
--- a/board/netvia/u-boot.lds
+++ b/board/netvia/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netvia/u-boot.lds.debug b/board/netvia/u-boot.lds.debug
index b37ea7b..6cbf4dc 100644
--- a/board/netvia/u-boot.lds.debug
+++ b/board/netvia/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/nx823/u-boot.lds b/board/nx823/u-boot.lds
index 25b8839..c8d3894 100644
--- a/board/nx823/u-boot.lds
+++ b/board/nx823/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/nx823/u-boot.lds.debug b/board/nx823/u-boot.lds.debug
index c28e2b9..92796e6 100644
--- a/board/nx823/u-boot.lds.debug
+++ b/board/nx823/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/openrisc/openrisc-generic/u-boot.lds b/board/openrisc/openrisc-generic/u-boot.lds
index 5995464..4cffacb 100644
--- a/board/openrisc/openrisc-generic/u-boot.lds
+++ b/board/openrisc/openrisc-generic/u-boot.lds
@@ -26,9 +26,6 @@ SECTIONS
 		_endtext = .;
 	}  > ram
 
-	 __u_boot_cmd_start = .;
-	 .u_boot_cmd : { *(.u_boot_cmd) } > ram
-	 __u_boot_cmd_end = .;
 
 	 . = ALIGN(4);
 	 .u_boot_list : {
diff --git a/board/pb1x00/u-boot.lds b/board/pb1x00/u-boot.lds
index 41b001c..07ddd36 100644
--- a/board/pb1x00/u-boot.lds
+++ b/board/pb1x00/u-boot.lds
@@ -54,12 +54,6 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-	}
-
 	. = ALIGN(4);
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/board/qemu-mips/u-boot.lds b/board/qemu-mips/u-boot.lds
index 4515043..f65a1e8 100644
--- a/board/qemu-mips/u-boot.lds
+++ b/board/qemu-mips/u-boot.lds
@@ -55,13 +55,6 @@ SECTIONS
 	. = ALIGN(4);
 	.sdata  : { *(.sdata*) }
 
-	. = .;
-	.u_boot_cmd : {
-	__u_boot_cmd_start = .;
-	*(.u_boot_cmd)
-	__u_boot_cmd_end = .;
-	}
-
 	. = ALIGN(4);
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/board/qi/qi_lb60/u-boot.lds b/board/qi/qi_lb60/u-boot.lds
index 4a373ec..b3cb869 100644
--- a/board/qi/qi_lb60/u-boot.lds
+++ b/board/qi/qi_lb60/u-boot.lds
@@ -47,9 +47,6 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/quantum/u-boot.lds b/board/quantum/u-boot.lds
index 9133469..18f962c 100644
--- a/board/quantum/u-boot.lds
+++ b/board/quantum/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/r360mpi/u-boot.lds b/board/r360mpi/u-boot.lds
index 3138154..3ef0d9e 100644
--- a/board/r360mpi/u-boot.lds
+++ b/board/r360mpi/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/rbc823/u-boot.lds b/board/rbc823/u-boot.lds
index 5e3d78f..a86b568 100644
--- a/board/rbc823/u-boot.lds
+++ b/board/rbc823/u-boot.lds
@@ -77,9 +77,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/renesas/sh7757lcr/u-boot.lds b/board/renesas/sh7757lcr/u-boot.lds
index b2cf392..cf406ce 100644
--- a/board/renesas/sh7757lcr/u-boot.lds
+++ b/board/renesas/sh7757lcr/u-boot.lds
@@ -77,13 +77,6 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
 
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/board/rsdproto/u-boot.lds b/board/rsdproto/u-boot.lds
index d43663c..ff95029 100644
--- a/board/rsdproto/u-boot.lds
+++ b/board/rsdproto/u-boot.lds
@@ -97,9 +97,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/samsung/smdk6400/u-boot-nand.lds b/board/samsung/smdk6400/u-boot-nand.lds
index 50924fc..fbb442a 100644
--- a/board/samsung/smdk6400/u-boot-nand.lds
+++ b/board/samsung/smdk6400/u-boot-nand.lds
@@ -47,9 +47,6 @@ SECTIONS
 	. = ALIGN(4);
 	.got : { *(.got) }
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = align(4);
 	.u_boot_list : {
diff --git a/board/sandburst/karef/u-boot.lds.debug b/board/sandburst/karef/u-boot.lds.debug
index c3a72cb..7a0757f 100644
--- a/board/sandburst/karef/u-boot.lds.debug
+++ b/board/sandburst/karef/u-boot.lds.debug
@@ -115,9 +115,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/sandburst/metrobox/u-boot.lds.debug b/board/sandburst/metrobox/u-boot.lds.debug
index bb73307..07bd6fe 100644
--- a/board/sandburst/metrobox/u-boot.lds.debug
+++ b/board/sandburst/metrobox/u-boot.lds.debug
@@ -115,9 +115,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/sandpoint/u-boot.lds b/board/sandpoint/u-boot.lds
index a9c06ad..ae3afa1 100644
--- a/board/sandpoint/u-boot.lds
+++ b/board/sandpoint/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/siemens/IAD210/u-boot.lds b/board/siemens/IAD210/u-boot.lds
index 4214ace..c0f1073 100644
--- a/board/siemens/IAD210/u-boot.lds
+++ b/board/siemens/IAD210/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/sixnet/u-boot.lds b/board/sixnet/u-boot.lds
index 0a71707..6cf7a01 100644
--- a/board/sixnet/u-boot.lds
+++ b/board/sixnet/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/snmc/qs850/u-boot.lds b/board/snmc/qs850/u-boot.lds
index eca88e5..f57f8a0 100644
--- a/board/snmc/qs850/u-boot.lds
+++ b/board/snmc/qs850/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/snmc/qs860t/u-boot.lds b/board/snmc/qs860t/u-boot.lds
index 9133469..18f962c 100644
--- a/board/snmc/qs860t/u-boot.lds
+++ b/board/snmc/qs860t/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/spc1920/u-boot.lds b/board/spc1920/u-boot.lds
index 9133469..18f962c 100644
--- a/board/spc1920/u-boot.lds
+++ b/board/spc1920/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/spd8xx/u-boot.lds b/board/spd8xx/u-boot.lds
index a233817..f69e39d 100644
--- a/board/spd8xx/u-boot.lds
+++ b/board/spd8xx/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/spd8xx/u-boot.lds.debug b/board/spd8xx/u-boot.lds.debug
index 722a405..4155b60 100644
--- a/board/spd8xx/u-boot.lds.debug
+++ b/board/spd8xx/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/stx/stxxtc/u-boot.lds b/board/stx/stxxtc/u-boot.lds
index ae48cba..cdc1fda 100644
--- a/board/stx/stxxtc/u-boot.lds
+++ b/board/stx/stxxtc/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/stx/stxxtc/u-boot.lds.debug b/board/stx/stxxtc/u-boot.lds.debug
index ffebab5..900da64 100644
--- a/board/stx/stxxtc/u-boot.lds.debug
+++ b/board/stx/stxxtc/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/svm_sc8xx/u-boot.lds b/board/svm_sc8xx/u-boot.lds
index 4cdad4b..1635875 100644
--- a/board/svm_sc8xx/u-boot.lds
+++ b/board/svm_sc8xx/u-boot.lds
@@ -83,9 +83,6 @@ SECTIONS
 
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/tqc/tqm8xx/u-boot.lds b/board/tqc/tqm8xx/u-boot.lds
index ea2fc44..7cc41cd 100644
--- a/board/tqc/tqm8xx/u-boot.lds
+++ b/board/tqc/tqm8xx/u-boot.lds
@@ -81,9 +81,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/v37/u-boot.lds b/board/v37/u-boot.lds
index c82b1b3..fd2d72e 100644
--- a/board/v37/u-boot.lds
+++ b/board/v37/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/w7o/u-boot.lds.debug b/board/w7o/u-boot.lds.debug
index 4d64088..2ce5a9a 100644
--- a/board/w7o/u-boot.lds.debug
+++ b/board/w7o/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/westel/amx860/u-boot.lds b/board/westel/amx860/u-boot.lds
index 6074736..9b69d3d 100644
--- a/board/westel/amx860/u-boot.lds
+++ b/board/westel/amx860/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/westel/amx860/u-boot.lds.debug b/board/westel/amx860/u-boot.lds.debug
index 87ec870..3e075a8 100644
--- a/board/westel/amx860/u-boot.lds.debug
+++ b/board/westel/amx860/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/xes/xpedite1000/u-boot.lds.debug b/board/xes/xpedite1000/u-boot.lds.debug
index 5296165..c4e5706 100644
--- a/board/xes/xpedite1000/u-boot.lds.debug
+++ b/board/xes/xpedite1000/u-boot.lds.debug
@@ -111,9 +111,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/include/command.h b/include/command.h
index 24864d5..10bc260 100644
--- a/include/command.h
+++ b/include/command.h
@@ -62,8 +62,6 @@ struct cmd_tbl_s {
 
 typedef struct cmd_tbl_s	cmd_tbl_t;
 
-extern cmd_tbl_t  __u_boot_cmd_start;
-extern cmd_tbl_t  __u_boot_cmd_end;
 
 #if defined(CONFIG_CMD_RUN)
 extern int do_run(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]);
diff --git a/nand_spl/board/freescale/mx31pdk/u-boot.lds b/nand_spl/board/freescale/mx31pdk/u-boot.lds
index b2a0f7c..da49c10 100644
--- a/nand_spl/board/freescale/mx31pdk/u-boot.lds
+++ b/nand_spl/board/freescale/mx31pdk/u-boot.lds
@@ -46,9 +46,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/nand_spl/board/karo/tx25/u-boot.lds b/nand_spl/board/karo/tx25/u-boot.lds
index 24a3c0c..ee36131 100644
--- a/nand_spl/board/karo/tx25/u-boot.lds
+++ b/nand_spl/board/karo/tx25/u-boot.lds
@@ -46,9 +46,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/nand_spl/board/samsung/smdk6400/u-boot.lds b/nand_spl/board/samsung/smdk6400/u-boot.lds
index 8481062..2ed6466 100644
--- a/nand_spl/board/samsung/smdk6400/u-boot.lds
+++ b/nand_spl/board/samsung/smdk6400/u-boot.lds
@@ -50,9 +50,6 @@ SECTIONS
 	. = ALIGN(4);
 	.got : { *(.got) }
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 6/6 V3] kerneldoc: tmpl: Implement template for LG-arrays
  2012-10-12 20:27   ` [U-Boot] [PATCH 0/6 V3] Linker-generated arrays (take 2) Marek Vasut
                       ` (4 preceding siblings ...)
  2012-10-12 20:27     ` [U-Boot] [PATCH 5/6 V3] common: Discard the __u_boot_cmd section Marek Vasut
@ 2012-10-12 20:27     ` Marek Vasut
  5 siblings, 0 replies; 48+ messages in thread
From: Marek Vasut @ 2012-10-12 20:27 UTC (permalink / raw)
  To: u-boot

Implement kerneldoc template for linker-generated arrays. This is
the first template in U-Boot that is used to generate kerneldoc
style documentation. This template is very basic.

Signed-off-by: Marek Vasut <marex@denx.de>
---
 doc/DocBook/Makefile          |    2 +-
 doc/DocBook/linker_lists.tmpl |   46 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 47 insertions(+), 1 deletion(-)
 create mode 100644 doc/DocBook/linker_lists.tmpl

V2:
- Rebase on top of testing/dm-kerneldoc
V3:
- Rebase on top of u-boot/next

diff --git a/doc/DocBook/Makefile b/doc/DocBook/Makefile
index 2f2ddfc..5f13d3d 100644
--- a/doc/DocBook/Makefile
+++ b/doc/DocBook/Makefile
@@ -8,7 +8,7 @@
 
 include $(TOPDIR)/config.mk
 
-DOCBOOKS :=
+DOCBOOKS := linker_lists.xml
 
 ###
 # The build process is as follows (targets):
diff --git a/doc/DocBook/linker_lists.tmpl b/doc/DocBook/linker_lists.tmpl
new file mode 100644
index 0000000..a47377f
--- /dev/null
+++ b/doc/DocBook/linker_lists.tmpl
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
+	"http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" []>
+
+<book id="UBootLGArrays">
+ <bookinfo>
+  <title>The U-Boot Linker-Generated Arrays</title>
+  
+  <legalnotice>
+   <para>
+     This documentation 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.
+   </para>
+      
+   <para>
+     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.
+   </para>
+      
+   <para>
+     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
+   </para>
+      
+   <para>
+     For more details see the file COPYING in the source
+     distribution of U-Boot Bootloader.
+   </para>
+  </legalnotice>
+ </bookinfo>
+
+<toc></toc>
+
+  <chapter id="adt">
+     <title>Linker-Generated Arrays</title>
+!Iinclude/linker_lists.h
+  </chapter>
+
+</book>
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 1/6 V3] common: Add symbol handling for generic lists into Makefile
  2012-10-12 20:27     ` [U-Boot] [PATCH 1/6 V3] common: Add symbol handling for generic lists into Makefile Marek Vasut
@ 2012-10-14 23:28       ` Daniel Schwierzeck
  2012-10-15  1:49         ` Marek Vasut
  2012-10-17 10:43       ` [U-Boot] [PATCH 1/6 V4] " Marek Vasut
  1 sibling, 1 reply; 48+ messages in thread
From: Daniel Schwierzeck @ 2012-10-14 23:28 UTC (permalink / raw)
  To: u-boot

2012/10/12 Marek Vasut <marex@denx.de>:
> This patch adds essential components for generation of the contents of
> the linker section that is used by the linker-generated array. All of
> the contents is held in a separate file, u-boot.lst, which is generated
> at runtime just before U-Boot is linked.
>
> The purpose of this code is to especially generate the appropriate
> boundary symbols around each subsection in the section carrying the
> linker-generated arrays. Obviously, the interim linker code for actual
> placement of the variables into the section is generated too. The
> generated file, u-boot.lst, is included into u-boot.lds via the linker
> INCLUDE directive in u-boot.lds .
>
> Adjustments are made in the Makefile and spl/Makefile so that the
> u-boot.lds and u-boot-spl.lds depend on their respective .lst files.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Joe Hershberger <joe.hershberger@gmail.com>
> Cc: Mike Frysinger <vapier@gentoo.org>
>
> Cover-letter:
> Linker-generated arrays (take 2)
>
> This is a second stab at the linker-generated array. Basically, this
> concept is a generic abstraction of how u_boot_cmd works today. The
> patch 2/4 contains a huge pile of documentation which should clarify
> most of the questions.
>
> I don't see size growth, I see size fluctiation in the order of tens
> of bytes with these patches applied. Subsequent patch added to this
> series removes the __u_boot_cmd section completely.
> ---
>  .gitignore                                     |    1 +
>  Makefile                                       |   19 ++++---
>  config.mk                                      |    2 +
>  helper.mk                                      |   64 ++++++++++++++++++++++++
>  nand_spl/board/freescale/mpc8536ds/Makefile    |    9 +++-
>  nand_spl/board/freescale/mpc8569mds/Makefile   |    9 +++-
>  nand_spl/board/freescale/mpc8572ds/Makefile    |    9 +++-
>  nand_spl/board/freescale/mx31pdk/Makefile      |    9 +++-
>  nand_spl/board/freescale/p1010rdb/Makefile     |    9 +++-
>  nand_spl/board/freescale/p1023rds/Makefile     |    9 +++-
>  nand_spl/board/freescale/p1_p2_rdb/Makefile    |    9 +++-
>  nand_spl/board/freescale/p1_p2_rdb_pc/Makefile |    9 +++-
>  nand_spl/board/karo/tx25/Makefile              |    9 +++-
>  spl/.gitignore                                 |    1 +
>  spl/Makefile                                   |    8 ++-
>  15 files changed, 150 insertions(+), 26 deletions(-)
>  create mode 100644 helper.mk
>
> V2:
> - Rebase on top of testing/dm-kerneldoc
> - Fix INCLUDE u-boot.lds in linker scripts. It didn't work with older LD,
>   use #include instead and make use of CPP.
> - Fix placement of u-boot.lds for NAND SPL
> V3:
> - Rebase on top of u-boot/next
> - Put u-boot.lst into include/ , so the CPP finds it easily.
>
> diff --git a/.gitignore b/.gitignore
> index d91e91b..1ac43f2 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -38,6 +38,7 @@
>  /u-boot.sha1
>  /u-boot.dis
>  /u-boot.lds
> +/u-boot.lst
>  /u-boot.ubl
>  /u-boot.ais
>  /u-boot.dtb
> diff --git a/Makefile b/Makefile
> index ab34fa7..66c8c77 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -535,7 +535,10 @@ else
>  GEN_UBOOT = \
>                 UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
>                 sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
> -               cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) $$UNDEF_SYM $(__OBJS) \
> +               UNDEF_LST=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
> +               sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_list_.*\)/-u\1/p'|sort|uniq`;\

this must be:

> +               sed  -n -e 's/.*\($(SYM_PREFIX)_u_boot_list_.*\)/-u\1/p'|sort|uniq`;\

otherwise $UNDEF_LST is always empty which breaks at least all MIPS
boards because
all _uboot_list_* symbols are discarded by the linker. I noticed that
on ARM and PowerPC
the content of $UNDEF_LST does not matter at all because those symbols
are always linked into the final binary.

I've pushed debug patches to git://git.denx.de/u-boot-mips.git
test/dm-lgarray-fixed
if you want to test it yourself. With those patches make and MAKEALL will fail
if the _uboot_list_cmd_* symbols are missing in the System.map.


BTW: you could actually drop this in patch 5/5 because it's not needed anymore:

>                 UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
>                 sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\

-- 
Best regards,
Daniel

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 1/6 V3] common: Add symbol handling for generic lists into Makefile
  2012-10-14 23:28       ` Daniel Schwierzeck
@ 2012-10-15  1:49         ` Marek Vasut
  2012-10-15  2:04           ` Daniel Schwierzeck
  0 siblings, 1 reply; 48+ messages in thread
From: Marek Vasut @ 2012-10-15  1:49 UTC (permalink / raw)
  To: u-boot

Dear Daniel Schwierzeck,

> 2012/10/12 Marek Vasut <marex@denx.de>:
> > This patch adds essential components for generation of the contents of
> > the linker section that is used by the linker-generated array. All of
> > the contents is held in a separate file, u-boot.lst, which is generated
> > at runtime just before U-Boot is linked.
> > 
> > The purpose of this code is to especially generate the appropriate
> > boundary symbols around each subsection in the section carrying the
> > linker-generated arrays. Obviously, the interim linker code for actual
> > placement of the variables into the section is generated too. The
> > generated file, u-boot.lst, is included into u-boot.lds via the linker
> > INCLUDE directive in u-boot.lds .
> > 
> > Adjustments are made in the Makefile and spl/Makefile so that the
> > u-boot.lds and u-boot-spl.lds depend on their respective .lst files.
> > 
> > Signed-off-by: Marek Vasut <marex@denx.de>
> > Cc: Joe Hershberger <joe.hershberger@gmail.com>
> > Cc: Mike Frysinger <vapier@gentoo.org>
> > 
> > Cover-letter:
> > Linker-generated arrays (take 2)
> > 
> > This is a second stab at the linker-generated array. Basically, this
> > concept is a generic abstraction of how u_boot_cmd works today. The
> > patch 2/4 contains a huge pile of documentation which should clarify
> > most of the questions.
> > 
> > I don't see size growth, I see size fluctiation in the order of tens
> > of bytes with these patches applied. Subsequent patch added to this
> > series removes the __u_boot_cmd section completely.
> > ---
> > 
> >  .gitignore                                     |    1 +
> >  Makefile                                       |   19 ++++---
> >  config.mk                                      |    2 +
> >  helper.mk                                      |   64
> >  ++++++++++++++++++++++++ nand_spl/board/freescale/mpc8536ds/Makefile   
> >  |    9 +++-
> >  nand_spl/board/freescale/mpc8569mds/Makefile   |    9 +++-
> >  nand_spl/board/freescale/mpc8572ds/Makefile    |    9 +++-
> >  nand_spl/board/freescale/mx31pdk/Makefile      |    9 +++-
> >  nand_spl/board/freescale/p1010rdb/Makefile     |    9 +++-
> >  nand_spl/board/freescale/p1023rds/Makefile     |    9 +++-
> >  nand_spl/board/freescale/p1_p2_rdb/Makefile    |    9 +++-
> >  nand_spl/board/freescale/p1_p2_rdb_pc/Makefile |    9 +++-
> >  nand_spl/board/karo/tx25/Makefile              |    9 +++-
> >  spl/.gitignore                                 |    1 +
> >  spl/Makefile                                   |    8 ++-
> >  15 files changed, 150 insertions(+), 26 deletions(-)
> >  create mode 100644 helper.mk
> > 
> > V2:
> > - Rebase on top of testing/dm-kerneldoc
> > - Fix INCLUDE u-boot.lds in linker scripts. It didn't work with older LD,
> > 
> >   use #include instead and make use of CPP.
> > 
> > - Fix placement of u-boot.lds for NAND SPL
> > V3:
> > - Rebase on top of u-boot/next
> > - Put u-boot.lst into include/ , so the CPP finds it easily.
> > 
> > diff --git a/.gitignore b/.gitignore
> > index d91e91b..1ac43f2 100644
> > --- a/.gitignore
> > +++ b/.gitignore
> > @@ -38,6 +38,7 @@
> > 
> >  /u-boot.sha1
> >  /u-boot.dis
> >  /u-boot.lds
> > 
> > +/u-boot.lst
> > 
> >  /u-boot.ubl
> >  /u-boot.ais
> >  /u-boot.dtb
> > 
> > diff --git a/Makefile b/Makefile
> > index ab34fa7..66c8c77 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -535,7 +535,10 @@ else
> > 
> >  GEN_UBOOT = \
> >  
> >                 UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
> >                 sed  -n -e
> >                 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`
> >                 ;\
> > 
> > -               cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F))
> > $$UNDEF_SYM $(__OBJS) \ +               UNDEF_LST=`$(OBJDUMP) -x
> > $(LIBBOARD) $(LIBS) | \ +               sed  -n -e
> > 's/.*\($(SYM_PREFIX)__u_boot_list_.*\)/-u\1/p'|sort|uniq`;\
> 
> this must be:
> > +               sed  -n -e
> > 's/.*\($(SYM_PREFIX)_u_boot_list_.*\)/-u\1/p'|sort|uniq`;\

I suspect this might break blackfin.

> otherwise $UNDEF_LST is always empty which breaks at least all MIPS
> boards because
> all _uboot_list_* symbols are discarded by the linker. I noticed that
> on ARM and PowerPC
> the content of $UNDEF_LST does not matter at all because those symbols
> are always linked into the final binary.

About time to fix mips ... or throw it away altogether, until it learns to do 
stuff right (incl. relocation).

> I've pushed debug patches to git://git.denx.de/u-boot-mips.git
> test/dm-lgarray-fixed
> if you want to test it yourself. With those patches make and MAKEALL will
> fail if the _uboot_list_cmd_* symbols are missing in the System.map.

I will check it, thanks.

> BTW: you could actually drop this in patch 5/5 because it's not needed 
anymore:
> >                 UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
> >                 sed  -n -e
> >                 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`
> >                 ;\

Good point.

Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 1/6 V3] common: Add symbol handling for generic lists into Makefile
  2012-10-15  1:49         ` Marek Vasut
@ 2012-10-15  2:04           ` Daniel Schwierzeck
  2012-10-15  2:09             ` Marek Vasut
  0 siblings, 1 reply; 48+ messages in thread
From: Daniel Schwierzeck @ 2012-10-15  2:04 UTC (permalink / raw)
  To: u-boot

2012/10/15 Marek Vasut <marex@denx.de>:
>> >  GEN_UBOOT = \
>> >
>> >                 UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
>> >                 sed  -n -e
>> >                 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`
>> >                 ;\
>> >
>> > -               cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F))
>> > $$UNDEF_SYM $(__OBJS) \ +               UNDEF_LST=`$(OBJDUMP) -x
>> > $(LIBBOARD) $(LIBS) | \ +               sed  -n -e
>> > 's/.*\($(SYM_PREFIX)__u_boot_list_.*\)/-u\1/p'|sort|uniq`;\
>>
>> this must be:
>> > +               sed  -n -e
>> > 's/.*\($(SYM_PREFIX)_u_boot_list_.*\)/-u\1/p'|sort|uniq`;\
>
> I suspect this might break blackfin.

no it is already broken without this change. I also tested Blackfin
but forgot it to mention.
Blackfin explicitely sets SYM_PREFIX:=_ so you will finally get
__u_boot_list_.*.

>
>> otherwise $UNDEF_LST is always empty which breaks at least all MIPS
>> boards because
>> all _uboot_list_* symbols are discarded by the linker. I noticed that
>> on ARM and PowerPC
>> the content of $UNDEF_LST does not matter at all because those symbols
>> are always linked into the final binary.
>
> About time to fix mips ... or throw it away altogether, until it learns to do
> stuff right (incl. relocation).

it's not only MIPS, Blackfin has the same problem. Propably other
'exotic' archs too ;)

-- 
Best regards,
Daniel

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 1/6 V3] common: Add symbol handling for generic lists into Makefile
  2012-10-15  2:04           ` Daniel Schwierzeck
@ 2012-10-15  2:09             ` Marek Vasut
  0 siblings, 0 replies; 48+ messages in thread
From: Marek Vasut @ 2012-10-15  2:09 UTC (permalink / raw)
  To: u-boot

Dear Daniel Schwierzeck,

> 2012/10/15 Marek Vasut <marex@denx.de>:
> >> >  GEN_UBOOT = \
> >> >  
> >> >                 UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
> >> >                 sed  -n -e
> >> >                 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uni
> >> >                 q` ;\
> >> > 
> >> > -               cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F))
> >> > $$UNDEF_SYM $(__OBJS) \ +               UNDEF_LST=`$(OBJDUMP) -x
> >> > $(LIBBOARD) $(LIBS) | \ +               sed  -n -e
> >> > 's/.*\($(SYM_PREFIX)__u_boot_list_.*\)/-u\1/p'|sort|uniq`;\
> >> 
> >> this must be:
> >> > +               sed  -n -e
> >> > 's/.*\($(SYM_PREFIX)_u_boot_list_.*\)/-u\1/p'|sort|uniq`;\
> > 
> > I suspect this might break blackfin.
> 
> no it is already broken without this change. I also tested Blackfin
> but forgot it to mention.
> Blackfin explicitely sets SYM_PREFIX:=_ so you will finally get
> __u_boot_list_.*.

Which is what I _want_ to get.

> >> otherwise $UNDEF_LST is always empty which breaks at least all MIPS
> >> boards because
> >> all _uboot_list_* symbols are discarded by the linker. I noticed that
> >> on ARM and PowerPC
> >> the content of $UNDEF_LST does not matter at all because those symbols
> >> are always linked into the final binary.
> > 
> > About time to fix mips ... or throw it away altogether, until it learns
> > to do stuff right (incl. relocation).
> 
> it's not only MIPS, Blackfin has the same problem. Propably other
> 'exotic' archs too ;)

And that's a problem -- we have to support so much legacy crap because of these 
arches :-(

Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 1/6 V4] common: Add symbol handling for generic lists into Makefile
  2012-10-12 20:27     ` [U-Boot] [PATCH 1/6 V3] common: Add symbol handling for generic lists into Makefile Marek Vasut
  2012-10-14 23:28       ` Daniel Schwierzeck
@ 2012-10-17 10:43       ` Marek Vasut
  2012-10-18 19:40         ` Wolfgang Denk
  2012-10-19 15:00         ` [U-Boot] [PATCH 1/6 V5] " Marek Vasut
  1 sibling, 2 replies; 48+ messages in thread
From: Marek Vasut @ 2012-10-17 10:43 UTC (permalink / raw)
  To: u-boot

This patch adds essential components for generation of the contents of
the linker section that is used by the linker-generated array. All of
the contents is held in a separate file, u-boot.lst, which is generated
at runtime just before U-Boot is linked.

The purpose of this code is to especially generate the appropriate
boundary symbols around each subsection in the section carrying the
linker-generated arrays. Obviously, the interim linker code for actual
placement of the variables into the section is generated too. The
generated file, u-boot.lst, is included into u-boot.lds via the linker
INCLUDE directive in u-boot.lds .

Adjustments are made in the Makefile and spl/Makefile so that the
u-boot.lds and u-boot-spl.lds depend on their respective .lst files.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>
---
 .gitignore                                     |    1 +
 Makefile                                       |   19 ++++---
 config.mk                                      |    2 +
 helper.mk                                      |   64 ++++++++++++++++++++++++
 nand_spl/board/freescale/mpc8536ds/Makefile    |    9 +++-
 nand_spl/board/freescale/mpc8569mds/Makefile   |    9 +++-
 nand_spl/board/freescale/mpc8572ds/Makefile    |    9 +++-
 nand_spl/board/freescale/mx31pdk/Makefile      |    9 +++-
 nand_spl/board/freescale/p1010rdb/Makefile     |    9 +++-
 nand_spl/board/freescale/p1023rds/Makefile     |    9 +++-
 nand_spl/board/freescale/p1_p2_rdb/Makefile    |    9 +++-
 nand_spl/board/freescale/p1_p2_rdb_pc/Makefile |    9 +++-
 nand_spl/board/karo/tx25/Makefile              |    9 +++-
 spl/.gitignore                                 |    1 +
 spl/Makefile                                   |    8 ++-
 15 files changed, 150 insertions(+), 26 deletions(-)
 create mode 100644 helper.mk

V2: 
- Rebase on top of testing/dm-kerneldoc
- Fix INCLUDE u-boot.lds in linker scripts. It didn't work with older LD,
  use #include instead and make use of CPP.
- Fix placement of u-boot.lds for NAND SPL
V3:
- Rebase on top of u-boot/next
- Put u-boot.lst into include/ , so the CPP finds it easily.
V4:
- Fix the MIPS breakage

diff --git a/.gitignore b/.gitignore
index d91e91b..1ac43f2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,6 +38,7 @@
 /u-boot.sha1
 /u-boot.dis
 /u-boot.lds
+/u-boot.lst
 /u-boot.ubl
 /u-boot.ais
 /u-boot.dtb
diff --git a/Makefile b/Makefile
index ab34fa7..8449901 100644
--- a/Makefile
+++ b/Makefile
@@ -535,7 +535,10 @@ else
 GEN_UBOOT = \
 		UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
 		sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
-		cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) $$UNDEF_SYM $(__OBJS) \
+		UNDEF_LST=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
+		sed  -n -e 's/.*\($(SYM_PREFIX)_u_boot_list_.*\)/-u\1/p'|sort|uniq`;\
+		cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) \
+			$$UNDEF_SYM $$UNDEF_LST $(__OBJS) \
 			--start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
 			-Map u-boot.map -o u-boot
 endif
@@ -568,8 +571,12 @@ $(SUBDIR_EXAMPLES): $(obj)u-boot
 $(LDSCRIPT):	depend
 		$(MAKE) -C $(dir $@) $(notdir $@)
 
-$(obj)u-boot.lds: $(LDSCRIPT)
-		$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates u-boot.lst,
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(obj)include/u-boot.lst, $(LIBBOARD) $(LIBS)))
+$(obj)u-boot.lds: $(LDSCRIPT) $(obj)include/u-boot.lst
+		$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 nand_spl:	$(TIMESTAMP_FILE) $(VERSION_FILE) depend
 		$(MAKE) -C nand_spl/board/$(BOARDDIR) all
@@ -807,7 +814,7 @@ clean:
 	@rm -f $(obj)board/cray/L1/{bootscript.c,bootscript.image}	  \
 	       $(obj)board/matrix_vision/*/bootscript.img		  \
 	       $(obj)board/voiceblue/eeprom 				  \
-	       $(obj)u-boot.lds						  \
+	       $(obj)u-boot.lds,include/u-boot.lst			  \
 	       $(obj)arch/blackfin/cpu/bootrom-asm-offsets.[chs]	  \
 	       $(obj)arch/blackfin/cpu/init.{lds,elf}
 	@rm -f $(obj)include/bmp_logo.h
@@ -841,8 +848,8 @@ clobber:	tidy
 	@rm -f $(obj)u-boot.dtb
 	@rm -f $(obj)u-boot.sb
 	@rm -f $(obj)u-boot.spr
-	@rm -f $(obj)nand_spl/{u-boot.lds,u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map,System.map}
-	@rm -f $(obj)spl/{u-boot-spl,u-boot-spl.bin,u-boot-spl.lds,u-boot-spl.map}
+	@rm -f $(obj)nand_spl/{u-boot.{lds,lst},u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map,System.map}
+	@rm -f $(obj)spl/{u-boot-spl,u-boot-spl.bin,u-boot-spl.{lds,lst},u-boot-spl.map}
 	@rm -f $(obj)MLO
 	@rm -f $(obj)tools/xway-swap-bytes
 	@rm -f $(obj)arch/powerpc/cpu/mpc824x/bedbug_603e.c
diff --git a/config.mk b/config.mk
index bb5c69a..b7cd481 100644
--- a/config.mk
+++ b/config.mk
@@ -23,6 +23,8 @@
 
 #########################################################################
 
+include $(TOPDIR)/helper.mk
+
 ifeq ($(CURDIR),$(SRCTREE))
 dir :=
 else
diff --git a/helper.mk b/helper.mk
new file mode 100644
index 0000000..79a1da0
--- /dev/null
+++ b/helper.mk
@@ -0,0 +1,64 @@
+#
+# Copyright (C) 2012 Marek Vasut <marex@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.
+#
+#########################################################################
+
+##
+# make_u_boot_list - Generate contents of u_boot_list section
+# 1:		The name of the resulting file (usually u-boot.lst)
+# 2:		Files to analyze for possible u_boot_list entries
+#
+# This function generates the contents of the u_boot_list section,
+# including all the border symbols for it's subsections. The operation
+# of this function is as follows, numbering goes per lines:
+#
+# 1) Dump the ELF header sections from all files supplied via $(2)
+# 2) Filter out all other stuff that does not belong into .u_boot_list
+#    section.
+# 3) Fix up the lines so that the resulting output is is in format
+#    ".u_boot_list.*".
+# 4) Remove the last .something$, since that only contains the name
+#    of the variable to be put into a subsection. This name is irelevant
+#    for generation of border symbols, thus of no interest, remove it.
+# 5) Take each line and for every dot "." in that line, print the whole
+#    line until that dot "." . This is important so that we have all
+#    parent border symbols generated as well.
+# 6) Load every line and firstly append "\a" at the end and print the
+#    line. Next, append "@" at the end and print the line. Finally,
+#    append "~" at the end of line. This will make sense in conjunction
+#    with 6) and 7).
+# 7) Sort the lines. It is imperative to use LC_COLLATE=C here because
+#    with this, the "\a" symbol is first and "~" symbol is last. Any
+#    other symbols fall inbetween. Symbols like "@", which marks the
+#    end of current line (representing current section) and ".", which
+#    means the line continues and thus represents subsection.
+# 8) With such ordering, all lines ending with "\a" will float at the
+#    begining of all lines with the same prefix. Thus it is easy to
+#    replace "\a" with __start and make it the __start border symbol.
+#    Very similarly for "~", which will be always at the bottom and so
+#    can be replaced by "__end" and made into the __end border symbol.
+#    Finally, every line ending with "@" symbol will be transformed
+#    into " *(SORT(${line}*)); " format, which in the linker parlance
+#    will allow it to trap all symbols relevant to the subsection.
+#
+define make_u_boot_list
+$(1): $(2)
+	$(OBJDUMP) -h $(2) | \
+	sed -n -e '/.*\.u_boot_list[^ ]\+/ ! {d;n}' \
+		-e 's/.*\(\.u_boot_list[^ ]\+\).*$$$$/\1/' \
+		-e 's/\.[^\.]\+$$$$//' \
+		-e ':s /^.\+$$$$/ { p;s/^\(.*\)\.[^\.]*$$$$/\1/;b s }' | \
+	sed -n -e 'h;s/$$$$/\a/p;g;s/$$$$/@/p;g;s/$$$$/~/p;' | \
+	LC_COLLATE=C sort -u | \
+	sed -n -e '/\a$$$$/ { s/\./_/g;s/\a$$$$/__start = .;/p; }'\
+		-e '/~$$$$/ { s/\./_/g;s/~$$$$/__end = .;/p; }'\
+		-e '/@$$$$/ { s/\(.*\)@$$$$/*(SORT(\1.*));/p }' > $(1)
+endef
diff --git a/nand_spl/board/freescale/mpc8536ds/Makefile b/nand_spl/board/freescale/mpc8536ds/Makefile
index 43da3df..e5388d8 100644
--- a/nand_spl/board/freescale/mpc8536ds/Makefile
+++ b/nand_spl/board/freescale/mpc8536ds/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -61,8 +62,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/mpc8569mds/Makefile b/nand_spl/board/freescale/mpc8569mds/Makefile
index 43da3df..e5388d8 100644
--- a/nand_spl/board/freescale/mpc8569mds/Makefile
+++ b/nand_spl/board/freescale/mpc8569mds/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -61,8 +62,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/mpc8572ds/Makefile b/nand_spl/board/freescale/mpc8572ds/Makefile
index 43da3df..e5388d8 100644
--- a/nand_spl/board/freescale/mpc8572ds/Makefile
+++ b/nand_spl/board/freescale/mpc8572ds/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -61,8 +62,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/mx31pdk/Makefile b/nand_spl/board/freescale/mx31pdk/Makefile
index 87784d2..43e72c4 100644
--- a/nand_spl/board/freescale/mx31pdk/Makefile
+++ b/nand_spl/board/freescale/mx31pdk/Makefile
@@ -6,6 +6,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
 	   $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_SPL_BUILD -DCONFIG_NAND_SPL
@@ -36,8 +37,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $@
 
-$(nandobj)u-boot.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 #########################################################################
 
diff --git a/nand_spl/board/freescale/p1010rdb/Makefile b/nand_spl/board/freescale/p1010rdb/Makefile
index cdbd492..f270faa 100644
--- a/nand_spl/board/freescale/p1010rdb/Makefile
+++ b/nand_spl/board/freescale/p1010rdb/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) $(LDFLAGS) \
 	   $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -62,8 +63,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/p1023rds/Makefile b/nand_spl/board/freescale/p1023rds/Makefile
index da43521..b288284 100644
--- a/nand_spl/board/freescale/p1023rds/Makefile
+++ b/nand_spl/board/freescale/p1023rds/Makefile
@@ -27,6 +27,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -57,8 +58,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/p1_p2_rdb/Makefile b/nand_spl/board/freescale/p1_p2_rdb/Makefile
index 43da3df..e5388d8 100644
--- a/nand_spl/board/freescale/p1_p2_rdb/Makefile
+++ b/nand_spl/board/freescale/p1_p2_rdb/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -61,8 +62,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/p1_p2_rdb_pc/Makefile b/nand_spl/board/freescale/p1_p2_rdb_pc/Makefile
index 46cf709..7146d16 100644
--- a/nand_spl/board/freescale/p1_p2_rdb_pc/Makefile
+++ b/nand_spl/board/freescale/p1_p2_rdb_pc/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -62,8 +63,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/karo/tx25/Makefile b/nand_spl/board/karo/tx25/Makefile
index 0336346..becf7fa 100644
--- a/nand_spl/board/karo/tx25/Makefile
+++ b/nand_spl/board/karo/tx25/Makefile
@@ -27,6 +27,7 @@ include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
 	   $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_SPL_BUILD -DCONFIG_NAND_SPL
@@ -57,8 +58,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $@
 
-$(nandobj)u-boot.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 #########################################################################
 
diff --git a/spl/.gitignore b/spl/.gitignore
index 7c88147..8cf487e 100644
--- a/spl/.gitignore
+++ b/spl/.gitignore
@@ -2,3 +2,4 @@ u-boot-spl
 u-boot-spl.bin
 u-boot-spl.lds
 u-boot-spl.map
+u-boot.lst
diff --git a/spl/Makefile b/spl/Makefile
index 92267d6..20a943c 100644
--- a/spl/Makefile
+++ b/spl/Makefile
@@ -154,8 +154,12 @@ $(START):	depend
 $(LIBS):	depend
 	$(MAKE) -C $(SRCTREE)$(dir $(subst $(SPLTREE),,$@))
 
-$(obj)u-boot-spl.lds: $(LDSCRIPT) depend
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - < $< > $@
+# The following line expands into whole rule which generates u-boot.lst,
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(obj)u-boot.lst, $(LIBS)))
+$(obj)u-boot-spl.lds: $(LDSCRIPT) $(obj)u-boot.lst depend
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj). -ansi -D__ASSEMBLY__ -P - < $< > $@
 
 depend:	$(obj).depend
 .PHONY: depend
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 5/6 V4] common: Discard the __u_boot_cmd section
  2012-10-12 20:27     ` [U-Boot] [PATCH 5/6 V3] common: Discard the __u_boot_cmd section Marek Vasut
@ 2012-10-17 10:45       ` Marek Vasut
  0 siblings, 0 replies; 48+ messages in thread
From: Marek Vasut @ 2012-10-17 10:45 UTC (permalink / raw)
  To: u-boot

The command declaration now uses the new LG-array method to generate
list of commands. Thus the __u_boot_cmd section is now superseded and
redundant and therefore can be removed. Also, remove externed symbols
associated with this section from include/command.h .

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>
---
 Makefile                                         |    4 +---
 arch/arm/cpu/arm920t/ep93xx/u-boot.lds           |    3 ---
 arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds        |    3 ---
 arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds      |    3 ---
 arch/arm/cpu/ixp/u-boot.lds                      |    3 ---
 arch/arm/cpu/u-boot.lds                          |    3 ---
 arch/avr32/cpu/u-boot.lds                        |    5 -----
 arch/blackfin/cpu/u-boot.lds                     |    6 ------
 arch/microblaze/cpu/u-boot.lds                   |    8 --------
 arch/nds32/cpu/n1213/u-boot.lds                  |    3 ---
 arch/nios2/cpu/u-boot.lds                        |    7 -------
 arch/powerpc/cpu/74xx_7xx/u-boot.lds             |    3 ---
 arch/powerpc/cpu/mpc512x/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc5xx/u-boot.lds               |    3 ---
 arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds |    3 ---
 arch/powerpc/cpu/mpc5xxx/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc8220/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc824x/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc8260/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc83xx/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc85xx/u-boot-nand.lds         |    3 ---
 arch/powerpc/cpu/mpc85xx/u-boot.lds              |    3 ---
 arch/powerpc/cpu/mpc86xx/u-boot.lds              |    3 ---
 arch/powerpc/cpu/ppc4xx/u-boot.lds               |    3 ---
 arch/sandbox/cpu/u-boot.lds                      |    3 ---
 arch/sh/cpu/sh2/u-boot.lds                       |    7 -------
 arch/sh/cpu/sh3/u-boot.lds                       |    7 -------
 arch/sh/cpu/sh4/u-boot.lds                       |    7 -------
 arch/x86/cpu/u-boot.lds                          |    4 ----
 board/BuS/eb_cpu5282/u-boot.lds                  |    3 ---
 board/LEOX/elpt860/u-boot.lds                    |    3 ---
 board/RPXClassic/u-boot.lds                      |    3 ---
 board/RPXClassic/u-boot.lds.debug                |    3 ---
 board/RPXlite/u-boot.lds                         |    3 ---
 board/RPXlite/u-boot.lds.debug                   |    3 ---
 board/RPXlite_dw/u-boot.lds                      |    3 ---
 board/RPXlite_dw/u-boot.lds.debug                |    3 ---
 board/RRvision/u-boot.lds                        |    3 ---
 board/actux1/u-boot.lds                          |    5 -----
 board/actux2/u-boot.lds                          |    5 -----
 board/actux3/u-boot.lds                          |    5 -----
 board/adder/u-boot.lds                           |    3 ---
 board/altera/nios2-generic/u-boot.lds            |    7 -------
 board/amcc/acadia/u-boot-nand.lds                |    3 ---
 board/amcc/bamboo/u-boot-nand.lds                |    3 ---
 board/amcc/canyonlands/u-boot-nand.lds           |    3 ---
 board/amcc/kilauea/u-boot-nand.lds               |    3 ---
 board/amcc/sequoia/u-boot-nand.lds               |    3 ---
 board/amcc/sequoia/u-boot-ram.lds                |    3 ---
 board/astro/mcf5373l/u-boot.lds                  |    3 ---
 board/c2mon/u-boot.lds                           |    3 ---
 board/c2mon/u-boot.lds.debug                     |    3 ---
 board/cobra5272/u-boot.lds                       |    3 ---
 board/cogent/u-boot.lds                          |    3 ---
 board/cogent/u-boot.lds.debug                    |    3 ---
 board/cray/L1/u-boot.lds.debug                   |    3 ---
 board/dave/PPChameleonEVB/u-boot.lds             |    3 ---
 board/dbau1x00/u-boot.lds                        |    6 ------
 board/dvlhost/u-boot.lds                         |    5 -----
 board/eltec/mhpc/u-boot.lds                      |    3 ---
 board/eltec/mhpc/u-boot.lds.debug                |    3 ---
 board/emk/top860/u-boot.lds                      |    3 ---
 board/ep88x/u-boot.lds                           |    3 ---
 board/esd/dasa_sim/u-boot.lds                    |    3 ---
 board/esd/pmc440/u-boot-nand.lds                 |    3 ---
 board/esd/tasreg/u-boot.lds                      |    3 ---
 board/esteem192e/u-boot.lds                      |    3 ---
 board/etx094/u-boot.lds                          |    3 ---
 board/evb64260/u-boot.lds                        |    3 ---
 board/fads/u-boot.lds                            |    3 ---
 board/flagadm/u-boot.lds                         |    3 ---
 board/flagadm/u-boot.lds.debug                   |    3 ---
 board/freescale/m5208evbe/u-boot.lds             |    3 ---
 board/freescale/m52277evb/u-boot.lds             |    3 ---
 board/freescale/m5235evb/u-boot.lds              |    3 ---
 board/freescale/m5249evb/u-boot.lds              |    3 ---
 board/freescale/m5253demo/u-boot.lds             |    3 ---
 board/freescale/m5253evbe/u-boot.lds             |    3 ---
 board/freescale/m5271evb/u-boot.lds              |    3 ---
 board/freescale/m5272c3/u-boot.lds               |    3 ---
 board/freescale/m5275evb/u-boot.lds              |    3 ---
 board/freescale/m5282evb/u-boot.lds              |    3 ---
 board/freescale/m53017evb/u-boot.lds             |    3 ---
 board/freescale/m5329evb/u-boot.lds              |    3 ---
 board/freescale/m5373evb/u-boot.lds              |    3 ---
 board/freescale/m54451evb/u-boot.lds             |    3 ---
 board/freescale/m54455evb/u-boot.lds             |    3 ---
 board/freescale/m547xevb/u-boot.lds              |    3 ---
 board/freescale/m548xevb/u-boot.lds              |    3 ---
 board/freescale/mx31ads/u-boot.lds               |    3 ---
 board/gaisler/gr_cpci_ax2000/u-boot.lds          |    4 ----
 board/gaisler/gr_ep2s60/u-boot.lds               |    4 ----
 board/gaisler/gr_xc3s_1500/u-boot.lds            |    4 ----
 board/gaisler/grsim/u-boot.lds                   |    4 ----
 board/gaisler/grsim_leon2/u-boot.lds             |    4 ----
 board/gen860t/u-boot-flashenv.lds                |    3 ---
 board/gen860t/u-boot.lds                         |    3 ---
 board/genietv/u-boot.lds                         |    3 ---
 board/genietv/u-boot.lds.debug                   |    3 ---
 board/hermes/u-boot.lds                          |    3 ---
 board/hermes/u-boot.lds.debug                    |    3 ---
 board/hymod/u-boot.lds                           |    3 ---
 board/hymod/u-boot.lds.debug                     |    3 ---
 board/icu862/u-boot.lds                          |    3 ---
 board/icu862/u-boot.lds.debug                    |    3 ---
 board/idmr/u-boot.lds                            |    3 ---
 board/incaip/u-boot.lds                          |    6 ------
 board/ip860/u-boot.lds                           |    3 ---
 board/ip860/u-boot.lds.debug                     |    3 ---
 board/ivm/u-boot.lds                             |    3 ---
 board/ivm/u-boot.lds.debug                       |    3 ---
 board/korat/u-boot-F7FC.lds                      |    3 ---
 board/kup/kup4k/u-boot.lds                       |    3 ---
 board/kup/kup4k/u-boot.lds.debug                 |    3 ---
 board/kup/kup4x/u-boot.lds                       |    3 ---
 board/kup/kup4x/u-boot.lds.debug                 |    3 ---
 board/lantec/u-boot.lds                          |    3 ---
 board/lantec/u-boot.lds.debug                    |    3 ---
 board/lwmon/u-boot.lds                           |    3 ---
 board/lwmon/u-boot.lds.debug                     |    3 ---
 board/manroland/uc100/u-boot.lds                 |    3 ---
 board/matrix_vision/mvsmr/u-boot.lds             |    3 ---
 board/mbx8xx/u-boot.lds                          |    3 ---
 board/mbx8xx/u-boot.lds.debug                    |    3 ---
 board/micronas/vct/u-boot.lds                    |    7 -------
 board/mousse/u-boot.lds                          |    3 ---
 board/mousse/u-boot.lds.ram                      |    3 ---
 board/mousse/u-boot.lds.rom                      |    3 ---
 board/mpl/pip405/u-boot.lds.debug                |    3 ---
 board/mvblue/u-boot.lds                          |    3 ---
 board/netphone/u-boot.lds                        |    3 ---
 board/netphone/u-boot.lds.debug                  |    3 ---
 board/netta/u-boot.lds                           |    3 ---
 board/netta/u-boot.lds.debug                     |    3 ---
 board/netta2/u-boot.lds                          |    3 ---
 board/netta2/u-boot.lds.debug                    |    3 ---
 board/netvia/u-boot.lds                          |    3 ---
 board/netvia/u-boot.lds.debug                    |    3 ---
 board/nx823/u-boot.lds                           |    3 ---
 board/nx823/u-boot.lds.debug                     |    3 ---
 board/openrisc/openrisc-generic/u-boot.lds       |    3 ---
 board/pb1x00/u-boot.lds                          |    6 ------
 board/qemu-mips/u-boot.lds                       |    7 -------
 board/qi/qi_lb60/u-boot.lds                      |    3 ---
 board/quantum/u-boot.lds                         |    3 ---
 board/r360mpi/u-boot.lds                         |    3 ---
 board/rbc823/u-boot.lds                          |    3 ---
 board/renesas/sh7757lcr/u-boot.lds               |    7 -------
 board/rsdproto/u-boot.lds                        |    3 ---
 board/samsung/smdk6400/u-boot-nand.lds           |    3 ---
 board/sandburst/karef/u-boot.lds.debug           |    3 ---
 board/sandburst/metrobox/u-boot.lds.debug        |    3 ---
 board/sandpoint/u-boot.lds                       |    3 ---
 board/siemens/IAD210/u-boot.lds                  |    3 ---
 board/sixnet/u-boot.lds                          |    3 ---
 board/snmc/qs850/u-boot.lds                      |    3 ---
 board/snmc/qs860t/u-boot.lds                     |    3 ---
 board/spc1920/u-boot.lds                         |    3 ---
 board/spd8xx/u-boot.lds                          |    3 ---
 board/spd8xx/u-boot.lds.debug                    |    3 ---
 board/stx/stxxtc/u-boot.lds                      |    3 ---
 board/stx/stxxtc/u-boot.lds.debug                |    3 ---
 board/svm_sc8xx/u-boot.lds                       |    3 ---
 board/tqc/tqm8xx/u-boot.lds                      |    3 ---
 board/v37/u-boot.lds                             |    3 ---
 board/w7o/u-boot.lds.debug                       |    3 ---
 board/westel/amx860/u-boot.lds                   |    3 ---
 board/westel/amx860/u-boot.lds.debug             |    3 ---
 board/xes/xpedite1000/u-boot.lds.debug           |    3 ---
 include/command.h                                |    2 --
 nand_spl/board/freescale/mx31pdk/u-boot.lds      |    3 ---
 nand_spl/board/karo/tx25/u-boot.lds              |    3 ---
 nand_spl/board/samsung/smdk6400/u-boot.lds       |    3 ---
 173 files changed, 1 insertion(+), 583 deletions(-)

V2:
- Rebase on top of testing/dm-kerneldoc
V3:
- Rebase on top of u-boot/next
V4:
- Discard UNDEF_SYM and it's no longer needed with commands flipped to LG-arrays

diff --git a/Makefile b/Makefile
index 8449901..b6f36f0 100644
--- a/Makefile
+++ b/Makefile
@@ -533,12 +533,10 @@ GEN_UBOOT = \
 			$(PLATFORM_LIBS) -Wl,-Map -Wl,u-boot.map -o u-boot
 else
 GEN_UBOOT = \
-		UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
-		sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
 		UNDEF_LST=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
 		sed  -n -e 's/.*\($(SYM_PREFIX)_u_boot_list_.*\)/-u\1/p'|sort|uniq`;\
 		cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) \
-			$$UNDEF_SYM $$UNDEF_LST $(__OBJS) \
+			$$UNDEF_LST $(__OBJS) \
 			--start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
 			-Map u-boot.map -o u-boot
 endif
diff --git a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
index 8c6a407..008ae89 100644
--- a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
+++ b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
@@ -48,9 +48,6 @@ SECTIONS
 	.got : { *(.got) }
 
 	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
index 2940a6f..6dc681a 100644
--- a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
+++ b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
@@ -50,9 +50,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
index ae9538e..f3bd5e7 100644
--- a/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
+++ b/arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
@@ -50,9 +50,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/arch/arm/cpu/ixp/u-boot.lds b/arch/arm/cpu/ixp/u-boot.lds
index a7ffab3..81d954f 100644
--- a/arch/arm/cpu/ixp/u-boot.lds
+++ b/arch/arm/cpu/ixp/u-boot.lds
@@ -46,9 +46,6 @@ SECTIONS
 	. = ALIGN(4);
 
 	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/arm/cpu/u-boot.lds b/arch/arm/cpu/u-boot.lds
index 85f4eec..227aaff 100644
--- a/arch/arm/cpu/u-boot.lds
+++ b/arch/arm/cpu/u-boot.lds
@@ -49,9 +49,6 @@ SECTIONS
 	. = ALIGN(4);
 
 	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/avr32/cpu/u-boot.lds b/arch/avr32/cpu/u-boot.lds
index 2accee6..0b16d2a 100644
--- a/arch/avr32/cpu/u-boot.lds
+++ b/arch/avr32/cpu/u-boot.lds
@@ -47,11 +47,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : {
-		KEEP(*(.u_boot_cmd))
-	}
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/blackfin/cpu/u-boot.lds b/arch/blackfin/cpu/u-boot.lds
index cbc79de..58db838 100644
--- a/arch/blackfin/cpu/u-boot.lds
+++ b/arch/blackfin/cpu/u-boot.lds
@@ -112,12 +112,6 @@ SECTIONS
 		CONSTRUCTORS
 	} >ram_data
 
-	.u_boot_cmd :
-	{
-		___u_boot_cmd_start = .;
-		*(.u_boot_cmd)
-		___u_boot_cmd_end = .;
-	} >ram_data
 
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/arch/microblaze/cpu/u-boot.lds b/arch/microblaze/cpu/u-boot.lds
index 06a2855..4297b93 100644
--- a/arch/microblaze/cpu/u-boot.lds
+++ b/arch/microblaze/cpu/u-boot.lds
@@ -50,14 +50,6 @@ SECTIONS
 		__data_end = .;
 	}
 
-	.u_boot_cmd ALIGN(0x4):
-	{
-		. = .;
-		__u_boot_cmd_start = .;
-		*(.u_boot_cmd)
-		__u_boot_cmd_end = .;
-	}
-
 	. = ALIGN(4);
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/arch/nds32/cpu/n1213/u-boot.lds b/arch/nds32/cpu/n1213/u-boot.lds
index 62e357a..cef19c5 100644
--- a/arch/nds32/cpu/n1213/u-boot.lds
+++ b/arch/nds32/cpu/n1213/u-boot.lds
@@ -52,9 +52,6 @@ SECTIONS
 	}
 
 	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/nios2/cpu/u-boot.lds b/arch/nios2/cpu/u-boot.lds
index e24b769..d0eb80d 100644
--- a/arch/nios2/cpu/u-boot.lds
+++ b/arch/nios2/cpu/u-boot.lds
@@ -45,13 +45,6 @@ SECTIONS
 	 * the initialization code relocates the command table as
 	 * well -- admittedly, this is just pure laziness ;-)
 	 */
-	__u_boot_cmd_start = .;
-	.u_boot_cmd :
-	{
-	  *(.u_boot_cmd)
-	}
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/powerpc/cpu/74xx_7xx/u-boot.lds b/arch/powerpc/cpu/74xx_7xx/u-boot.lds
index 04484a5..ecee439 100644
--- a/arch/powerpc/cpu/74xx_7xx/u-boot.lds
+++ b/arch/powerpc/cpu/74xx_7xx/u-boot.lds
@@ -62,9 +62,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc512x/u-boot.lds b/arch/powerpc/cpu/mpc512x/u-boot.lds
index 656a062..7faefba 100644
--- a/arch/powerpc/cpu/mpc512x/u-boot.lds
+++ b/arch/powerpc/cpu/mpc512x/u-boot.lds
@@ -57,9 +57,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc5xx/u-boot.lds b/arch/powerpc/cpu/mpc5xx/u-boot.lds
index e04528d..c91e146 100644
--- a/arch/powerpc/cpu/mpc5xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc5xx/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds b/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
index acddf5f..ac7844d 100644
--- a/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
+++ b/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/arch/powerpc/cpu/mpc5xxx/u-boot.lds b/arch/powerpc/cpu/mpc5xxx/u-boot.lds
index 998221e..1f46ead 100644
--- a/arch/powerpc/cpu/mpc5xxx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc5xxx/u-boot.lds
@@ -60,9 +60,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc8220/u-boot.lds b/arch/powerpc/cpu/mpc8220/u-boot.lds
index 45d5e19..c147954 100644
--- a/arch/powerpc/cpu/mpc8220/u-boot.lds
+++ b/arch/powerpc/cpu/mpc8220/u-boot.lds
@@ -59,9 +59,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc824x/u-boot.lds b/arch/powerpc/cpu/mpc824x/u-boot.lds
index a80d91e..a713012 100644
--- a/arch/powerpc/cpu/mpc824x/u-boot.lds
+++ b/arch/powerpc/cpu/mpc824x/u-boot.lds
@@ -60,9 +60,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc8260/u-boot.lds b/arch/powerpc/cpu/mpc8260/u-boot.lds
index f33f648..42385fc 100644
--- a/arch/powerpc/cpu/mpc8260/u-boot.lds
+++ b/arch/powerpc/cpu/mpc8260/u-boot.lds
@@ -59,9 +59,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc83xx/u-boot.lds b/arch/powerpc/cpu/mpc83xx/u-boot.lds
index 45a9cf8..d699def 100644
--- a/arch/powerpc/cpu/mpc83xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc83xx/u-boot.lds
@@ -58,9 +58,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds b/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
index 29aabde..f7c4a22 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
@@ -70,9 +70,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot.lds b/arch/powerpc/cpu/mpc85xx/u-boot.lds
index 49fe44d..4a40a1f 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot.lds
@@ -77,9 +77,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/mpc86xx/u-boot.lds b/arch/powerpc/cpu/mpc86xx/u-boot.lds
index 17371ac..8bfadf2 100644
--- a/arch/powerpc/cpu/mpc86xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc86xx/u-boot.lds
@@ -64,9 +64,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/powerpc/cpu/ppc4xx/u-boot.lds b/arch/powerpc/cpu/ppc4xx/u-boot.lds
index 6df673e..a96ddd5 100644
--- a/arch/powerpc/cpu/ppc4xx/u-boot.lds
+++ b/arch/powerpc/cpu/ppc4xx/u-boot.lds
@@ -78,9 +78,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/arch/sandbox/cpu/u-boot.lds b/arch/sandbox/cpu/u-boot.lds
index b7f25ab..1b781eb 100644
--- a/arch/sandbox/cpu/u-boot.lds
+++ b/arch/sandbox/cpu/u-boot.lds
@@ -24,9 +24,6 @@
 
 SECTIONS
 {
-	__u_boot_cmd_start = .;
-	_u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/arch/sh/cpu/sh2/u-boot.lds b/arch/sh/cpu/sh2/u-boot.lds
index 3cd28f7..17f8091 100644
--- a/arch/sh/cpu/sh2/u-boot.lds
+++ b/arch/sh/cpu/sh2/u-boot.lds
@@ -72,13 +72,6 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
 
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/arch/sh/cpu/sh3/u-boot.lds b/arch/sh/cpu/sh3/u-boot.lds
index f0bad51..c831961 100644
--- a/arch/sh/cpu/sh3/u-boot.lds
+++ b/arch/sh/cpu/sh3/u-boot.lds
@@ -78,13 +78,6 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
 
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/arch/sh/cpu/sh4/u-boot.lds b/arch/sh/cpu/sh4/u-boot.lds
index d204304..0ecafcf 100644
--- a/arch/sh/cpu/sh4/u-boot.lds
+++ b/arch/sh/cpu/sh4/u-boot.lds
@@ -75,13 +75,6 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
 
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/arch/x86/cpu/u-boot.lds b/arch/x86/cpu/u-boot.lds
index 4bb2a2f..a1ecefa 100644
--- a/arch/x86/cpu/u-boot.lds
+++ b/arch/x86/cpu/u-boot.lds
@@ -33,10 +33,6 @@ SECTIONS
 	.text  : { *(.text*); }
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/BuS/eb_cpu5282/u-boot.lds b/board/BuS/eb_cpu5282/u-boot.lds
index a708d06..0c92d31 100644
--- a/board/BuS/eb_cpu5282/u-boot.lds
+++ b/board/BuS/eb_cpu5282/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/LEOX/elpt860/u-boot.lds b/board/LEOX/elpt860/u-boot.lds
index b04e56c..2bb876d 100644
--- a/board/LEOX/elpt860/u-boot.lds
+++ b/board/LEOX/elpt860/u-boot.lds
@@ -86,9 +86,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXClassic/u-boot.lds b/board/RPXClassic/u-boot.lds
index 9133469..18f962c 100644
--- a/board/RPXClassic/u-boot.lds
+++ b/board/RPXClassic/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXClassic/u-boot.lds.debug b/board/RPXClassic/u-boot.lds.debug
index 46f2f8f..dc8c4e9 100644
--- a/board/RPXClassic/u-boot.lds.debug
+++ b/board/RPXClassic/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXlite/u-boot.lds b/board/RPXlite/u-boot.lds
index 9133469..18f962c 100644
--- a/board/RPXlite/u-boot.lds
+++ b/board/RPXlite/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXlite/u-boot.lds.debug b/board/RPXlite/u-boot.lds.debug
index 46f2f8f..dc8c4e9 100644
--- a/board/RPXlite/u-boot.lds.debug
+++ b/board/RPXlite/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXlite_dw/u-boot.lds b/board/RPXlite_dw/u-boot.lds
index 9133469..18f962c 100644
--- a/board/RPXlite_dw/u-boot.lds
+++ b/board/RPXlite_dw/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RPXlite_dw/u-boot.lds.debug b/board/RPXlite_dw/u-boot.lds.debug
index 1b042f8..b43a1e4 100644
--- a/board/RPXlite_dw/u-boot.lds.debug
+++ b/board/RPXlite_dw/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/RRvision/u-boot.lds b/board/RRvision/u-boot.lds
index 4613432..748e511 100644
--- a/board/RRvision/u-boot.lds
+++ b/board/RRvision/u-boot.lds
@@ -71,9 +71,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/actux1/u-boot.lds b/board/actux1/u-boot.lds
index a8971d0..66e1e76 100644
--- a/board/actux1/u-boot.lds
+++ b/board/actux1/u-boot.lds
@@ -54,11 +54,6 @@ SECTIONS
 		*(.got)
 	}
 	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/actux2/u-boot.lds b/board/actux2/u-boot.lds
index 7c0caf6..178518d 100644
--- a/board/actux2/u-boot.lds
+++ b/board/actux2/u-boot.lds
@@ -54,11 +54,6 @@ SECTIONS
 		*(.got)
 	}
 	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/actux3/u-boot.lds b/board/actux3/u-boot.lds
index 530073e..e28b264 100644
--- a/board/actux3/u-boot.lds
+++ b/board/actux3/u-boot.lds
@@ -54,11 +54,6 @@ SECTIONS
 		*(.got)
 	}
 	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/adder/u-boot.lds b/board/adder/u-boot.lds
index 05d6323..73e2f3f 100644
--- a/board/adder/u-boot.lds
+++ b/board/adder/u-boot.lds
@@ -62,9 +62,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/altera/nios2-generic/u-boot.lds b/board/altera/nios2-generic/u-boot.lds
index f087733..289386b 100644
--- a/board/altera/nios2-generic/u-boot.lds
+++ b/board/altera/nios2-generic/u-boot.lds
@@ -46,13 +46,6 @@ SECTIONS
 	 * the initialization code relocates the command table as
 	 * well -- admittedly, this is just pure laziness ;-)
 	 */
-	__u_boot_cmd_start = .;
-	.u_boot_cmd :
-	{
-	  *(.u_boot_cmd)
-	}
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/amcc/acadia/u-boot-nand.lds b/board/amcc/acadia/u-boot-nand.lds
index 9609338..beba978 100644
--- a/board/amcc/acadia/u-boot-nand.lds
+++ b/board/amcc/acadia/u-boot-nand.lds
@@ -72,9 +72,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/board/amcc/bamboo/u-boot-nand.lds b/board/amcc/bamboo/u-boot-nand.lds
index 4f4194e..2dd00d7 100644
--- a/board/amcc/bamboo/u-boot-nand.lds
+++ b/board/amcc/bamboo/u-boot-nand.lds
@@ -73,9 +73,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/board/amcc/canyonlands/u-boot-nand.lds b/board/amcc/canyonlands/u-boot-nand.lds
index 1876bae..8ac5116 100644
--- a/board/amcc/canyonlands/u-boot-nand.lds
+++ b/board/amcc/canyonlands/u-boot-nand.lds
@@ -73,9 +73,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/board/amcc/kilauea/u-boot-nand.lds b/board/amcc/kilauea/u-boot-nand.lds
index 9609338..beba978 100644
--- a/board/amcc/kilauea/u-boot-nand.lds
+++ b/board/amcc/kilauea/u-boot-nand.lds
@@ -72,9 +72,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/board/amcc/sequoia/u-boot-nand.lds b/board/amcc/sequoia/u-boot-nand.lds
index a0b98f4..18266ef 100644
--- a/board/amcc/sequoia/u-boot-nand.lds
+++ b/board/amcc/sequoia/u-boot-nand.lds
@@ -73,9 +73,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/board/amcc/sequoia/u-boot-ram.lds b/board/amcc/sequoia/u-boot-ram.lds
index 32a7661..6b02784 100644
--- a/board/amcc/sequoia/u-boot-ram.lds
+++ b/board/amcc/sequoia/u-boot-ram.lds
@@ -64,9 +64,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/board/astro/mcf5373l/u-boot.lds b/board/astro/mcf5373l/u-boot.lds
index e27c286..04a9066 100644
--- a/board/astro/mcf5373l/u-boot.lds
+++ b/board/astro/mcf5373l/u-boot.lds
@@ -109,9 +109,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/c2mon/u-boot.lds b/board/c2mon/u-boot.lds
index 0b92ef6..b854c18 100644
--- a/board/c2mon/u-boot.lds
+++ b/board/c2mon/u-boot.lds
@@ -74,9 +74,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/c2mon/u-boot.lds.debug b/board/c2mon/u-boot.lds.debug
index c28e2b9..92796e6 100644
--- a/board/c2mon/u-boot.lds.debug
+++ b/board/c2mon/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/cobra5272/u-boot.lds b/board/cobra5272/u-boot.lds
index 77b8e80..d054f20 100644
--- a/board/cobra5272/u-boot.lds
+++ b/board/cobra5272/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/cogent/u-boot.lds b/board/cogent/u-boot.lds
index f7137bd..2a6027f 100644
--- a/board/cogent/u-boot.lds
+++ b/board/cogent/u-boot.lds
@@ -70,9 +70,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/cogent/u-boot.lds.debug b/board/cogent/u-boot.lds.debug
index 46f2f8f..dc8c4e9 100644
--- a/board/cogent/u-boot.lds.debug
+++ b/board/cogent/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/cray/L1/u-boot.lds.debug b/board/cray/L1/u-boot.lds.debug
index 15cccee..d7a2e56 100644
--- a/board/cray/L1/u-boot.lds.debug
+++ b/board/cray/L1/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/dave/PPChameleonEVB/u-boot.lds b/board/dave/PPChameleonEVB/u-boot.lds
index 184c6fc..8a306d6 100644
--- a/board/dave/PPChameleonEVB/u-boot.lds
+++ b/board/dave/PPChameleonEVB/u-boot.lds
@@ -74,9 +74,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/dbau1x00/u-boot.lds b/board/dbau1x00/u-boot.lds
index 6992c0f..8a871cf 100644
--- a/board/dbau1x00/u-boot.lds
+++ b/board/dbau1x00/u-boot.lds
@@ -54,12 +54,6 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-	}
-
 	. = ALIGN(4);
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/board/dvlhost/u-boot.lds b/board/dvlhost/u-boot.lds
index 5171630..1bd1700 100644
--- a/board/dvlhost/u-boot.lds
+++ b/board/dvlhost/u-boot.lds
@@ -54,11 +54,6 @@ SECTIONS
 		*(.got)
 	}
 	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/eltec/mhpc/u-boot.lds b/board/eltec/mhpc/u-boot.lds
index 25b8839..c8d3894 100644
--- a/board/eltec/mhpc/u-boot.lds
+++ b/board/eltec/mhpc/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/eltec/mhpc/u-boot.lds.debug b/board/eltec/mhpc/u-boot.lds.debug
index c28e2b9..92796e6 100644
--- a/board/eltec/mhpc/u-boot.lds.debug
+++ b/board/eltec/mhpc/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/emk/top860/u-boot.lds b/board/emk/top860/u-boot.lds
index 485c68d..22626d3 100644
--- a/board/emk/top860/u-boot.lds
+++ b/board/emk/top860/u-boot.lds
@@ -67,9 +67,6 @@ SECTIONS
 
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/ep88x/u-boot.lds b/board/ep88x/u-boot.lds
index 067fd5f..1dcc22a 100644
--- a/board/ep88x/u-boot.lds
+++ b/board/ep88x/u-boot.lds
@@ -62,9 +62,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/esd/dasa_sim/u-boot.lds b/board/esd/dasa_sim/u-boot.lds
index 607e601..7eca183 100644
--- a/board/esd/dasa_sim/u-boot.lds
+++ b/board/esd/dasa_sim/u-boot.lds
@@ -73,9 +73,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/esd/pmc440/u-boot-nand.lds b/board/esd/pmc440/u-boot-nand.lds
index 38f5cc6..ca7df45 100644
--- a/board/esd/pmc440/u-boot-nand.lds
+++ b/board/esd/pmc440/u-boot-nand.lds
@@ -102,9 +102,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 		#include <u-boot.lst>
diff --git a/board/esd/tasreg/u-boot.lds b/board/esd/tasreg/u-boot.lds
index 158828c..0d6a0f3 100644
--- a/board/esd/tasreg/u-boot.lds
+++ b/board/esd/tasreg/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/esteem192e/u-boot.lds b/board/esteem192e/u-boot.lds
index 3eaaad8..69f1500 100644
--- a/board/esteem192e/u-boot.lds
+++ b/board/esteem192e/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/etx094/u-boot.lds b/board/etx094/u-boot.lds
index df9b44a..56c3470 100644
--- a/board/etx094/u-boot.lds
+++ b/board/etx094/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/evb64260/u-boot.lds b/board/evb64260/u-boot.lds
index 05461ca..eac9c07 100644
--- a/board/evb64260/u-boot.lds
+++ b/board/evb64260/u-boot.lds
@@ -70,9 +70,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/fads/u-boot.lds b/board/fads/u-boot.lds
index 4a41db8..6022dbc 100644
--- a/board/fads/u-boot.lds
+++ b/board/fads/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/flagadm/u-boot.lds b/board/flagadm/u-boot.lds
index 25b8839..c8d3894 100644
--- a/board/flagadm/u-boot.lds
+++ b/board/flagadm/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/flagadm/u-boot.lds.debug b/board/flagadm/u-boot.lds.debug
index c28e2b9..92796e6 100644
--- a/board/flagadm/u-boot.lds.debug
+++ b/board/flagadm/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5208evbe/u-boot.lds b/board/freescale/m5208evbe/u-boot.lds
index b1d2d01..2c151f2 100644
--- a/board/freescale/m5208evbe/u-boot.lds
+++ b/board/freescale/m5208evbe/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m52277evb/u-boot.lds b/board/freescale/m52277evb/u-boot.lds
index 0a7ca55..dbd6f6a 100644
--- a/board/freescale/m52277evb/u-boot.lds
+++ b/board/freescale/m52277evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5235evb/u-boot.lds b/board/freescale/m5235evb/u-boot.lds
index a4a62ac..00932ae 100644
--- a/board/freescale/m5235evb/u-boot.lds
+++ b/board/freescale/m5235evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5249evb/u-boot.lds b/board/freescale/m5249evb/u-boot.lds
index 77b8e80..d054f20 100644
--- a/board/freescale/m5249evb/u-boot.lds
+++ b/board/freescale/m5249evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5253demo/u-boot.lds b/board/freescale/m5253demo/u-boot.lds
index 1dd5539..f8116f6 100644
--- a/board/freescale/m5253demo/u-boot.lds
+++ b/board/freescale/m5253demo/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5253evbe/u-boot.lds b/board/freescale/m5253evbe/u-boot.lds
index 77b8e80..d054f20 100644
--- a/board/freescale/m5253evbe/u-boot.lds
+++ b/board/freescale/m5253evbe/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5271evb/u-boot.lds b/board/freescale/m5271evb/u-boot.lds
index ecad667..133ec01 100644
--- a/board/freescale/m5271evb/u-boot.lds
+++ b/board/freescale/m5271evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5272c3/u-boot.lds b/board/freescale/m5272c3/u-boot.lds
index 77b8e80..d054f20 100644
--- a/board/freescale/m5272c3/u-boot.lds
+++ b/board/freescale/m5272c3/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5275evb/u-boot.lds b/board/freescale/m5275evb/u-boot.lds
index 60c0501..fc68de1 100644
--- a/board/freescale/m5275evb/u-boot.lds
+++ b/board/freescale/m5275evb/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5282evb/u-boot.lds b/board/freescale/m5282evb/u-boot.lds
index a708d06..0c92d31 100644
--- a/board/freescale/m5282evb/u-boot.lds
+++ b/board/freescale/m5282evb/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m53017evb/u-boot.lds b/board/freescale/m53017evb/u-boot.lds
index 81da237..d25a36f 100644
--- a/board/freescale/m53017evb/u-boot.lds
+++ b/board/freescale/m53017evb/u-boot.lds
@@ -71,9 +71,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5329evb/u-boot.lds b/board/freescale/m5329evb/u-boot.lds
index c575522..6616594 100644
--- a/board/freescale/m5329evb/u-boot.lds
+++ b/board/freescale/m5329evb/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m5373evb/u-boot.lds b/board/freescale/m5373evb/u-boot.lds
index 5d2c655..bc40fd6 100644
--- a/board/freescale/m5373evb/u-boot.lds
+++ b/board/freescale/m5373evb/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m54451evb/u-boot.lds b/board/freescale/m54451evb/u-boot.lds
index 76ead53..91328a4 100644
--- a/board/freescale/m54451evb/u-boot.lds
+++ b/board/freescale/m54451evb/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m54455evb/u-boot.lds b/board/freescale/m54455evb/u-boot.lds
index 0d2cb02..36a4c26 100644
--- a/board/freescale/m54455evb/u-boot.lds
+++ b/board/freescale/m54455evb/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m547xevb/u-boot.lds b/board/freescale/m547xevb/u-boot.lds
index 11fa8bc..de4d0eb 100644
--- a/board/freescale/m547xevb/u-boot.lds
+++ b/board/freescale/m547xevb/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/m548xevb/u-boot.lds b/board/freescale/m548xevb/u-boot.lds
index 0c8ffd4..fbbe0c5 100644
--- a/board/freescale/m548xevb/u-boot.lds
+++ b/board/freescale/m548xevb/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/freescale/mx31ads/u-boot.lds b/board/freescale/mx31ads/u-boot.lds
index e59fd18..29ad0e6 100644
--- a/board/freescale/mx31ads/u-boot.lds
+++ b/board/freescale/mx31ads/u-boot.lds
@@ -57,9 +57,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/gr_cpci_ax2000/u-boot.lds b/board/gaisler/gr_cpci_ax2000/u-boot.lds
index ec72718..774c494 100644
--- a/board/gaisler/gr_cpci_ax2000/u-boot.lds
+++ b/board/gaisler/gr_cpci_ax2000/u-boot.lds
@@ -85,10 +85,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/gr_ep2s60/u-boot.lds b/board/gaisler/gr_ep2s60/u-boot.lds
index 5a38796..f6d1301 100644
--- a/board/gaisler/gr_ep2s60/u-boot.lds
+++ b/board/gaisler/gr_ep2s60/u-boot.lds
@@ -85,10 +85,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/gr_xc3s_1500/u-boot.lds b/board/gaisler/gr_xc3s_1500/u-boot.lds
index 3da021c..7df6e83 100644
--- a/board/gaisler/gr_xc3s_1500/u-boot.lds
+++ b/board/gaisler/gr_xc3s_1500/u-boot.lds
@@ -85,10 +85,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/grsim/u-boot.lds b/board/gaisler/grsim/u-boot.lds
index eba1015..b241cbc 100644
--- a/board/gaisler/grsim/u-boot.lds
+++ b/board/gaisler/grsim/u-boot.lds
@@ -84,10 +84,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gaisler/grsim_leon2/u-boot.lds b/board/gaisler/grsim_leon2/u-boot.lds
index 4f90a46..63c15b9 100644
--- a/board/gaisler/grsim_leon2/u-boot.lds
+++ b/board/gaisler/grsim_leon2/u-boot.lds
@@ -84,10 +84,6 @@ SECTIONS
 
 	/* CMD Table */
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/gen860t/u-boot-flashenv.lds b/board/gen860t/u-boot-flashenv.lds
index 8e04b11..1cbe7e3 100644
--- a/board/gen860t/u-boot-flashenv.lds
+++ b/board/gen860t/u-boot-flashenv.lds
@@ -71,9 +71,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 		#include <u-boot.lst>
diff --git a/board/gen860t/u-boot.lds b/board/gen860t/u-boot.lds
index c8602be..dd89c70 100644
--- a/board/gen860t/u-boot.lds
+++ b/board/gen860t/u-boot.lds
@@ -71,9 +71,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/genietv/u-boot.lds b/board/genietv/u-boot.lds
index 961222b..124b183 100644
--- a/board/genietv/u-boot.lds
+++ b/board/genietv/u-boot.lds
@@ -80,9 +80,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/genietv/u-boot.lds.debug b/board/genietv/u-boot.lds.debug
index a3479ba..e1cf249 100644
--- a/board/genietv/u-boot.lds.debug
+++ b/board/genietv/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/hermes/u-boot.lds b/board/hermes/u-boot.lds
index 9fe2f58..f02eb1c 100644
--- a/board/hermes/u-boot.lds
+++ b/board/hermes/u-boot.lds
@@ -72,9 +72,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/hermes/u-boot.lds.debug b/board/hermes/u-boot.lds.debug
index 6a53d8a..e84cc79 100644
--- a/board/hermes/u-boot.lds.debug
+++ b/board/hermes/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/hymod/u-boot.lds b/board/hymod/u-boot.lds
index 50e4788..7afae0a 100644
--- a/board/hymod/u-boot.lds
+++ b/board/hymod/u-boot.lds
@@ -110,9 +110,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/hymod/u-boot.lds.debug b/board/hymod/u-boot.lds.debug
index 46f2f8f..dc8c4e9 100644
--- a/board/hymod/u-boot.lds.debug
+++ b/board/hymod/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/icu862/u-boot.lds b/board/icu862/u-boot.lds
index f476967..6778eb1 100644
--- a/board/icu862/u-boot.lds
+++ b/board/icu862/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/icu862/u-boot.lds.debug b/board/icu862/u-boot.lds.debug
index 87ec870..3e075a8 100644
--- a/board/icu862/u-boot.lds.debug
+++ b/board/icu862/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/idmr/u-boot.lds b/board/idmr/u-boot.lds
index 158828c..0d6a0f3 100644
--- a/board/idmr/u-boot.lds
+++ b/board/idmr/u-boot.lds
@@ -65,9 +65,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/incaip/u-boot.lds b/board/incaip/u-boot.lds
index 6992c0f..8a871cf 100644
--- a/board/incaip/u-boot.lds
+++ b/board/incaip/u-boot.lds
@@ -54,12 +54,6 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-	}
-
 	. = ALIGN(4);
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/board/ip860/u-boot.lds b/board/ip860/u-boot.lds
index 9133469..18f962c 100644
--- a/board/ip860/u-boot.lds
+++ b/board/ip860/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/ip860/u-boot.lds.debug b/board/ip860/u-boot.lds.debug
index 79e4f2d..e47aff0 100644
--- a/board/ip860/u-boot.lds.debug
+++ b/board/ip860/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/ivm/u-boot.lds b/board/ivm/u-boot.lds
index 7e63cd7..4cca652 100644
--- a/board/ivm/u-boot.lds
+++ b/board/ivm/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/ivm/u-boot.lds.debug b/board/ivm/u-boot.lds.debug
index ff4581f..53a19b2 100644
--- a/board/ivm/u-boot.lds.debug
+++ b/board/ivm/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/korat/u-boot-F7FC.lds b/board/korat/u-boot-F7FC.lds
index f91310a..033cff4 100644
--- a/board/korat/u-boot-F7FC.lds
+++ b/board/korat/u-boot-F7FC.lds
@@ -108,9 +108,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   .u_boot_list : {
 	#include <u-boot.lst>
diff --git a/board/kup/kup4k/u-boot.lds b/board/kup/kup4k/u-boot.lds
index 9133469..18f962c 100644
--- a/board/kup/kup4k/u-boot.lds
+++ b/board/kup/kup4k/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/kup/kup4k/u-boot.lds.debug b/board/kup/kup4k/u-boot.lds.debug
index 1b042f8..b43a1e4 100644
--- a/board/kup/kup4k/u-boot.lds.debug
+++ b/board/kup/kup4k/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/kup/kup4x/u-boot.lds b/board/kup/kup4x/u-boot.lds
index 9133469..18f962c 100644
--- a/board/kup/kup4x/u-boot.lds
+++ b/board/kup/kup4x/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/kup/kup4x/u-boot.lds.debug b/board/kup/kup4x/u-boot.lds.debug
index 1b042f8..b43a1e4 100644
--- a/board/kup/kup4x/u-boot.lds.debug
+++ b/board/kup/kup4x/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/lantec/u-boot.lds b/board/lantec/u-boot.lds
index e57a794..9411802 100644
--- a/board/lantec/u-boot.lds
+++ b/board/lantec/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/lantec/u-boot.lds.debug b/board/lantec/u-boot.lds.debug
index 29148ee..e788f5c 100644
--- a/board/lantec/u-boot.lds.debug
+++ b/board/lantec/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/lwmon/u-boot.lds b/board/lwmon/u-boot.lds
index 78445b3..bc71b0d 100644
--- a/board/lwmon/u-boot.lds
+++ b/board/lwmon/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/lwmon/u-boot.lds.debug b/board/lwmon/u-boot.lds.debug
index 8fcdb90..0a3e646 100644
--- a/board/lwmon/u-boot.lds.debug
+++ b/board/lwmon/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/manroland/uc100/u-boot.lds b/board/manroland/uc100/u-boot.lds
index aa289cd..e32ae37 100644
--- a/board/manroland/uc100/u-boot.lds
+++ b/board/manroland/uc100/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/matrix_vision/mvsmr/u-boot.lds b/board/matrix_vision/mvsmr/u-boot.lds
index 5222ebd..5a3a9ea 100644
--- a/board/matrix_vision/mvsmr/u-boot.lds
+++ b/board/matrix_vision/mvsmr/u-boot.lds
@@ -74,9 +74,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/mbx8xx/u-boot.lds b/board/mbx8xx/u-boot.lds
index 9133469..18f962c 100644
--- a/board/mbx8xx/u-boot.lds
+++ b/board/mbx8xx/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/mbx8xx/u-boot.lds.debug b/board/mbx8xx/u-boot.lds.debug
index 722a405..4155b60 100644
--- a/board/mbx8xx/u-boot.lds.debug
+++ b/board/mbx8xx/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/micronas/vct/u-boot.lds b/board/micronas/vct/u-boot.lds
index 114ce10..2ce8d0e 100644
--- a/board/micronas/vct/u-boot.lds
+++ b/board/micronas/vct/u-boot.lds
@@ -53,13 +53,6 @@ SECTIONS
 	.sdata  : { *(.sdata*) }
 
 	. = ALIGN(4);
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-	}
-
-	. = ALIGN(4);
 	.u_boot_list : {
 		#include <u-boot.lst>
 	}
diff --git a/board/mousse/u-boot.lds b/board/mousse/u-boot.lds
index aff4269..43f91f1 100644
--- a/board/mousse/u-boot.lds
+++ b/board/mousse/u-boot.lds
@@ -60,9 +60,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/mousse/u-boot.lds.ram b/board/mousse/u-boot.lds.ram
index b3364be..5255651 100644
--- a/board/mousse/u-boot.lds.ram
+++ b/board/mousse/u-boot.lds.ram
@@ -85,9 +85,6 @@ SECTIONS
   } > ram
   */
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
    __start___ex_table = .;
     __ex_table : { *(__ex_table) } > ram
diff --git a/board/mousse/u-boot.lds.rom b/board/mousse/u-boot.lds.rom
index b4b9e02..29a34fb 100644
--- a/board/mousse/u-boot.lds.rom
+++ b/board/mousse/u-boot.lds.rom
@@ -102,9 +102,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   __start___ex_table = .;
   __ex_table : { *(__ex_table) }
diff --git a/board/mpl/pip405/u-boot.lds.debug b/board/mpl/pip405/u-boot.lds.debug
index 15cccee..d7a2e56 100644
--- a/board/mpl/pip405/u-boot.lds.debug
+++ b/board/mpl/pip405/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/mvblue/u-boot.lds b/board/mvblue/u-boot.lds
index dc5747c..c378564 100644
--- a/board/mvblue/u-boot.lds
+++ b/board/mvblue/u-boot.lds
@@ -70,9 +70,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netphone/u-boot.lds b/board/netphone/u-boot.lds
index ae48cba..cdc1fda 100644
--- a/board/netphone/u-boot.lds
+++ b/board/netphone/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netphone/u-boot.lds.debug b/board/netphone/u-boot.lds.debug
index ffebab5..900da64 100644
--- a/board/netphone/u-boot.lds.debug
+++ b/board/netphone/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netta/u-boot.lds b/board/netta/u-boot.lds
index ae48cba..cdc1fda 100644
--- a/board/netta/u-boot.lds
+++ b/board/netta/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netta/u-boot.lds.debug b/board/netta/u-boot.lds.debug
index ffebab5..900da64 100644
--- a/board/netta/u-boot.lds.debug
+++ b/board/netta/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netta2/u-boot.lds b/board/netta2/u-boot.lds
index ae48cba..cdc1fda 100644
--- a/board/netta2/u-boot.lds
+++ b/board/netta2/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netta2/u-boot.lds.debug b/board/netta2/u-boot.lds.debug
index ffebab5..900da64 100644
--- a/board/netta2/u-boot.lds.debug
+++ b/board/netta2/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netvia/u-boot.lds b/board/netvia/u-boot.lds
index ae48cba..cdc1fda 100644
--- a/board/netvia/u-boot.lds
+++ b/board/netvia/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/netvia/u-boot.lds.debug b/board/netvia/u-boot.lds.debug
index b37ea7b..6cbf4dc 100644
--- a/board/netvia/u-boot.lds.debug
+++ b/board/netvia/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/nx823/u-boot.lds b/board/nx823/u-boot.lds
index 25b8839..c8d3894 100644
--- a/board/nx823/u-boot.lds
+++ b/board/nx823/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/nx823/u-boot.lds.debug b/board/nx823/u-boot.lds.debug
index c28e2b9..92796e6 100644
--- a/board/nx823/u-boot.lds.debug
+++ b/board/nx823/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/openrisc/openrisc-generic/u-boot.lds b/board/openrisc/openrisc-generic/u-boot.lds
index 5995464..4cffacb 100644
--- a/board/openrisc/openrisc-generic/u-boot.lds
+++ b/board/openrisc/openrisc-generic/u-boot.lds
@@ -26,9 +26,6 @@ SECTIONS
 		_endtext = .;
 	}  > ram
 
-	 __u_boot_cmd_start = .;
-	 .u_boot_cmd : { *(.u_boot_cmd) } > ram
-	 __u_boot_cmd_end = .;
 
 	 . = ALIGN(4);
 	 .u_boot_list : {
diff --git a/board/pb1x00/u-boot.lds b/board/pb1x00/u-boot.lds
index 41b001c..07ddd36 100644
--- a/board/pb1x00/u-boot.lds
+++ b/board/pb1x00/u-boot.lds
@@ -54,12 +54,6 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-	}
-
 	. = ALIGN(4);
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/board/qemu-mips/u-boot.lds b/board/qemu-mips/u-boot.lds
index 4515043..f65a1e8 100644
--- a/board/qemu-mips/u-boot.lds
+++ b/board/qemu-mips/u-boot.lds
@@ -55,13 +55,6 @@ SECTIONS
 	. = ALIGN(4);
 	.sdata  : { *(.sdata*) }
 
-	. = .;
-	.u_boot_cmd : {
-	__u_boot_cmd_start = .;
-	*(.u_boot_cmd)
-	__u_boot_cmd_end = .;
-	}
-
 	. = ALIGN(4);
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/board/qi/qi_lb60/u-boot.lds b/board/qi/qi_lb60/u-boot.lds
index 4a373ec..b3cb869 100644
--- a/board/qi/qi_lb60/u-boot.lds
+++ b/board/qi/qi_lb60/u-boot.lds
@@ -47,9 +47,6 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/board/quantum/u-boot.lds b/board/quantum/u-boot.lds
index 9133469..18f962c 100644
--- a/board/quantum/u-boot.lds
+++ b/board/quantum/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/r360mpi/u-boot.lds b/board/r360mpi/u-boot.lds
index 3138154..3ef0d9e 100644
--- a/board/r360mpi/u-boot.lds
+++ b/board/r360mpi/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/rbc823/u-boot.lds b/board/rbc823/u-boot.lds
index 5e3d78f..a86b568 100644
--- a/board/rbc823/u-boot.lds
+++ b/board/rbc823/u-boot.lds
@@ -77,9 +77,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/renesas/sh7757lcr/u-boot.lds b/board/renesas/sh7757lcr/u-boot.lds
index b2cf392..cf406ce 100644
--- a/board/renesas/sh7757lcr/u-boot.lds
+++ b/board/renesas/sh7757lcr/u-boot.lds
@@ -77,13 +77,6 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
 
 	.u_boot_list : {
 		#include <u-boot.lst>
diff --git a/board/rsdproto/u-boot.lds b/board/rsdproto/u-boot.lds
index d43663c..ff95029 100644
--- a/board/rsdproto/u-boot.lds
+++ b/board/rsdproto/u-boot.lds
@@ -97,9 +97,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/samsung/smdk6400/u-boot-nand.lds b/board/samsung/smdk6400/u-boot-nand.lds
index 50924fc..fbb442a 100644
--- a/board/samsung/smdk6400/u-boot-nand.lds
+++ b/board/samsung/smdk6400/u-boot-nand.lds
@@ -47,9 +47,6 @@ SECTIONS
 	. = ALIGN(4);
 	.got : { *(.got) }
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = align(4);
 	.u_boot_list : {
diff --git a/board/sandburst/karef/u-boot.lds.debug b/board/sandburst/karef/u-boot.lds.debug
index c3a72cb..7a0757f 100644
--- a/board/sandburst/karef/u-boot.lds.debug
+++ b/board/sandburst/karef/u-boot.lds.debug
@@ -115,9 +115,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/sandburst/metrobox/u-boot.lds.debug b/board/sandburst/metrobox/u-boot.lds.debug
index bb73307..07bd6fe 100644
--- a/board/sandburst/metrobox/u-boot.lds.debug
+++ b/board/sandburst/metrobox/u-boot.lds.debug
@@ -115,9 +115,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/sandpoint/u-boot.lds b/board/sandpoint/u-boot.lds
index a9c06ad..ae3afa1 100644
--- a/board/sandpoint/u-boot.lds
+++ b/board/sandpoint/u-boot.lds
@@ -68,9 +68,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/siemens/IAD210/u-boot.lds b/board/siemens/IAD210/u-boot.lds
index 4214ace..c0f1073 100644
--- a/board/siemens/IAD210/u-boot.lds
+++ b/board/siemens/IAD210/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/sixnet/u-boot.lds b/board/sixnet/u-boot.lds
index 0a71707..6cf7a01 100644
--- a/board/sixnet/u-boot.lds
+++ b/board/sixnet/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/snmc/qs850/u-boot.lds b/board/snmc/qs850/u-boot.lds
index eca88e5..f57f8a0 100644
--- a/board/snmc/qs850/u-boot.lds
+++ b/board/snmc/qs850/u-boot.lds
@@ -69,9 +69,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/snmc/qs860t/u-boot.lds b/board/snmc/qs860t/u-boot.lds
index 9133469..18f962c 100644
--- a/board/snmc/qs860t/u-boot.lds
+++ b/board/snmc/qs860t/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/spc1920/u-boot.lds b/board/spc1920/u-boot.lds
index 9133469..18f962c 100644
--- a/board/spc1920/u-boot.lds
+++ b/board/spc1920/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/spd8xx/u-boot.lds b/board/spd8xx/u-boot.lds
index a233817..f69e39d 100644
--- a/board/spd8xx/u-boot.lds
+++ b/board/spd8xx/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/spd8xx/u-boot.lds.debug b/board/spd8xx/u-boot.lds.debug
index 722a405..4155b60 100644
--- a/board/spd8xx/u-boot.lds.debug
+++ b/board/spd8xx/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/stx/stxxtc/u-boot.lds b/board/stx/stxxtc/u-boot.lds
index ae48cba..cdc1fda 100644
--- a/board/stx/stxxtc/u-boot.lds
+++ b/board/stx/stxxtc/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/stx/stxxtc/u-boot.lds.debug b/board/stx/stxxtc/u-boot.lds.debug
index ffebab5..900da64 100644
--- a/board/stx/stxxtc/u-boot.lds.debug
+++ b/board/stx/stxxtc/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/svm_sc8xx/u-boot.lds b/board/svm_sc8xx/u-boot.lds
index 4cdad4b..1635875 100644
--- a/board/svm_sc8xx/u-boot.lds
+++ b/board/svm_sc8xx/u-boot.lds
@@ -83,9 +83,6 @@ SECTIONS
 
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/tqc/tqm8xx/u-boot.lds b/board/tqc/tqm8xx/u-boot.lds
index ea2fc44..7cc41cd 100644
--- a/board/tqc/tqm8xx/u-boot.lds
+++ b/board/tqc/tqm8xx/u-boot.lds
@@ -81,9 +81,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/v37/u-boot.lds b/board/v37/u-boot.lds
index c82b1b3..fd2d72e 100644
--- a/board/v37/u-boot.lds
+++ b/board/v37/u-boot.lds
@@ -66,9 +66,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/w7o/u-boot.lds.debug b/board/w7o/u-boot.lds.debug
index 4d64088..2ce5a9a 100644
--- a/board/w7o/u-boot.lds.debug
+++ b/board/w7o/u-boot.lds.debug
@@ -106,9 +106,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/westel/amx860/u-boot.lds b/board/westel/amx860/u-boot.lds
index 6074736..9b69d3d 100644
--- a/board/westel/amx860/u-boot.lds
+++ b/board/westel/amx860/u-boot.lds
@@ -75,9 +75,6 @@ SECTIONS
   PROVIDE (edata = .);
 
   . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/westel/amx860/u-boot.lds.debug b/board/westel/amx860/u-boot.lds.debug
index 87ec870..3e075a8 100644
--- a/board/westel/amx860/u-boot.lds.debug
+++ b/board/westel/amx860/u-boot.lds.debug
@@ -107,9 +107,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/board/xes/xpedite1000/u-boot.lds.debug b/board/xes/xpedite1000/u-boot.lds.debug
index 5296165..c4e5706 100644
--- a/board/xes/xpedite1000/u-boot.lds.debug
+++ b/board/xes/xpedite1000/u-boot.lds.debug
@@ -111,9 +111,6 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
 
   . = ALIGN(4);
   .u_boot_list : {
diff --git a/include/command.h b/include/command.h
index 24864d5..10bc260 100644
--- a/include/command.h
+++ b/include/command.h
@@ -62,8 +62,6 @@ struct cmd_tbl_s {
 
 typedef struct cmd_tbl_s	cmd_tbl_t;
 
-extern cmd_tbl_t  __u_boot_cmd_start;
-extern cmd_tbl_t  __u_boot_cmd_end;
 
 #if defined(CONFIG_CMD_RUN)
 extern int do_run(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]);
diff --git a/nand_spl/board/freescale/mx31pdk/u-boot.lds b/nand_spl/board/freescale/mx31pdk/u-boot.lds
index b2a0f7c..da49c10 100644
--- a/nand_spl/board/freescale/mx31pdk/u-boot.lds
+++ b/nand_spl/board/freescale/mx31pdk/u-boot.lds
@@ -46,9 +46,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/nand_spl/board/karo/tx25/u-boot.lds b/nand_spl/board/karo/tx25/u-boot.lds
index 24a3c0c..ee36131 100644
--- a/nand_spl/board/karo/tx25/u-boot.lds
+++ b/nand_spl/board/karo/tx25/u-boot.lds
@@ -46,9 +46,6 @@ SECTIONS
 	}
 
 	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
diff --git a/nand_spl/board/samsung/smdk6400/u-boot.lds b/nand_spl/board/samsung/smdk6400/u-boot.lds
index 8481062..2ed6466 100644
--- a/nand_spl/board/samsung/smdk6400/u-boot.lds
+++ b/nand_spl/board/samsung/smdk6400/u-boot.lds
@@ -50,9 +50,6 @@ SECTIONS
 	. = ALIGN(4);
 	.got : { *(.got) }
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
 
 	. = ALIGN(4);
 	.u_boot_list : {
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 1/6 V4] common: Add symbol handling for generic lists into Makefile
  2012-10-17 10:43       ` [U-Boot] [PATCH 1/6 V4] " Marek Vasut
@ 2012-10-18 19:40         ` Wolfgang Denk
  2012-10-19 13:19           ` Marek Vasut
  2012-10-19 15:00         ` [U-Boot] [PATCH 1/6 V5] " Marek Vasut
  1 sibling, 1 reply; 48+ messages in thread
From: Wolfgang Denk @ 2012-10-18 19:40 UTC (permalink / raw)
  To: u-boot

Dear Marek Vasut,

In message <1350470636-7625-1-git-send-email-marex@denx.de> you wrote:
> This patch adds essential components for generation of the contents of
> the linker section that is used by the linker-generated array. All of
> the contents is held in a separate file, u-boot.lst, which is generated
> at runtime just before U-Boot is linked.
...
> --- a/Makefile
> +++ b/Makefile
> @@ -535,7 +535,10 @@ else
>  GEN_UBOOT = \
>  		UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
>  		sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
> -		cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) $$UNDEF_SYM $(__OBJS) \
> +		UNDEF_LST=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
> +		sed  -n -e 's/.*\($(SYM_PREFIX)_u_boot_list_.*\)/-u\1/p'|sort|uniq`;\

Maybe we can sae one call to objdump by storing the intermediate
result?

> +		cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) \
> +			$$UNDEF_SYM $$UNDEF_LST $(__OBJS) \

Hm.... we use UNDEF_SYM and UNDEF_LST in exactly the same way?  The
why cannot we do this all in a single run, like:

	UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
	sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p' \
		-e 's/.*\($(SYM_PREFIX)_u_boot_list_.*\)/-u\1/p' | sort | uniq`;\
	cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) $$UNDEF_SYM $(__OBJS) \
	...

?

>  	@rm -f $(obj)board/cray/L1/{bootscript.c,bootscript.image}	  \
>  	       $(obj)board/matrix_vision/*/bootscript.img		  \
>  	       $(obj)board/voiceblue/eeprom 				  \
> -	       $(obj)u-boot.lds						  \
> +	       $(obj)u-boot.lds,include/u-boot.lst			  \

s/,/ / here!!!

> +	@rm -f $(obj)nand_spl/{u-boot.{lds,lst},u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map,System.map}
> +	@rm -f $(obj)spl/{u-boot-spl,u-boot-spl.bin,u-boot-spl.{lds,lst},u-boot-spl.map}

Line length?


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
"There are some good people in it, but the orchestra as  a  whole  is
equivalent to a gang bent on destruction."      - John Cage, composer

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 1/6 V4] common: Add symbol handling for generic lists into Makefile
  2012-10-18 19:40         ` Wolfgang Denk
@ 2012-10-19 13:19           ` Marek Vasut
  2012-10-20 17:46             ` Tom Rini
  0 siblings, 1 reply; 48+ messages in thread
From: Marek Vasut @ 2012-10-19 13:19 UTC (permalink / raw)
  To: u-boot

Dear Wolfgang Denk,

[...]

> Maybe we can sae one call to objdump by storing the intermediate
> result?

I removed the other call in subsequent patch anyway, so this is fine now.

> > +		cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) \
> > +			$$UNDEF_SYM $$UNDEF_LST $(__OBJS) \
> 
> Hm.... we use UNDEF_SYM and UNDEF_LST in exactly the same way?  The
> why cannot we do this all in a single run, like:
> 
> 	UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
> 	sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p' \
> 		-e 's/.*\($(SYM_PREFIX)_u_boot_list_.*\)/-u\1/p' | sort | uniq`;
\
> 	cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) $$UNDEF_SYM $(__OBJS) \
> 	...
> 
> ?

See above, otherwise I do agree.

> >  	@rm -f $(obj)board/cray/L1/{bootscript.c,bootscript.image}	  \
> >  	
> >  	       $(obj)board/matrix_vision/*/bootscript.img		  \
> >  	       $(obj)board/voiceblue/eeprom 				  \
> > 
> > -	       $(obj)u-boot.lds						  \
> > +	       $(obj)u-boot.lds,include/u-boot.lst			  \
> 
> s/,/ / here!!!

Argh, it's been merged already, right? Fixup patch on the way.

> > +	@rm -f
> > $(obj)nand_spl/{u-boot.{lds,lst},u-boot-nand_spl.lds,u-boot-spl,u-boot-s
> > pl.map,System.map} +	@rm -f
> > $(obj)spl/{u-boot-spl,u-boot-spl.bin,u-boot-spl.{lds,lst},u-boot-spl.map
> > }
> 
> Line length?

True.

> Best regards,
> 
> Wolfgang Denk

Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 1/6 V5] common: Add symbol handling for generic lists into Makefile
  2012-10-17 10:43       ` [U-Boot] [PATCH 1/6 V4] " Marek Vasut
  2012-10-18 19:40         ` Wolfgang Denk
@ 2012-10-19 15:00         ` Marek Vasut
  2012-10-19 15:45           ` Joe Hershberger
                             ` (2 more replies)
  1 sibling, 3 replies; 48+ messages in thread
From: Marek Vasut @ 2012-10-19 15:00 UTC (permalink / raw)
  To: u-boot

This patch adds essential components for generation of the contents of
the linker section that is used by the linker-generated array. All of
the contents is held in a separate file, u-boot.lst, which is generated
at runtime just before U-Boot is linked.

The purpose of this code is to especially generate the appropriate
boundary symbols around each subsection in the section carrying the
linker-generated arrays. Obviously, the interim linker code for actual
placement of the variables into the section is generated too. The
generated file, u-boot.lst, is included into u-boot.lds via the linker
INCLUDE directive in u-boot.lds .

Adjustments are made in the Makefile and spl/Makefile so that the
u-boot.lds and u-boot-spl.lds depend on their respective .lst files.

Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Joe Hershberger <joe.hershberger@gmail.com>
Cc: Mike Frysinger <vapier@gentoo.org>
---
 .gitignore                                     |    1 +
 Makefile                                       |   20 ++++++--
 config.mk                                      |    2 +
 helper.mk                                      |   64 ++++++++++++++++++++++++
 nand_spl/board/freescale/mpc8536ds/Makefile    |    9 +++-
 nand_spl/board/freescale/mpc8569mds/Makefile   |    9 +++-
 nand_spl/board/freescale/mpc8572ds/Makefile    |    9 +++-
 nand_spl/board/freescale/mx31pdk/Makefile      |    9 +++-
 nand_spl/board/freescale/p1010rdb/Makefile     |    9 +++-
 nand_spl/board/freescale/p1023rds/Makefile     |    9 +++-
 nand_spl/board/freescale/p1_p2_rdb/Makefile    |    9 +++-
 nand_spl/board/freescale/p1_p2_rdb_pc/Makefile |    9 +++-
 nand_spl/board/karo/tx25/Makefile              |    9 +++-
 spl/.gitignore                                 |    1 +
 spl/Makefile                                   |    8 ++-
 15 files changed, 152 insertions(+), 25 deletions(-)
 create mode 100644 helper.mk

V2:
- Rebase on top of testing/dm-kerneldoc
- Fix INCLUDE u-boot.lds in linker scripts. It didn't work with older LD,
  use #include instead and make use of CPP.
- Fix placement of u-boot.lds for NAND SPL
V3:
- Rebase on top of u-boot/next
- Put u-boot.lst into include/ , so the CPP finds it easily.
V4:
- Fix the MIPS breakage
V5:
- Fix top-level Makefile, which already has line-over-80 issue and it has
  only gone worse with this patch adding more contents to such lines by
  spliting these lines

diff --git a/.gitignore b/.gitignore
index d91e91b..1ac43f2 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,6 +38,7 @@
 /u-boot.sha1
 /u-boot.dis
 /u-boot.lds
+/u-boot.lst
 /u-boot.ubl
 /u-boot.ais
 /u-boot.dtb
diff --git a/Makefile b/Makefile
index 08eecbb..c4afc9f 100644
--- a/Makefile
+++ b/Makefile
@@ -535,7 +535,10 @@ else
 GEN_UBOOT = \
 		UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
 		sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
-		cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) $$UNDEF_SYM $(__OBJS) \
+		UNDEF_LST=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
+		sed  -n -e 's/.*\($(SYM_PREFIX)_u_boot_list_.*\)/-u\1/p'|sort|uniq`;\
+		cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) \
+			$$UNDEF_SYM $$UNDEF_LST $(__OBJS) \
 			--start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
 			-Map u-boot.map -o u-boot
 endif
@@ -568,8 +571,12 @@ $(SUBDIR_EXAMPLES): $(obj)u-boot
 $(LDSCRIPT):	depend
 		$(MAKE) -C $(dir $@) $(notdir $@)
 
-$(obj)u-boot.lds: $(LDSCRIPT)
-		$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates u-boot.lst,
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(obj)include/u-boot.lst, $(LIBBOARD) $(LIBS)))
+$(obj)u-boot.lds: $(LDSCRIPT) $(obj)include/u-boot.lst
+		$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 nand_spl:	$(TIMESTAMP_FILE) $(VERSION_FILE) depend
 		$(MAKE) -C nand_spl/board/$(BOARDDIR) all
@@ -808,6 +815,7 @@ clean:
 	       $(obj)board/matrix_vision/*/bootscript.img		  \
 	       $(obj)board/voiceblue/eeprom 				  \
 	       $(obj)u-boot.lds						  \
+	       $(obj)include/u-boot.lst			  		  \
 	       $(obj)arch/blackfin/cpu/bootrom-asm-offsets.[chs]	  \
 	       $(obj)arch/blackfin/cpu/init.{lds,elf}
 	@rm -f $(obj)include/bmp_logo.h
@@ -841,8 +849,10 @@ clobber:	tidy
 	@rm -f $(obj)u-boot.dtb
 	@rm -f $(obj)u-boot.sb
 	@rm -f $(obj)u-boot.spr
-	@rm -f $(obj)nand_spl/{u-boot.lds,u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map,System.map}
-	@rm -f $(obj)spl/{u-boot-spl,u-boot-spl.bin,u-boot-spl.lds,u-boot-spl.map}
+	@rm -f $(obj)nand_spl/{u-boot.{lds,lst},System.map}
+	@rm -f $(obj)nand_spl/{u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map}
+	@rm -f $(obj)spl/{u-boot-spl,u-boot-spl.bin,u-boot-spl.map}
+	@rm -f $(obj)spl/{u-boot-spl.lds,u-boot.lst}
 	@rm -f $(obj)MLO
 	@rm -f $(obj)tools/xway-swap-bytes
 	@rm -f $(obj)arch/powerpc/cpu/mpc824x/bedbug_603e.c
diff --git a/config.mk b/config.mk
index bb5c69a..b7cd481 100644
--- a/config.mk
+++ b/config.mk
@@ -23,6 +23,8 @@
 
 #########################################################################
 
+include $(TOPDIR)/helper.mk
+
 ifeq ($(CURDIR),$(SRCTREE))
 dir :=
 else
diff --git a/helper.mk b/helper.mk
new file mode 100644
index 0000000..79a1da0
--- /dev/null
+++ b/helper.mk
@@ -0,0 +1,64 @@
+#
+# Copyright (C) 2012 Marek Vasut <marex@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.
+#
+#########################################################################
+
+##
+# make_u_boot_list - Generate contents of u_boot_list section
+# 1:		The name of the resulting file (usually u-boot.lst)
+# 2:		Files to analyze for possible u_boot_list entries
+#
+# This function generates the contents of the u_boot_list section,
+# including all the border symbols for it's subsections. The operation
+# of this function is as follows, numbering goes per lines:
+#
+# 1) Dump the ELF header sections from all files supplied via $(2)
+# 2) Filter out all other stuff that does not belong into .u_boot_list
+#    section.
+# 3) Fix up the lines so that the resulting output is is in format
+#    ".u_boot_list.*".
+# 4) Remove the last .something$, since that only contains the name
+#    of the variable to be put into a subsection. This name is irelevant
+#    for generation of border symbols, thus of no interest, remove it.
+# 5) Take each line and for every dot "." in that line, print the whole
+#    line until that dot "." . This is important so that we have all
+#    parent border symbols generated as well.
+# 6) Load every line and firstly append "\a" at the end and print the
+#    line. Next, append "@" at the end and print the line. Finally,
+#    append "~" at the end of line. This will make sense in conjunction
+#    with 6) and 7).
+# 7) Sort the lines. It is imperative to use LC_COLLATE=C here because
+#    with this, the "\a" symbol is first and "~" symbol is last. Any
+#    other symbols fall inbetween. Symbols like "@", which marks the
+#    end of current line (representing current section) and ".", which
+#    means the line continues and thus represents subsection.
+# 8) With such ordering, all lines ending with "\a" will float at the
+#    begining of all lines with the same prefix. Thus it is easy to
+#    replace "\a" with __start and make it the __start border symbol.
+#    Very similarly for "~", which will be always at the bottom and so
+#    can be replaced by "__end" and made into the __end border symbol.
+#    Finally, every line ending with "@" symbol will be transformed
+#    into " *(SORT(${line}*)); " format, which in the linker parlance
+#    will allow it to trap all symbols relevant to the subsection.
+#
+define make_u_boot_list
+$(1): $(2)
+	$(OBJDUMP) -h $(2) | \
+	sed -n -e '/.*\.u_boot_list[^ ]\+/ ! {d;n}' \
+		-e 's/.*\(\.u_boot_list[^ ]\+\).*$$$$/\1/' \
+		-e 's/\.[^\.]\+$$$$//' \
+		-e ':s /^.\+$$$$/ { p;s/^\(.*\)\.[^\.]*$$$$/\1/;b s }' | \
+	sed -n -e 'h;s/$$$$/\a/p;g;s/$$$$/@/p;g;s/$$$$/~/p;' | \
+	LC_COLLATE=C sort -u | \
+	sed -n -e '/\a$$$$/ { s/\./_/g;s/\a$$$$/__start = .;/p; }'\
+		-e '/~$$$$/ { s/\./_/g;s/~$$$$/__end = .;/p; }'\
+		-e '/@$$$$/ { s/\(.*\)@$$$$/*(SORT(\1.*));/p }' > $(1)
+endef
diff --git a/nand_spl/board/freescale/mpc8536ds/Makefile b/nand_spl/board/freescale/mpc8536ds/Makefile
index 43da3df..e5388d8 100644
--- a/nand_spl/board/freescale/mpc8536ds/Makefile
+++ b/nand_spl/board/freescale/mpc8536ds/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -61,8 +62,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/mpc8569mds/Makefile b/nand_spl/board/freescale/mpc8569mds/Makefile
index 43da3df..e5388d8 100644
--- a/nand_spl/board/freescale/mpc8569mds/Makefile
+++ b/nand_spl/board/freescale/mpc8569mds/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -61,8 +62,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/mpc8572ds/Makefile b/nand_spl/board/freescale/mpc8572ds/Makefile
index 43da3df..e5388d8 100644
--- a/nand_spl/board/freescale/mpc8572ds/Makefile
+++ b/nand_spl/board/freescale/mpc8572ds/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -61,8 +62,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/mx31pdk/Makefile b/nand_spl/board/freescale/mx31pdk/Makefile
index 87784d2..43e72c4 100644
--- a/nand_spl/board/freescale/mx31pdk/Makefile
+++ b/nand_spl/board/freescale/mx31pdk/Makefile
@@ -6,6 +6,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
 	   $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_SPL_BUILD -DCONFIG_NAND_SPL
@@ -36,8 +37,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $@
 
-$(nandobj)u-boot.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 #########################################################################
 
diff --git a/nand_spl/board/freescale/p1010rdb/Makefile b/nand_spl/board/freescale/p1010rdb/Makefile
index cdbd492..f270faa 100644
--- a/nand_spl/board/freescale/p1010rdb/Makefile
+++ b/nand_spl/board/freescale/p1010rdb/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) $(LDFLAGS) \
 	   $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -62,8 +63,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/p1023rds/Makefile b/nand_spl/board/freescale/p1023rds/Makefile
index da43521..b288284 100644
--- a/nand_spl/board/freescale/p1023rds/Makefile
+++ b/nand_spl/board/freescale/p1023rds/Makefile
@@ -27,6 +27,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -57,8 +58,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/p1_p2_rdb/Makefile b/nand_spl/board/freescale/p1_p2_rdb/Makefile
index 43da3df..e5388d8 100644
--- a/nand_spl/board/freescale/p1_p2_rdb/Makefile
+++ b/nand_spl/board/freescale/p1_p2_rdb/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -61,8 +62,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/freescale/p1_p2_rdb_pc/Makefile b/nand_spl/board/freescale/p1_p2_rdb_pc/Makefile
index 46cf709..7146d16 100644
--- a/nand_spl/board/freescale/p1_p2_rdb_pc/Makefile
+++ b/nand_spl/board/freescale/p1_p2_rdb_pc/Makefile
@@ -32,6 +32,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/$(CPUDIR)/u-boot-nand_spl.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot-nand_spl.lds -Ttext $(CONFIG_SYS_TEXT_BASE_SPL) \
 		$(LDFLAGS) $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_NAND_SPL
@@ -62,8 +63,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot-nand_spl.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $(nandobj)u-boot-spl
 
-$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot-nand_spl.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 # create symbolic links for common files
 
diff --git a/nand_spl/board/karo/tx25/Makefile b/nand_spl/board/karo/tx25/Makefile
index 0336346..becf7fa 100644
--- a/nand_spl/board/karo/tx25/Makefile
+++ b/nand_spl/board/karo/tx25/Makefile
@@ -27,6 +27,7 @@ include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
+LSTSCRIPT= $(nandobj)/board/$(BOARDDIR)/u-boot.lst
 LDFLAGS := -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
 	   $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_SPL_BUILD -DCONFIG_NAND_SPL
@@ -57,8 +58,12 @@ $(nandobj)u-boot-spl:	$(OBJS) $(nandobj)u-boot.lds
 		-Map $(nandobj)u-boot-spl.map \
 		-o $@
 
-$(nandobj)u-boot.lds: $(LDSCRIPT)
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - <$^ >$@
+# The following line expands into whole rule which generates $(LSTSCRIPT),
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(LSTSCRIPT), $(OBJS)))
+$(nandobj)u-boot.lds: $(LDSCRIPT) $(LSTSCRIPT)
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj) -ansi -D__ASSEMBLY__ -P - <$< >$@
 
 #########################################################################
 
diff --git a/spl/.gitignore b/spl/.gitignore
index 7c88147..8cf487e 100644
--- a/spl/.gitignore
+++ b/spl/.gitignore
@@ -2,3 +2,4 @@ u-boot-spl
 u-boot-spl.bin
 u-boot-spl.lds
 u-boot-spl.map
+u-boot.lst
diff --git a/spl/Makefile b/spl/Makefile
index 92267d6..20a943c 100644
--- a/spl/Makefile
+++ b/spl/Makefile
@@ -154,8 +154,12 @@ $(START):	depend
 $(LIBS):	depend
 	$(MAKE) -C $(SRCTREE)$(dir $(subst $(SPLTREE),,$@))
 
-$(obj)u-boot-spl.lds: $(LDSCRIPT) depend
-	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -ansi -D__ASSEMBLY__ -P - < $< > $@
+# The following line expands into whole rule which generates u-boot.lst,
+# the file containing u-boots LG-array linker section. This is included into
+# $(LDSCRIPT). The function make_u_boot_list is defined in helper.mk file.
+$(eval $(call make_u_boot_list, $(obj)u-boot.lst, $(LIBS)))
+$(obj)u-boot-spl.lds: $(LDSCRIPT) $(obj)u-boot.lst depend
+	$(CPP) $(CPPFLAGS) $(LDPPFLAGS) -I$(obj). -ansi -D__ASSEMBLY__ -P - < $< > $@
 
 depend:	$(obj).depend
 .PHONY: depend
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 1/6 V5] common: Add symbol handling for generic lists into Makefile
  2012-10-19 15:00         ` [U-Boot] [PATCH 1/6 V5] " Marek Vasut
@ 2012-10-19 15:45           ` Joe Hershberger
  2012-10-19 15:48           ` Joe Hershberger
  2012-10-22 21:04           ` Tom Rini
  2 siblings, 0 replies; 48+ messages in thread
From: Joe Hershberger @ 2012-10-19 15:45 UTC (permalink / raw)
  To: u-boot

Hi Marek,

On Fri, Oct 19, 2012 at 10:00 AM, Marek Vasut <marex@denx.de> wrote:
> This patch adds essential components for generation of the contents of
> the linker section that is used by the linker-generated array. All of
> the contents is held in a separate file, u-boot.lst, which is generated
> at runtime just before U-Boot is linked.
>
> The purpose of this code is to especially generate the appropriate
> boundary symbols around each subsection in the section carrying the
> linker-generated arrays. Obviously, the interim linker code for actual
> placement of the variables into the section is generated too. The
> generated file, u-boot.lst, is included into u-boot.lds via the linker
> INCLUDE directive in u-boot.lds .
>
> Adjustments are made in the Makefile and spl/Makefile so that the
> u-boot.lds and u-boot-spl.lds depend on their respective .lst files.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Joe Hershberger <joe.hershberger@gmail.com>
> Cc: Mike Frysinger <vapier@gentoo.org>
> ---

Acked-by: Joe Hershberger <joe.hershberger@ni.com>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 1/6 V5] common: Add symbol handling for generic lists into Makefile
  2012-10-19 15:00         ` [U-Boot] [PATCH 1/6 V5] " Marek Vasut
  2012-10-19 15:45           ` Joe Hershberger
@ 2012-10-19 15:48           ` Joe Hershberger
  2012-10-22 21:04           ` Tom Rini
  2 siblings, 0 replies; 48+ messages in thread
From: Joe Hershberger @ 2012-10-19 15:48 UTC (permalink / raw)
  To: u-boot

Hi Marek,

On Fri, Oct 19, 2012 at 10:00 AM, Marek Vasut <marex@denx.de> wrote:
> This patch adds essential components for generation of the contents of
> the linker section that is used by the linker-generated array. All of
> the contents is held in a separate file, u-boot.lst, which is generated
> at runtime just before U-Boot is linked.
>
> The purpose of this code is to especially generate the appropriate
> boundary symbols around each subsection in the section carrying the
> linker-generated arrays. Obviously, the interim linker code for actual
> placement of the variables into the section is generated too. The
> generated file, u-boot.lst, is included into u-boot.lds via the linker
> INCLUDE directive in u-boot.lds .
>
> Adjustments are made in the Makefile and spl/Makefile so that the
> u-boot.lds and u-boot-spl.lds depend on their respective .lst files.
>
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Joe Hershberger <joe.hershberger@gmail.com>
> Cc: Mike Frysinger <vapier@gentoo.org>
> ---

Tested on Panda Board.

Tested-by: Joe Hershberger <joe.hershberger@ni.com>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 1/6 V4] common: Add symbol handling for generic lists into Makefile
  2012-10-19 13:19           ` Marek Vasut
@ 2012-10-20 17:46             ` Tom Rini
  2012-10-20 18:56               ` Marek Vasut
  0 siblings, 1 reply; 48+ messages in thread
From: Tom Rini @ 2012-10-20 17:46 UTC (permalink / raw)
  To: u-boot

On Fri, Oct 19, 2012 at 03:19:19PM +0200, Marek Vasut wrote:
> Dear Wolfgang Denk,
> 
> [...]
> 
> > Maybe we can sae one call to objdump by storing the intermediate
> > result?
> 
> I removed the other call in subsequent patch anyway, so this is fine now.
> 
> > > +		cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) \
> > > +			$$UNDEF_SYM $$UNDEF_LST $(__OBJS) \
> > 
> > Hm.... we use UNDEF_SYM and UNDEF_LST in exactly the same way?  The
> > why cannot we do this all in a single run, like:
> > 
> > 	UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
> > 	sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p' \
> > 		-e 's/.*\($(SYM_PREFIX)_u_boot_list_.*\)/-u\1/p' | sort | uniq`;
> \
> > 	cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) $$UNDEF_SYM $(__OBJS) \
> > 	...
> > 
> > ?
> 
> See above, otherwise I do agree.

It's not a big deal, in the end.  But, why can't you dump the file once
and pass two regexps to sed rather than dump it twice, regex it twice
and reference two variables?

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121020/75518667/attachment.pgp>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 1/6 V4] common: Add symbol handling for generic lists into Makefile
  2012-10-20 17:46             ` Tom Rini
@ 2012-10-20 18:56               ` Marek Vasut
  2012-10-21  5:20                 ` Tom Rini
  0 siblings, 1 reply; 48+ messages in thread
From: Marek Vasut @ 2012-10-20 18:56 UTC (permalink / raw)
  To: u-boot

Dear Tom Rini,

> On Fri, Oct 19, 2012 at 03:19:19PM +0200, Marek Vasut wrote:
> > Dear Wolfgang Denk,
> > 
> > [...]
> > 
> > > Maybe we can sae one call to objdump by storing the intermediate
> > > result?
> > 
> > I removed the other call in subsequent patch anyway, so this is fine now.
> > 
> > > > +		cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) \
> > > > +			$$UNDEF_SYM $$UNDEF_LST $(__OBJS) \
> > > 
> > > Hm.... we use UNDEF_SYM and UNDEF_LST in exactly the same way?  The
> > > 
> > > why cannot we do this all in a single run, like:
> > > 	UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
> > > 	sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p' \
> > > 	
> > > 		-e 's/.*\($(SYM_PREFIX)_u_boot_list_.*\)/-u\1/p' | sort | uniq`;
> > 
> > \
> > 
> > > 	cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) $$UNDEF_SYM $(__OBJS)
> > > 	\ ...
> > > 
> > > ?
> > 
> > See above, otherwise I do agree.
> 
> It's not a big deal, in the end.  But, why can't you dump the file once
> and pass two regexps to sed rather than dump it twice, regex it twice
> and reference two variables?

I can ... shall I redo the patches just for the heck of it with no obvious 
benefit at all ... when the $$UNDEF_SYM is removed in 5/5 anyway?

Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 1/6 V4] common: Add symbol handling for generic lists into Makefile
  2012-10-20 18:56               ` Marek Vasut
@ 2012-10-21  5:20                 ` Tom Rini
  0 siblings, 0 replies; 48+ messages in thread
From: Tom Rini @ 2012-10-21  5:20 UTC (permalink / raw)
  To: u-boot

On Sat, Oct 20, 2012 at 08:56:00PM +0200, Marek Vasut wrote:
> Dear Tom Rini,
> 
> > On Fri, Oct 19, 2012 at 03:19:19PM +0200, Marek Vasut wrote:
> > > Dear Wolfgang Denk,
> > > 
> > > [...]
> > > 
> > > > Maybe we can sae one call to objdump by storing the intermediate
> > > > result?
> > > 
> > > I removed the other call in subsequent patch anyway, so this is fine now.
> > > 
> > > > > +		cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) \
> > > > > +			$$UNDEF_SYM $$UNDEF_LST $(__OBJS) \
> > > > 
> > > > Hm.... we use UNDEF_SYM and UNDEF_LST in exactly the same way?  The
> > > > 
> > > > why cannot we do this all in a single run, like:
> > > > 	UNDEF_SYM=`$(OBJDUMP) -x $(LIBBOARD) $(LIBS) | \
> > > > 	sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p' \
> > > > 	
> > > > 		-e 's/.*\($(SYM_PREFIX)_u_boot_list_.*\)/-u\1/p' | sort | uniq`;
> > > 
> > > \
> > > 
> > > > 	cd $(LNDIR) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) $$UNDEF_SYM $(__OBJS)
> > > > 	\ ...
> > > > 
> > > > ?
> > > 
> > > See above, otherwise I do agree.
> > 
> > It's not a big deal, in the end.  But, why can't you dump the file once
> > and pass two regexps to sed rather than dump it twice, regex it twice
> > and reference two variables?
> 
> I can ... shall I redo the patches just for the heck of it with no obvious 
> benefit at all ... when the $$UNDEF_SYM is removed in 5/5 anyway?

Well, 5/5 would have also been a little cleaner too, since you would
have just been re-using UNDEF_SYM (which it still is, a list of symbols
to mark as undefined), and if you did the lst regex first, it'd be a one
line change to the Makefile (if you keep the sort and uniq on a separate
line for readability).  I am however, not that evil.  But please do keep
in mind all the comments you receive and don't just discard them because
you discard the section later.  You might end up with nicer looking
final changes.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121020/31eaa5dd/attachment.pgp>

^ permalink raw reply	[flat|nested] 48+ messages in thread

* [U-Boot] [PATCH 1/6 V5] common: Add symbol handling for generic lists into Makefile
  2012-10-19 15:00         ` [U-Boot] [PATCH 1/6 V5] " Marek Vasut
  2012-10-19 15:45           ` Joe Hershberger
  2012-10-19 15:48           ` Joe Hershberger
@ 2012-10-22 21:04           ` Tom Rini
  2 siblings, 0 replies; 48+ messages in thread
From: Tom Rini @ 2012-10-22 21:04 UTC (permalink / raw)
  To: u-boot

On Fri, Oct 19, 2012 at 05:00:10PM +0200, Marek Vasut wrote:

> This patch adds essential components for generation of the contents of
> the linker section that is used by the linker-generated array. All of
> the contents is held in a separate file, u-boot.lst, which is generated
> at runtime just before U-Boot is linked.
> 
> The purpose of this code is to especially generate the appropriate
> boundary symbols around each subsection in the section carrying the
> linker-generated arrays. Obviously, the interim linker code for actual
> placement of the variables into the section is generated too. The
> generated file, u-boot.lst, is included into u-boot.lds via the linker
> INCLUDE directive in u-boot.lds .
> 
> Adjustments are made in the Makefile and spl/Makefile so that the
> u-boot.lds and u-boot-spl.lds depend on their respective .lst files.
> 
> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Joe Hershberger <joe.hershberger@gmail.com>
> Cc: Mike Frysinger <vapier@gentoo.org>

This along with v3 of 2, 3, 4 and 6 of the series and v4 of 5 of 6 have
been applied to u-boot/master, thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20121022/c9ea3789/attachment.pgp>

^ permalink raw reply	[flat|nested] 48+ messages in thread

end of thread, other threads:[~2012-10-22 21:04 UTC | newest]

Thread overview: 48+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-09-30  0:17 [U-Boot] [PATCH 0/5] Linker-generated arrays (take 2) Marek Vasut
2012-09-30  0:17 ` [U-Boot] [PATCH 1/5] common: Add symbol handling for generic lists into Makefile Marek Vasut
2012-10-02 23:40   ` Joe Hershberger
2012-09-30  0:17 ` [U-Boot] [PATCH 2/5] common: Implement support for linker-generated arrays Marek Vasut
2012-10-02 23:40   ` Joe Hershberger
2012-09-30  0:17 ` [U-Boot] [PATCH 3/5] common: Add .u_boot_list into all linker files Marek Vasut
2012-10-02 23:41   ` Joe Hershberger
2012-10-03 14:55   ` Daniel Schwierzeck
2012-10-03 15:01     ` Marek Vasut
2012-10-03 15:21       ` Daniel Schwierzeck
2012-10-03 16:44         ` Marek Vasut
2012-10-03 18:05           ` Daniel Schwierzeck
2012-10-03 20:49   ` [U-Boot] [PATCH 3/5 V2] " Marek Vasut
2012-09-30  0:17 ` [U-Boot] [PATCH 4/5] common: Convert the U-Boot commands to LG-arrays Marek Vasut
2012-10-02 23:43   ` Joe Hershberger
2012-09-30  0:17 ` [U-Boot] [PATCH 5/5] common: Discard the __u_boot_cmd section Marek Vasut
2012-10-02 23:43   ` Joe Hershberger
2012-10-03 14:56   ` Daniel Schwierzeck
2012-10-03 20:50   ` [U-Boot] [PATCH 5/5 V2] " Marek Vasut
2012-10-07  0:06 ` [U-Boot] [PATCH 0/6 V2] Linker-generated arrays (take 2) Marek Vasut
2012-10-07  0:06   ` [U-Boot] [PATCH 1/6 V2] common: Add symbol handling for generic lists into Makefile Marek Vasut
2012-10-07  0:06   ` [U-Boot] [PATCH 2/6 V2] common: Implement support for linker-generated arrays Marek Vasut
2012-10-07  0:06   ` [U-Boot] [PATCH 3/6 V2] common: Add .u_boot_list into all linker files Marek Vasut
2012-10-07  0:06   ` [U-Boot] [PATCH 4/6 V2] common: Convert the U-Boot commands to LG-arrays Marek Vasut
2012-10-07  0:06   ` [U-Boot] [PATCH 5/6 V2] common: Discard the __u_boot_cmd section Marek Vasut
2012-10-07  0:06   ` [U-Boot] [PATCH 6/6 V2] kerneldoc: tmpl: Implement template for LG-arrays Marek Vasut
2012-10-12 20:27   ` [U-Boot] [PATCH 0/6 V3] Linker-generated arrays (take 2) Marek Vasut
2012-10-12 20:27     ` [U-Boot] [PATCH 1/6 V3] common: Add symbol handling for generic lists into Makefile Marek Vasut
2012-10-14 23:28       ` Daniel Schwierzeck
2012-10-15  1:49         ` Marek Vasut
2012-10-15  2:04           ` Daniel Schwierzeck
2012-10-15  2:09             ` Marek Vasut
2012-10-17 10:43       ` [U-Boot] [PATCH 1/6 V4] " Marek Vasut
2012-10-18 19:40         ` Wolfgang Denk
2012-10-19 13:19           ` Marek Vasut
2012-10-20 17:46             ` Tom Rini
2012-10-20 18:56               ` Marek Vasut
2012-10-21  5:20                 ` Tom Rini
2012-10-19 15:00         ` [U-Boot] [PATCH 1/6 V5] " Marek Vasut
2012-10-19 15:45           ` Joe Hershberger
2012-10-19 15:48           ` Joe Hershberger
2012-10-22 21:04           ` Tom Rini
2012-10-12 20:27     ` [U-Boot] [PATCH 2/6 V3] common: Implement support for linker-generated arrays Marek Vasut
2012-10-12 20:27     ` [U-Boot] [PATCH 3/6 V3] common: Add .u_boot_list into all linker files Marek Vasut
2012-10-12 20:27     ` [U-Boot] [PATCH 4/6 V3] common: Convert the U-Boot commands to LG-arrays Marek Vasut
2012-10-12 20:27     ` [U-Boot] [PATCH 5/6 V3] common: Discard the __u_boot_cmd section Marek Vasut
2012-10-17 10:45       ` [U-Boot] [PATCH 5/6 V4] " Marek Vasut
2012-10-12 20:27     ` [U-Boot] [PATCH 6/6 V3] kerneldoc: tmpl: Implement template for LG-arrays Marek Vasut

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.