Message ID | 20200930163918.24995-4-andre.przywara@arm.com |
---|---|
State | Accepted |
Commit | 12650e4a46c859eb14e6141b828d92919a18b9c6 |
Delegated to: | Tom Rini |
Headers | show |
Series | qemu-arm64: Allow booting via Trusted Firmware | expand |
On Wed, Sep 30, 2020 at 05:39:15PM +0100, Andre Przywara wrote: > Currently selecting CONFIG_POSITION_INDEPENDENT also forces us to use an > initial stack pointer relative to the beginning of the BSS section. > This makes some sense, because this should be writable memory anyway. > > However the BSS section is not cleared or used until later in the > setup process (after relocation), so memory nearby might not be > available early enough to host the initial stack. This is an issue if > U-Boot is loaded from (Flash-)ROM, for instance. > > Allow CONFIG_INIT_SP_RELATIVE to be turned off by a board's config, to > be able to select a fixed stack pointer, for instance in known good > DRAM. > > This will help QEMU utilising PIE, when it's loaded to (Flash-)ROM. > > Signed-off-by: Andre Przywara <andre.przywara@arm.com> > Reviewed-by: Stephen Warren <swarren@nvidia.com> Applied to u-boot/master, thanks!
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index b6fb276b6f8..486141478ce 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -12,7 +12,6 @@ config ARM64 if ARM64 config POSITION_INDEPENDENT bool "Generate position-independent pre-relocation code" - select INIT_SP_RELATIVE help U-Boot expects to be linked to a specific hard-coded address, and to be loaded to and run from that address. This option lifts that @@ -23,6 +22,7 @@ config POSITION_INDEPENDENT config INIT_SP_RELATIVE bool "Specify the early stack pointer relative to the .bss section" + default y if POSITION_INDEPENDENT help U-Boot typically uses a hard-coded value for the stack pointer before relocation. Enable this option to instead calculate the