[edk2-devel] [PATCH 0/7] Add VirtMmCommunication driver, enable for OVMF and ArmVirt.

Gerd Hoffmann posted 7 patches 5 months, 1 week ago
Failed in applying to current master (apply log)
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
[edk2-devel] [PATCH 0/7] Add VirtMmCommunication driver, enable for OVMF and ArmVirt.
Posted by Gerd Hoffmann 5 months, 1 week ago
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.

take care,
  Gerd

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 (#111684): https://edk2.groups.io/g/devel/message/111684
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]
-=-=-=-=-=-=-=-=-=-=-=-
Re: [edk2-devel] [PATCH 0/7] Add VirtMmCommunication driver, enable for OVMF and ArmVirt.
Posted by Ard Biesheuvel 5 months ago
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]
-=-=-=-=-=-=-=-=-=-=-=-