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]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to