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
|
SerializeVariablesLib|Include/Library/SerializeVariablesLib.h
|
||||||
|
|
||||||
|
## @libraryclass TdxHelper
|
||||||
|
#
|
||||||
|
TdxHelperLib|Include/Library/TdxHelperLib.h
|
||||||
|
|
||||||
## @libraryclass Declares utility functions for virtio device drivers.
|
## @libraryclass Declares utility functions for virtio device drivers.
|
||||||
VirtioLib|Include/Library/VirtioLib.h
|
VirtioLib|Include/Library/VirtioLib.h
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue