Files
system76-coreboot/Documentation/mainboard/emulation/qemu-sbsa.md
David Milosevic ad83eb1ee6 mainboard/emulation/qemu-sbsa: Add qemu-sbsa board
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>
2024-06-08 20:41:14 +00:00

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