[lkml]   [2021]   [Dec]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: [PATCH v8 27/40] x86/boot: Add Confidential Computing type to setup_data

On 12/10/21 2:30 PM, Dave Hansen wrote:
> 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.
>> 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?

Noted, I will add a comment so that readers can find it easily.
Additionally, I will create a doc and get it published on so that information is documented outside the
source code files.

>>> 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?

For SNP, both the firmware and OS need to be 64-bit. IIRC, both the
Linux and OVMF do not enable the memory encryption for the 32-bit.


 \ /
  Last update: 2021-12-13 15:51    [W:0.194 / U:0.280 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site