audk/UefiCpuPkg
Jeff Fan 4d3314f694 UefiCpuPkg/MpInitLib: Place APs in safe loop before hand-off to OS
Register Exit Boot Service callback function MpInitExitBootServicesCallback() to
place AP one safe loop before hand-off to OS.

Allocated one reserved memory and copy the AsmRellocateApLoop() code into it. It
could avoid the CPU Dxe driver (located in Boot Service data range) crashed
after Exit Boot Service event.
Place AP into the target Cx-State (specified by PcdCpuApTargetCstate) could save
power if Monitor-mwait feature supported.
In long mode, switch AP into protected mode could let AP not require page table
when executing this safe loop. Page Table (located in Boot Service data range)
may crashed after Exit Boot Service event.

v3:
  1. Rename *RellocateAp* to *RelocateAp*

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: 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 20:02:39 +08:00
..
Application/Cpuid UefiCpuPkg/Cpuid.h: Display Intel SGX Resource Enumeration Leaves 2016-03-30 08:29:56 +08:00
CpuDxe UefiCpuPkg/CpuDxe: StartupAllAPs in parallel mode 2016-07-20 11:13:25 +08:00
CpuIo2Dxe UefiCpuPkg CpuIo2Dxe: Update INF to refer to NASM source file 2016-07-11 13:20:22 +08: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/LocalApic.h: Remove duplicated/conflicted definitions 2016-08-17 19:54:41 +08:00
CpuS3DataDxe UefiCpuPkg/CpuS3DataDxe: Move StartupVector allocation to EndOfDxe() 2016-08-17 19:57:32 +08:00
Include UefiCpuPkg/MpInitLib: Add MP Initialize library class definition 2016-08-17 19:57:41 +08:00
Library UefiCpuPkg/MpInitLib: Place APs in safe loop before hand-off to OS 2016-08-17 20:02:39 +08:00
PiSmmCommunication UefiCpuPkg: Convert all .uni files to utf-8 2015-12-15 04:59:14 +00:00
PiSmmCpuDxeSmm UefiCpuPkg/PiSmmCpuDxeSmm: SMM_CPU_DATA_BLOCK is not cleared 2016-07-20 18:50:53 -07:00
ResetVector UefiCpuPkg: Convert all .uni files to utf-8 2015-12-15 04:59:14 +00:00
SecCore UefiCpuPkg SecCore: Update SecCore inf to refer to nasmb source 2016-07-11 13:20:21 +08:00
Universal/Acpi/S3Resume2Pei UefiCpuPkg S3Resume2Pei: Report status code when allocate memory is failed 2016-07-02 12:22:55 +08: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/MpInitLib: Add MP Initialize library class definition 2016-08-17 19:57:41 +08:00
UefiCpuPkg.dsc UefiCpuPkg/MpInitLib: Add two instances PeiMpInitLib and DxeMpInitLib 2016-08-17 19:58:07 +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