OvmfPkg/ResetVector: update SEV support to use new work area format
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3429 Update the SEV support to switch to using the newer work area format. Cc: James Bottomley <jejb@linux.ibm.com> Cc: Min Xu <min.m.xu@intel.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Tom Lendacky <thomas.lendacky@amd.com> Cc: Jordan Justen <jordan.l.justen@intel.com> Cc: Ard Biesheuvel <ardb+tianocore@kernel.org> Cc: Erdem Aktas <erdemaktas@google.com> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com> Reviewed-by: Min Xu <min.m.xu@intel.com> Reviewed-by: Jiewen Yao <Jiewen.yao@intel.com>
This commit is contained in:
committed by
mergify[bot]
parent
80e67af9af
commit
ab77b6031b
@@ -807,6 +807,36 @@ SevEsProtocolCheck (
|
||||
Ghcb->GhcbUsage = GHCB_STANDARD_USAGE;
|
||||
}
|
||||
|
||||
/**
|
||||
Determine if the SEV is active.
|
||||
|
||||
During the early booting, GuestType is set in the work area. Verify that it
|
||||
is an SEV guest.
|
||||
|
||||
@retval TRUE SEV is enabled
|
||||
@retval FALSE SEV is not enabled
|
||||
|
||||
**/
|
||||
STATIC
|
||||
BOOLEAN
|
||||
IsSevGuest (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
OVMF_WORK_AREA *WorkArea;
|
||||
|
||||
//
|
||||
// Ensure that the size of the Confidential Computing work area header
|
||||
// is same as what is provided through a fixed PCD.
|
||||
//
|
||||
ASSERT ((UINTN) FixedPcdGet32 (PcdOvmfConfidentialComputingWorkAreaHeader) ==
|
||||
sizeof(CONFIDENTIAL_COMPUTING_WORK_AREA_HEADER));
|
||||
|
||||
WorkArea = (OVMF_WORK_AREA *) FixedPcdGet32 (PcdOvmfWorkAreaBase);
|
||||
|
||||
return ((WorkArea != NULL) && (WorkArea->Header.GuestType == GUEST_TYPE_AMD_SEV));
|
||||
}
|
||||
|
||||
/**
|
||||
Determine if SEV-ES is active.
|
||||
|
||||
@@ -826,9 +856,13 @@ SevEsIsEnabled (
|
||||
{
|
||||
SEC_SEV_ES_WORK_AREA *SevEsWorkArea;
|
||||
|
||||
if (!IsSevGuest()) {
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
SevEsWorkArea = (SEC_SEV_ES_WORK_AREA *) FixedPcdGet32 (PcdSevEsWorkAreaBase);
|
||||
|
||||
return ((SevEsWorkArea != NULL) && (SevEsWorkArea->SevEsEnabled != 0));
|
||||
return (SevEsWorkArea->SevEsEnabled != 0);
|
||||
}
|
||||
|
||||
VOID
|
||||
|
Reference in New Issue
Block a user