On Thu, 23 Nov 2023 at 16:02, Gerd Hoffmann <kraxel@redhat.com> wrote:
>
> This is the edk2 side of the qemu patch series posted last week to
> qemu-devel:
> https://lists.gnu.org/archive/html/qemu-devel/2023-11/msg03714.html
>
> The driver forwards MM calls to the virtualization host instead of the
> MM code running in SMM (x64) or el3 (arm) mode. The functionality
> traditionally implemented by the SMM code is provided by qemu instead.
>
> This allows to provide persistent variable support without an
> (virtual) flash device and it also allows to support secure
> boot without depending on SMM or el3 emulation support in the
> hypervisor.
>
I like this a lot - not only for QEMU + OVMF/ArmVirt, but also for
other VM firmware projects (I am working on a minimal UEFI
implementation in Rust for ArmVirt, and variable support is much
easier to implement using this paravirt interface)
> Gerd Hoffmann (7):
> OvmfPkg: add IndustryStandard/QemuUefiVars.h
> OvmfPkg: add new VirtMmCommunicationDxe driver
> OvmfPkg/OvmfPkgX64: add QEMU_VARS option
> OvmfPkg: add PcdQemuVarsRequire
> OvmfPkg/VirtMmCommunicationDxe: stop on init failure
> OvmfPkg/VirtMmCommunicationDxe: add arm support
> ArmVirtPkg/ArmVirtQemu: add QEMU_VARS option
>
> OvmfPkg/OvmfPkg.dec | 3 +
> ArmVirtPkg/ArmVirt.dsc.inc | 3 +
> ArmVirtPkg/ArmVirtQemu.dsc | 11 +
> ArmVirtPkg/ArmVirtQemuKernel.dsc | 11 +
> OvmfPkg/OvmfPkgX64.dsc | 17 +-
> OvmfPkg/OvmfPkgX64.fdf | 12 +-
> OvmfPkg/PlatformPei/PlatformPei.inf | 1 +
> .../VirtMmCommunication.inf | 67 +++
> .../Include/IndustryStandard/QemuUefiVars.h | 41 ++
> .../VirtMmCommunication.h | 37 ++
> OvmfPkg/PlatformPei/Platform.c | 4 +
> OvmfPkg/VirtMmCommunicationDxe/QemuFdt.c | 208 ++++++++++
> OvmfPkg/VirtMmCommunicationDxe/QemuX64.c | 106 +++++
> .../VirtMmCommunication.c | 390 ++++++++++++++++++
> ArmVirtPkg/ArmVirtQemuFvMain.fdf.inc | 5 +
> 15 files changed, 914 insertions(+), 2 deletions(-)
> create mode 100644 OvmfPkg/VirtMmCommunicationDxe/VirtMmCommunication.inf
> create mode 100644 OvmfPkg/Include/IndustryStandard/QemuUefiVars.h
> create mode 100644 OvmfPkg/VirtMmCommunicationDxe/VirtMmCommunication.h
> create mode 100644 OvmfPkg/VirtMmCommunicationDxe/QemuFdt.c
> create mode 100644 OvmfPkg/VirtMmCommunicationDxe/QemuX64.c
> create mode 100644 OvmfPkg/VirtMmCommunicationDxe/VirtMmCommunication.c
>
> --
> 2.42.0
>
>
>
>
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#111800): https://edk2.groups.io/g/devel/message/111800
Mute This Topic: https://groups.io/mt/102767943/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-