mirror of https://github.com/acidanthera/audk.git
c0bf953fe8
BZ: https://bugzilla.tianocore.org/show_bug.cgi?id=4654 The SVSM specification relies on a specific register calling convention to hold the parameters that are associated with the SVSM request. The SVSM is invoked by requesting the hypervisor to run the VMPL0 VMSA of the guest using the GHCB MSR Protocol or a GHCB NAE event. Create a new version of the VMGEXIT instruction that will adhere to this calling convention and load the SVSM function arguments into the proper register before invoking the VMGEXIT instruction. On return, perform the atomic exchange on the SVSM call pending value as specified in the SVSM specification. Cc: Liming Gao <gaoliming@byosoft.com.cn> Cc: Michael D Kinney <michael.d.kinney@intel.com> Cc: Zhiguang Liu <zhiguang.liu@intel.com> Acked-by: Gerd Hoffmann <kraxel@redhat.com> Signed-off-by: Tom Lendacky <thomas.lendacky@amd.com> |
||
---|---|---|
.. | ||
CpuBreakpoint.c | ||
CpuBreakpoint.nasm | ||
CpuId.nasm | ||
CpuIdEx.nasm | ||
CpuPause.nasm | ||
DisableCache.nasm | ||
DisableInterrupts.nasm | ||
DisablePaging64.nasm | ||
EnableCache.nasm | ||
EnableDisableInterrupts.nasm | ||
EnableInterrupts.nasm | ||
FlushCacheLine.nasm | ||
FxRestore.nasm | ||
FxSave.nasm | ||
GccInline.c | ||
GccInlinePriv.c | ||
Invd.nasm | ||
Lfence.nasm | ||
LongJump.nasm | ||
Monitor.nasm | ||
Mwait.nasm | ||
Non-existing.c | ||
Pvalidate.nasm | ||
RdRand.nasm | ||
ReadCr0.nasm | ||
ReadCr2.nasm | ||
ReadCr3.nasm | ||
ReadCr4.nasm | ||
ReadCs.nasm | ||
ReadDr0.nasm | ||
ReadDr1.nasm | ||
ReadDr2.nasm | ||
ReadDr3.nasm | ||
ReadDr4.nasm | ||
ReadDr5.nasm | ||
ReadDr6.nasm | ||
ReadDr7.nasm | ||
ReadDs.nasm | ||
ReadEflags.nasm | ||
ReadEs.nasm | ||
ReadFs.nasm | ||
ReadGdtr.nasm | ||
ReadGs.nasm | ||
ReadIdtr.nasm | ||
ReadLdtr.nasm | ||
ReadMm0.nasm | ||
ReadMm1.nasm | ||
ReadMm2.nasm | ||
ReadMm3.nasm | ||
ReadMm4.nasm | ||
ReadMm5.nasm | ||
ReadMm6.nasm | ||
ReadMm7.nasm | ||
ReadMsr64.c | ||
ReadMsr64.nasm | ||
ReadPmc.nasm | ||
ReadSs.nasm | ||
ReadTr.nasm | ||
ReadTsc.nasm | ||
RmpAdjust.nasm | ||
SetJump.nasm | ||
SwitchStack.nasm | ||
TdCall.nasm | ||
TdProbe.c | ||
TdVmcall.nasm | ||
Thunk16.nasm | ||
VmgExit.nasm | ||
VmgExitSvsm.nasm | ||
Wbinvd.nasm | ||
WriteCr0.nasm | ||
WriteCr2.nasm | ||
WriteCr3.nasm | ||
WriteCr4.nasm | ||
WriteDr0.nasm | ||
WriteDr1.nasm | ||
WriteDr2.nasm | ||
WriteDr3.nasm | ||
WriteDr4.nasm | ||
WriteDr5.nasm | ||
WriteDr6.nasm | ||
WriteDr7.nasm | ||
WriteGdtr.nasm | ||
WriteIdtr.nasm | ||
WriteLdtr.nasm | ||
WriteMm0.nasm | ||
WriteMm1.nasm | ||
WriteMm2.nasm | ||
WriteMm3.nasm | ||
WriteMm4.nasm | ||
WriteMm5.nasm | ||
WriteMm6.nasm | ||
WriteMm7.nasm | ||
WriteMsr64.c | ||
WriteMsr64.nasm | ||
WriteTr.nasm | ||
XGetBv.nasm | ||
XSetBv.nasm |