Skip to content

Commit d51baa0

Browse files
suncepingmergify[bot]
authored andcommitted
OvmfPkg: Update with TdxMeasurementLib
Since the tdx measurement APIs are implemented by TdxMeasurementLib, the duplicate code are removed. Cc: Erdem Aktas <[email protected]> Cc: Jiewen Yao <[email protected]> Cc: Min Xu <[email protected]> Cc: Gerd Hoffmann <[email protected]> Cc: Elena Reshetova <[email protected]> Signed-off-by: Min Xu <[email protected]> Signed-off-by: Ceping Sun <[email protected]>
1 parent 6f73428 commit d51baa0

File tree

15 files changed

+39
-553
lines changed

15 files changed

+39
-553
lines changed

OvmfPkg/Include/Library/TdxHelperLib.h

Lines changed: 0 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,6 @@
1111

1212
#include <PiPei.h>
1313

14-
#define CC_MR_INDEX_0_MRTD 0
15-
#define CC_MR_INDEX_1_RTMR0 1
16-
#define CC_MR_INDEX_2_RTMR1 2
17-
#define CC_MR_INDEX_3_RTMR2 3
18-
#define CC_MR_INDEX_INVALID 4
19-
2014
/**
2115
In Tdx guest, some information need to be passed from host VMM to guest
2216
firmware. For example, the memory resource, etc. These information are
@@ -73,71 +67,4 @@ TdxHelperBuildGuidHobForTdxMeasurement (
7367
VOID
7468
);
7569

76-
/**
77-
According to UEFI Spec 2.10 Section 38.4.1:
78-
The following table shows the TPM PCR index mapping and CC event log measurement
79-
register index interpretation for Intel TDX, where MRTD means Trust Domain Measurement
80-
Register and RTMR means Runtime Measurement Register
81-
// TPM PCR Index | CC Measurement Register Index | TDX-measurement register
82-
// ------------------------------------------------------------------------
83-
// 0 | 0 | MRTD
84-
// 1, 7 | 1 | RTMR[0]
85-
// 2~6 | 2 | RTMR[1]
86-
// 8~15 | 3 | RTMR[2]
87-
@param[in] PCRIndex Index of the TPM PCR
88-
@retval UINT32 Index of the CC Event Log Measurement Register Index
89-
@retval CC_MR_INDEX_INVALID Invalid MR Index
90-
**/
91-
UINT32
92-
EFIAPI
93-
TdxHelperMapPcrToMrIndex (
94-
IN UINT32 PCRIndex
95-
);
96-
97-
/**
98-
* Build GuidHob for Tdx CC measurement event.
99-
*
100-
* @param RtmrIndex RTMR index
101-
* @param EventType Event type
102-
* @param EventData Event data
103-
* @param EventSize Size of event data
104-
* @param HashValue Hash value
105-
* @param HashSize Size of hash
106-
*
107-
* @retval EFI_SUCCESS Successfully build the GuidHobs
108-
* @retval Others Other error as indicated
109-
*/
110-
EFI_STATUS
111-
EFIAPI
112-
TdxHelperBuildTdxMeasurementGuidHob (
113-
UINT32 RtmrIndex,
114-
UINT32 EventType,
115-
UINT8 *EventData,
116-
UINT32 EventSize,
117-
UINT8 *HashValue,
118-
UINT32 HashSize
119-
);
120-
121-
/**
122-
* Calculate the sha384 of input Data and extend it to RTMR register.
123-
*
124-
* @param RtmrIndex Index of the RTMR register
125-
* @param DataToHash Data to be hashed
126-
* @param DataToHashLen Length of the data
127-
* @param Digest Hash value of the input data
128-
* @param DigestLen Length of the hash value
129-
*
130-
* @retval EFI_SUCCESS Successfully hash and extend to RTMR
131-
* @retval Others Other errors as indicated
132-
*/
133-
EFI_STATUS
134-
EFIAPI
135-
TdxHelperHashAndExtendToRtmr (
136-
IN UINT32 RtmrIndex,
137-
IN VOID *DataToHash,
138-
IN UINTN DataToHashLen,
139-
OUT UINT8 *Digest,
140-
IN UINTN DigestLen
141-
);
142-
14370
#endif

OvmfPkg/IntelTdx/IntelTdxX64.dsc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,7 @@
239239
PrePiLib|EmbeddedPkg/Library/PrePiLib/PrePiLib.inf
240240
PeilessStartupLib|OvmfPkg/Library/PeilessStartupLib/PeilessStartupLib.inf
241241
CcProbeLib|OvmfPkg/Library/CcProbeLib/SecPeiCcProbeLib.inf
242+
TdxMeasurementLib|OvmfPkg/IntelTdx/TdxMeasurementLib/SecPeiTdxMeasurementLib.inf
242243

243244
[LibraryClasses.common.DXE_CORE]
244245
HobLib|MdePkg/Library/DxeCoreHobLib/DxeCoreHobLib.inf
@@ -313,7 +314,7 @@
313314
NestedInterruptTplLib|OvmfPkg/Library/NestedInterruptTplLib/NestedInterruptTplLib.inf
314315
QemuFwCfgS3Lib|OvmfPkg/Library/QemuFwCfgS3Lib/DxeQemuFwCfgS3LibFwCfg.inf
315316
QemuLoadImageLib|OvmfPkg/Library/X86QemuLoadImageLib/X86QemuLoadImageLib.inf
316-
TdxHelperLib|OvmfPkg/IntelTdx/TdxHelperLib/DxeTdxHelperLib.inf
317+
TdxMeasurementLib|OvmfPkg/IntelTdx/TdxMeasurementLib/DxeTdxMeasurementLib.inf
317318

318319
[LibraryClasses.common.UEFI_APPLICATION]
319320
PcdLib|MdePkg/Library/DxePcdLib/DxePcdLib.inf

OvmfPkg/IntelTdx/TdxHelperLib/DxeTdxHelper.c

Lines changed: 0 additions & 94 deletions
This file was deleted.

OvmfPkg/IntelTdx/TdxHelperLib/DxeTdxHelperLib.inf

Lines changed: 0 additions & 41 deletions
This file was deleted.

OvmfPkg/IntelTdx/TdxHelperLib/PeiTdxHelperLib.inf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,21 +25,22 @@
2525
[Sources]
2626
PeiTdxHelper.c
2727
TdxMeasurementHob.c
28-
TdxHelperCommon.c
2928

3029
[Packages]
3130
MdeModulePkg/MdeModulePkg.dec
3231
MdePkg/MdePkg.dec
3332
OvmfPkg/OvmfPkg.dec
3433
SecurityPkg/SecurityPkg.dec
3534
CryptoPkg/CryptoPkg.dec
35+
UefiCpuPkg/UefiCpuPkg.dec
3636

3737
[LibraryClasses]
3838
BaseLib
3939
DebugLib
4040
HobLib
4141
PcdLib
4242
BaseCryptLib
43+
TdxMeasurementLib
4344

4445
[FixedPcd]
4546
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfWorkAreaBase

OvmfPkg/IntelTdx/TdxHelperLib/SecTdxHelper.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include <WorkArea.h>
2424
#include <ConfidentialComputingGuestAttr.h>
2525
#include <Library/TdxHelperLib.h>
26+
#include <Library/TdxMeasurementLib.h>
2627

2728
#define ALIGNED_2MB_MASK 0x1fffff
2829
#define MEGABYTE_SHIFT 20
@@ -836,7 +837,7 @@ TdxHelperMeasureTdHob (
836837
Hob.Raw = GET_NEXT_HOB (Hob);
837838
}
838839

839-
Status = TdxHelperHashAndExtendToRtmr (
840+
Status = TdxMeasurementHashAndExtendToRtmr (
840841
0,
841842
(UINT8 *)TdHob,
842843
(UINTN)((UINT8 *)Hob.Raw - (UINT8 *)TdHob),
@@ -881,7 +882,7 @@ TdxHelperMeasureCfvImage (
881882
UINT8 Digest[SHA384_DIGEST_SIZE];
882883
OVMF_WORK_AREA *WorkArea;
883884

884-
Status = TdxHelperHashAndExtendToRtmr (
885+
Status = TdxMeasurementHashAndExtendToRtmr (
885886
0,
886887
(UINT8 *)(UINTN)PcdGet32 (PcdOvmfFlashNvStorageVariableBase),
887888
(UINT64)PcdGet32 (PcdCfvRawDataSize),

OvmfPkg/IntelTdx/TdxHelperLib/SecTdxHelperLib.inf

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,14 @@
2525
[Sources]
2626
SecTdxHelper.c
2727
TdxMeasurementHob.c
28-
TdxHelperCommon.c
2928

3029
[Packages]
3130
CryptoPkg/CryptoPkg.dec
3231
MdeModulePkg/MdeModulePkg.dec
3332
MdePkg/MdePkg.dec
3433
OvmfPkg/OvmfPkg.dec
3534
SecurityPkg/SecurityPkg.dec
35+
UefiCpuPkg/UefiCpuPkg.dec
3636

3737
[LibraryClasses]
3838
BaseLib
@@ -42,6 +42,7 @@
4242
PcdLib
4343
TdxMailboxLib
4444
TdxLib
45+
TdxMeasurementLib
4546

4647
[FixedPcd]
4748
gUefiOvmfPkgTokenSpaceGuid.PcdOvmfWorkAreaBase

0 commit comments

Comments
 (0)