summaryrefslogtreecommitdiffstats
path: root/UefiCpuPkg
diff options
context:
space:
mode:
authorCeping Sun <cepingx.sun@intel.com>2025-01-05 20:33:59 -0500
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2025-01-13 09:38:39 +0000
commitd97f5304139bc55d3f72b830606bca5cd217512e (patch)
treed3d482b5091bf2a5752ff29ef3c1264dd8934a80 /UefiCpuPkg
parent94bfc6f0cba9359c9ddfe560ecaff8f6b1bf1efb (diff)
downloadedk2-d97f5304139bc55d3f72b830606bca5cd217512e.tar.gz
UefiCpuPkg: Add NULL TdxMeasurementLib instance
Add NULL instance of TdxMeasurementLib. Cc: Ray Ni <ray.ni@intel.com> Cc: Jiaxin Wu <jiaxin.wu@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Min Xu <min.m.xu@intel.com> Signed-off-by: Ceping Sun <cepingx.sun@intel.com>
Diffstat (limited to 'UefiCpuPkg')
-rw-r--r--UefiCpuPkg/Library/TdxMeasurementLibNull/TdxMeasurementLibNull.c85
-rw-r--r--UefiCpuPkg/Library/TdxMeasurementLibNull/TdxMeasurementLibNull.inf32
-rw-r--r--UefiCpuPkg/UefiCpuPkg.dsc2
3 files changed, 119 insertions, 0 deletions
diff --git a/UefiCpuPkg/Library/TdxMeasurementLibNull/TdxMeasurementLibNull.c b/UefiCpuPkg/Library/TdxMeasurementLibNull/TdxMeasurementLibNull.c
new file mode 100644
index 0000000000..1a2955700f
--- /dev/null
+++ b/UefiCpuPkg/Library/TdxMeasurementLibNull/TdxMeasurementLibNull.c
@@ -0,0 +1,85 @@
+/** @file
+ NULL instance of TdxMeasurementLib
+ Copyright (c) 2025, Intel Corporation. All rights reserved.<BR>
+ SPDX-License-Identifier: BSD-2-Clause-Patent
+**/
+
+#include <Base.h>
+#include <PiPei.h>
+#include <Library/TdxMeasurementLib.h>
+
+/**
+ According to UEFI Spec 2.10 Section 38.4.1:
+ The following table shows the TPM PCR index mapping and CC event log measurement
+ register index interpretation for Intel TDX, where MRTD means Trust Domain Measurement
+ Register and RTMR means Runtime Measurement Register
+ // TPM PCR Index | CC Measurement Register Index | TDX-measurement register
+ // ------------------------------------------------------------------------
+ // 0 | 0 | MRTD
+ // 1, 7 | 1 | RTMR[0]
+ // 2~6 | 2 | RTMR[1]
+ // 8~15 | 3 | RTMR[2]
+ @param[in] PCRIndex Index of the TPM PCR
+ @retval UINT32 Index of the CC Event Log Measurement Register Index
+ @retval CC_MR_INDEX_INVALID Invalid MR Index
+**/
+UINT32
+EFIAPI
+TdxMeasurementMapPcrToMrIndex (
+ IN UINT32 PCRIndex
+ )
+{
+ return CC_MR_INDEX_INVALID;
+}
+
+/**
+ * Calculate the sha384 of input Data and extend it to RTMR register.
+ *
+ * @param RtmrIndex Index of the RTMR register
+ * @param DataToHash Data to be hashed
+ * @param DataToHashLen Length of the data
+ * @param Digest Hash value of the input data
+ * @param DigestLen Length of the hash value
+ *
+ * @retval EFI_SUCCESS Successfully hash and extend to RTMR
+ * @retval Others Other errors as indicated
+ */
+EFI_STATUS
+EFIAPI
+TdxMeasurementHashAndExtendToRtmr (
+ IN UINT32 RtmrIndex,
+ IN VOID *DataToHash,
+ IN UINTN DataToHashLen,
+ OUT UINT8 *Digest,
+ IN UINTN DigestLen
+ )
+{
+ return EFI_UNSUPPORTED;
+}
+
+/**
+ * Build GuidHob for Tdx CC measurement event.
+ *
+ * @param RtmrIndex RTMR index
+ * @param EventType Event type
+ * @param EventData Event data
+ * @param EventSize Size of event data
+ * @param HashValue Hash value
+ * @param HashSize Size of hash
+ *
+ * @retval EFI_SUCCESS Successfully build the GuidHobs
+ * @retval Others Other error as indicated
+ */
+EFI_STATUS
+EFIAPI
+TdxMeasurementBuildGuidHob (
+ UINT32 RtmrIndex,
+ UINT32 EventType,
+ UINT8 *EventData,
+ UINT32 EventSize,
+ UINT8 *HashValue,
+ UINT32 HashSize
+ )
+{
+ return EFI_UNSUPPORTED;
+}
diff --git a/UefiCpuPkg/Library/TdxMeasurementLibNull/TdxMeasurementLibNull.inf b/UefiCpuPkg/Library/TdxMeasurementLibNull/TdxMeasurementLibNull.inf
new file mode 100644
index 0000000000..c42eebcca3
--- /dev/null
+++ b/UefiCpuPkg/Library/TdxMeasurementLibNull/TdxMeasurementLibNull.inf
@@ -0,0 +1,32 @@
+## @file
+# TdxMeasurementLib NULL instance
+#
+# Copyright (c) 2025, Intel Corporation. All rights reserved.<BR>
+#
+# SPDX-License-Identifier: BSD-2-Clause-Patent
+#
+##
+
+[Defines]
+ INF_VERSION = 0x00010005
+ BASE_NAME = TdxMeasurementNullLib
+ FILE_GUID = 975d11ff-b11e-4cf4-b453-6d93a9ea8d7b
+ MODULE_TYPE = BASE
+ VERSION_STRING = 1.0
+ LIBRARY_CLASS = TdxMeasurementLib
+
+#
+# The following information is for reference only and not required by the build tools.
+#
+# VALID_ARCHITECTURES = X64
+#
+
+[Sources]
+ TdxMeasurementLibNull.c
+
+[Packages]
+ MdePkg/MdePkg.dec
+ UefiCpuPkg/UefiCpuPkg.dec
+
+[LibraryClasses]
+ BaseLib
diff --git a/UefiCpuPkg/UefiCpuPkg.dsc b/UefiCpuPkg/UefiCpuPkg.dsc
index 982e024b4e..ec2b6cc722 100644
--- a/UefiCpuPkg/UefiCpuPkg.dsc
+++ b/UefiCpuPkg/UefiCpuPkg.dsc
@@ -62,6 +62,7 @@
PeCoffExtraActionLib|MdePkg/Library/BasePeCoffExtraActionLibNull/BasePeCoffExtraActionLibNull.inf
TpmMeasurementLib|MdeModulePkg/Library/TpmMeasurementLibNull/TpmMeasurementLibNull.inf
CcExitLib|UefiCpuPkg/Library/CcExitLibNull/CcExitLibNull.inf
+ TdxMeasurementLib|UefiCpuPkg/Library/TdxMeasurementLibNull/TdxMeasurementLibNull.inf
AmdSvsmLib|UefiCpuPkg/Library/AmdSvsmLibNull/AmdSvsmLibNull.inf
MicrocodeLib|UefiCpuPkg/Library/MicrocodeLib/MicrocodeLib.inf
SmmCpuRendezvousLib|UefiCpuPkg/Library/SmmCpuRendezvousLib/SmmCpuRendezvousLib.inf
@@ -171,6 +172,7 @@
UefiCpuPkg/Library/SmmCpuFeaturesLib/StandaloneMmCpuFeaturesLib.inf
UefiCpuPkg/Library/SmmCpuSyncLib/SmmCpuSyncLib.inf
UefiCpuPkg/Library/CcExitLibNull/CcExitLibNull.inf
+ UefiCpuPkg/Library/TdxMeasurementLibNull/TdxMeasurementLibNull.inf
UefiCpuPkg/Library/AmdSvsmLibNull/AmdSvsmLibNull.inf
UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationPei.inf
UefiCpuPkg/PiSmmCommunication/PiSmmCommunicationSmm.inf