edk2/OvmfPkg/Library
Brijesh Singh via groups.io d39f8d88ec OvmfPkg/MemEncryptSevLib: add support to validate > 4GB memory in PEI phase
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=3275

The initial page built during the SEC phase is used by the
MemEncryptSevSnpValidateSystemRam() for the system RAM validation. The
page validation process requires using the PVALIDATE instruction;  the
instruction accepts a virtual address of the memory region that needs
to be validated. If hardware encounters a page table walk failure (due
to page-not-present) then it raises #GP.

The initial page table built in SEC phase address up to 4GB. Add an
internal function to extend the page table to cover > 4GB. The function
builds 1GB entries in the page table for access > 4GB. This will provide
the support to call PVALIDATE instruction for the virtual address >
4GB in PEI phase.

Cc: Michael Roth <michael.roth@amd.com>
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>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Acked-by: Jiewen Yao <Jiewen.yao@intel.com>
Acked-by: Gerd Hoffmann <kraxel@redhat.com>
Signed-off-by: Brijesh Singh <brijesh.singh@amd.com>
2021-12-09 06:28:10 +00:00
..
AcpiTimerLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
BaseMemEncryptSevLib OvmfPkg/MemEncryptSevLib: add support to validate > 4GB memory in PEI phase 2021-12-09 06:28:10 +00:00
BasePciCapLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
BasePciCapPciSegmentLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
BhyveFwCtlLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
BlobVerifierLibNull OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
DxePciLibI440FxQ35 OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
EmuVariableFvbLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
GenericQemuLoadImageLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
LoadLinuxLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
LockBoxLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
NvVarsFileLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
PciHostBridgeLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
PciHostBridgeLibScan OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
PciHostBridgeUtilityLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
PlatformBmPrintScLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
PlatformBootManagerLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
PlatformBootManagerLibBhyve OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
PlatformBootManagerLibGrub OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
PlatformDebugLibIoPort OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
PlatformFvbLibNull OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
PlatformHasIoMmuLib OvmfPkg: Replace BSD License with BSD+Patent License 2019-04-09 10:58:19 -07:00
PlatformSecureLib OvmfPkg: strip trailing whitespace 2019-10-04 11:18:32 +01:00
PxeBcPcdProducerLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
QemuBootOrderLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
QemuFwCfgLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
QemuFwCfgS3Lib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
QemuFwCfgSimpleParserLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
ResetSystemLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
SerializeVariablesLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
SmbiosVersionLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
SmmCpuFeaturesLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
SmmCpuPlatformHookLibQemu OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
Tcg2PhysicalPresenceLibNull OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
Tcg2PhysicalPresenceLibQemu OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
TlsAuthConfigLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
UefiPciCapPciIoLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
VirtioLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
VirtioMmioDeviceLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
VmgExitLib OvmfPkg/VmgExitLib: use SEV-SNP-validated CPUID values 2021-12-09 06:28:10 +00:00
X86QemuLoadImageLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
XenConsoleSerialPortLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
XenHypercallLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
XenIoMmioLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
XenPlatformLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00
XenRealTimeClockLib OvmfPkg: Apply uncrustify changes 2021-12-07 17:24:28 +00:00