public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: Anton Iacobaeus <anton.iacobaeus@canarybit.eu>
To: pve-devel@lists.proxmox.com
Cc: Philipp Giersfeld <philipp.giersfeld@canarybit.eu>
Subject: [pve-devel] [PATCH manager v3 1/2] Add support for Intel TDX
Date: Tue, 28 Oct 2025 13:54:26 +0100	[thread overview]
Message-ID: <20251028125459.287308-5-anton.iacobaeus@canarybit.eu> (raw)
In-Reply-To: <20251028125459.287308-1-anton.iacobaeus@canarybit.eu>

From: Philipp Giersfeld <philipp.giersfeld@canarybit.eu>

This commit adds suppport to enable Intel TDX for a VM similar to AMD
SEV.

Signed-off-by: Philipp Giersfeld <philipp.giersfeld@canarybit.eu>
Signed-off-by: Anton Iacobaeus <anton.iacobaeus@canarybit.eu>
---
 www/manager6/Makefile        |  1 +
 www/manager6/qemu/Options.js | 12 +++++
 www/manager6/qemu/TdxEdit.js | 93 ++++++++++++++++++++++++++++++++++++
 3 files changed, 106 insertions(+)
 create mode 100644 www/manager6/qemu/TdxEdit.js

diff --git a/www/manager6/Makefile b/www/manager6/Makefile
index 85f9268d..af9baa68 100644
--- a/www/manager6/Makefile
+++ b/www/manager6/Makefile
@@ -275,6 +275,7 @@ JSSRC= 							\
 	qemu/SevEdit.js					\
 	qemu/Smbios1Edit.js				\
 	qemu/SystemEdit.js				\
+	qemu/TdxEdit.js					\
 	qemu/USBEdit.js					\
 	qemu/VirtiofsEdit.js				\
 	sdn/Browser.js					\
diff --git a/www/manager6/qemu/Options.js b/www/manager6/qemu/Options.js
index 6fe96fe2..e40fb4a3 100644
--- a/www/manager6/qemu/Options.js
+++ b/www/manager6/qemu/Options.js
@@ -386,6 +386,18 @@ Ext.define('PVE.qemu.Options', {
                     return value;
                 },
             },
+            'intel-tdx': {
+                header: gettext('Intel TDX'),
+                editor: caps.vms['VM.Config.HWType'] ? 'PVE.qemu.TdxEdit' : undefined,
+                defaultValue: Proxmox.Utils.defaultText + ' (' + Proxmox.Utils.disabledText + ')',
+                renderer: function (value, metaData, record, ri, ci, store, pending) {
+                    let intel_tdx = PVE.Parser.parsePropertyString(value, 'type');
+                    if (intel_tdx.type === 'tdx') {
+                        return 'Intel (' + value + ')';
+                    }
+                    return value;
+                },
+            },
             hookscript: {
                 header: gettext('Hookscript'),
             },
diff --git a/www/manager6/qemu/TdxEdit.js b/www/manager6/qemu/TdxEdit.js
new file mode 100644
index 00000000..3f43bf7a
--- /dev/null
+++ b/www/manager6/qemu/TdxEdit.js
@@ -0,0 +1,93 @@
+Ext.define('PVE.qemu.TdxInputPanel', {
+    extend: 'Proxmox.panel.InputPanel',
+    xtype: 'pveTdxInputPanel',
+
+    onlineHelp: 'qm_memory', // TODO: change to 'qm_memory_encryption' one available
+
+    viewModel: {
+        data: {
+            type: '__default__',
+        },
+        formulas: {
+            tdxEnabled: (get) => get('type') === 'tdx',
+        },
+    },
+
+    onGetValues: function (values) {
+        if (values.delete === 'type') {
+            values.delete = 'intel-tdx';
+            return values;
+        }
+        let ret = {};
+        ret['intel-tdx'] = PVE.Parser.printPropertyString(values, 'type');
+        return ret;
+    },
+
+    setValues: function (values) {
+        this.callParent(arguments);
+    },
+
+    items: [
+        {
+            xtype: 'proxmoxKVComboBox',
+            fieldLabel: gettext('Intel TDX Type'),
+            labelWidth: 150,
+            name: 'type',
+            value: '__default__',
+            comboItems: [
+                [
+                    '__default__',
+                    Proxmox.Utils.defaultText + ' (' + Proxmox.Utils.disabledText + ')',
+                ],
+                ['tdx', 'Intel TDX'],
+            ],
+            bind: {
+                value: '{type}',
+            },
+        },
+        {
+            xtype: 'displayfield',
+            userCls: 'pmx-hint',
+            value: gettext('WARNING: When using Intel TDX no EFI disk is loaded as pflash.'),
+            bind: {
+                hidden: '{!tdxEnabled}',
+            },
+        },
+        {
+            xtype: 'displayfield',
+            userCls: 'pmx-hint',
+            value: gettext('Note: Intel TDX requires host kernel version 6.16 or higher.'),
+            bind: {
+                hidden: '{!tdxEnabled}',
+            },
+        },
+    ],
+
+    advancedItems: [],
+});
+
+Ext.define('PVE.qemu.TdxEdit', {
+    extend: 'Proxmox.window.Edit',
+
+    subject: 'Intel Trust Domain Extension (TDX)',
+
+    items: {
+        xtype: 'pveTdxInputPanel',
+    },
+
+    width: 400,
+
+    initComponent: function () {
+        let me = this;
+
+        me.callParent();
+
+        me.load({
+            success: function (response) {
+                let conf = response.result.data;
+                let intel_tdx = conf['intel-tdx'] || '__default__';
+                me.setValues(PVE.Parser.parsePropertyString(intel_tdx, 'type'));
+            },
+        });
+    },
+});
-- 
2.43.0

_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


  parent reply	other threads:[~2025-10-28 12:56 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-10-28 12:54 [pve-devel] [PATCH edk2-firmware/manager/qemu-server v3 0/9] " Anton Iacobaeus
2025-10-28 12:54 ` [pve-devel] [PATCH edk2-firmware v3 1/3] Change name of SEV-related OVMF files Anton Iacobaeus
2025-10-28 12:54 ` [pve-devel] [PATCH edk2-firmware v3 2/3] Add firmware target for TDFV Anton Iacobaeus
2025-10-28 12:54 ` [pve-devel] [PATCH edk2-firmware v3 3/3] Add SCSI in NCCFV for TD guest Anton Iacobaeus
2025-10-28 12:54 ` Anton Iacobaeus [this message]
2025-10-28 12:54 ` [pve-devel] [PATCH manager v3 2/2] Add support for TDX attestation Anton Iacobaeus
2025-10-28 12:54 ` [pve-devel] [PATCH qemu-server v3 1/4] Adapt AMD SEV code for compatibility with other platforms Anton Iacobaeus
2025-10-28 12:54 ` [pve-devel] [PATCH qemu-server v3 2/4] Add check for TDX support Anton Iacobaeus
2025-10-28 12:54 ` [pve-devel] [PATCH qemu-server v3 3/4] Add support for Intel TDX Anton Iacobaeus
2025-10-28 12:54 ` [pve-devel] [PATCH qemu-server v3 4/4] Add support for TDX quote-generation-socket object Anton Iacobaeus

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=20251028125459.287308-5-anton.iacobaeus@canarybit.eu \
    --to=anton.iacobaeus@canarybit.eu \
    --cc=philipp.giersfeld@canarybit.eu \
    --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