audk/UefiCpuPkg/Library
Ruiyu Ni 374168ae65 UefiCpuPkg/CpuExceptionHandlerLib: Avoid calling PEI services from AP
When an exception happens in AP, system hangs at
GetPeiServicesTablePointer(), complaining the PeiServices retrieved
from memory before IDT is NULL.

Due to the following commit:
c563077a38
* UefiCpuPkg/MpInitLib: Avoid calling PEI services from AP
the IDT used by AP no longer preserve PeiServices pointer in the
very beginning.
But the implementation of PeiExceptionHandlerLib still assumes
the PeiServices pointer is there, so the assertion happens.

The patch fixes the exception handler library to not call
PEI services from AP.

The patch duplicates the #0 exception stub header in an allocated
pool but with extra 4-byte/8-byte to store the exception handler
data which was originally stored in HOB.
When AP exception happens, the code gets the exception handler data
from the exception handler for #0.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Ruiyu Ni <ruiyu.ni@intel.com>
Cc: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: Fan Jeff <vanjeff_919@hotmail.com>
2018-09-03 14:02:26 +08:00
..
BaseUefiCpuLib UefiCpuPkg: Clean up source files 2018-06-28 11:19:53 +08:00
BaseXApicLib UefiCpuPkg: Clean up source files 2018-06-28 11:19:53 +08:00
BaseXApicX2ApicLib UefiCpuPkg: Clean up source files 2018-06-28 11:19:53 +08:00
CpuCommonFeaturesLib UefiCpuPkg: Clean up source files 2018-06-28 11:19:53 +08:00
CpuExceptionHandlerLib UefiCpuPkg/CpuExceptionHandlerLib: Avoid calling PEI services from AP 2018-09-03 14:02:26 +08:00
MpInitLib UefiCpuPkg/MpInitLib: Not use disabled AP when call StartAllAPs. 2018-07-26 16:54:18 +08:00
MtrrLib UefiCpuPkg: Clean up source files 2018-06-28 11:19:53 +08:00
PlatformSecLibNull
RegisterCpuFeaturesLib UefiCpuPkg/RegisterCpuFeaturesLib: Combine implementation. 2018-08-16 08:42:01 +08:00
SecPeiDxeTimerLibUefiCpu UefiCpuPkg: Removing ipf which is no longer supported from edk2. 2018-08-14 08:58:28 +08:00
SmmCpuFeaturesLib UefiCpuPkg/SmmCpuFeaturesLib: [CVE-2017-5715] Stuff RSB before RSM 2018-08-21 16:11:15 +08:00
SmmCpuPlatformHookLibNull