@@ -519,6 +519,11 @@ [Components]
PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
}
!endif
+ UefiCpuPkg/CpuMpPei/CpuMpPei.inf {
+ <LibraryClasses>
+ PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
+ CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf
+ }
#
# DXE Phase modules
@@ -527,6 +527,11 @@ [Components.IA32]
PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
}
!endif
+ UefiCpuPkg/CpuMpPei/CpuMpPei.inf {
+ <LibraryClasses>
+ PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
+ CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf
+ }
[Components.X64]
#
@@ -526,6 +526,11 @@ [Components]
PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
}
!endif
+ UefiCpuPkg/CpuMpPei/CpuMpPei.inf {
+ <LibraryClasses>
+ PcdLib|MdePkg/Library/PeiPcdLib/PeiPcdLib.inf
+ CpuExceptionHandlerLib|UefiCpuPkg/Library/CpuExceptionHandlerLib/PeiCpuExceptionHandlerLib.inf
+ }
#
# DXE Phase modules
@@ -162,6 +162,7 @@ [FV.PEIFV]
!if $(SMM_REQUIRE) == TRUE
INF OvmfPkg/SmmAccess/SmmAccessPei.inf
!endif
+INF UefiCpuPkg/CpuMpPei/CpuMpPei.inf
################################################################################
@@ -162,6 +162,7 @@ [FV.PEIFV]
!if $(SMM_REQUIRE) == TRUE
INF OvmfPkg/SmmAccess/SmmAccessPei.inf
!endif
+INF UefiCpuPkg/CpuMpPei/CpuMpPei.inf
################################################################################
@@ -162,6 +162,7 @@ [FV.PEIFV]
!if $(SMM_REQUIRE) == TRUE
INF OvmfPkg/SmmAccess/SmmAccessPei.inf
!endif
+INF UefiCpuPkg/CpuMpPei/CpuMpPei.inf
################################################################################
In the next patch we're going to put EFI_PEI_MP_SERVICES_PPI to use. CpuMpPei uses the following PCDs from gUefiCpuPkgTokenSpaceGuid, beyond those already used by CpuDxe: - PcdCpuMicrocodePatchAddress and PcdCpuMicrocodePatchRegionSize: these control whether CpuMpPei performs microcode update. If the region size is zero, then the microcode update is skipped. UefiCpuPkg.dec sets the region size to zero by default, which is appropriate for OVMF. - PcdCpuApLoopMode and PcdCpuApTargetCstate: the former controls how CpuMpPei puts the APs to sleep: 1 -- HLT, 2 -- MWAIT, 3 -- busy wait (with PAUSE). The latter PCD is only relevant if the former PCD is 2 (MWAIT). In order to be consistent with SeaBIOS and with CpuDxe itself, we choose HLT. That's the default set by UefiCpuPkg.dec. Furthermore, although CpuMpPei could consume SecPeiCpuExceptionHandlerLib technically, it is supposed to consume PeiCpuExceptionHandlerLib. See: - http://thread.gmane.org/gmane.comp.bios.edk2.devel/12703 - git commit a81abf161666 ("UefiCpuPkg/ExceptionLib: Import PeiCpuExceptionHandlerLib module"), part of the series linked above. Cc: Jeff Fan <jeff.fan@intel.com> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Michael Kinney <michael.d.kinney@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Laszlo Ersek <lersek@redhat.com> --- OvmfPkg/OvmfPkgIa32.dsc | 5 +++++ OvmfPkg/OvmfPkgIa32X64.dsc | 5 +++++ OvmfPkg/OvmfPkgX64.dsc | 5 +++++ OvmfPkg/OvmfPkgIa32.fdf | 1 + OvmfPkg/OvmfPkgIa32X64.fdf | 1 + OvmfPkg/OvmfPkgX64.fdf | 1 + 6 files changed, 18 insertions(+) -- 1.8.3.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel