dbc22a1 UefiCpuPkg/MpInitLib: Allocate a separate SEV-ES AP reset stack area

3 files Authored by Lendacky, Thomas 3 years ago, Committed by mergify[bot] 3 years ago,
    UefiCpuPkg/MpInitLib: Allocate a separate SEV-ES AP reset stack area
    
    BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3324
    
    The SEV-ES stacks currently share a page with the reset code and data.
    Separate the SEV-ES stacks from the reset vector code and data to avoid
    possible stack overflows from overwriting the code and/or data.
    
    When SEV-ES is enabled, invoke the GetWakeupBuffer() routine a second time
    to allocate a new area, below the reset vector and data.
    
    Both the PEI and DXE versions of GetWakeupBuffer() are changed so that
    when PcdSevEsIsEnabled is true, they will track the previous reset buffer
    allocation in order to ensure that the new buffer allocation is below the
    previous allocation. When PcdSevEsIsEnabled is false, the original logic
    is followed.
    
    Fixes: 7b7508ad784d16a5208c8d12dff43aef6df0835b
    Cc: Eric Dong <eric.dong@intel.com>
    Cc: Ray Ni <ray.ni@intel.com>
    Cc: Laszlo Ersek <lersek@redhat.com>
    Cc: Rahul Kumar <rahul1.kumar@intel.com>
    Cc: Marvin Häuser <mhaeuser@posteo.de>
    Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
    Message-Id: <3cae2ac836884b131725866264e0a0e1897052de.1621024125.git.thomas.lendacky@amd.com>
    Acked-by: Laszlo Ersek <lersek@redhat.com>