summaryrefslogtreecommitdiffstats
path: root/MdePkg/Library/BaseLib/BaseLib.inf
diff options
context:
space:
mode:
authorTom Lendacky <thomas.lendacky@amd.com>2024-03-08 07:31:25 -0800
committermergify[bot] <37929162+mergify[bot]@users.noreply.github.com>2024-04-17 18:30:03 +0000
commitc0bf953fe889f5a47fb830cec53a57bfa2380b4d (patch)
tree5783b0e313c076f18ba240cd8ff49f592f87d83e /MdePkg/Library/BaseLib/BaseLib.inf
parent8ccbf075f0f4451c760ab56288623c00e4d96e65 (diff)
downloadedk2-c0bf953fe889f5a47fb830cec53a57bfa2380b4d.tar.gz
edk2-c0bf953fe889f5a47fb830cec53a57bfa2380b4d.tar.bz2
edk2-c0bf953fe889f5a47fb830cec53a57bfa2380b4d.zip
MdePkg/BaseLib: Add a new VMGEXIT instruction invocation for SVSM
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>
Diffstat (limited to 'MdePkg/Library/BaseLib/BaseLib.inf')
-rw-r--r--MdePkg/Library/BaseLib/BaseLib.inf2
1 files changed, 2 insertions, 0 deletions
diff --git a/MdePkg/Library/BaseLib/BaseLib.inf b/MdePkg/Library/BaseLib/BaseLib.inf
index 4dbe94be71..26e66a8d67 100644
--- a/MdePkg/Library/BaseLib/BaseLib.inf
+++ b/MdePkg/Library/BaseLib/BaseLib.inf
@@ -187,6 +187,7 @@
Ia32/XGetBv.nasm
Ia32/XSetBv.nasm
Ia32/VmgExit.nasm
+ Ia32/VmgExitSvsm.nasm
Ia32/DivS64x64Remainder.c
Ia32/InternalSwitchStack.c | MSFT
@@ -328,6 +329,7 @@
X64/XGetBv.nasm
X64/XSetBv.nasm
X64/VmgExit.nasm
+ X64/VmgExitSvsm.nasm
ChkStkGcc.c | GCC
[Sources.EBC]