[U-Boot] [PATCH 1/2] RFC: create u-boot-common.lds

Troy Kisky troy.kisky at boundarydevices.com
Sun Feb 5 04:02:45 CET 2012


This makes adding linker defined tables easier
as far fewer lds files will need to be touched.

Signed-off-by: Troy Kisky <troy.kisky at boundarydevices.com>

Series based on Stefano's u-boot-imx
Close inspection of

board/mousse/u-boot.lds.ram
arch/blackfin/cpu/u-boot.lds

is warranted.

./MAKEALL -a arm
Boards compiled: 216
Boards with warnings or errors: 71



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

diff --git a/arch/arm/cpu/arm1136/u-boot.lds b/arch/arm/cpu/arm1136/u-boot.lds
index d1e2851..cd7927c 100644
--- a/arch/arm/cpu/arm1136/u-boot.lds
+++ b/arch/arm/cpu/arm1136/u-boot.lds
@@ -52,12 +52,7 @@ SECTIONS
 		*(.data)
 	}
 
-	. = ALIGN(4);
-
-	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 
diff --git a/arch/arm/cpu/arm1176/u-boot.lds b/arch/arm/cpu/arm1176/u-boot.lds
index 27d6638..9852b0a 100644
--- a/arch/arm/cpu/arm1176/u-boot.lds
+++ b/arch/arm/cpu/arm1176/u-boot.lds
@@ -43,10 +43,7 @@ SECTIONS
 		*(.data)
 	}
 
-	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 
diff --git a/arch/arm/cpu/arm720t/u-boot.lds b/arch/arm/cpu/arm720t/u-boot.lds
index 9370fad..647e457 100644
--- a/arch/arm/cpu/arm720t/u-boot.lds
+++ b/arch/arm/cpu/arm720t/u-boot.lds
@@ -42,12 +42,7 @@ SECTIONS
 	.data : {
 	}
 
-	. = ALIGN(4);
-
-	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 
diff --git a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
index dc6ba34..7a8c3af 100644
--- a/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
+++ b/arch/arm/cpu/arm920t/ep93xx/u-boot.lds
@@ -47,10 +47,7 @@ SECTIONS
 	. = ALIGN(4);
 	.got : { *(.got) }
 
-	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 	__bss_start = .;
diff --git a/arch/arm/cpu/arm920t/u-boot.lds b/arch/arm/cpu/arm920t/u-boot.lds
index 17ba604..b6c3e59 100644
--- a/arch/arm/cpu/arm920t/u-boot.lds
+++ b/arch/arm/cpu/arm920t/u-boot.lds
@@ -51,12 +51,7 @@ SECTIONS
 		*(.data)
 	}
 
-	. = ALIGN(4);
-
-	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 
diff --git a/arch/arm/cpu/arm925t/u-boot.lds b/arch/arm/cpu/arm925t/u-boot.lds
index 64e76f5..c73b5c9 100644
--- a/arch/arm/cpu/arm925t/u-boot.lds
+++ b/arch/arm/cpu/arm925t/u-boot.lds
@@ -46,12 +46,7 @@ SECTIONS
 		*(.data)
 	}
 
-	. = ALIGN(4);
-
-	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 
diff --git a/arch/arm/cpu/arm926ejs/mx28/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/mx28/u-boot-spl.lds
index 0fccd52..6a7d4c7 100644
--- a/arch/arm/cpu/arm926ejs/mx28/u-boot-spl.lds
+++ b/arch/arm/cpu/arm926ejs/mx28/u-boot-spl.lds
@@ -49,10 +49,7 @@ SECTIONS
 		*(.data)
 	}
 
-	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 
diff --git a/arch/arm/cpu/arm926ejs/u-boot.lds b/arch/arm/cpu/arm926ejs/u-boot.lds
index 1480e0c..3cf1840 100644
--- a/arch/arm/cpu/arm926ejs/u-boot.lds
+++ b/arch/arm/cpu/arm926ejs/u-boot.lds
@@ -43,12 +43,7 @@ SECTIONS
 		*(.data)
 	}
 
-	. = ALIGN(4);
-
-	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 
diff --git a/arch/arm/cpu/arm946es/u-boot.lds b/arch/arm/cpu/arm946es/u-boot.lds
index ff938e4..7311292 100644
--- a/arch/arm/cpu/arm946es/u-boot.lds
+++ b/arch/arm/cpu/arm946es/u-boot.lds
@@ -43,12 +43,7 @@ SECTIONS
 		*(.data)
 	}
 
-	. = ALIGN(4);
-
-	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 
diff --git a/arch/arm/cpu/arm_intcm/u-boot.lds b/arch/arm/cpu/arm_intcm/u-boot.lds
index f4a146c..938c597 100644
--- a/arch/arm/cpu/arm_intcm/u-boot.lds
+++ b/arch/arm/cpu/arm_intcm/u-boot.lds
@@ -43,12 +43,7 @@ SECTIONS
 		*(.data)
 	}
 
-	. = ALIGN(4);
-
-	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 
diff --git a/arch/arm/cpu/armv7/u-boot.lds b/arch/arm/cpu/armv7/u-boot.lds
index 40ecf78..8ed42c4 100644
--- a/arch/arm/cpu/armv7/u-boot.lds
+++ b/arch/arm/cpu/armv7/u-boot.lds
@@ -31,6 +31,7 @@ SECTIONS
 {
 	. = 0x00000000;
 
+
 	. = ALIGN(4);
 	.text	:
 	{
@@ -46,12 +47,7 @@ SECTIONS
 		*(.data)
 	}
 
-	. = ALIGN(4);
-
-	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 
diff --git a/arch/arm/cpu/ixp/u-boot.lds b/arch/arm/cpu/ixp/u-boot.lds
index 7199de4..c613e47 100644
--- a/arch/arm/cpu/ixp/u-boot.lds
+++ b/arch/arm/cpu/ixp/u-boot.lds
@@ -43,12 +43,7 @@ SECTIONS
 		*(.data*)
 	}
 
-	. = ALIGN(4);
-
-	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 
diff --git a/arch/arm/cpu/lh7a40x/u-boot.lds b/arch/arm/cpu/lh7a40x/u-boot.lds
index 30934ff..794635f 100644
--- a/arch/arm/cpu/lh7a40x/u-boot.lds
+++ b/arch/arm/cpu/lh7a40x/u-boot.lds
@@ -43,12 +43,7 @@ SECTIONS
 		*(.data)
 	}
 
-	. = ALIGN(4);
-
-	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 
diff --git a/arch/arm/cpu/pxa/u-boot.lds b/arch/arm/cpu/pxa/u-boot.lds
index e86e781..b7cbb93 100644
--- a/arch/arm/cpu/pxa/u-boot.lds
+++ b/arch/arm/cpu/pxa/u-boot.lds
@@ -43,12 +43,7 @@ SECTIONS
 		*(.data)
 	}
 
-	. = ALIGN(4);
-
-	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 
diff --git a/arch/arm/cpu/s3c44b0/u-boot.lds b/arch/arm/cpu/s3c44b0/u-boot.lds
index 74a259c..8613ef6 100644
--- a/arch/arm/cpu/s3c44b0/u-boot.lds
+++ b/arch/arm/cpu/s3c44b0/u-boot.lds
@@ -43,12 +43,7 @@ SECTIONS
 		*(.data)
 	}
 
-	. = ALIGN(4);
-
-	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 
diff --git a/arch/arm/cpu/sa1100/u-boot.lds b/arch/arm/cpu/sa1100/u-boot.lds
index e6381da..3cc2db4 100644
--- a/arch/arm/cpu/sa1100/u-boot.lds
+++ b/arch/arm/cpu/sa1100/u-boot.lds
@@ -46,12 +46,7 @@ SECTIONS
 		*(.data)
 	}
 
-	. = ALIGN(4);
-
-	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 
diff --git a/arch/avr32/cpu/u-boot.lds b/arch/avr32/cpu/u-boot.lds
index 0e532f2..b52f668 100644
--- a/arch/avr32/cpu/u-boot.lds
+++ b/arch/avr32/cpu/u-boot.lds
@@ -45,13 +45,7 @@ SECTIONS
 		*(.data)
 		*(.data.*)
 	}
-
-	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : {
-		KEEP(*(.u_boot_cmd))
-	}
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 	_got = .;
diff --git a/arch/blackfin/cpu/u-boot.lds b/arch/blackfin/cpu/u-boot.lds
index 2b8d285..11545bc 100644
--- a/arch/blackfin/cpu/u-boot.lds
+++ b/arch/blackfin/cpu/u-boot.lds
@@ -61,15 +61,17 @@ OUTPUT_ARCH(bfin)
 MEMORY
 {
 #if CONFIG_MEM_SIZE
-	ram     : ORIGIN = CONFIG_SYS_MONITOR_BASE, LENGTH = CONFIG_SYS_MONITOR_LEN
 # define ram_code ram
 # define ram_data ram
+	ram (rwx)    : ORIGIN = CONFIG_SYS_MONITOR_BASE, LENGTH = CONFIG_SYS_MONITOR_LEN
+	l1_code : ORIGIN = L1_CODE_ORIGIN,          LENGTH = L1_INST_SRAM_SIZE
+	l1_data : ORIGIN = L1_DATA_B_SRAM,          LENGTH = L1_DATA_B_SRAM_SIZE
 #else
 # define ram_code l1_code
 # define ram_data l1_data
+	l1_code (rx)  : ORIGIN = L1_CODE_ORIGIN,          LENGTH = L1_INST_SRAM_SIZE
+	l1_data (!rx) : ORIGIN = L1_DATA_B_SRAM,          LENGTH = L1_DATA_B_SRAM_SIZE
 #endif
-	l1_code : ORIGIN = L1_CODE_ORIGIN,          LENGTH = L1_INST_SRAM_SIZE
-	l1_data : ORIGIN = L1_DATA_B_SRAM,          LENGTH = L1_DATA_B_SRAM_SIZE
 }
 
 ENTRY(_start)
@@ -112,12 +114,7 @@ SECTIONS
 		CONSTRUCTORS
 	} >ram_data
 
-	.u_boot_cmd :
-	{
-		___u_boot_cmd_start = .;
-		*(.u_boot_cmd)
-		___u_boot_cmd_end = .;
-	} >ram_data
+	INCLUDE u-boot-common.lds
 
 	.text_l1 :
 	{
diff --git a/arch/nds32/cpu/n1213/u-boot.lds b/arch/nds32/cpu/n1213/u-boot.lds
index 1903420..1417827 100644
--- a/arch/nds32/cpu/n1213/u-boot.lds
+++ b/arch/nds32/cpu/n1213/u-boot.lds
@@ -51,10 +51,7 @@ SECTIONS
 		__got_end = .;
 	}
 
-	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 
diff --git a/arch/nios2/cpu/u-boot.lds b/arch/nios2/cpu/u-boot.lds
index 4856bd3..17ab214 100644
--- a/arch/nios2/cpu/u-boot.lds
+++ b/arch/nios2/cpu/u-boot.lds
@@ -45,13 +45,9 @@ SECTIONS
 	 * the initialization code relocates the command table as
 	 * well -- admittedly, this is just pure laziness ;-)
 	 */
-	__u_boot_cmd_start = .;
-	.u_boot_cmd :
-	{
-	  *(.u_boot_cmd)
-	}
+	INCLUDE u-boot-common.lds
+
 	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	/* INIT DATA sections - "Small" data (see the gcc -G option)
 	 * is always gp-relative. Here we make all init data sections
diff --git a/arch/powerpc/cpu/74xx_7xx/u-boot.lds b/arch/powerpc/cpu/74xx_7xx/u-boot.lds
index 24823cd..219e265 100644
--- a/arch/powerpc/cpu/74xx_7xx/u-boot.lds
+++ b/arch/powerpc/cpu/74xx_7xx/u-boot.lds
@@ -61,16 +61,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/arch/powerpc/cpu/mpc512x/u-boot.lds b/arch/powerpc/cpu/mpc512x/u-boot.lds
index 7a4d927..3d0f805 100644
--- a/arch/powerpc/cpu/mpc512x/u-boot.lds
+++ b/arch/powerpc/cpu/mpc512x/u-boot.lds
@@ -56,16 +56,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/arch/powerpc/cpu/mpc5xx/u-boot.lds b/arch/powerpc/cpu/mpc5xx/u-boot.lds
index e02b213..91c4957 100644
--- a/arch/powerpc/cpu/mpc5xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc5xx/u-boot.lds
@@ -64,16 +64,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds b/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
index 0c6c54e..c0d8976 100644
--- a/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
+++ b/arch/powerpc/cpu/mpc5xxx/u-boot-customlayout.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/arch/powerpc/cpu/mpc5xxx/u-boot.lds b/arch/powerpc/cpu/mpc5xxx/u-boot.lds
index 5dcaec1..5370c41 100644
--- a/arch/powerpc/cpu/mpc5xxx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc5xxx/u-boot.lds
@@ -59,16 +59,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/arch/powerpc/cpu/mpc8220/u-boot.lds b/arch/powerpc/cpu/mpc8220/u-boot.lds
index 39bb42e..a045604 100644
--- a/arch/powerpc/cpu/mpc8220/u-boot.lds
+++ b/arch/powerpc/cpu/mpc8220/u-boot.lds
@@ -58,16 +58,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/arch/powerpc/cpu/mpc824x/u-boot.lds b/arch/powerpc/cpu/mpc824x/u-boot.lds
index b30ce76..5181044 100644
--- a/arch/powerpc/cpu/mpc824x/u-boot.lds
+++ b/arch/powerpc/cpu/mpc824x/u-boot.lds
@@ -59,16 +59,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/arch/powerpc/cpu/mpc8260/u-boot.lds b/arch/powerpc/cpu/mpc8260/u-boot.lds
index 60b71ec..853f413 100644
--- a/arch/powerpc/cpu/mpc8260/u-boot.lds
+++ b/arch/powerpc/cpu/mpc8260/u-boot.lds
@@ -58,16 +58,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/arch/powerpc/cpu/mpc83xx/u-boot.lds b/arch/powerpc/cpu/mpc83xx/u-boot.lds
index 2f4b9ad..3623783 100644
--- a/arch/powerpc/cpu/mpc83xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc83xx/u-boot.lds
@@ -57,16 +57,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds b/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
index 04bc731..1e571d0 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot-nand.lds
@@ -68,15 +68,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/arch/powerpc/cpu/mpc85xx/u-boot.lds b/arch/powerpc/cpu/mpc85xx/u-boot.lds
index efe34b7..976731e 100644
--- a/arch/powerpc/cpu/mpc85xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc85xx/u-boot.lds
@@ -76,15 +76,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/arch/powerpc/cpu/mpc86xx/u-boot.lds b/arch/powerpc/cpu/mpc86xx/u-boot.lds
index 121e529..f87f1da 100644
--- a/arch/powerpc/cpu/mpc86xx/u-boot.lds
+++ b/arch/powerpc/cpu/mpc86xx/u-boot.lds
@@ -63,15 +63,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/arch/powerpc/cpu/ppc4xx/u-boot.lds b/arch/powerpc/cpu/ppc4xx/u-boot.lds
index 2466b79..85bc286 100644
--- a/arch/powerpc/cpu/ppc4xx/u-boot.lds
+++ b/arch/powerpc/cpu/ppc4xx/u-boot.lds
@@ -77,15 +77,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/arch/sandbox/cpu/u-boot.lds b/arch/sandbox/cpu/u-boot.lds
index 2d2e50f..1149641 100644
--- a/arch/sandbox/cpu/u-boot.lds
+++ b/arch/sandbox/cpu/u-boot.lds
@@ -24,9 +24,7 @@
 
 SECTIONS
 {
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
   __bss_start = .;
 
 }
diff --git a/arch/sh/cpu/sh2/u-boot.lds b/arch/sh/cpu/sh2/u-boot.lds
index b86a822..258f6ce 100644
--- a/arch/sh/cpu/sh2/u-boot.lds
+++ b/arch/sh/cpu/sh2/u-boot.lds
@@ -72,13 +72,8 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
+	INCLUDE u-boot-common.lds
+	. = ALIGN(4);
 
 	PROVIDE (reloc_dst_end = .);
 
diff --git a/arch/sh/cpu/sh3/u-boot.lds b/arch/sh/cpu/sh3/u-boot.lds
index 9bf8503..e2674fd 100644
--- a/arch/sh/cpu/sh3/u-boot.lds
+++ b/arch/sh/cpu/sh3/u-boot.lds
@@ -78,13 +78,9 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
+	INCLUDE u-boot-common.lds
+
+	. = ALIGN(4);
 
 	PROVIDE (reloc_dst_end = .);
 	/* _reloc_dst_end = .; */
diff --git a/arch/sh/cpu/sh4/u-boot.lds b/arch/sh/cpu/sh4/u-boot.lds
index d9c70bc..b656711 100644
--- a/arch/sh/cpu/sh4/u-boot.lds
+++ b/arch/sh/cpu/sh4/u-boot.lds
@@ -75,14 +75,9 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
+	INCLUDE u-boot-common.lds
 
+	. = ALIGN(4);
 	PROVIDE (reloc_dst_end = .);
 	/* _reloc_dst_end = .; */
 
diff --git a/arch/x86/cpu/u-boot.lds b/arch/x86/cpu/u-boot.lds
index fe28030..cb085cb 100644
--- a/arch/x86/cpu/u-boot.lds
+++ b/arch/x86/cpu/u-boot.lds
@@ -32,11 +32,7 @@ SECTIONS
 	__text_start = .;
 	.text  : { *(.text*); }
 
-	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 	.rodata : { *(SORT_BY_ALIGNMENT(SORT_BY_NAME(.rodata*))) }
diff --git a/board/BuS/EB+MCF-EV123/u-boot.lds b/board/BuS/EB+MCF-EV123/u-boot.lds
index 4ba1964..99fc5c8 100644
--- a/board/BuS/EB+MCF-EV123/u-boot.lds
+++ b/board/BuS/EB+MCF-EV123/u-boot.lds
@@ -64,15 +64,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/LEOX/elpt860/u-boot.lds b/board/LEOX/elpt860/u-boot.lds
index 5aaf6b3..b26d711 100644
--- a/board/LEOX/elpt860/u-boot.lds
+++ b/board/LEOX/elpt860/u-boot.lds
@@ -85,15 +85,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/LEOX/elpt860/u-boot.lds.debug b/board/LEOX/elpt860/u-boot.lds.debug
index 92901b1..0c797a9 100644
--- a/board/LEOX/elpt860/u-boot.lds.debug
+++ b/board/LEOX/elpt860/u-boot.lds.debug
@@ -115,9 +115,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/RPXClassic/u-boot.lds b/board/RPXClassic/u-boot.lds
index d0b60cf..a6b6939 100644
--- a/board/RPXClassic/u-boot.lds
+++ b/board/RPXClassic/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/RPXClassic/u-boot.lds.debug b/board/RPXClassic/u-boot.lds.debug
index 99c48f2..706211c 100644
--- a/board/RPXClassic/u-boot.lds.debug
+++ b/board/RPXClassic/u-boot.lds.debug
@@ -106,14 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/RPXlite/u-boot.lds b/board/RPXlite/u-boot.lds
index d0b60cf..a6b6939 100644
--- a/board/RPXlite/u-boot.lds
+++ b/board/RPXlite/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/RPXlite/u-boot.lds.debug b/board/RPXlite/u-boot.lds.debug
index 99c48f2..706211c 100644
--- a/board/RPXlite/u-boot.lds.debug
+++ b/board/RPXlite/u-boot.lds.debug
@@ -106,14 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/RPXlite_dw/u-boot.lds b/board/RPXlite_dw/u-boot.lds
index d0b60cf..a6b6939 100644
--- a/board/RPXlite_dw/u-boot.lds
+++ b/board/RPXlite_dw/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/RPXlite_dw/u-boot.lds.debug b/board/RPXlite_dw/u-boot.lds.debug
index 4491edd..11710ca 100644
--- a/board/RPXlite_dw/u-boot.lds.debug
+++ b/board/RPXlite_dw/u-boot.lds.debug
@@ -106,14 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/RRvision/u-boot.lds b/board/RRvision/u-boot.lds
index 8385373..5a1878e 100644
--- a/board/RRvision/u-boot.lds
+++ b/board/RRvision/u-boot.lds
@@ -70,16 +70,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/actux1/u-boot.lds b/board/actux1/u-boot.lds
index 9dbaa6f..834aaf5 100644
--- a/board/actux1/u-boot.lds
+++ b/board/actux1/u-boot.lds
@@ -53,12 +53,8 @@ SECTIONS
 	.got : {
 		*(.got)
 	}
-	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
+
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN (4);
 	.rel.dyn : {
diff --git a/board/actux2/u-boot.lds b/board/actux2/u-boot.lds
index 3575ed9..918e8d5 100644
--- a/board/actux2/u-boot.lds
+++ b/board/actux2/u-boot.lds
@@ -53,12 +53,8 @@ SECTIONS
 	.got : {
 		*(.got)
 	}
-	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
+
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN (4);
 	.rel.dyn : {
diff --git a/board/actux3/u-boot.lds b/board/actux3/u-boot.lds
index 35aab29..77b0880 100644
--- a/board/actux3/u-boot.lds
+++ b/board/actux3/u-boot.lds
@@ -53,12 +53,8 @@ SECTIONS
 	.got : {
 		*(.got)
 	}
-	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
+
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN (4);
 	.rel.dyn : {
diff --git a/board/adder/u-boot.lds b/board/adder/u-boot.lds
index a762769..9fb8133 100644
--- a/board/adder/u-boot.lds
+++ b/board/adder/u-boot.lds
@@ -61,16 +61,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/altera/nios2-generic/u-boot.lds b/board/altera/nios2-generic/u-boot.lds
index 88ced62..e0d9528 100644
--- a/board/altera/nios2-generic/u-boot.lds
+++ b/board/altera/nios2-generic/u-boot.lds
@@ -46,13 +46,9 @@ SECTIONS
 	 * the initialization code relocates the command table as
 	 * well -- admittedly, this is just pure laziness ;-)
 	 */
-	__u_boot_cmd_start = .;
-	.u_boot_cmd :
-	{
-	  *(.u_boot_cmd)
-	}
+	INCLUDE u-boot-common.lds
+
 	. = ALIGN(4);
-	__u_boot_cmd_end = .;
 
 	/* INIT DATA sections - "Small" data (see the gcc -G option)
 	 * is always gp-relative. Here we make all init data sections
diff --git a/board/amcc/acadia/u-boot-nand.lds b/board/amcc/acadia/u-boot-nand.lds
index ab67de2..d1215cd 100644
--- a/board/amcc/acadia/u-boot-nand.lds
+++ b/board/amcc/acadia/u-boot-nand.lds
@@ -71,16 +71,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/amcc/bamboo/u-boot-nand.lds b/board/amcc/bamboo/u-boot-nand.lds
index 3ad8709..eee17ed 100644
--- a/board/amcc/bamboo/u-boot-nand.lds
+++ b/board/amcc/bamboo/u-boot-nand.lds
@@ -72,16 +72,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/amcc/canyonlands/u-boot-nand.lds b/board/amcc/canyonlands/u-boot-nand.lds
index 76f89f1..1a54c32 100644
--- a/board/amcc/canyonlands/u-boot-nand.lds
+++ b/board/amcc/canyonlands/u-boot-nand.lds
@@ -72,16 +72,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/amcc/kilauea/u-boot-nand.lds b/board/amcc/kilauea/u-boot-nand.lds
index ab67de2..d1215cd 100644
--- a/board/amcc/kilauea/u-boot-nand.lds
+++ b/board/amcc/kilauea/u-boot-nand.lds
@@ -71,16 +71,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/amcc/sequoia/u-boot-nand.lds b/board/amcc/sequoia/u-boot-nand.lds
index 07ae8b1..5055dcd 100644
--- a/board/amcc/sequoia/u-boot-nand.lds
+++ b/board/amcc/sequoia/u-boot-nand.lds
@@ -72,16 +72,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/amcc/sequoia/u-boot-ram.lds b/board/amcc/sequoia/u-boot-ram.lds
index 423400a..d3805b6 100644
--- a/board/amcc/sequoia/u-boot-ram.lds
+++ b/board/amcc/sequoia/u-boot-ram.lds
@@ -63,16 +63,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/amirix/ap1000/u-boot.lds b/board/amirix/ap1000/u-boot.lds
index cd8f5ce..27b87cb 100644
--- a/board/amirix/ap1000/u-boot.lds
+++ b/board/amirix/ap1000/u-boot.lds
@@ -67,14 +67,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/astro/mcf5373l/u-boot.lds b/board/astro/mcf5373l/u-boot.lds
index a1d8e0f..7aa98b4 100644
--- a/board/astro/mcf5373l/u-boot.lds
+++ b/board/astro/mcf5373l/u-boot.lds
@@ -108,16 +108,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/c2mon/u-boot.lds b/board/c2mon/u-boot.lds
index b9b8e3c..12da280 100644
--- a/board/c2mon/u-boot.lds
+++ b/board/c2mon/u-boot.lds
@@ -73,16 +73,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/c2mon/u-boot.lds.debug b/board/c2mon/u-boot.lds.debug
index c771102..03c0c24 100644
--- a/board/c2mon/u-boot.lds.debug
+++ b/board/c2mon/u-boot.lds.debug
@@ -106,14 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/cobra5272/u-boot.lds b/board/cobra5272/u-boot.lds
index c4039ed..ad9fbd2 100644
--- a/board/cobra5272/u-boot.lds
+++ b/board/cobra5272/u-boot.lds
@@ -67,15 +67,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/cogent/u-boot.lds b/board/cogent/u-boot.lds
index 2393d8d..af85c97 100644
--- a/board/cogent/u-boot.lds
+++ b/board/cogent/u-boot.lds
@@ -69,16 +69,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/cogent/u-boot.lds.debug b/board/cogent/u-boot.lds.debug
index 99c48f2..706211c 100644
--- a/board/cogent/u-boot.lds.debug
+++ b/board/cogent/u-boot.lds.debug
@@ -106,14 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/cray/L1/u-boot.lds.debug b/board/cray/L1/u-boot.lds.debug
index fcf8ebb..240f77c 100644
--- a/board/cray/L1/u-boot.lds.debug
+++ b/board/cray/L1/u-boot.lds.debug
@@ -106,14 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/dave/PPChameleonEVB/u-boot.lds b/board/dave/PPChameleonEVB/u-boot.lds
index 3b10114..058ffdc 100644
--- a/board/dave/PPChameleonEVB/u-boot.lds
+++ b/board/dave/PPChameleonEVB/u-boot.lds
@@ -73,15 +73,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/dbau1x00/u-boot.lds b/board/dbau1x00/u-boot.lds
index 4a59cea..dafd8a0 100644
--- a/board/dbau1x00/u-boot.lds
+++ b/board/dbau1x00/u-boot.lds
@@ -54,11 +54,7 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-	}
+	INCLUDE u-boot-common.lds
 
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
diff --git a/board/dvlhost/u-boot.lds b/board/dvlhost/u-boot.lds
index 01ec390..f6f72ed 100644
--- a/board/dvlhost/u-boot.lds
+++ b/board/dvlhost/u-boot.lds
@@ -53,12 +53,8 @@ SECTIONS
 	.got : {
 		*(.got)
 	}
-	. =.;
-	__u_boot_cmd_start =.;
-	.u_boot_cmd : {
-		*(.u_boot_cmd)
-	}
-	__u_boot_cmd_end =.;
+
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN (4);
 	.rel.dyn : {
diff --git a/board/eltec/mhpc/u-boot.lds b/board/eltec/mhpc/u-boot.lds
index fd4e8a5..41d1c6f 100644
--- a/board/eltec/mhpc/u-boot.lds
+++ b/board/eltec/mhpc/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/eltec/mhpc/u-boot.lds.debug b/board/eltec/mhpc/u-boot.lds.debug
index c771102..03c0c24 100644
--- a/board/eltec/mhpc/u-boot.lds.debug
+++ b/board/eltec/mhpc/u-boot.lds.debug
@@ -106,14 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/emk/top860/u-boot.lds b/board/emk/top860/u-boot.lds
index fb06648..a6b6939 100644
--- a/board/emk/top860/u-boot.lds
+++ b/board/emk/top860/u-boot.lds
@@ -65,17 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/emk/top860/u-boot.lds.debug b/board/emk/top860/u-boot.lds.debug
index 39807d4..5d9e8f7 100644
--- a/board/emk/top860/u-boot.lds.debug
+++ b/board/emk/top860/u-boot.lds.debug
@@ -107,9 +107,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/ep88x/u-boot.lds b/board/ep88x/u-boot.lds
index 332b35a..605effc 100644
--- a/board/ep88x/u-boot.lds
+++ b/board/ep88x/u-boot.lds
@@ -61,16 +61,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/esd/dasa_sim/u-boot.lds b/board/esd/dasa_sim/u-boot.lds
index b15948d..c41d994 100644
--- a/board/esd/dasa_sim/u-boot.lds
+++ b/board/esd/dasa_sim/u-boot.lds
@@ -72,16 +72,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/esd/pmc440/u-boot-nand.lds b/board/esd/pmc440/u-boot-nand.lds
index 71f0fd2..135518d 100644
--- a/board/esd/pmc440/u-boot-nand.lds
+++ b/board/esd/pmc440/u-boot-nand.lds
@@ -101,16 +101,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/esd/tasreg/u-boot.lds b/board/esd/tasreg/u-boot.lds
index f697ccd..e3fae2a 100644
--- a/board/esd/tasreg/u-boot.lds
+++ b/board/esd/tasreg/u-boot.lds
@@ -64,15 +64,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/esteem192e/u-boot.lds b/board/esteem192e/u-boot.lds
index 163b83d..26ee28d 100644
--- a/board/esteem192e/u-boot.lds
+++ b/board/esteem192e/u-boot.lds
@@ -74,16 +74,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/etx094/u-boot.lds b/board/etx094/u-boot.lds
index b00d2b3..ae3edde 100644
--- a/board/etx094/u-boot.lds
+++ b/board/etx094/u-boot.lds
@@ -75,16 +75,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/evb64260/u-boot.lds b/board/evb64260/u-boot.lds
index 2d031ef..d1638be 100644
--- a/board/evb64260/u-boot.lds
+++ b/board/evb64260/u-boot.lds
@@ -69,16 +69,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/fads/u-boot.lds b/board/fads/u-boot.lds
index 9ea0674..5d6cdb2 100644
--- a/board/fads/u-boot.lds
+++ b/board/fads/u-boot.lds
@@ -67,16 +67,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/flagadm/u-boot.lds b/board/flagadm/u-boot.lds
index fd4e8a5..41d1c6f 100644
--- a/board/flagadm/u-boot.lds
+++ b/board/flagadm/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/flagadm/u-boot.lds.debug b/board/flagadm/u-boot.lds.debug
index c771102..03c0c24 100644
--- a/board/flagadm/u-boot.lds.debug
+++ b/board/flagadm/u-boot.lds.debug
@@ -106,14 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/freescale/m5208evbe/u-boot.lds b/board/freescale/m5208evbe/u-boot.lds
index 6e39be1..f40a959 100644
--- a/board/freescale/m5208evbe/u-boot.lds
+++ b/board/freescale/m5208evbe/u-boot.lds
@@ -68,15 +68,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/freescale/m52277evb/u-boot.lds b/board/freescale/m52277evb/u-boot.lds
index 3e9f4c3..fd1c051 100644
--- a/board/freescale/m52277evb/u-boot.lds
+++ b/board/freescale/m52277evb/u-boot.lds
@@ -67,15 +67,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/freescale/m5235evb/u-boot.lds b/board/freescale/m5235evb/u-boot.lds
index d39e734..234b774 100644
--- a/board/freescale/m5235evb/u-boot.lds
+++ b/board/freescale/m5235evb/u-boot.lds
@@ -67,15 +67,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/freescale/m5249evb/u-boot.lds b/board/freescale/m5249evb/u-boot.lds
index c4039ed..ad9fbd2 100644
--- a/board/freescale/m5249evb/u-boot.lds
+++ b/board/freescale/m5249evb/u-boot.lds
@@ -67,15 +67,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/freescale/m5253demo/u-boot.lds b/board/freescale/m5253demo/u-boot.lds
index cbd2831..c4e254f 100644
--- a/board/freescale/m5253demo/u-boot.lds
+++ b/board/freescale/m5253demo/u-boot.lds
@@ -68,15 +68,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/freescale/m5253evbe/u-boot.lds b/board/freescale/m5253evbe/u-boot.lds
index c4039ed..ad9fbd2 100644
--- a/board/freescale/m5253evbe/u-boot.lds
+++ b/board/freescale/m5253evbe/u-boot.lds
@@ -67,15 +67,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/freescale/m5271evb/u-boot.lds b/board/freescale/m5271evb/u-boot.lds
index 4717036..813668b 100644
--- a/board/freescale/m5271evb/u-boot.lds
+++ b/board/freescale/m5271evb/u-boot.lds
@@ -67,15 +67,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/freescale/m5272c3/u-boot.lds b/board/freescale/m5272c3/u-boot.lds
index c4039ed..ad9fbd2 100644
--- a/board/freescale/m5272c3/u-boot.lds
+++ b/board/freescale/m5272c3/u-boot.lds
@@ -67,15 +67,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/freescale/m5275evb/u-boot.lds b/board/freescale/m5275evb/u-boot.lds
index 6c2dfe8..254ed11 100644
--- a/board/freescale/m5275evb/u-boot.lds
+++ b/board/freescale/m5275evb/u-boot.lds
@@ -67,15 +67,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/freescale/m5282evb/u-boot.lds b/board/freescale/m5282evb/u-boot.lds
index 4ba1964..99fc5c8 100644
--- a/board/freescale/m5282evb/u-boot.lds
+++ b/board/freescale/m5282evb/u-boot.lds
@@ -64,15 +64,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/freescale/m53017evb/u-boot.lds b/board/freescale/m53017evb/u-boot.lds
index 80935f2..f74e334 100644
--- a/board/freescale/m53017evb/u-boot.lds
+++ b/board/freescale/m53017evb/u-boot.lds
@@ -70,15 +70,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/freescale/m5329evb/u-boot.lds b/board/freescale/m5329evb/u-boot.lds
index 40af8bc..39ae0cc 100644
--- a/board/freescale/m5329evb/u-boot.lds
+++ b/board/freescale/m5329evb/u-boot.lds
@@ -68,15 +68,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/freescale/m5373evb/u-boot.lds b/board/freescale/m5373evb/u-boot.lds
index 19342ac..2b4772f 100644
--- a/board/freescale/m5373evb/u-boot.lds
+++ b/board/freescale/m5373evb/u-boot.lds
@@ -68,15 +68,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/freescale/m54451evb/u-boot.lds b/board/freescale/m54451evb/u-boot.lds
index 45924b7..472f3f5 100644
--- a/board/freescale/m54451evb/u-boot.lds
+++ b/board/freescale/m54451evb/u-boot.lds
@@ -65,15 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/freescale/m54455evb/u-boot.lds b/board/freescale/m54455evb/u-boot.lds
index f341449..59611ba 100644
--- a/board/freescale/m54455evb/u-boot.lds
+++ b/board/freescale/m54455evb/u-boot.lds
@@ -65,15 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/freescale/m547xevb/u-boot.lds b/board/freescale/m547xevb/u-boot.lds
index 5472689..ea3b84b 100644
--- a/board/freescale/m547xevb/u-boot.lds
+++ b/board/freescale/m547xevb/u-boot.lds
@@ -65,15 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/freescale/m548xevb/u-boot.lds b/board/freescale/m548xevb/u-boot.lds
index cf3f38c..99211d4 100644
--- a/board/freescale/m548xevb/u-boot.lds
+++ b/board/freescale/m548xevb/u-boot.lds
@@ -65,15 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/freescale/mx31ads/u-boot.lds b/board/freescale/mx31ads/u-boot.lds
index 79eb7ac..ab68a95 100644
--- a/board/freescale/mx31ads/u-boot.lds
+++ b/board/freescale/mx31ads/u-boot.lds
@@ -56,10 +56,7 @@ SECTIONS
 		*(.data)
 	}
 
-	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 
diff --git a/board/gaisler/gr_cpci_ax2000/u-boot.lds b/board/gaisler/gr_cpci_ax2000/u-boot.lds
index 87cb8e3..88a0213 100644
--- a/board/gaisler/gr_cpci_ax2000/u-boot.lds
+++ b/board/gaisler/gr_cpci_ax2000/u-boot.lds
@@ -84,11 +84,7 @@ SECTIONS
 	_etext = .;
 
 	/* CMD Table */
-
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	.data	:
 	{
diff --git a/board/gaisler/gr_ep2s60/u-boot.lds b/board/gaisler/gr_ep2s60/u-boot.lds
index 2fb44aa..8b71ee6 100644
--- a/board/gaisler/gr_ep2s60/u-boot.lds
+++ b/board/gaisler/gr_ep2s60/u-boot.lds
@@ -84,11 +84,7 @@ SECTIONS
 	_etext = .;
 
 	/* CMD Table */
-
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	.data	:
 	{
diff --git a/board/gaisler/gr_xc3s_1500/u-boot.lds b/board/gaisler/gr_xc3s_1500/u-boot.lds
index 8719e97..0600a1e 100644
--- a/board/gaisler/gr_xc3s_1500/u-boot.lds
+++ b/board/gaisler/gr_xc3s_1500/u-boot.lds
@@ -84,11 +84,7 @@ SECTIONS
 	_etext = .;
 
 	/* CMD Table */
-
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	.data	:
 	{
diff --git a/board/gaisler/grsim/u-boot.lds b/board/gaisler/grsim/u-boot.lds
index 33890b5..f5e8b85 100644
--- a/board/gaisler/grsim/u-boot.lds
+++ b/board/gaisler/grsim/u-boot.lds
@@ -83,11 +83,7 @@ SECTIONS
 	_etext = .;
 
 	/* CMD Table */
-
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	.data	:
 	{
diff --git a/board/gaisler/grsim_leon2/u-boot.lds b/board/gaisler/grsim_leon2/u-boot.lds
index cf6e502..f4e53ae 100644
--- a/board/gaisler/grsim_leon2/u-boot.lds
+++ b/board/gaisler/grsim_leon2/u-boot.lds
@@ -83,11 +83,7 @@ SECTIONS
 	_etext = .;
 
 	/* CMD Table */
-
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	. = ALIGN(4);
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	.data	:
 	{
diff --git a/board/gen860t/u-boot-flashenv.lds b/board/gen860t/u-boot-flashenv.lds
index 5bb6c62..ec26803 100644
--- a/board/gen860t/u-boot-flashenv.lds
+++ b/board/gen860t/u-boot-flashenv.lds
@@ -70,15 +70,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/gen860t/u-boot.lds b/board/gen860t/u-boot.lds
index be99b51..d93b805 100644
--- a/board/gen860t/u-boot.lds
+++ b/board/gen860t/u-boot.lds
@@ -70,16 +70,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/genietv/u-boot.lds b/board/genietv/u-boot.lds
index 1d66a9b..6fa88ef 100644
--- a/board/genietv/u-boot.lds
+++ b/board/genietv/u-boot.lds
@@ -79,16 +79,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/genietv/u-boot.lds.debug b/board/genietv/u-boot.lds.debug
index cfa4ef3..ca6b4d6 100644
--- a/board/genietv/u-boot.lds.debug
+++ b/board/genietv/u-boot.lds.debug
@@ -107,14 +107,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/gth2/u-boot.lds b/board/gth2/u-boot.lds
index 9fc417f..5f5afb6 100644
--- a/board/gth2/u-boot.lds
+++ b/board/gth2/u-boot.lds
@@ -54,11 +54,7 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-	}
+	INCLUDE u-boot-common.lds
 
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
diff --git a/board/hermes/u-boot.lds b/board/hermes/u-boot.lds
index ca97115..2541de2 100644
--- a/board/hermes/u-boot.lds
+++ b/board/hermes/u-boot.lds
@@ -71,16 +71,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/hermes/u-boot.lds.debug b/board/hermes/u-boot.lds.debug
index 8a197de..38270a9 100644
--- a/board/hermes/u-boot.lds.debug
+++ b/board/hermes/u-boot.lds.debug
@@ -106,14 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/hymod/u-boot.lds b/board/hymod/u-boot.lds
index 1309f20..25c61ab 100644
--- a/board/hymod/u-boot.lds
+++ b/board/hymod/u-boot.lds
@@ -109,16 +109,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/hymod/u-boot.lds.debug b/board/hymod/u-boot.lds.debug
index 99c48f2..706211c 100644
--- a/board/hymod/u-boot.lds.debug
+++ b/board/hymod/u-boot.lds.debug
@@ -106,14 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/icu862/u-boot.lds b/board/icu862/u-boot.lds
index 93c79a6..59162d9 100644
--- a/board/icu862/u-boot.lds
+++ b/board/icu862/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/icu862/u-boot.lds.debug b/board/icu862/u-boot.lds.debug
index 91d3e67..9671b6d 100644
--- a/board/icu862/u-boot.lds.debug
+++ b/board/icu862/u-boot.lds.debug
@@ -107,14 +107,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/idmr/u-boot.lds b/board/idmr/u-boot.lds
index f697ccd..e3fae2a 100644
--- a/board/idmr/u-boot.lds
+++ b/board/idmr/u-boot.lds
@@ -64,15 +64,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/incaip/u-boot.lds b/board/incaip/u-boot.lds
index 4a59cea..dafd8a0 100644
--- a/board/incaip/u-boot.lds
+++ b/board/incaip/u-boot.lds
@@ -54,11 +54,7 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-	}
+	INCLUDE u-boot-common.lds
 
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
diff --git a/board/ip860/u-boot.lds b/board/ip860/u-boot.lds
index d0b60cf..a6b6939 100644
--- a/board/ip860/u-boot.lds
+++ b/board/ip860/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/ip860/u-boot.lds.debug b/board/ip860/u-boot.lds.debug
index 2f61b11..f824ee7 100644
--- a/board/ip860/u-boot.lds.debug
+++ b/board/ip860/u-boot.lds.debug
@@ -107,14 +107,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/ivm/u-boot.lds b/board/ivm/u-boot.lds
index 1e843eb..d5f6f52 100644
--- a/board/ivm/u-boot.lds
+++ b/board/ivm/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/ivm/u-boot.lds.debug b/board/ivm/u-boot.lds.debug
index 732a46f..a7b3dde 100644
--- a/board/ivm/u-boot.lds.debug
+++ b/board/ivm/u-boot.lds.debug
@@ -107,14 +107,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/jornada/u-boot.lds b/board/jornada/u-boot.lds
index c75b21f..02484c5 100644
--- a/board/jornada/u-boot.lds
+++ b/board/jornada/u-boot.lds
@@ -45,11 +45,7 @@ SECTIONS
 	. = ALIGN(4);
 	.got : { *(.got) }
 
-
-	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 	__bss_start = .;
diff --git a/board/korat/u-boot-F7FC.lds b/board/korat/u-boot-F7FC.lds
index 6a017e3..1e342e4 100644
--- a/board/korat/u-boot-F7FC.lds
+++ b/board/korat/u-boot-F7FC.lds
@@ -107,16 +107,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/kup/kup4k/u-boot.lds b/board/kup/kup4k/u-boot.lds
index d0b60cf..a6b6939 100644
--- a/board/kup/kup4k/u-boot.lds
+++ b/board/kup/kup4k/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/kup/kup4k/u-boot.lds.debug b/board/kup/kup4k/u-boot.lds.debug
index 4491edd..11710ca 100644
--- a/board/kup/kup4k/u-boot.lds.debug
+++ b/board/kup/kup4k/u-boot.lds.debug
@@ -106,14 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/kup/kup4x/u-boot.lds b/board/kup/kup4x/u-boot.lds
index d0b60cf..a6b6939 100644
--- a/board/kup/kup4x/u-boot.lds
+++ b/board/kup/kup4x/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/kup/kup4x/u-boot.lds.debug b/board/kup/kup4x/u-boot.lds.debug
index 4491edd..11710ca 100644
--- a/board/kup/kup4x/u-boot.lds.debug
+++ b/board/kup/kup4x/u-boot.lds.debug
@@ -106,14 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/lantec/u-boot.lds b/board/lantec/u-boot.lds
index de0b355..c5d6425 100644
--- a/board/lantec/u-boot.lds
+++ b/board/lantec/u-boot.lds
@@ -74,16 +74,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/lantec/u-boot.lds.debug b/board/lantec/u-boot.lds.debug
index 856a99b..af83ad6 100644
--- a/board/lantec/u-boot.lds.debug
+++ b/board/lantec/u-boot.lds.debug
@@ -106,14 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/lwmon/u-boot.lds b/board/lwmon/u-boot.lds
index 8bf7324..1ca90fe 100644
--- a/board/lwmon/u-boot.lds
+++ b/board/lwmon/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/lwmon/u-boot.lds.debug b/board/lwmon/u-boot.lds.debug
index 2412234..dffe7c5 100644
--- a/board/lwmon/u-boot.lds.debug
+++ b/board/lwmon/u-boot.lds.debug
@@ -107,14 +107,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/manroland/uc100/u-boot.lds b/board/manroland/uc100/u-boot.lds
index 731cec9..aac4312 100644
--- a/board/manroland/uc100/u-boot.lds
+++ b/board/manroland/uc100/u-boot.lds
@@ -68,16 +68,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/matrix_vision/mvsmr/u-boot.lds b/board/matrix_vision/mvsmr/u-boot.lds
index 57c37de..8e46a5e 100644
--- a/board/matrix_vision/mvsmr/u-boot.lds
+++ b/board/matrix_vision/mvsmr/u-boot.lds
@@ -73,16 +73,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/mbx8xx/u-boot.lds b/board/mbx8xx/u-boot.lds
index d0b60cf..a6b6939 100644
--- a/board/mbx8xx/u-boot.lds
+++ b/board/mbx8xx/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/mbx8xx/u-boot.lds.debug b/board/mbx8xx/u-boot.lds.debug
index a95c47f..5d9e8f7 100644
--- a/board/mbx8xx/u-boot.lds.debug
+++ b/board/mbx8xx/u-boot.lds.debug
@@ -107,14 +107,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/micronas/vct/u-boot.lds b/board/micronas/vct/u-boot.lds
index 3a05ef9..417661b 100644
--- a/board/micronas/vct/u-boot.lds
+++ b/board/micronas/vct/u-boot.lds
@@ -52,12 +52,7 @@ SECTIONS
 	. = ALIGN(4);
 	.sdata  : { *(.sdata*) }
 
-	. = ALIGN(4);
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-	}
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 	uboot_end_data = .;
diff --git a/board/ml2/u-boot.lds b/board/ml2/u-boot.lds
index 9f9ddb8..aa4b16a 100644
--- a/board/ml2/u-boot.lds
+++ b/board/ml2/u-boot.lds
@@ -63,16 +63,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/ml2/u-boot.lds.debug b/board/ml2/u-boot.lds.debug
index fcf8ebb..240f77c 100644
--- a/board/ml2/u-boot.lds.debug
+++ b/board/ml2/u-boot.lds.debug
@@ -106,14 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/mousse/u-boot.lds b/board/mousse/u-boot.lds
index dae2cfc..3e63555 100644
--- a/board/mousse/u-boot.lds
+++ b/board/mousse/u-boot.lds
@@ -59,16 +59,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/mousse/u-boot.lds.ram b/board/mousse/u-boot.lds.ram
index b3364be..782755b 100644
--- a/board/mousse/u-boot.lds.ram
+++ b/board/mousse/u-boot.lds.ram
@@ -85,14 +85,7 @@ SECTIONS
   } > ram
   */
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-   __start___ex_table = .;
-    __ex_table : { *(__ex_table) } > ram
-    __stop___ex_table = .;
-
+  INCLUDE u-boot-common.lds
 
   .ppcenv	:
   {
diff --git a/board/mousse/u-boot.lds.rom b/board/mousse/u-boot.lds.rom
index b4b9e02..7c9040f 100644
--- a/board/mousse/u-boot.lds.rom
+++ b/board/mousse/u-boot.lds.rom
@@ -102,13 +102,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/mpl/pip405/u-boot.lds.debug b/board/mpl/pip405/u-boot.lds.debug
index fcf8ebb..240f77c 100644
--- a/board/mpl/pip405/u-boot.lds.debug
+++ b/board/mpl/pip405/u-boot.lds.debug
@@ -106,14 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/mvblue/u-boot.lds b/board/mvblue/u-boot.lds
index 11624d2..772ec37 100644
--- a/board/mvblue/u-boot.lds
+++ b/board/mvblue/u-boot.lds
@@ -69,16 +69,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/netphone/u-boot.lds b/board/netphone/u-boot.lds
index a949e4f..310ad2d 100644
--- a/board/netphone/u-boot.lds
+++ b/board/netphone/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/netphone/u-boot.lds.debug b/board/netphone/u-boot.lds.debug
index a001f3f..be45472 100644
--- a/board/netphone/u-boot.lds.debug
+++ b/board/netphone/u-boot.lds.debug
@@ -106,14 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/netta/u-boot.lds b/board/netta/u-boot.lds
index a949e4f..310ad2d 100644
--- a/board/netta/u-boot.lds
+++ b/board/netta/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/netta/u-boot.lds.debug b/board/netta/u-boot.lds.debug
index a001f3f..be45472 100644
--- a/board/netta/u-boot.lds.debug
+++ b/board/netta/u-boot.lds.debug
@@ -106,14 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/netta2/u-boot.lds b/board/netta2/u-boot.lds
index a949e4f..310ad2d 100644
--- a/board/netta2/u-boot.lds
+++ b/board/netta2/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/netta2/u-boot.lds.debug b/board/netta2/u-boot.lds.debug
index a001f3f..be45472 100644
--- a/board/netta2/u-boot.lds.debug
+++ b/board/netta2/u-boot.lds.debug
@@ -106,14 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/netvia/u-boot.lds b/board/netvia/u-boot.lds
index a949e4f..310ad2d 100644
--- a/board/netvia/u-boot.lds
+++ b/board/netvia/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/netvia/u-boot.lds.debug b/board/netvia/u-boot.lds.debug
index 6c7d698..f71dea1 100644
--- a/board/netvia/u-boot.lds.debug
+++ b/board/netvia/u-boot.lds.debug
@@ -106,14 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/nx823/u-boot.lds b/board/nx823/u-boot.lds
index fd4e8a5..41d1c6f 100644
--- a/board/nx823/u-boot.lds
+++ b/board/nx823/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/nx823/u-boot.lds.debug b/board/nx823/u-boot.lds.debug
index c771102..03c0c24 100644
--- a/board/nx823/u-boot.lds.debug
+++ b/board/nx823/u-boot.lds.debug
@@ -106,14 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/openrisc/openrisc-generic/u-boot.lds b/board/openrisc/openrisc-generic/u-boot.lds
index 1aed197..5c7556f 100644
--- a/board/openrisc/openrisc-generic/u-boot.lds
+++ b/board/openrisc/openrisc-generic/u-boot.lds
@@ -26,9 +26,7 @@ SECTIONS
 		_endtext = .;
 	}  > ram
 
-	 __u_boot_cmd_start = .;
-	 .u_boot_cmd : { *(.u_boot_cmd) } > ram
-	 __u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	.rodata : {
 		*(.rodata);
diff --git a/board/pb1x00/u-boot.lds b/board/pb1x00/u-boot.lds
index bd0dee1..86107f0 100644
--- a/board/pb1x00/u-boot.lds
+++ b/board/pb1x00/u-boot.lds
@@ -54,11 +54,7 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	.u_boot_cmd : {
-	  __u_boot_cmd_start = .;
-	  *(.u_boot_cmd)
-	  __u_boot_cmd_end = .;
-	}
+	INCLUDE u-boot-common.lds
 
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
diff --git a/board/qemu-mips/u-boot.lds b/board/qemu-mips/u-boot.lds
index 9460b20..5279103 100644
--- a/board/qemu-mips/u-boot.lds
+++ b/board/qemu-mips/u-boot.lds
@@ -55,12 +55,7 @@ SECTIONS
 	. = ALIGN(4);
 	.sdata  : { *(.sdata*) }
 
-	. = .;
-	.u_boot_cmd : {
-	__u_boot_cmd_start = .;
-	*(.u_boot_cmd)
-	__u_boot_cmd_end = .;
-	}
+	INCLUDE u-boot-common.lds
 
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
diff --git a/board/qi/qi_lb60/u-boot.lds b/board/qi/qi_lb60/u-boot.lds
index 7317652..9038db9 100644
--- a/board/qi/qi_lb60/u-boot.lds
+++ b/board/qi/qi_lb60/u-boot.lds
@@ -47,9 +47,7 @@ SECTIONS
 
 	.sdata  : { *(.sdata*) }
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	uboot_end_data = .;
 	num_got_entries = (__got_end - __got_start) >> 2;
diff --git a/board/quantum/u-boot.lds b/board/quantum/u-boot.lds
index d0b60cf..a6b6939 100644
--- a/board/quantum/u-boot.lds
+++ b/board/quantum/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/quantum/u-boot.lds.debug b/board/quantum/u-boot.lds.debug
index abc4640..706211c 100644
--- a/board/quantum/u-boot.lds.debug
+++ b/board/quantum/u-boot.lds.debug
@@ -106,9 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/r360mpi/u-boot.lds b/board/r360mpi/u-boot.lds
index 2fa085a..681b46b 100644
--- a/board/r360mpi/u-boot.lds
+++ b/board/r360mpi/u-boot.lds
@@ -67,16 +67,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/rbc823/u-boot.lds b/board/rbc823/u-boot.lds
index d943fb6..34898a1 100644
--- a/board/rbc823/u-boot.lds
+++ b/board/rbc823/u-boot.lds
@@ -76,15 +76,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/renesas/sh7757lcr/u-boot.lds b/board/renesas/sh7757lcr/u-boot.lds
index 38ebe88..201338c 100644
--- a/board/renesas/sh7757lcr/u-boot.lds
+++ b/board/renesas/sh7757lcr/u-boot.lds
@@ -77,13 +77,9 @@ SECTIONS
 	}
 	PROVIDE (_egot = .);
 
-	PROVIDE (__u_boot_cmd_start = .);
-	.u_boot_cmd :
-	{
-		*(.u_boot_cmd)
-		. = ALIGN(4);
-	}
-	PROVIDE (__u_boot_cmd_end = .);
+	INCLUDE u-boot-common.lds
+
+	. = ALIGN(4);
 
 	PROVIDE (reloc_dst_end = .);
 	/* _reloc_dst_end = .; */
diff --git a/board/rsdproto/u-boot.lds b/board/rsdproto/u-boot.lds
index a729c52..f77e20a 100644
--- a/board/rsdproto/u-boot.lds
+++ b/board/rsdproto/u-boot.lds
@@ -96,16 +96,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/samsung/smdk6400/u-boot-nand.lds b/board/samsung/smdk6400/u-boot-nand.lds
index f162815..94e00ba 100644
--- a/board/samsung/smdk6400/u-boot-nand.lds
+++ b/board/samsung/smdk6400/u-boot-nand.lds
@@ -47,9 +47,7 @@ SECTIONS
 	. = ALIGN(4);
 	.got : { *(.got) }
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 	.mmudata : { *(.mmudata) }
diff --git a/board/sandburst/karef/u-boot.lds.debug b/board/sandburst/karef/u-boot.lds.debug
index 31746e3..75eda9b 100644
--- a/board/sandburst/karef/u-boot.lds.debug
+++ b/board/sandburst/karef/u-boot.lds.debug
@@ -115,14 +115,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/sandburst/metrobox/u-boot.lds.debug b/board/sandburst/metrobox/u-boot.lds.debug
index 4922bd2..0574121 100644
--- a/board/sandburst/metrobox/u-boot.lds.debug
+++ b/board/sandburst/metrobox/u-boot.lds.debug
@@ -115,14 +115,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/sandpoint/u-boot.lds b/board/sandpoint/u-boot.lds
index e382fd1..1127e57 100644
--- a/board/sandpoint/u-boot.lds
+++ b/board/sandpoint/u-boot.lds
@@ -67,16 +67,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/siemens/IAD210/u-boot.lds b/board/siemens/IAD210/u-boot.lds
index 0e78e4f..28b81fc 100644
--- a/board/siemens/IAD210/u-boot.lds
+++ b/board/siemens/IAD210/u-boot.lds
@@ -74,16 +74,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/sixnet/u-boot.lds b/board/sixnet/u-boot.lds
index 02d1980..0982f80 100644
--- a/board/sixnet/u-boot.lds
+++ b/board/sixnet/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/snmc/qs850/u-boot.lds b/board/snmc/qs850/u-boot.lds
index 9ab248a..cb094b0 100644
--- a/board/snmc/qs850/u-boot.lds
+++ b/board/snmc/qs850/u-boot.lds
@@ -68,16 +68,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/snmc/qs860t/u-boot.lds b/board/snmc/qs860t/u-boot.lds
index d0b60cf..a6b6939 100644
--- a/board/snmc/qs860t/u-boot.lds
+++ b/board/snmc/qs860t/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/spc1920/u-boot.lds b/board/spc1920/u-boot.lds
index d0b60cf..a6b6939 100644
--- a/board/spc1920/u-boot.lds
+++ b/board/spc1920/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/spd8xx/u-boot.lds b/board/spd8xx/u-boot.lds
index a84e7fd..b8f861e 100644
--- a/board/spd8xx/u-boot.lds
+++ b/board/spd8xx/u-boot.lds
@@ -74,16 +74,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/spd8xx/u-boot.lds.debug b/board/spd8xx/u-boot.lds.debug
index a95c47f..5d9e8f7 100644
--- a/board/spd8xx/u-boot.lds.debug
+++ b/board/spd8xx/u-boot.lds.debug
@@ -107,14 +107,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/stx/stxxtc/u-boot.lds b/board/stx/stxxtc/u-boot.lds
index a949e4f..310ad2d 100644
--- a/board/stx/stxxtc/u-boot.lds
+++ b/board/stx/stxxtc/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/stx/stxxtc/u-boot.lds.debug b/board/stx/stxxtc/u-boot.lds.debug
index a001f3f..be45472 100644
--- a/board/stx/stxxtc/u-boot.lds.debug
+++ b/board/stx/stxxtc/u-boot.lds.debug
@@ -106,14 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/svm_sc8xx/u-boot.lds b/board/svm_sc8xx/u-boot.lds
index c65f022..abbb359 100644
--- a/board/svm_sc8xx/u-boot.lds
+++ b/board/svm_sc8xx/u-boot.lds
@@ -82,16 +82,7 @@ SECTIONS
   PROVIDE (edata = .);
 
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/svm_sc8xx/u-boot.lds.debug b/board/svm_sc8xx/u-boot.lds.debug
index abc4640..706211c 100644
--- a/board/svm_sc8xx/u-boot.lds.debug
+++ b/board/svm_sc8xx/u-boot.lds.debug
@@ -106,9 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/tqc/tqm8xx/u-boot.lds b/board/tqc/tqm8xx/u-boot.lds
index 4f08be6..009b2c7 100644
--- a/board/tqc/tqm8xx/u-boot.lds
+++ b/board/tqc/tqm8xx/u-boot.lds
@@ -82,16 +82,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/v37/u-boot.lds b/board/v37/u-boot.lds
index e62d53d..ae8b465 100644
--- a/board/v37/u-boot.lds
+++ b/board/v37/u-boot.lds
@@ -65,16 +65,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/w7o/u-boot.lds.debug b/board/w7o/u-boot.lds.debug
index 1c67b30..3f485d7 100644
--- a/board/w7o/u-boot.lds.debug
+++ b/board/w7o/u-boot.lds.debug
@@ -106,14 +106,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/westel/amx860/u-boot.lds b/board/westel/amx860/u-boot.lds
index 3470b43..4c7dc81 100644
--- a/board/westel/amx860/u-boot.lds
+++ b/board/westel/amx860/u-boot.lds
@@ -74,16 +74,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  . = .;
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  . = .;
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/westel/amx860/u-boot.lds.debug b/board/westel/amx860/u-boot.lds.debug
index 91d3e67..9671b6d 100644
--- a/board/westel/amx860/u-boot.lds.debug
+++ b/board/westel/amx860/u-boot.lds.debug
@@ -107,14 +107,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(4096);
   __init_begin = .;
diff --git a/board/xes/xpedite1000/u-boot.lds.debug b/board/xes/xpedite1000/u-boot.lds.debug
index e2e66ae..a368d0c 100644
--- a/board/xes/xpedite1000/u-boot.lds.debug
+++ b/board/xes/xpedite1000/u-boot.lds.debug
@@ -111,14 +111,7 @@ SECTIONS
   _edata  =  .;
   PROVIDE (edata = .);
 
-  __u_boot_cmd_start = .;
-  .u_boot_cmd : { *(.u_boot_cmd) }
-  __u_boot_cmd_end = .;
-
-
-  __start___ex_table = .;
-  __ex_table : { *(__ex_table) }
-  __stop___ex_table = .;
+  INCLUDE u-boot-common.lds
 
   . = ALIGN(256);
   __init_begin = .;
diff --git a/board/xilinx/microblaze-generic/u-boot.lds b/board/xilinx/microblaze-generic/u-boot.lds
index ee41145..3dd36dd 100644
--- a/board/xilinx/microblaze-generic/u-boot.lds
+++ b/board/xilinx/microblaze-generic/u-boot.lds
@@ -49,13 +49,7 @@ SECTIONS
 		__data_end = .;
 	}
 
-	.u_boot_cmd ALIGN(0x4):
-	{
-		. = .;
-		__u_boot_cmd_start = .;
-		*(.u_boot_cmd)
-		__u_boot_cmd_end = .;
-	}
+	INCLUDE u-boot-common.lds
 
 	.bss ALIGN(0x4):
 	{
diff --git a/board/zipitz2/u-boot.lds b/board/zipitz2/u-boot.lds
index e1a1ff1..8002c2a 100644
--- a/board/zipitz2/u-boot.lds
+++ b/board/zipitz2/u-boot.lds
@@ -44,10 +44,7 @@ SECTIONS
 	. = ALIGN(4);
 	.got : { *(.got) }
 
-	. = .;
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 	__bss_start = .;
diff --git a/doc/README.commands b/doc/README.commands
index d678992..7453ebf 100644
--- a/doc/README.commands
+++ b/doc/README.commands
@@ -29,3 +29,8 @@ by writing in u-boot.lds ($(TOPDIR)/board/boardname/u-boot.lds) these
 	__u_boot_cmd_start = .;
 	.u_boot_cmd : { *(.u_boot_cmd) }
 	__u_boot_cmd_end = .;
+
+	or
+
+	INCLUDE u-boot-common.lds
+
diff --git a/nand_spl/board/freescale/mx31pdk/Makefile b/nand_spl/board/freescale/mx31pdk/Makefile
index 87784d2..ac92cdc 100644
--- a/nand_spl/board/freescale/mx31pdk/Makefile
+++ b/nand_spl/board/freescale/mx31pdk/Makefile
@@ -6,7 +6,7 @@ include $(TOPDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
-LDFLAGS := -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
+LDFLAGS := -L$(TOPDIR) -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
 	   $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_SPL_BUILD -DCONFIG_NAND_SPL
 CFLAGS	+= -DCONFIG_SPL_BUILD -DCONFIG_NAND_SPL
diff --git a/nand_spl/board/freescale/mx31pdk/u-boot.lds b/nand_spl/board/freescale/mx31pdk/u-boot.lds
index d2b08f6..ac29811 100644
--- a/nand_spl/board/freescale/mx31pdk/u-boot.lds
+++ b/nand_spl/board/freescale/mx31pdk/u-boot.lds
@@ -45,10 +45,7 @@ SECTIONS
 		*(.data)
 	}
 
-	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 
diff --git a/nand_spl/board/karo/tx25/Makefile b/nand_spl/board/karo/tx25/Makefile
index 0336346..29ca30c 100644
--- a/nand_spl/board/karo/tx25/Makefile
+++ b/nand_spl/board/karo/tx25/Makefile
@@ -27,7 +27,7 @@ include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
-LDFLAGS := -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
+LDFLAGS := -L$(TOPDIR) -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
 	   $(LDFLAGS_FINAL)
 AFLAGS	+= -DCONFIG_SPL_BUILD -DCONFIG_NAND_SPL
 CFLAGS	+= -DCONFIG_SPL_BUILD -DCONFIG_NAND_SPL
diff --git a/nand_spl/board/karo/tx25/u-boot.lds b/nand_spl/board/karo/tx25/u-boot.lds
index d2b08f6..ac29811 100644
--- a/nand_spl/board/karo/tx25/u-boot.lds
+++ b/nand_spl/board/karo/tx25/u-boot.lds
@@ -45,10 +45,7 @@ SECTIONS
 		*(.data)
 	}
 
-	. = ALIGN(4);
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 
diff --git a/nand_spl/board/samsung/smdk6400/Makefile b/nand_spl/board/samsung/smdk6400/Makefile
index c9e75ba..9a2a8d3 100644
--- a/nand_spl/board/samsung/smdk6400/Makefile
+++ b/nand_spl/board/samsung/smdk6400/Makefile
@@ -32,7 +32,7 @@ include $(TOPDIR)/nand_spl/board/$(BOARDDIR)/config.mk
 nandobj	:= $(OBJTREE)/nand_spl/
 
 LDSCRIPT= $(TOPDIR)/nand_spl/board/$(BOARDDIR)/u-boot.lds
-LDFLAGS := -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
+LDFLAGS := -L$(TOPDIR) -T $(nandobj)u-boot.lds -Ttext $(CONFIG_SYS_TEXT_BASE) $(LDFLAGS) \
 		$(LDFLAGS_FINAL) -gc-sections
 AFLAGS	+= -DCONFIG_NAND_SPL
 CFLAGS	+= -DCONFIG_NAND_SPL -ffunction-sections
diff --git a/nand_spl/board/samsung/smdk6400/u-boot.lds b/nand_spl/board/samsung/smdk6400/u-boot.lds
index 567f635..1c550c0 100644
--- a/nand_spl/board/samsung/smdk6400/u-boot.lds
+++ b/nand_spl/board/samsung/smdk6400/u-boot.lds
@@ -50,9 +50,7 @@ SECTIONS
 	. = ALIGN(4);
 	.got : { *(.got) }
 
-	__u_boot_cmd_start = .;
-	.u_boot_cmd : { *(.u_boot_cmd) }
-	__u_boot_cmd_end = .;
+	INCLUDE u-boot-common.lds
 
 	. = ALIGN(4);
 
diff --git a/spl/Makefile b/spl/Makefile
index 3262e22..1848a86 100644
--- a/spl/Makefile
+++ b/spl/Makefile
@@ -124,7 +124,8 @@ $(obj)u-boot-spl.bin:	$(obj)u-boot-spl
 GEN_UBOOT = \
 	UNDEF_SYM=`$(OBJDUMP) -x $(LIBS) | \
 	sed  -n -e 's/.*\($(SYM_PREFIX)__u_boot_cmd_.*\)/-u\1/p'|sort|uniq`;\
-	cd $(obj) && $(LD) $(LDFLAGS) $(LDFLAGS_$(@F)) $$UNDEF_SYM $(__START) \
+	cd $(obj) && $(LD) -L$(TOPDIR) $(LDFLAGS) $(LDFLAGS_$(@F)) \
+		$$UNDEF_SYM $(__START) \
 		--start-group $(__LIBS) --end-group $(PLATFORM_LIBS) \
 		-Map u-boot-spl.map -o u-boot-spl
 
diff --git a/u-boot-common.lds b/u-boot-common.lds
new file mode 100644
index 0000000..e9a5fc9
--- /dev/null
+++ b/u-boot-common.lds
@@ -0,0 +1,14 @@
+	. = ALIGN(4);
+	__u_boot_cmd_start = .;
+	.u_boot_cmd : {
+		KEEP(*(.u_boot_cmd))
+	}
+	__u_boot_cmd_end = .;
+
+	/* powerpc specific, but harmless for others */
+	. = ALIGN(4);
+	__start___ex_table = .;
+	__ex_table : {
+		KEEP(*(__ex_table))
+	}
+	__stop___ex_table = .;
-- 
1.7.5.4



More information about the U-Boot mailing list