]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
Merge branch 'master' of git://git.denx.de/u-boot-arm
authorTom Rini <trini@ti.com>
Mon, 18 Mar 2013 16:31:00 +0000 (12:31 -0400)
committerTom Rini <trini@ti.com>
Mon, 18 Mar 2013 18:37:18 +0000 (14:37 -0400)
Albert's rework of the linker scripts conflicted with Simon's making
everyone use __bss_end.  We also had a minor conflict over
README.scrapyard being added to in mainline and enhanced in
u-boot-arm/master with proper formatting.

Conflicts:
arch/arm/cpu/ixp/u-boot.lds
arch/arm/cpu/u-boot.lds
arch/arm/lib/Makefile
board/actux1/u-boot.lds
board/actux2/u-boot.lds
board/actux3/u-boot.lds
board/dvlhost/u-boot.lds
board/freescale/mx31ads/u-boot.lds
doc/README.scrapyard
include/configs/tegra-common.h

Build tested for all of ARM and run-time tested on am335x_evm.

Signed-off-by: Tom Rini <trini@ti.com>
142 files changed:
1  2 
MAINTAINERS
README
arch/arm/cpu/arm920t/ep93xx/u-boot.lds
arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds
arch/arm/cpu/arm926ejs/spear/u-boot-spl.lds
arch/arm/cpu/armv7/am33xx/u-boot-spl.lds
arch/arm/cpu/armv7/omap-common/u-boot-spl.lds
arch/arm/cpu/armv7/start.S
arch/arm/cpu/ixp/u-boot.lds
arch/arm/cpu/u-boot-spl.lds
arch/arm/cpu/u-boot.lds
arch/arm/lib/Makefile
arch/arm/lib/bss.c
arch/avr32/cpu/u-boot.lds
arch/nds32/cpu/n1213/u-boot.lds
arch/nios2/cpu/u-boot.lds
arch/powerpc/cpu/74xx_7xx/u-boot.lds
arch/powerpc/cpu/mpc512x/u-boot.lds
arch/powerpc/cpu/mpc5xx/u-boot.lds
arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
arch/powerpc/cpu/mpc5xxx/u-boot.lds
arch/powerpc/cpu/mpc8220/u-boot.lds
arch/powerpc/cpu/mpc824x/u-boot.lds
arch/powerpc/cpu/mpc8260/u-boot.lds
arch/powerpc/cpu/mpc83xx/u-boot.lds
arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
arch/powerpc/cpu/mpc85xx/u-boot-nand_spl.lds
arch/powerpc/cpu/mpc85xx/u-boot.lds
arch/powerpc/cpu/mpc86xx/u-boot.lds
arch/powerpc/cpu/ppc4xx/u-boot.lds
arch/sh/cpu/sh2/u-boot.lds
arch/sh/cpu/sh3/u-boot.lds
arch/sh/cpu/sh4/u-boot.lds
arch/x86/cpu/u-boot.lds
board/BuS/eb_cpu5282/u-boot.lds
board/LEOX/elpt860/u-boot.lds
board/RPXClassic/u-boot.lds
board/RPXlite/u-boot.lds
board/RPXlite_dw/u-boot.lds
board/RRvision/u-boot.lds
board/actux1/u-boot.lds
board/actux2/u-boot.lds
board/actux3/u-boot.lds
board/adder/u-boot.lds
board/ait/cam_enc_4xx/u-boot-spl.lds
board/altera/nios2-generic/u-boot.lds
board/amcc/acadia/u-boot-nand.lds
board/amcc/bamboo/u-boot-nand.lds
board/amcc/canyonlands/u-boot-nand.lds
board/amcc/kilauea/u-boot-nand.lds
board/amcc/sequoia/u-boot-nand.lds
board/amcc/sequoia/u-boot-ram.lds
board/astro/mcf5373l/u-boot.lds
board/cobra5272/u-boot.lds
board/cogent/u-boot.lds
board/dave/PPChameleonEVB/u-boot.lds
board/davinci/da8xxevm/u-boot-spl-da850evm.lds
board/davinci/da8xxevm/u-boot-spl-hawk.lds
board/dvlhost/u-boot.lds
board/eltec/mhpc/u-boot.lds
board/emk/top860/u-boot.lds
board/ep88x/u-boot.lds
board/esd/dasa_sim/u-boot.lds
board/esd/pmc440/u-boot-nand.lds
board/esd/tasreg/u-boot.lds
board/esteem192e/u-boot.lds
board/evb64260/u-boot.lds
board/fads/u-boot.lds
board/flagadm/u-boot.lds
board/freescale/m5208evbe/u-boot.lds
board/freescale/m52277evb/u-boot.lds
board/freescale/m5235evb/u-boot.lds
board/freescale/m5249evb/u-boot.lds
board/freescale/m5253demo/u-boot.lds
board/freescale/m5253evbe/u-boot.lds
board/freescale/m5271evb/u-boot.lds
board/freescale/m5272c3/u-boot.lds
board/freescale/m5275evb/u-boot.lds
board/freescale/m5282evb/u-boot.lds
board/freescale/m53017evb/u-boot.lds
board/freescale/m5329evb/u-boot.lds
board/freescale/m5373evb/u-boot.lds
board/freescale/m54418twr/u-boot.lds
board/freescale/m54451evb/u-boot.lds
board/freescale/m54455evb/u-boot.lds
board/freescale/m547xevb/u-boot.lds
board/freescale/m548xevb/u-boot.lds
board/freescale/mx31ads/u-boot.lds
board/gaisler/gr_cpci_ax2000/u-boot.lds
board/gaisler/gr_ep2s60/u-boot.lds
board/gaisler/gr_xc3s_1500/u-boot.lds
board/gaisler/grsim/u-boot.lds
board/gaisler/grsim_leon2/u-boot.lds
board/gen860t/u-boot-flashenv.lds
board/gen860t/u-boot.lds
board/genietv/u-boot.lds
board/hermes/u-boot.lds
board/hymod/u-boot.lds
board/icu862/u-boot.lds
board/idmr/u-boot.lds
board/ip860/u-boot.lds
board/ivm/u-boot.lds
board/korat/u-boot-F7FC.lds
board/kup/kup4k/u-boot.lds
board/kup/kup4x/u-boot.lds
board/lwmon/u-boot.lds
board/manroland/uc100/u-boot.lds
board/matrix_vision/mvsmr/u-boot.lds
board/mbx8xx/u-boot.lds
board/mousse/u-boot.lds
board/mvblue/u-boot.lds
board/netphone/u-boot.lds
board/netta/u-boot.lds
board/netta2/u-boot.lds
board/netvia/u-boot.lds
board/nx823/u-boot.lds
board/quantum/u-boot.lds
board/r360mpi/u-boot.lds
board/rbc823/u-boot.lds
board/renesas/sh7752evb/u-boot.lds
board/renesas/sh7757lcr/u-boot.lds
board/rsdproto/u-boot.lds
board/samsung/smdk5250/smdk5250-uboot-spl.lds
board/samsung/smdk6400/u-boot-nand.lds
board/sandpoint/u-boot.lds
board/sixnet/u-boot.lds
board/snmc/qs850/u-boot.lds
board/snmc/qs860t/u-boot.lds
board/spc1920/u-boot.lds
board/spd8xx/u-boot.lds
board/stx/stxxtc/u-boot.lds
board/svm_sc8xx/u-boot.lds
board/tqc/tqm8xx/u-boot.lds
board/v37/u-boot.lds
board/vpac270/u-boot-spl.lds
boards.cfg
config.mk
doc/README.scrapyard
include/configs/tegra-common.h
nand_spl/board/freescale/mx31pdk/u-boot.lds
nand_spl/board/karo/tx25/u-boot.lds
nand_spl/board/samsung/smdk6400/u-boot.lds

diff --combined MAINTAINERS
index 6b1f657b7d7860ae0e82d5861e96c9d9b80265c0,0951108a8cd9e092fefd70aa470672b50bc0e0e6..d031c3a9df1d856c66ccc12ce62efd53aaba28c0
@@@ -150,6 -150,9 +150,6 @@@ Wolfgang Denk <wd@denx.de
  
        P3G4            MPC7410
  
 -      PCIPPC2         MPC750
 -      PCIPPC6         MPC750
 -
  Phil Edworthy <phil.edworthy@renesas.com>
  
        rsk7264         SH7264
@@@ -231,7 -234,6 +231,7 @@@ Wolfgang Grandegger <wg@denx.de
  
  Anatolij Gustschin <agust@denx.de>
  
 +      ac14xx          MPC5121e
        O2D             MPC5200
        O2D300          MPC5200
        O2DNT2          MPC5200
@@@ -395,7 -397,6 +395,7 @@@ Ricardo Ribalda <ricardo.ribalda@uam.es
  Stefan Roese <sr@denx.de>
  
        a3m071          MPC5200
 +      a4m2k           MPC5200
  
        P3M7448         MPC7448
  
@@@ -606,6 -607,7 +606,7 @@@ Enric Balletbo i Serra <eballetbo@iseeb
  
        igep0020        ARM ARMV7 (OMAP3xx SoC)
        igep0030        ARM ARMV7 (OMAP3xx SoC)
+       igep0032        ARM ARMV7 (OMAP3xx SoC)
  
  Eric Benard <eric@eukrea.com>
  
@@@ -974,6 -976,8 +975,8 @@@ Tom Warren <twarren@nvidia.com
  
        harmony         Tegra20 (ARM7 & A9 Dual Core)
        seaboard        Tegra20 (ARM7 & A9 Dual Core)
+       cardhu          Tegra30 (ARM7 & A9 Quad Core)
+       dalmore         Tegra114 (ARM7 & A15 Quad Core)
  
  Tom Warren <twarren@nvidia.com>
  Stephen Warren <swarren@nvidia.com>
@@@ -1035,6 -1039,14 +1038,14 @@@ Pali Rohár <pali.rohar@gmail.com
  
        nokia_rx51      ARM ARMV7 (OMAP34xx SoC)
  
+ Eric Nelson <eric.nelson@boundarydevices.com>
+       nitrogen6dl             i.MX6DL         1GB
+       nitrogen6dl2g           i.MX6DL         2GB
+       nitrogen6q              i.MX6Q/6D       1GB
+       nitrogen6q2g            i.MX6Q/6D       2GB
+       nitrogen6s              i.MX6S          512MB
+       nitrogen6s1g            i.MX6S          1GB
  -------------------------------------------------------------------------
  
  Unknown / orphaned boards:
diff --combined README
index a620f0a474465bf64b6f3a2bf9a795b9bf5a6316,e45ae4a1351fd785566f978cb7bf92a8ee8b2d1e..7f2506a9b9c2335fdfd9ef3644797bb1b60509e3
--- 1/README
--- 2/README
+++ b/README
@@@ -485,6 -485,16 +485,16 @@@ The following options need to be config
                Thumb2 this flag will result in Thumb2 code generated by
                GCC.
  
+               CONFIG_ARM_ERRATA_742230
+               CONFIG_ARM_ERRATA_743622
+               CONFIG_ARM_ERRATA_751472
+               If set, the workarounds for these ARM errata are applied early
+               during U-Boot startup. Note that these options force the
+               workarounds to be applied; no CPU-type/version detection
+               exists, unlike the similar options in the Linux kernel. Do not
+               set these options unless they apply!
  - Linux Kernel Interface:
                CONFIG_CLOCKS_IN_MHZ
  
                                          (requires CONFIG_CMD_MEMORY and CONFIG_MD5)
                CONFIG_CMD_MEMINFO      * Display detailed memory information
                CONFIG_CMD_MEMORY         md, mm, nm, mw, cp, cmp, crc, base,
 -                                        loop, loopw, mtest
 +                                        loop, loopw
 +              CONFIG_CMD_MEMTEST        mtest
                CONFIG_CMD_MISC           Misc functions like sleep etc
                CONFIG_CMD_MMC          * MMC memory mapped support
                CONFIG_CMD_MII          * MII utility commands
@@@ -1533,6 -1542,17 +1543,17 @@@ CBFS (Coreboot Filesystem) suppor
                allows for a "silent" boot where a splash screen is
                loaded very quickly after power-on.
  
+               CONFIG_SPLASHIMAGE_GUARD
+               If this option is set, then U-Boot will prevent the environment
+               variable "splashimage" from being set to a problematic address
+               (see README.displaying-bmps and README.arm-unaligned-accesses).
+               This option is useful for targets where, due to alignment
+               restrictions, an improperly aligned BMP image will cause a data
+               abort. If you think you will not have problems with unaligned
+               accesses (for example because your toolchain prevents them)
+               there is no need to set this option.
                CONFIG_SPLASH_SCREEN_ALIGN
  
                If this option is set the splash image can be freely positioned
                        => vertically centered image
                           at x = dspWidth - bmpWidth - 9
  
+               CONFIG_SPLASH_SCREEN_PREPARE
+               If this option is set then the board_splash_screen_prepare()
+               function, which must be defined in your code, is called as part
+               of the splash screen display sequence. It gives the board an
+               opportunity to prepare the splash image data before it is
+               processed and sent to the frame buffer by U-Boot.
  - Gzip compressed BMP image support: CONFIG_VIDEO_BMP_GZIP
  
                If this option is set, additionally to standard BMP
@@@ -3212,23 -3240,6 +3241,23 @@@ Configuration Settings
        If defined, don't allow the -f switch to env set override variable
        access flags.
  
 +- CONFIG_SYS_GENERIC_BOARD
 +      This selects the architecture-generic board system instead of the
 +      architecture-specific board files. It is intended to move boards
 +      to this new framework over time. Defining this will disable the
 +      arch/foo/lib/board.c file and use common/board_f.c and
 +      common/board_r.c instead. To use this option your architecture
 +      must support it (i.e. must define __HAVE_ARCH_GENERIC_BOARD in
 +      its config.mk file). If you find problems enabling this option on
 +      your board please report the problem and send patches!
 +
 +- CONFIG_SYS_SYM_OFFSETS
 +      This is set by architectures that use offsets for link symbols
 +      instead of absolute values. So bss_start is obtained using an
 +      offset _bss_start_ofs from CONFIG_SYS_TEXT_BASE, rather than
 +      directly. You should not need to touch this setting.
 +
 +
  The following definitions that deal with the placement and management
  of environment data (variable area); in general, we support the
  following configurations:
index 25d2a326318a69202436eefb82e62f34f3e32a36,c19285d2108ebf93b1ddc212d31ac08ff30ac5dd..e483820f3f93b0ab02cc8bfc86daf5f97b11986b
@@@ -51,13 -51,13 +51,13 @@@ SECTION
  
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        . = ALIGN(4);
        __bss_start = .;
        .bss : { *(.bss) }
 -      __bss_end__ = .;
 +      __bss_end = .;
  
        _end = .;
  }
index fc0418afd1b97f3d4203a2bed6077c146dd202c8,0f3222c76a4346334a4ce940b2c1d34f680d3550..67b204e4475edc9da412a7020f9a0537f478990a
@@@ -51,12 -51,6 +51,6 @@@ SECTION
  
        . = ALIGN(4);
  
-       .u_boot_list : {
-               #include <u-boot.lst>
-       }
-       . = ALIGN(4);
        .rel.dyn : {
                __rel_dyn_start = .;
                *(.rel*)
@@@ -73,7 -67,7 +67,7 @@@
                __bss_start = .;
                *(.bss*)
                . = ALIGN(4);
 -              __bss_end__ = .;
 +              __bss_end = .;
        }
  
        _end = .;
index cff660a7d7bdcd5e74f31fb05c291e83806a0430,0af3e0a2315118e56a882e58d04c1e5f56029b1b..7405917595e6ea8fe3bd9dec25c66b4cff1452a6
@@@ -51,12 -51,6 +51,6 @@@ SECTION
  
        . = ALIGN(4);
  
-       .u_boot_list : {
-               #include <u-boot.lst>
-       }
-       . = ALIGN(4);
        .rel.dyn : {
                __rel_dyn_start = .;
                *(.rel*)
@@@ -73,7 -67,7 +67,7 @@@
                __bss_start = .;
                *(.bss*)
                . = ALIGN(4);
 -              __bss_end__ = .;
 +              __bss_end = .;
        }
  
        _end = .;
index 0000000000000000000000000000000000000000,69f6d48dab1b8ac831b5f35d52f99e1af95c2751..b6a929ff7ef69b8e080882209923504b634ffaf3
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,67 +1,67 @@@
 -              __bss_end__ = .;
+ /*
+  * (C) Copyright 2002
+  * Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
+  *
+  * (C) Copyright 2010
+  * Texas Instruments, <www.ti.com>
+  *    Aneesh V <aneesh@ti.com>
+  *
+  * See file CREDITS for list of people who contributed to this
+  * project.
+  *
+  * This program is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU General Public License as
+  * published by the Free Software Foundation; either version 2 of
+  * the License, or (at your option) any later version.
+  *
+  * This program is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+  * GNU General Public License for more details.
+  *
+  * You should have received a copy of the GNU General Public License
+  * along with this program; if not, write to the Free Software
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+  * MA 02111-1307 USA
+  */
+ MEMORY { .sram : ORIGIN = CONFIG_SPL_TEXT_BASE,\
+               LENGTH = CONFIG_SPL_MAX_SIZE }
+ MEMORY { .sdram : ORIGIN = CONFIG_SPL_BSS_START_ADDR, \
+               LENGTH = CONFIG_SPL_BSS_MAX_SIZE }
+ OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
+ OUTPUT_ARCH(arm)
+ ENTRY(_start)
+ SECTIONS
+ {
+       .text      :
+       {
+               __start = .;
+               arch/arm/cpu/armv7/start.o      (.text)
+               *(.text*)
+       } >.sram
+       . = ALIGN(4);
+       .rodata : { *(SORT_BY_ALIGNMENT(.rodata*)) } >.sram
+       . = ALIGN(4);
+       .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
+       .u_boot_list : {
+               KEEP(*(SORT(.u_boot_list*)));
+       } >.sram
+       . = ALIGN(4);
+       __image_copy_end = .;
+       _end = .;
+       .bss :
+       {
+               . = ALIGN(4);
+               __bss_start = .;
+               *(.bss*)
+               . = ALIGN(4);
++              __bss_end = .;
+       } >.sdram
+ }
index 40d64af84c4b65fba681e60033fbe40becc2010e,88f40698b6765047ff95cef3c39e44605e8805cb..efae381bdb5028146cdf0d674e3ad506f05c3f9c
@@@ -48,10 -48,6 +48,6 @@@ SECTION
        . = ALIGN(4);
        .data : { *(SORT_BY_ALIGNMENT(.data*)) } >.sram
  
-       .u_boot_list : {
-               #include <u-boot.lst>
-       }
        . = ALIGN(4);
        __image_copy_end = .;
        _end = .;
@@@ -62,6 -58,6 +58,6 @@@
                __bss_start = .;
                *(.bss*)
                . = ALIGN(4);
 -              __bss_end__ = .;
 +              __bss_end = .;
        } >.sdram
  }
index 141206e739b4e6d45dd342319981b95837376f14,30f02d3943570c523ea7830ad6b4d8d1810f15f5..fa5fad1b0c85c277303194788de66921013d6b7f
@@@ -96,7 -96,7 +96,7 @@@ _image_copy_end_ofs
  
  .globl _bss_end_ofs
  _bss_end_ofs:
 -      .word __bss_end__ - _start
 +      .word __bss_end - _start
  
  .globl _end_ofs
  _end_ofs:
@@@ -309,6 -309,25 +309,25 @@@ ENTRY(cpu_init_cp15
        orr     r0, r0, #0x00001000     @ set bit 12 (I) I-cache
  #endif
        mcr     p15, 0, r0, c1, c0, 0
+ #ifdef CONFIG_ARM_ERRATA_742230
+       mrc     p15, 0, r0, c15, c0, 1  @ read diagnostic register
+       orr     r0, r0, #1 << 4         @ set bit #4
+       mcr     p15, 0, r0, c15, c0, 1  @ write diagnostic register
+ #endif
+ #ifdef CONFIG_ARM_ERRATA_743622
+       mrc     p15, 0, r0, c15, c0, 1  @ read diagnostic register
+       orr     r0, r0, #1 << 6         @ set bit #6
+       mcr     p15, 0, r0, c15, c0, 1  @ write diagnostic register
+ #endif
+ #ifdef CONFIG_ARM_ERRATA_751472
+       mrc     p15, 0, r0, c15, c0, 1  @ read diagnostic register
+       orr     r0, r0, #1 << 11        @ set bit #11
+       mcr     p15, 0, r0, c15, c0, 1  @ write diagnostic register
+ #endif
        mov     pc, lr                  @ back to my caller
  ENDPROC(cpu_init_cp15)
  
index 2c823e1065c9a6a3da58fd660c034563b63e5e32,5e66dd142ce36e01534cc57628bcd0857a6499bf..8345b55032395c8459b5c30e401af180865559f8
@@@ -49,7 -49,7 +49,7 @@@ SECTION
  
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        . = ALIGN(4);
  
        _end = .;
  
-       .bss __rel_dyn_start (OVERLAY) : {
-               __bss_start = .;
+       .bss_start __rel_dyn_start (OVERLAY) : {
+               KEEP(*(.__bss_start));
+       }
+       .bss __bss_start (OVERLAY) : {
                *(.bss*)
                 . = ALIGN(4);
-               __bss_end = .;
 -               ___bssend___ = .;
++               __bss_end = .;
+       }
 -      .bss_end ___bssend___ (OVERLAY) : {
 -              KEEP(*(.__bss_end__));
++      .bss_end __bss_end (OVERLAY) : {
++              KEEP(*(__bss_end));
        }
  
        /DISCARD/ : { *(.dynstr*) }
index 0000000000000000000000000000000000000000,8321afb959acaf57f1e5f82bc6189efd4bfe03fc..3c0d99ca3664c1021b754aa81fb23fb2a1ca70be
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,93 +1,93 @@@
 -              __bss_end__ = .;
+ /*
+  * Copyright (c) 2004-2008 Texas Instruments
+  *
+  * (C) Copyright 2002
+  * Gary Jennejohn, DENX Software Engineering, <garyj@denx.de>
+  *
+  * See file CREDITS for list of people who contributed to this
+  * project.
+  *
+  * This program is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU General Public License as
+  * published by the Free Software Foundation; either version 2 of
+  * the License, or (at your option) any later version.
+  *
+  * This program is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+  * GNU General Public License for more details.
+  *
+  * You should have received a copy of the GNU General Public License
+  * along with this program; if not, write to the Free Software
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+  * MA 02111-1307 USA
+  */
+ OUTPUT_FORMAT("elf32-littlearm", "elf32-littlearm", "elf32-littlearm")
+ OUTPUT_ARCH(arm)
+ ENTRY(_start)
+ SECTIONS
+ {
+       . = 0x00000000;
+       . = ALIGN(4);
+       .text :
+       {
+               __image_copy_start = .;
+               CPUDIR/start.o (.text*)
+               *(.text*)
+       }
+       . = ALIGN(4);
+       .rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
+       . = ALIGN(4);
+       .data : {
+               *(.data*)
+       }
+       . = ALIGN(4);
+       . = .;
+       __image_copy_end = .;
+       .rel.dyn : {
+               __rel_dyn_start = .;
+               *(.rel*)
+               __rel_dyn_end = .;
+       }
+       .dynsym : {
+               __dynsym_start = .;
+               *(.dynsym)
+       }
+       _end = .;
+       /*
+        * Deprecated: this MMU section is used by pxa at present but
+        * should not be used by new boards/CPUs.
+        */
+       . = ALIGN(4096);
+       .mmutable : {
+               *(.mmutable)
+       }
+       .bss __rel_dyn_start (OVERLAY) : {
+               __bss_start = .;
+               *(.bss*)
+                . = ALIGN(4);
 -ASSERT(__bss_end__ < (CONFIG_SPL_TEXT_BASE + CONFIG_SPL_MAX_SIZE), "SPL image too big");
++              __bss_end = .;
+       }
+       /DISCARD/ : { *(.dynstr*) }
+       /DISCARD/ : { *(.dynamic*) }
+       /DISCARD/ : { *(.plt*) }
+       /DISCARD/ : { *(.interp*) }
+       /DISCARD/ : { *(.gnu*) }
+ }
+ #if defined(CONFIG_SPL_TEXT_BASE) && defined(CONFIG_SPL_MAX_SIZE)
++ASSERT(__bss_end < (CONFIG_SPL_TEXT_BASE + CONFIG_SPL_MAX_SIZE), "SPL image too big");
+ #endif
diff --combined arch/arm/cpu/u-boot.lds
index b337e7bf515bf493db0fc358fd2129353ef50d9e,d4ad3529b250b4056a6ebb45a2725bf0aad7e21a..3a1083d9a9b65c9bd00dad2bbaabf2a7a450aae6
@@@ -52,7 -52,7 +52,7 @@@ SECTION
  
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        . = ALIGN(4);
                *(.mmutable)
        }
  
-       .bss __rel_dyn_start (OVERLAY) : {
-               __bss_start = .;
+       .bss_start __rel_dyn_start (OVERLAY) : {
+               KEEP(*(.__bss_start));
+       }
+       .bss __bss_start (OVERLAY) : {
                *(.bss*)
                 . = ALIGN(4);
-               __bss_end = .;
 -               ___bssend___ = .;
++               __bss_end = .;
+       }
 -      .bss_end ___bssend___ (OVERLAY) : {
 -              KEEP(*(.__bss_end__));
++
++      .bss_end __bss_end (OVERLAY) : {
++              KEEP(*(__bss_end));
        }
  
        /DISCARD/ : { *(.dynstr*) }
  }
  
  #if defined(CONFIG_SPL_TEXT_BASE) && defined(CONFIG_SPL_MAX_SIZE)
 -ASSERT(__bss_end__ < (CONFIG_SPL_TEXT_BASE + CONFIG_SPL_MAX_SIZE), "SPL image too big");
 +ASSERT(__bss_end < (CONFIG_SPL_TEXT_BASE + CONFIG_SPL_MAX_SIZE), "SPL image too big");
  #endif
diff --combined arch/arm/lib/Makefile
index 24c7e7a18ab6b9b0a8bc4181236ce3e40ec53b2f,11c267451afaedfb4fdeb6b34763621416605455..6ae161a51dc147327925c158f31e845ba74b75ca
@@@ -39,10 -39,8 +39,11 @@@ GLCOBJS     += div0.
  SOBJS-y += crt0.o
  
  ifndef CONFIG_SPL_BUILD
 -COBJS-y += bss.o
 +ifndef CONFIG_SYS_GENERIC_BOARD
  COBJS-y       += board.o
 +endif
++COBJS-y += bss.o
 +
  COBJS-y       += bootm.o
  COBJS-$(CONFIG_SYS_L2_PL310) += cache-pl310.o
  SOBJS-$(CONFIG_USE_ARCH_MEMSET) += memset.o
diff --combined arch/arm/lib/bss.c
index 0000000000000000000000000000000000000000,7c0b1545ea0687116911e9a3400c72c9354c1288..99eda5913760eab77955559bb9b56c453a9e1518
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,39 +1,39 @@@
 -char __bss_end__[0] __attribute__((used, section(".__bss_end__")));
+ /*
+  * Copyright 2013 Albert ARIBAUD <albert.u.boot@aribaud.net>
+  *
+  * See file CREDITS for list of people who contributed to this
+  * project.
+  *
+  * This program is free software; you can redistribute it and/or
+  * modify it under the terms of the GNU General Public License as
+  * published by the Free Software Foundation; either version 2 of
+  * the License, or (at your option) any later version.
+  *
+  * This program is distributed in the hope that it will be useful,
+  * but WITHOUT ANY WARRANTY; without even the implied warranty of
+  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  * GNU General Public License for more details.
+  *
+  * You should have received a copy of the GNU General Public License
+  * along with this program; if not, write to the Free Software
+  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+  * MA 02111-1307 USA
+  */
+ /**
+  * These two symbols are declared in a C file so that the linker
+  * uses R_ARM_RELATIVE relocation, rather than the R_ARM_ABS32 one
+  * it would use if the symbols were defined in the linker file.
+  * Using only R_ARM_RELATIVE relocation ensures that references to
+  * the symbols are correct after as well as before relocation.
+  *
+  * We need a 0-byte-size type for these symbols, and the compiler
+  * does not allow defining objects of C type 'void'. Using an empty
+  * struct is allowed by the compiler, but causes gcc versions 4.4 and
+  * below to complain about aliasing. Therefore we use the next best
+  * thing: zero-sized arrays, which are both 0-byte-size and exempt from
+  * aliasing warnings.
+  */
+ char __bss_start[0] __attribute__((used, section(".__bss_start")));
++char __bss_end[0] __attribute__((used, section(".__bss_end")));
index d0964248125be6abebb8eea96dfab8a5975a085b,4a3fc2a1c65d7cb6a58d77155708f187d3ee5b93..4e4a436dc9ca669adad60bb4816e66508475be7d
@@@ -50,7 -50,7 +50,7 @@@ SECTION
  
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        . = ALIGN(4);
@@@ -68,5 -68,5 +68,5 @@@
                *(.bss.*)
        }
        . = ALIGN(8);
 -      __bss_end__ = .;
 +      __bss_end = .;
  }
index c64d3b7236e7e963401be7d64f2f42777cb86161,57909481a968e03f2ed0acbef435eafe23352363..e9fbcd380469b6cf8d68f7cfec60766bc1ae0ffd
@@@ -55,7 -55,7 +55,7 @@@ SECTION
  
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        . = ALIGN(4);
@@@ -66,7 -66,7 +66,7 @@@
                __bss_start = .;
                *(.bss)
                 . = ALIGN(4);
 -              __bss_end__ = .;
 +              __bss_end = .;
        }
  
  }
index 90a7795746dfcfa6f9f404cc3749994182f4cfe7,f937396233edadf16a5eec49170fbff15fdb6c77..4c45336d4ae40536f06dbde3e01cdc40d01b5c85
@@@ -48,7 -48,7 +48,7 @@@ SECTION
  
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        /* INIT DATA sections - "Small" data (see the gcc -G option)
          *(.scommon)
        }
        . = ALIGN(4);
 -      __bss_end__ = .;
 +      __bss_end = .;
        PROVIDE (end = .);
  
        /* DEBUG -- symbol table, string table, etc. etc.
index ce03db0bfdbb40d022527286cac1a98b80654acd,c58d9797573222a0f10f98b73898a38cbe137be1..40b89abac67fa6e02cf310a9197ebbc973e0c877
@@@ -65,7 -65,7 +65,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -89,6 -89,6 +89,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 66ff02f0a1c7340f19d90c8f5f230654c66f3dee,a34501b6315c1576f8b0604482cf33f42629123c..0d8697901f66f22ad68280658443848db55b984b
@@@ -60,7 -60,7 +60,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -84,7 -84,7 +84,7 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
  ENTRY(_start)
index 0001e583eb2d72df379ef4eb93a06ca1486c0f9e,0d87c8cf1e5088616d76a7aed53359622c6d9dfc..8385a29bcb411e6bcf4592f72671cd393b1166ab
@@@ -68,7 -68,7 +68,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,7 -93,7 +93,7 @@@
     . = ALIGN(4);
    }
  
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
    . = env_start;
    .ppcenv :
index bc59fad47e47a0745cb6be5c90df74b1d860f1a2,cdb36c088466480dd27429815c8b2bb33324ab61..590952fd1551e0a34213905ff8d8dda32a8e4ac7
@@@ -68,7 -68,7 +68,7 @@@ SECTION
    . = .;
  
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -91,6 -91,6 +91,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index d179dbcb2a498e9739228dbdc17c2657046dc631,6bd646b93ee128375df69bdea441cb81c2b3b6d3..06ece78361adaf7fb3e23e0123625e76e47561df
@@@ -63,7 -63,7 +63,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -87,6 -87,6 +87,6 @@@
     *(.sbss*)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index ec98f0f41ba20b5afad8d7a7489831d07ab7a6dd,6e9967cf879311f52e511e4463253df257cced94..dc63d2081bd585b3ecd7bd5f45a3247f4408d63b
@@@ -62,7 -62,7 +62,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -86,6 -86,6 +86,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 74e2a233eccd908b2f94c9c1499e8b5d689bd11f,699fb85857bd56cdc2e1bf1076322883e0ac5341..4590fab338501020fec8ff8127745e815d220a57
@@@ -63,7 -63,7 +63,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -87,6 -87,6 +87,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index ce28dbadf7a61ae574407bd340019abdd9b5caaa,2709f37667192b46f77154769c0c17430bcbdccd..eb1c611f908678fd811d31098f7590c884d41e20
@@@ -62,7 -62,7 +62,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -86,6 -86,6 +86,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 22e92e9f1eca7fe0ac773d91cf0a719045ef9e7d,905823cb9a3153d207812fdb26de36ca2eae8ce6..a9d8598839948a9534ef3f146049afc74ecd0d07
@@@ -61,7 -61,7 +61,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -85,7 -85,7 +85,7 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
  ENTRY(_start)
index 8a44a364297af4fc0af0ad8b6d08c1b79792db31,3bb757231b4dd63ae2507e35b1837165fef9b532..65106f5e1f008fb91d6ac70c30b2ae061f8a85ab
@@@ -72,7 -72,7 +72,7 @@@ SECTION
    . = .;
  
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
    } :bss
  
    . = ALIGN(4);
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 15c73c14183e7b445ebf961a2edb16418136e7f6,87522b83d009b2ffb0083d78eb3be9a259b0f3a2..80cd98093a4010ba33bd583d829cb0a1c967fee8
@@@ -54,7 -54,7 +54,7 @@@ SECTION
        _edata  =  .;
  
        .u_boot_list : {
-               #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        . = ALIGN(8);
@@@ -80,6 -80,6 +80,6 @@@
                *(.sbss*)
                *(.bss*)
        }
 -      __bss_end__ = .;
 +      __bss_end = .;
  }
  ASSERT(__init_end <= (0xfff00000 + RESET_VECTOR_OFFSET), "NAND bootstrap too big");
index d2bf7b7cc4d2fbf6cabd1d7111697d1da2c8413f,8c6e66ec1b5cb8932e457092a1ce3c1c4c4386d2..0503dce5ae4345edf6221b8d169720c05c5231e3
@@@ -80,7 -80,7 +80,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
    } :bss
  
    . = ALIGN(4);
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 65386b8315c34508986c5540c4a943c3b512dec5,81804e357c8b7bb7d0df83ee358d5a9cab65e485..7e357baf9531527ad222865ce864f00d7a036854
@@@ -67,7 -67,7 +67,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -90,6 -90,6 +90,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 8c6beb0392ee0bc201196f254c6c05b5276c252b,2cadcc94d5aa3e1adc7ed27c6e2f5bc32bcf25da..06010d6b149605829abbf5a7f361cfcbc58da99e
@@@ -81,7 -81,7 +81,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
    } :bss
  
    . = ALIGN(4);
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 20cb45977514b1ec7fd8de144fd0ad80c76cfac2,9bf1d8562197001b106cda5c5f5486fba82576c9..3cd5699c89a4f465491502c8886b983e7d3417b7
@@@ -74,7 -74,7 +74,7 @@@ SECTION
  
  
        .u_boot_list : {
-               #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        PROVIDE (reloc_dst_end = .);
@@@ -88,5 -88,5 +88,5 @@@
        }
        PROVIDE (bss_end = .);
  
 -      PROVIDE (__bss_end__ = .);
 +      PROVIDE (__bss_end = .);
  }
index b5f60f29f5d299e8fafa901b927cd04af2a07770,29352ad821ded3c43d13c4985689caa265f760a9..654c52cda7ac903c8b6286b4e20340ae8eb6c275
@@@ -80,7 -80,7 +80,7 @@@ SECTION
  
  
        .u_boot_list : {
-               #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        PROVIDE (reloc_dst_end = .);
@@@ -95,5 -95,5 +95,5 @@@
        }
        PROVIDE (bss_end = .);
  
 -      PROVIDE (__bss_end__ = .);
 +      PROVIDE (__bss_end = .);
  }
index 5721c18d2065014a64458efc80a7dd5fc5469141,cf3da0db1473fab69f7c2867dba323bb2d508fa8..11d7ffab7ec47853ed9989eecdc9cdfbb2f3dc33
@@@ -77,7 -77,7 +77,7 @@@ SECTION
  
  
        .u_boot_list : {
-               #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        PROVIDE (reloc_dst_end = .);
@@@ -92,5 -92,5 +92,5 @@@
        }
        PROVIDE (bss_end = .);
  
 -      PROVIDE (__bss_end__ = .);
 +      PROVIDE (__bss_end = .);
  }
diff --combined arch/x86/cpu/u-boot.lds
index 69e6ea6ff201f74b560129d5b2856cbf626fb59f,ef5aa951c9517d5d4c194af08551380df94f86dd..2d6911aa4196b58278eedbab54b833ba3e38d976
@@@ -36,7 -36,7 +36,7 @@@ SECTION
  
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        . = ALIGN(4);
@@@ -53,7 -53,6 +53,7 @@@
  
        . = ALIGN(4);
        __data_end = .;
 +      __init_end = .;
  
        . = ALIGN(4);
        .dynsym : { *(.dynsym*) }
@@@ -65,6 -64,9 +65,6 @@@
        . = ALIGN(4);
        _end = .;
  
 -      . = ALIGN(4);
 -
 -      __end = .;
        .bss __rel_dyn_start (OVERLAY) : {
                __bss_start = .;
                *(.bss)
index 7c1695a87c4abae262becbe89c966174cfbbaa7e,43bd9b74ac90cda054452ca55ce7686afa96cc69..c72043d2359a405174e5e788c2c8220ad5eacc1d
@@@ -68,7 -68,7 +68,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -93,6 -93,6 +93,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index ee2c70501ca89a12bb5070873370b3517465a5bf,3ff38713f01f6fb2ed8ad062965bf65d7087a3a5..2b76e92e4f1a8deabcb4dac2e9374f25e13c4fa2
@@@ -89,7 -89,7 +89,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index a507d73aeb643529609b5400835c9aa8040cdf87,c2ec827dc78c34b4c1d3218cf81fe63fe9f30a2d..3334a44f618abbd4339ba541da2d3951547f5d9d
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/RPXlite/u-boot.lds
index a507d73aeb643529609b5400835c9aa8040cdf87,c2ec827dc78c34b4c1d3218cf81fe63fe9f30a2d..3334a44f618abbd4339ba541da2d3951547f5d9d
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index a507d73aeb643529609b5400835c9aa8040cdf87,c2ec827dc78c34b4c1d3218cf81fe63fe9f30a2d..3334a44f618abbd4339ba541da2d3951547f5d9d
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 646931ab914267001d8efa457295aff008ff5a1d,f9d2ec2aa9883eae5f6136476d192630c0c4c710..84bb763c7bdd3fcb64b35342486593e951d65733
@@@ -74,7 -74,7 +74,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -98,6 -98,6 +98,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/actux1/u-boot.lds
index a0d217b0b560fee81a044f07b66b3fea5685761b,7cf5b46b885870858e455d866ed4d91952eadb70..c76728a7fbd3ff9cf06787bf205be4cb32f3fa78
@@@ -41,15 -41,15 +41,15 @@@ SECTION
                *(.text*)
        }
  
-       . = ALIGN (4);
+       . = ALIGN(4);
        .rodata : {
                *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
        }
-       . = ALIGN (4);
+       . = ALIGN(4);
        .data : {
                *(.data*)
        }
-       . = ALIGN (4);
+       . = ALIGN(4);
        .got : {
                *(.got)
        }
@@@ -57,7 -57,7 +57,7 @@@
  
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        . = ALIGN (4);
                *(.dynsym)
        }
  
-       .bss __rel_dyn_start (OVERLAY) : {
-               __bss_start = .;
+       _end = .;
+       .bss_start __rel_dyn_start (OVERLAY) : {
+               KEEP(*(.__bss_start));
+       }
+       .bss __bss_start (OVERLAY) : {
                *(.bss*)
                 . = ALIGN(4);
-               _end = .;
 -               ___bssend___ = .;
++               __bss_end = .;
        }
-       __bss_end =.;
 -      .bss_end ___bssend___ (OVERLAY) : {
 -              KEEP(*(.__bss_end__));
++      .bss_end __bss_end (OVERLAY) : {
++              KEEP(*(__bss_end));
+       }
        /DISCARD/ : { *(.dynstr*) }
        /DISCARD/ : { *(.dynamic*) }
        /DISCARD/ : { *(.plt*) }
diff --combined board/actux2/u-boot.lds
index da2b4e253af04800ad14326764b4e0add7d63ea4,e9b5547b7afe65ee0d5f09bcfe44f05abe2ffe2e..984f70e510b17d121babb4e6c41bbda65258582f
@@@ -41,15 -41,15 +41,15 @@@ SECTION
                *(.text*)
        }
  
-       . = ALIGN (4);
+       . = ALIGN(4);
        .rodata : {
                *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*)))
        }
-       . = ALIGN (4);
+       . = ALIGN(4);
        .data : {
                *(.data*)
        }
-       . = ALIGN (4);
+       . = ALIGN(4);
        .got : {
                *(.got)
        }
@@@ -57,7 -57,7 +57,7 @@@
  
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        . = ALIGN (4);
                *(.dynsym)
        }
  
-       .bss __rel_dyn_start (OVERLAY) : {
-               __bss_start = .;
+       _end = .;
+       .bss_start __rel_dyn_start (OVERLAY) : {
+               KEEP(*(.__bss_start));
+       }
+       .bss __bss_start (OVERLAY) : {
                *(.bss*)
                 . = ALIGN(4);
-               _end = .;
 -               ___bssend___ = .;
++               __bss_end = .;
        }
-       __bss_end =.;
 -      .bss_end ___bssend___ (OVERLAY) : {
 -              KEEP(*(.__bss_end__));
++      .bss_end __bss_end (OVERLAY) : {
++              KEEP(*(__bss_end));
+       }
        /DISCARD/ : { *(.dynstr*) }
        /DISCARD/ : { *(.dynamic*) }
        /DISCARD/ : { *(.plt*) }
diff --combined board/actux3/u-boot.lds
index f92203388789b1e3aa80019ab20c4e8329cc7a33,b79ea3ce2fdd13bc66067c076276594eba78beb1..fc48cf03fde15a93b02699dd1cc72e537e495137
@@@ -57,7 -57,7 +57,7 @@@ SECTION
  
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        . = ALIGN (4);
                *(.dynsym)
        }
  
-       .bss __rel_dyn_start (OVERLAY) : {
-               __bss_start = .;
+       _end = .;
+       .bss_start __rel_dyn_start (OVERLAY) : {
+               KEEP(*(.__bss_start));
+       }
+       .bss __bss_start (OVERLAY) : {
                *(.bss*)
                 . = ALIGN(4);
-               _end = .;
 -               ___bssend___ = .;
++               __bss_end = .;
        }
-       __bss_end =.;
 -      .bss_end ___bssend___ (OVERLAY) : {
 -              KEEP(*(.__bss_end__));
++      .bss_end __bss_end (OVERLAY) : {
++              KEEP(*(__bss_end));
+       }
        /DISCARD/ : { *(.dynstr*) }
        /DISCARD/ : { *(.dynamic*) }
        /DISCARD/ : { *(.plt*) }
diff --combined board/adder/u-boot.lds
index 2f10e7ce5fcababc42182416d7fc0860ee88d8fe,5e0ed002ec99f06ae91c9d1cf8043aed62064ab5..def2f1f93842f3c237b0f415b34405b32609798e
@@@ -65,7 -65,7 +65,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -89,7 -89,7 +89,7 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
  ENTRY(_start)
index d6b66d41267aa16040cbac7ebc8e784180a3610a,52c986e8a9ef0b11a18dbcdf96cd2281ac3ba159..dd9d52db4b2a8c3a961644a3eb3091635d802126
@@@ -48,10 -48,6 +48,6 @@@ SECTION
        . = 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*)
@@@ -69,7 -65,7 +65,7 @@@
                __bss_start = .;
                *(.bss*)
                . = ALIGN(4);
 -              __bss_end__ = .;
 +              __bss_end = .;
        } >.sram
  
        __image_copy_end = .;
index bf7600a2a0e566448f5bb2729498b6cf39d555a9,900fe65dc288525dd28af9f5d28dc4d16c6b91f6..f3095982b69bc1d8587f1ea61d613e1c4fa0547f
@@@ -49,7 -49,7 +49,7 @@@ SECTION
  
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        /* INIT DATA sections - "Small" data (see the gcc -G option)
          *(.scommon)
        }
        . = ALIGN(4);
 -      __bss_end__ = .;
 +      __bss_end = .;
        PROVIDE (end = .);
  
        /* DEBUG -- symbol table, string table, etc. etc.
index 3bdad3462fb1bfb88908a98b4ca084fc4ac940cd,3861b67a01aca9fbba66eb79e173cb927350b21b..e9f026fb7e56b2da850105a411d9943fcb746248
@@@ -74,7 -74,7 +74,7 @@@ SECTION
    . = .;
  
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -98,6 -98,6 +98,6 @@@
     . = ALIGN(4);
    }
  
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 1f9a4aed55ebede8db94579408e512da90608c60,6308d49c1dcea2cf300980963119aa2bc401d00c..209f48450acad472cf51796d2623d51165be82ca
@@@ -75,7 -75,7 +75,7 @@@ SECTION
    . = .;
  
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -99,6 -99,6 +99,6 @@@
     . = ALIGN(4);
    }
  
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 0396c9f58d7c17edfa6c10fb4c62cc327c17f0a4,5fc906277b98cc136288b1364407f0ddb512a5a6..3d616133d03bd625fb6d5b4c7b9bc0a3337b150a
@@@ -75,7 -75,7 +75,7 @@@ SECTION
    . = .;
  
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -99,6 -99,6 +99,6 @@@
     . = ALIGN(4);
    }
  
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 3bdad3462fb1bfb88908a98b4ca084fc4ac940cd,3861b67a01aca9fbba66eb79e173cb927350b21b..e9f026fb7e56b2da850105a411d9943fcb746248
@@@ -74,7 -74,7 +74,7 @@@ SECTION
    . = .;
  
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -98,6 -98,6 +98,6 @@@
     . = ALIGN(4);
    }
  
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 9a2a232d3bc3beddc02f15e36067398ae8347059,b4600de69532e2feea50e95e7bbdb2047260ba23..2ea394441208b89d3eb03db53a5415e765534998
@@@ -75,7 -75,7 +75,7 @@@ SECTION
    . = .;
  
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -99,6 -99,6 +99,6 @@@
     . = ALIGN(4);
    }
  
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index e853da885318cb1a12af4d95202e8f2ded22a4d9,521d12a56f80b4ec2f5f2793d1ec2d6a8e3c1800..1b537f6f407262d15c5ce4f25991730471942391
@@@ -66,7 -66,7 +66,7 @@@ SECTION
    . = .;
  
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -90,6 -90,6 +90,6 @@@
     . = ALIGN(4);
    }
  
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 11aa09271b823a35e18530195bb9418095234092,5ee8fcc50bf216d70cd303daa039b27ec2be2fd5..264e43f54ddef22bc65a553e0efcfacb0aea63d0
@@@ -72,7 -72,7 +72,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -97,6 -97,6 +97,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 47378fdf903188b1f63ba8f7302c7c9b0315e139,7421eeca67cd02b2f199404be116f1829d1bc045..809a7055fd3a8af2a47c89b9375fd2ea61f18005
@@@ -71,7 -71,7 +71,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -96,6 -96,6 +96,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/cogent/u-boot.lds
index 1cc482ffa14f8a05d67277077936af03e6f75510,357f59da7ed53806d8890ed88c1f6bf08a8e9cc3..1f006d786704abf4819724a77b5b95c262d06cc3
@@@ -73,7 -73,7 +73,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -97,6 -97,6 +97,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 512fe1a6d4dc47b37bb6fbaa926b7eebdde52481,987b52d25cc872e46e920612d152c563d2635d95..663100e58038c52a43bff4bf45545c06551e85fe
@@@ -77,7 -77,7 +77,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
    } :bss
  
    . = ALIGN(4);
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 6d287f1e3e078ece95f5c97a2608a27a578a63b8,dd5f266127eab90929ec6a26a9e4973be44eee10..bc34fb58193a25273bdc2182f434d6d15d58159d
@@@ -48,11 -48,6 +48,6 @@@ SECTION
        . = 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 = .;
@@@ -71,7 -66,7 +66,7 @@@
                __bss_start = .;
                *(.bss*)
                . = ALIGN(4);
 -              __bss_end__ = .;
 +              __bss_end = .;
        } >.sram
  
        __image_copy_end = .;
index e3a07cc8eda0b139a349a0b05da54ea5536535f4,b3a41afc42daa331e6761aabf749d6ec043603ff..2557830f949ca3536e62a54dbd37c72d17d90543
@@@ -57,11 -57,6 +57,6 @@@ SECTION
                *(.data.rel.ro)
        }
  
-       . = ALIGN(4);
-       .u_boot_list : {
-               #include <u-boot.lst>
-       }
        . = ALIGN(4);
        __rel_dyn_start = .;
        __rel_dyn_end = .;
@@@ -79,7 -74,7 +74,7 @@@
                __bss_start = .;
                *(.bss*)
                . = ALIGN(4);
 -              __bss_end__ = .;
 +              __bss_end = .;
        }
  
        _end = .;
diff --combined board/dvlhost/u-boot.lds
index ed910033d5dff7207f6151b557867a1d26424ebf,eb83b6f2ce3a90a281126f9644bf3693d451789d..b13d3e1ec319f1b0736f2fafdb517b8888b9f5e1
@@@ -57,7 -57,7 +57,7 @@@ SECTION
  
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        . = ALIGN (4);
                *(.dynsym)
        }
  
-       .bss __rel_dyn_start (OVERLAY) : {
-               __bss_start = .;
+       _end = .;
+       .bss_start __rel_dyn_start (OVERLAY) : {
+               KEEP(*(.__bss_start));
+       }
+       .bss __bss_start (OVERLAY) : {
                *(.bss*)
                 . = ALIGN(4);
-               _end = .;
 -               ___bssend___ = .;
++               __bss_end = .;
        }
-       __bss_end =.;
 -      .bss_end ___bssend___ (OVERLAY) : {
 -              KEEP(*(.__bss_end__));
++      .bss_end __bss_end (OVERLAY) : {
++              KEEP(*(__bss_end));
+       }
        /DISCARD/ : { *(.dynstr*) }
        /DISCARD/ : { *(.dynamic*) }
        /DISCARD/ : { *(.plt*) }
index 3c1c05aa959ce802070d00d57424b5fa71d916de,bd74d746a367f11dcb50339d9d4d57f83ea41e77..a1481c869912f916196142323f815644b0ea0ab5
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 155fa7614e3fab1c298835a2406173ade0a85fca,ea04eca3aac8730942421f9333162fa1850a7b74..e3f7d809b6c1b2e41d96eb790aaeec604068ed85
@@@ -70,7 -70,7 +70,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -94,6 -94,6 +94,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/ep88x/u-boot.lds
index 7baaad89d39754e486c5a1012e84be752710772b,e5fa63edd6669e9479a5597761bed739ba7a61b3..c00b3c39f85fd561f4f0983694615575bd24b34e
@@@ -65,7 -65,7 +65,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -89,7 -89,7 +89,7 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
  ENTRY(_start)
index cb94a51ee17ea1d65870061d55ffe628afe4e519,cca527f26a89a44bd3a5a298bbbb9bdaccb47574..4297b8ba05036c2f7910275a0d07eff196aa56f4
@@@ -76,7 -76,7 +76,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 101b893d08f9642c5e11d454b60bbcd7628a8d69,4469b80dc952842b7af5cacde73881ddf5ad3eed..6a5cef6c8c8ad1f7deef16c11aa270ea12ab09be
@@@ -104,7 -104,7 +104,7 @@@ SECTION
    . = .;
  
    .u_boot_list : {
-               #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
     . = ALIGN(4);
    }
  
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index fd77fa96b7271cb52622c7d6eb0319ee1e7703b2,7642bba7eef1d3acd2a068a2381f6c8d7b9f137b..a4d9da7aaf2bfd85ed8929623dd0c48e9e7d699e
@@@ -68,7 -68,7 +68,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -93,6 -93,6 +93,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 7ffdc17dae455bf39697b525842f82f8eac1cd5e,357a794e6960c154e7ac202afc054e5decc11dd3..642f1c9ecf14b2ae2ef059a81214f007330044d1
@@@ -77,7 -77,7 +77,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 4b956f8d8888a243720507af19edaac1a0426866,e2cfcfefec07b4d233dd5d77d0f6e1f30d8a15dd..44c61eb82cb9419e7559944e4212e456ee6e7088
@@@ -73,7 -73,7 +73,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -97,6 -97,6 +97,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/fads/u-boot.lds
index 1cb191c913842a63050cf2d9e963d3f55d6635dd,450103d377b460fa999cee8a662d0af5c37906fa..0e2206c222c633e08a0378c64bd691f87cdca540
@@@ -71,7 -71,7 +71,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -95,7 -95,7 +95,7 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
  ENTRY(_start)
diff --combined board/flagadm/u-boot.lds
index 3c1c05aa959ce802070d00d57424b5fa71d916de,bd74d746a367f11dcb50339d9d4d57f83ea41e77..a1481c869912f916196142323f815644b0ea0ab5
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index da4b4f2949bdeed9b671bfcbc40e6578f73a4ccc,f3c9ed8c6138f644ea3de0fe15a8a89c0ff64f98..6f80e41159906200931f6fc9361bff8b82e790b0
@@@ -72,7 -72,7 +72,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -97,6 -97,6 +97,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index e3f8847d10cea6956526c1963ef8c84635b8382f,ae0a48dfbbad8f9bc39090c23a37db0576018e57..9db171ed4ee249be294bff9cb5ad3253e39c206f
@@@ -71,7 -71,7 +71,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -96,6 -96,6 +96,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index c324b646b151e2cd36db97c1fbc1e5e3eb1263f3,603858bc0cabd8086649004f6983eec5f25d9272..f11d4831bea07603e4f44b7d6f180dd784c3f762
@@@ -71,7 -71,7 +71,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -96,6 -96,6 +96,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 47378fdf903188b1f63ba8f7302c7c9b0315e139,7421eeca67cd02b2f199404be116f1829d1bc045..809a7055fd3a8af2a47c89b9375fd2ea61f18005
@@@ -71,7 -71,7 +71,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -96,6 -96,6 +96,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index d14a2af61468ff171969773b3047e8c2d9c39106,6838247a8b31d8c540877f816041a589cc2506f5..9de88852abc467dfb3e641cf1e0001453313f407
@@@ -72,7 -72,7 +72,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -97,6 -97,6 +97,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 47378fdf903188b1f63ba8f7302c7c9b0315e139,7421eeca67cd02b2f199404be116f1829d1bc045..809a7055fd3a8af2a47c89b9375fd2ea61f18005
@@@ -71,7 -71,7 +71,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -96,6 -96,6 +96,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index c7574c95ac1bc90fe4a5c05cf5d121a7ad4c8685,e222e80f82bf61816cafe417021fc8a6315023fe..82b67d50a9057dc6c7bf3addb672f1ff172bf9c9
@@@ -71,7 -71,7 +71,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -96,6 -96,6 +96,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 47378fdf903188b1f63ba8f7302c7c9b0315e139,7421eeca67cd02b2f199404be116f1829d1bc045..809a7055fd3a8af2a47c89b9375fd2ea61f18005
@@@ -71,7 -71,7 +71,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -96,6 -96,6 +96,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 7f3b73d55dcf1c33c0c9c3bc72bb2b67ea8fbc37,c18758a911449fe9927d130f07fed8951d8ae26c..fda4cf426d2cf9812fe9b692cb3b236212731f1b
@@@ -71,7 -71,7 +71,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -96,6 -96,6 +96,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 35d669c442880e961977c0e712323cd4a36a6d7c,20f6c47bed9e5a4d20ac9dc4343b46eb51fced28..cdfd0e41642e077092f8ee502dae885c5bb20692
@@@ -71,7 -71,7 +71,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -96,6 -96,6 +96,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 1a6f0cdc7b419bb2857eb7232f3ffbb1f8dacd84,15dfa7dd7cf7f06d0b8f21736438cda3001c5801..c40c565922d25f43db57694867e7a9ac320cbccb
@@@ -74,7 -74,7 +74,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -99,6 -99,6 +99,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index f5cc586d6f51d48cfe4e53dbd46ab574d92f1acb,5013ff4a69665c2024bc7c1ab40c912368c6f64f..f803e4af053d12eb76fa8fd1fb30dfe7ea8cdb62
@@@ -72,7 -72,7 +72,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -97,6 -97,6 +97,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 11aa09271b823a35e18530195bb9418095234092,5ee8fcc50bf216d70cd303daa039b27ec2be2fd5..264e43f54ddef22bc65a553e0efcfacb0aea63d0
@@@ -72,7 -72,7 +72,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -97,6 -97,6 +97,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 5ae7fce2b641f834ac026f59180551301fac1f00,2df386bcb0662ef32446d3132f190e7e373e860f..3247dbf6d109d6e1e15e79a5f2820f6a60a49136
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -94,6 -94,6 +94,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 2bd4a73b8cae0660f8cdf22cd9b5dce86cc3adcb,4440d611b75273ac5e9434b777f5f3e9f264006c..fd1289ec8788fdfb3ff066b926bf4a7cac682460
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -94,6 -94,6 +94,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 5ae7fce2b641f834ac026f59180551301fac1f00,2df386bcb0662ef32446d3132f190e7e373e860f..3247dbf6d109d6e1e15e79a5f2820f6a60a49136
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -94,6 -94,6 +94,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 5e987bb7a20d0c6e8fc1a210f9482cd8a2676296,269bf8a9e563506994d8a23db0df4bfbef8e58a7..bbe36f087a7f4d62fe48b9d0340496343dcb9136
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -94,6 -94,6 +94,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 27340ee3e23360c04e603dd1b5273b7c55ab3c72,68bdad4a46cc5cd52f214fae64b17e845a112534..93159277614e79202b636261df5a53b6b39b3633
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -94,6 -94,6 +94,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 4d1858bd4a22c2f8c54474e55da109a42bf375d8,2d08fea52245e0b81bf1d50db1ab247506ef29e6..264c4e80adfc16b6dc6f4a0225e705f0ff824617
@@@ -60,7 -60,7 +60,7 @@@ SECTION
  
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        . = ALIGN(4);
  
        _end = .;
  
-       .bss __rel_dyn_start (OVERLAY) : {
-               __bss_start = .;
-               *(.bss)
+       .bss_start __rel_dyn_start (OVERLAY) : {
+               KEEP(*(.__bss_start));
+       }
+       .bss __bss_start (OVERLAY) : {
+               *(.bss*)
                 . = ALIGN(4);
-               __bss_end = .;
 -               ___bssend___ = .;
++               __bss_end = .;
+       }
 -      .bss_end ___bssend___ (OVERLAY) : {
 -              KEEP(*(.__bss_end__));
++      .bss_end __bss_end (OVERLAY) : {
++              KEEP(*(__bss_end));
        }
  
        /DISCARD/ : { *(.bss*) }
index 70ebf4d725acfb13c4b515a3d2f761d76cd54444,dac87db6207487052fbba16fa4bae0362940bc24..60039ccfb4a5b317a6afd9a3713cfacae644fc18
@@@ -88,7 -88,7 +88,7 @@@ SECTION
  
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        .data   :
        . = ALIGN(16); /* to speed clearing of bss up */
        }
        __bss_end = . ;
 -      __bss_end__ = . ;
 +      __bss_end = . ;
        PROVIDE (end = .);
  
  /* Relocated into main memory */
index 429b579300a66bcbcaf43888bf44ab8c823214e2,78e0e2df6c4cc342b6772506bbebe726f55ad47d..ec73f737cd3d02b710871585622eaa26d3577d53
@@@ -88,7 -88,7 +88,7 @@@ SECTION
  
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        .data   :
        . = ALIGN(16); /* to speed clearing of bss up */
        }
        __bss_end = . ;
 -      __bss_end__ = . ;
 +      __bss_end = . ;
        PROVIDE (end = .);
  
  /* Relocated into main memory */
index 705212922b7b170a0b85cbdcf1c97798e1c167e9,87ea473b0a9b42158748fc0a3f1c311a23fa563a..18dfb814bf61eb9873967af6cc8218fc5f046fb6
@@@ -88,7 -88,7 +88,7 @@@ SECTION
  
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        .data   :
        . = ALIGN(16); /* to speed clearing of bss up */
        }
        __bss_end = . ;
 -      __bss_end__ = . ;
 +      __bss_end = . ;
        PROVIDE (end = .);
  
  /* Relocated into main memory */
index c6082841667f2307c0f3ac4368799389478fd873,e854a169a86ec07abaaf3f9c4386e9ab845e4900..8de272e4cbdef8a0a13dcb425ebef8707427a292
@@@ -87,7 -87,7 +87,7 @@@ SECTION
  
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        .data   :
        . = ALIGN(16); /* to speed clearing of bss up */
        }
        __bss_end = . ;
 -      __bss_end__ = . ;
 +      __bss_end = . ;
        PROVIDE (end = .);
  
  /* Relocated into main memory */
index eafb4f07c1cf2f24f7b7618f5ff2a14e06fcc4ff,f247e56b0a2f25721f155e51bbdcf032918c910c..e57f73412170ef2e3140b625e72ff3d492c6a10e
@@@ -87,7 -87,7 +87,7 @@@ SECTION
  
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        .data   :
        . = ALIGN(16); /* to speed clearing of bss up */
        }
        __bss_end = . ;
 -      __bss_end__ = . ;
 +      __bss_end = . ;
        PROVIDE (end = .);
  
  /* Relocated into main memory */
index f5c757e576eb9d5ad9f9913feba03ea256692254,b06144196f473a4a3ed90095a2baa9a54c6613be..30138dd814a7b9f60e590bc3981b07f2002522b9
@@@ -73,7 -73,7 +73,7 @@@ SECTION
    . = .;
  
    .u_boot_list : {
-               #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -97,7 -97,7 +97,7 @@@
     . = ALIGN(4);
    }
  
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  
    .ppcenv:
diff --combined board/gen860t/u-boot.lds
index d2649a857503e3a66d02a34bbd72087b748a66ff,9e9449d1a13223b4332e0801bf83ed1b41fbf71a..08fb4aa1fd8b7dd5dc9e3d0b51d35c7ec04d70fd
@@@ -74,7 -74,7 +74,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -98,6 -98,6 +98,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/genietv/u-boot.lds
index 15575e4ecc27ddc57b7a3ddc74dd354e7354e03e,958dd8482e2c9a0dc2d963bf92c52b90e72985e6..b351a6811061998c2396e162ccf7d227f3944d24
@@@ -83,7 -83,7 +83,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
      common/env_embedded.o (.ppcenv)
    }
    . = ALIGN(4);
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/hermes/u-boot.lds
index d2a2f22d4f9c4d2963273d99fc4c10980c1d97c4,b2bb50d596e2def00295382b4f092096203afcc2..8e5896375931dcc690caa8b1fa46647dac0def4b
@@@ -75,7 -75,7 +75,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -99,6 -99,6 +99,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/hymod/u-boot.lds
index c9f0f37953e24fcd11577872c81f7a59798faf8c,3133c55a08692a14220e9ec805a368b2791f6475..5d1c2ad3cb62a9ec0c513733a0b8e3f9a467b973
@@@ -113,7 -113,7 +113,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
      common/env_embedded.o (.ppcenv)
    }
    . = ALIGN(4);
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/icu862/u-boot.lds
index 9ff187c48171bd5f5c74cc79aca45e67e79a66fa,40f4a38f55c47e0f652cad9c84ae570d18b58ce9..6e4939b8bf9c086994e965bf8dc32a33157c4663
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/idmr/u-boot.lds
index fd77fa96b7271cb52622c7d6eb0319ee1e7703b2,6d138313e2811e27196b2b61da1f5dfff01bd5f6..5b8d3b3715792ae101c895300dc319ac564d55ab
@@@ -68,7 -68,7 +68,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
@@@ -93,6 -93,6 +93,6 @@@
     . = ALIGN(4);
     _ebss = .;
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/ip860/u-boot.lds
index a507d73aeb643529609b5400835c9aa8040cdf87,c2ec827dc78c34b4c1d3218cf81fe63fe9f30a2d..3334a44f618abbd4339ba541da2d3951547f5d9d
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/ivm/u-boot.lds
index 838c07bbb22980532d063367bffdf54f7c225fae,dcd53ec9af06117a117828c7dfd5bb37307d8a66..1b43dbe7882745398ea6766f5a31857cbcc38937
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 90d2135340ffec7f04b5467746191d28371dbfe9,b6fa79f0a213d22db43c0ba43776cab3fb12d6fc..52c929cab95da261f715043f7db5da03e179cf84
@@@ -110,7 -110,7 +110,7 @@@ SECTION
    . = .;
  
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
     . = ALIGN(4);
    }
  
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index a507d73aeb643529609b5400835c9aa8040cdf87,c2ec827dc78c34b4c1d3218cf81fe63fe9f30a2d..3334a44f618abbd4339ba541da2d3951547f5d9d
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index a507d73aeb643529609b5400835c9aa8040cdf87,c2ec827dc78c34b4c1d3218cf81fe63fe9f30a2d..3334a44f618abbd4339ba541da2d3951547f5d9d
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/lwmon/u-boot.lds
index 279605b26bf047b3009b9a16592ab47430c94191,30523dca469e22f67e6a2ffcd607516e67b053e3..ce11a91da6de3ee571911c31b2ad8dfc1621c90a
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index ac6af1a3a43003b85d677b4771283969a87ea4c7,8c75dea0fd074b81eb331576ad487e3a3d554440..d1bb1278886461d37a94e7c90d2a04d7bef98cff
@@@ -72,7 -72,7 +72,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -96,6 -96,6 +96,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 4c464d15ed6141bfb09eac67fb7384b1f8b2938c,57077701cab72aa4186be72a88980125d92108db..3225c0bb2ae0b5991ec290c402335f224a52ba34
@@@ -77,7 -77,7 +77,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
     *(.sbss*)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/mbx8xx/u-boot.lds
index a507d73aeb643529609b5400835c9aa8040cdf87,c2ec827dc78c34b4c1d3218cf81fe63fe9f30a2d..3334a44f618abbd4339ba541da2d3951547f5d9d
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/mousse/u-boot.lds
index 0bcf2ee6eb793f76a92cff9f01fde814d06e6226,080829b4360607f7a8777a60026ce4db165b5678..17ff94e5da62e438e70c139829bc4f5754fdd5d5
@@@ -63,7 -63,7 +63,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -88,6 -88,6 +88,6 @@@
     . = ALIGN(4);
    }
  
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/mvblue/u-boot.lds
index cb4a07c57f6a70728ac68c65c0eabb078b8aa680,e186ee6657ff89ecbd9cafc621bd547a9adb92d4..adbb5f9dac6bedcf13b3040a9716df185d0ba6ab
@@@ -73,7 -73,7 +73,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -97,6 -97,6 +97,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index e63a8c9fabee0288c438c1c63a2e4bdb2f87ccbe,ddb5a72b2ba8a77c5eede85e4313b5e41c707a9f..03891e937f1123349d8576860f1aa9bc2d6c37df
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/netta/u-boot.lds
index e63a8c9fabee0288c438c1c63a2e4bdb2f87ccbe,ddb5a72b2ba8a77c5eede85e4313b5e41c707a9f..03891e937f1123349d8576860f1aa9bc2d6c37df
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/netta2/u-boot.lds
index e63a8c9fabee0288c438c1c63a2e4bdb2f87ccbe,ddb5a72b2ba8a77c5eede85e4313b5e41c707a9f..03891e937f1123349d8576860f1aa9bc2d6c37df
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/netvia/u-boot.lds
index e63a8c9fabee0288c438c1c63a2e4bdb2f87ccbe,ddb5a72b2ba8a77c5eede85e4313b5e41c707a9f..03891e937f1123349d8576860f1aa9bc2d6c37df
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/nx823/u-boot.lds
index 3c1c05aa959ce802070d00d57424b5fa71d916de,bd74d746a367f11dcb50339d9d4d57f83ea41e77..a1481c869912f916196142323f815644b0ea0ab5
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/quantum/u-boot.lds
index a507d73aeb643529609b5400835c9aa8040cdf87,c2ec827dc78c34b4c1d3218cf81fe63fe9f30a2d..3334a44f618abbd4339ba541da2d3951547f5d9d
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/r360mpi/u-boot.lds
index 404eda03f6fa3b689b6faf9830dd8b8971af6a9b,9262aa55fb05da272d7bf2f953e80b531b13f72f..ef3a17fbbe61b3a6c253219cfc4e20782b88830a
@@@ -71,7 -71,7 +71,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -95,7 -95,7 +95,7 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
    . = ALIGN(128 * 1024);
    .ppcenv     :
diff --combined board/rbc823/u-boot.lds
index bb3b9deb33e1f88950323591cbd2fd045e88bd7b,c6560c60da4145e080466b3df0d6214d4a1803b8..b35440958cdfaebba8579c8ea04fe0ef0c74caae
@@@ -80,7 -80,7 +80,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
    . = .;
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index d5683126b8ce89ba3c1a5eb78567eeda92ecffb6,5bbb63f853c921a3b424e9d0598139ef69c8a018..276f525eb7e8db90fbd0ec26ffb8670d594a41b6
@@@ -78,7 -78,7 +78,7 @@@ SECTION
        PROVIDE (_egot = .);
  
        .u_boot_list : {
-               #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        PROVIDE (reloc_dst_end = .);
@@@ -93,5 -93,5 +93,5 @@@
        }
        PROVIDE (bss_end = .);
  
 -      PROVIDE (__bss_end__ = .);
 +      PROVIDE (__bss_end = .);
  }
index 49d65006b1786c6f77bc0260023e7c5541b31047,0717d041ca8e576222c4a64ef5cacdb906dbfae7..58824271cb04799934bc3230c451c0b7204b88af
@@@ -79,7 -79,7 +79,7 @@@ SECTION
  
  
        .u_boot_list : {
-               #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        PROVIDE (reloc_dst_end = .);
@@@ -94,5 -94,5 +94,5 @@@
        }
        PROVIDE (bss_end = .);
  
 -      PROVIDE (__bss_end__ = .);
 +      PROVIDE (__bss_end = .);
  }
index ec8cdddadc056ff9ffb32fff94919571a2b018cc,46625462b45f632f0b2ee195cb4bd3aeb7636169..240b9363c8db14e4b6dad2ce55988d18e2bbc05e
@@@ -100,7 -100,7 +100,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 48ad60cea3bb92253e9dba75be6284cdb8ec3a4d,4ef6a5197665eb28c888c185263c066911d19dce..4c8baaa9db36992168e85a38ceb2869ebf604f5b
@@@ -49,7 -49,7 +49,7 @@@ SECTION
        . = ALIGN(4);
  
        .u_boot_list : {
-               #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        } >.sram
        . = ALIGN(4);
  
@@@ -66,6 -66,6 +66,6 @@@
                __bss_start = .;
                *(.bss*)
                . = ALIGN(4);
 -              __bss_end__ = .;
 +              __bss_end = .;
        } >.sram
  }
index 3bf2ae1dcb1cc6e70ee4c21416f64b74d09b41c3,ae32b1625e2dcb1dbf6fe6f204f22ff3b8dde2e5..64c650d2e9c39ee964ef9917e349717bb9078473
@@@ -50,7 -50,7 +50,7 @@@ SECTION
  
        . = align(4);
        .u_boot_list : {
-               #include <u-boot.lst>
+               KEEP(*(SORT(.u_boot_list*)));
        }
  
        . = align(4);
@@@ -75,7 -75,7 +75,7 @@@
                __bss_start = .;
                *(.bss)
                . = ALIGN(4);
 -              __bss_end__ = .;
 +              __bss_end = .;
        }
  
        /DISCARD/ : { *(.dynstr*) }
index 65c1dbd88e768ff9adb5c00af0c885079fb1d43c,ca13619659dd0b0c85b643b9668db4d83fb63006..95e13c46df0554e5955eca039a5947d1db1b5ef0
@@@ -71,7 -71,7 +71,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -95,6 -95,6 +95,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/sixnet/u-boot.lds
index ce3026f0add4d90c8d6a185f0d14e8af294981d1,fa4de9d9c5c7c82850a3c843bbd6ab5e8907eda4..66c5fba210ee1c70aaff01130b8d0b8046acc9db
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 749980fa0f048616ebfc80b0a5082a0119c55da1,5929335bf527df0b5396198253e9a4a8bcb57cc7..285e8971ff4ca0bd6cbff003178b3d6ee655e85c
@@@ -72,7 -72,7 +72,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -96,6 -96,6 +96,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index a507d73aeb643529609b5400835c9aa8040cdf87,c2ec827dc78c34b4c1d3218cf81fe63fe9f30a2d..3334a44f618abbd4339ba541da2d3951547f5d9d
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/spc1920/u-boot.lds
index a507d73aeb643529609b5400835c9aa8040cdf87,c2ec827dc78c34b4c1d3218cf81fe63fe9f30a2d..3334a44f618abbd4339ba541da2d3951547f5d9d
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/spd8xx/u-boot.lds
index 905c91d84869fffe574fd0bb2484d00eafac234e,b2ad3434fdc028a0e8a624ca1fad80619e5646aa..58f2565f7fa9353251b2e1bbf471a51f663822ba
@@@ -78,7 -78,7 +78,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index e63a8c9fabee0288c438c1c63a2e4bdb2f87ccbe,ddb5a72b2ba8a77c5eede85e4313b5e41c707a9f..03891e937f1123349d8576860f1aa9bc2d6c37df
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 5d3d8f2019368e3efa20d3056ad4e996a17f3b41,ebfa890211ba550a9d3d46872e28be611b982524..99b8bfa5bfeda02ea2560fe7658bf8750c9be001
@@@ -86,7 -86,7 +86,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index bcc618c851eb9bfa99f0375d660b2e777fdfda0e,bab452cc69f933da80959f358dbc6691076638df..fbf321da5435d4d2d8e78d5919fb3b7abe44f4ac
@@@ -82,7 -82,7 +82,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
diff --combined board/v37/u-boot.lds
index cdd73fae47f45d94f6bdf535e930ee3dcdb8412d,9504fcd9f4b0f452c2019a33eead5bebc1f8e46e..f25a01b3d5a35a09eefd6d4cb00bd78e4c9a02c5
@@@ -69,7 -69,7 +69,7 @@@ SECTION
  
    . = ALIGN(4);
    .u_boot_list : {
-       #include <u-boot.lst>
+       KEEP(*(SORT(.u_boot_list*)));
    }
  
  
@@@ -93,6 -93,6 +93,6 @@@
     *(COMMON)
     . = ALIGN(4);
    }
 -  __bss_end__ = . ;
 +  __bss_end = . ;
    PROVIDE (end = .);
  }
index 5d66c13a4bd38302fb34fcebd450fb8cd9bc6820,1958c2fb9031b2c252b48247062003f44e36484a..dc437d1f2329232320da07e3899d32895544a8d2
@@@ -57,10 -57,6 +57,6 @@@ SECTION
                *(.data)
        }
  
-       .u_boot_list : {
-               #include <u-boot.lst>
-       }
        . = ALIGN(4);
  
        .rel.dyn : {
@@@ -82,7 -78,7 +78,7 @@@
                __bss_start = .;
                *(.bss)
                 . = ALIGN(4);
 -              __bss_end__ = .;
 +              __bss_end = .;
        }
  
        /DISCARD/ : { *(.bss*) }
diff --combined boards.cfg
index 2b408f5ccab9391469c26f3708a599e3608b4cf8,272a5fc19e523f4b5dc7a7d520bafb47405a2351..ee68fdda8351204cef9fa2dc546a8dd96d093a23
@@@ -95,6 -95,7 +95,7 @@@ at91sam9g10ek_nandflash      ar
  at91sam9g20ek_dataflash_cs0  arm         arm926ejs   at91sam9260ek       atmel          at91        at91sam9260ek:AT91SAM9G20,SYS_USE_DATAFLASH_CS0
  at91sam9g20ek_dataflash_cs1  arm         arm926ejs   at91sam9260ek       atmel          at91        at91sam9260ek:AT91SAM9G20,SYS_USE_DATAFLASH_CS1
  at91sam9g20ek_nandflash      arm         arm926ejs   at91sam9260ek       atmel          at91        at91sam9260ek:AT91SAM9G20,SYS_USE_NANDFLASH
+ at91sam9g20ek_2mmc_nandflash arm         arm926ejs   at91sam9260ek       atmel          at91        at91sam9260ek:AT91SAM9G20,AT91SAM9G20EK_2MMC,SYS_USE_NANDFLASH
  at91sam9m10g45ek_nandflash   arm         arm926ejs   at91sam9m10g45ek    atmel          at91        at91sam9m10g45ek:AT91SAM9M10G45,SYS_USE_NANDFLASH
  at91sam9rlek_dataflash       arm         arm926ejs   at91sam9rlek        atmel          at91        at91sam9rlek:AT91SAM9RL,SYS_USE_DATAFLASH
  at91sam9rlek_nandflash       arm         arm926ejs   at91sam9rlek        atmel          at91        at91sam9rlek:AT91SAM9RL,SYS_USE_NANDFLASH
@@@ -233,11 -234,13 +234,13 @@@ integratorap_cm946es         ar
  integratorcp_cm946es         arm         arm946es    integrator          armltd         -               integratorcp:CM946ES
  ca9x4_ct_vxp                 arm         armv7       vexpress            armltd
  am335x_evm                   arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL1,CONS_INDEX=1
+ am335x_evm_spiboot           arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL1,CONS_INDEX=1,SPI_BOOT
  am335x_evm_uart1             arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL2,CONS_INDEX=2
  am335x_evm_uart2             arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL3,CONS_INDEX=3
  am335x_evm_uart3             arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL4,CONS_INDEX=4
  am335x_evm_uart4             arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL5,CONS_INDEX=5
  am335x_evm_uart5             arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL6,CONS_INDEX=6
+ am335x_evm_usbspl            arm         armv7       am335x              ti             am33xx      am335x_evm:SERIAL1,CONS_INDEX=1,SPL_USBETH_SUPPORT
  pcm051                       arm         armv7       pcm051              phytec         am33xx      pcm051
  highbank                     arm         armv7       highbank            -              highbank
  mx51_efikamx                 arm         armv7       mx51_efikamx        genesi         mx5           mx51_efikamx:MACH_TYPE=MACH_TYPE_MX51_EFIKAMX,IMX_CONFIG=board/genesi/mx51_efikamx/imximage_mx.cfg
@@@ -254,6 -257,12 +257,12 @@@ mx6qsabreauto                ar
  mx6qsabrelite                arm         armv7       mx6qsabrelite       freescale      mx6           mx6qsabrelite:IMX_CONFIG=board/freescale/imx/ddr/mx6q_4x_mt41j128.cfg
  mx6qsabresd                  arm         armv7       mx6qsabresd         freescale      mx6           mx6qsabresd:IMX_CONFIG=board/freescale/imx/ddr/mx6q_4x_mt41j128.cfg
  eco5pk                       arm         armv7       eco5pk              8dtech         omap3
+ nitrogen6dl                  arm         armv7       nitrogen6x          boundary       mx6           nitrogen6x:IMX_CONFIG=board/boundary/nitrogen6x/nitrogen6dl.cfg,MX6DL,DDR_MB=1024
+ nitrogen6dl2g                arm         armv7       nitrogen6x          boundary       mx6           nitrogen6x:IMX_CONFIG=board/boundary/nitrogen6x/nitrogen6dl2g.cfg,MX6DL,DDR_MB=2048
+ nitrogen6q                   arm         armv7       nitrogen6x          boundary       mx6           nitrogen6x:IMX_CONFIG=board/boundary/nitrogen6x/nitrogen6q.cfg,MX6Q,DDR_MB=1024
+ nitrogen6q2g                 arm         armv7       nitrogen6x          boundary       mx6           nitrogen6x:IMX_CONFIG=board/boundary/nitrogen6x/nitrogen6q2g.cfg,MX6Q,DDR_MB=2048
+ nitrogen6s                   arm         armv7       nitrogen6x          boundary       mx6           nitrogen6x:IMX_CONFIG=board/boundary/nitrogen6x/nitrogen6s.cfg,MX6S,DDR_MB=512
+ nitrogen6s1g                 arm         armv7       nitrogen6x          boundary       mx6           nitrogen6x:IMX_CONFIG=board/boundary/nitrogen6x/nitrogen6s1g.cfg,MX6S,DDR_MB=1024
  cm_t35                       arm         armv7       cm_t35              -              omap3
  omap3_overo                  arm         armv7       overo               -              omap3
  omap3_pandora                arm         armv7       pandora             -              omap3
@@@ -262,6 -271,7 +271,7 @@@ igep0020                     ar
  igep0020_nand                arm         armv7       igep00x0            isee           omap3         igep00x0:MACH_TYPE=MACH_TYPE_IGEP0020,BOOT_NAND
  igep0030                     arm         armv7       igep00x0            isee           omap3         igep00x0:MACH_TYPE=MACH_TYPE_IGEP0030,BOOT_ONENAND
  igep0030_nand                arm         armv7       igep00x0            isee           omap3         igep00x0:MACH_TYPE=MACH_TYPE_IGEP0030,BOOT_NAND
+ igep0032                     arm         armv7       igep00x0            isee           omap3         igep00x0:MACH_TYPE=MACH_TYPE_IGEP0032,BOOT_ONENAND
  am3517_evm                   arm         armv7       am3517evm           logicpd        omap3
  mt_ventoux                   arm         armv7       mt_ventoux          teejet         omap3
  omap3_zoom1                  arm         armv7       zoom1               logicpd        omap3
@@@ -282,6 -292,7 +292,7 @@@ nokia_rx51                   ar
  omap4_panda                  arm         armv7       panda               ti             omap4
  omap4_sdp4430                arm         armv7       sdp4430             ti             omap4
  omap5_evm                    arm         armv7       omap5_evm           ti           omap5
+ dra7xx_evm                 arm         armv7       dra7xx              ti             omap5
  s5p_goni                     arm         armv7       goni                samsung        s5pc1xx
  smdkc100                     arm         armv7       smdkc100            samsung        s5pc1xx
  origen                             arm         armv7       origen              samsung        exynos
@@@ -301,6 -312,7 +312,7 @@@ snowball                     ar
  kzm9g                        arm         armv7       kzm9g               kmc            rmobile
  armadillo-800eva             arm         armv7       armadillo-800eva    atmark-techno  rmobile
  zynq                         arm         armv7       zynq                xilinx         zynq
+ zynq_dcc                     arm         armv7       zynq                xilinx         zynq        zynq:ZYNQ_DCC
  socfpga_cyclone5                arm         armv7          socfpga_cyclone5    altera             socfpga
  actux1_4_16                  arm         ixp         actux1              -              -           actux1:FLASH2X2
  actux1_4_32                  arm         ixp         actux1              -              -           actux1:FLASH2X2,RAM_32MB
@@@ -465,6 -477,8 +477,6 @@@ openrisc-generic             openris
  EVB64260                     powerpc     74xx_7xx    evb64260            -              -           EVB64260
  EVB64260_750CX               powerpc     74xx_7xx    evb64260            -              -           EVB64260
  P3G4                         powerpc     74xx_7xx    evb64260
 -PCIPPC2                      powerpc     74xx_7xx    pcippc2
 -PCIPPC6                      powerpc     74xx_7xx    pcippc2
  ppmc7xx                      powerpc     74xx_7xx
  ZUMA                         powerpc     74xx_7xx    evb64260
  ELPPC                        powerpc     74xx_7xx    elppc               eltec
@@@ -479,12 -493,10 +491,12 @@@ aria                         powerp
  mecp5123                     powerpc     mpc512x     -                   esd
  mpc5121ads                   powerpc     mpc512x     mpc5121ads          freescale
  mpc5121ads_rev2              powerpc     mpc512x     mpc5121ads          freescale      -           mpc5121ads:MPC5121ADS_REV2
 +ac14xx                       powerpc     mpc512x     ac14xx              ifm
  cmi_mpc5xx                   powerpc     mpc5xx      cmi
  PATI                         powerpc     mpc5xx      pati                mpl
  a3m071                       powerpc     mpc5xxx     a3m071
  a4m072                       powerpc     mpc5xxx     a4m072
 +a4m2k                        powerpc     mpc5xxx     a3m071              -              -           a3m071:A4M2K
  BC3450                       powerpc     mpc5xxx     bc3450
  canmb                        powerpc     mpc5xxx
  cm5200                       powerpc     mpc5xxx
diff --combined config.mk
index 98864153e9b4d6ee55ee52071cc98d872bbace32,bb5c69a15d9f67376ca58534b189707dc714db72..4e6a19bd8a60bc94137e49d17b2718de7a76d5bd
+++ b/config.mk
@@@ -23,8 -23,6 +23,6 @@@
  
  #########################################################################
  
- include $(TOPDIR)/helper.mk
  ifeq ($(CURDIR),$(SRCTREE))
  dir :=
  else
@@@ -221,14 -219,6 +219,14 @@@ ifeq ($(CONFIG_SPL_BUILD),y
  CPPFLAGS += -DCONFIG_SPL_BUILD
  endif
  
 +# Does this architecture support generic board init?
 +ifeq ($(__HAVE_ARCH_GENERIC_BOARD),)
 +ifneq ($(CONFIG_SYS_GENERIC_BOARD),)
 +$(error Your architecture does not support generic board. Please undefined \
 +CONFIG_SYS_GENERIC_BOARD in your board config file)
 +endif
 +endif
 +
  ifneq ($(RESET_VECTOR_ADDRESS),)
  CPPFLAGS += -DRESET_VECTOR_ADDRESS=$(RESET_VECTOR_ADDRESS)
  endif
diff --combined doc/README.scrapyard
index 7d73ea02dfb16a46680b69314b2c73aa165f8cc9,e9ca96cba7c13a5614b060d5ede5664a28fe516c..189b8839d51452c507dd00b36c4b6d769c5ff34b
@@@ -9,85 -9,84 +9,86 @@@ maintain a list of such former fellows
  easily if here is something they might want to dig for...
  
  
- Board Arch    CPU     removed     Commit      last known maintainer/contact
- =============================================================================
- AMX860        powerpc mpc860  -         -             Wolfgang Denk <wd@denx.de>
- c2mon powerpc mpc855  -         -             Wolfgang Denk <wd@denx.de>
- ETX094        powerpc mpc850  -         -             Wolfgang Denk <wd@denx.de>
- IAD210        powerpc mpc860  -         -             -
- LANTEC        powerpc mpc850  -         -             Wolfgang Denk <wd@denx.de>
- SCM   powerpc mpc8260 -         -             Wolfgang Grandegger <wg@denx.de>
- SX1   arm     arm925t -         -
- TQM85xx       powerpc MPC85xx d923a5d5  2012-10-04    Stefan Roese <sr@denx.de>
- apollon arm     omap24xx 535c74f  2012-09-18    Kyungmin Park <kyungmin.park@samsung.com>
- tb0229        mips    mips32  3f3110d   2011-12-12
- rmu   powerpc MPC850  fb82fd7   2011-12-07    Wolfgang Denk <wd@denx.de>
- OXC   powerpc MPC8240 309a292   2011-12-07
- BAB7xx        powerpc MPC740/MPC750 c53043b 2011-12-07 Frank Gottschling <fgottschling@eltec.de>
- xm250   arm     pxa     c746cdd   2011-25-11
- pleb2   arm     pxa     b185a1c   2011-25-11
- cradle  arm     pxa     4e24f8a   2011-25-11    Kyle Harris <kharris@nexus-tech.net>
- cerf250 arm     pxa     a3f1241   2011-25-11    Prakash Kumar <prakash@embedx.com>
- mpq101        powerpc mpc85xx e877fab   2011-10-23    Alex Dubov <oakad@yahoo.com>
- ixdpg425 arm  ixp     0ca8eb7   2011-09-22    Stefan Roese <sr@denx.de>
- ixdp425 arm   ixp     0ca8eb7   2011-09-22    Kyle Harris <kharris@nexus-tech.net>
- zylonite arm  pxa     b66521a   2011-09-05
- shannon arm   sa1100  5df092d   2011-09-05    Rolf Offermanns <rof@sysgo.de>
- modnet50 arm  arm720t 9c62815   2011-09-05    Thomas Elste <info@elste.org>
- lpc2292sodimm arm arm720t d1a067a  2011-09-05
- lart  arm     sa1100  3d57573   2011-09-05    Alex Züpke <azu@sysgo.de>
- impa7 arm     arm720t c1f8750   2011-09-05    Marius Gröger <mag@sysgo.de>
- gcplus        arm     sa1100  2c650e2   2011-09-05    George G. Davis <gdavis@mvista.com>
- evb4510       arm     arm720t 26e670e   2011-09-05    Curt Brune <curt@cucy.com>
- ep7312        arm     arm720t c8f63b4   2011-09-05    Marius Gröger <mag@sysgo.de>
- dnp1110       arm     sa1100  fc5e5ce   2011-09-05    Alex Züpke <azu@sysgo.de>
- SMN42 arm     arm720t 6aac646   2011-09-05
- at91rm9200dk arm arm920t 1c85752  2011-07-17
- m501sk        arm     arm920t b1a2bd4   2011-07-17
- kb9202        arm     arm920t 5bd3814   2011-07-17
- csb637        arm     arm920t d14af08   2011-07-17
- cmc_pu2       arm     arm920t 37a9b4d   2011-07-17
- at91cap9adk arm       arm926ejs b550834 2011-07-17    Stelian Pop <stelian@popies.net>
- voiceblue arm arm925t 1b793a4   2011-07-17
- smdk2400 arm  arm920t ad218a8   2011-07-17    Gary Jennejohn <garyj@denx.de>
- sbc2410x arm  arm920t 1f7f0ed   2011-07-17
- netstar       arm     arm925t 6ea2405   2011-07-17
- mx1fs2        arm     arm920t 6962419   2011-07-17
- lpd7a404 arm  lh7a40x 957731e   2011-07-17
- edb9301       arm     arm920t 716f7ad   2011-07-17
- edb9302       arm     arm920t 716f7ad   2011-07-17
- edb9302a arm  arm920t 716f7ad   2011-07-17
- edb9307        arm    arm920t 716f7ad   2011-07-17
- edb9307a arm  arm920t 716f7ad   2011-07-17
- edb9312       arm     arm920t 716f7ad   2011-07-17
- edb9315       arm     arm920t 716f7ad   2011-07-17
- edb9315a arm  arm920t 716f7ad   2011-07-17
- B2    arm     s3c44b0 5dcf536   2011-07-16    Andrea Scian <andrea.scian@dave-tech.it>
- armadillo arm arm720t be28857   2011-07-16    Rowel Atienza <rowel@diwalabs.com>
- assabet       arm     sa1100  c91e90d   2011-07-16    George G. Davis <gdavis@mvista.com>
- trab  arm     S3C2400 566e5cf   2011-05-01    Gary Jennejohn <garyj@denx.de>
- xsengine ARM  PXA2xx  4262a7c   2010-10-20
- wepep250 ARM  PXA2xx  7369478   2010-10-20    Peter Figuli <peposh@etc.sk>
- delta ARM     PXA2xx  75e2035   2010-10-20
- mp2usb        ARM     AT91RM2900  ee986e2 2011-01-25  Eric Bénard <eric@eukrea.com>
- barco powerpc MPC8245 afaa27b   2010-11-23    Marc Leeman <marc.leeman@barco.com>
- ERIC  powerpc 405GP   d9ba451   2010-11-21    Swen Anderson <sand@peppercon.de>
- VoVPN-GW_100MHz       powerpc MPC8260 26fe3d2 2010-10-24      Juergen Selent <j.selent@elmeg.de>
- NC650 powerpc MPC852  333d86d   2010-10-19    Wolfgang Denk <wd@denx.de>
- CP850 powerpc MPC852  333d86d   2010-10-19    Wolfgang Denk <wd@denx.de>
- logodl        ARM     PXA2xx  059e778   2010-10-18    August Hoeraendl <august.hoerandl@gmx.at>
- CCM   powerpc MPC860  dff07e1   2010-10-06    Wolfgang Grandegger <wg@denx.de>
- PCU_E powerpc MPC860T 544d97e   2010-10-06    Wolfgang Denk <wd@denx.de>
- spieval       powerpc MPC5200 69434e4   2010-09-19
- smmaco4       powerpc MPC5200 9ddc3af   2010-09-19
- HMI10 powerpc MPC823  77efe35   2010-09-19    Wolfgang Denk <wd@denx.de>
- GTH   powerpc MPC860  0fe247b   2010-07-17    Thomas Lange <thomas@corelatus.se>
- AmigaOneG3SE          953b7e6   2010-06-23
- suzaku        microblaze      4f18060   2009-10-03    Yasushi Shoji <yashi@atmark-techno.com>
- XUPV2P        microblaze      8fab49e   2008-12-10    Michal Simek <monstr@monstr.eu>
- MVS1  powerpc MPC823  306620b   2008-08-26    Andre Schwarz <andre.schwarz@matrix-vision.de>
- adsvix        ARM     PXA27x  7610db1   2008-07-30    Adrian Filipi <adrian.filipi@eurotech.com>
- R5200 ColdFire        48ead7a   2008-03-31    Zachary P. Landau <zachary.landau@labxtechnologies.com>
- CPCI440       powerpc 440GP   b568fd2   2007-12-27    Matthias Fuchs <matthias.fuchs@esd-electronics.com>
- PCIPPC2       powerpc MPC740/MPC750 -   -             Wolfgang Denk <wd@denx.de>
+ Board            Arch        CPU            Commit      Removed     Last known maintainer/contact
+ =================================================================================================
+ ns9750dev        arm         arm926ejs      -           -           Markus Pietrek <mpietrek@fsforth.de>
+ AMX860           powerpc     mpc860         1b0757e     2012-10-28  Wolfgang Denk <wd@denx.de>
+ c2mon            powerpc     mpc855         1b0757e     2012-10-28  Wolfgang Denk <wd@denx.de>
+ ETX094           powerpc     mpc850         1b0757e     2012-10-28  Wolfgang Denk <wd@denx.de>
+ IAD210           powerpc     mpc860         1b0757e     2012-10-28  -
+ LANTEC           powerpc     mpc850         1b0757e     2012-10-28  Wolfgang Denk <wd@denx.de>
+ SCM              powerpc     mpc8260        1b0757e     2012-10-28  Wolfgang Grandegger <wg@denx.de>
+ SX1              arm         arm925t        53c4154     2012-10-26
+ TQM85xx          powerpc     MPC85xx        d923a5d     2012-10-04  Stefan Roese <sr@denx.de>
+ apollon          arm         omap24xx       535c74f     2012-09-18  Kyungmin Park <kyungmin.park@samsung.com>
+ tb0229           mips        mips32         3f3110d     2011-12-12
+ rmu              powerpc     MPC850         fb82fd7     2011-12-07  Wolfgang Denk <wd@denx.de>
+ OXC              powerpc     MPC8240        309a292     2011-12-07
+ BAB7xx           powerpc     MPC740/MPC750  c53043b     2011-12-07  Frank Gottschling <fgottschling@eltec.de>
+ xm250            arm         pxa            c746cdd     2011-25-11
+ pleb2            arm         pxa            b185a1c     2011-25-11
+ cradle           arm         pxa            4e24f8a     2011-25-11  Kyle Harris <kharris@nexus-tech.net>
+ cerf250          arm         pxa            a3f1241     2011-25-11  Prakash Kumar <prakash@embedx.com>
+ mpq101           powerpc     mpc85xx        e877fab     2011-10-23  Alex Dubov <oakad@yahoo.com>
+ ixdpg425         arm         ixp            0ca8eb7     2011-09-22  Stefan Roese <sr@denx.de>
+ ixdp425          arm         ixp            0ca8eb7     2011-09-22  Kyle Harris <kharris@nexus-tech.net>
+ zylonite         arm         pxa            b66521a     2011-09-05
+ shannon          arm         sa1100         5df092d     2011-09-05  Rolf Offermanns <rof@sysgo.de>
+ modnet50         arm         arm720t        9c62815     2011-09-05  Thomas Elste <info@elste.org>
+ lpc2292sodimm    arm         arm720t        d1a067a     2011-09-05
+ lart             arm         sa1100         3d57573     2011-09-05  Alex Züpke <azu@sysgo.de>
+ impa7            arm         arm720t        c1f8750     2011-09-05  Marius Gröger <mag@sysgo.de>
+ gcplus           arm         sa1100         2c650e2     2011-09-05  George G. Davis <gdavis@mvista.com>
+ evb4510          arm         arm720t        26e670e     2011-09-05  Curt Brune <curt@cucy.com>
+ ep7312           arm         arm720t        c8f63b4     2011-09-05  Marius Gröger <mag@sysgo.de>
+ dnp1110          arm         sa1100         fc5e5ce     2011-09-05  Alex Züpke <azu@sysgo.de>
+ SMN42            arm         arm720t        6aac646     2011-09-05
+ at91rm9200dk     arm         arm920t        1c85752     2011-07-17
+ m501sk           arm         arm920t        b1a2bd4     2011-07-17
+ kb9202           arm         arm920t        5bd3814     2011-07-17
+ csb637           arm         arm920t        d14af08     2011-07-17
+ cmc_pu2          arm         arm920t        37a9b4d     2011-07-17
+ at91cap9adk      arm         arm926ejs      b550834     2011-07-17  Stelian Pop <stelian@popies.net>
+ voiceblue        arm         arm925t        1b793a4     2011-07-17
+ smdk2400         arm         arm920t        ad218a8     2011-07-17  Gary Jennejohn <garyj@denx.de>
+ sbc2410x         arm         arm920t        1f7f0ed     2011-07-17
+ netstar          arm         arm925t        6ea2405     2011-07-17
+ mx1fs2           arm         arm920t        6962419     2011-07-17
+ lpd7a404         arm         lh7a40x        957731e     2011-07-17
+ edb9301          arm         arm920t        716f7ad     2011-07-17
+ edb9302          arm         arm920t        716f7ad     2011-07-17
+ edb9302a         arm         arm920t        716f7ad     2011-07-17
+ edb9307          arm         arm920t        716f7ad     2011-07-17
+ edb9307a         arm         arm920t        716f7ad     2011-07-17
+ edb9312          arm         arm920t        716f7ad     2011-07-17
+ edb9315          arm         arm920t        716f7ad     2011-07-17
+ edb9315a         arm         arm920t        716f7ad     2011-07-17
+ B2               arm         s3c44b0        5dcf536     2011-07-16  Andrea Scian <andrea.scian@dave-tech.it>
+ armadillo        arm         arm720t        be28857     2011-07-16  Rowel Atienza <rowel@diwalabs.com>
+ assabet          arm         sa1100         c91e90d     2011-07-16  George G. Davis <gdavis@mvista.com>
+ trab             arm         S3C2400        566e5cf     2011-05-01  Gary Jennejohn <garyj@denx.de>
+ xsengine         ARM         PXA2xx         4262a7c     2010-10-20
+ wepep250         ARM         PXA2xx         7369478     2010-10-20  Peter Figuli <peposh@etc.sk>
+ delta            ARM         PXA2xx         75e2035     2010-10-20
+ mp2usb           ARM         AT91RM2900     ee986e2     2011-01-25  Eric Bénard <eric@eukrea.com>
+ barco            powerpc     MPC8245        afaa27b     2010-11-23  Marc Leeman <marc.leeman@barco.com>
+ ERIC             powerpc     405GP          d9ba451     2010-11-21  Swen Anderson <sand@peppercon.de>
+ VoVPN-GW_100MHz  powerpc     MPC8260        26fe3d2     2010-10-24  Juergen Selent <j.selent@elmeg.de>
+ NC650            powerpc     MPC852         333d86d     2010-10-19  Wolfgang Denk <wd@denx.de>
+ CP850            powerpc     MPC852         333d86d     2010-10-19  Wolfgang Denk <wd@denx.de>
+ logodl           ARM         PXA2xx         059e778     2010-10-18  August Hoeraendl <august.hoerandl@gmx.at>
+ CCM              powerpc     MPC860         dff07e1     2010-10-06  Wolfgang Grandegger <wg@denx.de>
+ PCU_E            powerpc     MPC860T        544d97e     2010-10-06  Wolfgang Denk <wd@denx.de>
+ spieval          powerpc     MPC5200        69434e4     2010-09-19
+ smmaco4          powerpc     MPC5200        9ddc3af     2010-09-19
+ HMI10            powerpc     MPC823         77efe35     2010-09-19  Wolfgang Denk <wd@denx.de>
+ GTH              powerpc     MPC860         0fe247b     2010-07-17  Thomas Lange <thomas@corelatus.se>
+ AmigaOneG3SE     powerpc     74xx_7xx       953b7e6     2010-06-23
+ suzaku           microblaze  -              4f18060     2009-10-03  Yasushi Shoji <yashi@atmark-techno.com>
+ XUPV2P           microblaze  -              8fab49e     2008-12-10  Michal Simek <monstr@monstr.eu>
+ MVS1             powerpc     MPC823         306620b     2008-08-26  Andre Schwarz <andre.schwarz@matrix-vision.de>
+ adsvix           ARM         PXA27x         7610db1     2008-07-30  Adrian Filipi <adrian.filipi@eurotech.com>
+ R5200            ColdFire    -              48ead7a     2008-03-31  Zachary P. Landau <zachary.landau@labxtechnologies.com>
+ CPCI440          powerpc     440GP          b568fd2     2007-12-27  Matthias Fuchs <matthias.fuchs@esd-electronics.com>
++PCIPPC2          powerpc     MPC740/MPC750  7c9e89b     2013-02-07  Wolfgang Denk <wd@denx.de>
 +PCIPPC6       powerpc MPC740/MPC750 -   -             Wolfgang Denk <wd@denx.de>
index 88acccf56d9736a677185a13a12e5c56fe1573b1,4cc35e5a887cc288d40a5d606c7a3b7377fe8b45..036ded0c79f485230b8bd08f1a05212722f6b6dd
@@@ -21,8 -21,8 +21,8 @@@
   * MA 02111-1307 USA
   */
  
- #ifndef __TEGRA_COMMON_H
- #define __TEGRA_COMMON_H
+ #ifndef _TEGRA_COMMON_H_
+ #define _TEGRA_COMMON_H_
  #include <asm/sizes.h>
  #include <linux/stringify.h>
  
  #define CONFIG_SYS_MALLOC_LEN         (4 << 20)       /* 4MB  */
  
  /*
-  * PllX Configuration
+  * NS16550 Configuration
   */
- #define CONFIG_SYS_CPU_OSC_FREQUENCY  1000000 /* Set CPU clock to 1GHz */
  #define CONFIG_SYS_NS16550
  #define CONFIG_SYS_NS16550_SERIAL
  #define CONFIG_SYS_NS16550_REG_SIZE   (-4)
  #define CONFIG_COMMAND_HISTORY
  #define CONFIG_AUTO_COMPLETE
  
+ /* turn on commonly used storage-related commands */
+ #define CONFIG_DOS_PARTITION
+ #define CONFIG_EFI_PARTITION
+ #define CONFIG_PARTITION_UUIDS
+ #define CONFIG_FS_EXT4
+ #define CONFIG_FS_FAT
+ #define CONFIG_CMD_EXT2
+ #define CONFIG_CMD_FAT
+ #define CONFIG_CMD_FS_GENERIC
+ #define CONFIG_CMD_PART
  #define CONFIG_SYS_NO_FLASH
  
  #define CONFIG_CONSOLE_MUX
  #define CONFIG_SPL_SERIAL_SUPPORT
  #define CONFIG_SPL_GPIO_SUPPORT
  
 +#define CONFIG_SYS_GENERIC_BOARD
+ /* Misc utility code */
+ #define CONFIG_BOUNCE_BUFFER
  
  #endif /* _TEGRA_COMMON_H_ */
index eaccd55977e8f075a462d8678621995d6717dcc6,06561769309f4ef88899b79754b946245ae397d5..5f2b5e20228950c38e77f70d9bec859bb6c50799
@@@ -49,7 -49,7 +49,7 @@@ SECTION
  
        . = ALIGN(4);
        .u_boot_list : {
-               #include <u-boot.lst>
+               *(SORT(.u_boot_list*));
        }
  
        . = ALIGN(4);
@@@ -73,7 -73,7 +73,7 @@@
                __bss_start = .;
                *(.bss)
                 . = ALIGN(4);
 -              __bss_end__ = .;
 +              __bss_end = .;
        }
  
        /DISCARD/ : { *(.bss*) }
index e047edb4d3623b36837785b89d9fb9fd6f147447,ea84d64f3f1b0b4e0e3d3402da59e46b2a9ad916..4d1aac367799f37672cc638f874403d0c6416ffd
@@@ -49,7 -49,7 +49,7 @@@ SECTION
  
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+       *(SORT(.u_boot_list*));
        }
  
        . = ALIGN(4);
@@@ -71,7 -71,7 +71,7 @@@
                __bss_start = .;
                *(.bss)
                 . = ALIGN(4);
 -              __bss_end__ = .;
 +              __bss_end = .;
        }
  
        /DISCARD/ : { *(.bss*) }
index ae2bc4b6515e32aa3edf106ec35c2a6d00ab529c,66b412e4aa964b15cc060113b32c0ee3302d4263..b6c573be5c32acf57648d0f4d63f76d366d7f84a
@@@ -53,7 -53,7 +53,7 @@@ SECTION
  
        . = ALIGN(4);
        .u_boot_list : {
-       #include <u-boot.lst>
+       *(SORT(.u_boot_list*));
        }
  
        . = ALIGN(4);
@@@ -75,6 -75,6 +75,6 @@@
        __bss_start = .;
        *(.bss)
        . = ALIGN(4);
 -      __bss_end__ = .;
 +      __bss_end = .;
        }
  }