mirror of https://github.com/acidanthera/audk.git
OvmfPkg: Support Tdx measurement in OvmfPkgX64
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4243 This patch enables Tdx measurement in OvmfPkgX64 with below changes: 1) CC_MEASUREMENT_ENABLE is introduced in OvmfPkgX64.dsc. This flag indicates if Intel TDX measurement is enabled in OvmfPkgX64. Its default value is FALSE. 2) Include TdTcg2Dxe in OvmfPkgX64 so that CC_MEASUREMENT_PROTOCOL is installed in a Td-guest. TdTcg2Dxe is controlled by TDX_MEASUREMENT_ENABLE because it is only valid when Intel TDX measurement is enabled. 3) OvmfTpmLibs.dsc.inc and OvmfTpmSecurityStub.dsc.inc are updated because DxeTpm2MeasureBootLib.inf and DxeTpmMeasurementLib.inf should be included to support CC_MEASUREMENT_PROTOCOL. 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>
This commit is contained in:
parent
1f9bd937b3
commit
4d37059d8e
|
@ -10,9 +10,17 @@
|
|||
Tpm2CommandLib|SecurityPkg/Library/Tpm2CommandLib/Tpm2CommandLib.inf
|
||||
Tcg2PhysicalPresenceLib|OvmfPkg/Library/Tcg2PhysicalPresenceLibQemu/DxeTcg2PhysicalPresenceLib.inf
|
||||
Tcg2PpVendorLib|SecurityPkg/Library/Tcg2PpVendorLibNull/Tcg2PpVendorLibNull.inf
|
||||
TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf
|
||||
!else
|
||||
Tcg2PhysicalPresenceLib|OvmfPkg/Library/Tcg2PhysicalPresenceLibNull/DxeTcg2PhysicalPresenceLib.inf
|
||||
!endif
|
||||
|
||||
!if $(TPM2_ENABLE) == TRUE || $(CC_MEASUREMENT_ENABLE) == TRUE
|
||||
#
|
||||
# DxeTpmMeasurementLib supports measurement functions for both TPM and Confidential Computing.
|
||||
# It should be controlled by TPM2_ENABLE and CC_MEASUREMENT_ENABLE.
|
||||
#
|
||||
TpmMeasurementLib|SecurityPkg/Library/DxeTpmMeasurementLib/DxeTpmMeasurementLib.inf
|
||||
!else
|
||||
TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
|
||||
!endif
|
||||
|
||||
|
|
|
@ -6,5 +6,13 @@
|
|||
!if $(TPM1_ENABLE) == TRUE
|
||||
NULL|SecurityPkg/Library/DxeTpmMeasureBootLib/DxeTpmMeasureBootLib.inf
|
||||
!endif
|
||||
!endif
|
||||
|
||||
!if $(TPM2_ENABLE) == TRUE || $(CC_MEASUREMENT_ENABLE) == TRUE
|
||||
#
|
||||
# DxeTpm2MeasureBootLib provides security service of TPM2 measure boot and
|
||||
# Confidential Computing (CC) measure boot. It should be controlled by
|
||||
# TPM2_ENABLE and CC_MEASUREMENT_ENABLE
|
||||
#
|
||||
NULL|SecurityPkg/Library/DxeTpm2MeasureBootLib/DxeTpm2MeasureBootLib.inf
|
||||
!endif
|
||||
|
|
|
@ -32,6 +32,7 @@
|
|||
DEFINE SECURE_BOOT_ENABLE = FALSE
|
||||
DEFINE SMM_REQUIRE = FALSE
|
||||
DEFINE SOURCE_DEBUG_ENABLE = FALSE
|
||||
DEFINE CC_MEASUREMENT_ENABLE = FALSE
|
||||
|
||||
!include OvmfPkg/Include/Dsc/OvmfTpmDefines.dsc.inc
|
||||
|
||||
|
@ -1104,6 +1105,17 @@
|
|||
}
|
||||
!endif
|
||||
|
||||
#
|
||||
# Cc Measurement Protocol for Td guest
|
||||
#
|
||||
!if $(CC_MEASUREMENT_ENABLE) == TRUE
|
||||
SecurityPkg/Tcg/TdTcg2Dxe/TdTcg2Dxe.inf {
|
||||
<LibraryClasses>
|
||||
HashLib|SecurityPkg/Library/HashLibTdx/HashLibTdx.inf
|
||||
NULL|SecurityPkg/Library/HashInstanceLibSha384/HashInstanceLibSha384.inf
|
||||
}
|
||||
!endif
|
||||
|
||||
#
|
||||
# TPM support
|
||||
#
|
||||
|
|
|
@ -402,6 +402,13 @@ INF MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf
|
|||
INF MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf
|
||||
!endif
|
||||
|
||||
#
|
||||
# EFI_CC_MEASUREMENT_PROTOCOL
|
||||
#
|
||||
!if $(CC_MEASUREMENT_ENABLE) == TRUE
|
||||
INF SecurityPkg/Tcg/TdTcg2Dxe/TdTcg2Dxe.inf
|
||||
!endif
|
||||
|
||||
#
|
||||
# TPM support
|
||||
#
|
||||
|
|
Loading…
Reference in New Issue