[PATCH v2] armv8: Fix transfer list passing with KVM
Tom Rini
trini at konsulko.com
Fri Nov 28 23:38:15 CET 2025
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 <raymondmaoca at gmail.com>
> Signed-off-by: Ilias Apalodimas <ilias.apalodimas at linaro.org>
> ---
> 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20251128/ffbcc068/attachment.sig>
More information about the U-Boot
mailing list