public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Min Xu" <min.m.xu@intel.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
	"Gao, Liming" <gaoliming@byosoft.com.cn>
Cc: 'Brijesh Singh' <brijesh.singh@amd.com>,
	"Dong, Eric" <eric.dong@intel.com>,
	"Aktas, Erdem" <erdemaktas@google.com>,
	"Wu, Hao A" <hao.a.wu@intel.com>,
	"Wang, Jian J" <jian.j.wang@intel.com>,
	"'James Bottomley'" <jejb@linux.ibm.com>,
	"Yao, Jiewen" <jiewen.yao@intel.com>,
	"Kinney, Michael D" <michael.d.kinney@intel.com>,
	"Ni, Ray" <ray.ni@intel.com>,
	"Kumar, Rahul1" <rahul1.kumar@intel.com>,
	'Tom Lendacky' <thomas.lendacky@amd.com>,
	"Liu, Zhiguang" <zhiguang.liu@intel.com>,
	"'Gerd Hoffmann'" <kraxel@redhat.com>
Subject: Re: [edk2-devel] [PATCH V7 00/37] Enable Intel TDX in OvmfPkg (Config-A)
Date: Thu, 10 Mar 2022 06:21:24 +0000	[thread overview]
Message-ID: <CO1PR11MB50585306983CD135E4F80434C50B9@CO1PR11MB5058.namprd11.prod.outlook.com> (raw)
In-Reply-To: <02e701d82d12$d8412980$88c37c80$@byosoft.com.cn>

Hi, Lingming
Besides below 2 comments in MdePkg, what's your opinion about below patches in MdePkg?
Patch 01  includes the Intel Trust Domain Extension definitions.
Patch 07-10 is about the BaseIoLibIntrinsic
Patch 12 add macros CC_GUEST_IS_SEV / CC_GUEST_IS_TDX to check SEV / TDX guest.

I am looking forward your comments about Patch 07 - 10.

01-MdePkg-Add-Tdx.h.patch	
  - https://edk2.groups.io/g/devel/message/87049
03-MdePkg-Add-TdxLib-to-wrap-Tdx-operations.patch
  - https://edk2.groups.io/g/devel/message/87051

07-MdePkg-Add-helper-functions-for-Tdx-guest-in-BaseIoL.patch
  - https://edk2.groups.io/g/devel/message/87055
08-MdePkg-Support-mmio-for-Tdx-guest-in-BaseIoLibIntrin.patch
  - https://edk2.groups.io/g/devel/message/87056
09-MdePkg-Support-IoFifo-for-Tdx-guest-in-BaseIoLibIntr.patch
  - https://edk2.groups.io/g/devel/message/87057
10-MdePkg-Support-IoRead-IoWrite-for-Tdx-guest-in-BaseI.patch
  - https://edk2.groups.io/g/devel/message/87058

12-MdePkg-Add-macro-to-check-SEV-TDX-guest.patch
  - https://edk2.groups.io/g/devel/message/87060

Thanks much!

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of gaoliming
> Sent: Tuesday, March 1, 2022 10:20 AM
> To: devel@edk2.groups.io; Xu, Min M <min.m.xu@intel.com>
> Cc: 'Brijesh Singh' <brijesh.singh@amd.com>; Dong, Eric
> <eric.dong@intel.com>; Aktas, Erdem <erdemaktas@google.com>; Wu, Hao A
> <hao.a.wu@intel.com>; Wang, Jian J <jian.j.wang@intel.com>; 'James
> Bottomley' <jejb@linux.ibm.com>; Yao, Jiewen <jiewen.yao@intel.com>;
> Kinney, Michael D <michael.d.kinney@intel.com>; Ni, Ray <ray.ni@intel.com>;
> Kumar, Rahul1 <rahul1.kumar@intel.com>; 'Tom Lendacky'
> <thomas.lendacky@amd.com>; Liu, Zhiguang <zhiguang.liu@intel.com>; 'Gerd
> Hoffmann' <kraxel@redhat.com>
> Subject: 回复: [edk2-devel] [PATCH V7 00/37] Enable Intel TDX in OvmfPkg
> (Config-A)
> 
> Min:
>   I have two comments in MdePkg. The changes in MdeModulePkg are good to
> me.
> 1. Seemly, new APIs (TdCall, TdVmCall, TdIsEnabled) in BaseLib are X86 specific.
> How about define them in #if defined (MDE_CPU_IA32) || defined
> (MDE_CPU_X64) in BaseLib.h?
> 2. I don't find new resource attribute EFI_RESOURCE_ATTRIBUTE_ENCRYPTED in
> the latest PI PI_Spec_1_7_A_final_May1.pdf. Can you let me know which spec
> defines it?
> 
> Thanks
> Liming
> > -----邮件原件-----
> > 发件人: devel@edk2.groups.io <devel@edk2.groups.io> 代表 Min Xu
> > 发送时间: 2022年2月28日 15:21
> > 收件人: 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 V7 00/37] 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 - 23 are changes in SEC phase. Also some libraries in these
> > patches are workable in SEC/PEI/DXE.
> >
> > Patch 17 - 20 extract the common codes from OvmfPkg/PlatformPei to a
> > new PlatformInitLib. Then OvmfPkg/PlatformPei is refactored with this lib.
> > This is because there are 3 variants of PlatformPei in OvmfPkg and
> > hence many codes are duplicated.
> > Patch 21 then add Tdx specific codes in PlatformInitLib.
> >
> > Patch 24 - 29 are changes in PEI phase.
> >
> > Patch 30 - 34 are changes in DXE phase.
> >
> > Patch 35 - 37 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-34442
> > 6-
> > 002.pdf
> >
> > Code is at https://github.com/mxu9/edk2/tree/tdvf_wave2.v7
> >
> > 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 (37):
> >   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
> >   MdePkg: Add EFI_RESOURCE_ATTRIBUTE_ENCRYPTED in PiHob.h
> >   OvmfPkg: Create initial version of PlatformInitLib
> >   OvmfPkg/PlatformInitLib: Add hob functions
> >   OvmfPkg/PlatformInitLib: Add memory functions
> >   OvmfPkg/PlatformInitLib: Add platform functions
> >   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: EFER should not be changed in TDX
> >   MdeModulePkg: Add PcdTdxSharedBitMask
> >   UefiCpuPkg: Update AddressEncMask in CpuPageTable
> >   OvmfPkg: Update PlatformInitLib for Tdx guest to publish ram regions
> >   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
> >
> >  MdeModulePkg/Core/DxeIplPeim/DxeIpl.inf       |   1 +
> >  .../Core/DxeIplPeim/X64/VirtualMemory.c       |   7 +
> >  MdeModulePkg/MdeModulePkg.dec                 |   9 +
> >  .../Include/ConfidentialComputingGuestAttr.h  |   3 +
> >  MdePkg/Include/IndustryStandard/Tdx.h         | 203 ++++
> >  MdePkg/Include/Library/BaseLib.h              |  62 ++
> >  MdePkg/Include/Library/TdxLib.h               |  97 ++
> >  MdePkg/Include/Pi/PiHob.h                     |   8 +
> >  .../BaseIoLibIntrinsic/BaseIoLibIntrinsic.inf |   2 +
> >  .../BaseIoLibIntrinsicSev.inf                 |   7 +
> >  MdePkg/Library/BaseIoLibIntrinsic/IoLib.c     |  81 +-
> >  MdePkg/Library/BaseIoLibIntrinsic/IoLibFifo.c | 216 ++++
> > MdePkg/Library/BaseIoLibIntrinsic/IoLibGcc.c  |  51 +-
> >  .../BaseIoLibIntrinsic/IoLibInternalTdx.c     | 675 +++++++++++++
> >  .../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            |  11 +
> >  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           | 180 ++++
> >  MdePkg/Library/TdxLib/Rtmr.c                  |  83 ++
> >  MdePkg/Library/TdxLib/TdInfo.c                | 114 +++
> >  MdePkg/Library/TdxLib/TdxLib.inf              |  37 +
> >  MdePkg/Library/TdxLib/TdxLibNull.c            | 107 ++
> >  MdePkg/MdePkg.dec                             |   3 +
> >  MdePkg/MdePkg.dsc                             |   1 +
> >  OvmfPkg/AcpiPlatformDxe/AcpiPlatformDxe.inf   |   1 +
> >  OvmfPkg/AcpiPlatformDxe/QemuFwCfgAcpi.c       |  14 +-
> >  OvmfPkg/AmdSev/AmdSevX64.dsc                  |   8 +-
> >  OvmfPkg/AmdSev/AmdSevX64.fdf                  |   3 +-
> >  OvmfPkg/Bhyve/BhyveX64.dsc                    |   2 +
> >  OvmfPkg/CloudHv/CloudHvX64.dsc                |   5 +-
> >  OvmfPkg/CloudHv/CloudHvX64.fdf                |   2 +-
> >  OvmfPkg/Include/IndustryStandard/IntelTdx.h   |  67 ++
> >  OvmfPkg/Include/Library/MemEncryptTdxLib.h    |  81 ++
> >  OvmfPkg/Include/Library/PlatformInitLib.h     | 286 ++++++
> >  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    | 553 ++++++++++
> >  .../Library/PlatformInitLib/IntelTdxNull.c    |  46 +
> >  OvmfPkg/Library/PlatformInitLib/MemDetect.c   | 707 +++++++++++++
> >  OvmfPkg/Library/PlatformInitLib/Platform.c    | 597 +++++++++++
> >  .../PlatformInitLib/PlatformInitLib.inf       |  94 ++
> >  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    | 140 +++
> >  .../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                |   5 +-
> >  OvmfPkg/Microvm/MicrovmX64.fdf                |   2 +-
> >  OvmfPkg/OvmfPkg.dec                           |  17 +
> >  OvmfPkg/OvmfPkgIa32.dsc                       |  12 +-
> >  OvmfPkg/OvmfPkgIa32.fdf                       |   8 +-
> >  OvmfPkg/OvmfPkgIa32X64.dsc                    |  14 +-
> >  OvmfPkg/OvmfPkgIa32X64.fdf                    |   8 +-
> >  OvmfPkg/OvmfPkgX64.dsc                        |  29 +-
> >  OvmfPkg/OvmfPkgX64.fdf                        |  11 +-
> >  OvmfPkg/OvmfXen.dsc                           |   4 +-
> >  OvmfPkg/OvmfXen.fdf                           |   2 +-
> >  OvmfPkg/PlatformPei/Cmos.h                    |  48 -
> >  OvmfPkg/PlatformPei/FeatureControl.c          |   7 +-
> >  OvmfPkg/PlatformPei/IntelTdx.c                |  54 +
> >  OvmfPkg/PlatformPei/MemDetect.c               | 669 +-----------
> >  OvmfPkg/PlatformPei/Platform.c                | 522 ++--------
> >  OvmfPkg/PlatformPei/Platform.h                |  55 +-
> >  OvmfPkg/PlatformPei/PlatformPei.inf           |   7 +-
> >  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 +
> >  116 files changed, 10233 insertions(+), 1327 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
> >
> >
> >
> >
> >
> 
> 
> 
> 
> 
> 
> 


  parent reply	other threads:[~2022-03-10  6:21 UTC|newest]

Thread overview: 72+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-28  7:20 [PATCH V7 00/37] Enable Intel TDX in OvmfPkg (Config-A) Min Xu
2022-02-28  7:20 ` [PATCH V7 01/37] MdePkg: Add Tdx.h Min Xu
2022-02-28  7:20 ` [PATCH V7 02/37] MdePkg: Introduce basic Tdx functions in BaseLib Min Xu
2022-02-28  7:20 ` [PATCH V7 03/37] MdePkg: Add TdxLib to wrap Tdx operations Min Xu
2022-02-28  7:20 ` [PATCH V7 04/37] UefiCpuPkg: Extend VmgExitLibNull to handle #VE exception Min Xu
2022-03-15  7:15   ` [edk2-devel] [PATCH V7 04/37] UefiCpuPkg: Extend VmgExitLibNull to handle #VE exception #ve Ni, Ray
2022-02-28  7:20 ` [PATCH V7 05/37] OvmfPkg: Extend VmgExitLib to handle #VE exception Min Xu
2022-02-28  7:20 ` [PATCH V7 06/37] UefiCpuPkg/CpuExceptionHandler: Add base support for the " Min Xu
2022-03-15  7:17   ` [edk2-devel] [PATCH V7 06/37] UefiCpuPkg/CpuExceptionHandler: Add base support for the #VE exception #ve Ni, Ray
2022-03-15  7:37     ` Min Xu
2022-02-28  7:20 ` [PATCH V7 07/37] MdePkg: Add helper functions for Tdx guest in BaseIoLibIntrinsic Min Xu
2022-02-28  7:20 ` [PATCH V7 08/37] MdePkg: Support mmio " Min Xu
2022-02-28  7:20 ` [PATCH V7 09/37] MdePkg: Support IoFifo " Min Xu
2022-02-28  7:20 ` [PATCH V7 10/37] MdePkg: Support IoRead/IoWrite " Min Xu
2022-02-28  7:20 ` [PATCH V7 11/37] UefiCpuPkg: Support TDX in BaseXApicX2ApicLib Min Xu
2022-03-15  7:44   ` [edk2-devel] " Ni, Ray
2022-02-28  7:20 ` [PATCH V7 12/37] MdePkg: Add macro to check SEV / TDX guest Min Xu
2022-02-28  7:20 ` [PATCH V7 13/37] UefiCpuPkg: Enable Tdx support in MpInitLib Min Xu
2022-02-28  7:20 ` [PATCH V7 14/37] OvmfPkg: Add IntelTdx.h in OvmfPkg/Include/IndustryStandard Min Xu
2022-02-28  7:20 ` [PATCH V7 15/37] OvmfPkg: Add TdxMailboxLib Min Xu
2022-02-28  7:20 ` [PATCH V7 16/37] MdePkg: Add EFI_RESOURCE_ATTRIBUTE_ENCRYPTED in PiHob.h Min Xu
2022-02-28  7:20 ` [PATCH V7 17/37] OvmfPkg: Create initial version of PlatformInitLib Min Xu
2022-03-01 12:32   ` Gerd Hoffmann
2022-02-28  7:20 ` [PATCH V7 18/37] OvmfPkg/PlatformInitLib: Add hob functions Min Xu
2022-03-01 12:33   ` Gerd Hoffmann
2022-02-28  7:20 ` [PATCH V7 19/37] OvmfPkg/PlatformInitLib: Add memory functions Min Xu
2022-03-01 13:09   ` Gerd Hoffmann
2022-03-02  1:05     ` Min Xu
2022-03-02  6:56       ` [edk2-devel] " Gerd Hoffmann
2022-03-08  2:39         ` Min Xu
2022-02-28  7:20 ` [PATCH V7 20/37] OvmfPkg/PlatformInitLib: Add platform functions Min Xu
2022-02-28  7:20 ` [PATCH V7 21/37] OvmfPkg: Update PlatformInitLib to process Tdx hoblist Min Xu
2022-02-28  7:20 ` [PATCH V7 22/37] OvmfPkg/Sec: Declare local variable as volatile in SecCoreStartupWithStack Min Xu
2022-02-28  7:20 ` [PATCH V7 23/37] OvmfPkg: Update Sec to support Tdx Min Xu
2022-03-01 13:11   ` Gerd Hoffmann
2022-02-28  7:20 ` [PATCH V7 24/37] OvmfPkg: Check Tdx in QemuFwCfgPei to avoid DMA operation Min Xu
2022-02-28  7:20 ` [PATCH V7 25/37] MdeModulePkg: EFER should not be changed in TDX Min Xu
2022-03-03  3:11   ` Wang, Jian J
2022-03-04  0:18     ` Min Xu
2022-03-04  1:36       ` Wang, Jian J
2022-02-28  7:20 ` [PATCH V7 26/37] MdeModulePkg: Add PcdTdxSharedBitMask Min Xu
2022-03-03  3:27   ` Wang, Jian J
2022-03-04  1:34     ` Min Xu
2022-02-28  7:20 ` [PATCH V7 27/37] UefiCpuPkg: Update AddressEncMask in CpuPageTable Min Xu
2022-03-15  8:03   ` [edk2-devel] " Ni, Ray
2022-03-16  5:35     ` Min Xu
2022-02-28  7:21 ` [PATCH V7 28/37] OvmfPkg: Update PlatformInitLib for Tdx guest to publish ram regions Min Xu
2022-03-01 13:12   ` Gerd Hoffmann
2022-02-28  7:21 ` [PATCH V7 29/37] OvmfPkg: Update PlatformPei to support Tdx guest Min Xu
2022-03-01 13:13   ` Gerd Hoffmann
2022-02-28  7:21 ` [PATCH V7 30/37] OvmfPkg: Update AcpiPlatformDxe to alter MADT table Min Xu
2022-02-28  7:21 ` [PATCH V7 31/37] OvmfPkg/BaseMemEncryptTdxLib: Add TDX helper library Min Xu
2022-02-28  7:21 ` [PATCH V7 32/37] OvmfPkg: Add TdxDxe driver Min Xu
2022-02-28  7:21 ` [PATCH V7 33/37] OvmfPkg/QemuFwCfgLib: Support Tdx in QemuFwCfgDxe Min Xu
2022-02-28  7:21 ` [PATCH V7 34/37] OvmfPkg: Update IoMmuDxe to support TDX Min Xu
2022-02-28  7:21 ` [PATCH V7 35/37] OvmfPkg: Rename XenTimerDxe to LocalApicTimerDxe Min Xu
2022-02-28  7:21 ` [PATCH V7 36/37] UefiCpuPkg: Setting initial-count register as the last step Min Xu
2022-03-15  8:07   ` [edk2-devel] " Ni, Ray
2022-05-10 20:30   ` Lendacky, Thomas
2022-05-11  2:00     ` Min Xu
2022-05-11 14:06       ` Lendacky, Thomas
2022-05-12  0:52         ` Min Xu
2022-05-13 22:12           ` Lendacky, Thomas
2022-05-19 21:54             ` Henz, Patrick
2022-05-20  3:50               ` Jeff Fan
2022-02-28  7:21 ` [PATCH V7 37/37] OvmfPkg: Switch timer in build time for OvmfPkg Min Xu
2022-03-01  2:19 ` 回复: [edk2-devel] [PATCH V7 00/37] Enable Intel TDX in OvmfPkg (Config-A) gaoliming
2022-03-01  6:39   ` Min Xu
2022-03-01  6:53     ` Yao, Jiewen
2022-03-10  6:21   ` Min Xu [this message]
2022-03-11  3:19     ` 回复: " gaoliming
2022-03-11  7:17       ` Min Xu

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=CO1PR11MB50585306983CD135E4F80434C50B9@CO1PR11MB5058.namprd11.prod.outlook.com \
    --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