audk/UefiCpuPkg/Library/MpInitLib
Eric Dong cf4e79e466 UefiCpuPkg/MpInitLib: Not use disabled AP when call StartAllAPs.
Base on UEFI spec requirement, StartAllAPs function should not use the APs which has been disabled before. This patch just change current code to follow this rule.

V3 changes:
Only called by StartUpAllAps, WakeUpAp will not wake up the disabled APs, in other cases also need to include the disabled APs, such as CpuDxe driver start up and ChangeApLoopCallback function.

WakeUpAP() is called with (Broadcast && WakeUpDisabledAps) from MpInitLibInitialize(), CollectProcessorCount() and MpInitChangeApLoopCallback() only. The first two run before the PPI or Protocol user has a chance to disable any APs. The last one runs in response to the ExitBootServices and LegacyBoot events, after which the MP protocol is unusable. For this reason, it doesn't matter that an originally disabled AP's state is not restored to Disabled, when
WakeUpAP() is called with (Broadcast && WakeUpDisabledAps).

Cc: Laszlo Ersek <lersek@redhat.com>
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>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Regression-tested-by: Laszlo Ersek <lersek@redhat.com>
2018-07-26 16:54:18 +08:00
..
Ia32
X64
DxeMpInitLib.inf
DxeMpInitLib.uni
DxeMpLib.c UefiCpuPkg/MpInitLib: Not use disabled AP when call StartAllAPs. 2018-07-26 16:54:18 +08:00
Microcode.c UefiCpuPkg/MpInitLib: Fix VS2012 build failure 2018-07-20 09:36:41 +08:00
MpLib.c UefiCpuPkg/MpInitLib: Not use disabled AP when call StartAllAPs. 2018-07-26 16:54:18 +08:00
MpLib.h UefiCpuPkg/MpInitLib: Not use disabled AP when call StartAllAPs. 2018-07-26 16:54:18 +08:00
PeiMpInitLib.inf
PeiMpInitLib.uni
PeiMpLib.c UefiCpuPkg/MpInitLib: Remove useless code. 2018-07-20 09:24:42 +08:00