Kun: I will merge this patch serial. Can you update the latest version patches with reviewed-by tag into your fork https://github.com/kuqin12? I will refer to it and create pull request. Thanks Liming 发件人: Kun Qin 发送时间: 2021年1月29日 15:56 收件人: devel@edk2.groups.io 抄送: Bob Feng ; Yuwei Chen ; Jian J Wang ; Hao A Wu ; Eric Dong ; Dandan Bi ; Liming Gao ; Michael D Kinney ; Zhiguang Liu ; Ray Ni ; Jiewen Yao ; Qi Zhang ; Rahul Kumar ; Ard Biesheuvel ; Sami Mujawar ; Supreeth Venkatesh ; Laszlo Ersek 主题: RE: [edk2-devel] [PATCH v4 00/20] Extends Support of MM_STANDALONE Type Modules to X64 Hi, Thanks to all the reviewers helping through this patch series. Each individual patch has received a reviewed-by tag. Should I send out a v5 that adds the final 3 reviewed-by tags based on latest top of master? If not, could one of the maintainers help to merge these patches into the mainline? Just for reference, the final 3 reviewed-by tags are here: #11: Re: [PATCH v4 11/20] MdeModulePkg: SmmSmiHandlerProfileLib: Support StandaloneMm Instance (groups.io) #18: Re: [PATCH v4 18/20] UefiCpuPkg: CpuIo2Smm: Abstract SMM specific functions into separate file (groups.io) #19: Re: [PATCH v4 19/20] UefiCpuPkg: CpuIo2Smm: Support of CpuIo driver under StandaloneMm (groups.io) Please let me know if there is anything needed from me to merge in these patches. Thanks in advance! Regards, Kun From: Kun Qin Sent: Tuesday, January 26, 2021 11:45 To: devel@edk2.groups.io Cc: Bob Feng ; Yuwei Chen ; Jian J Wang ; Hao A Wu ; Eric Dong ; Dandan Bi ; Liming Gao ; Michael D Kinney ; Zhiguang Liu ; Ray Ni ; Jiewen Yao ; Qi Zhang ; Rahul Kumar ; Ard Biesheuvel ; Sami Mujawar ; Supreeth Venkatesh ; Laszlo Ersek Subject: [edk2-devel] [PATCH v4 00/20] Extends Support of MM_STANDALONE Type Modules to X64 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 > Cc: Yuwei Chen > Cc: Jian J Wang > Cc: Hao A Wu > Cc: Eric Dong > Cc: Dandan Bi > Cc: Liming Gao > Cc: Michael D Kinney > Cc: Zhiguang Liu > Cc: Ray Ni > Cc: Jiewen Yao > Cc: Qi Zhang > Cc: Rahul Kumar > Cc: Ard Biesheuvel > Cc: Sami Mujawar > Cc: Supreeth Venkatesh > Cc: Laszlo Ersek > 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/StandaloneMmSmiHandlerProfileLi b.c | 31 ++ MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/{FirmwarePerform anceSmm.c => FirmwarePerformanceCommon.c} | 76 ++-- MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerforma nceStandaloneMm.c | 61 ++++ MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerforma nceTraditional.c | 61 ++++ MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/{ReportStatusCodeRouterSmm .c => ReportStatusCodeRouterCommon.c} | 59 ++- MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterStan daloneMm.c | 33 ++ MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterTrad itional.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/StandaloneMmTcg2PhysicalPrese nceLib.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/StandaloneMmCoreEntry Point.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/StandaloneMmCore MemoryAllocationLib.c | 6 +- StandaloneMmPkg/Library/StandaloneMmMemLib/AArch64/StandaloneMmMemLibInterna l.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/StandaloneMmSmiHandlerProfileLi b.inf | 44 +++ MdeModulePkg/MdeModulePkg.dsc | 8 + MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerforma nceCommon.h | 50 +++ MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerforma nceSmm.inf | 11 +- MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/{FirmwarePerform anceSmm.inf => FirmwarePerformanceStandaloneMm.inf} | 31 +- MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/{ReportStatusCodeRouterSmm .h => ReportStatusCodeRouterCommon.h} | 46 ++- MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterSmm. inf | 13 +- MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterStan daloneMm.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/MmTcg2PhysicalPresenceLibComm on.h | 34 ++ SecurityPkg/Library/SmmTcg2PhysicalPresenceLib/SmmTcg2PhysicalPresenceLib.in f | 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/StandaloneMmCoreEntryPoin t.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/StandaloneMmSmiHandlerProfileLi b.c rename MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/{FirmwarePerform anceSmm.c => FirmwarePerformanceCommon.c} (75%) create mode 100644 MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerforma nceStandaloneMm.c create mode 100644 MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerforma nceTraditional.c rename MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/{ReportStatusCodeRouterSmm .c => ReportStatusCodeRouterCommon.c} (74%) create mode 100644 MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterStan daloneMm.c create mode 100644 MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterTrad itional.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/StandaloneMmTcg2PhysicalPrese nceLib.c create mode 100644 SecurityPkg/Library/Tpm2DeviceLibDTpm/Tpm2DeviceLibDTpmBase.c create mode 100644 SecurityPkg/Library/Tpm2DeviceLibDTpm/Tpm2DeviceLibDTpmStandaloneMm.c create mode 100644 StandaloneMmPkg/Library/StandaloneMmCoreEntryPoint/X64/StandaloneMmCoreEntry Point.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/StandaloneMmSmiHandlerProfileLi b.inf create mode 100644 MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/FirmwarePerforma nceCommon.h copy MdeModulePkg/Universal/Acpi/FirmwarePerformanceDataTableSmm/{FirmwarePerform anceSmm.inf => FirmwarePerformanceStandaloneMm.inf} (65%) rename MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/{ReportStatusCodeRouterSmm .h => ReportStatusCodeRouterCommon.h} (72%) create mode 100644 MdeModulePkg/Universal/ReportStatusCodeRouter/Smm/ReportStatusCodeRouterStan daloneMm.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/MmTcg2PhysicalPresenceLibComm on.h copy SecurityPkg/Library/SmmTcg2PhysicalPresenceLib/{SmmTcg2PhysicalPresenceLib.i nf => 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