On Tue, Nov 11, 2025 at 09:59:06AM +0200, Ilias Apalodimas wrote:

> When loading U-Boot in a low memory address, the adpr instruction
> to preserve saved_args[] end up within the memory space of QEMUs
> mapped pflashes. As a result the following store pair instructions
> lead to a crash since instructions that modify more than one registers
> can't trap into KVM.
> 
> This problem can be solved with loading U-Boot with -kernel
> and defining a different text base address. But when running with
> -bios we always start from 0x0. So let's postpone the calculation
> of saved_args[] post relocation, where we will have an address that
> doesn't collide with the QEMU flashes.
> 
> Acked-by: Raymond Mao <[email protected]>
> Signed-off-by: Ilias Apalodimas <[email protected]>
> ---
> Changes since v1:
> - Move comments to the appropriate place
> - Add missing ifdefs when calculating the bloblist placement
> 
>  arch/arm/cpu/armv8/start.S | 9 ++++-----
>  arch/arm/lib/crt0_64.S     | 7 +++++++
>  2 files changed, 11 insertions(+), 5 deletions(-)

This, funny enough, breaks our qemu_arm64 + tfa + handoff test with a
failure to boot.

-- 
Tom

Attachment: signature.asc
Description: PGP signature

Reply via email to