Thanks for the reminder. I will add the link in the header in next version.
> -----Original Message----- > From: Kinney, Michael D <michael.d.kin...@intel.com> > Sent: Friday, August 13, 2021 4:52 AM > To: Xu, Min M <min.m...@intel.com>; devel@edk2.groups.io; Kinney, Michael > D <michael.d.kin...@intel.com> > Cc: Liming Gao <gaolim...@byosoft.com.cn>; Liu, Zhiguang > <zhiguang....@intel.com> > Subject: RE: [PATCH 04/23] MdePkg: Add Tdx.h > > Hi Min, > > Please add the link to the public documentation to the Tdx.h file header > > Thanks, > > Mike > > > -----Original Message----- > > From: Xu, Min M <min.m...@intel.com> > > Sent: Thursday, August 12, 2021 4:57 AM > > To: devel@edk2.groups.io > > Cc: Xu, Min M <min.m...@intel.com>; Kinney, Michael D > > <michael.d.kin...@intel.com>; Liming Gao <gaolim...@byosoft.com.cn>; > > Liu, Zhiguang <zhiguang....@intel.com> > > Subject: [PATCH 04/23] MdePkg: Add Tdx.h > > > > RFC: https://bugzilla.tianocore.org/show_bug.cgi?id=3429 > > > > Tdx.h includes the Intel Trust Domain Extension definitions. > > > > Detailed information can be found in below document: > > https://software.intel.com/content/dam/develop/external/us/en/ > > documents/tdx-module-1eas-v0.85.039.pdf > > > > Cc: Michael D Kinney <michael.d.kin...@intel.com> > > Cc: Liming Gao <gaolim...@byosoft.com.cn> > > Cc: Zhiguang Liu <zhiguang....@intel.com> > > Signed-off-by: Min Xu <min.m...@intel.com> > > --- > > MdePkg/Include/IndustryStandard/Tdx.h | 200 > > ++++++++++++++++++++++++++ > > 1 file changed, 200 insertions(+) > > create mode 100644 MdePkg/Include/IndustryStandard/Tdx.h > > > > diff --git a/MdePkg/Include/IndustryStandard/Tdx.h > > b/MdePkg/Include/IndustryStandard/Tdx.h > > new file mode 100644 > > index 000000000000..c50470708b56 > > --- /dev/null > > +++ b/MdePkg/Include/IndustryStandard/Tdx.h > > @@ -0,0 +1,200 @@ > > +/** @file > > + Intel Trust Domain Extension definitions > > + > > + Copyright (c) 2020 - 2021, Intel Corporation. All rights > > + reserved.<BR> > > + SPDX-License-Identifier: BSD-2-Clause-Patent > > + > > +**/ > > + > > +#ifndef MDE_PKG_TDX_H_ > > +#define MDE_PKG_TDX_H_ > > + > > +#define EXIT_REASON_EXTERNAL_INTERRUPT 1 > > +#define EXIT_REASON_TRIPLE_FAULT 2 > > + > > +#define EXIT_REASON_PENDING_INTERRUPT 7 > > +#define EXIT_REASON_NMI_WINDOW 8 > > +#define EXIT_REASON_TASK_SWITCH 9 > > +#define EXIT_REASON_CPUID 10 > > +#define EXIT_REASON_HLT 12 > > +#define EXIT_REASON_INVD 13 > > +#define EXIT_REASON_INVLPG 14 > > +#define EXIT_REASON_RDPMC 15 > > +#define EXIT_REASON_RDTSC 16 > > +#define EXIT_REASON_VMCALL 18 > > +#define EXIT_REASON_VMCLEAR 19 > > +#define EXIT_REASON_VMLAUNCH 20 > > +#define EXIT_REASON_VMPTRLD 21 > > +#define EXIT_REASON_VMPTRST 22 > > +#define EXIT_REASON_VMREAD 23 > > +#define EXIT_REASON_VMRESUME 24 > > +#define EXIT_REASON_VMWRITE 25 > > +#define EXIT_REASON_VMOFF 26 > > +#define EXIT_REASON_VMON 27 > > +#define EXIT_REASON_CR_ACCESS 28 > > +#define EXIT_REASON_DR_ACCESS 29 > > +#define EXIT_REASON_IO_INSTRUCTION 30 > > +#define EXIT_REASON_MSR_READ 31 > > +#define EXIT_REASON_MSR_WRITE 32 > > +#define EXIT_REASON_INVALID_STATE 33 > > +#define EXIT_REASON_MSR_LOAD_FAIL 34 > > +#define EXIT_REASON_MWAIT_INSTRUCTION 36 > > +#define EXIT_REASON_MONITOR_TRAP_FLAG 37 > > +#define EXIT_REASON_MONITOR_INSTRUCTION 39 > > +#define EXIT_REASON_PAUSE_INSTRUCTION 40 > > +#define EXIT_REASON_MCE_DURING_VMENTRY 41 #define > > +EXIT_REASON_TPR_BELOW_THRESHOLD 43 > > +#define EXIT_REASON_APIC_ACCESS 44 > > +#define EXIT_REASON_EOI_INDUCED 45 > > +#define EXIT_REASON_GDTR_IDTR 46 > > +#define EXIT_REASON_LDTR_TR 47 > > +#define EXIT_REASON_EPT_VIOLATION 48 > > +#define EXIT_REASON_EPT_MISCONFIG 49 > > +#define EXIT_REASON_INVEPT 50 > > +#define EXIT_REASON_RDTSCP 51 > > +#define EXIT_REASON_PREEMPTION_TIMER 52 > > +#define EXIT_REASON_INVVPID 53 > > +#define EXIT_REASON_WBINVD 54 > > +#define EXIT_REASON_XSETBV 55 > > +#define EXIT_REASON_APIC_WRITE 56 > > +#define EXIT_REASON_RDRAND 57 > > +#define EXIT_REASON_INVPCID 58 > > +#define EXIT_REASON_VMFUNC 59 > > +#define EXIT_REASON_ENCLS 60 > > +#define EXIT_REASON_RDSEED 61 > > +#define EXIT_REASON_PML_FULL 62 > > +#define EXIT_REASON_XSAVES 63 > > +#define EXIT_REASON_XRSTORS 64 > > + > > +// TDCALL API Function Completion Status Codes > > +#define TDX_EXIT_REASON_SUCCESS 0x0000000000000000 > > +#define TDX_EXIT_REASON_PAGE_ALREADY_ACCEPTED > 0x00000B0A00000000 > > +#define TDX_EXIT_REASON_PAGE_SIZE_MISMATCH > 0xC0000B0B00000000 > > +#define TDX_EXIT_REASON_OPERAND_INVALID 0xC000010000000000 > > +#define TDX_EXIT_REASON_OPERAND_BUSY 0x8000020000000000 > > + > > +// TDCALL [TDG.MEM.PAGE.ACCEPT] page size > > +#define TDCALL_ACCEPT_PAGE_SIZE_4K 0 > > +#define TDCALL_ACCEPT_PAGE_SIZE_2M 1 > > +#define TDCALL_ACCEPT_PAGE_SIZE_1G 2 > > + > > +#define TDCALL_TDVMCALL 0 > > +#define TDCALL_TDINFO 1 > > +#define TDCALL_TDEXTENDRTMR 2 > > +#define TDCALL_TDGETVEINFO 3 > > +#define TDCALL_TDREPORT 4 > > +#define TDCALL_TDSETCPUIDVE 5 > > +#define TDCALL_TDACCEPTPAGE 6 > > + > > +#define TDVMCALL_CPUID 0x0000a > > +#define TDVMCALL_HALT 0x0000c > > +#define TDVMCALL_IO 0x0001e > > +#define TDVMCALL_RDMSR 0x0001f > > +#define TDVMCALL_WRMSR 0x00020 > > +#define TDVMCALL_MMIO 0x00030 > > +#define TDVMCALL_PCONFIG 0x00041 > > + > > +#define TDVMCALL_GET_TDVMCALL_INFO 0x10000 > > +#define TDVMCALL_MAPGPA 0x10001 > > +#define TDVMCALL_GET_QUOTE 0x10002 > > +#define TDVMCALL_REPORT_FATAL_ERR 0x10003 > > +#define TDVMCALL_SETUP_EVENT_NOTIFY 0x10004 > > + > > +#pragma pack(1) > > +typedef struct { > > + UINT64 Data[6]; > > +} TDCALL_GENERIC_RETURN_DATA; > > + > > +typedef struct { > > + UINT64 Gpaw; > > + UINT64 Attributes; > > + UINT32 MaxVcpus; > > + UINT32 NumVcpus; > > + UINT64 Resv[3]; > > +} TDCALL_INFO_RETURN_DATA; > > + > > +typedef union { > > + UINT64 Val; > > + struct { > > + UINT32 Size:3; > > + UINT32 Direction:1; > > + UINT32 String:1; > > + UINT32 Rep:1; > > + UINT32 Encoding:1; > > + UINT32 Resv:9; > > + UINT32 Port:16; > > + UINT32 Resv2; > > + } Io; > > +} VMX_EXIT_QUALIFICATION; > > + > > +typedef struct { > > + UINT32 ExitReason; > > + UINT32 Resv; > > + VMX_EXIT_QUALIFICATION ExitQualification; > > + UINT64 GuestLA; > > + UINT64 GuestPA; > > + UINT32 ExitInstructionLength; > > + UINT32 ExitInstructionInfo; > > + UINT32 Resv1; > > +} TDCALL_VEINFO_RETURN_DATA; > > + > > +typedef union { > > + TDCALL_GENERIC_RETURN_DATA Generic; > > + TDCALL_INFO_RETURN_DATA TdInfo; > > + TDCALL_VEINFO_RETURN_DATA VeInfo; > > +} TD_RETURN_DATA; > > + > > +/* data structure used in TDREPORT_STRUCT */ typedef struct { > > + UINT8 Type; > > + UINT8 Subtype; > > + UINT8 Version; > > + UINT8 Rsvd; > > +} TD_REPORT_TYPE; > > + > > +typedef struct { > > + TD_REPORT_TYPE ReportType; > > + UINT8 Rsvd1[12]; > > + UINT8 CpuSvn[16]; > > + UINT8 TeeTcbInfoHash[48]; > > + UINT8 TeeInfoHash[48]; > > + UINT8 ReportData[64]; > > + UINT8 Rsvd2[32]; > > + UINT8 Mac[32]; > > +} REPORTMACSTRUCT; > > + > > +typedef struct { > > + UINT8 Seam[2]; > > + UINT8 Rsvd[14]; > > +} TEE_TCB_SVN; > > + > > +typedef struct { > > + UINT8 Valid[8]; > > + TEE_TCB_SVN TeeTcbSvn; > > + UINT8 Mrseam[48]; > > + UINT8 Mrsignerseam[48]; > > + UINT8 Attributes[8]; > > + UINT8 Rsvd[111]; > > +} TEE_TCB_INFO; > > + > > +typedef struct { > > + UINT8 Attributes[8]; > > + UINT8 Xfam[8]; > > + UINT8 Mrtd[48]; > > + UINT8 Mrconfigid[48]; > > + UINT8 Mrowner[48]; > > + UINT8 Mrownerconfig[48]; > > + UINT8 Rtmrs[4][48]; > > + UINT8 Rsvd[112]; > > +} TDINFO; > > + > > +typedef struct { > > + REPORTMACSTRUCT ReportMacStruct; > > + TEE_TCB_INFO TeeTcbInfo; > > + UINT8 Rsvd[17]; > > + TDINFO Tdinfo; > > +} TDREPORT_STRUCT; > > + > > +#pragma pack() > > + > > +#endif > > -- > > 2.29.2.windows.2 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#79212): https://edk2.groups.io/g/devel/message/79212 Mute This Topic: https://groups.io/mt/84837892/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-