I spent some time to verify if the IntelMmSaveStateLib behaves the same as the 
default implementation in CpuSmm driver.
The result looks good with following embedded test code in BSPHandler():

    for (Cpu = 0; Cpu < mMaxNumberOfCpus; Cpu++) {
      DEBUG ((DEBUG_INFO, "Testing SMRAM Read CPU[%d]...", Cpu));
      for (Register = EFI_MM_SAVE_STATE_REGISTER_GDTBASE; Register <= 
EFI_MM_SAVE_STATE_REGISTER_PROCESSOR_ID; Register++) {
        DEBUG ((DEBUG_INFO, " Register(%d)...\n", Register));
        switch (Register) {
          case EFI_MM_SAVE_STATE_REGISTER_IO:
            Width = sizeof (IoInfo);
            break;
          case EFI_MM_SAVE_STATE_REGISTER_LMA:
            Width = 1;
            break;
          default:
            Width = 8;
            break;
        }

        Status  = MmSaveStateReadRegister (Cpu, Register, Width, &IoInfo);
        Status2 = ReadSaveStateRegister (Cpu, Register, Width, &IoInfo2);
        ASSERT (Status == Status2);
        if (!EFI_ERROR (Status)) {
          ASSERT (CompareMem (&IoInfo, &IoInfo2, Width) == 0);
        } else {
          if (Status == EFI_INVALID_PARAMETER) {
            Status  = MmSaveStateReadRegister (Cpu, Register, sizeof (UINT32), 
&IoInfo);
            Status2 = ReadSaveStateRegister (Cpu, Register, sizeof (UINT32), 
&IoInfo2);
            ASSERT (Status == Status2);
            ASSERT (Status == EFI_SUCCESS);
            ASSERT (CompareMem (&IoInfo, &IoInfo2, sizeof (UINT32)) == 0);
          }
        }
      }
    }

But, one comment: EFI_SMM_SAVE_STATE_REGISTER_PROCESSOR_ID is not handled by 
MmSaveStateLib. It's handled by
CpuSmm driver.
I am ok with that. Can you please update the MmSaveStateLib header file to 
explicitly mention that? I am afraid I may forget
this without clear function header comments.

Others look good to me.

Thanks,
Ray

> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Chang, Abner
> via groups.io
> Sent: Tuesday, May 23, 2023 2:36 PM
> To: Ni, Ray <ray...@intel.com>; Attar, AbdulLateef (Abdul Lateef)
> <abdullateef.at...@amd.com>; devel@edk2.groups.io
> Cc: Attar, AbdulLateef (Abdul Lateef) <abdullateef.at...@amd.com>; Grimes,
> Paul <paul.gri...@amd.com>; Dong, Eric <eric.d...@intel.com>; Kumar, Rahul
> R <rahul.r.ku...@intel.com>; Gerd Hoffmann <kra...@redhat.com>; Kinney,
> Michael D <michael.d.kin...@intel.com>; Gao, Liming
> <gaolim...@byosoft.com.cn>; Liu, Zhiguang <zhiguang....@intel.com>; Ard
> Biesheuvel <ardb+tianoc...@kernel.org>; Yao, Jiewen <jiewen....@intel.com>;
> Justen, Jordan L <jordan.l.jus...@intel.com>
> Subject: Re: [edk2-devel] [PATCH v13 0/8] Adds AmdSmmCpuFeaturesLib and
> MmSaveStateLib
> 
> [AMD Official Use Only - General]
> 
> Let's talk to Liming to see if we have chance to make this included in 202305 
> as
> the review process of this patch set looks to me close to finish.
> 
> Thanks
> Abner
> 
> > -----Original Message-----
> > From: Ni, Ray <ray...@intel.com>
> > Sent: Tuesday, May 23, 2023 2:30 PM
> > To: Chang, Abner <abner.ch...@amd.com>; Attar, AbdulLateef (Abdul
> > Lateef) <abdullateef.at...@amd.com>; devel@edk2.groups.io
> > Cc: Attar, AbdulLateef (Abdul Lateef) <abdullateef.at...@amd.com>; Grimes,
> > Paul <paul.gri...@amd.com>; Dong, Eric <eric.d...@intel.com>; Kumar,
> > Rahul R <rahul.r.ku...@intel.com>; Gerd Hoffmann <kra...@redhat.com>;
> > Kinney, Michael D <michael.d.kin...@intel.com>; Gao, Liming
> > <gaolim...@byosoft.com.cn>; Liu, Zhiguang <zhiguang....@intel.com>; Ard
> > Biesheuvel <ardb+tianoc...@kernel.org>; Yao, Jiewen
> > <jiewen....@intel.com>; Justen, Jordan L <jordan.l.jus...@intel.com>
> > Subject: RE: [PATCH v13 0/8] Adds AmdSmmCpuFeaturesLib and
> > MmSaveStateLib
> >
> > [AMD Official Use Only - General]
> >
> > Caution: This message originated from an External Source. Use proper caution
> > when opening attachments, clicking links, or responding.
> >
> >
> > Abner,
> > Sure. I will review the new patch set.
> >
> > But I am afraid this patch set cannot be included in 202305 stable release
> > because the edk2 repo
> > has been locked for quite a while for 202305 release and is about to 
> > unlocked.
> >
> > Thanks,
> > Ray
> >
> > > -----Original Message-----
> > > From: Chang, Abner <abner.ch...@amd.com>
> > > Sent: Tuesday, May 23, 2023 2:28 PM
> > > To: Attar, AbdulLateef (Abdul Lateef) <abdullateef.at...@amd.com>;
> > > devel@edk2.groups.io; Ni, Ray <ray...@intel.com>
> > > Cc: Attar, AbdulLateef (Abdul Lateef) <abdullateef.at...@amd.com>;
> > Grimes,
> > > Paul <paul.gri...@amd.com>; Dong, Eric <eric.d...@intel.com>; Kumar,
> > Rahul
> > > R <rahul.r.ku...@intel.com>; Gerd Hoffmann <kra...@redhat.com>;
> > Kinney,
> > > Michael D <michael.d.kin...@intel.com>; Gao, Liming
> > > <gaolim...@byosoft.com.cn>; Liu, Zhiguang <zhiguang....@intel.com>; Ard
> > > Biesheuvel <ardb+tianoc...@kernel.org>; Yao, Jiewen
> > <jiewen....@intel.com>;
> > > Justen, Jordan L <jordan.l.jus...@intel.com>
> > > Subject: RE: [PATCH v13 0/8] Adds AmdSmmCpuFeaturesLib and
> > MmSaveStateLib
> > >
> > > [AMD Official Use Only - General]
> > >
> > > Hi @Ray Ni,
> > > We are almost there... We need your help to review this patch set as we
> > need
> > > this library to be part of 202305 stable release.
> > >
> > > Thanks
> > > Abner
> > >
> > >
> > >
> > > > -----Original Message-----
> > > > From: Abdul Lateef Attar <abdat...@amd.com>
> > > > Sent: Friday, May 12, 2023 8:32 PM
> > > > To: devel@edk2.groups.io
> > > > Cc: Attar, AbdulLateef (Abdul Lateef) <abdullateef.at...@amd.com>;
> > Grimes,
> > > > Paul <paul.gri...@amd.com>; Chang, Abner <abner.ch...@amd.com>;
> > Eric
> > > > Dong <eric.d...@intel.com>; Ray Ni <ray...@intel.com>; Rahul Kumar
> > > > <rahul1.ku...@intel.com>; Gerd Hoffmann <kra...@redhat.com>;
> > Michael D
> > > > Kinney <michael.d.kin...@intel.com>; Liming Gao
> > > > <gaolim...@byosoft.com.cn>; Zhiguang Liu <zhiguang....@intel.com>; Ard
> > > > Biesheuvel <ardb+tianoc...@kernel.org>; Jiewen Yao
> > > > <jiewen....@intel.com>; Jordan Justen <jordan.l.jus...@intel.com>
> > > > Subject: [PATCH v13 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/4392
> > > >
> > > > 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.gri...@amd.com>
> > > > Cc: Abner Chang <abner.ch...@amd.com>
> > > > Cc: Eric Dong <eric.d...@intel.com>
> > > > Cc: Ray Ni <ray...@intel.com>
> > > > Cc: Rahul Kumar <rahul1.ku...@intel.com>
> > > > Cc: Gerd Hoffmann <kra...@redhat.com>
> > > > Cc: Michael D Kinney <michael.d.kin...@intel.com>
> > > > Cc: Liming Gao <gaolim...@byosoft.com.cn>
> > > > Cc: Zhiguang Liu <zhiguang....@intel.com>
> > > > Cc: Ard Biesheuvel <ardb+tianoc...@kernel.org>
> > > > Cc: Jiewen Yao <jiewen....@intel.com>
> > > > Cc: Jordan Justen <jordan.l.jus...@intel.com>
> > > > Cc: Abdul Lateef Attar <abdat...@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                     |  13 +
> > > >  .../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   |  70 ++
> > > >  .../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, 1806 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 (#105709): https://edk2.groups.io/g/devel/message/105709
Mute This Topic: https://groups.io/mt/98848071/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: 
https://edk2.groups.io/g/devel/leave/9847357/21656/1706620634/xyzzy 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to