* [PATCH docs/manager v2 0/3] ui: docs: add reference to vm options protection/IDX/SEV
@ 2026-07-13 11:19 Elias Huhsovitz
2026-07-13 11:19 ` [PATCH docs v2 1/3] qm_memory: update dead links in qm_memory_encryption_sev section on AMD SEV Elias Huhsovitz
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Elias Huhsovitz @ 2026-07-13 11:19 UTC (permalink / raw)
To: pve-devel; +Cc: Elias Huhsovitz
This series addresses bug #6211 by improving the documentation and UI
help links for 2 VM options regarding memory security. Specifically,
it corrects the documentation links for AMD SEV and Intel TDX and
creates a doc entry for Intel TDX.
Because the UI changes require corresponding documentation updates,
this series is split across two repositories:
pve-docs:
- Adds a new documentation section for Intel TDX.
- Fixes dead links in the existing AMD SEV documentation section.
pve-manager:
- Updates the AMD SEV and Intel TDX dialogs to point to the correct
memory encryption documentation anchors.
This requires first applying patch 2/3 to pve-docs and bumping it, so
pve-manager can pick up the new documentation chapter when being built.
changes v1->v2:
- Remove changes for ambiguous protection field in GUI
and submit them as a separate patch
- fix typos in TDX documentation
- fix docs for "qm set <vmid>" command in tdx section.
- fix commit message subject (was previously cut off)
pve-docs:
Elias Huhsovitz (2):
qm_memory: update dead links in qm_memory_encryption_sev section on
AMD SEV
qm_memory: expand qm_memory_encryption documentation to include Intel
TDX
qm.adoc | 168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 file changed, 164 insertions(+), 4 deletions(-)
pve-manager:
Elias Huhsovitz (1):
fix #6211: ui: vm: options: update amd-sev and intel-tdx help links
www/manager6/qemu/SevEdit.js | 2 +-
www/manager6/qemu/TdxEdit.js | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
Summary over all repositories:
3 files changed, 166 insertions(+), 6 deletions(-)
--
Generated by murpp 0.12.0
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH docs v2 1/3] qm_memory: update dead links in qm_memory_encryption_sev section on AMD SEV
2026-07-13 11:19 [PATCH docs/manager v2 0/3] ui: docs: add reference to vm options protection/IDX/SEV Elias Huhsovitz
@ 2026-07-13 11:19 ` Elias Huhsovitz
2026-07-13 11:19 ` [PATCH docs v2 2/3] qm_memory: expand qm_memory_encryption documentation to include Intel TDX Elias Huhsovitz
2026-07-13 11:19 ` [PATCH manager v2 3/3] fix #6211: ui: vm: options: update amd-sev and intel-tdx help links Elias Huhsovitz
2 siblings, 0 replies; 4+ messages in thread
From: Elias Huhsovitz @ 2026-07-13 11:19 UTC (permalink / raw)
To: pve-devel; +Cc: Elias Huhsovitz
The section on AMD SEV included dead links.
Replace dead links with up-to-date working links.
Signed-off-by: Elias Huhsovitz <e.huhsovitz@proxmox.com>
---
qm.adoc | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/qm.adoc b/qm.adoc
index 96ba68b..8213758 100644
--- a/qm.adoc
+++ b/qm.adoc
@@ -922,10 +922,9 @@ Links:
* https://developer.amd.com/sev/
* https://github.com/AMDESE/AMDSEV
* https://www.qemu.org/docs/master/system/i386/amd-memory-encryption.html
-* https://www.amd.com/system/files/TechDocs/55766_SEV-KM_API_Specification.pdf
-* https://documentation.suse.com/sles/15-SP1/html/SLES-amd-sev/index.html
-* https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/specifications/56860.pdf[
-SEV Secure Nested Paging Firmware ABI Specification]
+* https://docs.amd.com/v/u/en-US/55766_PUB_3.24_SEV_API
+* https://documentation.suse.com/sles/15-SP7/single-html/SLES-amd-sev/article-amd-sev.html
+* https://www.amd.com/content/dam/amd/en/documents/developer/56860.pdf[SEV Secure Nested Paging Firmware ABI Specification]
[[qm_network_device]]
Network Device
--
2.47.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH docs v2 2/3] qm_memory: expand qm_memory_encryption documentation to include Intel TDX
2026-07-13 11:19 [PATCH docs/manager v2 0/3] ui: docs: add reference to vm options protection/IDX/SEV Elias Huhsovitz
2026-07-13 11:19 ` [PATCH docs v2 1/3] qm_memory: update dead links in qm_memory_encryption_sev section on AMD SEV Elias Huhsovitz
@ 2026-07-13 11:19 ` Elias Huhsovitz
2026-07-13 11:19 ` [PATCH manager v2 3/3] fix #6211: ui: vm: options: update amd-sev and intel-tdx help links Elias Huhsovitz
2 siblings, 0 replies; 4+ messages in thread
From: Elias Huhsovitz @ 2026-07-13 11:19 UTC (permalink / raw)
To: pve-devel; +Cc: Elias Huhsovitz
The pve-manager provides a help-button in the Intel TDX edit window, but
there was no documentation regarding this.
Now includes basic information about Intel Trust Domain Extensions
(TDX).
Signed-off-by: Elias Huhsovitz <e.huhsovitz@proxmox.com>
---
qm.adoc | 161 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 161 insertions(+)
diff --git a/qm.adoc b/qm.adoc
index 8213758..0e5c4d2 100644
--- a/qm.adoc
+++ b/qm.adoc
@@ -926,6 +926,167 @@ Links:
* https://documentation.suse.com/sles/15-SP7/single-html/SLES-amd-sev/article-amd-sev.html
* https://www.amd.com/content/dam/amd/en/documents/developer/56860.pdf[SEV Secure Nested Paging Firmware ABI Specification]
+[[qm_memory_encryption_tdx]]
+Intel TDX
+^^^^^^^^^
+
+Intel Trust Domain Extensions (TDX) protect guest VM memory and CPU state
+from the host hypervisor. TDX uses Intel Multi-Key Total Memory Encryption
+(MKTME) to provide per-VM memory encryption and introduces a CPU-isolated
+module that manages the creation and execution of protected VMs (called Trust
+Domains, or TDs).
+
+*Host Requirements*
+
+* 4th Generation Intel Xeon Scalable processor (Codename: Sapphire Rapids)
+ or newer. TDX is a hardware feature introduced with Sapphire Rapids and is
+ not available on earlier Xeon generations.
+ See https://www.intel.com/content/www/us/en/support/articles/000091103/processors/intel-xeon-processors.html[Intel — Xeon processors with TDX support].
+* Enable TDX in the BIOS/UEFI settings. The kernel assumes the TDX module
+ is loaded by the BIOS at boot.
+ See https://docs.kernel.org/arch/x86/tdx.html#tdx-host-kernel-support[TDX host kernel support].
+* A host kernel with TDX support. The kernel detects TDX via TDX
+ private KeyIDs configured by the BIOS during https://docs.kernel.org/arch/x86/tdx.html#tdx-boot-time-detection[early boot].
+
+*Notes*
+
+* Add `nohibernate` to the kernel command line if hibernation support is
+ compiled in. TDX cannot survive S3 (suspend-to-RAM) or S4 (hibernation)
+ power states — the hardware resets and disables TDX completely when the
+ platform enters these states.
+ See https://docs.kernel.org/arch/x86/tdx.html#interaction-vs-s3-and-deeper-states[Interaction vs S3 and deeper states].
+* TDX module initialization
+ https://docs.kernel.org/arch/x86/tdx.html#tdx-module-initialization[consumes approximately 1/256th of system RAM] for
+ the Physical Address Metadata Table (PAMT).
+* The TDX module is initialized https://docs.kernel.org/arch/x86/tdx.html#tdx-module-initialization[on demand] (when the first TDX guest is
+ created), not at boot time.
+
+*Verify Intel TDX is Enabled on Host*
+
+To https://docs.kernel.org/arch/x86/tdx.html#tdx-boot-time-detection[check if TDX is enabled on the host], search for `tdx` in `dmesg`.
+If the BIOS has enabled TDX and the TDX module was successfully initialized,
+the output should look like this:
+
+----
+# dmesg | grep -i tdx
+[...] virt/tdx: BIOS enabled: private KeyID range [64, 128)
+[...] virt/tdx: 1050644 KB allocated for PAMT
+[...] virt/tdx: module initialized
+----
+
+If the TDX module is not loaded by the BIOS, dmesg will show:
+
+----
+[...] virt/tdx: module not loaded
+----
+
+If TDX initialization fails because hibernation is enabled in the kernel:
+
+----
+[...] virt/tdx: initialization failed: Hibernation support is enabled
+----
+
+The current TDX module version can be https://docs.kernel.org/arch/x86/tdx.html#how-to-update-the-tdx-module[checked at runtime]:
+
+----
+# cat /sys/devices/faux/tdx_host/version
+----
++
+(If this path does not exist, the TDX module has not been initialized yet.)
+
+*Guest Requirements*
+
+* https://www.qemu.org/docs/master/system/i386/tdx.html#trust-domain-virtual-firmware-tdvf[Trust Domain Virtual Firmware (TDVF)].
+ TDVF is a TDX-enabled build of OVMF
+ that provides TD services to boot the guest OS. Standard OVMF without TDX
+ support cannot be used. TDVF is loaded via the `-bios` option because TDX
+ does not support readonly memslots, so TDVF cannot be mapped as a pflash
+ device.
+* The guest operating system must contain https://docs.kernel.org/arch/x86/tdx.html#tdx-guest-support[TDX guest support].
+ For Linux, this
+ means a kernel with TDX guest support enabled, which sets up a #VE
+ (Virtualization Exception) handler and shared-memory infrastructure at
+ boot.
+* The `kernel-irqchip` must be set to `split`. QEMU sets this
+ https://www.qemu.org/docs/master/system/i386/tdx.html#restrictions[automatically]
+ when launching a TDX guest if the setting is left on its default `auto`
+ value.
+* * The *q35* machine model is recommended.
+
+*Limitations*
+
+* Windows guests are not supported.
+ See https://pve.proxmox.com/wiki/Roadmap[Proxmox VE Roadmap].
+* Live migration is currently unsupported.
+ See https://www.qemu.org/docs/master/system/i386/tdx.html#live-migration[QEMU — Live Migration] and https://pve.proxmox.com/wiki/Roadmap[PVE Roadmap].
+* PCI passthrough to TDX guests is limited. Device MMIO regions and DMA
+ buffers are mapped as shared memory, which means the hypervisor controls
+ their content. Shared memory must never be used for sensitive data.
+ See https://docs.kernel.org/arch/x86/tdx.html#ve-on-memory-accesses[#VE on Memory Accesses],
+ https://docs.kernel.org/arch/x86/tdx.html#shared-memory-conversions[Shared Memory Conversions],
+ https://intel.github.io/ccc-linux-guest-hardening-docs/security-spec.html[Intel TDX Guest Kernel Security Specification].
+* S3 (suspend-to-RAM) and hibernation (S4) are not supported on the host
+ when TDX is enabled.
+ See https://docs.kernel.org/arch/x86/tdx.html#interaction-vs-s3-and-deeper-states[Interaction vs S3 and deeper states].
+* Physical https://docs.kernel.org/arch/x86/tdx.html#cpu-hotplug[CPU Hotplug (ACPI)] is not supported when TDX is enabled. Logical
+ CPU online/offline is supported.
+* https://www.qemu.org/docs/master/system/i386/tdx.html#restrictions[No SMM support].
+ TDX does not allow the hypervisor to manipulate guest
+ register states, which SMM requires.
+* https://www.qemu.org/docs/master/system/i386/tdx.html#restrictions[No readonly support for private memory].
+
+*Example Configuration*
+
+----
+# qm set <vmid> --intel-tdx type=tdx,attestation=0,vsock-cid=2,vsock-port=4050
+----
+
+The *type* defines the TDX mode. Currently, `tdx` is the only available option.
+
+The *attestation* is used to verify the TDX guest trustworthiness to other entities before provisioning secrets to the guest.
+Note that full TD attestation support is currently a work in progress.
+See the https://www.qemu.org/docs/master/system/i386/tdx.html#td-attestation[QEMU TD attestation documentation].
+
+The *vsock-cid* and *vsock-port* parameters define the vsock connection details to the Quote Generation Service (QGS), which is required for the attestation process.
+
+This enables Intel TDX for the specified VM. Proxmox configures QEMU to create
+a TDX guest by instantiating the `tdx-guest` object and setting the
+`confidential-guest-support` machine property.
+See https://www.qemu.org/docs/master/system/i386/tdx.html#launching-a-td-tdx-vm[Launching a TD].
+
+The VM must also use a TDVF-enabled firmware image.
+See https://www.qemu.org/docs/master/system/i386/tdx.html#trust-domain-virtual-firmware-tdvf[Trust Domain Virtual Firmware].
+
+The QEMU TDX guest object supports configurable attributes via a raw 64-bit
+field. The most relevant bit is `DEBUG` (bit 0), which enables off-TD debug mode
+and allows the hypervisor to inspect TD state. Debug mode should only be
+enabled for development and troubleshooting, as it reduces the security
+guarantees of the TD. See the
+https://www.qemu.org/docs/master/system/i386/tdx.html#td-attributes[TD attributes documentation].
+for details on configurable TDX attributes.
+
+*Verify TDX in the VM*
+
+The `dmesg` output footnote:[Ubuntu TDX guide https://github.com/canonical/tdx/blob/3.3/README.md#7-verify-td] should look similar to this:
+
+----
+# dmesg | grep -i tdx
+[...] tdx: Guest detected
+[...] DMI: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 2023.05-2+tdx1.0~ubuntu23.10.1 10/17/2023
+[...] process: using TDX aware idle routine
+[...] Memory Encryption Features active: Intel TDX
+----
+
+Links:
+
+* https://www.intel.com/content/www/us/en/developer/tools/trust-domain-extensions/documentation.html[Intel TDX documentation]
+* https://www.qemu.org/docs/master/system/i386/tdx.html[QEMU Intel TDX]
+* https://docs.kernel.org/virt/kvm/x86/intel-tdx.html[Linux Kernel Documentation - KVM Intel TDX]
+* https://docs.kernel.org/arch/x86/tdx.html[Linux Kernel Documentation - x86 TDX]
+* https://intel.github.io/ccc-linux-guest-hardening-docs/security-spec.html[Intel Trust Domain Extension Linux Guest Kernel Security Specification]
+* https://www.intel.com/content/www/us/en/support/articles/000091103/processors/intel-xeon-processors.html[What Intel® Xeon Processors Support for Intel® Trust Domain Extensions (Intel® TDX)?]
+* https://www.intel.com/content/www/us/en/developer/articles/technical/tdx-performance-analysis-reference-documentation.html[Intel Trust Domain Extensions (Intel® TDX) Performance Analysis Reference Documentation]
+
[[qm_network_device]]
Network Device
~~~~~~~~~~~~~~
--
2.47.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH manager v2 3/3] fix #6211: ui: vm: options: update amd-sev and intel-tdx help links
2026-07-13 11:19 [PATCH docs/manager v2 0/3] ui: docs: add reference to vm options protection/IDX/SEV Elias Huhsovitz
2026-07-13 11:19 ` [PATCH docs v2 1/3] qm_memory: update dead links in qm_memory_encryption_sev section on AMD SEV Elias Huhsovitz
2026-07-13 11:19 ` [PATCH docs v2 2/3] qm_memory: expand qm_memory_encryption documentation to include Intel TDX Elias Huhsovitz
@ 2026-07-13 11:19 ` Elias Huhsovitz
2 siblings, 0 replies; 4+ messages in thread
From: Elias Huhsovitz @ 2026-07-13 11:19 UTC (permalink / raw)
To: pve-devel; +Cc: Elias Huhsovitz
The help buttons in the AMD SEV and Intel TDX dialos were pointing to
the general memory documentation.
Update the links to use the correct documentation anchors
Signed-off-by: Elias Huhsovitz <e.huhsovitz@proxmox.com>
---
www/manager6/qemu/SevEdit.js | 2 +-
www/manager6/qemu/TdxEdit.js | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/www/manager6/qemu/SevEdit.js b/www/manager6/qemu/SevEdit.js
index 44db34bd..c308b3ab 100644
--- a/www/manager6/qemu/SevEdit.js
+++ b/www/manager6/qemu/SevEdit.js
@@ -2,7 +2,7 @@ Ext.define('PVE.qemu.SevInputPanel', {
extend: 'Proxmox.panel.InputPanel',
xtype: 'pveSevInputPanel',
- onlineHelp: 'qm_memory', // TODO: change to 'qm_memory_encryption' one available
+ onlineHelp: 'qm_memory_encryption_sev',
viewModel: {
data: {
diff --git a/www/manager6/qemu/TdxEdit.js b/www/manager6/qemu/TdxEdit.js
index c1f990a9..38948a6c 100644
--- a/www/manager6/qemu/TdxEdit.js
+++ b/www/manager6/qemu/TdxEdit.js
@@ -2,7 +2,7 @@ Ext.define('PVE.qemu.TdxInputPanel', {
extend: 'Proxmox.panel.InputPanel',
xtype: 'pveTdxInputPanel',
- onlineHelp: 'qm_memory', // TODO: change to 'qm_memory_encryption' one available
+ onlineHelp: 'qm_memory_encryption_tdx',
viewModel: {
data: {
--
2.47.3
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-07-13 11:21 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-13 11:19 [PATCH docs/manager v2 0/3] ui: docs: add reference to vm options protection/IDX/SEV Elias Huhsovitz
2026-07-13 11:19 ` [PATCH docs v2 1/3] qm_memory: update dead links in qm_memory_encryption_sev section on AMD SEV Elias Huhsovitz
2026-07-13 11:19 ` [PATCH docs v2 2/3] qm_memory: expand qm_memory_encryption documentation to include Intel TDX Elias Huhsovitz
2026-07-13 11:19 ` [PATCH manager v2 3/3] fix #6211: ui: vm: options: update amd-sev and intel-tdx help links Elias Huhsovitz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox