[edk2-devel] Use gMmst from MmServiceTableLib in MmSaveStateLib
Ni, Ray
ray.ni at intel.com
Tue Jul 11 08:10:17 UTC 2023
Abdul,
Can you please send a patch to fix MmSaveStateLib to use gMmst (instead of gSmst)?
Using gSmst forbids the lib instance be linked by standalone MM modules.
Thanks,
Ray
> -----Original Message-----
> From: Tan, Dun <dun.tan at intel.com>
> Sent: Wednesday, July 5, 2023 4:42 PM
> To: devel at edk2.groups.io; abdattar at amd.com
> Cc: Ni, Ray <ray.ni at intel.com>
> Subject: Use gMmst from MmServiceTableLib in MmSaveStateLib
>
> Hi Abdul,
>
> In the new MmSaveStateLib created in this patch set, gSmst from
> SmmServiceTableLib is used. This causes that only DXE_SMM_DRIVER type
> module can consume this lib but MM_STANDALONE type module cannot.
>
> In current edk2, there are different MmServicesTableLib and
> SmmServicesTableLib:
> StadaloneMmServicesTableLib(MmServicesTableLib|MM_STANDALONE):
> initialize gMmst in standalone SMM env.
> MmServicesTableLib(MmServicesTableLib|DXE_SMM_DRIVER):
> initialize gMmst in legacy SMM env.
> SmmServicesTableLib(SmmServicesTableLib|DXE_SMM_DRIVER): initialize gSmst
> in legacy SMM env.
>
> If MmSaveStateLib uses gMmst from MmServiceTableLib instead of gSmst, then
> MmSaveStateLib can be consumed by both DXE_SMM_DRIVER and
> MM_STANDALONE module.
> Could you pls send patch to fix this?
>
> Thanks,
> Dun
>
> -----Original Message-----
> From: devel at edk2.groups.io <devel at edk2.groups.io> On Behalf Of Abdul Lateef
> Attar via groups.io
> Sent: Sunday, July 2, 2023 12:14 PM
> To: devel at edk2.groups.io
> Cc: Abdul Lateef Attar <abdattar at amd.com>; Paul Grimes
> <paul.grimes at amd.com>; Abner Chang <abner.chang at amd.com>; Dong, Eric
> <eric.dong at intel.com>; Ni, Ray <ray.ni at intel.com>; Kumar, Rahul R
> <rahul.r.kumar at intel.com>; Gerd Hoffmann <kraxel at redhat.com>; Kinney,
> Michael D <michael.d.kinney at intel.com>; Gao, Liming
> <gaoliming at byosoft.com.cn>; Liu, Zhiguang <zhiguang.liu at intel.com>; Ard
> Biesheuvel <ardb+tianocore at kernel.org>; Yao, Jiewen <jiewen.yao at intel.com>;
> Justen, Jordan L <jordan.l.justen at intel.com>
> Subject: [edk2-devel] [PATCH v15 0/8] Adds AmdSmmCpuFeaturesLib and
> MmSaveStateLib
>
> Backward-compatibility changes:
> This patch series removes the SmmCpuFeaturesReadSaveStateRegister
> and SmmCpuFeaturesWriteSaveStateRegister interface/function.
> SmmReadSaveState() and SmmWriteSaveState() now directly invokes
> MmSaveStateLib
> routines to save/restore registers.
>
> PR: https://github.com/tianocore/edk2/pull/4597
>
> V15: Delta changes
> Rebase the branch and fix the merge conflicts.
> V14: Delta changes
> Added @note to the MmSaveStateLib.h.
> SaveState(Read/Write) of
> EFI_SMM_SAVE_STATE_REGISTER_PROCESSOR_ID/EFI_MM_SAVE_STATE_REGIS
> TER_PROCESSOR_ID
> is handled by PiSmmCpuDxeSmm driver.
> Fixed PatchCheck warnings.
> V13: Delta changes
> Address review comments from Ray Ni
> Changed the BASE _NAME of AmdSmmCpuFeaturesLib.
> Removed EFIAPI from local function.
> Removed CpuIndex parameter from MmSaveStateGetRegisterLma
> Modifed MmSaveStateGetRegisterIndex () to accept RegOffset
> as second parameter.
> Removed FILE_GUID library instance for intel implemention from
> UefiCpuPkg.dsc.
> V12:
> Addressed review comments from Michael.
> Added LibraryClasses to .inf file.
> removed duplicate MACRO definations.
> Moved related MACRO defination to respective file.
> V11: Delta changes
> Drop the OVMF implementation of MmSaveStateLib
> V10: Delta changes:
> Addressed review comments from Abner.
> V9: Delta changes:
> Addressed review comments.
> Rename to MmSaveStateLib.
> Also rename SMM_ defines to MM_.
> Implemented OVMF MmSaveStateLib.
> Removes SmmCpuFeaturesReadSaveStateRegister and
> SmmCpuFeaturesWriteSaveStateRegister
> function interface.
> V8 delta changes:
> Addressed review comments from Abner,
> Fix the whitespace error.
> Seperate the Ovmf changes to another patch
> V7 delta changes:
> Adds SmmSmramSaveStateLib for Intel processor.
> Integrate SmmSmramSaveStateLib library.
> V6 delta changes:
> Addressed review comments for Ray NI.
> removed unnecessary EFIAPI.
> V5 delta changes:
> rebase to master branch.
> updated Reviewed-by
> V4 delta changes:
> rebase to master branch.
> added reviewed-by.
> V3 delta changes:
> Addressed review comments from Abner chang.
> Re-arranged patch order.
>
> Cc: Paul Grimes <paul.grimes at amd.com>
> Cc: Abner Chang <abner.chang at amd.com>
> Cc: Eric Dong <eric.dong at intel.com>
> Cc: Ray Ni <ray.ni at intel.com>
> Cc: Rahul Kumar <rahul1.kumar at intel.com>
> Cc: Gerd Hoffmann <kraxel at redhat.com>
> Cc: Michael D Kinney <michael.d.kinney at intel.com>
> Cc: Liming Gao <gaoliming at byosoft.com.cn>
> Cc: Zhiguang Liu <zhiguang.liu at intel.com>
> Cc: Ard Biesheuvel <ardb+tianocore at kernel.org>
> Cc: Jiewen Yao <jiewen.yao at intel.com>
> Cc: Jordan Justen <jordan.l.justen at intel.com>
> Cc: Abdul Lateef Attar <abdattar at amd.com>
>
> Abdul Lateef Attar (8):
> MdePkg: Adds AMD SMRAM save state map
> UefiCpuPkg: Adds MmSaveStateLib library class
> UefiCpuPkg: Implements MmSaveStateLib library instance
> UefiCpuPkg/SmmCpuFeaturesLib: Restructure arch-dependent code
> UefiCpuPkg: Implements SmmCpuFeaturesLib for AMD Family
> UefiCpuPkg: Implements MmSaveStateLib for Intel
> UefiCpuPkg: Removes SmmCpuFeaturesReadSaveStateRegister
> OvmfPkg: Uses MmSaveStateLib library
>
> UefiCpuPkg/UefiCpuPkg.dec | 4 +
> OvmfPkg/OvmfPkgIa32.dsc | 1 +
> OvmfPkg/OvmfPkgIa32X64.dsc | 3 +
> OvmfPkg/OvmfPkgX64.dsc | 1 +
> UefiCpuPkg/UefiCpuPkg.dsc | 12 +
> .../MmSaveStateLib/AmdMmSaveStateLib.inf | 34 +
> .../MmSaveStateLib/IntelMmSaveStateLib.inf | 34 +
> .../AmdSmmCpuFeaturesLib.inf | 38 +
> UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.inf | 2 +
> .../Include/Register/Amd/SmramSaveStateMap.h | 194 +++++
> UefiCpuPkg/Include/Library/MmSaveStateLib.h | 74 ++
> .../Include/Library/SmmCpuFeaturesLib.h | 52 --
> .../Library/MmSaveStateLib/MmSaveState.h | 94 +++
> UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.h | 56 +-
> .../SmmCpuFeaturesLib/SmmCpuFeaturesLib.c | 767 ------------------
> .../Library/MmSaveStateLib/AmdMmSaveState.c | 309 +++++++
> .../Library/MmSaveStateLib/IntelMmSaveState.c | 410 ++++++++++
> .../MmSaveStateLib/MmSaveStateCommon.c | 132 +++
> .../SmmCpuFeaturesLib/AmdSmmCpuFeaturesLib.c | 387 +++++++++
> .../IntelSmmCpuFeaturesLib.c | 70 ++
> .../SmmCpuFeaturesLibCommon.c | 128 ---
> UefiCpuPkg/PiSmmCpuDxeSmm/PiSmmCpuDxeSmm.c | 11 +-
> UefiCpuPkg/PiSmmCpuDxeSmm/SmramSaveState.c | 500 +-----------
> MdePkg/MdePkg.ci.yaml | 4 +-
> 24 files changed, 1809 insertions(+), 1508 deletions(-) create mode 100644
> UefiCpuPkg/Library/MmSaveStateLib/AmdMmSaveStateLib.inf
> create mode 100644
> UefiCpuPkg/Library/MmSaveStateLib/IntelMmSaveStateLib.inf
> create mode 100644
> UefiCpuPkg/Library/SmmCpuFeaturesLib/AmdSmmCpuFeaturesLib.inf
> create mode 100644 MdePkg/Include/Register/Amd/SmramSaveStateMap.h
> create mode 100644 UefiCpuPkg/Include/Library/MmSaveStateLib.h
> create mode 100644 UefiCpuPkg/Library/MmSaveStateLib/MmSaveState.h
> create mode 100644 UefiCpuPkg/Library/MmSaveStateLib/AmdMmSaveState.c
> create mode 100644 UefiCpuPkg/Library/MmSaveStateLib/IntelMmSaveState.c
> create mode 100644
> UefiCpuPkg/Library/MmSaveStateLib/MmSaveStateCommon.c
> create mode 100644
> UefiCpuPkg/Library/SmmCpuFeaturesLib/AmdSmmCpuFeaturesLib.c
>
> --
> 2.25.1
>
>
>
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#106789): https://edk2.groups.io/g/devel/message/106789
Mute This Topic: https://groups.io/mt/99961277/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/3943202/1813853/130120423/xyzzy [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-
More information about the edk2-devel-archive
mailing list