OvmfPkg: Enable AMD SEV-ES DebugVirtualization

Write the feature bit into PcdConfidentialComputingGuestAttr
and enable DebugVirtualization in PEI, SEC, DXE.

Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Erdem Aktas <erdemaktas@google.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Michael Roth <michael.roth@amd.com>
Cc: Min Xu <min.m.xu@intel.com>
Reviewed-by: Tom Lendacky <thomas.lendacky@amd.com>
Signed-off-by: Alexey Kardashevskiy <aik@amd.com>
---
Changes:
v5:
* "rb" from Tom

v4:
* s/DebugSwap/DebugVirtualization/g
This commit is contained in:
Alexey Kardashevskiy 2024-05-28 14:48:40 +10:00 committed by mergify[bot]
parent 63a7152471
commit 2809966189
3 changed files with 20 additions and 5 deletions

View File

@ -154,5 +154,9 @@ MemEncryptSevEsDebugVirtualizationIsEnabled (
VOID
)
{
return FALSE;
MSR_SEV_STATUS_REGISTER Msr;
Msr.Uint32 = InternalMemEncryptSevStatus ();
return Msr.Bits.DebugVirtualization ? TRUE : FALSE;
}

View File

@ -154,7 +154,11 @@ MemEncryptSevEsDebugVirtualizationIsEnabled (
VOID
)
{
return FALSE;
MSR_SEV_STATUS_REGISTER Msr;
Msr.Uint32 = InternalMemEncryptSevStatus ();
return Msr.Bits.DebugVirtualization ? TRUE : FALSE;
}
/**

View File

@ -434,6 +434,7 @@ AmdSevInitialize (
)
{
UINT64 EncryptionMask;
UINT64 CCGuestAttr;
RETURN_STATUS PcdStatus;
//
@ -517,13 +518,19 @@ AmdSevInitialize (
// technology is active.
//
if (MemEncryptSevSnpIsEnabled ()) {
PcdStatus = PcdSet64S (PcdConfidentialComputingGuestAttr, CCAttrAmdSevSnp);
CCGuestAttr = CCAttrAmdSevSnp;
} else if (MemEncryptSevEsIsEnabled ()) {
PcdStatus = PcdSet64S (PcdConfidentialComputingGuestAttr, CCAttrAmdSevEs);
CCGuestAttr = CCAttrAmdSevEs;
} else {
PcdStatus = PcdSet64S (PcdConfidentialComputingGuestAttr, CCAttrAmdSev);
CCGuestAttr = CCAttrAmdSev;
}
if (MemEncryptSevEsDebugVirtualizationIsEnabled ()) {
CCGuestAttr |= CCAttrFeatureAmdSevEsDebugVirtualization;
}
PcdStatus = PcdSet64S (PcdConfidentialComputingGuestAttr, CCGuestAttr);
ASSERT_RETURN_ERROR (PcdStatus);
}