summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarek Vasut <marek.vasut@mailbox.org>2025-05-18 18:02:58 +0200
committerTom Rini <trini@konsulko.com>2025-06-02 17:25:35 -0600
commit52caad0d14a3d6de34d69929c6e795f62c623a00 (patch)
tree6bce57acde77541f1a2b7f9b8cc61010c86545db
parentd45b1d4ac94710f88902adc2173d7930700e2869 (diff)
ARM: Align image end to 8 bytes to fit DT alignment
Align U-Boot image end to 8 bytes to make sure DT alignment requirement is fulfilled. This fixes a possible failure in fdt_find_separate() in case the U-Boot image is aligned to 4 Bytes and DT is appended at the end at already 8 Byte aligned offset. Link: https://source.denx.de/u-boot/u-boot/-/issues/30 Reviewed-by: Simon Glass <sjg@chromium.org> Reviewed-by: Tom Rini <trini@konsulko.com> Signed-off-by: Marek Vasut <marek.vasut@mailbox.org>
-rw-r--r--arch/arm/cpu/u-boot-spl.lds3
-rw-r--r--arch/arm/cpu/u-boot.lds6
2 files changed, 5 insertions, 4 deletions
diff --git a/arch/arm/cpu/u-boot-spl.lds b/arch/arm/cpu/u-boot-spl.lds
index eee463a1b1c..5aecb61ce90 100644
--- a/arch/arm/cpu/u-boot-spl.lds
+++ b/arch/arm/cpu/u-boot-spl.lds
@@ -53,13 +53,14 @@ SECTIONS
__rel_dyn_end = .;
}
+ . = ALIGN(8);
_image_binary_end = .;
_end = .;
.bss __rel_dyn_start (OVERLAY) : {
__bss_start = .;
*(.bss*)
- . = ALIGN(4);
+ . = ALIGN(8);
__bss_end = .;
}
__bss_size = __bss_end - __bss_start;
diff --git a/arch/arm/cpu/u-boot.lds b/arch/arm/cpu/u-boot.lds
index 817e7a983ae..78aad093d3b 100644
--- a/arch/arm/cpu/u-boot.lds
+++ b/arch/arm/cpu/u-boot.lds
@@ -153,14 +153,14 @@ SECTIONS
__efi_runtime_rel_stop = .;
}
- . = ALIGN(4);
+ . = ALIGN(8);
__image_copy_end = .;
/*
* if CONFIG_USE_ARCH_MEMSET is not selected __bss_end - __bss_start
- * needs to be a multiple of 4 and we overlay .bss with .rel.dyn
+ * needs to be a multiple of 8 and we overlay .bss with .rel.dyn
*/
- .rel.dyn ALIGN(4) : {
+ .rel.dyn ALIGN(8) : {
__rel_dyn_start = .;
*(.rel*)
__rel_dyn_end = .;