]> git.dujemihanovic.xyz Git - u-boot.git/commit
board: emulation: Add QEMU sbsa support
authorPatrick Rudolph <patrick.rudolph@9elements.com>
Wed, 23 Oct 2024 13:20:08 +0000 (15:20 +0200)
committerTom Rini <trini@konsulko.com>
Sun, 27 Oct 2024 23:24:13 +0000 (17:24 -0600)
commit6d722894fd4843b7b02051449a0444e5171e0429
treeee66d1a690033d0189cdb7517bf16b7a57d68408
parent6f9b015c138bf13fe72250bde17e530f52681bf0
board: emulation: Add QEMU sbsa support

Add support for Arm sbsa [1] v0.3+ that is supported by QEMU [2].

Unlike other Arm based platforms the machine only provides a minimal
FDT that contains number of CPUs, ammount of memory and machine-version.
The boot firmware has to provide ACPI tables to the OS.
Due to this design a full DTB is added here as well that allows U-Boot's
driver to properly function. The DTB is appended at the end of the U-Boot
image and will be merged with the QEMU provided DTB.

In addition provide documentation how to use, enable binman to fabricate both
ROMs that are required to boot and add ACPI tables to make it full compatible
to the EDK2 reference implementation.

The board was tested using Fedora 40 Aarch64 Workstation. It's able
to boot from USB and AHCI or network.

Tested and found working:
- serial
- PCI
- xHCI
- Bochs display
- AHCI
- network using e1000e
- CPU init
- Booting Fedora 40

1: Server Base System Architecture (SBSA)
2: https://www.qemu.org/docs/master/system/arm/sbsa.html

Signed-off-by: Patrick Rudolph <patrick.rudolph@9elements.com>
Cc: Peter Robinson <pbrobinson@gmail.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: Tom Rini <trini@konsulko.com>
19 files changed:
arch/arm/Kconfig
arch/arm/dts/qemu-sbsa.dts [new file with mode: 0644]
arch/arm/include/asm/arch-qemu-sbsa/boot0.h [new file with mode: 0644]
arch/arm/mach-qemu/Kconfig
board/emulation/qemu-arm/MAINTAINERS
board/emulation/qemu-sbsa/Kconfig [new file with mode: 0644]
board/emulation/qemu-sbsa/Makefile [new file with mode: 0644]
board/emulation/qemu-sbsa/acpi.c [new file with mode: 0644]
board/emulation/qemu-sbsa/dsdt.asl [new file with mode: 0644]
board/emulation/qemu-sbsa/lowlevel_init.S [new file with mode: 0644]
board/emulation/qemu-sbsa/qemu-sbsa.c [new file with mode: 0644]
board/emulation/qemu-sbsa/qemu-sbsa.env [new file with mode: 0644]
board/emulation/qemu-sbsa/qemu-sbsa.h [new file with mode: 0644]
board/emulation/qemu-sbsa/smc.c [new file with mode: 0644]
configs/qemu-arm-sbsa_defconfig [new file with mode: 0644]
doc/board/emulation/index.rst
doc/board/emulation/qemu-sbsa.rst [new file with mode: 0644]
doc/develop/driver-model/virtio.rst
include/configs/qemu-sbsa.h [new file with mode: 0644]