Add coreboot support for qemu's sbsa-ref (Server Base System Architecture) machine (-m sbsa-ref). The qemu-sbsa coreboot port runs on EL2 and is the payload of the EL3 firmware (Arm Trusted Firmware). Note that, coreboot expects a pointer to the FDT in x0. Make sure to configure TF-A to handoff the FDT pointer. Example qemu commandline: qemu-system-aarch64 -nographic -m 2048 -M sbsa-ref \ -pflash <path/to/TFA.fd> \ -pflash <path/to/coreboot.rom> The Documentation can be found here: Documentation/mainboard/emulation/qemu-sbsa.md Change-Id: Iacc9aaf065e0d153336cbef9a9b5b46a9eb24a53 Signed-off-by: David Milosevic <David.Milosevic@9elements.com> Reviewed-on: https://review.coreboot.org/c/coreboot/+/79086 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
1.5 KiB
QEMU SBSA emulator
This page describes how to build and run coreboot
for QEMU's sbsa-ref machine.
The qemu-sbsa coreboot
image acts as BL-3.3 for Arm Trusted Firmware (TF-A
) and
mainly takes care of setting up SMBIOS and ACPI tables, hence, in order to boot,
you also need to supply a TF-A
image.
Building TF-A
You can build TF-A
from source by fetching
https://github.com/ARM-software/arm-trusted-firmware
and building the qemu-sbsa platform
PLAT=qemu_sbsa
Upon entry, coreboot
expects a FDT pointer in x0, so make sure to compile TF-A
with
ARM_LINUX_KERNEL_AS_BL33=1
This will force TF-A
to pass a pointer to the FDT in x0.
Building coreboot
Simply select the qemu-sbsa board and, optionally, configure a payload. We recommend
the leanefi
payload. leanefi
will setup a minimal set of UEFI services, just enough
to boot into a linux kernel.
Running coreboot in QEMU
Once you have obtained TF-A
and coreboot
images, launch qemu via
qemu-system-aarch64 -nographic -m 1024 -M sbsa-ref -pflash <path/to/TFA.fd> \
-pflash <path/to/coreboot.rom>
LBBR bootflow
arm and 9elements worked together in order to create a LBBR compliant bootflow
consisting of TF-A
, coreboot
, leanefi
and LinuxBoot
. A proof of concept
can be found here https://gitlab.arm.com/systemready/firmware-build/linuxboot/lbbr-coreboot-poc