[PATCH v2 0/6] qemu-arm64: Allow booting via Trusted Firmware

Tom Rini
2020-09-30T17:39:58Z

On Wed, Sep 30, 2020 at 05:39:12PM +0100, Andre Przywara wrote:

> U-Boot on QEMU-arm64 can be used in two configurations: Loaded directly
> via QEMU's -bios option, or as a non-secure payload (BL33) via
> ARM Trusted Firmware-A (TF-A).
> In the latter case we need to define CONFIG_TFABOOT, to accommodate
> the first flash bank being secure only, and manually set SYS_TEXT_BASE
> to the address configured in TF-A (currently 0x60000000).
>
> To avoid this poorly documented adventure, we enable a position
> independent build, and also let the flash regions be always detected
> through the DTB. This results in a single build to work under both
> scenarios, and also allows to move the BL33 load address in TF-A to
> something lower in the future.
>
> For this to work, we have to first make PIE work when booted from ROM.
> While writing to ROM should not hurt, it might trigger CFI flash
> sequences, and indeed crashes for me in the middle of the fixup routine.
> This is covered by patch 2/6, which skips the whole fixup routine if the
> offset is actually 0 (as it is in our case). To support older toolchains
> (including the popular Linaro builds), we need to ensure we do the
> static RELA fixups, even with PIE enabled (patch 1/6).
> Also we have to decouple the relative initial stack pointer from the
> PIE option, as we always need to use the fixed version, pointing to
> RAM (patch 3/6).
> Patch 4/6 drops the hard-coded flash address, instead U-Boot can already
> read all required information from QEMU's DTB.
> Patch 5/6 is a cleanup, while the last patch enables the PIE build.
>
> With this series the very same u-boot.bin file works when directly loaded
> from the QEMU command line (-bios), but also when embedded into TF-A's
> fip.bin, removing the need for case-specific build options.
>
> Please have a look!

Can you please also update doc/board/emulation/qemu-arm.rst with
instructions / example of using this configuration? Thanks!

--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200930/ac3f1c5b/attachment.sig>