]> git.dujemihanovic.xyz Git - u-boot.git/commit
armv8: Skip PIE in SPL due to load alignment fault.
authorKevin Chen <kevin_chen@aspeedtech.com>
Thu, 3 Aug 2023 08:12:18 +0000 (16:12 +0800)
committerTom Rini <trini@konsulko.com>
Thu, 17 Aug 2023 20:39:20 +0000 (16:39 -0400)
commitfe85863086b1dba3cd266b984f6a882522af5790
tree8f4c99fa4ec9eee5aeeb89cfab953ad0be2df5c3
parent726a802fdaf1ffb4ca95ebf6910a738781137ef5
armv8: Skip PIE in SPL due to load alignment fault.

When PIE is enabled in start.S, u-boot/-spl use __rel_dyn_start
and _rel_dyn_end symbol to be loaded to and executed at a
different address than it was linked at.

u-boot-spl.lds is used in SPL build, but relocation information
section(.rela*) were discarded.
In line number 80 in arch/arm/cpu/armv8/u-boot-spl.lds
 /DISCARD/ : { *(.rela*) }

If PIE enabled in SPL, __rel_dyn_start which is defined as
.rel_dyn_start in sections.c will be apended to the end of
.bss section.

In our ASPEED case, size of .bss section would let .rel_dyn_start
without 8-byte alignment, leading to alignment fault when
executing ldp instuction in pie_fix_loop.

Signed-off-by: Kevin Chen <kevin_chen@aspeedtech.com>
arch/arm/cpu/armv8/start.S