audk/UefiCpuPkg/CpuDxe
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
..
Ia32 UefiCpuPkg/CpuDxe: Remove unused codes and files 2016-08-17 20:07:07 +08:00
X64 UefiCpuPkg/CpuDxe: Remove unused codes and files 2016-08-17 20:07:07 +08:00
CpuDxe.c UefiCpuPkg/CpuDxe: Fix assert issue on IA32 platform 2017-09-30 10:25:25 +08:00
CpuDxe.h UefiCpuPkg/CpuDxe: Add missing function description comments 2017-09-27 09:05:25 +08:00
CpuDxe.inf UefiCpuPkg/CpuDxe: Initialize stack switch for MP 2017-12-08 14:38:50 +08:00
CpuDxe.uni UefiCpuPkg/CpuDxe: Consume MpInitLib to produce CPU MP Protocol services 2016-08-17 20:06:56 +08:00
CpuDxeExtra.uni UefiCpuPkg/CpuDxe: Consume MpInitLib to produce CPU MP Protocol services 2016-08-17 20:06:56 +08:00
CpuGdt.c
CpuGdt.h
CpuMp.c UefiCpuPkg/CpuDxe: Initialize stack switch for MP 2017-12-08 14:38:50 +08:00
CpuMp.h UefiCpuPkg CpuDxe: Update return status to follow spec. 2017-07-07 08:54:10 +08:00
CpuPageTable.c UefiCpuPkg/CpuDxe: Fix multiple entries of RT_CODE in memory map 2017-11-24 09:43:10 +08:00
CpuPageTable.h UefiCpuPkg/CpuDxe: Add memory attribute setting. 2017-02-22 14:07:01 +08:00