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
--
2.17.1