[PATCH v3 0/4] arm64: Large PIE fixes

Edgar E. Iglesias edgar.iglesias at gmail.com
Wed Sep 9 19:07:23 CEST 2020


From: "Edgar E. Iglesias" <edgar.iglesias at xilinx.com>

This fixes some build issues with large (> 1MB) PIE U-Boot setups.
We also document the 4K aligned load address requirement and
add an early run-time check for it.

As requested by reviewers, I've also added a runtime check for
non-PIE builds to trap the startup sequence early if the start
address doesn't match between run-time and link-time.

Cheers,
Edgar

ChangeLog:
v2 -> v3:
* Add non-PIE start address (run vs link-time) check
* Move 4K aligment Kconfig help description
* Fix load of __bss_start
* Use x0 rather than x1 in PIE load-address check
* Add missing tabs
* Add load-address check for non-PIE
* U-boot -> U-Boot in a few places
* Tweak commit messages

v1 -> v2:
* Fix adr of _start in arch/arm/lib/crt0_64.S
* Add early check and bail out into a WFI loop when not 4K aligned
* Document the 4K alignement requirement in Kconfig

Edgar E. Iglesias (4):
  arm64: Mention 4K aligned load addresses in the PIE Kconfig help
  arm64: Trap PIE builds early if load address is not 4K aligned
  arm64: Add support for larger PIE U-Boot
  arm64: Trap non-PIE builds early if starting from wrong address

 arch/arm/Kconfig           |  4 ++--
 arch/arm/cpu/armv8/start.S | 36 ++++++++++++++++++++++++++++++++++--
 arch/arm/lib/crt0_64.S     |  8 +++++++-
 3 files changed, 43 insertions(+), 5 deletions(-)

-- 
2.25.1



More information about the U-Boot mailing list