[edk2-devel] [PATCH 2/4] OvmfPkg/AmdSevDxe: Update ConfidentialComputing blob struct definition

Yao, Jiewen jiewen.yao at intel.com
Fri Jan 6 09:14:32 UTC 2023


Acked-by: Jiewen Yao <jiewen.yao at intel.com>

> -----Original Message-----
> From: devel at edk2.groups.io <devel at edk2.groups.io> On Behalf Of Roth,
> Michael via groups.io
> Sent: Thursday, December 22, 2022 12:07 AM
> To: devel at edk2.groups.io
> Cc: Tom Lendacky <thomas.lendacky at amd.com>; Ni, Ray <ray.ni at intel.com>
> Subject: [edk2-devel] [PATCH 2/4] OvmfPkg/AmdSevDxe: Update
> ConfidentialComputing blob struct definition
> 
> The Confidential Computing blob defined here is intended to match the
> definition defined by linux guest kernel. Previously, both definitions
> relied on natural alignment, but that relies on both OVMF and kernel
> being compiled as 64-bit. While there aren't currently any plans to
> enable SNP support for 32-bit compilations, the kernel definition has
> since been updated to use explicit padding/reserved fields to avoid
> this dependency. Update OVMF to match that definition.
> 
> While at it, also fix up the Reserved fields to match the numbering
> used in the kernel.
> 
> No functional changes (for currently-supported environments, at least).
> 
> Reviewed-by: Tom Lendacky <thomas.lendacky at amd.com>
> Signed-off-by: Michael Roth <michael.roth at amd.com>
> ---
>  OvmfPkg/AmdSevDxe/AmdSevDxe.c                          | 4 +++-
>  OvmfPkg/Include/Guid/ConfidentialComputingSevSnpBlob.h | 6 ++++--
>  2 files changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/OvmfPkg/AmdSevDxe/AmdSevDxe.c
> b/OvmfPkg/AmdSevDxe/AmdSevDxe.c
> index 8dfda961d7..00bb6e5d96 100644
> --- a/OvmfPkg/AmdSevDxe/AmdSevDxe.c
> +++ b/OvmfPkg/AmdSevDxe/AmdSevDxe.c
> @@ -41,11 +41,13 @@ AllocateConfidentialComputingBlob (
> 
> 
>    CcBlob->Header                 = SIGNATURE_32 ('A', 'M', 'D', 'E');
> 
>    CcBlob->Version                = 1;
> 
> -  CcBlob->Reserved1              = 0;
> 
> +  CcBlob->Reserved               = 0;
> 
>    CcBlob->SecretsPhysicalAddress = (UINT64)(UINTN)FixedPcdGet32
> (PcdOvmfSnpSecretsBase);
> 
>    CcBlob->SecretsSize            = FixedPcdGet32 (PcdOvmfSnpSecretsSize);
> 
> +  CcBlob->Reserved1              = 0;
> 
>    CcBlob->CpuidPhysicalAddress   = (UINT64)(UINTN)FixedPcdGet32
> (PcdOvmfCpuidBase);
> 
>    CcBlob->CpuidLSize             = FixedPcdGet32 (PcdOvmfCpuidSize);
> 
> +  CcBlob->Reserved2              = 0;
> 
> 
> 
>    *CcBlobPtr = CcBlob;
> 
> 
> 
> diff --git a/OvmfPkg/Include/Guid/ConfidentialComputingSevSnpBlob.h
> b/OvmfPkg/Include/Guid/ConfidentialComputingSevSnpBlob.h
> index b328310fd0..83620e31b8 100644
> --- a/OvmfPkg/Include/Guid/ConfidentialComputingSevSnpBlob.h
> +++ b/OvmfPkg/Include/Guid/ConfidentialComputingSevSnpBlob.h
> @@ -18,14 +18,16 @@
>      { 0x85, 0x54, 0x93, 0xd7, 0x77, 0x91, 0x2d, 0x42 }, \
> 
>    }
> 
> 
> 
> -typedef struct {
> 
> +typedef PACKED struct {
> 
>    UINT32    Header;
> 
>    UINT16    Version;
> 
> -  UINT16    Reserved1;
> 
> +  UINT16    Reserved;
> 
>    UINT64    SecretsPhysicalAddress;
> 
>    UINT32    SecretsSize;
> 
> +  UINT32    Reserved1;
> 
>    UINT64    CpuidPhysicalAddress;
> 
>    UINT32    CpuidLSize;
> 
> +  UINT32    Reserved2;
> 
>  } CONFIDENTIAL_COMPUTING_SNP_BLOB_LOCATION;
> 
> 
> 
>  extern EFI_GUID  gConfidentialComputingSevSnpBlobGuid;
> 
> --
> 2.25.1
> 
> 
> 
> 
> 



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#98085): https://edk2.groups.io/g/devel/message/98085
Mute This Topic: https://groups.io/mt/95815541/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-




More information about the edk2-devel-archive mailing list