130 lines
4.0 KiB
Diff
130 lines
4.0 KiB
Diff
From 87d4cdd09e4d9432c150a3a029dcad7da38bcffa Mon Sep 17 00:00:00 2001
|
|
From: Claudio Carvalho <cclaudio@linux.ibm.com>
|
|
Date: Mon, 10 Jun 2024 22:29:25 +0300
|
|
Subject: [PATCH] UefiCpuPkg/AmdSvsmLib: Stub the SVSM vTPM protocol for
|
|
non-VMPL0 guests
|
|
|
|
We need to stub the SVSM vTPM protocol in the UefiCpuPkg in order to
|
|
support a SEV-SNP guest running under a SVSM at VMPL1 or lower.
|
|
|
|
Cc: Ray Ni <ray.ni@intel.com>
|
|
Cc: Rahul Kumar <rahul1.kumar@intel.com>
|
|
Cc: Gerd Hoffmann <kraxel@redhat.com>
|
|
Cc: Jiaxin Wu <jiaxin.wu@intel.com>
|
|
Co-authored-by: James Bottomley <James.Bottomley@HansenPartnership.com>
|
|
Signed-off-by: Claudio Carvalho <cclaudio@linux.ibm.com>
|
|
Signed-off-by: Oliver Steffen <osteffen@redhat.com>
|
|
---
|
|
UefiCpuPkg/Include/Library/AmdSvsmLib.h | 41 ++++++++++++++++
|
|
.../Library/AmdSvsmLibNull/AmdSvsmLibNull.c | 47 +++++++++++++++++++
|
|
2 files changed, 88 insertions(+)
|
|
|
|
diff --git a/UefiCpuPkg/Include/Library/AmdSvsmLib.h b/UefiCpuPkg/Include/Library/AmdSvsmLib.h
|
|
index 40e0e5bd42..693b79bda5 100644
|
|
--- a/UefiCpuPkg/Include/Library/AmdSvsmLib.h
|
|
+++ b/UefiCpuPkg/Include/Library/AmdSvsmLib.h
|
|
@@ -98,4 +98,45 @@ AmdSvsmSnpVmsaRmpAdjust (
|
|
IN BOOLEAN SetVmsa
|
|
);
|
|
|
|
+/**
|
|
+ Perform a SVSM_VTPM_QUERY operation
|
|
+
|
|
+ Query the support provided by the SVSM vTPM.
|
|
+
|
|
+ @param[out] PlatformCommands It will contain a bitmap indicating the
|
|
+ supported vTPM platform commands.
|
|
+ @param[out] Features It will contain a bitmap indicating the
|
|
+ supported vTPM features.
|
|
+
|
|
+ @retval TRUE The query was processed.
|
|
+ @retval FALSE The query was not processed.
|
|
+
|
|
+**/
|
|
+BOOLEAN
|
|
+EFIAPI
|
|
+AmdSvsmVtpmQuery (
|
|
+ OUT UINT64 *PlatformCommands,
|
|
+ OUT UINT64 *Features
|
|
+ );
|
|
+
|
|
+/**
|
|
+ Perform a SVSM_VTPM_CMD operation
|
|
+
|
|
+ Send the specified vTPM platform command to the SVSM vTPM.
|
|
+
|
|
+ @param[in, out] Buffer It should contain the vTPM platform command
|
|
+ request. The respective response will be returned
|
|
+ in the same Buffer, but not all commands specify a
|
|
+ response.
|
|
+
|
|
+ @retval TRUE The command was processed.
|
|
+ @retval FALSE The command was not processed.
|
|
+
|
|
+**/
|
|
+BOOLEAN
|
|
+EFIAPI
|
|
+AmdSvsmVtpmCmd (
|
|
+ IN OUT UINT8 *Buffer
|
|
+ );
|
|
+
|
|
#endif
|
|
diff --git a/UefiCpuPkg/Library/AmdSvsmLibNull/AmdSvsmLibNull.c b/UefiCpuPkg/Library/AmdSvsmLibNull/AmdSvsmLibNull.c
|
|
index a83fcbd6ce..fc6871c7b2 100644
|
|
--- a/UefiCpuPkg/Library/AmdSvsmLibNull/AmdSvsmLibNull.c
|
|
+++ b/UefiCpuPkg/Library/AmdSvsmLibNull/AmdSvsmLibNull.c
|
|
@@ -106,3 +106,50 @@ AmdSvsmSnpVmsaRmpAdjust (
|
|
{
|
|
return EFI_UNSUPPORTED;
|
|
}
|
|
+
|
|
+/**
|
|
+ Perform a SVSM_VTPM_QUERY operation
|
|
+
|
|
+ Query the support provided by the SVSM vTPM.
|
|
+
|
|
+ @param[out] PlatformCommands It will contain a bitmap indicating the
|
|
+ supported vTPM platform commands.
|
|
+ @param[out] Features It will contain a bitmap indicating the
|
|
+ supported vTPM features.
|
|
+
|
|
+ @retval TRUE The query was processed.
|
|
+ @retval FALSE The query was not processed.
|
|
+
|
|
+**/
|
|
+BOOLEAN
|
|
+EFIAPI
|
|
+AmdSvsmVtpmQuery (
|
|
+ OUT UINT64 *PlatformCommands,
|
|
+ OUT UINT64 *Features
|
|
+ )
|
|
+{
|
|
+ return FALSE;
|
|
+}
|
|
+
|
|
+/**
|
|
+ Perform a SVSM_VTPM_CMD operation
|
|
+
|
|
+ Send the specified vTPM platform command to the SVSM vTPM.
|
|
+
|
|
+ @param[in, out] Buffer It should contain the vTPM platform command
|
|
+ request. The respective response will be returned
|
|
+ in the same Buffer, but not all commands specify a
|
|
+ response.
|
|
+
|
|
+ @retval TRUE The command was processed.
|
|
+ @retval FALSE The command was not processed.
|
|
+
|
|
+**/
|
|
+BOOLEAN
|
|
+EFIAPI
|
|
+AmdSvsmVtpmCmd (
|
|
+ IN OUT UINT8 *Buffer
|
|
+ )
|
|
+{
|
|
+ return FALSE;
|
|
+}
|
|
--
|
|
2.43.0
|
|
|