Re: [PATCH v8 27/40] x86/boot: Add Confidential Computing type to setup_data

From: Brijesh Singh
Date: Fri Dec 10 2021 - 15:19:08 EST



On 12/10/21 1:12 PM, Dave Hansen wrote:
> On 12/10/21 7:43 AM, Brijesh Singh wrote:
>> +/* AMD SEV Confidential computing blob structure */
>> +#define CC_BLOB_SEV_HDR_MAGIC 0x45444d41
>> +struct cc_blob_sev_info {
>> + u32 magic;
>> + u16 version;
>> + u16 reserved;
>> + u64 secrets_phys;
>> + u32 secrets_len;
>> + u64 cpuid_phys;
>> + u32 cpuid_len;
>> +};
> This is an ABI structure rather than some purely kernel construct, right?


This is ABI between the guest BIOS and Guest OS. It is defined in the OVMF.

https://github.com/tianocore/edk2/blob/master/OvmfPkg/Include/Guid/ConfidentialComputingSevSnpBlob.h

SEV-SNP FW spec does not have it documented; it's up to the guest BIOS
on how it wants to communicate the Secrets and CPUID page location to
guest OS.


> I searched through all of the specs to which you linked in the cover
> letter. I looked for "blob", "guid", the magic and part of the GUID
> itself trying to find where this is defined to see if the struct is correct.
>
> I couldn't find anything.
>
> Where is the spec for this blob? How large is it? Did you mean to
> leave a 4-byte hole after secrets_len and before cpuid_phys?

Yes, the length is never going to be > 4GB.