[PATCH v4 25/35] board: emulation: Add QEMU sbsa support
Simon Glass
sjg at chromium.org
Thu Sep 19 16:11:51 CEST 2024
Hi Patrick,
On Wed, 18 Sept 2024 at 17:22, Patrick Rudolph
<patrick.rudolph at 9elements.com> wrote:
>
> 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.
>
> Add a minimal amount of devicetree nodes to make the board useable within
> U-Boot, 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 at 9elements.com>
> Cc: Peter Robinson <pbrobinson at gmail.com>
> Cc: Simon Glass <sjg at chromium.org>
> Cc: Tom Rini <trini at konsulko.com>
> ---
> Changelog v3:
> - Add GIC and GIC-ITS to devicetree
> - Select GICv3 driver
> - Drop acpi_fill_madt and use driver model instead
> Changelog v4:
> - Drop CPU platform code
> - Enhance the DT to allow MADT generation from DT
> ---
> arch/arm/Kconfig | 1 +
> arch/arm/dts/qemu-sbsa.dts | 49 ++
> arch/arm/include/asm/arch-qemu-sbsa/boot0.h | 33 ++
> arch/arm/mach-qemu/Kconfig | 36 +-
> board/emulation/qemu-arm/MAINTAINERS | 2 +
> board/emulation/qemu-sbsa/Kconfig | 58 ++
> board/emulation/qemu-sbsa/Makefile | 8 +
> board/emulation/qemu-sbsa/acpi.c | 197 +++++++
> board/emulation/qemu-sbsa/dsdt.asl | 483 ++++++++++++++++
> board/emulation/qemu-sbsa/lowlevel_init.S | 22 +
> board/emulation/qemu-sbsa/qemu-sbsa.c | 602 ++++++++++++++++++++
> board/emulation/qemu-sbsa/qemu-sbsa.env | 14 +
> board/emulation/qemu-sbsa/qemu-sbsa.h | 38 ++
> board/emulation/qemu-sbsa/smc.c | 72 +++
> configs/qemu-arm-sbsa_defconfig | 10 +
> doc/board/emulation/index.rst | 1 +
> doc/board/emulation/qemu-sbsa.rst | 98 ++++
> doc/develop/driver-model/virtio.rst | 1 +
> include/configs/qemu-sbsa.h | 104 ++++
> 19 files changed, 1823 insertions(+), 6 deletions(-)
> create mode 100644 arch/arm/dts/qemu-sbsa.dts
> create mode 100644 arch/arm/include/asm/arch-qemu-sbsa/boot0.h
> create mode 100644 board/emulation/qemu-sbsa/Kconfig
> create mode 100644 board/emulation/qemu-sbsa/Makefile
> create mode 100644 board/emulation/qemu-sbsa/acpi.c
> create mode 100644 board/emulation/qemu-sbsa/dsdt.asl
> create mode 100644 board/emulation/qemu-sbsa/lowlevel_init.S
> create mode 100644 board/emulation/qemu-sbsa/qemu-sbsa.c
> create mode 100644 board/emulation/qemu-sbsa/qemu-sbsa.env
> create mode 100644 board/emulation/qemu-sbsa/qemu-sbsa.h
> create mode 100644 board/emulation/qemu-sbsa/smc.c
> create mode 100644 configs/qemu-arm-sbsa_defconfig
> create mode 100644 doc/board/emulation/qemu-sbsa.rst
> create mode 100644 include/configs/qemu-sbsa.h
This is quite strange. Why not use the correct DT with the required properties?
Please use lower-case hex.
Can you not use the ofnode API?
Regards,
Simon
More information about the U-Boot
mailing list