Thanks Min Series: Reviewed-by: Jiewen Yao <jiewen....@intel.com> > -----Original Message----- > From: Xu, Min M <min.m...@intel.com> > Sent: Wednesday, March 30, 2022 7:46 AM > To: devel@edk2.groups.io > Cc: Xu, Min M <min.m...@intel.com>; Brijesh Singh <brijesh.si...@amd.com>; > Dong, Eric <eric.d...@intel.com>; Aktas, Erdem <erdemak...@google.com>; > Wu, Hao A <hao.a...@intel.com>; Wang, Jian J <jian.j.w...@intel.com>; > James Bottomley <j...@linux.ibm.com>; Yao, Jiewen <jiewen....@intel.com>; > Gao, Liming <gaolim...@byosoft.com.cn>; Kinney, Michael D > <michael.d.kin...@intel.com>; Ni, Ray <ray...@intel.com>; Kumar, Rahul1 > <rahul1.ku...@intel.com>; Tom Lendacky <thomas.lenda...@amd.com>; Liu, > Zhiguang <zhiguang....@intel.com>; Gerd Hoffmann <kra...@redhat.com> > Subject: [PATCH V12 00/47] Enable Intel TDX in OvmfPkg (Config-A) > > REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3249 > > Intel's Trust Domain Extensions (Intel TDX) refers to an Intel technology > that extends Virtual Machines Extensions (VMX) and Multi-Key Total Memory > Encryption (MKTME) with a new kind of virutal machines guest called a > Trust Domain (TD). A TD is desinged to run in a CPU mode that protects the > confidentiality of TD memory contents and the TD's CPU state from other > software, including the hosting Virtual-Machine Monitor (VMM), unless > explicitly shared by the TD itself. > > There are 2 configurations for TDVF to upstream. See below link for > the definitions of the 2 configurations. > https://edk2.groups.io/g/devel/message/76367 > > This patch-set is to enable Config-A in OvmfPkg. > - Merge the *basic* TDVF feature to existing OvmfX64Pkg.dsc. (Align > with existing SEV) > - Threat model: VMM is NOT out of TCB. (We don’t make things worse.) > - The OvmfX64Pkg.dsc includes SEV/TDX/normal OVMF basic boot capability. > The final binary can run on SEV/TDX/normal OVMF > - No changes to existing OvmfPkgX64 image layout. > - No need to add additional security features if they do not exist today > - No need to remove features if they exist today. > - RTMR is not supported > - PEI phase is NOT skipped in either Td or Non-Td > > Patch 01 - 33 are changes in SEC phase. Also some libraries in these > patches are workable in SEC/PEI/DXE. > > Patch 16 - 29 extract the common codes from OvmfPkg/PlatformPei to a new > PlatformInitLib. After that OvmfPkg/PlatformPei is refactored with this > lib. These 14 patches are currently reviewed in another separate > patch-set. https://edk2.groups.io/g/devel/message/87327 > > Patch 34 - 39 are changes in PEI phase. > > Patch 40 - 44 are changes in DXE phase. > > Patch 45 - 47 are for local Apic timer DXE driver. > > [TDX]: https://software.intel.com/content/dam/develop/external/us/en/ > documents/tdx-whitepaper-final9-17.pdf > > [TDX-Module]: https://software.intel.com/content/dam/develop/external/ > us/en/documents/tdx-module-1.0-public-spec-v0.931.pdf > > [TDVF]: https://software.intel.com/content/dam/develop/external/us/en/ > documents/tdx-virtual-firmware-design-guide-rev-1.pdf > > [GCHI]: https://software.intel.com/content/dam/develop/external/us/en/ > documents/intel-tdx-guest-hypervisor-communication-interface-1.0-344426- > 002.pdf > > Code is at https://github.com/mxu9/edk2/tree/tdvf_wave2.v12 > > v12 changes: > - Update MpInitLib based on the review feedbacks. Please see > https://edk2.groups.io/g/devel/message/88173. > - Update the code base to 2b4b8013fe45. > > v11 changes: > - Update MpInitlib based on the review comments. Please see > https://edk2.groups.io/g/devel/message/88089 > - Update the code base to 3ef2071927fa. > > v10 changes: > - Update MpInitLib based on the review comments. Please see the > discussion: https://edk2.groups.io/g/devel/message/87902 > - Update the code base to ec0b54849b23. > > v9 changes: > - Move the definition of EFI_RESOURCE_MEMORY_UNACCEPTED from MdePkg > to OvmfPkg as in internal implementation. Because it has not been > added in PI spec. After the definition is added in PI spec, it can > be moved to MdePkg. > - Add definition of new CPUID leaf 0x21 in > MdePkg/Include/Register/Intel/Cpuid.h. > - Use switch-case to hanle VC/VE handling together in > CpuExceptionHandlerLib. > - Refactor changes for Tdx guest in MpInitLib. > - Refine the comments in BaseLib and PlatformInitLib. > - Other minor updates and changes. > > v8 changes: > - Based on the comments of PlatformInitLib and OvmfPkg/PlatformPei, > a separte patch-set is created for the changes. It is now under review > https://edk2.groups.io/g/devel/message/87327 > - Based on the comments, TdCall/TdVmCall/TdIsEnabled is wrapped with > MDE_CPU_IA32 and MDE_CPU_X64. > - EFI_RESOURCE_ATTRIBUTE_ENCRYPTED is removed based on the TDVF Spec > update. Instead EFI_RESOURCE_MEMORY_UNACCEPTED is added to indicate > the memory which to be accepted in TDVF. The corresponding logic > of AcceptMemory is updated as well. Please see Patch 31. > - PcdIa32EferChangeAllowed is deleted. Because for Td guest > IA32_EFER.NXE is set by default. So we only need check whether it has > been set before it is to be set again. See Patch 35. > - Based on comments PcdTdxSharedBitMask is defined in > [PcdsFixedAtBuild, PcdsPatchableInModule, PcdsDynamic, PcdsDynamicEx] > - Delete un-necessary header files in TdxLib.h. > - Other minor updates and changes. > > v7 changes: > - Based on the comments from last review, 8 PlatformInitLib patches > are squashed into 4 patches (#17-#20). These 4 patches are not > related to Tdx guest. Tdx related codes of PlatformInitLib is > in #21. > - gUefiOvmfPkgTdxPlatformGuid is renamed as gUefiOvmfPkgPlatformInfoGuid. > Because this GUID is used not only by Tdx guest, but also by > Legacy guest. > - PlatformInitLibNull is deleted. > - In PlatformPei Pml4Entries is cap at 512 entries when > mPhysMemAddressWidth > 48. > > v7 not-addressed comments > - Comments in MpInitLib have not been addressed yet. It will be > addressed in the following version. > - Thanks much for your understanding. > > v6 changes: > - PlatformInitLib and OvmfPkg/PlatformPei refactoring are covered in > patch from 17 - 24. These patches are not related to Tdx guest. Tdx > related codes of PlatformInitLib is in patch 25. > - In the previous patch-sets, TdHob is processed in > OvmfPkg/Sec/IntelTdx.c. Per Gerd's suggestion they are now moved > to PlatformInitLib/IntelTdx.c. So that they can be reused in Config-B. > - The default Accept page size is changed from 4K to 2M. > - The BspAcceptMemoryResourceRange is refactored according to Gerd's > comment. > - In ApRunLoop.nasm command field is set to zero as acknowledgement. > This is a fix based on the ACPI Spec v6.4,Sec titled "Multiprocessor > Wakeup Structure". > > v6 not-addressed comments > - Comments in MpInitLib have not been addressed yet. It will be > addressed in the following version. > - Thanks much for your understanding. > > v5 changes: > - PlatformInitLib is introduced which wraps the common functions in > OvmfPkg/PlatformPei. It is because there are a lot of duplicated > codes for Platform initialization in PEI phase and there are at least > 3 variants of PlatformPei. Another reason is that in TDVF Config-B > PEI-less boot needs the similar initiliazation as PlatformPei. Based > on the discussion with the community, PlatformInitLib is introduced. > As the first stage OvmfPkg/PlatformPei is refactored with this lib. > In the future the other 2 PlatformPei variants will be refactored > as well. > - PcdIgnoreVeHalt is deprecated. > - Add spec link for Mailbox. > - Other minor changes, such as comments, uncrustify formats, etc. > > v5 not-addressed comments > - Comments in MpInitLib have not been addressed yet. It will be > addressed in the following version. > - Some comments may be missed. I will re-visit the review emails. > - Thanks much for your understanding. > > v4 changes: > - Split the TdxLib into 2 libraries. The TDX basic functions > (TdCall / TdVmCall / TdIsEnabled) are moved to BaseLib (#2). > The other functions are in TdxLib. (#3) > - Based on above changes (TdCall/TdVmCall/TdIsEnabled in BaseLib) > the TdxLib.inf is not necessary in some Pkgs, such as > UefiPayloadPkg. The duplicated source code are deleted (BaseIoLib > is the sample). > - Drop the Accepting pages with TDX MP service. Instead only BSP > accepts pages. There maybe boot performance issue. There are some > mitigations to it, such as 2M accept page size, lazy accept, etc. > We will re-visit this issue in a separate patch-set. > - Relocate Mailbox in TdxDxe driver instead of in PlatformPei. This > is to keep consistence with Config-B (PEI is skipped in Config-B). > - SetMmioSharedBit in TdxDxe driver instead of in DxeIplPeim after > CreateIdentityMappingPageTables. This is to keep consistence with > Config-B (PEI is skipped in Config-B). > - Some other minor changes, such as switch-case indention. > - Rebase the code base (commit: 8c06c53b585a) and update the code with > uncrustify. > > v4 not-addressed comments: > - Comments in MpInitLib have not been addressed yet. It will be > addressed in the next version. > - BaseMemEncryptTdxLib is suggested to be merged with > BaseMemEncryptSevLib. It will be addressed in the next version. > - Gerd suggests a generic page table walker which is able to set > and clear bits for a given memory range in both SEV and TDX guest. > This suggestion will be addressed in the next version. > - Some comments may be missed. I will re-visit the review emails. > - Thanks much for your understanding. > > v3 changes: > - LocalApicTimerDxe is split out to be a separate patch-series. > - VmTdExitLibNull/VmgExitLib are removed. Instead the VmgExitLib > is extended to handle #VE exception. (Patch 3-5) > - Split the Tdx support of base IoLib into 4 commits. (Patch 6-9) > - Alter of MADT table is updated. In previous version it was > created from scratch. Now it gets the installed table, copy > it to a larger buffer and append the ACPI_MADT_MPWK to it. > (Patch 25) > - Changes in BaseXApicX2ApicLib is refined based on the > feedbacks. (Add spec link of MSR access definition, rename > some funtion name, etc.) (Patch 11) > - Use PcdConfidentialComputingGuestAttr to probe TDX guest instead > of CPUID. But in some cases PcdConfidentialComputingGuestAttr > cannot be used because it has not been set yet. > - Some other minor changes. > > v3 not-addressed comments: > - Some of the comments have not been addressed. This is because I > need more time to consider how to address these comments. > At the same time I want to submit a new version based on the above > changes so that community can review in a more efficient way. > (v2 is the version one month ago). > - Comments in MpInitLib have not been addressed yet. It will be > addressed in v4. > - BaseMemEncryptTdxLib should be merged with BaseMemEncryptSevLib. > It will be addressed in v4. > - Some comments may be missed. I will re-visit the review emails. > - Thanks much for your understanding. > > v2 changes: > - Remove TdxProbeLib. It is to reduce the depencies of the lib. > - In v1 a new function (AllocatePagesWithMemoryType) is added in > PeiMemoryAllocationLib. This function is not necessary. It can > be replaced by PeiServicesAllocatePages. > - IoLibFifo.c is added in BaseIoLibIntrinsic. This file includes > the functions of read/write of I/O port fifo. These functions > will call TdIoReadFifo or SevIoReadFifo by checking TDX or SEV > in run-time. > - DXE related patches are added. (Patch 22-28) > - Fix typo in commit/comment message, or some minor changes. > - Rebase the edk2 code base. (4cc1458dbe00) > > Cc: Brijesh Singh <brijesh.si...@amd.com> > Cc: Eric Dong <eric.d...@intel.com> > Cc: Erdem Aktas <erdemak...@google.com> > Cc: Hao A Wu <hao.a...@intel.com> > Cc: Jian J Wang <jian.j.w...@intel.com> > Cc: James Bottomley <j...@linux.ibm.com> > Cc: Jiewen Yao <jiewen....@intel.com> > Cc: Liming Gao <gaolim...@byosoft.com.cn> > Cc: Michael D Kinney <michael.d.kin...@intel.com> > Cc: Ray Ni <ray...@intel.com> > Cc: Rahul Kumar <rahul1.ku...@intel.com> > Cc: Tom Lendacky <thomas.lenda...@amd.com> > Cc: Zhiguang Liu <zhiguang....@intel.com> > Cc: Gerd Hoffmann <kra...@redhat.com> > Signed-off-by: Min Xu <min.m...@intel.com> > > Min Xu (47): > MdePkg: Add Tdx.h > MdePkg: Update Cpuid.h for Tdx > MdePkg: Introduce basic Tdx functions in BaseLib > MdePkg: Add TdxLib to wrap Tdx operations > UefiCpuPkg: Extend VmgExitLibNull to handle #VE exception > OvmfPkg: Extend VmgExitLib to handle #VE exception > UefiCpuPkg/CpuExceptionHandler: Add base support for the #VE exception > MdePkg: Add helper functions for Tdx guest in BaseIoLibIntrinsic > MdePkg: Support mmio for Tdx guest in BaseIoLibIntrinsic > MdePkg: Support IoFifo for Tdx guest in BaseIoLibIntrinsic > MdePkg: Support IoRead/IoWrite for Tdx guest in BaseIoLibIntrinsic > UefiCpuPkg: Support TDX in BaseXApicX2ApicLib > MdePkg: Add macro to check SEV / TDX guest > UefiCpuPkg: Enable Tdx support in MpInitLib > OvmfPkg: Add IntelTdx.h in OvmfPkg/Include/IndustryStandard > OvmfPkg: Add TdxMailboxLib > OvmfPkg: Create initial version of PlatformInitLib > OvmfPkg/PlatformInitLib: Add hob functions > OvmfPkg/PlatformPei: Move global variables to PlatformInfoHob > OvmfPkg/PlatformPei: Refactor MiscInitialization > OvmfPkg/PlatformPei: Refactor MiscInitialization for CloudHV > OvmfPkg/PlatformPei: Refactor AddressWidthInitialization > OvmfPkg/PlatformPei: Refactor MaxCpuCountInitialization > OvmfPkg/PlatformPei: Refactor QemuUc32BaseInitialization > OvmfPkg/PlatformPei: Refactor InitializeRamRegions > OvmfPkg/PlatformPei: Refactor MemMapInitialization > OvmfPkg/PlatformPei: Refactor NoexecDxeInitialization > OvmfPkg/PlatformPei: Refactor MiscInitialization > OvmfPkg/PlatformInitLib: Create MemDetect.c > OvmfPkg/PlatformInitLib: Move functions to Platform.c > OvmfPkg: Update PlatformInitLib to process Tdx hoblist > OvmfPkg/Sec: Declare local variable as volatile in > SecCoreStartupWithStack > OvmfPkg: Update Sec to support Tdx > OvmfPkg: Check Tdx in QemuFwCfgPei to avoid DMA operation > MdeModulePkg: Skip setting IA32_ERER.NXE if it has already been set > MdeModulePkg: Add PcdTdxSharedBitMask > UefiCpuPkg: Update AddressEncMask in CpuPageTable > OvmfPkg: Update PlatformInitLib for Tdx guest > OvmfPkg: Update PlatformPei to support Tdx guest > OvmfPkg: Update AcpiPlatformDxe to alter MADT table > OvmfPkg/BaseMemEncryptTdxLib: Add TDX helper library > OvmfPkg: Add TdxDxe driver > OvmfPkg/QemuFwCfgLib: Support Tdx in QemuFwCfgDxe > OvmfPkg: Update IoMmuDxe to support TDX > OvmfPkg: Rename XenTimerDxe to LocalApicTimerDxe > UefiCpuPkg: Setting initial-count register as the last step > OvmfPkg: Switch timer in build time for OvmfPkg > > .../Core/DxeIplPeim/X64/VirtualMemory.c | 8 +- > MdeModulePkg/MdeModulePkg.dec | 4 + > .../Include/ConfidentialComputingGuestAttr.h | 3 + > MdePkg/Include/IndustryStandard/Tdx.h | 203 ++++ > MdePkg/Include/Library/BaseLib.h | 66 ++ > MdePkg/Include/Library/TdxLib.h | 92 ++ > MdePkg/Include/Register/Intel/Cpuid.h | 35 +- > .../BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf | 2 + > .../BaseIoLibIntrinsicSev.inf | 7 + > MdePkg/Library/BaseIoLibIntrinsic/IoLib.c | 81 +- > MdePkg/Library/BaseIoLibIntrinsic/IoLibFifo.c | 217 ++++ > MdePkg/Library/BaseIoLibIntrinsic/IoLibGcc.c | 51 +- > .../BaseIoLibIntrinsic/IoLibInternalTdx.c | 674 +++++++++++++ > .../BaseIoLibIntrinsic/IoLibInternalTdxNull.c | 497 +++++++++ > MdePkg/Library/BaseIoLibIntrinsic/IoLibMsc.c | 73 +- > MdePkg/Library/BaseIoLibIntrinsic/IoLibSev.h | 166 +++ > MdePkg/Library/BaseIoLibIntrinsic/IoLibTdx.h | 410 ++++++++ > .../BaseIoLibIntrinsic/X64/IoFifoSev.nasm | 34 +- > MdePkg/Library/BaseLib/BaseLib.inf | 4 + > MdePkg/Library/BaseLib/IntelTdxNull.c | 83 ++ > MdePkg/Library/BaseLib/X64/TdCall.nasm | 85 ++ > MdePkg/Library/BaseLib/X64/TdProbe.c | 63 ++ > MdePkg/Library/BaseLib/X64/TdVmcall.nasm | 145 +++ > MdePkg/Library/TdxLib/AcceptPages.c | 181 ++++ > MdePkg/Library/TdxLib/Rtmr.c | 84 ++ > MdePkg/Library/TdxLib/TdInfo.c | 115 +++ > MdePkg/Library/TdxLib/TdxLib.inf | 37 + > MdePkg/Library/TdxLib/TdxLibNull.c | 106 ++ > MdePkg/MdePkg.dec | 3 + > MdePkg/MdePkg.dsc | 1 + > OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf | 1 + > OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpi.c | 14 +- > OvmfPkg/AmdSev/AmdSevX64.dsc | 11 +- > OvmfPkg/AmdSev/AmdSevX64.fdf | 3 +- > OvmfPkg/Bhyve/BhyveX64.dsc | 5 + > OvmfPkg/CloudHv/CloudHvX64.dsc | 8 +- > OvmfPkg/CloudHv/CloudHvX64.fdf | 2 +- > OvmfPkg/Include/IndustryStandard/IntelTdx.h | 67 ++ > OvmfPkg/Include/Library/MemEncryptTdxLib.h | 81 ++ > OvmfPkg/Include/Library/PlatformInitLib.h | 237 +++++ > OvmfPkg/Include/Library/TdxMailboxLib.h | 76 ++ > .../Include/Protocol/QemuAcpiTableNotify.h | 27 + > OvmfPkg/Include/TdxCommondefs.inc | 51 + > OvmfPkg/IoMmuDxe/AmdSevIoMmu.c | 103 +- > OvmfPkg/IoMmuDxe/AmdSevIoMmu.h | 6 +- > OvmfPkg/IoMmuDxe/IoMmuDxe.c | 6 +- > OvmfPkg/IoMmuDxe/IoMmuDxe.inf | 5 + > .../BaseMemEncryptTdxLib.inf | 44 + > .../BaseMemEncryptTdxLibNull.inf | 35 + > .../BaseMemoryEncryptionNull.c | 90 ++ > .../BaseMemEncryptTdxLib/MemoryEncryption.c | 948 ++++++++++++++++++ > .../BaseMemEncryptTdxLib/VirtualMemory.h | 181 ++++ > .../PlatformInitLib}/Cmos.c | 32 +- > OvmfPkg/Library/PlatformInitLib/IntelTdx.c | 563 +++++++++++ > .../Library/PlatformInitLib/IntelTdxNull.c | 46 + > OvmfPkg/Library/PlatformInitLib/MemDetect.c | 856 ++++++++++++++++ > OvmfPkg/Library/PlatformInitLib/Platform.c | 573 +++++++++++ > .../PlatformInitLib/PlatformInitLib.inf | 98 ++ > OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgDxe.c | 9 +- > .../Library/QemuFwCfgLib/QemuFwCfgDxeLib.inf | 1 + > .../QemuFwCfgLib/QemuFwCfgLibInternal.h | 11 + > OvmfPkg/Library/QemuFwCfgLib/QemuFwCfgPei.c | 32 + > .../Library/QemuFwCfgLib/QemuFwCfgPeiLib.inf | 2 + > OvmfPkg/Library/TdxMailboxLib/TdxMailbox.c | 141 +++ > .../Library/TdxMailboxLib/TdxMailboxLib.inf | 52 + > .../Library/TdxMailboxLib/TdxMailboxNull.c | 85 ++ > OvmfPkg/Library/VmgExitLib/SecVmgExitLib.inf | 3 +- > OvmfPkg/Library/VmgExitLib/VmTdExitHandler.h | 32 + > .../Library/VmgExitLib/VmTdExitVeHandler.c | 559 +++++++++++ > OvmfPkg/Library/VmgExitLib/VmgExitLib.inf | 2 + > .../Library/VmgExitLib/X64/TdVmcallCpuid.nasm | 146 +++ > .../LocalApicTimerDxe.c} | 4 +- > .../LocalApicTimerDxe.h} | 4 +- > .../LocalApicTimerDxe.inf} | 7 +- > OvmfPkg/Microvm/MicrovmX64.dsc | 8 +- > OvmfPkg/Microvm/MicrovmX64.fdf | 2 +- > OvmfPkg/OvmfPkg.dec | 17 + > OvmfPkg/OvmfPkgIa32.dsc | 15 +- > OvmfPkg/OvmfPkgIa32.fdf | 8 +- > OvmfPkg/OvmfPkgIa32X64.dsc | 15 +- > OvmfPkg/OvmfPkgIa32X64.fdf | 8 +- > OvmfPkg/OvmfPkgX64.dsc | 32 +- > OvmfPkg/OvmfPkgX64.fdf | 11 +- > OvmfPkg/OvmfXen.dsc | 7 +- > OvmfPkg/OvmfXen.fdf | 2 +- > OvmfPkg/PlatformPei/AmdSev.c | 8 +- > OvmfPkg/PlatformPei/Cmos.h | 48 - > OvmfPkg/PlatformPei/FeatureControl.c | 7 +- > OvmfPkg/PlatformPei/Fv.c | 4 +- > OvmfPkg/PlatformPei/IntelTdx.c | 51 + > OvmfPkg/PlatformPei/MemDetect.c | 889 ++-------------- > OvmfPkg/PlatformPei/MemTypeInfo.c | 2 +- > OvmfPkg/PlatformPei/Platform.c | 631 ++---------- > OvmfPkg/PlatformPei/Platform.h | 97 +- > OvmfPkg/PlatformPei/PlatformPei.inf | 6 +- > OvmfPkg/Sec/SecMain.c | 44 +- > OvmfPkg/Sec/SecMain.inf | 3 + > OvmfPkg/Sec/X64/SecEntry.nasm | 82 ++ > OvmfPkg/TdxDxe/TdxAcpiTable.c | 213 ++++ > OvmfPkg/TdxDxe/TdxAcpiTable.h | 60 ++ > OvmfPkg/TdxDxe/TdxDxe.c | 261 +++++ > OvmfPkg/TdxDxe/TdxDxe.inf | 64 ++ > OvmfPkg/TdxDxe/X64/ApRunLoop.nasm | 90 ++ > UefiCpuPkg/CpuDxe/CpuDxe.inf | 1 + > UefiCpuPkg/CpuDxe/CpuPageTable.c | 3 + > UefiCpuPkg/Include/Library/VmgExitLib.h | 28 + > .../BaseXApicX2ApicLib/BaseXApicX2ApicLib.c | 170 +++- > .../PeiDxeSmmCpuException.c | 53 +- > .../SecPeiCpuException.c | 57 +- > UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf | 3 + > UefiCpuPkg/Library/MpInitLib/MpIntelTdx.h | 69 ++ > UefiCpuPkg/Library/MpInitLib/MpLib.c | 63 +- > UefiCpuPkg/Library/MpInitLib/MpLibTdx.c | 106 ++ > UefiCpuPkg/Library/MpInitLib/MpLibTdxNull.c | 69 ++ > UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf | 3 + > .../Library/VmgExitLibNull/VmTdExitNull.c | 38 + > .../Library/VmgExitLibNull/VmgExitLibNull.inf | 1 + > 117 files changed, 10472 insertions(+), 1666 deletions(-) > create mode 100644 MdePkg/Include/IndustryStandard/Tdx.h > create mode 100644 MdePkg/Include/Library/TdxLib.h > create mode 100644 MdePkg/Library/BaseIoLibIntrinsic/IoLibFifo.c > create mode 100644 MdePkg/Library/BaseIoLibIntrinsic/IoLibInternalTdx.c > create mode 100644 MdePkg/Library/BaseIoLibIntrinsic/IoLibInternalTdxNull.c > create mode 100644 MdePkg/Library/BaseIoLibIntrinsic/IoLibSev.h > create mode 100644 MdePkg/Library/BaseIoLibIntrinsic/IoLibTdx.h > create mode 100644 MdePkg/Library/BaseLib/IntelTdxNull.c > create mode 100644 MdePkg/Library/BaseLib/X64/TdCall.nasm > create mode 100644 MdePkg/Library/BaseLib/X64/TdProbe.c > create mode 100644 MdePkg/Library/BaseLib/X64/TdVmcall.nasm > create mode 100644 MdePkg/Library/TdxLib/AcceptPages.c > create mode 100644 MdePkg/Library/TdxLib/Rtmr.c > create mode 100644 MdePkg/Library/TdxLib/TdInfo.c > create mode 100644 MdePkg/Library/TdxLib/TdxLib.inf > create mode 100644 MdePkg/Library/TdxLib/TdxLibNull.c > create mode 100644 OvmfPkg/Include/IndustryStandard/IntelTdx.h > create mode 100644 OvmfPkg/Include/Library/MemEncryptTdxLib.h > create mode 100644 OvmfPkg/Include/Library/PlatformInitLib.h > create mode 100644 OvmfPkg/Include/Library/TdxMailboxLib.h > create mode 100644 OvmfPkg/Include/Protocol/QemuAcpiTableNotify.h > create mode 100644 OvmfPkg/Include/TdxCommondefs.inc > create mode 100644 > OvmfPkg/Library/BaseMemEncryptTdxLib/BaseMemEncryptTdxLib.inf > create mode 100644 > OvmfPkg/Library/BaseMemEncryptTdxLib/BaseMemEncryptTdxLibNull.inf > create mode 100644 > OvmfPkg/Library/BaseMemEncryptTdxLib/BaseMemoryEncryptionNull.c > create mode 100644 > OvmfPkg/Library/BaseMemEncryptTdxLib/MemoryEncryption.c > create mode 100644 > OvmfPkg/Library/BaseMemEncryptTdxLib/VirtualMemory.h > rename OvmfPkg/{PlatformPei => Library/PlatformInitLib}/Cmos.c (61%) > create mode 100644 OvmfPkg/Library/PlatformInitLib/IntelTdx.c > create mode 100644 OvmfPkg/Library/PlatformInitLib/IntelTdxNull.c > create mode 100644 OvmfPkg/Library/PlatformInitLib/MemDetect.c > create mode 100644 OvmfPkg/Library/PlatformInitLib/Platform.c > create mode 100644 OvmfPkg/Library/PlatformInitLib/PlatformInitLib.inf > create mode 100644 OvmfPkg/Library/TdxMailboxLib/TdxMailbox.c > create mode 100644 OvmfPkg/Library/TdxMailboxLib/TdxMailboxLib.inf > create mode 100644 OvmfPkg/Library/TdxMailboxLib/TdxMailboxNull.c > create mode 100644 OvmfPkg/Library/VmgExitLib/VmTdExitHandler.h > create mode 100644 OvmfPkg/Library/VmgExitLib/VmTdExitVeHandler.c > create mode 100644 OvmfPkg/Library/VmgExitLib/X64/TdVmcallCpuid.nasm > rename OvmfPkg/{XenTimerDxe/XenTimerDxe.c => > LocalApicTimerDxe/LocalApicTimerDxe.c} (95%) > rename OvmfPkg/{XenTimerDxe/XenTimerDxe.h => > LocalApicTimerDxe/LocalApicTimerDxe.h} (96%) > rename OvmfPkg/{XenTimerDxe/XenTimerDxe.inf => > LocalApicTimerDxe/LocalApicTimerDxe.inf} (80%) > delete mode 100644 OvmfPkg/PlatformPei/Cmos.h > create mode 100644 OvmfPkg/PlatformPei/IntelTdx.c > create mode 100644 OvmfPkg/TdxDxe/TdxAcpiTable.c > create mode 100644 OvmfPkg/TdxDxe/TdxAcpiTable.h > create mode 100644 OvmfPkg/TdxDxe/TdxDxe.c > create mode 100644 OvmfPkg/TdxDxe/TdxDxe.inf > create mode 100644 OvmfPkg/TdxDxe/X64/ApRunLoop.nasm > create mode 100644 UefiCpuPkg/Library/MpInitLib/MpIntelTdx.h > create mode 100644 UefiCpuPkg/Library/MpInitLib/MpLibTdx.c > create mode 100644 UefiCpuPkg/Library/MpInitLib/MpLibTdxNull.c > create mode 100644 UefiCpuPkg/Library/VmgExitLibNull/VmTdExitNull.c > > -- > 2.29.2.windows.2
-=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#88282): https://edk2.groups.io/g/devel/message/88282 Mute This Topic: https://groups.io/mt/90121184/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-