[U-Boot] [PATCH v2] arm: Add missing .vectors section to linker scripts

Commit 41623c9 'arm: move exception handling out of start.S files' missed some linker scripts. Hence, some boards no longer had exception handling linked since this commit. Restore the original behavior by adding the .vectors section to these linker scripts.
Signed-off-by: Benoît Thébaudeau benoit.thebaudeau.dev@gmail.com Cc: Albert ARIBAUD albert.u.boot@aribaud.net
---
Changes in v2: - Reword the patch subject from 'arm: fix missing exception handling' to 'arm: Add missing .vectors section to linker scripts'. --- arch/arm/cpu/arm1136/u-boot-spl.lds | 1 + arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds | 1 + arch/arm/cpu/armv7/am33xx/u-boot-spl.lds | 1 + arch/arm/cpu/armv7/omap-common/u-boot-spl.lds | 1 + arch/arm/cpu/armv7/socfpga/u-boot-spl.lds | 1 + arch/arm/cpu/armv7/zynq/u-boot-spl.lds | 1 + arch/arm/cpu/at91-common/u-boot-spl.lds | 1 + board/Barix/ipam390/u-boot-spl-ipam390.lds | 1 + board/ait/cam_enc_4xx/u-boot-spl.lds | 1 + board/cirrus/edb93xx/u-boot.lds | 1 + board/davinci/da8xxevm/u-boot-spl-da850evm.lds | 1 + board/davinci/da8xxevm/u-boot-spl-hawk.lds | 1 + board/samsung/common/exynos-uboot-spl.lds | 1 + board/vpac270/u-boot-spl.lds | 1 + 14 files changed, 14 insertions(+)
diff --git a/arch/arm/cpu/arm1136/u-boot-spl.lds b/arch/arm/cpu/arm1136/u-boot-spl.lds index 0299902..97e4a8b 100644 --- a/arch/arm/cpu/arm1136/u-boot-spl.lds +++ b/arch/arm/cpu/arm1136/u-boot-spl.lds @@ -22,6 +22,7 @@ SECTIONS .text : { __start = .; + *(.vectors) arch/arm/cpu/arm1136/start.o (.text*) *(.text*) } >.sram diff --git a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds index f4bf8ac..bf2ac13 100644 --- a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds +++ b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds @@ -21,6 +21,7 @@ SECTIONS . = ALIGN(4); .text : { + *(.vectors) arch/arm/cpu/arm926ejs/mxs/start.o (.text*) *(.text*) } diff --git a/arch/arm/cpu/armv7/am33xx/u-boot-spl.lds b/arch/arm/cpu/armv7/am33xx/u-boot-spl.lds index b1c28c9..07cf267 100644 --- a/arch/arm/cpu/armv7/am33xx/u-boot-spl.lds +++ b/arch/arm/cpu/armv7/am33xx/u-boot-spl.lds @@ -22,6 +22,7 @@ SECTIONS .text : { __start = .; + *(.vectors) arch/arm/cpu/armv7/start.o (.text) *(.text*) } >.sram diff --git a/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds b/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds index 745603d..ccd0c83 100644 --- a/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds +++ b/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds @@ -22,6 +22,7 @@ SECTIONS .text : { __start = .; + *(.vectors) arch/arm/cpu/armv7/start.o (.text*) *(.text*) } >.sram diff --git a/arch/arm/cpu/armv7/socfpga/u-boot-spl.lds b/arch/arm/cpu/armv7/socfpga/u-boot-spl.lds index 4282beb..db9bdad 100644 --- a/arch/arm/cpu/armv7/socfpga/u-boot-spl.lds +++ b/arch/arm/cpu/armv7/socfpga/u-boot-spl.lds @@ -16,6 +16,7 @@ SECTIONS . = ALIGN(4); .text : { + *(.vectors) arch/arm/cpu/armv7/start.o (.text*) *(.text*) } >.sdram diff --git a/arch/arm/cpu/armv7/zynq/u-boot-spl.lds b/arch/arm/cpu/armv7/zynq/u-boot-spl.lds index 0c4501e..0f2f756 100644 --- a/arch/arm/cpu/armv7/zynq/u-boot-spl.lds +++ b/arch/arm/cpu/armv7/zynq/u-boot-spl.lds @@ -22,6 +22,7 @@ SECTIONS .text : { __image_copy_start = .; + *(.vectors) CPUDIR/start.o (.text*) *(.text*) } > .sram diff --git a/arch/arm/cpu/at91-common/u-boot-spl.lds b/arch/arm/cpu/at91-common/u-boot-spl.lds index 57ac1eb..eccca43 100644 --- a/arch/arm/cpu/at91-common/u-boot-spl.lds +++ b/arch/arm/cpu/at91-common/u-boot-spl.lds @@ -25,6 +25,7 @@ SECTIONS .text : { __start = .; + *(.vectors) arch/arm/cpu/armv7/start.o (.text*) *(.text*) } >.sram diff --git a/board/Barix/ipam390/u-boot-spl-ipam390.lds b/board/Barix/ipam390/u-boot-spl-ipam390.lds index 8604696..5f290ec 100644 --- a/board/Barix/ipam390/u-boot-spl-ipam390.lds +++ b/board/Barix/ipam390/u-boot-spl-ipam390.lds @@ -22,6 +22,7 @@ SECTIONS .text : { __start = .; + *(.vectors) arch/arm/cpu/arm926ejs/start.o (.text*) *(.text*) } >.sram diff --git a/board/ait/cam_enc_4xx/u-boot-spl.lds b/board/ait/cam_enc_4xx/u-boot-spl.lds index c0d09ad..f5c19df 100644 --- a/board/ait/cam_enc_4xx/u-boot-spl.lds +++ b/board/ait/cam_enc_4xx/u-boot-spl.lds @@ -22,6 +22,7 @@ SECTIONS .text : { __start = .; + *(.vectors) arch/arm/cpu/arm926ejs/start.o (.text*) *(.text*) } >.sram diff --git a/board/cirrus/edb93xx/u-boot.lds b/board/cirrus/edb93xx/u-boot.lds index b0d892a..4aa7891 100644 --- a/board/cirrus/edb93xx/u-boot.lds +++ b/board/cirrus/edb93xx/u-boot.lds @@ -21,6 +21,7 @@ SECTIONS . = ALIGN(4); .text : { *(.__image_copy_start) + *(.vectors) arch/arm/cpu/arm920t/start.o (.text*) . = 0x1000;
diff --git a/board/davinci/da8xxevm/u-boot-spl-da850evm.lds b/board/davinci/da8xxevm/u-boot-spl-da850evm.lds index de21a13..ab4f50c 100644 --- a/board/davinci/da8xxevm/u-boot-spl-da850evm.lds +++ b/board/davinci/da8xxevm/u-boot-spl-da850evm.lds @@ -22,6 +22,7 @@ SECTIONS .text : { __start = .; + *(.vectors) arch/arm/cpu/arm926ejs/start.o (.text*) *(.text*) } >.sram diff --git a/board/davinci/da8xxevm/u-boot-spl-hawk.lds b/board/davinci/da8xxevm/u-boot-spl-hawk.lds index 299226b..682f268 100644 --- a/board/davinci/da8xxevm/u-boot-spl-hawk.lds +++ b/board/davinci/da8xxevm/u-boot-spl-hawk.lds @@ -18,6 +18,7 @@ SECTIONS . = ALIGN(4); .text : { + *(.vectors) arch/arm/cpu/arm926ejs/start.o (.text*) arch/arm/cpu/arm926ejs/davinci/built-in.o (.text*) drivers/mtd/nand/built-in.o (.text*) diff --git a/board/samsung/common/exynos-uboot-spl.lds b/board/samsung/common/exynos-uboot-spl.lds index b22f9e0..4a933c8 100644 --- a/board/samsung/common/exynos-uboot-spl.lds +++ b/board/samsung/common/exynos-uboot-spl.lds @@ -21,6 +21,7 @@ SECTIONS .text : { __start = .; + *(.vectors) arch/arm/cpu/armv7/start.o (.text*) *(.text*) } >.sram diff --git a/board/vpac270/u-boot-spl.lds b/board/vpac270/u-boot-spl.lds index 5dbf94e..a10ea71 100644 --- a/board/vpac270/u-boot-spl.lds +++ b/board/vpac270/u-boot-spl.lds @@ -19,6 +19,7 @@ SECTIONS . = CONFIG_SPL_TEXT_BASE; .text.0 : { + *(.vectors) arch/arm/cpu/pxa/start.o (.text*) arch/arm/lib/built-in.o (.text*) board/vpac270/built-in.o (.text*)

On 08/21/2014 03:43 PM, Benoît Thébaudeau wrote:
Commit 41623c9 'arm: move exception handling out of start.S files' missed some linker scripts. Hence, some boards no longer had exception handling linked since this commit. Restore the original behavior by adding the .vectors section to these linker scripts.
Signed-off-by: Benoît Thébaudeau benoit.thebaudeau.dev@gmail.com Cc: Albert ARIBAUD albert.u.boot@aribaud.net
Changes in v2:
- Reword the patch subject from 'arm: fix missing exception handling' to 'arm: Add missing .vectors section to linker scripts'.
arch/arm/cpu/arm1136/u-boot-spl.lds | 1 + arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds | 1 + arch/arm/cpu/armv7/am33xx/u-boot-spl.lds | 1 + arch/arm/cpu/armv7/omap-common/u-boot-spl.lds | 1 + arch/arm/cpu/armv7/socfpga/u-boot-spl.lds | 1 + arch/arm/cpu/armv7/zynq/u-boot-spl.lds | 1 + arch/arm/cpu/at91-common/u-boot-spl.lds | 1 + board/Barix/ipam390/u-boot-spl-ipam390.lds | 1 + board/ait/cam_enc_4xx/u-boot-spl.lds | 1 + board/cirrus/edb93xx/u-boot.lds | 1 + board/davinci/da8xxevm/u-boot-spl-da850evm.lds | 1 + board/davinci/da8xxevm/u-boot-spl-hawk.lds | 1 + board/samsung/common/exynos-uboot-spl.lds | 1 + board/vpac270/u-boot-spl.lds | 1 + 14 files changed, 14 insertions(+)
diff --git a/arch/arm/cpu/arm1136/u-boot-spl.lds b/arch/arm/cpu/arm1136/u-boot-spl.lds index 0299902..97e4a8b 100644 --- a/arch/arm/cpu/arm1136/u-boot-spl.lds +++ b/arch/arm/cpu/arm1136/u-boot-spl.lds @@ -22,6 +22,7 @@ SECTIONS .text : { __start = .;
arch/arm/cpu/arm1136/start.o (.text*) *(.text*) } >.sram*(.vectors)
diff --git a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds index f4bf8ac..bf2ac13 100644 --- a/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds +++ b/arch/arm/cpu/arm926ejs/mxs/u-boot-spl.lds @@ -21,6 +21,7 @@ SECTIONS . = ALIGN(4); .text : {
arch/arm/cpu/arm926ejs/mxs/start.o (.text*) *(.text*) }*(.vectors)
diff --git a/arch/arm/cpu/armv7/am33xx/u-boot-spl.lds b/arch/arm/cpu/armv7/am33xx/u-boot-spl.lds index b1c28c9..07cf267 100644 --- a/arch/arm/cpu/armv7/am33xx/u-boot-spl.lds +++ b/arch/arm/cpu/armv7/am33xx/u-boot-spl.lds @@ -22,6 +22,7 @@ SECTIONS .text : { __start = .;
arch/arm/cpu/armv7/start.o (.text) *(.text*) } >.sram*(.vectors)
diff --git a/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds b/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds index 745603d..ccd0c83 100644 --- a/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds +++ b/arch/arm/cpu/armv7/omap-common/u-boot-spl.lds @@ -22,6 +22,7 @@ SECTIONS .text : { __start = .;
arch/arm/cpu/armv7/start.o (.text*) *(.text*) } >.sram*(.vectors)
diff --git a/arch/arm/cpu/armv7/socfpga/u-boot-spl.lds b/arch/arm/cpu/armv7/socfpga/u-boot-spl.lds index 4282beb..db9bdad 100644 --- a/arch/arm/cpu/armv7/socfpga/u-boot-spl.lds +++ b/arch/arm/cpu/armv7/socfpga/u-boot-spl.lds @@ -16,6 +16,7 @@ SECTIONS . = ALIGN(4); .text : {
arch/arm/cpu/armv7/start.o (.text*) *(.text*) } >.sdram*(.vectors)
diff --git a/arch/arm/cpu/armv7/zynq/u-boot-spl.lds b/arch/arm/cpu/armv7/zynq/u-boot-spl.lds index 0c4501e..0f2f756 100644 --- a/arch/arm/cpu/armv7/zynq/u-boot-spl.lds +++ b/arch/arm/cpu/armv7/zynq/u-boot-spl.lds @@ -22,6 +22,7 @@ SECTIONS .text : { __image_copy_start = .;
CPUDIR/start.o (.text*) *(.text*) } > .sram*(.vectors)
I have this patch for zynq in my private branch. It means when Albert or Tom applies my zynq changes please ensure that vectors are not added twice.
Thanks, Michal

On Thu, Aug 21, 2014 at 03:43:11PM +0200, Benoît Thébaudeau wrote:
Commit 41623c9 'arm: move exception handling out of start.S files' missed some linker scripts. Hence, some boards no longer had exception handling linked since this commit. Restore the original behavior by adding the .vectors section to these linker scripts.
Signed-off-by: Benoît Thébaudeau benoit.thebaudeau.dev@gmail.com Cc: Albert ARIBAUD albert.u.boot@aribaud.net
Applied to u-boot/master (and checked that zynq didn't get a duplicate entry now), thanks!
participants (3)
-
Benoît Thébaudeau
-
Michal Simek
-
Tom Rini