audk/UefiCpuPkg/Library
Jeff Fan 845c5be1fd UefiCpuPkg/MpInitLib: Program AP stack in fixed address
Currently, MpInitLib will program AP stack in dynamic address. Each processor
will calculate its stack address by adding stack size based on the last stack
address. That means AP may have the different stack address everytime it is
wakeup by INIT-SIPI-SIPI.

When all APs have wakeup to execute AP task, each each has been assigned one
stack address. Once the timeout happened on some of APs, BSP will send INIT-
SIPI-SIPI to wake up APs. We need to re-assign stack for APs. Based on the
current implementation, we might assign one stack address used by other APs.
It will cause the unexpected stack overlapped issue.

This fix changed the stack assignment policy. We will record the stack address
assigned to AP at first time AP wakeup. When AP failed on AP task, BSP could
reassigned the same stack for it.

Getting initial APIC ID in assembly code could help AP to get saved its stack
address.

Cc: Feng Tian <feng.tian@intel.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Feng Tian <feng.tian@intel.com>
2016-11-16 16:28:22 +08:00
..
BaseUefiCpuLib UefiCpuPkg BaseUefiCpuLib: Add nasm source file in BaseUefiCpuLib.inf 2016-06-28 09:52:08 +08:00
BaseXApicLib UefiCpuPkg/LocalApicLib: Add EFIAPI for GetProcessorLocationByApicId() 2016-11-02 09:17:04 +08:00
BaseXApicX2ApicLib UefiCpuPkg/LocalApicLib: Add EFIAPI for GetProcessorLocationByApicId() 2016-11-02 09:17:04 +08:00
CpuExceptionHandlerLib UefiCpuPkg PeiCpuExceptionHandlerLib: Add the missing nasm files in INF 2016-11-03 10:28:40 +08:00
MpInitLib UefiCpuPkg/MpInitLib: Program AP stack in fixed address 2016-11-16 16:28:22 +08:00
MtrrLib UefiCpuPkg: Fix typos in comments 2016-10-24 09:09:48 +08:00
PlatformSecLibNull UefiCpuPkg: Convert all .uni files to utf-8 2015-12-15 04:59:14 +00:00
SecPeiDxeTimerLibUefiCpu UefiCpuPkg: Convert all .uni files to utf-8 2015-12-15 04:59:14 +00:00
SmmCpuFeaturesLib UefiCpuPkg/SmmCpuFeaturesLib: Add SMRR PhysBase/PhysMask fields check 2016-05-19 10:04:27 -07:00
SmmCpuPlatformHookLibNull UefiCpuPkg: Convert all .uni files to utf-8 2015-12-15 04:59:14 +00:00