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.web12.12068.1651761816591790482 for ; Thu, 05 May 2022 07:43:37 -0700 Authentication-Results: mx.groups.io; dkim=fail reason="unable to parse pub key" header.i=@intel.com header.s=intel header.b=BLm6j4hK; 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=1651761817; x=1683297817; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=QPZlF0octVfkStUrvdmWPcpfHF4WLAU0ImEHvq1rI8M=; b=BLm6j4hK0mLu13tBTZisZ2o+AU2hFyywzQJRek5lAD1fmJLH1PLOkkL0 DhIYFCsxjkTOqYwb82GrKWbrKYcWWR5k5FFKA+ROBa+agWlJUpLO2elfO gghq4voM6W/dlPTaHNszHK17mJ7cnL5k5t95MyZkKO52uVTqLi2xeZ0bB dCgVjYzY9P8z8wV+ndgC2xVpOEWYw6HC2c/gcSeO3lJk0axyXaC/8y07o JZwFdT3ZdmXI0dZg9lJ3NzDrDEGUowvzAhf+Xo3nyfJFkP0QucYuYgtE0 6dN0ixXyPTgXaFOePaUda/P/Y9OolmbFTESDhPq3N4rB2dklOjKK3X5S/ A==; X-IronPort-AV: E=McAfee;i="6400,9594,10338"; a="255604270" X-IronPort-AV: E=Sophos;i="5.91,201,1647327600"; d="scan'208";a="255604270" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 May 2022 07:43:36 -0700 X-IronPort-AV: E=Sophos;i="5.91,201,1647327600"; d="scan'208";a="563268814" Received: from mxu9-mobl1.ccr.corp.intel.com ([10.249.175.139]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 May 2022 07:43:33 -0700 From: "Min Xu" To: devel@edk2.groups.io Cc: Min Xu , Eric Dong , Ray Ni , Brijesh Singh , Erdem Aktas , James Bottomley , Jiewen Yao , Tom Lendacky , Gerd Hoffmann Subject: [PATCH 0/6] Support 2 CpuMpPei/CpuDxe in One image Date: Thu, 5 May 2022 22:43:13 +0800 Message-Id: X-Mailer: git-send-email 2.29.2.windows.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3918 Above BZ reports an issue that commit 88da06ca triggers ASSERT in some scenario. This patch-set is to fix this issue. As commit 88da06ca describes TDVF BSP and APs are simplied and it can simply use MpInitLibUp instead of MpInitLib. To achieve this goal, we include 2 CpuMpPei/CpuDxe drivers in OvmfPkgX64 and IntelTdxX64. This is done by setting different FILE_GUID to these drivers (of the same name). In the other hand, we import a set of MpInitLibDepLib. These libs simply depend on the PPI/Protocols. While these PPI/Protocols are installed according to the guest type. This patch-set is a replacement of https://edk2.groups.io/g/devel/message/89381. Please see the dicussion in - https://edk2.groups.io/g/devel/message/89382 - https://edk2.groups.io/g/devel/message/89455 - https://edk2.groups.io/g/devel/message/89522 - https://edk2.groups.io/g/devel/message/89535 The code is at: https://github.com/mxu9/edk2/tree/Rework-MpInitLib Cc: Eric Dong Cc: Ray Ni Cc: Brijesh Singh Cc: Erdem Aktas Cc: James Bottomley Cc: Jiewen Yao Cc: Tom Lendacky Cc: Gerd Hoffmann Signed-off-by: Min Xu *** BLURB HERE *** Min M Xu (4): UefiCpuPkg: Revert "UefiCpuPkg: Enable Tdx support in MpInitLib" OvmfPkg/Sec: Install MpInitLibDepLib PPIs in SecMain.c OvmfPkg/TdxDxe: Install MpInitLibDepLib protocols OvmfPkg: Enable 2 different CpuMpPei and CpuDxe drivers Min Xu (2): OvmfPkg: Add MpInitLibDepLib related PPI/Protocol definitions OvmfPkg: Add MpInitLibDepLib OvmfPkg/Include/Ppi/MpInitLibDep.h | 28 +++++ .../Include/Protocol/MpInitLibDepProtocols.h | 28 +++++ OvmfPkg/IntelTdx/IntelTdxX64.dsc | 23 +++- OvmfPkg/IntelTdx/IntelTdxX64.fdf | 5 +- .../MpInitLibDepLib/DxeMpInitLibMpDepLib.inf | 27 +++++ .../MpInitLibDepLib/DxeMpInitLibUpDepLib.inf | 27 +++++ .../Library/MpInitLibDepLib/MpInitLibDepLib.c | 23 ++++ .../MpInitLibDepLib/PeiMpInitLibMpDepLib.inf | 27 +++++ .../MpInitLibDepLib/PeiMpInitLibUpDepLib.inf | 27 +++++ OvmfPkg/OvmfPkg.dec | 5 + OvmfPkg/OvmfPkgX64.dsc | 45 +++++++- OvmfPkg/OvmfPkgX64.fdf | 8 +- OvmfPkg/Sec/SecMain.c | 30 ++++- OvmfPkg/Sec/SecMain.inf | 2 + OvmfPkg/TdxDxe/TdxDxe.c | 22 +++- OvmfPkg/TdxDxe/TdxDxe.inf | 2 + UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf | 3 - UefiCpuPkg/Library/MpInitLib/MpIntelTdx.h | 69 ------------ UefiCpuPkg/Library/MpInitLib/MpLib.c | 63 +---------- UefiCpuPkg/Library/MpInitLib/MpLibTdx.c | 106 ------------------ UefiCpuPkg/Library/MpInitLib/MpLibTdxNull.c | 69 ------------ UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf | 3 - 22 files changed, 325 insertions(+), 317 deletions(-) create mode 100644 OvmfPkg/Include/Ppi/MpInitLibDep.h create mode 100644 OvmfPkg/Include/Protocol/MpInitLibDepProtocols.h create mode 100644 OvmfPkg/Library/MpInitLibDepLib/DxeMpInitLibMpDepLib.inf create mode 100644 OvmfPkg/Library/MpInitLibDepLib/DxeMpInitLibUpDepLib.inf create mode 100644 OvmfPkg/Library/MpInitLibDepLib/MpInitLibDepLib.c create mode 100644 OvmfPkg/Library/MpInitLibDepLib/PeiMpInitLibMpDepLib.inf create mode 100644 OvmfPkg/Library/MpInitLibDepLib/PeiMpInitLibUpDepLib.inf delete mode 100644 UefiCpuPkg/Library/MpInitLib/MpIntelTdx.h delete mode 100644 UefiCpuPkg/Library/MpInitLib/MpLibTdx.c delete mode 100644 UefiCpuPkg/Library/MpInitLib/MpLibTdxNull.c -- 2.29.2.windows.2