diff options
author | David Milosevic <David.Milosevic@9elements.com> | 2023-11-16 05:11:18 +0100 |
---|---|---|
committer | Lean Sheng Tan <sheng.tan@9elements.com> | 2024-06-08 20:41:14 +0000 |
commit | ad83eb1ee6bb833783c4b870c86413978fb5d4ba (patch) | |
tree | 34effa2a8c4d42be4b5b06dba8ad0a7b78ef8778 /Documentation | |
parent | 91cda2af74b4142bf459f7416b8f997c7d981e13 (diff) |
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>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/mainboard/emulation/qemu-sbsa.md | 42 | ||||
-rw-r--r-- | Documentation/mainboard/index.md | 1 |
2 files changed, 43 insertions, 0 deletions
diff --git a/Documentation/mainboard/emulation/qemu-sbsa.md b/Documentation/mainboard/emulation/qemu-sbsa.md new file mode 100644 index 0000000000..abbd1895a5 --- /dev/null +++ b/Documentation/mainboard/emulation/qemu-sbsa.md @@ -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 diff --git a/Documentation/mainboard/index.md b/Documentation/mainboard/index.md index 5a80d46c14..e54b01fa38 100644 --- a/Documentation/mainboard/index.md +++ b/Documentation/mainboard/index.md @@ -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> |