diff options
author | Claudio Carvalho <cclaudio@linux.ibm.com> | 2024-06-10 22:29:25 +0300 |
---|---|---|
committer | Ard Biesheuvel <workofard@gmail.com> | 2025-03-16 20:21:44 +0100 |
commit | 87d4cdd09e4d9432c150a3a029dcad7da38bcffa (patch) | |
tree | f9c42b142ae077c9d98bfe9bbea6c9f93259584e | |
parent | 458198aa49c39fa61ab735c0fb3cd22d1f6fdee7 (diff) | |
download | edk2-87d4cdd09e4d9432c150a3a029dcad7da38bcffa.zip edk2-87d4cdd09e4d9432c150a3a029dcad7da38bcffa.tar.gz edk2-87d4cdd09e4d9432c150a3a029dcad7da38bcffa.tar.bz2 |
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>
-rw-r--r-- | UefiCpuPkg/Include/Library/AmdSvsmLib.h | 41 | ||||
-rw-r--r-- | UefiCpuPkg/Library/AmdSvsmLibNull/AmdSvsmLibNull.c | 47 |
2 files changed, 88 insertions, 0 deletions
diff --git a/UefiCpuPkg/Include/Library/AmdSvsmLib.h b/UefiCpuPkg/Include/Library/AmdSvsmLib.h index 40e0e5b..693b79b 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 a83fcbd..fc6871c 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;
+}
|