audk/UefiCpuPkg/Library/MpInitLib
Eric Dong 1e3f7a3782 UefiCpuPkg/MpInitLib: Avoid call PcdGet* in Ap & Bsp.
MicrocodeDetect function will run by every threads, and it will
use PcdGet to get PcdCpuMicrocodePatchAddress and
PcdCpuMicrocodePatchRegionSize, if change both PCD default to dynamic,
system will in non-deterministic behavior.

By design, UEFI/PI services are single threaded and not re-entrant
so Multi processor code should not use UEFI/PI services. Here, Pcd
protocol/PPI is used to access dynamic PCDs so it would result in
non-deterministic behavior.

This code get PCD value in BSP and save them in CPU_MP_DATA for Ap.

https://bugzilla.tianocore.org/show_bug.cgi?id=726

Cc: Crystal Lee <CrystalLee@ami.com.tw>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Eric Dong <eric.dong@intel.com>
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
2017-10-20 10:30:46 +08:00
..
Ia32 UefiCpuPkg/DxeMpLib: Remove unnecessary ret instruction 2016-11-28 08:57:09 +08:00
X64 UefiCpuPkg/MpInitLib: Fix X64 XCODE5/NASM compatibility issues 2017-05-22 19:43:46 -07:00
DxeMpInitLib.inf UefiCpuPkg: Update Guid usage in DxeMpInitLib INF to match source code logic 2017-10-10 18:10:19 +08:00
DxeMpInitLib.uni UefiCpuPkg/MpInitLib: Add two instances PeiMpInitLib and DxeMpInitLib 2016-08-17 19:58:07 +08:00
DxeMpLib.c UefiCpuPkg MpInitLib: Save/restore original WakeupBuffer for DxeMpLib 2017-08-15 17:25:30 +08:00
Microcode.c UefiCpuPkg/MpInitLib: Avoid call PcdGet* in Ap & Bsp. 2017-10-20 10:30:46 +08:00
MpLib.c UefiCpuPkg/MpInitLib: Avoid call PcdGet* in Ap & Bsp. 2017-10-20 10:30:46 +08:00
MpLib.h UefiCpuPkg/MpInitLib: Avoid call PcdGet* in Ap & Bsp. 2017-10-20 10:30:46 +08:00
PeiMpInitLib.inf UefiCpuPkg/MpInitLib: needn't to allocate AP reset vector 2017-04-26 08:55:44 +08:00
PeiMpInitLib.uni UefiCpuPkg/MpInitLib: Add two instances PeiMpInitLib and DxeMpInitLib 2016-08-17 19:58:07 +08:00
PeiMpLib.c UefiCpuPkg MpInitLib: Save/restore original WakeupBuffer for DxeMpLib 2017-08-15 17:25:30 +08:00