BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4654 Currently, the first time an AP is started for an SEV-SNP guest, it relies on the VMSA as set by the hypervisor. If the list of APIC IDs has been retrieved, this is not necessary. The list of APIC IDs will be identified by a GUIDed HOB. If the GUIDed HOB is present, use the SEV-SNP AP Create protocol to start the AP for the first time and each time thereafter. Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Laszlo Ersek <lersek@redhat.com> Cc: Rahul Kumar <rahul1.kumar@intel.com> Cc: Ray Ni <ray.ni@intel.com> Reviewed-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com> Acked-by: Ray Ni <ray.ni@intel.com>
92 lines
2.8 KiB
INI
92 lines
2.8 KiB
INI
## @file
|
|
# MP Initialize Library instance for PEI driver.
|
|
#
|
|
# Copyright (c) 2016 - 2021, Intel Corporation. All rights reserved.<BR>
|
|
# Copyright (c) 2024, Loongson Technology Corporation Limited. All rights reserved.<BR>
|
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
#
|
|
##
|
|
|
|
[Defines]
|
|
INF_VERSION = 0x00010005
|
|
BASE_NAME = PeiMpInitLib
|
|
MODULE_UNI_FILE = PeiMpInitLib.uni
|
|
FILE_GUID = B00F6090-7739-4830-B906-E0032D388987
|
|
MODULE_TYPE = PEIM
|
|
VERSION_STRING = 1.1
|
|
LIBRARY_CLASS = MpInitLib|PEIM
|
|
|
|
#
|
|
# The following information is for reference only and not required by the build tools.
|
|
#
|
|
# VALID_ARCHITECTURES = IA32 X64 LOONGARCH64
|
|
#
|
|
|
|
[Sources.IA32]
|
|
Ia32/AmdSev.c
|
|
Ia32/MpFuncs.nasm
|
|
|
|
[Sources.X64]
|
|
X64/AmdSev.c
|
|
X64/MpFuncs.nasm
|
|
|
|
[Sources.IA32, Sources.X64]
|
|
AmdSev.c
|
|
Microcode.c
|
|
MpEqu.inc
|
|
MpLib.c
|
|
MpLib.h
|
|
MpHandOff.h
|
|
PeiMpLib.c
|
|
|
|
[Sources.LoongArch64]
|
|
LoongArch64/PeiMpLib.c
|
|
LoongArch64/MpLib.c
|
|
LoongArch64/MpLib.h
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
MdeModulePkg/MdeModulePkg.dec
|
|
UefiCpuPkg/UefiCpuPkg.dec
|
|
|
|
[LibraryClasses]
|
|
BaseLib
|
|
CpuLib
|
|
HobLib
|
|
MemoryAllocationLib
|
|
PcdLib
|
|
PeiServicesLib
|
|
SynchronizationLib
|
|
|
|
[LibraryClasses.IA32, LibraryClasses.X64]
|
|
CcExitLib
|
|
LocalApicLib
|
|
MicrocodeLib
|
|
MtrrLib
|
|
|
|
[Pcd]
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdGhcbBase ## CONSUMES
|
|
gEfiMdePkgTokenSpaceGuid.PcdConfidentialComputingGuestAttr ## CONSUMES
|
|
gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber ## CONSUMES
|
|
gUefiCpuPkgTokenSpaceGuid.PcdCpuBootLogicalProcessorNumber ## CONSUMES
|
|
gUefiCpuPkgTokenSpaceGuid.PcdCpuApInitTimeOutInMicroSeconds ## SOMETIMES_CONSUMES
|
|
gUefiCpuPkgTokenSpaceGuid.PcdCpuApStackSize ## CONSUMES
|
|
gUefiCpuPkgTokenSpaceGuid.PcdCpuMicrocodePatchAddress ## CONSUMES
|
|
gUefiCpuPkgTokenSpaceGuid.PcdCpuMicrocodePatchRegionSize ## CONSUMES
|
|
gUefiCpuPkgTokenSpaceGuid.PcdCpuApLoopMode ## CONSUMES
|
|
gUefiCpuPkgTokenSpaceGuid.PcdCpuApTargetCstate ## SOMETIMES_CONSUMES
|
|
gUefiCpuPkgTokenSpaceGuid.PcdSevEsWorkAreaBase ## SOMETIMES_CONSUMES
|
|
gUefiCpuPkgTokenSpaceGuid.PcdGhcbHypervisorFeatures ## CONSUMES
|
|
gUefiCpuPkgTokenSpaceGuid.PcdFirstTimeWakeUpAPsBySipi ## CONSUMES
|
|
|
|
[Ppis]
|
|
gEdkiiPeiShadowMicrocodePpiGuid ## SOMETIMES_CONSUMES
|
|
|
|
[Guids]
|
|
gEdkiiS3SmmInitDoneGuid
|
|
gEdkiiMicrocodePatchHobGuid
|
|
gGhcbApicIdsGuid ## SOMETIMES_CONSUMES
|
|
|
|
[Guids.LoongArch64]
|
|
gProcessorResourceHobGuid ## SOMETIMES_CONSUMES ## HOB
|