audk/UefiCpuPkg
Jeff Fan 4da1ebf3b3 UefiCpuPkg/CpuMpPei: Fix potential AP mwait wakeup issue
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>
2016-04-11 14:15:45 +08:00
..
Application/Cpuid UefiCpuPkg/Cpuid.h: Display Intel SGX Resource Enumeration Leaves 2016-03-30 08:29:56 +08:00
CpuDxe UefiCpuPkg: Convert all .uni files to utf-8 2015-12-15 04:59:14 +00:00
CpuIo2Dxe UefiCpuPkg: Convert all .uni files to utf-8 2015-12-15 04:59:14 +00:00
CpuIo2Smm UefiCpuPkg: Convert all .uni files to utf-8 2015-12-15 04:59:14 +00:00
CpuIoPei UefiCpuPkg: Convert all .uni files to utf-8 2015-12-15 04:59:14 +00:00
CpuMpPei UefiCpuPkg/CpuMpPei: Fix potential AP mwait wakeup issue 2016-04-11 14:15:45 +08:00
CpuS3DataDxe UefiCpuPkg: Add the missing module uni for CpuS3DataDxe 2015-12-24 02:30:43 +00:00
Include UefiCpuPkg/Cpuid.h: Add CPUID defines and structures for Intel SGX 2016-03-30 08:29:49 +08:00
Library UefiCpuPkg/MtrrLib: remove unused but set variable 2016-03-25 10:52:54 +01:00
PiSmmCommunication UefiCpuPkg: Convert all .uni files to utf-8 2015-12-15 04:59:14 +00:00
PiSmmCpuDxeSmm UefiCpuPkg: PiSmmCpuDxeSmm: remove set but unused variables 2016-03-25 10:52:59 +01:00
ResetVector UefiCpuPkg: Convert all .uni files to utf-8 2015-12-15 04:59:14 +00:00
SecCore UefiCpuPkg: Convert all .uni files to utf-8 2015-12-15 04:59:14 +00:00
Universal/Acpi/S3Resume2Pei UefiCpuPkg: Convert all .uni files to utf-8 2015-12-15 04:59:14 +00:00
Contributions.txt */Contributions.txt: Update example email address 2015-02-03 17:29:14 +00:00
License.txt Update copyright format 2012-04-24 06:49:39 +00:00
UefiCpuPkg.dec UefiCpuPkg: Add dynamic type for PcdCpuMaxLogicalProcessorNumber 2016-03-04 11:12:36 +08:00
UefiCpuPkg.dsc UefiCpuPkg/Cpuid: Add UEFI CPUID application 2016-02-24 20:36:51 -08:00
UefiCpuPkg.uni UefiCpuPkg: Add PCD PcdCpuApTargetCstate 2015-12-18 03:23:53 +00:00
UefiCpuPkgExtra.uni UefiCpuPkg: Convert all .uni files to utf-8 2015-12-15 04:59:14 +00:00