buildroot/board/arm/fvp-ebbr
Bryan Brattlof e1aacc3049 boot/arm-trusted-firmware: move to official source for tf-a
ARM_TRUSTED_FIRMWARE_SITE is currently pointing to the deprecated
ARM-software github read-only mirror[0] which is no longer publishing
new tags. They do have a newer github mirror under the TrustedFirmware-A
organization[1] which continues to receive tag updates we could use
however because of the way github generates tarballs changing the SITE
to point to TrustedFormware-A changes the pre-calculated hash values
for every version for everyone.

Without much way around changing all hash values if we want these latest
tags, lets drop the github mirrors and move to the official git
source[2] so we can download real tarballs which shouldn't change even
if the ARM_TRUSTED_FIRMWARE_SITE moves again and hopefully preventing
this from ever happening again.

[2] https://git.trustedfirmware.org/TF-A/trusted-firmware-a.git/
[1] https://github.com/TrustedFirmware-A/trusted-firmware-a
[0] https://github.com/ARM-software/arm-trusted-firmware

Signed-off-by: Bryan Brattlof <bb@ti.com>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2024-08-07 23:10:17 +02:00
..
patches boot/arm-trusted-firmware: move to official source for tf-a 2024-08-07 23:10:17 +02:00
fvp-config.txt configs/arm_fvp_ebbr: new defconfig 2024-07-14 16:52:15 +02:00
fvp-ebbr.dts configs/arm_fvp_ebbr: new defconfig 2024-07-14 16:52:15 +02:00
genimage.cfg configs/arm_fvp_ebbr: new defconfig 2024-07-14 16:52:15 +02:00
grub.cfg configs/arm_fvp_ebbr: new defconfig 2024-07-14 16:52:15 +02:00
post-image.sh configs/arm_fvp_ebbr: new defconfig 2024-07-14 16:52:15 +02:00
readme.txt configs/arm_fvp_ebbr: new defconfig 2024-07-14 16:52:15 +02:00
u-boot.fragment configs/arm_fvp_ebbr: new defconfig 2024-07-14 16:52:15 +02:00

readme.txt

Introduction
============

The arm_fvp_ebbr_defconfig is meant to illustrate some aspects of the Arm EBBR
specification[1] and the Arm SystemReady IR[2] compliance program.
It allows building an AArch64 U-Boot based firmware implementing the subset of
UEFI defined by EBBR, as well as a Linux OS disk image booting with UEFI, to run
on the Arm A-Profile Base RevC AEM FVP.

Building
========

  $ make arm_fvp_ebbr_defconfig
  $ make

Generated files under output/images:

* bl1.bin: A ROM image built from TF-A.
* fip.bin: A firmware image comprising TF-A, OP-TEE and the U-Boot bootloader.
* disk.img: An OS disk image comprising the GRUB bootloader, the Linux kernel
  and the root filesystem.

Running on the FVP
==================

Download the FVP from one of the following sources, corresponding to your host
computer:

- https://developer.arm.com/-/media/Files/downloads/ecosystem-models/FM_11_25/FVP_Base_RevC-2xAEMvA_11.25_15_Linux64.tgz
- https://developer.arm.com/-/media/Files/downloads/ecosystem-models/FM_11_25/FVP_Base_RevC-2xAEMvA_11.25_15_Linux64_armv8l.tgz

The FVP will be located under one of the corresponding folders:

- Base_RevC_AEMvA_pkg/models/Linux64_GCC-9.3
- Base_RevC_AEMvA_pkg/models/Linux64_armv8l_GCC-9.3

Run the simulation with:

  FVP_Base_RevC-2xAEMvA \
      --config-file board/arm/fvp-ebbr/fvp-config.txt \
      -C bp.secureflashloader.fname="output/images/bl1.bin" \
      -C bp.flashloader0.fname="output/images/fip.bin" \
      -C bp.virtioblockdevice.image_path="output/images/disk.img"

The login prompt will appear in a new X terminal.

Using the EBBR firmware to run another OS on the FVP
----------------------------------------------------

It is possible to use the generated firmware binaries to run another OS
supporting the EBBR specification.

To run another OS on simulation using a live or pre-installed image, use the
same FVP command line as for the generated OS but adapt the OS image path in the
virtioblockdevice stanza.
The image generated by the aarch64_efi_defconfig or the Arm ACS-IR images[3] are
examples of pre-installed OS images.
Linux distributions such as Debian, Fedora, openSUSE or Ubuntu provide a
pre-installed OS image.

Miscellaneous
=============

This configuration is inspired by the arm_foundationv8_defconfig, the
qemu_aarch64_virt_defconfig and the Arm SystemReady IR IoT Integration, Test,
and Certification Guide[4].

Firmware update, MMC and network are currently not supported.

[1]: https://github.com/ARM-software/ebbr
[2]: https://developer.arm.com/Architectures/Arm%20SystemReady%20IR
[3]: https://github.com/ARM-software/arm-systemready/tree/main/IR/prebuilt_images
[4]: https://developer.arm.com/documentation/DUI1101/latest/