From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by mx.groups.io with SMTP id smtpd.web11.12773.1675214319746476391 for ; Tue, 31 Jan 2023 17:18:40 -0800 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=S9T7E7uK; spf=pass (domain: intel.com, ip: 134.134.136.20, mailfrom: min.m.xu@intel.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1675214319; x=1706750319; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=yfldW+9wn/K1zDu9RR8MuvGTmwSYo53XYO7Yzch5AS8=; b=S9T7E7uKU/tE1sso+IodF6XAYSzMDs6fzsNzkuRgK6Z/kuqoY5ArcW+h kXE5iea4V/ntS5d17TP4cdeXDf5yAEetciCVvF/UZKmL2qCNsBIWI4RGY olRRu3MCqt+4TVi661NrIQkU/cP+XCa3HtZDIVxtDwbeWqAjlzZXe4uj/ VEBMYak8IdG2jPrOGnqhylK4utVmQP7O6y8fDu1peubiyG9yUaVUcuNge HA5o5cJ8H128LRtI3sslN/kHXXWtUj2W3xUgnC3JCbQT0S/07fh5rmDAR 7IQaecrGZcKqkwlhm51C1wCwHG+Skg+N2umm1k/bJ8mn3Y9Idns4MTx1/ w==; X-IronPort-AV: E=McAfee;i="6500,9779,10607"; a="315979436" X-IronPort-AV: E=Sophos;i="5.97,263,1669104000"; d="scan'208";a="315979436" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 31 Jan 2023 17:18:39 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10607"; a="658109883" X-IronPort-AV: E=Sophos;i="5.97,263,1669104000"; d="scan'208";a="658109883" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orsmga007.jf.intel.com with ESMTP; 31 Jan 2023 17:18:39 -0800 Received: from orsmsx610.amr.corp.intel.com (10.22.229.23) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Tue, 31 Jan 2023 17:18:38 -0800 Received: from ORSEDG602.ED.cps.intel.com (10.7.248.7) by orsmsx610.amr.corp.intel.com (10.22.229.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16 via Frontend Transport; Tue, 31 Jan 2023 17:18:38 -0800 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.177) by edgegateway.intel.com (134.134.137.103) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.16; Tue, 31 Jan 2023 17:18:38 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nUjo+6NTr+GY3ufFqCogm3kLkduGMjMgI0vEGgnw5avF5iNUQktnN1jHwqF0BESEhN/HLqxdexqYZdytNjMNlyUKSWgTPzn3gFu4reCooHCGXBc7sHNls4Qlu7pycqhA69iaq91k32nvuYL4TG2gHpaaOQVGXCePj5Znx20jMBp7yqMfgUqJ4IWrTlASvySCv7MouRYS9HMSauMUweiAp5G99x2T0wqWFcj0xIwTYKlICvwrE7UkscJxgM5NlwlsOtkgsmLQyxtogNJqXZKNYuMeKeF+vfa+qPBiO/IKIEM2w4DiW5n4+SN7Jvmq5D2FTUWAuqFhVhtnlDWiHt/nSg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=5ylKN1pr6z80TpNALStDhHmZb60kC4Bj0ZuYLUIlU60=; b=Q9j8AMB60iARmZz+HXtawH1KDQuys3Rl/pgwMHlw2DQeJ1OAn2c6+Fj4PWNCyjAZiEsqDQE0bEs9uQhfW3ldu3IggHug3hS0Ee6e97jmrd9Bji74FxuZH6RXdxwbk0ngbbDJcQG+3L/Km90x2q49hRuJ3L1BE46+HybyBUY5+1xn3Emw/Z6awPlkVTwYRKpiVnMx7wmlk65eh3/qjzk4DpVeLe1S7He/tdACpF8HCoKItX24CeDXLY2V52zdafv75D5FcEBp8N6PS+8q2Xz3H0nB7hEJ30SVeLpvowV7pvxypEXeOjwIwEjjRP7I2s2fimc00uEaDZ5k86DQrGGawA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from PH0PR11MB5064.namprd11.prod.outlook.com (2603:10b6:510:3b::15) by SA0PR11MB4592.namprd11.prod.outlook.com (2603:10b6:806:98::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6043.38; Wed, 1 Feb 2023 01:18:30 +0000 Received: from PH0PR11MB5064.namprd11.prod.outlook.com ([fe80::f651:2dbf:6364:99d0]) by PH0PR11MB5064.namprd11.prod.outlook.com ([fe80::f651:2dbf:6364:99d0%4]) with mapi id 15.20.6064.022; Wed, 1 Feb 2023 01:18:29 +0000 From: "Min Xu" To: Gerd Hoffmann CC: "Aktas, Erdem" , James Bottomley , "Yao, Jiewen" , Tom Lendacky , Michael Roth , "devel@edk2.groups.io" Subject: Re: [edk2-devel] [PATCH V5 00/13] Enable Tdx measurement in OvmfPkgX64 Thread-Topic: [edk2-devel] [PATCH V5 00/13] Enable Tdx measurement in OvmfPkgX64 Thread-Index: AQHZMyC2a6FsywA+m0CFHl64PxQMsa65T2zA Date: Wed, 1 Feb 2023 01:18:29 +0000 Message-ID: References: <173E7DB72E2722B9.17319@groups.io> In-Reply-To: <173E7DB72E2722B9.17319@groups.io> Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: PH0PR11MB5064:EE_|SA0PR11MB4592:EE_ x-ms-office365-filtering-correlation-id: 431a5350-eec5-4fe6-bc65-08db03f23a4a x-ld-processed: 46c98d88-e344-4ed4-8496-4ed7712e255d,ExtAddr x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 5D8/PKFfH6jdrqNnv8EpP2v0qbrLhcy2iALfP9Pfy/9EygjWOkI10/Iu56Rz3mrhQuyP0psowiVng3qns3p+srO8o5eNxSrDuWQdWmmt80oWUar+5j/O4MxyFpj4VNvz+qB6O6JeWTrWUZk0be7bpj5XsJ/P+1baHgQ/cNJAHCFWhckXcYVl9omFB8nP2KX578Uvc2R9cxJqtwYsxh/xpfwDKxgBLZETqYnI5TzRd2+m8296WwXZr8j5f5ymZ1puW3jeT4vIU1ru5BhJlS8LjLEGKRXT8XZiU14pa1bV3IQxIhF2yKWMsMPTK3+8w8uXKlZ3vOCtumupnOa/Be0Y6+RjCdSVyr1XePHQ3coGdVVoQ51RZC3AkE+7gnByI2dqBDeBEfD/SWtsux3VMLt7chTIx+AGskFfLNR26y4eTMwYlcY9liG/jf2xmbb3HWsO32k4loCMmG4eUVeP5DDnZ8YX7h71qwPoqyzxW6HL3ytt4frUsM6e4w3zKJy39b7N+z+iFM8Wk1t+pGkL0HkEItD5tgUu0ivoLLaj0rNmH+TAH9R/GWBE4DmzW4mibz01qVVXd5Fbf6V5DrpRPwxnMtRblZuLoly5pLe9fBxu7LfjqPNPgMI74FTbL6FGcBa1TIko8fKuPdHlsVbthGlPfUX4zac5w11BEhTnDr4zM1W8z3LE2YCCWTus3XALHs4/r9z6ZTnJAeINr8OUhBN9yZztc9FEr8KrNWcv6eHO2yDTH4JBNmqAhEdZpgno6UUNMhh9L7sq4YseuWH+jpClHw== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:PH0PR11MB5064.namprd11.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(366004)(39860400002)(136003)(396003)(346002)(376002)(451199018)(66899018)(2906002)(8936002)(8676002)(6916009)(38100700002)(4326008)(478600001)(186003)(966005)(5660300002)(33656002)(7696005)(9686003)(26005)(55016003)(38070700005)(52536014)(71200400001)(53546011)(86362001)(41300700001)(6506007)(82960400001)(83380400001)(122000001)(66446008)(66556008)(66476007)(76116006)(66946007)(64756008)(19627235002)(316002)(54906003);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?ZWFCWXgRSE/6q3ra4rGpYj510TlLgj7I+Fs+uTw0rnljKvkG3hUHfpIJ7MsM?= =?us-ascii?Q?hPktag7wPqsL8WPTYBc9H5gY5kf2CEWcmbhKTaKrersJJP67Ucyae47pCCGw?= =?us-ascii?Q?O1RBRiCNyGuGCo0kZ9MbqWxwk64mGdh6dbUtgracG4jC5b7hRcSJftgHhZpY?= =?us-ascii?Q?80s2y7Vj2XPDZpTXVbzrdcCnGJy+gumzo7kixJvnCerEvczieLbuxM7hnR/q?= =?us-ascii?Q?5gB8kenn7HNoLb6lCLQyYV2pmkVw4RkyCCzsJQ2a5t4qhmmOa6t37qugFEEC?= =?us-ascii?Q?AIw50VYm5CHrdNp4t7ZNBAvg3zTKt/SRpY97ngkuxVUvNgt/7aUGNmBVdNtB?= =?us-ascii?Q?2zV9xZBpyDPSlQtAc2DGY5ZxMmPWUv7NLdzaMZxjrAs3JC61ry35gM6C9l6C?= =?us-ascii?Q?XZa+NiO7OfmkmhCQQPaqgsa92moxiJ3RRrIjz/U4mxkWIBPlvC3DEEpD3/SR?= =?us-ascii?Q?NB/W6L0It98Emu4oGuCUoUmzqigQJeenSd+W5NxYbjq1VBuGP0DayrDPjmZW?= =?us-ascii?Q?/jXOYDdOgU+mUaj0oHiv8xQ0TWTsEq6kp4dtBrUZ06lCcWL7O6oGPbXUsbtF?= =?us-ascii?Q?mhztORz8/M6Bkn7BUhAfe3VBVFZ+xW14HilboXrPhFIA/aIAi6WogsYkjqWd?= =?us-ascii?Q?NSNY4wQWQh9zAp1nOLOJ9Z3GvNc+mdraonHCxdKIsq2VhsaBI/uZsk7ZD6tg?= =?us-ascii?Q?gx4rpVTPCyKR5Cfpls6CUUyOV4JMcvvoFt66J9kF7DQE0UydCugDIHxU64Kb?= =?us-ascii?Q?NsaWo6/Fpme+xPlnSbeGPHh70JwPDMobiws0pRNGiin+Qu7USH4f5cVrpS5y?= =?us-ascii?Q?T9DNCTNsVHOcJRJvfeY4oMm5ih9zn6v1vZEJ9AAs2u15cjURfrcAORpF5Qtf?= =?us-ascii?Q?4tBQmNW0aP35UyWFu6TLCzJ56WU7FE+JzPmhci344iOhhvpINrhp188AJGxV?= =?us-ascii?Q?H11VuCzNdoQ+lrcnzKHtX0WhrJmHQnBronJk7KjVvYMrgjgSvxOIzhEYS6FO?= =?us-ascii?Q?rvIGnsJ6oper8PeQCdnIMKwdsPFsfZj0Zhwusr+YG5Dqwk4z5YaRAFU+tzg4?= =?us-ascii?Q?lzYVTz37YYozbPEV37Cm+cHMtzVV7fVvwkyFPVS7S6k8WGdK+4qpto8tcAEX?= =?us-ascii?Q?/tsaDFEQWb7bCrcGhT7RcekYWquOGLdu6PMOb31X60gTp5PmcrlXVzpUHLFM?= =?us-ascii?Q?xZFK2PD2iTEkqV1x6ftVFSzhnS8yUTA9m7Dge4uh4FmDJGpMGvhqRuQxq1+A?= =?us-ascii?Q?eb7lnGANvi0B05fncgGLkG7YcpcrQXnsqcHWPz89bYmS56gpMYM7Wc5s9uUD?= =?us-ascii?Q?8mkppNw0eMuZRhRH3uyvXQD2KLTb5mgc5xpmVd6ig1eoVMNJQYdG0Cn2A97G?= =?us-ascii?Q?OnQNe7THURN4Fr0FCFFy9NmcvhVFm+KcNK/G+0izzGj8TasV6tXRU5SM2jTl?= =?us-ascii?Q?vUQI/BwI9BbSGBYTWupZmTyHAld1gTiDuIR4R61CZmpBRrU1AyFt/3UepJ4b?= =?us-ascii?Q?Ab0QauWGJG3q8EhuZ2AMcAldj/W186xeRq4tgY+zSscYNhjf6EHaRjteR+py?= =?us-ascii?Q?5s2606L9ROb+1L+Go2IqGJLA/TJR1KhNMNF5WFT6?= MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: PH0PR11MB5064.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 431a5350-eec5-4fe6-bc65-08db03f23a4a X-MS-Exchange-CrossTenant-originalarrivaltime: 01 Feb 2023 01:18:29.7377 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: M9ViZ0nWc47sBXdVBDVIEdJjWwwRJmcPsezqvysJaBU80XGUJGrGfUwrIQCv77DoGc1tD+lORtIdmDHabBJq8Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR11MB4592 Return-Path: min.m.xu@intel.com X-OriginatorOrg: intel.com Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi, Gerd This patch-set (v5) has re-organized the patches based on https://edk2.grou= ps.io/g/devel/message/99209 Do you have some comments? Thanks Min > -----Original Message----- > From: devel@edk2.groups.io On Behalf Of Min Xu > Sent: Saturday, January 28, 2023 9:58 PM > To: devel@edk2.groups.io > Cc: Xu, Min M ; Aktas, Erdem > ; James Bottomley ; Yao, > Jiewen ; Gerd Hoffmann ; Tom > Lendacky ; Michael Roth > > Subject: [edk2-devel] [PATCH V5 00/13] Enable Tdx measurement in > OvmfPkgX64 >=20 > BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3D4243 >=20 > Tdx measurement (RTMR based measurement) is enabled in OvmfPkg/IntelTdx. > This patch-set enables the feature in OvmfPkgX64 as well. >=20 > Patch #1: > Introduce TDX_MEASUREMETNS_DATA in SEC_TDX_WORK_AREA. That is > because > the RTMR measurement of TdHob and Configuration FV (CFV) are executed > in very early stage of boot process. At that time the memory service is > not ready and the measurement values have to be stored in OvmfWorkArea. >=20 > Patch #2: > Introduce TdxHelperLibNull which is the NULL instance of TdxHelperLib. >=20 > Patch #3: > Introduce SecTdxHelperLib which is the instance of TdxHelperLib for SEC > Phase. This patch adds the stubs of TdxHelperLib functions. The actual > implementation are in the following patches. >=20 > Patch #4: > Re-use the data struct of PLATFORM_FIRMWARE_BLOB2_STRUCT for > FV_HANDOFF_TABLE_POINTERS2. >=20 > Patch #5-7: > These 3 patches move the functions ( which were implemented in > PeilessStartupLib and PlatformInitLib ) to TdxHelperLib. So that they > can be called in both OvmfPkgX64 and IntelTdxX64. >=20 > Patch #8/9: > These 2 patches are the changes for tdx measurement in IntelTdxX64. >=20 > Patch #10-13: > These 4 patches are the changes for OvmfPkgX64 to enable Tdx > measurement. >=20 > Code: https://github.com/mxu9/edk2/tree/TdxMeasurementInOvmfX64.v5 >=20 > v5 changes: > - Re-organize the patches. Its purpose is not only to simplify review, b= ut also > to simplify testing. https://edk2.groups.io/g/devel/message/99209 >=20 > v4 changes: > - To make the code reviewable, the implementation of > TdxHelperBuildGuidHobForTdxMeasurement is split into 4 patches (5-8). > - Call Sha384HashAll instead of the 3 Sha384XXX functions so that we > need to allocate memory in SEC phase. >=20 > v3 changes: > - Use the definition of PLATFORM_FIRMWARE_BLOB2_STRUCT in > Library/TcgEventLogRecordLib.h. > - Rename TDX_ENABLE as TDX_MEASUREMENT_ENABLE because this flag is > introduced for Tdx-measurement. > - Split the patch of SecTdxHelperLib into 2 separate patches (#3/#9). > Patch#3 implements TdxHelperMeasureTdHob and > TdxHelperMeasureCfvImage. > Patch#9 implements TdxHelperProcessTdHob. This is to make the patches > more reviewable. The duplicated codes of TdxHelperProcessTdHob are > deleted in Patch#9 as well. > - The implementation of TdxHelperBuildGuidHobForTdxMeasurement and > update > of PeilessStartupLib are in one patch (#5). Because the implmentation > of TdxHelperBuildGuidHobForTdxMeasurement was once in PeilessStartupLi= b. >=20 > v2 changes: > - Split the patch of TdxHelperLib into 4 separate patches. So that it is > more reviewable. > - Add commit message in Patch#1 to emphasize that the tdx-measurement in > OvmfPkgX64 is supported in SEC phase. >=20 > Cc: Erdem Aktas > Cc: James Bottomley > Cc: Jiewen Yao > Cc: Gerd Hoffmann > Cc: Tom Lendacky > Cc: Michael Roth > Signed-off-by: Min Xu >=20 > Min M Xu (13): > OvmfPkg: Add Tdx measurement data structure in WorkArea > OvmfPkg/IntelTdx: Add TdxHelperLibNull > OvmfPkg/IntelTdx: Add SecTdxHelperLib > OvmfPkg/PeilessStartupLib: Update the define of > FV_HANDOFF_TABLE_POINTERS2 > OvmfPkg: Refactor MeasureHobList > OvmfPkg: Refactor MeaureFvImage > OvmfPkg: Refactor ProcessHobList > OvmfPkg/IntelTdx: Measure TdHob and Configuration FV in SecMain > OvmfPkg/PeilessStartupLib: Delete the duplicated tdx measurement > OvmfPkg/IntelTdx: Add PeiTdxHelperLib > OvmfPkg/OvmfPkgX64: Measure TdHob and Configuration FV in SecMain > OvmfPkg/PlatformPei: Build GuidHob for Tdx measurement > OvmfPkg: Support Tdx measurement in OvmfPkgX64 >=20 > OvmfPkg/AmdSev/AmdSevX64.dsc | 5 +- > OvmfPkg/CloudHv/CloudHvX64.dsc | 5 +- > OvmfPkg/Include/Dsc/OvmfTpmLibs.dsc.inc | 10 +- > .../Include/Dsc/OvmfTpmSecurityStub.dsc.inc | 8 + > OvmfPkg/Include/Library/PlatformInitLib.h | 17 - > OvmfPkg/Include/Library/TdxHelperLib.h | 70 ++ > OvmfPkg/Include/WorkArea.h | 25 +- > OvmfPkg/IntelTdx/IntelTdxX64.dsc | 4 +- > OvmfPkg/IntelTdx/Sec/SecMain.c | 17 +- > OvmfPkg/IntelTdx/TdxHelperLib/PeiTdxHelper.c | 91 > +++ .../IntelTdx/TdxHelperLib/PeiTdxHelperLib.inf | 48 ++ > .../TdxHelperLib/SecTdxHelper.c} | 304 +++---- > .../IntelTdx/TdxHelperLib/SecTdxHelperLib.inf | 53 ++ > .../TdxHelperLib/TdxHelperLibNull.inf | 32 + > OvmfPkg/IntelTdx/TdxHelperLib/TdxHelperNull.c | 79 > ++ .../IntelTdx/TdxHelperLib/TdxMeasurementHob.c | 259 ++++++ > OvmfPkg/Library/PeilessStartupLib/IntelTdx.c | 196 ----- > .../PeilessStartupLib/PeilessStartup.c | 16 +- > .../PeilessStartupInternal.h | 36 - > .../PeilessStartupLib/PeilessStartupLib.inf | 6 - > OvmfPkg/Library/PlatformInitLib/IntelTdx.c | 768 ------------------ > .../Library/PlatformInitLib/IntelTdxNull.c | 20 - > .../PlatformInitLib/PlatformInitLib.inf | 1 - > OvmfPkg/Microvm/MicrovmX64.dsc | 5 +- > OvmfPkg/OvmfPkg.dec | 4 + > OvmfPkg/OvmfPkgX64.dsc | 20 +- > OvmfPkg/OvmfPkgX64.fdf | 7 + > OvmfPkg/PlatformPei/IntelTdx.c | 3 + > OvmfPkg/Sec/SecMain.c | 17 +- > 29 files changed, 915 insertions(+), 1211 deletions(-) create mode 1006= 44 > OvmfPkg/Include/Library/TdxHelperLib.h > create mode 100644 OvmfPkg/IntelTdx/TdxHelperLib/PeiTdxHelper.c > create mode 100644 OvmfPkg/IntelTdx/TdxHelperLib/PeiTdxHelperLib.inf > copy OvmfPkg/{Library/PlatformInitLib/IntelTdx.c =3D> > IntelTdx/TdxHelperLib/SecTdxHelper.c} (80%) create mode 100644 > OvmfPkg/IntelTdx/TdxHelperLib/SecTdxHelperLib.inf > create mode 100644 OvmfPkg/IntelTdx/TdxHelperLib/TdxHelperLibNull.inf > create mode 100644 OvmfPkg/IntelTdx/TdxHelperLib/TdxHelperNull.c > create mode 100644 OvmfPkg/IntelTdx/TdxHelperLib/TdxMeasurementHob.c > delete mode 100644 OvmfPkg/Library/PeilessStartupLib/IntelTdx.c >=20 > -- > 2.29.2.windows.2 >=20 >=20 >=20 >=20 >=20