mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-28 16:14:04 +02:00
OvmfPkg: Implement AcceptAllUnacceptedMemory in AmdSevDxe
This protocol implementation disables the accept-all-memory behavior of the BeforeExitBootServices event this driver adds. Cc: Gerd Hoffmann <kraxel@redhat.com> Cc: James Bottomley <jejb@linux.ibm.com> Cc: Jiewen Yao <jiewen.yao@intel.com> Cc: Tom Lendacky <thomas.lendacky@amd.com> Cc: Ard Biesheuvel <ardb@kernel.org> Cc: "Min M. Xu" <min.m.xu@intel.com> Cc: Andrew Fish <afish@apple.com> Cc: "Michael D. Kinney" <michael.d.kinney@intel.com> Signed-off-by: Dionna Glaze <dionnaglaze@google.com> Reviewed-by: Ard Biesheuvel <ardb@kernel.org>
This commit is contained in:
parent
26847fb6be
commit
466d8f65e3
@ -21,6 +21,7 @@
|
|||||||
#include <Guid/ConfidentialComputingSevSnpBlob.h>
|
#include <Guid/ConfidentialComputingSevSnpBlob.h>
|
||||||
#include <Library/PcdLib.h>
|
#include <Library/PcdLib.h>
|
||||||
#include <Pi/PrePiDxeCis.h>
|
#include <Pi/PrePiDxeCis.h>
|
||||||
|
#include <Protocol/SevMemoryAcceptance.h>
|
||||||
#include <Protocol/MemoryAccept.h>
|
#include <Protocol/MemoryAccept.h>
|
||||||
|
|
||||||
STATIC CONFIDENTIAL_COMPUTING_SNP_BLOB_LOCATION mSnpBootDxeTable = {
|
STATIC CONFIDENTIAL_COMPUTING_SNP_BLOB_LOCATION mSnpBootDxeTable = {
|
||||||
@ -143,6 +144,21 @@ ResolveUnacceptedMemory (
|
|||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
STATIC
|
||||||
|
EFI_STATUS
|
||||||
|
EFIAPI
|
||||||
|
AllowUnacceptedMemory (
|
||||||
|
IN OVMF_SEV_MEMORY_ACCEPTANCE_PROTOCOL *This
|
||||||
|
)
|
||||||
|
{
|
||||||
|
mAcceptAllMemoryAtEBS = FALSE;
|
||||||
|
return EFI_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
STATIC
|
||||||
|
OVMF_SEV_MEMORY_ACCEPTANCE_PROTOCOL
|
||||||
|
mMemoryAcceptanceProtocol = { AllowUnacceptedMemory };
|
||||||
|
|
||||||
STATIC EDKII_MEMORY_ACCEPT_PROTOCOL mMemoryAcceptProtocol = {
|
STATIC EDKII_MEMORY_ACCEPT_PROTOCOL mMemoryAcceptProtocol = {
|
||||||
AmdSevMemoryAccept
|
AmdSevMemoryAccept
|
||||||
};
|
};
|
||||||
@ -268,11 +284,13 @@ AmdSevDxeEntryPoint (
|
|||||||
// Memory acceptance began being required in SEV-SNP, so install the
|
// Memory acceptance began being required in SEV-SNP, so install the
|
||||||
// memory accept protocol implementation for a SEV-SNP active guest.
|
// memory accept protocol implementation for a SEV-SNP active guest.
|
||||||
//
|
//
|
||||||
Status = gBS->InstallProtocolInterface (
|
Status = gBS->InstallMultipleProtocolInterfaces (
|
||||||
&mAmdSevDxeHandle,
|
&mAmdSevDxeHandle,
|
||||||
&gEdkiiMemoryAcceptProtocolGuid,
|
&gEdkiiMemoryAcceptProtocolGuid,
|
||||||
EFI_NATIVE_INTERFACE,
|
&mMemoryAcceptProtocol,
|
||||||
&mMemoryAcceptProtocol
|
&gOvmfSevMemoryAcceptanceProtocolGuid,
|
||||||
|
&mMemoryAcceptanceProtocol,
|
||||||
|
NULL
|
||||||
);
|
);
|
||||||
ASSERT_EFI_ERROR (Status);
|
ASSERT_EFI_ERROR (Status);
|
||||||
|
|
||||||
|
@ -49,6 +49,7 @@
|
|||||||
|
|
||||||
[Protocols]
|
[Protocols]
|
||||||
gEdkiiMemoryAcceptProtocolGuid
|
gEdkiiMemoryAcceptProtocolGuid
|
||||||
|
gOvmfSevMemoryAcceptanceProtocolGuid
|
||||||
|
|
||||||
[Guids]
|
[Guids]
|
||||||
gConfidentialComputingSevSnpBlobGuid
|
gConfidentialComputingSevSnpBlobGuid
|
||||||
|
Loading…
x
Reference in New Issue
Block a user