On sunxi platforms the boot rom (BROM) looks for a specific header which will also be loaded in memory, causing pbl, or barebox, image not loaded at the expected BASE addresse. This also cause an issue with relocatable pbl: instruction used for relocation expect the image to be aligned on a 4K page boundary. The proposed solution here is to allow to specify custom sections to put in the very begging of the .text section. --- arch/arm/lib/pbl.lds.S | 1 + include/asm-generic/barebox.lds.h | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/arch/arm/lib/pbl.lds.S b/arch/arm/lib/pbl.lds.S index 114ec7bc81..6fc97c6c34 100644 --- a/arch/arm/lib/pbl.lds.S +++ b/arch/arm/lib/pbl.lds.S @@ -27,6 +27,7 @@ SECTIONS .text : { _stext = .; + ENTRY_HEADER *(.text_head_prologue*) *(.text_head_entry*) __bare_init_start = .; diff --git a/include/asm-generic/barebox.lds.h b/include/asm-generic/barebox.lds.h index d3736ebaed..9915ead8a7 100644 --- a/include/asm-generic/barebox.lds.h +++ b/include/asm-generic/barebox.lds.h @@ -12,6 +12,10 @@ #define PRE_IMAGE #endif +#ifndef ENTRY_HEADER +#define ENTRY_HEADER +#endif + #define BAREBOX_INITCALLS \ STRUCT_ALIGN(); \ __barebox_initcalls_start = .; \ -- 2.40.0