mbox series

[Linaro-uefi,RFC,0/1] SBSAQemu UEFI initial implementation

Message ID 20190814175737.23120-1-radoslaw.biernacki@linaro.org
Headers show
Series SBSAQemu UEFI initial implementation | expand

Message

Radoslaw Biernacki Aug. 14, 2019, 5:57 p.m. UTC
This is RFC for UEFI implementation for new machine based on Qemu Virt which is
faithful as possible to real hardware. In opposition to existing Qemu Virt
machine which is suited for performing workloads, the purpose of this machine
is development of firmware and OS for AARCH64 server alike platforms (like in
situation where real HW is not available yet or the debugging is easier to
control under emulation).  The SBSAQemu name, was chosen because the modeled HW
is aimed to follow way that server-style armv8 machines are recommended to be
set up.

Support for Sbsa-ref machine was added into Qemu in v4.1.0
Implementation does not use fw-cfg nor DT provided by Qemu.
The ATF part is curently under review:
https://review.trustedfirmware.org/c/TF-A/trusted-firmware-a/+/1568/1
The compilation of edk2-platforms is described under:
Platform/Qemu/SbsaQemu/Readme.md

This patch is provided as presentation for progress, not functional UEFI
implementation. You cannot boot system at current state.
To mention just few missing features:
 - Qemu <-> ATF <-> UEFI communication channel for dynamic parameters like DRAM size
 - Related dynamic initialization in UEFI is for now with static PCD's
 - ACPI platform driver
 - SMBIOS Support

Please provide feedback which might be helpfull for future development.

Radoslaw Biernacki (1):
  SbsaQemu: EFI implementation for SbsaQemu platform

 Silicon/Qemu/SbsaQemuPkg.dec                  |  45 ++
 Platform/Qemu/SbsaQemu/SbsaQemu.dsc           | 744 ++++++++++++++++++
 Platform/Qemu/SbsaQemu/SbsaQemu.fdf           | 328 ++++++++
 .../SbsaQemuPlatformDxe.inf                   |  48 ++
 .../Qemu/Library/SbsaQemuLib/SbsaQemuLib.inf  |  53 ++
 .../SbsaQemuNorFlashLib.inf                   |  35 +
 .../SbsaQemuPciHostBridgeLib.inf              |  55 ++
 .../SbsaQemuPlatformDxe/SbsaQemuPlatformDxe.c |  61 ++
 .../Qemu/Library/SbsaQemuLib/SbsaQemuLib.c    | 148 ++++
 .../Qemu/Library/SbsaQemuLib/SbsaQemuMem.c    | 109 +++
 .../SbsaQemuNorFlashLib/SbsaQemuNorFlashLib.c |  46 ++
 .../SbsaQemuPciHostBridgeLib.c                | 224 ++++++
 Maintainers.txt                               |  12 +
 Platform/Qemu/SbsaQemu/Readme.md              | 162 ++++
 Readme.md                                     |   3 +
 .../Qemu/Library/SbsaQemuLib/SbsaQemuHelper.S |  62 ++
 16 files changed, 2135 insertions(+)
 create mode 100644 Silicon/Qemu/SbsaQemuPkg.dec
 create mode 100644 Platform/Qemu/SbsaQemu/SbsaQemu.dsc
 create mode 100644 Platform/Qemu/SbsaQemu/SbsaQemu.fdf
 create mode 100644 Silicon/Qemu/Drivers/SbsaQemuPlatformDxe/SbsaQemuPlatformDxe.inf
 create mode 100644 Silicon/Qemu/Library/SbsaQemuLib/SbsaQemuLib.inf
 create mode 100644 Silicon/Qemu/Library/SbsaQemuNorFlashLib/SbsaQemuNorFlashLib.inf
 create mode 100644 Silicon/Qemu/Library/SbsaQemuPciHostBridgeLib/SbsaQemuPciHostBridgeLib.inf
 create mode 100644 Silicon/Qemu/Drivers/SbsaQemuPlatformDxe/SbsaQemuPlatformDxe.c
 create mode 100644 Silicon/Qemu/Library/SbsaQemuLib/SbsaQemuLib.c
 create mode 100644 Silicon/Qemu/Library/SbsaQemuLib/SbsaQemuMem.c
 create mode 100644 Silicon/Qemu/Library/SbsaQemuNorFlashLib/SbsaQemuNorFlashLib.c
 create mode 100644 Silicon/Qemu/Library/SbsaQemuPciHostBridgeLib/SbsaQemuPciHostBridgeLib.c
 create mode 100644 Platform/Qemu/SbsaQemu/Readme.md
 create mode 100644 Silicon/Qemu/Library/SbsaQemuLib/SbsaQemuHelper.S