From: "duntan" <dun.tan@intel.com>
To: "devel@edk2.groups.io" <devel@edk2.groups.io>,
"abdattar@amd.com" <abdattar@amd.com>
Cc: "Ni, Ray" <ray.ni@intel.com>
Subject: Use gMmst from MmServiceTableLib in MmSaveStateLib
Date: Wed, 5 Jul 2023 08:42:14 +0000 [thread overview]
Message-ID: <BN9PR11MB548343AC5BA11D0053F405BDE52FA@BN9PR11MB5483.namprd11.prod.outlook.com> (raw)
In-Reply-To: <cover.1688270884.git.abdattar@amd.com>
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@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Abdul Lateef Attar via groups.io
Sent: Sunday, July 2, 2023 12:14 PM
To: devel@edk2.groups.io
Cc: Abdul Lateef Attar <abdattar@amd.com>; Paul Grimes <paul.grimes@amd.com>; Abner Chang <abner.chang@amd.com>; Dong, Eric <eric.dong@intel.com>; Ni, Ray <ray.ni@intel.com>; Kumar, Rahul R <rahul.r.kumar@intel.com>; Gerd Hoffmann <kraxel@redhat.com>; Kinney, Michael D <michael.d.kinney@intel.com>; Gao, Liming <gaoliming@byosoft.com.cn>; Liu, Zhiguang <zhiguang.liu@intel.com>; Ard Biesheuvel <ardb+tianocore@kernel.org>; Yao, Jiewen <jiewen.yao@intel.com>; Justen, Jordan L <jordan.l.justen@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_REGISTER_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@amd.com>
Cc: Abner Chang <abner.chang@amd.com>
Cc: Eric Dong <eric.dong@intel.com>
Cc: Ray Ni <ray.ni@intel.com>
Cc: Rahul Kumar <rahul1.kumar@intel.com>
Cc: Gerd Hoffmann <kraxel@redhat.com>
Cc: Michael D Kinney <michael.d.kinney@intel.com>
Cc: Liming Gao <gaoliming@byosoft.com.cn>
Cc: Zhiguang Liu <zhiguang.liu@intel.com>
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
Cc: Jiewen Yao <jiewen.yao@intel.com>
Cc: Jordan Justen <jordan.l.justen@intel.com>
Cc: Abdul Lateef Attar <abdattar@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
next prev parent reply other threads:[~2023-07-05 8:42 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-02 4:14 [PATCH v15 0/8] Adds AmdSmmCpuFeaturesLib and MmSaveStateLib Abdul Lateef Attar
2023-07-03 2:00 ` Ni, Ray
2023-07-03 3:17 ` Chang, Abner
2023-07-05 8:42 ` duntan [this message]
2023-07-11 8:10 ` Use gMmst from MmServiceTableLib in MmSaveStateLib Ni, Ray
2023-07-11 9:05 ` Attar, AbdulLateef (Abdul Lateef)
2023-07-11 9:51 ` duntan
2023-07-11 16:03 ` [edk2-devel] " Attar, AbdulLateef (Abdul Lateef)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=BN9PR11MB548343AC5BA11D0053F405BDE52FA@BN9PR11MB5483.namprd11.prod.outlook.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox