mirror of https://github.com/acidanthera/audk.git
4da1ebf3b3
If ApLoopMode is set to ApInMwaitLoop, AP will be placed into C-State by mwait instruction. BSP will wakeup AP by write start-up signal in monitor address. However, AP maybe waken by SMI/NMI/MCE and other condition. On this case, AP will check if BSP wants to wakeup itself really. If not, AP will continue to execute mwait to C-State. One potential issue: BSP may not recognize AP was wakeup from C-State by other event and BSP still writes start-up signal to wakeup AP. But AP does not aware it and still execute mwait instruction to C-State. So, AP cannot be wakeup on this case. This fix is let AP to clear start-up signal when it really is wakeup to execute AP function. And BSP will write start-up signal till AP clears it. Cc: Michael Kinney <michael.d.kinney@intel.com> Cc: Feng Tian <feng.tian@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> |
||
---|---|---|
.. | ||
Ia32 | ||
X64 | ||
CpuBist.c | ||
CpuMpPei.c | ||
CpuMpPei.h | ||
CpuMpPei.inf | ||
CpuMpPei.uni | ||
CpuMpPeiExtra.uni | ||
Microcode.c | ||
Microcode.h | ||
PeiMpServices.c | ||
PeiMpServices.h |