public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Christian Ludwig <christian_ludwig@genua.de>
To: <pve-devel@lists.proxmox.com>, <-b@genua.de>, <cludwig@genua.de>
Subject: [PATCH storage/qemu 0/13]: Custom UEFI firmware in PVE
Date: Mon, 17 Aug 2026 11:29:19 +0200	[thread overview]
Message-ID: <e9670c8e-1101-4591-9534-09217632176b@pc43.vpn.genua.de> (raw)

[-- Attachment #1: Type: text/plain, Size: 1126 bytes --]

Hi,

this series brings initial support for custom UEFI firmware to PVE.
This is useful for confidential computing workloads, where VMs may
bring their own firmware and not rely on the hypervisor's. There is
also some other software around that ships it's own VM firmware. The
firmware needs to be compatible to KVM/Qemu, of course. See the design
discussion earlier at [1].

The first part of the series brings a new storage content type for EFI
firmware, which can be set on directory-based storage. There is no
restriction on the actual firmware file's name.

The second part brings new 'efi-firmware' VM config key allows Qemu to
use a file from a storage with that new content type, instead of the
default firmware. To reduce complexity, this only works with bios=ovmf.

This feature is only configurable from the API. The GUI parts were left
out on purpose. I am unsure how much we want/need to expose there in the
first place.

We have tested this with custom UEFI firmware in AMD SEV/SNP
confidential VMs.


 - Christian

[1] https://lore.proxmox.com/pve-devel/10513e3f2c0d94bc938a540b4a0a18749eb5ed96.camel@genua.de/

WARNING: multiple messages have this Message-ID (diff)
From: Christian Ludwig <christian_ludwig@genua.de>
To: <pve-devel@lists.proxmox.com>
Subject: [PATCH storage/qemu 0/13]: Custom UEFI firmware in PVE
Date: Mon, 17 Aug 2026 13:59:19 +0200	[thread overview]
Message-ID: <e9670c8e-1101-4591-9534-09217632176b@pc43.vpn.genua.de> (raw)
Message-ID: <20260817115919.abQyMsVBJeHupthBjG6HbiJWe2o8RfIy9CmAttembto@z> (raw)

[-- Attachment #1: Type: text/plain, Size: 1126 bytes --]

Hi,

this series brings initial support for custom UEFI firmware to PVE.
This is useful for confidential computing workloads, where VMs may
bring their own firmware and not rely on the hypervisor's. There is
also some other software around that ships it's own VM firmware. The
firmware needs to be compatible to KVM/Qemu, of course. See the design
discussion earlier at [1].

The first part of the series brings a new storage content type for EFI
firmware, which can be set on directory-based storage. There is no
restriction on the actual firmware file's name.

The second part brings new 'efi-firmware' VM config key allows Qemu to
use a file from a storage with that new content type, instead of the
default firmware. To reduce complexity, this only works with bios=ovmf.

This feature is only configurable from the API. The GUI parts were left
out on purpose. I am unsure how much we want/need to expose there in the
first place.

We have tested this with custom UEFI firmware in AMD SEV/SNP
confidential VMs.


 - Christian

[1] https://lore.proxmox.com/pve-devel/10513e3f2c0d94bc938a540b4a0a18749eb5ed96.camel@genua.de/

             reply	other threads:[~2026-08-17  9:36 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-17  9:29 Christian Ludwig [this message]
2026-08-17  9:29 ` [PATCH pve-storage 1/13] Add efi-firmware content type Christian Ludwig
2026-08-17  9:29 ` [PATCH pve-storage 2/13] Test for " Christian Ludwig
2026-08-17  9:29 ` [PATCH pve-storage 3/13] Allow efi-firmware in file-based storage Christian Ludwig
2026-08-17  9:29 ` [PATCH pve-storage 4/13] Extend storage API endpoints for efi-firmware Christian Ludwig
2026-08-17  9:29 ` [PATCH pve-storage 5/13] Volume access check test " Christian Ludwig
2026-08-17  9:29 ` [PATCH pve-storage 6/13] efi-firmware storage path to volume conversion test Christian Ludwig
2026-08-17  9:29 ` [PATCH qemu-server 07/13] Add efi-firmware key to VM config schema Christian Ludwig
2026-08-17  9:29 ` [PATCH qemu-server 08/13] Add efi-firmware support to the API Christian Ludwig
2026-08-17  9:29 ` [PATCH qemu-server 09/13] Generate efi-firmware Qemu command line Christian Ludwig
2026-08-17  9:29 ` [PATCH qemu-server 10/13] test: efi-firmware key in VM config Christian Ludwig
2026-08-17  9:29 ` [PATCH qemu-server 11/13] test: efi-firmware volumes replication Christian Ludwig
2026-08-17  9:29 ` [PATCH pve-docs 12/13] pvesm: Document efi-firmware content type Christian Ludwig
2026-08-17  9:29 ` [PATCH pve-docs 13/13] qm: Document efi-firmware VM option Christian Ludwig
2026-08-17 11:59 ` [PATCH storage/qemu 0/13]: Custom UEFI firmware in PVE Christian Ludwig
2026-08-17 11:59 ` [PATCH pve-storage 1/13] Add efi-firmware content type Christian Ludwig
2026-08-17 11:59 ` [PATCH pve-storage 2/13] Test for " Christian Ludwig
2026-08-17 11:59 ` [PATCH pve-storage 3/13] Allow efi-firmware in file-based storage Christian Ludwig
2026-08-17 11:59 ` [PATCH pve-storage 4/13] Extend storage API endpoints for efi-firmware Christian Ludwig
2026-08-17 11:59 ` [PATCH pve-storage 5/13] Volume access check test " Christian Ludwig
2026-08-17 11:59 ` [PATCH pve-storage 6/13] efi-firmware storage path to volume conversion test Christian Ludwig
2026-08-17 11:59 ` [PATCH qemu-server 07/13] Add efi-firmware key to VM config schema Christian Ludwig
2026-08-17 11:59 ` [PATCH qemu-server 08/13] Add efi-firmware support to the API Christian Ludwig
2026-08-17 11:59 ` [PATCH qemu-server 09/13] Generate efi-firmware Qemu command line Christian Ludwig
2026-08-17 11:59 ` [PATCH qemu-server 10/13] test: efi-firmware key in VM config Christian Ludwig
2026-08-17 11:59 ` [PATCH qemu-server 11/13] test: efi-firmware volumes replication Christian Ludwig
2026-08-17 11:59 ` [PATCH pve-docs 12/13] pvesm: Document efi-firmware content type Christian Ludwig
2026-08-17 11:59 ` [PATCH pve-docs 13/13] qm: Document efi-firmware VM option Christian Ludwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=e9670c8e-1101-4591-9534-09217632176b@pc43.vpn.genua.de \
    --to=christian_ludwig@genua.de \
    --cc=-b@genua.de \
    --cc=cludwig@genua.de \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal