On 12/10/21 12:18 PM, Brijesh Singh wrote: > 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. Well, no matter where it is defined, could we please make it a bit easier for folks to find it in the future? >> 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. I was more concerned that this structure could change sizes if it were compiled on 32-bit versus 64-bit code. For kernel ABIs, we try not to do that. Is this somehow OK when talking to firmware? Or can a 32-bit OS and 64-bit firmware never interact?