BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4243 MeasureFvImage once was implemented in PeilessStartupLib and it does measurement and logging for Configuration FV (Cfv) image in one go, using TpmMeasureAndLogData(). But it doesn't work in SEC. This patch splits MeasureFvImage into 2 functions and implement them in SecTdxHelperLib. - TdxHelperMeasureCfvImage - TdxHelperBuildGuidHobForTdxMeasurement TdxHelperMeasureCfvImage measures the Cfv image and stores the hash value in WorkArea. TdxHelperBuildGuidHobForTdxMeasurement builds GuidHob for the measurement based on the hash value in WorkArea. After these 2 functions are introduced, PeilessStartupLib should also be updated: - Call these 2 functions instead of the MeasureFvImage - Delete the duplicated codes in PeilessStartupLib Cc: Erdem Aktas <erdemaktas@google.com> Cc: James Bottomley <jejb@linux.ibm.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: Tom Lendacky <thomas.lendacky@amd.com> Cc: Michael Roth <michael.roth@amd.com> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Reviewed-by: Jiewen Yao <jiewen.yao@intel.com> Signed-off-by: Min Xu <min.m.xu@intel.com>
88 lines
2.5 KiB
INI
88 lines
2.5 KiB
INI
#/** @file
|
|
# Component description file for TDX Pre PI Library
|
|
#
|
|
# LIbrary helps you build a platform that skips PEI and loads DXE Core
|
|
# directly. Helps building HOBs, reading data from the FV, and doing
|
|
# decompression.
|
|
#
|
|
# Copyright (c) 2018, Intel Corporation. All rights reserved.<BR>
|
|
# Copyright (c) 2008, Apple Inc. All rights reserved.<BR>
|
|
#
|
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
#
|
|
#
|
|
#**/
|
|
|
|
[Defines]
|
|
INF_VERSION = 0x00010005
|
|
BASE_NAME = PeilessStartupLib
|
|
FILE_GUID = 8FA74135-F841-40A4-86C8-69C923D2E85F
|
|
MODULE_TYPE = BASE
|
|
VERSION_STRING = 1.0
|
|
LIBRARY_CLASS = PeilessStartupLib|SEC
|
|
|
|
#
|
|
# VALID_ARCHITECTURES = X64
|
|
#
|
|
|
|
[Sources]
|
|
PeilessStartup.c
|
|
Hob.c
|
|
DxeLoad.c
|
|
X64/VirtualMemory.c
|
|
|
|
[Packages]
|
|
MdePkg/MdePkg.dec
|
|
MdeModulePkg/MdeModulePkg.dec
|
|
UefiCpuPkg/UefiCpuPkg.dec
|
|
OvmfPkg/OvmfPkg.dec
|
|
EmbeddedPkg/EmbeddedPkg.dec
|
|
CryptoPkg/CryptoPkg.dec
|
|
SecurityPkg/SecurityPkg.dec
|
|
|
|
[LibraryClasses]
|
|
BaseLib
|
|
DebugLib
|
|
BaseMemoryLib
|
|
PcdLib
|
|
UefiCpuLib
|
|
DebugAgentLib
|
|
IoLib
|
|
LocalApicLib
|
|
SynchronizationLib
|
|
HobLib
|
|
TdxLib
|
|
MemoryAllocationLib
|
|
PrePiLib
|
|
QemuFwCfgLib
|
|
PlatformInitLib
|
|
HashLib
|
|
TpmMeasurementLib
|
|
|
|
[Guids]
|
|
gEfiHobMemoryAllocModuleGuid
|
|
gEfiHobMemoryAllocStackGuid
|
|
gUefiOvmfPkgPlatformInfoGuid
|
|
gEfiMemoryTypeInformationGuid
|
|
gPcdDataBaseHobGuid
|
|
gCcEventEntryHobGuid
|
|
gEfiNonCcFvGuid
|
|
|
|
[Pcd]
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdBfvBase
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdBfvRawDataOffset
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdBfvRawDataSize
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbBackupBase
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbBackupSize
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbSize
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfSecGhcbBase
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeIplBuildPageTables ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdCpuStackGuard ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdUse1GPageTable ## SOMETIMES_CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdDxeNxMemoryProtectionPolicy ## SOMETIMES_CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdImageProtectionPolicy ## SOMETIMES_CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdPteMemoryEncryptionAddressOrMask ## CONSUMES
|
|
gEfiMdeModulePkgTokenSpaceGuid.PcdNullPointerDetectionPropertyMask ## CONSUMES
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvBase
|
|
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfDxeMemFvSize
|