Public branch: <https://github.com/lersek/edk2/commits/smm3_v5>.
The big change in this version is that Mike has flattened, cleaned up, and incorporated CpuS3DataDxe from OvmfPkg/QuarkPort to UefiCpuPkg. (Huge kudos for that again!) The OvmfPkg/QuarkPort directory is therefore gone, as are any other mentions of Quark in the source code and in the commit messages. Another important change is that the series no longer introduces a separate null implementation of EFI_PEI_SMM_COMMUNICATION_PPI under OvmfPkg -- kudos to Jiewen for suggesting and accepting a PEI LockBoxLib patch that has made this possible. In addition, the series addresses all agreed-upon v4 feedback, and picks up all review tags too (some of which were given dependent on addressing said review feedback). In total, the following patches have seen modifications -- please see their Notes sections individually for the changes: [PATCH v5 02/33] OvmfPkg: Sec: force reinit of BaseExtractGuidedSectionLib handler table [PATCH v5 07/33] OvmfPkg: add PEIM for providing TSEG-as-SMRAM during PEI [PATCH v5 08/33] OvmfPkg: add DXE_DRIVER for providing TSEG-as-SMRAM during boot-time DXE [PATCH v5 09/33] OvmfPkg: implement EFI_SMM_CONTROL2_PROTOCOL with a DXE_RUNTIME_DRIVER [PATCH v5 10/33] OvmfPkg: pull in the SMM IPL and SMM core [PATCH v5 13/33] OvmfPkg: LockBoxLib: -D SMM_REQUIRE excludes our fake lockbox [PATCH v5 14/33] OvmfPkg: PlatformPei: don't allocate fake lockbox if SMM_REQUIRE [PATCH v5 19/33] OvmfPkg: select LocalApicLib instance with x2apic support [PATCH v5 21/33] OvmfPkg: import SmmCpuFeaturesLib from UefiCpuPkg [PATCH v5 22/33] OvmfPkg: SmmCpuFeaturesLib: remove unnecessary bits [PATCH v5 27/33] OvmfPkg: build CpuS3DataDxe for -D SMM_REQUIRE [PATCH v5 28/33] OvmfPkg: build PiSmmCpuDxeSmm for -D SMM_REQUIRE [PATCH v5 33/33] OvmfPkg: README: document SMM status In the process I had to drop two R-b tags from Mike, because I had to refresh Paolo's patches (marked #21 and #22 above) against the meanwhile extended "UefiCpuPkg/Library/SmmCpuFeaturesLib" instance. Although the end result in the "OvmfPkg/Library/SmmCpuFeaturesLib" instance is exactly the same as before -- modulo the whitespace and comment cleanups, and the two new empty APIs now inherited from UefiCpuPkg --, I felt the review process would be cleaner and more integral if Mike took a look again. Much appreciated. Accounting for all of the above, only the following patches need reviews: [PATCH v5 21/33] OvmfPkg: import SmmCpuFeaturesLib from UefiCpuPkg [PATCH v5 22/33] OvmfPkg: SmmCpuFeaturesLib: remove unnecessary bits [PATCH v5 27/33] OvmfPkg: build CpuS3DataDxe for -D SMM_REQUIRE After which I plan to commit the series. Cc: Paolo Bonzini <pbonz...@redhat.com> Cc: Jordan Justen <jordan.l.jus...@intel.com> Cc: Michael Kinney <michael.d.kin...@intel.com> Cc: Jiewen Yao <jiewen....@intel.com> Thanks Laszlo Laszlo Ersek (27): OvmfPkg: introduce -D SMM_REQUIRE and PcdSmmSmramRequire OvmfPkg: Sec: force reinit of BaseExtractGuidedSectionLib handler table OvmfPkg: Sec: assert the build-time calculated end of the scratch buffer OvmfPkg: decompress FVs on S3 resume if SMM_REQUIRE is set OvmfPkg: PlatformPei: allow caching in AddReservedMemoryBaseSizeHob() OvmfPkg: PlatformPei: account for TSEG size with PcdSmmSmramRequire set OvmfPkg: add PEIM for providing TSEG-as-SMRAM during PEI OvmfPkg: add DXE_DRIVER for providing TSEG-as-SMRAM during boot-time DXE OvmfPkg: implement EFI_SMM_CONTROL2_PROTOCOL with a DXE_RUNTIME_DRIVER OvmfPkg: pull in the SMM IPL and SMM core OvmfPkg: pull in CpuIo2Smm driver OvmfPkg: AcpiS3SaveDxe: don't fake LockBox protocol if SMM_REQUIRE OvmfPkg: LockBoxLib: -D SMM_REQUIRE excludes our fake lockbox OvmfPkg: PlatformPei: don't allocate fake lockbox if SMM_REQUIRE OvmfPkg: LockBox: use SMM stack with -D SMM_REQUIRE OvmfPkg: resolve ReportStatusCodeLib for DXE_SMM_DRIVER modules OvmfPkg: resolve CpuExceptionHandlerLib for DXE_SMM_DRIVER modules OvmfPkg: select LocalApicLib instance with x2apic support OvmfPkg: set gUefiCpuPkgTokenSpaceGuid.PcdCpuSmmEnableBspElection to FALSE OvmfPkg: any AP in SMM should not wait for the BSP for more than 100 ms OvmfPkg: build CpuS3DataDxe for -D SMM_REQUIRE OvmfPkg: build PiSmmCpuDxeSmm for -D SMM_REQUIRE OvmfPkg: QemuFlashFvbServicesRuntimeDxe: add DXE_SMM_DRIVER build OvmfPkg: QemuFlashFvbServicesRuntimeDxe: adhere to -D SMM_REQUIRE OvmfPkg: consolidate variable driver stack in DSC and FDF files OvmfPkg: pull in SMM-based variable driver stack OvmfPkg: README: document SMM status Michael Kinney (1): OvmfPkg: resolve DebugAgentLib for DXE_SMM_DRIVER modules Paolo Bonzini (5): OvmfPkg: import SmmCpuFeaturesLib from UefiCpuPkg OvmfPkg: SmmCpuFeaturesLib: remove unnecessary bits OvmfPkg: SmmCpuFeaturesLib: implement SMRAM state save map access OvmfPkg: SmmCpuFeaturesLib: customize state save map format OvmfPkg: use relaxed AP SMM synchronization mode OvmfPkg/OvmfPkg.dec | 18 + OvmfPkg/OvmfPkgIa32.dsc | 120 ++- OvmfPkg/OvmfPkgIa32X64.dsc | 120 ++- OvmfPkg/OvmfPkgX64.dsc | 120 ++- OvmfPkg/OvmfPkgIa32.fdf | 57 +- OvmfPkg/OvmfPkgIa32X64.fdf | 57 +- OvmfPkg/OvmfPkgX64.fdf | 57 +- OvmfPkg/AcpiS3SaveDxe/AcpiS3SaveDxe.inf | 3 +- OvmfPkg/Library/LockBoxLib/LockBoxBaseLib.inf | 3 + OvmfPkg/Library/LockBoxLib/LockBoxDxeLib.inf | 3 + OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf | 38 + OvmfPkg/PlatformPei/PlatformPei.inf | 5 + OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FvbServicesRuntimeDxe.inf | 2 + OvmfPkg/QemuFlashFvbServicesRuntimeDxe/{FvbServicesRuntimeDxe.inf => FvbServicesSmm.inf} | 27 +- OvmfPkg/Sec/SecMain.inf | 6 + OvmfPkg/SmmAccess/SmmAccess2Dxe.inf | 58 ++ OvmfPkg/SmmAccess/SmmAccessPei.inf | 69 ++ OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf | 66 ++ OvmfPkg/Include/Register/QemuSmramSaveStateMap.h | 184 +++++ OvmfPkg/PlatformPei/Platform.h | 3 +- OvmfPkg/SmmAccess/SmramInternal.h | 89 +++ OvmfPkg/AcpiS3SaveDxe/AcpiS3Save.c | 14 +- OvmfPkg/Library/LockBoxLib/LockBoxLib.c | 2 + OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.c | 834 ++++++++++++++++++++ OvmfPkg/PlatformPei/Fv.c | 27 +- OvmfPkg/PlatformPei/MemDetect.c | 85 +- OvmfPkg/PlatformPei/Platform.c | 9 +- OvmfPkg/PlatformPei/Xen.c | 2 +- OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockServiceDxe.c | 3 + OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockServiceSmm.c | 69 ++ OvmfPkg/QemuFlashFvbServicesRuntimeDxe/QemuFlash.c | 1 + OvmfPkg/Sec/SecMain.c | 37 +- OvmfPkg/SmmAccess/SmmAccess2Dxe.c | 156 ++++ OvmfPkg/SmmAccess/SmmAccessPei.c | 393 +++++++++ OvmfPkg/SmmAccess/SmramInternal.c | 188 +++++ OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.c | 366 +++++++++ OvmfPkg/DecomprScratchEnd.fdf.inc | 72 ++ OvmfPkg/OvmfPkg.fdf.inc | 2 + OvmfPkg/README | 57 ++ 39 files changed, 3327 insertions(+), 95 deletions(-) create mode 100644 OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.inf copy OvmfPkg/QemuFlashFvbServicesRuntimeDxe/{FvbServicesRuntimeDxe.inf => FvbServicesSmm.inf} (75%) create mode 100644 OvmfPkg/SmmAccess/SmmAccess2Dxe.inf create mode 100644 OvmfPkg/SmmAccess/SmmAccessPei.inf create mode 100644 OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.inf create mode 100644 OvmfPkg/Include/Register/QemuSmramSaveStateMap.h create mode 100644 OvmfPkg/SmmAccess/SmramInternal.h create mode 100644 OvmfPkg/Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.c create mode 100644 OvmfPkg/QemuFlashFvbServicesRuntimeDxe/FwBlockServiceSmm.c create mode 100644 OvmfPkg/SmmAccess/SmmAccess2Dxe.c create mode 100644 OvmfPkg/SmmAccess/SmmAccessPei.c create mode 100644 OvmfPkg/SmmAccess/SmramInternal.c create mode 100644 OvmfPkg/SmmControl2Dxe/SmmControl2Dxe.c create mode 100644 OvmfPkg/DecomprScratchEnd.fdf.inc -- 1.8.3.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel