]> git.proxmox.com Git - mirror_edk2.git/commit - UefiCpuPkg/Library/MpInitLib/MpLib.c
UefiCpuPkg/MpInitLib: Force sending INIT-SIPI-SIPI to reset APs
authorJeff Fan <jeff.fan@intel.com>
Mon, 14 Nov 2016 02:30:03 +0000 (10:30 +0800)
committerJeff Fan <jeff.fan@intel.com>
Wed, 16 Nov 2016 08:09:08 +0000 (16:09 +0800)
commitcb33bde4ac7536f5a5621c7a56aecd981585e087
tree5c2be56a1a5527671185e97a768d8882fc2a453d
parentd67cbc66045e824d61fca5bf51c90783161becdf
UefiCpuPkg/MpInitLib: Force sending INIT-SIPI-SIPI to reset APs

If BSP found APs timeout happened when AP executing AP task, BSP will reset APs
by WakeUpAP(). However, if ApLoopMode is ApMwaitLoop or ApRunLoop, WakeUpAp()
will try to write semaphore in memory to wake up AP. It cannot wake up APs
actually if APs still executing AP task.

This fix is to set ApInitReconfig flag to force BSP to send INIT-SIPI-SIPI to
wake up APs.

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>
UefiCpuPkg/Library/MpInitLib/MpLib.c