On September 6, 2021 8:17 PM, Gerd Hoffman wrote:
>   Hi,
> 
> > > >  sevSnpBootBlockStart:
> > > > +    DD      SNP_HV_VALIDATED_START
> > > > +    DD      SNP_HV_VALIDATED_END
> 
> > We pack all the Tdx information into  a blob (TdxMetadata). These tdx
> > information Includes the BFV(i.e. OVMF_CODE.fd), the CFV(i.e.
> OVMF_VARS.fd), TdMailbox, etc.
> > The offset to the TdxMetadata is in the GUIDed chain in
> ResetVectorVtf0.asm.
> 
> > In the future new metadata can be added into the TdxMetadata without
> > changes in ResetVectorVtf0.asm.
> 
> [ Looking at https://www.mail-
> archive.com/devel@edk2.groups.io/msg33605.html ]
> 
> So, there isn't much tdx-specific in tdx-metadata.  Most ranges are
> TDX_METADATA_SECTION_TYPE_TEMP_MEM which I think basically means
> these ranges should be accepted by the hypervisor, which is pretty much the
> same issue snp tries to solve with this pre-validation range.  Then there are
> the ranges for code (aka bfv), for vars (aka cfv) and td_hob.
> 
> td_hob is the only tdx-specific item there, and even that concept (pass
> memory ranges as hob list from hypervisor to guest) might be useful outside
> tdx.
Mailbox is tdx-specific too. But Stack/Heap/OvmfWorkarea/OvmfPageTable are
common. BFV/CFV are common too.
> 
> So, can we settle on one approach for this please?  I think the tdx-metadata
> style approach is more flexible and future-proof.  It can easily be extended
> without changing data structures, we only need new section types.  I expect
> this will work better long-term when it comes to backward-compatibility.
> 
> I'd suggest we generalize the tdx-metadata idea and define both generic and
> vmm-specific section types:
> 
> enum {
>   OVMF_SECTION_TYPE_UNDEFINED = 0;
> 
>   /* generic */
>   OVMF_SECTION_TYPE_CODE = 0x100,
>   OVMF_SECTION_TYPE_VARS
>   OVMF_SECTION_TYPE_SEC_MEM  /* vmm should accept/validate this */
> 
>   /* sev */
>   OVMF_SECTION_TYPE_SEV_SECRETS = 0x200,
>   OVMF_SECTION_TYPE_SEV_CPUID /* or move to generic? */
> 
>   /* tdx */
>   OVMV_SECTION_TYPE_TDX_TD_HOB = 0x300,
> };
> 
> Comments?
TDX has similar section type.
But I am not sure if SEV can use this metadata mechanism.
Need SEV's comments.
> 
> Looking at tdx-metadata I have a few questions:
> 
> +_Bfv:
> +  DD TDX_BFV_RAW_DATA_OFFSET
> +  DD TDX_BFV_RAW_DATA_SIZE
> 
> What is this and why is it needed?
Host VMM need to measure the code part (BFV) to MRTD register
(which is similar to TPM PCRs).
> 
> +  DQ TDX_BFV_MEMORY_BASE
> +  DQ TDX_BFV_MEMORY_SIZE
> 
> Why "DQ"?  TDX is defined to start in 32bit mode, so you can hardly have
> addresses here which do not fit into "DD", correct?
Those are the memory. TDX is running in long mode. So it is DQ.
> 
> +  DD TDX_METADATA_SECTION_TYPE_BFV
> +  DD TDX_METADATA_ATTRIBUTES_EXTENDMR
> 
> What does this attribute mean?
It indicates if the host VMM should use TDCALL[TDH.MR.EXTEND] for this section.
https://software.intel.com/content/dam/develop/external/us/en/documents/tdx-virtual-firmware-design-guide-rev-1.pdf
Please refer to Section 11 TDVF Metadata for more detailed information.
Note: this Section will be updated according to the comments from the community.
> 

Thanks!
Min


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#80270): https://edk2.groups.io/g/devel/message/80270
Mute This Topic: https://groups.io/mt/85306660/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to