mirror of
https://github.com/acidanthera/audk.git
synced 2025-04-08 17:05:09 +02:00
OvmfPkg: Add PrePiHobListPointerLibTdx
RFC: https://bugzilla.tianocore.org/show_bug.cgi?id=3429 This library sets / gets the Hob list pointer in TDX_WORK_AREA. This is because it is designed to be used in SEC where the value of global variable cannot be saved, so the Hob list pointer is saved in TDX_WORK_AREA. TDX_WORK_AREA shares the same base address as SEV_WORK_AREA which is pointed by PcdSevEsWorkAreaBase. This PCD will be renamed to PcdCcWorkAreaBase as Gerd suggested. See https://edk2.groups.io/g/devel/message/86642 Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Brijesh Singh <brijesh.singh@amd.com> Cc: Erdem Aktas <erdemaktas@google.com> Cc: James Bottomley <jejb@linux.ibm.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Tom Lendacky <thomas.lendacky@amd.com> Cc: Gerd Hoffmann <kraxel@redhat.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
580a6b616b
commit
75942a52ae
@ -0,0 +1,57 @@
|
||||
/** @file
|
||||
*
|
||||
* Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
|
||||
* SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
*
|
||||
**/
|
||||
|
||||
#include <PiPei.h>
|
||||
#include <Library/PrePiHobListPointerLib.h>
|
||||
#include <Library/DebugLib.h>
|
||||
#include <Library/HobLib.h>
|
||||
#include <WorkArea.h>
|
||||
|
||||
/**
|
||||
Returns the pointer to the HOB list.
|
||||
|
||||
This function returns the pointer to first HOB in the list.
|
||||
|
||||
@return The pointer to the HOB list.
|
||||
|
||||
**/
|
||||
VOID *
|
||||
EFIAPI
|
||||
PrePeiGetHobList (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
TDX_WORK_AREA *TdxWorkArea;
|
||||
|
||||
TdxWorkArea = (TDX_WORK_AREA *)(UINTN)FixedPcdGet32 (PcdSevEsWorkAreaBase);
|
||||
ASSERT (TdxWorkArea != NULL);
|
||||
ASSERT (TdxWorkArea->SecTdxWorkArea.HobList != 0);
|
||||
|
||||
return (VOID *)(UINTN)TdxWorkArea->SecTdxWorkArea.HobList;
|
||||
}
|
||||
|
||||
/**
|
||||
Updates the pointer to the HOB list.
|
||||
|
||||
@param HobList Hob list pointer to store
|
||||
|
||||
**/
|
||||
EFI_STATUS
|
||||
EFIAPI
|
||||
PrePeiSetHobList (
|
||||
IN VOID *HobList
|
||||
)
|
||||
{
|
||||
TDX_WORK_AREA *TdxWorkArea;
|
||||
|
||||
TdxWorkArea = (TDX_WORK_AREA *)(UINTN)FixedPcdGet32 (PcdSevEsWorkAreaBase);
|
||||
ASSERT (TdxWorkArea != NULL);
|
||||
|
||||
TdxWorkArea->SecTdxWorkArea.HobList = (UINTN)HobList;
|
||||
|
||||
return EFI_SUCCESS;
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
#/** @file
|
||||
#
|
||||
# Copyright (c) 2021, Intel Corporation. All rights reserved.<BR>
|
||||
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||
#
|
||||
#**/
|
||||
|
||||
[Defines]
|
||||
INF_VERSION = 0x00010005
|
||||
BASE_NAME = PrePiHobListPointerLibTdx
|
||||
FILE_GUID = 28297DB9-4CE7-4679-80E6-0270B215A2F2
|
||||
MODULE_TYPE = BASE
|
||||
VERSION_STRING = 1.0
|
||||
LIBRARY_CLASS = PrePiHobListPointerLib
|
||||
|
||||
[Sources]
|
||||
PrePiHobListPointer.c
|
||||
|
||||
[Packages]
|
||||
MdePkg/MdePkg.dec
|
||||
OvmfPkg/OvmfPkg.dec
|
||||
EmbeddedPkg/EmbeddedPkg.dec
|
||||
UefiCpuPkg/UefiCpuPkg.dec
|
||||
|
||||
[Pcd]
|
||||
gUefiCpuPkgTokenSpaceGuid.PcdSevEsWorkAreaBase
|
||||
|
||||
[LibraryClasses]
|
||||
PcdLib
|
Loading…
x
Reference in New Issue
Block a user