REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3129
This patch series is a follow up of previous submission: https://edk2.groups.io/g/devel/message/70329 These module changes are validated on two different physical platforms. Standalone and traditional MM are both tested to be functional on these systems. v4 patches mainly focus on feedback for reviewed commits in v3 patches, including: a. Adding "Reviewed-by" tags for applicable patches; b. Breaking CpuIo2Smm patch for file renaming and abstraction purpose; c. Adding SmmSmiHandlerProfileLib coverage; Patch v4 branch: https://github.com/kuqin12/edk2/tree/standalone_x64_v4 Cc: Bob Feng <bob.c.f...@intel.com> Cc: Yuwei Chen <yuwei.c...@intel.com> Cc: Jian J Wang <jian.j.w...@intel.com> Cc: Hao A Wu <hao.a...@intel.com> Cc: Eric Dong <eric.d...@intel.com> Cc: Dandan Bi <dandan...@intel.com> Cc: Liming Gao <gaolim...@byosoft.com.cn> Cc: Michael D Kinney <michael.d.kin...@intel.com> Cc: Zhiguang Liu <zhiguang....@intel.com> Cc: Ray Ni <ray...@intel.com> Cc: Jiewen Yao <jiewen....@intel.com> Cc: Qi Zhang <qi1.zh...@intel.com> Cc: Rahul Kumar <rahul1.ku...@intel.com> Cc: Ard Biesheuvel <ard.biesheu...@arm.com> Cc: Sami Mujawar <sami.muja...@arm.com> Cc: Supreeth Venkatesh <supreeth.venkat...@arm.com> Cc: Laszlo Ersek <ler...@redhat.com> Kun Qin (20): BaseTools: Ecc/exception: Added _ModuleEntryPoint into exception list StandaloneMmPkg: StandaloneMmCoreEntryPoint: Extends support for X64 StandaloneMmPkg: StandaloneMmCoreHobLib: Extend support for x64 Mm Core StandaloneMmPkg: StandaloneMmCoreMemoryAllocationLib: Fix compiler warning StandaloneMmPkg: StandaloneMmMemLib: Extends support for X64 architecture MdeModulePkg: SmmLockBoxSmmLib: Support StandaloneMm for SmmLockBoxLib MdeModulePkg: SmmReportStatusCodeLib: ReportStatusCodeLib in StandaloneMm MdeModulePkg: StatusCodeHandler: StatusCodeHandler driver in StandaloneMm MdeModulePkg: FirmwarePerformanceDataTable: Added StandaloneMm support MdeModulePkg: ReportStatusCodeRouter: Support StandaloneMm RSC Router MdeModulePkg: SmmSmiHandlerProfileLib: Support StandaloneMm Instance MdePkg: UefiDevicePathLib: Support UefiDevicePathLib under StandaloneMm PcAtChipsetPkg: AcpiTimerLib: Added StandaloneMm instance of AcpiTimerLib SecurityPkg: Tcg2PhysicalPresenceLib: Introduce StandaloneMm instance SecurityPkg: Tcg2PpVendorLibNull: Added support for MM_STANDALONE type SecurityPkg: Tpm2DeviceLibDTpm: Introduce StandaloneMm instance UefiCpuPkg: CpuIo2Smm: Move CpuIo2Smm driver to consume gMmst UefiCpuPkg: CpuIo2Smm: Abstract SMM specific functions into separate file UefiCpuPkg: CpuIo2Smm: Support of CpuIo driver under StandaloneMm UefiCpuPkg: SmmCpuExceptionHandlerLib: Added StandaloneMm module support MdeModulePkg/Library/SmmLockBoxLib/{SmmLockBoxSmmLib.c => SmmLockBoxMmLib.c} | 82 ++--- MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxStandaloneMmLib.c | 53 +++ MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxTraditionalMmLib.c | 53 +++ MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLib.c | 16 +- MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLibStandaloneMm.c | 38 ++ MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLibTraditional.c | 38 ++ MdeModulePkg/Library/SmmSmiHandlerProfileLib/{SmmSmiHandlerProfileLib.c => MmSmiHandlerProfileLib.c} | 20 +- MdeModulePkg/Library/SmmSmiHandlerProfileLib/SmmSmiHandlerProfileLib.c | 90 +---- MdeModulePkg/Library/SmmSmiHandlerProfileLib/StandaloneMmSmiHandlerProfileLib.c | 31 ++ MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/{FirmwarePerformanceSmm.c => FirmwarePerformanceCommon.c} | 76 ++-- MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceStandaloneMm.c | 61 ++++ MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceTraditional.c | 61 ++++ MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/{ReportStatusCodeRouterSmm.c => ReportStatusCodeRouterCommon.c} | 59 ++- MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterStandaloneMm.c | 33 ++ MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterTraditional.c | 33 ++ MdeModulePkg/Universal/StatusCodeHandler/Smm/MemoryStatusCodeWorker.c | 36 +- MdeModulePkg/Universal/StatusCodeHandler/Smm/SerialStatusCodeWorker.c | 2 +- MdeModulePkg/Universal/StatusCodeHandler/Smm/{StatusCodeHandlerSmm.c => StatusCodeHandlerMm.c} | 23 +- MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerStandalone.c | 31 ++ MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerTraditional.c | 31 ++ MdePkg/Library/UefiDevicePathLib/DevicePathUtilities.c | 33 -- MdePkg/Library/UefiDevicePathLib/DevicePathUtilitiesDxeSmm.c | 51 +++ MdePkg/Library/UefiDevicePathLib/DevicePathUtilitiesStandaloneMm.c | 40 ++ PcAtChipsetPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.c | 81 +--- PcAtChipsetPkg/Library/AcpiTimerLib/{DxeAcpiTimerLib.c => DxeStandaloneMmAcpiTimerLib.c} | 9 +- PcAtChipsetPkg/Library/AcpiTimerLib/StandaloneMmAcpiTimerLib.c | 31 ++ SecurityPkg/Library/SmmTcg2PhysicalPresenceLib/{SmmTcg2PhysicalPresenceLib.c => MmTcg2PhysicalPresenceLibCommon.c} | 33 +- SecurityPkg/Library/SmmTcg2PhysicalPresenceLib/SmmTcg2PhysicalPresenceLib.c | 368 +------------------ SecurityPkg/Library/SmmTcg2PhysicalPresenceLib/StandaloneMmTcg2PhysicalPresenceLib.c | 42 +++ SecurityPkg/Library/Tpm2DeviceLibDTpm/Tpm2DeviceLibDTpm.c | 42 +-- SecurityPkg/Library/Tpm2DeviceLibDTpm/Tpm2DeviceLibDTpmBase.c | 68 ++++ SecurityPkg/Library/Tpm2DeviceLibDTpm/Tpm2DeviceLibDTpmStandaloneMm.c | 66 ++++ SecurityPkg/Library/Tpm2DeviceLibDTpm/Tpm2InstanceLibDTpm.c | 40 +- SecurityPkg/Library/Tpm2DeviceLibDTpm/Tpm2Ptp.c | 15 +- StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/X64/StandaloneMmCoreEntryPoint.c | 71 ++++ StandaloneMmPkg/Library/StandaloneMmCoreHobLib/{ => AArch64}/StandaloneMmCoreHobLib.c | 272 -------------- StandaloneMmPkg/Library/StandaloneMmCoreHobLib/Common.c | 291 +++++++++++++++ StandaloneMmPkg/Library/StandaloneMmCoreHobLib/X64/StandaloneMmCoreHobLib.c | 298 +++++++++++++++ StandaloneMmPkg/Library/StandaloneMmCoreMemoryAllocationLib/StandaloneMmCoreMemoryAllocationLib.c | 6 +- StandaloneMmPkg/Library/StandaloneMmMemLib/AArch64/StandaloneMmMemLibInternal.c | 27 ++ StandaloneMmPkg/Library/StandaloneMmMemLib/StandaloneMmMemLib.c | 52 +++ StandaloneMmPkg/Library/StandaloneMmMemLib/X86StandaloneMmMemLibInternal.c | 155 ++++++++ UefiCpuPkg/CpuIo2Smm/{CpuIo2Smm.c => CpuIo2Mm.c} | 17 +- UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.c | 385 +------------------- UefiCpuPkg/CpuIo2Smm/CpuIo2StandaloneMm.c | 32 ++ BaseTools/Source/Python/Ecc/exception.xml | 4 + MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxLibPrivate.h | 25 ++ MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxSmmLib.inf | 15 +- MdeModulePkg/Library/SmmLockBoxLib/{SmmLockBoxSmmLib.inf => SmmLockBoxStandaloneMmLib.inf} | 26 +- MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLib.h | 36 ++ MdeModulePkg/Library/SmmReportStatusCodeLib/SmmReportStatusCodeLib.inf | 4 +- MdeModulePkg/Library/SmmReportStatusCodeLib/{SmmReportStatusCodeLib.inf => StandaloneMmReportStatusCodeLib.inf} | 22 +- MdeModulePkg/Library/SmmSmiHandlerProfileLib/MmSmiHandlerProfileLib.h | 23 ++ MdeModulePkg/Library/SmmSmiHandlerProfileLib/SmmSmiHandlerProfileLib.inf | 4 +- MdeModulePkg/Library/SmmSmiHandlerProfileLib/StandaloneMmSmiHandlerProfileLib.inf | 44 +++ MdeModulePkg/MdeModulePkg.dsc | 8 + MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceCommon.h | 50 +++ MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceSmm.inf | 11 +- MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/{FirmwarePerformanceSmm.inf => FirmwarePerformanceStandaloneMm.inf} | 31 +- MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/{ReportStatusCodeRouterSmm.h => ReportStatusCodeRouterCommon.h} | 46 ++- MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterSmm.inf | 13 +- MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterStandaloneMm.inf | 49 +++ MdeModulePkg/Universal/StatusCodeHandler/Smm/{StatusCodeHandlerSmm.h => StatusCodeHandlerMm.h} | 23 +- MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerSmm.inf | 15 +- MdeModulePkg/Universal/StatusCodeHandler/Smm/{StatusCodeHandlerSmm.inf => StatusCodeHandlerStandaloneMm.inf} | 32 +- MdePkg/Library/UefiDevicePathLib/UefiDevicePathLib.inf | 1 + MdePkg/Library/UefiDevicePathLib/UefiDevicePathLibOptionalDevicePathProtocol.inf | 1 + MdePkg/Library/UefiDevicePathLib/{UefiDevicePathLib.inf => UefiDevicePathLibStandaloneMm.inf} | 11 +- MdePkg/MdePkg.dsc | 1 + PcAtChipsetPkg/Library/AcpiTimerLib/DxeAcpiTimerLib.inf | 2 + PcAtChipsetPkg/Library/AcpiTimerLib/DxeStandaloneMmAcpiTimerLib.h | 24 ++ PcAtChipsetPkg/Library/AcpiTimerLib/{DxeAcpiTimerLib.inf => StandaloneMmAcpiTimerLib.inf} | 19 +- PcAtChipsetPkg/PcAtChipsetPkg.dsc | 1 + SecurityPkg/Library/SmmTcg2PhysicalPresenceLib/MmTcg2PhysicalPresenceLibCommon.h | 34 ++ SecurityPkg/Library/SmmTcg2PhysicalPresenceLib/SmmTcg2PhysicalPresenceLib.inf | 6 +- SecurityPkg/Library/SmmTcg2PhysicalPresenceLib/{SmmTcg2PhysicalPresenceLib.inf => StandaloneMmTcg2PhysicalPresenceLib.inf} | 22 +- SecurityPkg/Library/Tcg2PpVendorLibNull/Tcg2PpVendorLibNull.inf | 2 +- SecurityPkg/Library/Tpm2DeviceLibDTpm/Tpm2DeviceLibDTpm.h | 67 ++++ SecurityPkg/Library/Tpm2DeviceLibDTpm/Tpm2DeviceLibDTpm.inf | 3 + SecurityPkg/Library/Tpm2DeviceLibDTpm/{Tpm2DeviceLibDTpm.inf => Tpm2DeviceLibDTpmStandaloneMm.inf} | 13 +- SecurityPkg/Library/Tpm2DeviceLibDTpm/Tpm2InstanceLibDTpm.inf | 3 + SecurityPkg/SecurityPkg.dsc | 3 + StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/StandaloneMmCoreEntryPoint.inf | 3 + StandaloneMmPkg/Library/StandaloneMmCoreHobLib/StandaloneMmCoreHobLib.inf | 11 +- StandaloneMmPkg/Library/StandaloneMmMemLib/StandaloneMmMemLib.inf | 13 +- UefiCpuPkg/CpuIo2Smm/{CpuIo2Smm.h => CpuIo2Mm.h} | 14 +- UefiCpuPkg/CpuIo2Smm/CpuIo2Smm.inf | 5 +- UefiCpuPkg/CpuIo2Smm/{CpuIo2Smm.inf => CpuIo2StandaloneMm.inf} | 24 +- UefiCpuPkg/Library/CpuExceptionHandlerLib/SmmCpuExceptionHandlerLib.inf | 2 +- UefiCpuPkg/UefiCpuPkg.dsc | 6 + 90 files changed, 2503 insertions(+), 1661 deletions(-) rename MdeModulePkg/Library/SmmLockBoxLib/{SmmLockBoxSmmLib.c => SmmLockBoxMmLib.c} (89%) create mode 100644 MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxStandaloneMmLib.c create mode 100644 MdeModulePkg/Library/SmmLockBoxLib/SmmLockBoxTraditionalMmLib.c create mode 100644 MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLibStandaloneMm.c create mode 100644 MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLibTraditional.c copy MdeModulePkg/Library/SmmSmiHandlerProfileLib/{SmmSmiHandlerProfileLib.c => MmSmiHandlerProfileLib.c} (86%) create mode 100644 MdeModulePkg/Library/SmmSmiHandlerProfileLib/StandaloneMmSmiHandlerProfileLib.c rename MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/{FirmwarePerformanceSmm.c => FirmwarePerformanceCommon.c} (75%) create mode 100644 MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceStandaloneMm.c create mode 100644 MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceTraditional.c rename MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/{ReportStatusCodeRouterSmm.c => ReportStatusCodeRouterCommon.c} (74%) create mode 100644 MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterStandaloneMm.c create mode 100644 MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterTraditional.c rename MdeModulePkg/Universal/StatusCodeHandler/Smm/{StatusCodeHandlerSmm.c => StatusCodeHandlerMm.c} (69%) create mode 100644 MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerStandalone.c create mode 100644 MdeModulePkg/Universal/StatusCodeHandler/Smm/StatusCodeHandlerTraditional.c create mode 100644 MdePkg/Library/UefiDevicePathLib/DevicePathUtilitiesDxeSmm.c create mode 100644 MdePkg/Library/UefiDevicePathLib/DevicePathUtilitiesStandaloneMm.c copy PcAtChipsetPkg/Library/AcpiTimerLib/{DxeAcpiTimerLib.c => DxeStandaloneMmAcpiTimerLib.c} (86%) create mode 100644 PcAtChipsetPkg/Library/AcpiTimerLib/StandaloneMmAcpiTimerLib.c copy SecurityPkg/Library/SmmTcg2PhysicalPresenceLib/{SmmTcg2PhysicalPresenceLib.c => MmTcg2PhysicalPresenceLibCommon.c} (90%) create mode 100644 SecurityPkg/Library/SmmTcg2PhysicalPresenceLib/StandaloneMmTcg2PhysicalPresenceLib.c create mode 100644 SecurityPkg/Library/Tpm2DeviceLibDTpm/Tpm2DeviceLibDTpmBase.c create mode 100644 SecurityPkg/Library/Tpm2DeviceLibDTpm/Tpm2DeviceLibDTpmStandaloneMm.c create mode 100644 StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/X64/StandaloneMmCoreEntryPoint.c rename StandaloneMmPkg/Library/StandaloneMmCoreHobLib/{ => AArch64}/StandaloneMmCoreHobLib.c (55%) create mode 100644 StandaloneMmPkg/Library/StandaloneMmCoreHobLib/Common.c create mode 100644 StandaloneMmPkg/Library/StandaloneMmCoreHobLib/X64/StandaloneMmCoreHobLib.c create mode 100644 StandaloneMmPkg/Library/StandaloneMmMemLib/X86StandaloneMmMemLibInternal.c copy UefiCpuPkg/CpuIo2Smm/{CpuIo2Smm.c => CpuIo2Mm.c} (93%) create mode 100644 UefiCpuPkg/CpuIo2Smm/CpuIo2StandaloneMm.c copy MdeModulePkg/Library/SmmLockBoxLib/{SmmLockBoxSmmLib.inf => SmmLockBoxStandaloneMmLib.inf} (52%) create mode 100644 MdeModulePkg/Library/SmmReportStatusCodeLib/ReportStatusCodeLib.h copy MdeModulePkg/Library/SmmReportStatusCodeLib/{SmmReportStatusCodeLib.inf => StandaloneMmReportStatusCodeLib.inf} (56%) create mode 100644 MdeModulePkg/Library/SmmSmiHandlerProfileLib/MmSmiHandlerProfileLib.h create mode 100644 MdeModulePkg/Library/SmmSmiHandlerProfileLib/StandaloneMmSmiHandlerProfileLib.inf create mode 100644 MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerformanceCommon.h copy MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/{FirmwarePerformanceSmm.inf => FirmwarePerformanceStandaloneMm.inf} (65%) rename MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/{ReportStatusCodeRouterSmm.h => ReportStatusCodeRouterCommon.h} (72%) create mode 100644 MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterStandaloneMm.inf rename MdeModulePkg/Universal/StatusCodeHandler/Smm/{StatusCodeHandlerSmm.h => StatusCodeHandlerMm.h} (87%) copy MdeModulePkg/Universal/StatusCodeHandler/Smm/{StatusCodeHandlerSmm.inf => StatusCodeHandlerStandaloneMm.inf} (62%) copy MdePkg/Library/UefiDevicePathLib/{UefiDevicePathLib.inf => UefiDevicePathLibStandaloneMm.inf} (79%) create mode 100644 PcAtChipsetPkg/Library/AcpiTimerLib/DxeStandaloneMmAcpiTimerLib.h copy PcAtChipsetPkg/Library/AcpiTimerLib/{DxeAcpiTimerLib.inf => StandaloneMmAcpiTimerLib.inf} (70%) create mode 100644 SecurityPkg/Library/SmmTcg2PhysicalPresenceLib/MmTcg2PhysicalPresenceLibCommon.h copy SecurityPkg/Library/SmmTcg2PhysicalPresenceLib/{SmmTcg2PhysicalPresenceLib.inf => StandaloneMmTcg2PhysicalPresenceLib.inf} (64%) create mode 100644 SecurityPkg/Library/Tpm2DeviceLibDTpm/Tpm2DeviceLibDTpm.h copy SecurityPkg/Library/Tpm2DeviceLibDTpm/{Tpm2DeviceLibDTpm.inf => Tpm2DeviceLibDTpmStandaloneMm.inf} (70%) rename UefiCpuPkg/CpuIo2Smm/{CpuIo2Smm.h => CpuIo2Mm.h} (93%) copy UefiCpuPkg/CpuIo2Smm/{CpuIo2Smm.inf => CpuIo2StandaloneMm.inf} (56%) -- 2.30.0.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#70788): https://edk2.groups.io/g/devel/message/70788 Mute This Topic: https://groups.io/mt/80139692/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-