BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4654 An SVSM requires a calling area page whose address (CAA) is used by the SVSM to communicate and process the SVSM request. Add a pre-defined page area to the OvmfPkg and AmdSev packages and define corresponding PCDs used to communicate the location and size of the area. Keep the AmdSev package in sync with the OvmfPkg and adjust the AmdSev launch and hash area memory locations. Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> Cc: Erdem Aktas <erdemaktas@google.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Laszlo Ersek <lersek@redhat.com> Cc: Michael Roth <michael.roth@amd.com> Cc: Min Xu <min.m.xu@intel.com> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com>
149 lines
5.1 KiB
INI
149 lines
5.1 KiB
INI
## @file
|
|
# Platform PEI driver
|
|
#
|
|
# This module provides platform specific function to detect boot mode.
|
|
# Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
|
|
#
|
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
#
|
|
##
|
|
|
|
[Defines]
|
|
INF_VERSION = 0x00010005
|
|
BASE_NAME = PlatformPei
|
|
FILE_GUID = 222c386d-5abc-4fb4-b124-fbb82488acf4
|
|
MODULE_TYPE = PEIM
|
|
VERSION_STRING = 1.0
|
|
ENTRY_POINT = InitializePlatform
|
|
|
|
#
|
|
# The following information is for reference only and not required by the build tools.
|
|
#
|
|
# VALID_ARCHITECTURES = IA32 X64 EBC
|
|
#
|
|
|
|
[Sources]
|
|
AmdSev.c
|
|
ClearCache.c
|
|
FeatureControl.c
|
|
Fv.c
|
|
MemDetect.c
|
|
MemTypeInfo.c
|
|
Platform.c
|
|
Platform.h
|
|
IntelTdx.c
|
|
|
|
[Packages]
|
|
EmbeddedPkg/EmbeddedPkg.dec
|
|
MdePkg/MdePkg.dec
|
|
MdeModulePkg/MdeModulePkg.dec
|
|
SecurityPkg/SecurityPkg.dec
|
|
UefiCpuPkg/UefiCpuPkg.dec
|
|
OvmfPkg/OvmfPkg.dec
|
|
|
|
[Guids]
|
|
gEfiMemoryTypeInformationGuid
|
|
gFdtHobGuid
|
|
gUefiOvmfPkgPlatformInfoGuid
|
|
gGhcbApicIdsGuid
|
|
|
|
[LibraryClasses]
|
|
BaseLib
|
|
CacheMaintenanceLib
|
|
DebugLib
|
|
HobLib
|
|
IoLib
|
|
PciLib
|
|
ResourcePublicationLib
|
|
PeiServicesLib
|
|
PeiServicesTablePointerLib
|
|
PeimEntryPoint
|
|
QemuFwCfgLib
|
|
QemuFwCfgS3Lib
|
|
QemuFwCfgSimpleParserLib
|
|
MtrrLib
|
|
MemEncryptSevLib
|
|
PcdLib
|
|
CcExitLib
|
|
PlatformInitLib
|
|
|
|
[Pcd]
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvBase
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfPeiMemFvSize
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamBase
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPeiTempRamSize
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesBase
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecPageTablesSize
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbPageTableBase
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbPageTableSize
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbBase
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbSize
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfLockBoxStorageBase
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfLockBoxStorageSize
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdGuidedExtractHandlerTableSize
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfHostBridgePciDevId
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdPciIoBase
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdPciIoSize
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Base
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio32Size
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Base
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdPciMmio64Size
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDecompressionScratchEnd
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdQ35TsegMbytes
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdQ35SmramAtDefaultSmbase
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdXenPvhStartOfDayStructPtr
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdXenPvhStartOfDayStructPtrSize
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdSecureBootSupported
|
|
gEfiMdePkgTokenSpaceGuid.PcdGuidedExtractHandlerTableAddress
|
|
gEfiMdePkgTokenSpaceGuid.PcdPciExpressBaseAddress
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdEmuVariableNvStoreReserved
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplSwitchToLongMode
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdSetNxForStack
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdAcpiS3Enable
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdGhcbBase
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdGhcbSize
|
|
gEfiSecurityPkgTokenSpaceGuid.PcdOptionRomImageVerificationPolicy
|
|
gUefiCpuPkgTokenSpaceGuid.PcdCpuLocalApicBaseAddress
|
|
gUefiCpuPkgTokenSpaceGuid.PcdCpuMaxLogicalProcessorNumber
|
|
gUefiCpuPkgTokenSpaceGuid.PcdCpuBootLogicalProcessorNumber
|
|
gUefiCpuPkgTokenSpaceGuid.PcdCpuApStackSize
|
|
gUefiCpuPkgTokenSpaceGuid.PcdSevEsIsEnabled
|
|
gEfiMdePkgTokenSpaceGuid.PcdConfidentialComputingGuestAttr
|
|
gUefiCpuPkgTokenSpaceGuid.PcdGhcbHypervisorFeatures
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdTdxSharedBitMask
|
|
|
|
[FixedPcd]
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfCpuidBase
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfCpuidSize
|
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIMemoryNVS
|
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory
|
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiReservedMemoryType
|
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesCode
|
|
gEmbeddedTokenSpaceGuid.PcdMemoryTypeEfiRuntimeServicesData
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbBackupBase
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbBackupSize
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecSvsmCaaBase
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecSvsmCaaSize
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfWorkAreaBase
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfWorkAreaSize
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSnpSecretsBase
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSnpSecretsSize
|
|
|
|
[FeaturePcd]
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdSmmSmramRequire
|
|
|
|
[Ppis]
|
|
gEfiPeiMasterBootModePpiGuid
|
|
gEfiPeiMpServicesPpiGuid
|
|
gEfiPeiReadOnlyVariable2PpiGuid
|
|
|
|
[Depex]
|
|
TRUE
|
|
|