mirror of https://github.com/acidanthera/audk.git
OvmfPkg/IntelTdx: Add TdxHelperLibNull
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4243 TdxHelperLib provides below helper functions for a td-guest. - TdxHelperProcessTdHob - TdxHelperMeasureTdHob - TdxHelperMeasureCfvImage - TdxHelperBuildGuidHobForTdxMeasurement TdxHelperLibNull is the NULL instance of TdxHelperLib. 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
6ba931bebf
commit
d3109e5f18
|
@ -0,0 +1,70 @@
|
|||
/** @file
|
||||
TdxHelperLib header file
|
||||
|
||||
Copyright (c) 2021 - 2023, Intel Corporation. All rights reserved.<BR>
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
|
||||
#ifndef TDX_HELPER_LIB_H
|
||||
#define TDX_HELPER_LIB_H
|
||||
|
||||
#include <PiPei.h>
|
||||
|
||||
/**
|
||||
In Tdx guest, some information need to be passed from host VMM to guest
|
||||
firmware. For example, the memory resource, etc. These information are
|
||||
prepared by host VMM and put in TdHob which is described in TdxMetadata.
|
||||
TDVF processes the TdHob to accept memories.
|
||||
|
||||
@retval EFI_SUCCESS Successfully process the TdHob
|
||||
@retval Others Other error as indicated
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
TdxHelperProcessTdHob (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
In Tdx guest, TdHob is passed from host VMM to guest firmware and it contains
|
||||
the information of the memory resource. From the security perspective before
|
||||
it is consumed, it should be measured and extended.
|
||||
*
|
||||
* @retval EFI_SUCCESS Successfully measure the TdHob
|
||||
* @retval Others Other error as indicated
|
||||
*/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
TdxHelperMeasureTdHob (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
* In Tdx guest, Configuration FV (CFV) is treated as external input because it
|
||||
* may contain the data provided by VMM. From the sucurity perspective Cfv image
|
||||
* should be measured before it is consumed.
|
||||
*
|
||||
* @retval EFI_SUCCESS Successfully measure the CFV image
|
||||
* @retval Others Other error as indicated
|
||||
*/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
TdxHelperMeasureCfvImage (
|
||||
VOID
|
||||
);
|
||||
|
||||
/**
|
||||
Build the GuidHob for tdx measurements which were done in SEC phase.
|
||||
The measurement values are stored in WorkArea.
|
||||
|
||||
@retval EFI_SUCCESS The GuidHob is built successfully
|
||||
@retval Others Other errors as indicated
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
TdxHelperBuildGuidHobForTdxMeasurement (
|
||||
VOID
|
||||
);
|
||||
|
||||
#endif
|
|
@ -0,0 +1,32 @@
|
|||
## @file
|
||||
# TdxHelperLib NULL instance
|
||||
#
|
||||
# Copyright (c) 2021 - 2023, Intel Corporation. All rights reserved.<BR>
|
||||
#
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
##
|
||||
|
||||
[Defines]
|
||||
INF_VERSION = 0x00010005
|
||||
BASE_NAME = TdxHelperLibNull
|
||||
FILE_GUID = 853603b2-53ea-463d-93e6-35d09a79e358
|
||||
MODULE_TYPE = BASE
|
||||
VERSION_STRING = 1.0
|
||||
LIBRARY_CLASS = TdxHelperLib
|
||||
|
||||
#
|
||||
# The following information is for reference only and not required by the build tools.
|
||||
#
|
||||
# VALID_ARCHITECTURES = X64
|
||||
#
|
||||
|
||||
[Sources]
|
||||
TdxHelperNull.c
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
OvmfPkg/OvmfPkg.dec
|
||||
|
||||
[LibraryClasses]
|
||||
BaseLib
|
|
@ -0,0 +1,79 @@
|
|||
/** @file
|
||||
NULL instance of TdxHelperLib
|
||||
|
||||
Copyright (c) 2022 - 2023, Intel Corporation. All rights reserved.<BR>
|
||||
|
||||
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
|
||||
**/
|
||||
|
||||
#include <Base.h>
|
||||
#include <PiPei.h>
|
||||
|
||||
/**
|
||||
In Tdx guest, some information need to be passed from host VMM to guest
|
||||
firmware. For example, the memory resource, etc. These information are
|
||||
prepared by host VMM and put in TdHob which is described in TdxMetadata.
|
||||
TDVF processes the TdHob to accept memories.
|
||||
|
||||
@retval EFI_SUCCESS Successfully process the TdHob
|
||||
@retval Others Other error as indicated
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
TdxHelperProcessTdHob (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
/**
|
||||
In Tdx guest, TdHob is passed from host VMM to guest firmware and it contains
|
||||
the information of the memory resource. From the security perspective before
|
||||
it is consumed, it should be measured and extended.
|
||||
*
|
||||
* @retval EFI_SUCCESS Successfully measure the TdHob
|
||||
* @retval Others Other error as indicated
|
||||
*/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
TdxHelperMeasureTdHob (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
/**
|
||||
* In Tdx guest, Configuration FV (CFV) is treated as external input because it
|
||||
* may contain the data provided by VMM. From the sucurity perspective Cfv image
|
||||
* should be measured before it is consumed.
|
||||
*
|
||||
* @retval EFI_SUCCESS Successfully measure the CFV image
|
||||
* @retval Others Other error as indicated
|
||||
*/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
TdxHelperMeasureCfvImage (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
||||
|
||||
/**
|
||||
Build the GuidHob for tdx measurements which were done in SEC phase.
|
||||
The measurement values are stored in WorkArea.
|
||||
|
||||
@retval EFI_SUCCESS The GuidHob is built successfully
|
||||
@retval Others Other errors as indicated
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
TdxHelperBuildGuidHobForTdxMeasurement (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
return EFI_UNSUPPORTED;
|
||||
}
|
|
@ -98,6 +98,10 @@
|
|||
#
|
||||
SerializeVariablesLib|Include/Library/SerializeVariablesLib.h
|
||||
|
||||
## @libraryclass TdxHelper
|
||||
#
|
||||
TdxHelperLib|Include/Library/TdxHelperLib.h
|
||||
|
||||
## @libraryclass Declares utility functions for virtio device drivers.
|
||||
VirtioLib|Include/Library/VirtioLib.h
|
||||
|
||||
|
|
Loading…
Reference in New Issue