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>
This commit is contained in:
committed by
Lean Sheng Tan
parent
91cda2af74
commit
ad83eb1ee6
42
Documentation/mainboard/emulation/qemu-sbsa.md
Normal file
42
Documentation/mainboard/emulation/qemu-sbsa.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# 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
|
||||
|
||||
```bash
|
||||
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
|
@@ -90,6 +90,7 @@ The boards in this section are not real mainboards, but emulators.
|
||||
Spike RISC-V emulator <emulation/spike-riscv.md>
|
||||
QEMU RISC-V emulator <emulation/qemu-riscv.md>
|
||||
QEMU AArch64 emulator <emulation/qemu-aarch64.md>
|
||||
QEMU SBSA emulator <emulation/qemu-sbsa.md>
|
||||
QEMU x86 Q35 <emulation/qemu-q35.md>
|
||||
QEMU x86 PC <emulation/qemu-i440fx.md>
|
||||
QEMU POWER9 <emulation/qemu-power9.md>
|
||||
|
Reference in New Issue
Block a user