audk/UefiCpuPkg
Jian J Wang 01953ce68e UefiCpuPkg/CpuDxe: Initialize stack switch for MP
In current MP implementation, BSP and AP shares the same exception
configuration. Stack switch required by Stack Guard feature needs that BSP
and AP have their own configuration. This patch adds code to ask BSP and AP
to do exception handler initialization separately.

Since AP is not supposed to do memory allocation, all memory needed to
setup stack switch will be reserved in BSP and pass to AP via new API

  EFI_STATUS
  EFIAPI
  InitializeCpuExceptionHandlersEx (
    IN EFI_VECTOR_HANDOFF_INFO            *VectorInfo OPTIONAL,
    IN CPU_EXCEPTION_INIT_DATA            *InitData OPTIONAL
    );

Following two new PCDs are introduced to configure how to setup new stack
for specified exception handlers.

  gUefiCpuPkgTokenSpaceGuid.PcdCpuStackSwitchExceptionList
  gUefiCpuPkgTokenSpaceGuid.PcdCpuKnownGoodStackSize

Cc: Eric Dong <eric.dong@intel.com>
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Michael Kinney <michael.d.kinney@intel.com>
Suggested-by: Ayellet Wolman <ayellet.wolman@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Jian J Wang <jian.j.wang@intel.com>
Reviewed-by: Jeff Fan <vanjeff_919@hotmail.com>
Reviewed-by: Jiewen.yao@intel.com
2017-12-08 14:38:50 +08:00
..
Application/Cpuid
CpuDxe UefiCpuPkg/CpuDxe: Initialize stack switch for MP 2017-12-08 14:38:50 +08:00
CpuFeatures UefiCpuPkg/CpuFeatures: Export HOB if CPU initialized in PEI 2017-10-27 09:34:37 +08:00
CpuIo2Dxe
CpuIo2Smm
CpuIoPei
CpuMpPei
CpuS3DataDxe
Include IntelSiliconPkg: Move MicrocodeUpdate from UefiCpuPkg 2017-11-30 09:25:28 +08:00
Library UefiCpuPkg/MpLib: Add GDTR, IDTR and TR in saved AP data 2017-12-08 14:38:50 +08:00
PiSmmCommunication
PiSmmCpuDxeSmm UefiCpuPkg: PiSmmCpuDxeSmm Add the missing ASM_PFX in nasm code 2017-12-08 13:29:42 +08:00
ResetVector UefiCpuPkg/ResetVector/Vtf0: document segment register setup 2017-11-17 18:11:58 +01:00
SecCore UefiCpuPkg: Update SecCore to get BFV size based on BFV header FvLength 2017-12-08 13:30:47 +08:00
Universal/Acpi/S3Resume2Pei UefiCpuPkg/S3Resume2Pei: Handle Communicate Ppi not exist issue. 2017-10-13 13:12:00 +08:00
UefiCpuPkg.dec UefiCpuPkg/UefiCpuPkg.dec: Add two new PCDs for stack switch 2017-12-08 14:38:46 +08:00
UefiCpuPkg.dsc IntelSiliconPkg: Move MicrocodeUpdate from UefiCpuPkg 2017-11-30 09:25:28 +08:00
UefiCpuPkg.uni UefiCpuPkg PiSmmCpuDxeSmm: SMM profile and static paging mutual exclusion 2017-12-08 12:29:24 +08:00
UefiCpuPkgExtra.uni