Sure, Jiewen, Yes, I have tested on OVMF: 1) Checked the OVMF can normal boot with SMM enabled. 2) Checked the multiple processor support on OVMF with -smp 4 command. 3) Test the OVMF can response soft SMI, the smbase has been rebased before smm cpu driver dispatch. 4) Pass SMM test on intel QSP platform.
Thanks, Jiaxin > -----Original Message----- > From: Yao, Jiewen <jiewen....@intel.com> > Sent: Wednesday, April 10, 2024 10:02 PM > To: Wu, Jiaxin <jiaxin...@intel.com>; devel@edk2.groups.io > Cc: Ni, Ray <ray...@intel.com>; Zeng, Star <star.z...@intel.com>; Gerd > Hoffmann <kra...@redhat.com>; Kumar, Rahul R <rahul.r.ku...@intel.com>; > Dong, Guo <guo.d...@intel.com>; Rhodes, Sean <sean@starlabs.systems>; > Lu, James <james...@intel.com>; Guo, Gua <gua....@intel.com>; Ard > Biesheuvel <ardb+tianoc...@kernel.org> > Subject: RE: [PATCH v1 00/13] Add SmmRelocationLib > > Hello > Would you please describe what test has been done for OvmfPkg? > For example, have you validated OVMF with SMM enabled? > > > > -----Original Message----- > > From: Wu, Jiaxin <jiaxin...@intel.com> > > Sent: Wednesday, April 10, 2024 9:57 PM > > To: devel@edk2.groups.io > > Cc: Ni, Ray <ray...@intel.com>; Zeng, Star <star.z...@intel.com>; Gerd > > Hoffmann <kra...@redhat.com>; Kumar, Rahul R > <rahul.r.ku...@intel.com>; > > Dong, Guo <guo.d...@intel.com>; Rhodes, Sean <sean@starlabs.systems>; > Lu, > > James <james...@intel.com>; Guo, Gua <gua....@intel.com>; Ard > Biesheuvel > > <ardb+tianoc...@kernel.org>; Yao, Jiewen <jiewen....@intel.com> > > Subject: [PATCH v1 00/13] Add SmmRelocationLib > > > > Intel plans to separate the smbase relocation logic from > > PiSmmCpuDxeSmm driver, and the related behavior will be > > moved to the new interface defined by the SmmRelocationLib > > class. > > > > The SmmRelocationLib class provides the SmmRelocationInit() > > interface for platform to do the smbase relocation, which > > shall provide below 2 functionalities: > > 1. Relocate smbases for each processor. > > 2. Create the gSmmBaseHobGuid HOB. > > > > With SmmRelocationLib, PiSmmCpuDxeSmm driver (which runs at > > a later phase) can be simplfied as below for SMM init: > > 1. Consume the gSmmBaseHobGuid HOB for the relocated smbases > > for each Processor. > > 2. Execute the early SMM Init. > > > > Cc: Ray Ni <ray...@intel.com> > > Cc: Zeng Star <star.z...@intel.com> > > Cc: Gerd Hoffmann <kra...@redhat.com> > > Cc: Rahul Kumar <rahul1.ku...@intel.com> > > Cc: Guo Dong <guo.d...@intel.com> > > Cc: Sean Rhodes <sean@starlabs.systems> > > Cc: James Lu <james...@intel.com> > > Cc: Gua Guo <gua....@intel.com> > > Cc: Ard Biesheuvel <ardb+tianoc...@kernel.org> > > Cc: Jiewen Yao <jiewen....@intel.com> > > Signed-off-by: Jiaxin Wu <jiaxin...@intel.com> > > > > Jiaxin Wu (13): > > UefiCpuPkg: Add SmmRelocationLib class > > UefiCpuPkg/SmmRelocationLib: Add SmmRelocationLib library instance > > UefiCpuPkg/SmmRelocationLib: Add library instance for OVMF > > UefiCpuPkg/SmmRelocationLib: Add library instance for AMD > > UefiCpuPkg/UefiCpuPkg.dsc: Include SmmRelocationLib in UefiCpuPkg > > UefiPayloadPkg/UefiPayloadPkg.dsc: Include SmmRelocationLib > > OvmfPkg: Include SmmRelocationLib in OvmfPkg > > OvmfPkg/PlatformInitLib: Create gEfiSmmSmramMemoryGuid > > OvmfPkg/SmmAccess: Consume gEfiSmmSmramMemoryGuid > > OvmfPkg/PlatformInitLib: Create gEfiAcpiVariableGuid > > OvmfPkg/SmmCpuFeaturesLib: Check Smbase Relocation is done or not > > OvmfPkg/PlatformPei: Relocate SmBases in PEI phase > > UefiCpuPkg/PiSmmCpuDxeSmm: Remove SmBases relocation logic > > > > OvmfPkg/AmdSev/AmdSevX64.dsc | 1 + > > OvmfPkg/CloudHv/CloudHvX64.dsc | 1 + > > OvmfPkg/Library/PlatformInitLib/MemDetect.c | 104 ++-- > > .../Library/PlatformInitLib/PlatformInitLib.inf | 6 +- > > .../Library/SmmCpuFeaturesLib/SmmCpuFeaturesLib.c | 33 +- > > OvmfPkg/Microvm/MicrovmX64.dsc | 1 + > > OvmfPkg/OvmfPkgIa32.dsc | 1 + > > OvmfPkg/OvmfPkgIa32X64.dsc | 1 + > > OvmfPkg/OvmfPkgX64.dsc | 1 + > > OvmfPkg/PlatformPei/Platform.c | 1 + > > OvmfPkg/PlatformPei/Platform.h | 5 + > > OvmfPkg/PlatformPei/PlatformPei.inf | 5 +- > > OvmfPkg/PlatformPei/SmmRelocation.c | 80 +++ > > OvmfPkg/SmmAccess/SmmAccess2Dxe.c | 4 +- > > OvmfPkg/SmmAccess/SmmAccess2Dxe.inf | 5 + > > OvmfPkg/SmmAccess/SmmAccessPei.c | 88 +-- > > OvmfPkg/SmmAccess/SmmAccessPei.inf | 7 +- > > OvmfPkg/SmmAccess/SmramInternal.c | 73 +-- > > OvmfPkg/SmmAccess/SmramInternal.h | 18 +- > > UefiCpuPkg/Include/Library/SmmRelocationLib.h | 42 ++ > > .../SmmRelocationLib/AmdSmmRelocationLib.inf | 61 ++ > > .../SmmRelocationLib/AmdSmramSaveStateConfig.c | 109 ++++ > > .../SmmRelocationLib}/Ia32/Semaphore.c | 13 +- > > .../Library/SmmRelocationLib/Ia32/SmmInit.nasm | 157 +++++ > > .../SmmRelocationLib/InternalSmmRelocationLib.h | 141 +++++ > > .../SmmRelocationLib/OvmfSmmRelocationLib.inf | 61 ++ > > .../SmmRelocationLib/OvmfSmramSaveStateConfig.c | 107 ++++ > > .../Library/SmmRelocationLib/SmmRelocationLib.c | 659 > > +++++++++++++++++++++ > > .../Library/SmmRelocationLib/SmmRelocationLib.inf | 61 ++ > > .../SmmRelocationLib/SmramSaveStateConfig.c | 91 +++ > > .../SmmRelocationLib}/X64/Semaphore.c | 13 +- > > .../SmmRelocationLib}/X64/SmmInit.nasm | 93 ++- > > UefiCpuPkg/PiSmmCpuDxeSmm/CpuS3.c | 21 +- > > UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmInit.nasm | 96 --- > > UefiCpuPkg/PiSmmCpuDxeSmm/MpService.c | 6 +- > > UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c | 322 +--------- > > UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h | 98 --- > > UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf | 4 - > > UefiCpuPkg/PiSmmCpuDxeSmm/SmramSaveState.c | 69 --- > > UefiCpuPkg/UefiCpuPkg.dec | 3 + > > UefiCpuPkg/UefiCpuPkg.dsc | 3 + > > UefiPayloadPkg/UefiPayloadPkg.dsc | 2 + > > 42 files changed, 1850 insertions(+), 817 deletions(-) > > create mode 100644 OvmfPkg/PlatformPei/SmmRelocation.c > > create mode 100644 UefiCpuPkg/Include/Library/SmmRelocationLib.h > > create mode 100644 > > UefiCpuPkg/Library/SmmRelocationLib/AmdSmmRelocationLib.inf > > create mode 100644 > > UefiCpuPkg/Library/SmmRelocationLib/AmdSmramSaveStateConfig.c > > rename UefiCpuPkg/{PiSmmCpuDxeSmm => > > Library/SmmRelocationLib}/Ia32/Semaphore.c (72%) > > create mode 100644 > UefiCpuPkg/Library/SmmRelocationLib/Ia32/SmmInit.nasm > > create mode 100644 > > UefiCpuPkg/Library/SmmRelocationLib/InternalSmmRelocationLib.h > > create mode 100644 > > UefiCpuPkg/Library/SmmRelocationLib/OvmfSmmRelocationLib.inf > > create mode 100644 > > UefiCpuPkg/Library/SmmRelocationLib/OvmfSmramSaveStateConfig.c > > create mode 100644 > UefiCpuPkg/Library/SmmRelocationLib/SmmRelocationLib.c > > create mode 100644 > > UefiCpuPkg/Library/SmmRelocationLib/SmmRelocationLib.inf > > create mode 100644 > > UefiCpuPkg/Library/SmmRelocationLib/SmramSaveStateConfig.c > > rename UefiCpuPkg/{PiSmmCpuDxeSmm => > > Library/SmmRelocationLib}/X64/Semaphore.c (78%) > > rename UefiCpuPkg/{PiSmmCpuDxeSmm => > > Library/SmmRelocationLib}/X64/SmmInit.nasm (57%) > > delete mode 100644 UefiCpuPkg/PiSmmCpuDxeSmm/Ia32/SmmInit.nasm > > > > -- > > 2.16.2.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#117604): https://edk2.groups.io/g/devel/message/117604 Mute This Topic: https://groups.io/mt/105441987/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-