audk/UefiCpuPkg/Library/MpInitLib
Jeff Fan 7615702169 UefiCpuPkg/MpInitLib: Add AsmRelocateApLoop() assembly code
AsmRelocateApLoop() is used to place APs into MWAIT-loop if MonitorMwait
feature is supported before hand-off to OS, or place APs into HLT-loop if
MonitorMwait feature is not supported.

If the current mode is long mode, we will switch APs to protected mode
before placing APs in MWAIT-loop or HLT-loop. Thus, once APs wakeup from
loop, APs needn't the page table that may be crashed by OS.

v3:
  1. Rename AsmRellocateApLoop to AsmRelocateApLoop.
  2. Fix typo Proteced to Protected.
  3. Fix typo segement to segment
  4. Use word MONITOR instead of mwait-monitor.

Cc: Michael Kinney <michael.d.kinney@intel.com>
Cc: Feng Tian <feng.tian@intel.com>
Cc: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Jeff Fan <jeff.fan@intel.com>
Reviewed-by: Giri P Mudusuru <giri.p.mudusuru@intel.com>
Reviewed-by: Michael Kinney <michael.d.kinney@intel.com>
Tested-by: Laszlo Ersek <lersek@redhat.com>
Tested-by: Michael Kinney <michael.d.kinney@intel.com>
2016-08-17 19:58:56 +08:00
..
Ia32 UefiCpuPkg/MpInitLib: Add AsmRelocateApLoop() assembly code 2016-08-17 19:58:56 +08:00
X64 UefiCpuPkg/MpInitLib: Add AsmRelocateApLoop() assembly code 2016-08-17 19:58:56 +08:00
DxeMpInitLib.inf UefiCpuPkg/MpInitLib: Add AP assembly code and MP_CPU_EXCHANGE_INFO 2016-08-17 19:58:30 +08:00
DxeMpInitLib.uni UefiCpuPkg/MpInitLib: Add two instances PeiMpInitLib and DxeMpInitLib 2016-08-17 19:58:07 +08:00
DxeMpLib.c UefiCpuPkg/MpInitLib: Add two instances PeiMpInitLib and DxeMpInitLib 2016-08-17 19:58:07 +08:00
MpLib.c UefiCpuPkg/MpInitLib: Add two instances PeiMpInitLib and DxeMpInitLib 2016-08-17 19:58:07 +08:00
MpLib.h UefiCpuPkg/MpInitLib: Add AsmRelocateApLoop() assembly code 2016-08-17 19:58:56 +08:00
PeiMpInitLib.inf UefiCpuPkg/MpInitLib: Add AP assembly code and MP_CPU_EXCHANGE_INFO 2016-08-17 19:58:30 +08:00
PeiMpInitLib.uni UefiCpuPkg/MpInitLib: Add two instances PeiMpInitLib and DxeMpInitLib 2016-08-17 19:58:07 +08:00
PeiMpLib.c UefiCpuPkg/MpInitLib: Add two instances PeiMpInitLib and DxeMpInitLib 2016-08-17 19:58:07 +08:00