mirror of https://github.com/acidanthera/audk.git
OvmfPkg/BaseMemEncryptSevLib: remove Flush parameter
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3275 The Flush parameter is used to provide a hint whether the specified range is Mmio address. Now that we have a dedicated helper to clear the memory encryption mask for the Mmio address range, its safe to remove the Flush parameter from MemEncryptSev{Set,Clear}PageEncMask(). Since the address specified in the MemEncryptSev{Set,Clear}PageEncMask() points to a system RAM, thus a cache flush is required during the encryption mask update. 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: Laszlo Ersek <lersek@redhat.com> Cc: Erdem Aktas <erdemaktas@google.com> Reviewed-by: Laszlo Ersek <lersek@redhat.com> Signed-off-by: Brijesh Singh <brijesh.singh@amd.com> Message-Id: <20210519181949.6574-14-brijesh.singh@amd.com>
This commit is contained in:
parent
b4a8de5d27
commit
adfa3327d4
|
@ -120,8 +120,7 @@ AmdSevDxeEntryPoint (
|
|||
Status = MemEncryptSevClearPageEncMask (
|
||||
0, // Cr3BaseAddress -- use current CR3
|
||||
MapPagesBase, // BaseAddress
|
||||
MapPagesCount, // NumPages
|
||||
TRUE // Flush
|
||||
MapPagesCount // NumPages
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
DEBUG ((DEBUG_ERROR, "%a: MemEncryptSevClearPageEncMask(): %r\n",
|
||||
|
|
|
@ -100,8 +100,6 @@ MemEncryptSevIsEnabled (
|
|||
address of a memory region.
|
||||
@param[in] NumPages The number of pages from start memory
|
||||
region.
|
||||
@param[in] Flush Flush the caches before clearing the bit
|
||||
(mostly TRUE except MMIO addresses)
|
||||
|
||||
@retval RETURN_SUCCESS The attributes were cleared for the
|
||||
memory region.
|
||||
|
@ -114,8 +112,7 @@ EFIAPI
|
|||
MemEncryptSevClearPageEncMask (
|
||||
IN PHYSICAL_ADDRESS Cr3BaseAddress,
|
||||
IN PHYSICAL_ADDRESS BaseAddress,
|
||||
IN UINTN NumPages,
|
||||
IN BOOLEAN Flush
|
||||
IN UINTN NumPages
|
||||
);
|
||||
|
||||
/**
|
||||
|
@ -128,8 +125,6 @@ MemEncryptSevClearPageEncMask (
|
|||
address of a memory region.
|
||||
@param[in] NumPages The number of pages from start memory
|
||||
region.
|
||||
@param[in] Flush Flush the caches before setting the bit
|
||||
(mostly TRUE except MMIO addresses)
|
||||
|
||||
@retval RETURN_SUCCESS The attributes were set for the memory
|
||||
region.
|
||||
|
@ -142,8 +137,7 @@ EFIAPI
|
|||
MemEncryptSevSetPageEncMask (
|
||||
IN PHYSICAL_ADDRESS Cr3BaseAddress,
|
||||
IN PHYSICAL_ADDRESS BaseAddress,
|
||||
IN UINTN NumPages,
|
||||
IN BOOLEAN Flush
|
||||
IN UINTN NumPages
|
||||
);
|
||||
|
||||
|
||||
|
|
|
@ -252,8 +252,7 @@ IoMmuMap (
|
|||
Status = MemEncryptSevClearPageEncMask (
|
||||
0,
|
||||
MapInfo->PlainTextAddress,
|
||||
MapInfo->NumberOfPages,
|
||||
TRUE
|
||||
MapInfo->NumberOfPages
|
||||
);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
if (EFI_ERROR (Status)) {
|
||||
|
@ -407,8 +406,7 @@ IoMmuUnmapWorker (
|
|||
Status = MemEncryptSevSetPageEncMask (
|
||||
0,
|
||||
MapInfo->PlainTextAddress,
|
||||
MapInfo->NumberOfPages,
|
||||
TRUE
|
||||
MapInfo->NumberOfPages
|
||||
);
|
||||
ASSERT_EFI_ERROR (Status);
|
||||
if (EFI_ERROR (Status)) {
|
||||
|
|
|
@ -25,8 +25,6 @@
|
|||
address of a memory region.
|
||||
@param[in] NumPages The number of pages from start memory
|
||||
region.
|
||||
@param[in] Flush Flush the caches before clearing the bit
|
||||
(mostly TRUE except MMIO addresses)
|
||||
|
||||
@retval RETURN_SUCCESS The attributes were cleared for the
|
||||
memory region.
|
||||
|
@ -39,8 +37,7 @@ EFIAPI
|
|||
MemEncryptSevClearPageEncMask (
|
||||
IN PHYSICAL_ADDRESS Cr3BaseAddress,
|
||||
IN PHYSICAL_ADDRESS BaseAddress,
|
||||
IN UINTN NumPages,
|
||||
IN BOOLEAN Flush
|
||||
IN UINTN NumPages
|
||||
)
|
||||
{
|
||||
//
|
||||
|
@ -59,8 +56,6 @@ MemEncryptSevClearPageEncMask (
|
|||
address of a memory region.
|
||||
@param[in] NumPages The number of pages from start memory
|
||||
region.
|
||||
@param[in] Flush Flush the caches before setting the bit
|
||||
(mostly TRUE except MMIO addresses)
|
||||
|
||||
@retval RETURN_SUCCESS The attributes were set for the memory
|
||||
region.
|
||||
|
@ -73,8 +68,7 @@ EFIAPI
|
|||
MemEncryptSevSetPageEncMask (
|
||||
IN PHYSICAL_ADDRESS Cr3BaseAddress,
|
||||
IN PHYSICAL_ADDRESS BaseAddress,
|
||||
IN UINTN NumPages,
|
||||
IN BOOLEAN Flush
|
||||
IN UINTN NumPages
|
||||
)
|
||||
{
|
||||
//
|
||||
|
|
|
@ -27,8 +27,6 @@
|
|||
address of a memory region.
|
||||
@param[in] NumPages The number of pages from start memory
|
||||
region.
|
||||
@param[in] Flush Flush the caches before clearing the bit
|
||||
(mostly TRUE except MMIO addresses)
|
||||
|
||||
@retval RETURN_SUCCESS The attributes were cleared for the
|
||||
memory region.
|
||||
|
@ -41,15 +39,13 @@ EFIAPI
|
|||
MemEncryptSevClearPageEncMask (
|
||||
IN PHYSICAL_ADDRESS Cr3BaseAddress,
|
||||
IN PHYSICAL_ADDRESS BaseAddress,
|
||||
IN UINTN NumPages,
|
||||
IN BOOLEAN Flush
|
||||
IN UINTN NumPages
|
||||
)
|
||||
{
|
||||
return InternalMemEncryptSevSetMemoryDecrypted (
|
||||
Cr3BaseAddress,
|
||||
BaseAddress,
|
||||
EFI_PAGES_TO_SIZE (NumPages),
|
||||
Flush
|
||||
EFI_PAGES_TO_SIZE (NumPages)
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -63,8 +59,6 @@ MemEncryptSevClearPageEncMask (
|
|||
address of a memory region.
|
||||
@param[in] NumPages The number of pages from start memory
|
||||
region.
|
||||
@param[in] Flush Flush the caches before setting the bit
|
||||
(mostly TRUE except MMIO addresses)
|
||||
|
||||
@retval RETURN_SUCCESS The attributes were set for the memory
|
||||
region.
|
||||
|
@ -77,15 +71,13 @@ EFIAPI
|
|||
MemEncryptSevSetPageEncMask (
|
||||
IN PHYSICAL_ADDRESS Cr3BaseAddress,
|
||||
IN PHYSICAL_ADDRESS BaseAddress,
|
||||
IN UINTN NumPages,
|
||||
IN BOOLEAN Flush
|
||||
IN UINTN NumPages
|
||||
)
|
||||
{
|
||||
return InternalMemEncryptSevSetMemoryEncrypted (
|
||||
Cr3BaseAddress,
|
||||
BaseAddress,
|
||||
EFI_PAGES_TO_SIZE (NumPages),
|
||||
Flush
|
||||
EFI_PAGES_TO_SIZE (NumPages)
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -828,8 +828,6 @@ Done:
|
|||
@param[in] PhysicalAddress The physical address that is the start
|
||||
address of a memory region.
|
||||
@param[in] Length The length of memory region
|
||||
@param[in] Flush Flush the caches before applying the
|
||||
encryption mask
|
||||
|
||||
@retval RETURN_SUCCESS The attributes were cleared for the
|
||||
memory region.
|
||||
|
@ -842,8 +840,7 @@ EFIAPI
|
|||
InternalMemEncryptSevSetMemoryDecrypted (
|
||||
IN PHYSICAL_ADDRESS Cr3BaseAddress,
|
||||
IN PHYSICAL_ADDRESS PhysicalAddress,
|
||||
IN UINTN Length,
|
||||
IN BOOLEAN Flush
|
||||
IN UINTN Length
|
||||
)
|
||||
{
|
||||
|
||||
|
@ -852,7 +849,7 @@ InternalMemEncryptSevSetMemoryDecrypted (
|
|||
PhysicalAddress,
|
||||
Length,
|
||||
ClearCBit,
|
||||
Flush
|
||||
TRUE
|
||||
);
|
||||
}
|
||||
|
||||
|
@ -865,8 +862,6 @@ InternalMemEncryptSevSetMemoryDecrypted (
|
|||
@param[in] PhysicalAddress The physical address that is the start
|
||||
address of a memory region.
|
||||
@param[in] Length The length of memory region
|
||||
@param[in] Flush Flush the caches before applying the
|
||||
encryption mask
|
||||
|
||||
@retval RETURN_SUCCESS The attributes were set for the memory
|
||||
region.
|
||||
|
@ -879,8 +874,7 @@ EFIAPI
|
|||
InternalMemEncryptSevSetMemoryEncrypted (
|
||||
IN PHYSICAL_ADDRESS Cr3BaseAddress,
|
||||
IN PHYSICAL_ADDRESS PhysicalAddress,
|
||||
IN UINTN Length,
|
||||
IN BOOLEAN Flush
|
||||
IN UINTN Length
|
||||
)
|
||||
{
|
||||
return SetMemoryEncDec (
|
||||
|
@ -888,7 +882,7 @@ InternalMemEncryptSevSetMemoryEncrypted (
|
|||
PhysicalAddress,
|
||||
Length,
|
||||
SetCBit,
|
||||
Flush
|
||||
TRUE
|
||||
);
|
||||
}
|
||||
|
||||
|
|
|
@ -42,8 +42,6 @@ InternalGetMemEncryptionAddressMask (
|
|||
@param[in] PhysicalAddress The physical address that is the start
|
||||
address of a memory region.
|
||||
@param[in] Length The length of memory region
|
||||
@param[in] Flush Flush the caches before applying the
|
||||
encryption mask
|
||||
|
||||
@retval RETURN_SUCCESS The attributes were cleared for the
|
||||
memory region.
|
||||
|
@ -56,8 +54,7 @@ EFIAPI
|
|||
InternalMemEncryptSevSetMemoryDecrypted (
|
||||
IN PHYSICAL_ADDRESS Cr3BaseAddress,
|
||||
IN PHYSICAL_ADDRESS PhysicalAddress,
|
||||
IN UINTN Length,
|
||||
IN BOOLEAN Flush
|
||||
IN UINTN Length
|
||||
)
|
||||
{
|
||||
//
|
||||
|
@ -89,8 +86,7 @@ EFIAPI
|
|||
InternalMemEncryptSevSetMemoryEncrypted (
|
||||
IN PHYSICAL_ADDRESS Cr3BaseAddress,
|
||||
IN PHYSICAL_ADDRESS PhysicalAddress,
|
||||
IN UINTN Length,
|
||||
IN BOOLEAN Flush
|
||||
IN UINTN Length
|
||||
)
|
||||
{
|
||||
//
|
||||
|
|
|
@ -58,8 +58,6 @@ InternalGetMemEncryptionAddressMask (
|
|||
@param[in] PhysicalAddress The physical address that is the start
|
||||
address of a memory region.
|
||||
@param[in] Length The length of memory region
|
||||
@param[in] Flush Flush the caches before applying the
|
||||
encryption mask
|
||||
|
||||
@retval RETURN_SUCCESS The attributes were cleared for the
|
||||
memory region.
|
||||
|
@ -72,8 +70,7 @@ EFIAPI
|
|||
InternalMemEncryptSevSetMemoryDecrypted (
|
||||
IN PHYSICAL_ADDRESS Cr3BaseAddress,
|
||||
IN PHYSICAL_ADDRESS PhysicalAddress,
|
||||
IN UINTN Length,
|
||||
IN BOOLEAN Flush
|
||||
IN UINTN Length
|
||||
);
|
||||
|
||||
/**
|
||||
|
@ -85,8 +82,6 @@ InternalMemEncryptSevSetMemoryDecrypted (
|
|||
@param[in] PhysicalAddress The physical address that is the start
|
||||
address of a memory region.
|
||||
@param[in] Length The length of memory region
|
||||
@param[in] Flush Flush the caches before applying the
|
||||
encryption mask
|
||||
|
||||
@retval RETURN_SUCCESS The attributes were set for the memory
|
||||
region.
|
||||
|
@ -99,8 +94,7 @@ EFIAPI
|
|||
InternalMemEncryptSevSetMemoryEncrypted (
|
||||
IN PHYSICAL_ADDRESS Cr3BaseAddress,
|
||||
IN PHYSICAL_ADDRESS PhysicalAddress,
|
||||
IN UINTN Length,
|
||||
IN BOOLEAN Flush
|
||||
IN UINTN Length
|
||||
);
|
||||
|
||||
/**
|
||||
|
|
|
@ -283,8 +283,7 @@ SmmCpuFeaturesSmmRelocationComplete (
|
|||
Status = MemEncryptSevSetPageEncMask (
|
||||
0, // Cr3BaseAddress -- use current CR3
|
||||
MapPagesBase, // BaseAddress
|
||||
MapPagesCount, // NumPages
|
||||
TRUE // Flush
|
||||
MapPagesCount // NumPages
|
||||
);
|
||||
if (EFI_ERROR (Status)) {
|
||||
DEBUG ((DEBUG_ERROR, "%a: MemEncryptSevSetPageEncMask(): %r\n",
|
||||
|
|
|
@ -72,8 +72,7 @@ AmdSevEsInitialize (
|
|||
DecryptStatus = MemEncryptSevClearPageEncMask (
|
||||
0,
|
||||
GhcbBasePa + EFI_PAGES_TO_SIZE (PageCount),
|
||||
1,
|
||||
TRUE
|
||||
1
|
||||
);
|
||||
ASSERT_RETURN_ERROR (DecryptStatus);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue