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 UefiCpuPkg/Cpuid.h: Update CPUID definitions with SDM (Sep.2016) 2016-12-16 11:48:21 +08:00
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 UefiCpuPkg: Refine casting expression result to bigger size 2017-03-06 14:33:26 +08:00
CpuIo2Smm UefiCpuPkg: Refine casting expression result to bigger size 2017-03-06 14:33:26 +08:00
CpuIoPei UefiCpuPkg: Modify CpuIoPei to support new IoLib library 2017-01-17 10:10:32 +08:00
CpuMpPei UefiCpuPkg CpuMpPei: Update return status to follow spec. 2017-07-07 08:54:11 +08:00
CpuS3DataDxe UefiCpuPkg/CpuS3DataDxe: Consume the existing PcdCpuS3DataAddress 2017-03-22 10:11:25 +08:00
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 UefiCpuPkg PiSmmCommunicationSmm: Deprecate SMM Communication ACPI Table 2017-07-27 14:08:09 +08:00
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 UefiCpuPkg: Convert all .uni files to utf-8 2015-12-15 04:59:14 +00:00