diff options
author | Min M Xu <min.m.xu@intel.com> | 2022-05-07 09:36:23 +0800 |
---|---|---|
committer | mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> | 2022-05-11 08:40:53 +0000 |
commit | deee7a100b2539d8a302c6d37344b507f8312faa (patch) | |
tree | 02423e701559faf7dbf0b47b966b69e65a5c116e /OvmfPkg/OvmfPkgX64.dsc | |
parent | 73d6d41de0ceeadb49b05ba75ca39dea84ae799d (diff) | |
download | edk2-deee7a100b2539d8a302c6d37344b507f8312faa.tar.gz |
OvmfPkg: Enable 2 different CpuMpPei and CpuDxe drivers
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3918
In OvmfPkgX64 we enable 2 different CpuMpPei and CpuDxe drivers. The
difference between the drivers is the MpInitLib or MpInitLibUp. This is
acomplished by adding a MpInitLibDepLib.
In IntelTdxX64 we enable 2 versions of CpuDxe drivers. It is because PEI
is skipped in IntelTdxX64.
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Brijesh Singh <brijesh.singh@amd.com>
Cc: Erdem Aktas <erdemaktas@google.com>
Cc: James Bottomley <jejb@linux.ibm.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Min Xu <min.m.xu@intel.com>
Tested-by: Tom Lendacky <thomas.lendacky@amd.com>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Jiewen Yao <jiewen.yao@intel.com>
Reviewed-by: Ray Ni <ray.ni@intel.com>
Diffstat (limited to 'OvmfPkg/OvmfPkgX64.dsc')
-rw-r--r-- | OvmfPkg/OvmfPkgX64.dsc | 55 |
1 files changed, 53 insertions, 2 deletions
diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc index 45ffa2dbe3..71526bba31 100644 --- a/OvmfPkg/OvmfPkgX64.dsc +++ b/OvmfPkg/OvmfPkgX64.dsc @@ -72,6 +72,12 @@ !endif
!endif
+ #
+ # Define the FILE_GUID of CpuMpPei/CpuDxe for unique-processor version.
+ #
+ DEFINE UP_CPU_PEI_GUID = 280251c4-1d09-4035-9062-839acb5f18c1
+ DEFINE UP_CPU_DXE_GUID = 6490f1c5-ebcc-4665-8892-0075b9bb49b7
+
[BuildOptions]
GCC:RELEASE_*_*_CC_FLAGS = -DMDEPKG_NDEBUG
INTEL:RELEASE_*_*_CC_FLAGS = /D MDEPKG_NDEBUG
@@ -728,7 +734,29 @@ MdeModulePkg/Universal/Variable/Pei/VariablePei.inf
OvmfPkg/SmmAccess/SmmAccessPei.inf
!endif
- UefiCpuPkg/CpuMpPei/CpuMpPei.inf
+
+ UefiCpuPkg/CpuMpPei/CpuMpPei.inf {
+ <LibraryClasses>
+ #
+ # Directly use PeiMpInitLib. It depends on PeiMpInitLibMpDepLib which
+ # checks the PPI of gEfiPeiMpInitLibMpDepPpiGuid.
+ #
+ MpInitLib|UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf
+ NULL|OvmfPkg/Library/MpInitLibDepLib/PeiMpInitLibMpDepLib.inf
+ }
+
+ UefiCpuPkg/CpuMpPei/CpuMpPei.inf {
+ <Defines>
+ FILE_GUID = $(UP_CPU_PEI_GUID)
+
+ <LibraryClasses>
+ #
+ # Directly use MpInitLibUp. It depends on PeiMpInitLibUpDepLib which
+ # checks the PPI of gEfiPeiMpInitLibUpDepPpiGuid.
+ #
+ MpInitLib|UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.inf
+ NULL|OvmfPkg/Library/MpInitLibDepLib/PeiMpInitLibUpDepLib.inf
+ }
!include OvmfPkg/OvmfTpmComponentsPei.dsc.inc
@@ -760,7 +788,30 @@ MdeModulePkg/Universal/EbcDxe/EbcDxe.inf
UefiCpuPkg/CpuIo2Dxe/CpuIo2Dxe.inf
- UefiCpuPkg/CpuDxe/CpuDxe.inf
+
+ UefiCpuPkg/CpuDxe/CpuDxe.inf {
+ <LibraryClasses>
+ #
+ # Directly use DxeMpInitLib. It depends on DxeMpInitLibMpDepLib which
+ # checks the Protocol of gEfiMpInitLibMpDepProtocolGuid.
+ #
+ MpInitLib|UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf
+ NULL|OvmfPkg/Library/MpInitLibDepLib/DxeMpInitLibMpDepLib.inf
+ }
+
+ UefiCpuPkg/CpuDxe/CpuDxe.inf {
+ <Defines>
+ FILE_GUID = $(UP_CPU_DXE_GUID)
+
+ <LibraryClasses>
+ #
+ # Directly use MpInitLibUp. It depends on DxeMpInitLibUpDepLib which
+ # checks the Protocol of gEfiMpInitLibUpDepProtocolGuid.
+ #
+ MpInitLib|UefiCpuPkg/Library/MpInitLibUp/MpInitLibUp.inf
+ NULL|OvmfPkg/Library/MpInitLibDepLib/DxeMpInitLibUpDepLib.inf
+ }
+
!ifdef $(CSM_ENABLE)
OvmfPkg/8259InterruptControllerDxe/8259.inf
OvmfPkg/8254TimerDxe/8254Timer.inf
|