From: "gaoliming" <gaoliming@byosoft.com.cn>
To: <devel@edk2.groups.io>, <min.m.xu@intel.com>
Cc: "'Brijesh Singh'" <brijesh.singh@amd.com>,
"'Eric Dong'" <eric.dong@intel.com>,
"'Erdem Aktas'" <erdemaktas@google.com>,
"'Hao A Wu'" <hao.a.wu@intel.com>,
"'Jian J Wang'" <jian.j.wang@intel.com>,
"'James Bottomley'" <jejb@linux.ibm.com>,
"'Jiewen Yao'" <jiewen.yao@intel.com>,
"'Michael D Kinney'" <michael.d.kinney@intel.com>,
"'Ray Ni'" <ray.ni@intel.com>,
"'Rahul Kumar'" <rahul1.kumar@intel.com>,
"'Tom Lendacky'" <thomas.lendacky@amd.com>,
"'Zhiguang Liu'" <zhiguang.liu@intel.com>,
"'Gerd Hoffmann'" <kraxel@redhat.com>
Subject: 回复: [edk2-devel] [PATCH V8 00/47] Enable Intel TDX in OvmfPkg (Config-A)
Date: Tue, 15 Mar 2022 11:55:11 +0800 [thread overview]
Message-ID: <02a001d83820$789f62d0$69de2870$@byosoft.com.cn> (raw)
In-Reply-To: <cover.1647047481.git.min.m.xu@intel.com>
Min:
As Jiewen mentions, EFI_RESOURCE_MEMORY_UNACCEPTED will be in next public spec. So, it can't be added now.
I suggest to add edk2 definition for this type in MdeModulePkg first, such as EDKII_RESOURCE_MEMORY_UNACCEPTED. It can be removed after new spec is published.
Thanks
Liming
> -----邮件原件-----
> 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Min Xu
> 发送时间: 2022年3月12日 9:53
> 收件人: devel@edk2.groups.io
> 抄送: Min Xu <min.m.xu@intel.com>; Brijesh Singh
> <brijesh.singh@amd.com>; Eric Dong <eric.dong@intel.com>; Erdem Aktas
> <erdemaktas@google.com>; Hao A Wu <hao.a.wu@intel.com>; Jian J Wang
> <jian.j.wang@intel.com>; James Bottomley <jejb@linux.ibm.com>; Jiewen
> Yao <jiewen.yao@intel.com>; Liming Gao <gaoliming@byosoft.com.cn>;
> Michael D Kinney <michael.d.kinney@intel.com>; Ray Ni <ray.ni@intel.com>;
> Rahul Kumar <rahul1.kumar@intel.com>; Tom Lendacky
> <thomas.lendacky@amd.com>; Zhiguang Liu <zhiguang.liu@intel.com>; Gerd
> Hoffmann <kraxel@redhat.com>
> 主题: [edk2-devel] [PATCH V8 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.v8
>
> 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.singh@amd.com>
> Cc: Eric Dong <eric.dong@intel.com>
> Cc: Erdem Aktas <erdemaktas@google.com>
> Cc: Hao A Wu <hao.a.wu@intel.com>
> Cc: Jian J Wang <jian.j.wang@intel.com>
> Cc: James Bottomley <jejb@linux.ibm.com>
> Cc: Jiewen Yao <jiewen.yao@intel.com>
> Cc: Liming Gao <gaoliming@byosoft.com.cn>
> Cc: Michael D Kinney <michael.d.kinney@intel.com>
> Cc: Ray Ni <ray.ni@intel.com>
> Cc: Rahul Kumar <rahul1.kumar@intel.com>
> Cc: Tom Lendacky <thomas.lendacky@amd.com>
> Cc: Zhiguang Liu <zhiguang.liu@intel.com>
> Cc: Gerd Hoffmann <kraxel@redhat.com>
> Signed-off-by: Min Xu <min.m.xu@intel.com>
>
> Min Xu (47):
> MdePkg: Add Tdx.h
> 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
> MdePkg: Add EFI_RESOURCE_MEMORY_UNACCEPTED defition
> 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/Pi/PiHob.h | 3 +-
> .../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 | 62 ++
> 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 | 10 +-
> OvmfPkg/PlatformPei/Cmos.h | 48 -
> OvmfPkg/PlatformPei/FeatureControl.c | 7 +-
> OvmfPkg/PlatformPei/Fv.c | 6 +-
> OvmfPkg/PlatformPei/IntelTdx.c | 51 +
> OvmfPkg/PlatformPei/MemDetect.c | 885 ++--------------
> OvmfPkg/PlatformPei/MemTypeInfo.c | 4 +-
> OvmfPkg/PlatformPei/Platform.c | 629 ++----------
> 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 | 4 +
> UefiCpuPkg/Include/Library/VmgExitLib.h | 28 +
> .../BaseXApicX2ApicLib/BaseXApicX2ApicLib.c | 170 +++-
> .../PeiDxeSmmCpuException.c | 17 +
> .../SecPeiCpuException.c | 18 +
> UefiCpuPkg/Library/MpInitLib/DxeMpInitLib.inf | 3 +
> UefiCpuPkg/Library/MpInitLib/DxeMpLib.c | 15 +-
> UefiCpuPkg/Library/MpInitLib/MpIntelTdx.h | 71 ++
> UefiCpuPkg/Library/MpInitLib/MpLib.c | 27 +
> UefiCpuPkg/Library/MpInitLib/MpLibTdx.c | 128 +++
> UefiCpuPkg/Library/MpInitLib/MpLibTdxNull.c | 73 ++
> UefiCpuPkg/Library/MpInitLib/PeiMpInitLib.inf | 3 +
> .../Library/VmgExitLibNull/VmTdExitNull.c | 38 +
> .../Library/VmgExitLibNull/VmgExitLibNull.inf | 1 +
> 118 files changed, 10411 insertions(+), 1627 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
>
>
>
>
>
next prev parent reply other threads:[~2022-03-15 3:55 UTC|newest]
Thread overview: 75+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-12 1:53 [PATCH V8 00/47] Enable Intel TDX in OvmfPkg (Config-A) Min Xu
2022-03-12 1:53 ` [PATCH V8 01/47] MdePkg: Add Tdx.h Min Xu
2022-03-12 1:53 ` [PATCH V8 02/47] MdePkg: Introduce basic Tdx functions in BaseLib Min Xu
2022-03-15 7:41 ` [edk2-devel] " Ni, Ray
2022-03-16 1:18 ` Min Xu
2022-03-16 1:26 ` Ni, Ray
2022-03-15 7:44 ` Ni, Ray
2022-03-16 2:15 ` Min Xu
2022-03-12 1:53 ` [PATCH V8 03/47] MdePkg: Add TdxLib to wrap Tdx operations Min Xu
2022-03-12 1:53 ` [PATCH V8 04/47] UefiCpuPkg: Extend VmgExitLibNull to handle #VE exception Min Xu
2022-03-12 1:53 ` [PATCH V8 05/47] OvmfPkg: Extend VmgExitLib " Min Xu
2022-03-12 1:53 ` [PATCH V8 06/47] UefiCpuPkg/CpuExceptionHandler: Add base support for the " Min Xu
2022-03-12 1:53 ` [PATCH V8 07/47] MdePkg: Add helper functions for Tdx guest in BaseIoLibIntrinsic Min Xu
2022-03-12 1:53 ` [PATCH V8 08/47] MdePkg: Support mmio " Min Xu
2022-03-12 1:53 ` [PATCH V8 09/47] MdePkg: Support IoFifo " Min Xu
2022-03-12 1:53 ` [PATCH V8 10/47] MdePkg: Support IoRead/IoWrite " Min Xu
2022-03-12 1:53 ` [PATCH V8 11/47] UefiCpuPkg: Support TDX in BaseXApicX2ApicLib Min Xu
2022-03-12 1:53 ` [PATCH V8 12/47] MdePkg: Add macro to check SEV / TDX guest Min Xu
2022-03-12 1:53 ` [PATCH V8 13/47] UefiCpuPkg: Enable Tdx support in MpInitLib Min Xu
2022-03-15 7:57 ` Ni, Ray
2022-03-16 8:32 ` Min Xu
2022-03-16 8:36 ` Ni, Ray
2022-03-16 11:53 ` Min Xu
2022-03-12 1:53 ` [PATCH V8 14/47] OvmfPkg: Add IntelTdx.h in OvmfPkg/Include/IndustryStandard Min Xu
2022-03-12 1:53 ` [PATCH V8 15/47] OvmfPkg: Add TdxMailboxLib Min Xu
2022-03-12 1:53 ` [PATCH V8 16/47] OvmfPkg: Create initial version of PlatformInitLib Min Xu
2022-03-15 7:41 ` Gerd Hoffmann
2022-03-12 1:53 ` [PATCH V8 17/47] OvmfPkg/PlatformInitLib: Add hob functions Min Xu
2022-03-15 7:42 ` Gerd Hoffmann
2022-03-12 1:53 ` [PATCH V8 18/47] OvmfPkg/PlatformPei: Move global variables to PlatformInfoHob Min Xu
2022-03-15 7:57 ` Gerd Hoffmann
2022-03-16 5:26 ` [edk2-devel] " Min Xu
2022-03-12 1:53 ` [PATCH V8 19/47] OvmfPkg/PlatformPei: Refactor MiscInitialization Min Xu
2022-03-15 7:59 ` Gerd Hoffmann
2022-03-12 1:53 ` [PATCH V8 20/47] OvmfPkg/PlatformPei: Refactor MiscInitialization for CloudHV Min Xu
2022-03-15 7:59 ` Gerd Hoffmann
2022-03-12 1:53 ` [PATCH V8 21/47] OvmfPkg/PlatformPei: Refactor AddressWidthInitialization Min Xu
2022-03-15 8:04 ` Gerd Hoffmann
2022-03-16 5:56 ` [edk2-devel] " Min Xu
2022-03-12 1:53 ` [PATCH V8 22/47] OvmfPkg/PlatformPei: Refactor MaxCpuCountInitialization Min Xu
2022-03-15 8:04 ` Gerd Hoffmann
2022-03-16 6:25 ` Min Xu
2022-03-12 1:53 ` [PATCH V8 23/47] OvmfPkg/PlatformPei: Refactor QemuUc32BaseInitialization Min Xu
2022-03-15 8:05 ` Gerd Hoffmann
2022-03-12 1:53 ` [PATCH V8 25/47] OvmfPkg/PlatformPei: Refactor MemMapInitialization Min Xu
2022-03-15 8:06 ` Gerd Hoffmann
2022-03-12 1:53 ` [PATCH V8 26/47] OvmfPkg/PlatformPei: Refactor NoexecDxeInitialization Min Xu
2022-03-15 8:13 ` Gerd Hoffmann
2022-03-12 1:53 ` [PATCH V8 27/47] OvmfPkg/PlatformPei: Refactor MiscInitialization Min Xu
2022-03-15 8:14 ` Gerd Hoffmann
2022-03-12 1:53 ` [PATCH V8 28/47] OvmfPkg/PlatformInitLib: Create MemDetect.c Min Xu
2022-03-15 8:14 ` Gerd Hoffmann
2022-03-12 1:53 ` [PATCH V8 29/47] OvmfPkg/PlatformInitLib: Move functions to Platform.c Min Xu
2022-03-15 8:15 ` Gerd Hoffmann
2022-03-12 1:53 ` [PATCH V8 30/47] MdePkg: Add EFI_RESOURCE_MEMORY_UNACCEPTED defition Min Xu
2022-03-15 8:15 ` Gerd Hoffmann
2022-03-12 1:53 ` [PATCH V8 31/47] OvmfPkg: Update PlatformInitLib to process Tdx hoblist Min Xu
2022-03-12 1:53 ` [PATCH V8 32/47] OvmfPkg/Sec: Declare local variable as volatile in SecCoreStartupWithStack Min Xu
2022-03-12 1:53 ` [PATCH V8 33/47] OvmfPkg: Update Sec to support Tdx Min Xu
2022-03-12 1:53 ` [PATCH V8 34/47] OvmfPkg: Check Tdx in QemuFwCfgPei to avoid DMA operation Min Xu
2022-03-12 1:54 ` [PATCH V8 35/47] MdeModulePkg: Skip setting IA32_ERER.NXE if it has already been set Min Xu
2022-03-15 5:16 ` Wang, Jian J
2022-03-12 1:54 ` [PATCH V8 36/47] MdeModulePkg: Add PcdTdxSharedBitMask Min Xu
2022-03-15 5:16 ` Wang, Jian J
2022-03-12 1:54 ` [PATCH V8 37/47] UefiCpuPkg: Update AddressEncMask in CpuPageTable Min Xu
2022-03-12 1:54 ` [PATCH V8 38/47] OvmfPkg: Update PlatformInitLib for Tdx guest Min Xu
2022-03-12 1:54 ` [PATCH V8 39/47] OvmfPkg: Update PlatformPei to support " Min Xu
2022-03-12 1:54 ` [PATCH V8 40/47] OvmfPkg: Update AcpiPlatformDxe to alter MADT table Min Xu
2022-03-15 3:55 ` gaoliming [this message]
2022-03-15 7:11 ` [edk2-devel] [PATCH V8 00/47] Enable Intel TDX in OvmfPkg (Config-A) Min Xu
2022-03-17 1:00 ` 回复: " gaoliming
2022-03-17 1:16 ` Min Xu
[not found] ` <5cf66f701073359f385e7ff28b5173555ab483c3.1647047482.git.min.m.xu@intel.com>
2022-03-15 8:05 ` [PATCH V8 24/47] OvmfPkg/PlatformPei: Refactor InitializeRamRegions Gerd Hoffmann
[not found] ` <16DB7F586DEAD807.23528@groups.io>
2022-03-17 5:31 ` [edk2-devel] [PATCH V8 12/47] MdePkg: Add macro to check SEV / TDX guest Min Xu
2022-03-18 1:13 ` 回复: " gaoliming
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='02a001d83820$789f62d0$69de2870$@byosoft.com.cn' \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox