mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-29 00:24:07 +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