OvmfPkg/MemEncryptSevLib: find pages of initial SMRAM save state map
In the next three patches, we're going to modify three modules under OvmfPkg. When OVMF is built with -D SMM_REQUIRE and runs in an SEV guest, each affected module will have to know the page range that covers the initial (pre-SMBASE relocation) SMRAM save state map. Add a helper function to MemEncryptSevLib that calculates the "base address" and "number of pages" constants for this page range. (In a RELEASE build -- i.e., with assertions disabled and optimization enabled --, the helper function can be compiled to store two constants determined at compile time.) Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org> Cc: Brijesh Singh <brijesh.singh@amd.com> Cc: Jordan Justen <jordan.l.justen@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Laszlo Ersek <lersek@redhat.com> Tested-by: Brijesh Singh <brijesh.singh@amd.com> Reviewed-by: Brijesh Singh <brijesh.singh@amd.com>
This commit is contained in:
@@ -86,4 +86,27 @@ MemEncryptSevSetPageEncMask (
|
||||
IN UINTN NumPages,
|
||||
IN BOOLEAN Flush
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
Locate the page range that covers the initial (pre-SMBASE-relocation) SMRAM
|
||||
Save State Map.
|
||||
|
||||
@param[out] BaseAddress The base address of the lowest-address page that
|
||||
covers the initial SMRAM Save State Map.
|
||||
|
||||
@param[out] NumberOfPages The number of pages in the page range that covers
|
||||
the initial SMRAM Save State Map.
|
||||
|
||||
@retval RETURN_SUCCESS BaseAddress and NumberOfPages have been set on
|
||||
output.
|
||||
|
||||
@retval RETURN_UNSUPPORTED SMM is unavailable.
|
||||
**/
|
||||
RETURN_STATUS
|
||||
EFIAPI
|
||||
MemEncryptSevLocateInitialSmramSaveStateMapPages (
|
||||
OUT UINTN *BaseAddress,
|
||||
OUT UINTN *NumberOfPages
|
||||
);
|
||||
#endif // _MEM_ENCRYPT_SEV_LIB_H_
|
||||
|
Reference in New Issue
Block a user