Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/2217066/?format=api
{ "id": 2217066, "url": "http://patchwork.ozlabs.org/api/patches/2217066/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260327160132.2946114-9-yilun.xu@linux.intel.com/", "project": { "id": 28, "url": "http://patchwork.ozlabs.org/api/projects/28/?format=api", "name": "Linux PCI development", "link_name": "linux-pci", "list_id": "linux-pci.vger.kernel.org", "list_email": "linux-pci@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20260327160132.2946114-9-yilun.xu@linux.intel.com>", "list_archive_url": null, "date": "2026-03-27T16:01:09", "name": "[v2,08/31] x86/virt/tdx: Configure TDX Module with optional TDX Connect feature", "commit_ref": null, "pull_url": null, "state": "new", "archived": false, "hash": "d8c79ec404f62eacee7ec2e2b8ccf41268986f19", "submitter": { "id": 87470, "url": "http://patchwork.ozlabs.org/api/people/87470/?format=api", "name": "Xu Yilun", "email": "yilun.xu@linux.intel.com" }, "delegate": null, "mbox": "http://patchwork.ozlabs.org/project/linux-pci/patch/20260327160132.2946114-9-yilun.xu@linux.intel.com/mbox/", "series": [ { "id": 497793, "url": "http://patchwork.ozlabs.org/api/series/497793/?format=api", "web_url": "http://patchwork.ozlabs.org/project/linux-pci/list/?series=497793", "date": "2026-03-27T16:01:02", "name": "PCI/TSM: PCIe Link Encryption Establishment via TDX platform services", "version": 2, "mbox": "http://patchwork.ozlabs.org/series/497793/mbox/" } ], "comments": "http://patchwork.ozlabs.org/api/patches/2217066/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/2217066/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "\n <linux-pci+bounces-51294-incoming=patchwork.ozlabs.org@vger.kernel.org>", "X-Original-To": [ "incoming@patchwork.ozlabs.org", "linux-pci@vger.kernel.org" ], "Delivered-To": "patchwork-incoming@legolas.ozlabs.org", "Authentication-Results": [ "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256\n header.s=Intel header.b=CSqrof3q;\n\tdkim-atps=neutral", "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org\n (client-ip=2600:3c15:e001:75::12fc:5321; helo=sin.lore.kernel.org;\n envelope-from=linux-pci+bounces-51294-incoming=patchwork.ozlabs.org@vger.kernel.org;\n receiver=patchwork.ozlabs.org)", "smtp.subspace.kernel.org;\n\tdkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com\n header.b=\"CSqrof3q\"", "smtp.subspace.kernel.org;\n arc=none smtp.client-ip=198.175.65.14", "smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=linux.intel.com", "smtp.subspace.kernel.org;\n spf=pass smtp.mailfrom=linux.intel.com" ], "Received": [ "from sin.lore.kernel.org (sin.lore.kernel.org\n [IPv6:2600:3c15:e001:75::12fc:5321])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4fj5sj5KlYz1xy1\n\tfor <incoming@patchwork.ozlabs.org>; Sat, 28 Mar 2026 03:37:45 +1100 (AEDT)", "from smtp.subspace.kernel.org (conduit.subspace.kernel.org\n [100.90.174.1])\n\tby sin.lore.kernel.org (Postfix) with ESMTP id 953FB30891E5\n\tfor <incoming@patchwork.ozlabs.org>; Fri, 27 Mar 2026 16:24:48 +0000 (UTC)", "from localhost.localdomain (localhost.localdomain [127.0.0.1])\n\tby smtp.subspace.kernel.org (Postfix) with ESMTP id 75F82366078;\n\tFri, 27 Mar 2026 16:23:04 +0000 (UTC)", "from mgamail.intel.com (mgamail.intel.com [198.175.65.14])\n\t(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby smtp.subspace.kernel.org (Postfix) with ESMTPS id 2FF38365A1E;\n\tFri, 27 Mar 2026 16:23:03 +0000 (UTC)", "from fmviesa006.fm.intel.com ([10.60.135.146])\n by orvoesa106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 27 Mar 2026 09:23:02 -0700", "from yilunxu-optiplex-7050.sh.intel.com ([10.239.159.165])\n by fmviesa006.fm.intel.com with ESMTP; 27 Mar 2026 09:22:59 -0700" ], "ARC-Seal": "i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;\n\tt=1774628584; cv=none;\n b=bBpoRAoryFvQFaiqqUr1QFltHHL9Dl44PRxQSO54BPfB3i1HVQ3h+5sp+An/YqIEYnsITmVdcXvXHQVDHi7mHWgmq97Efr+4LWhk6pzsoTlBwIPCNIUbTfsCCAF66pJT0qNyASVL2SPwD6+nrK99v86CPk2HCB9wrZH79HDT23g=", "ARC-Message-Signature": "i=1; a=rsa-sha256; d=subspace.kernel.org;\n\ts=arc-20240116; t=1774628584; c=relaxed/simple;\n\tbh=+upVX1QhrFrQr7GIQbke+fYKEB7JHU6Rc+v4ck+/2sY=;\n\th=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References:\n\t MIME-Version;\n b=e7awGkxi2Bkhn+CZeH+e66EWyKuOsV6V8eQTh08X/F5UFbnF1YnrfmcnPf8YWdbJsL2Szgv9fCsx7XTqTw77jFyMN4vHbFEzDtdmHgfLryRkUuYytyDxNk5lDfLAMlwmWMpKqP7r2A6mg0TAX4fJ7YXZxxSSDbbwHeugGrDYXe8=", "ARC-Authentication-Results": "i=1; smtp.subspace.kernel.org;\n dmarc=pass (p=none dis=none) header.from=linux.intel.com;\n spf=pass smtp.mailfrom=linux.intel.com;\n dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com\n header.b=CSqrof3q; arc=none smtp.client-ip=198.175.65.14", "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1774628582; x=1806164582;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=+upVX1QhrFrQr7GIQbke+fYKEB7JHU6Rc+v4ck+/2sY=;\n b=CSqrof3qt4U36Q4bMYlQieKvGiWw+WSG1K3GWfzKck0PLWLEy83bxjZi\n 4mXLEZ0NGLxDzIHqEKnqp4BHVZwc0JnL2Zc8SkOzSX1FYurIl3axX4jcx\n pw1SmpeFTMZzOh1YC61Ut9AMza/K/h7QmcpyveyF4u8RIAHmIpBKhRImi\n vy4SqDoID3DX3h3KOVJ7V/CFCys0lCsXlfSf2sAhFh5IcQcIPlspvQ3nQ\n QiirgGZdl7PdjNEvNJZ8HgSgc8B3+xBZYD+uCvaDgSejIv/JZlT66mWdJ\n qeF26rJxllJGbChLyf6je5jSzFGJfOXooMUhuB1SGmHiyyepPHOEQWno3\n g==;", "X-CSE-ConnectionGUID": [ "VUYPf1NURwCI8XuqBA1RyA==", "cpJeYFmcQWeJ6DZdIYULlQ==" ], "X-CSE-MsgGUID": [ "FvcqTJ9wRt++0LXqIWcnSw==", "na2u/tGSRk2g87aLLo8LJQ==" ], "X-IronPort-AV": [ "E=McAfee;i=\"6800,10657,11741\"; a=\"79565535\"", "E=Sophos;i=\"6.23,144,1770624000\";\n d=\"scan'208\";a=\"79565535\"", "E=Sophos;i=\"6.23,144,1770624000\";\n d=\"scan'208\";a=\"220516164\"" ], "X-ExtLoop1": "1", "From": "Xu Yilun <yilun.xu@linux.intel.com>", "To": "linux-coco@lists.linux.dev,\n\tlinux-pci@vger.kernel.org,\n\tdan.j.williams@intel.com,\n\tx86@kernel.org", "Cc": "chao.gao@intel.com,\n\tdave.jiang@intel.com,\n\tbaolu.lu@linux.intel.com,\n\tyilun.xu@linux.intel.com,\n\tyilun.xu@intel.com,\n\tzhenzhong.duan@intel.com,\n\tkvm@vger.kernel.org,\n\trick.p.edgecombe@intel.com,\n\tdave.hansen@linux.intel.com,\n\tkas@kernel.org,\n\txiaoyao.li@intel.com,\n\tvishal.l.verma@intel.com,\n\tlinux-kernel@vger.kernel.org", "Subject": "[PATCH v2 08/31] x86/virt/tdx: Configure TDX Module with optional TDX\n Connect feature", "Date": "Sat, 28 Mar 2026 00:01:09 +0800", "Message-Id": "<20260327160132.2946114-9-yilun.xu@linux.intel.com>", "X-Mailer": "git-send-email 2.25.1", "In-Reply-To": "<20260327160132.2946114-1-yilun.xu@linux.intel.com>", "References": "<20260327160132.2946114-1-yilun.xu@linux.intel.com>", "Precedence": "bulk", "X-Mailing-List": "linux-pci@vger.kernel.org", "List-Id": "<linux-pci.vger.kernel.org>", "List-Subscribe": "<mailto:linux-pci+subscribe@vger.kernel.org>", "List-Unsubscribe": "<mailto:linux-pci+unsubscribe@vger.kernel.org>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit" }, "content": "TDX Module supports optional TDX features (e.g. TDX Connect & TDX Module\nExtensions) that won't be enabled by default. It extends TDH.SYS.CONFIG\nfor host to choose to enable them on bootup.\n\nCall TDH.SYS.CONFIG with a new bitmap input parameter to specify which\nfeatures to enable. The bitmap uses the same definitions as\nTDX_FEATURES0. But note not all bits in TDX_FEATURES0 are valid for\nconfiguration, e.g. TDX Module Extensions is a service that supports TDX\nConnect, it is implicitly enabled when TDX Connect is enabled. Setting\nTDX_FEATURES0_EXT in the bitmap has no effect.\n\nTDX Module advances the version of TDH.SYS.CONFIG for the change, so\nuse the latest version (v1) for optional feature enabling. But\nsupporting existing Modules which only support v0 is still necessary\nuntil they are deprecated, enumerate via TDX_FEATURES0 to decide which\nversion to use.\n\nTDX Module updates global metadata when optional features are enabled.\nHost should update the cached tdx_sysinfo to reflect these changes.\n\nCo-developed-by: Zhenzhong Duan <zhenzhong.duan@intel.com>\nSigned-off-by: Zhenzhong Duan <zhenzhong.duan@intel.com>\nSigned-off-by: Xu Yilun <yilun.xu@linux.intel.com>\n---\n arch/x86/virt/vmx/tdx/tdx.h | 3 ++-\n arch/x86/virt/vmx/tdx/tdx.c | 16 +++++++++++++++-\n 2 files changed, 17 insertions(+), 2 deletions(-)", "diff": "diff --git a/arch/x86/virt/vmx/tdx/tdx.h b/arch/x86/virt/vmx/tdx/tdx.h\nindex e5a9331df451..870bb75da3ba 100644\n--- a/arch/x86/virt/vmx/tdx/tdx.h\n+++ b/arch/x86/virt/vmx/tdx/tdx.h\n@@ -58,7 +58,8 @@\n #define TDH_PHYMEM_CACHE_WB\t\t40\n #define TDH_PHYMEM_PAGE_WBINVD\t\t41\n #define TDH_VP_WR\t\t\t43\n-#define TDH_SYS_CONFIG\t\t\t45\n+#define TDH_SYS_CONFIG_V0\t\t45\n+#define TDH_SYS_CONFIG\t\t\tSEAMCALL_LEAF_VER(TDH_SYS_CONFIG_V0, 1)\n \n /* TDX page types */\n #define\tPT_NDA\t\t0x0\ndiff --git a/arch/x86/virt/vmx/tdx/tdx.c b/arch/x86/virt/vmx/tdx/tdx.c\nindex 130214933c2f..0c5d6bdd810f 100644\n--- a/arch/x86/virt/vmx/tdx/tdx.c\n+++ b/arch/x86/virt/vmx/tdx/tdx.c\n@@ -1353,6 +1353,7 @@ static int construct_tdmrs(struct list_head *tmb_list,\n static int config_tdx_module(struct tdmr_info_list *tdmr_list, u64 global_keyid)\n {\n \tstruct tdx_module_args args = {};\n+\tu64 seamcall_fn = TDH_SYS_CONFIG_V0;\n \tu64 *tdmr_pa_array;\n \tsize_t array_sz;\n \tint i, ret;\n@@ -1377,7 +1378,15 @@ static int config_tdx_module(struct tdmr_info_list *tdmr_list, u64 global_keyid)\n \targs.rcx = __pa(tdmr_pa_array);\n \targs.rdx = tdmr_list->nr_consumed_tdmrs;\n \targs.r8 = global_keyid;\n-\tret = seamcall_prerr(TDH_SYS_CONFIG, &args);\n+\n+\tif (tdx_sysinfo.features.tdx_features0 & TDX_FEATURES0_TDXCONNECT) {\n+\t\targs.r9 |= TDX_FEATURES0_TDXCONNECT;\n+\t\targs.r11 = ktime_get_real_seconds();\n+\t\t/* These parameters requires version >= 1 */\n+\t\tseamcall_fn = TDH_SYS_CONFIG;\n+\t}\n+\n+\tret = seamcall_prerr(seamcall_fn, &args);\n \n \t/* Free the array as it is not required anymore. */\n \tkfree(tdmr_pa_array);\n@@ -1537,6 +1546,11 @@ static int init_tdx_module(void)\n \tif (ret)\n \t\tgoto err_free_pamts;\n \n+\t/* configuration to tdx module may change tdx_sysinfo, update it */\n+\tret = get_tdx_sys_info(&tdx_sysinfo);\n+\tif (ret)\n+\t\tgoto err_reset_pamts;\n+\n \t/* Config the key of global KeyID on all packages */\n \tret = config_global_keyid();\n \tif (ret)\n", "prefixes": [ "v2", "08/31" ] }