We'd better have a bugzilla to track this change.
And since it will require platform change in platform dsc to add the new library mapping, we need add notes in https://github.com/tianocore/tianocore.github.io/wiki/EDK-II-Release-Notes.


On 2019/1/4 2:28, Ard Biesheuvel wrote:
This series proposed an alternative approach to the series sent out by
Jagadeesh [0]. In particular, it gets rid of the InMm() calls and the
special PCD, as well as some other if() conditionals.

The primary difference is that this series defines and implements
MmServicesTableLib in such a way that the traditional SMM drivers
can use it as well. This is appropriate, considering that the PI
spec has rebranded traditional SMM as one implementation of the generic
MM framework.

Patch #1 is based on Jagadeesh's patch, and introduces the MmServicesTableLib
library class, but for all SMM flavours, not only for standalone MM.

Patch #2 implements MmServicesTableLib for traditional SMM implementations.

Patch #3 refactors FaultTolerantWriteDxe so that the parts of the SMM
driver that invoke boot services are separated from the core SMM pieces.

Patch #4 implements FaultTolerantWriteSmm for the standalone MM environment.

Patches #5 and #6 do the same, respectively, for the variable runtime driver.

This approach minimizes the delta, and thus the maintenance burden, between
the traditional SMM and standalone MM drivers, while not resorting to runtime
checks or other conditionals in the code to implement logic that should be
decided at build time.

Note that this series only covers part of the work contributed by Jagadeesh.
This series focuses on the MdePkg and MdeModulePkg changes that affect shared

Cc: Laszlo Ersek <ler...@redhat.com>
Cc: Leif Lindholm <leif.lindh...@linaro.org>
Cc: Michael D Kinney <michael.d.kin...@intel.com>
Cc: Liming Gao <liming....@intel.com>
Cc: Jian J Wang <jian.j.w...@intel.com>
Cc: Hao Wu <hao.a...@intel.com>
Cc: Jagadeesh Ujja <jagadeesh.u...@arm.com>
Cc: Achin Gupta <achin.gu...@arm.com>
Cc: Thomas Panakamattam Abraham <thomas.abra...@arm.com>
Cc: Sami Mujawar <sami.muja...@arm.com>

Ard Biesheuvel (5):
   MdePkg: implement MmServicesTableLib based on traditional SMM
   MdeModulePkg/FaultTolerantWriteDxe: factor out boot service accesses
   MdeModulePkg/FaultTolerantWriteDxe: implement standalone MM version
   MdeModulePkg/VariableRuntimeDxe: factor out boot service accesses
   MdeModulePkg/VariableRuntimeDxe: implement standalone MM version

Jagadeesh Ujja (1):
   MdePkg/Include: add MmServicesTableLib header file

  MdeModulePkg/MdeModulePkg.dsc                 |   1 +
  .../FaultTolerantWrite.h                      |  22 ++-
  .../FaultTolerantWriteDxe.c                   |  31 ++++
  .../FaultTolerantWriteSmm.c                   |  54 +++----
  .../FaultTolerantWriteSmm.inf                 |   5 +-
  .../FaultTolerantWriteSmmCommon.h             |  31 ++++
  .../FaultTolerantWriteSmmDxe.c                |   1 +
  .../FaultTolerantWriteStandaloneMm.c          |  70 +++++++++
  .../FaultTolerantWriteStandaloneMm.inf        |  90 ++++++++++++
  .../FaultTolerantWriteTraditionalMm.c         |  94 ++++++++++++
  .../UpdateWorkingBlock.c                      |  10 +-
  .../Variable/RuntimeDxe/TcgMorLockSmm.c       |  18 +--
  .../Universal/Variable/RuntimeDxe/Variable.h  |  50 +++++++
  .../Variable/RuntimeDxe/VariableSmm.c         |  59 +++-----
  .../Variable/RuntimeDxe/VariableSmm.inf       |   5 +-
  .../RuntimeDxe/VariableStandaloneMm.c         |  69 +++++++++
  .../RuntimeDxe/VariableStandaloneMm.inf       | 135 ++++++++++++++++++
  .../RuntimeDxe/VariableTraditionalMm.c        | 114 +++++++++++++++
  MdePkg/Include/Library/MmServicesTableLib.h   |  25 ++++
  .../MmServicesTableLib/MmServicesTableLib.c   |  63 ++++++++
  .../MmServicesTableLib/MmServicesTableLib.inf |  45 ++++++
  .../MmServicesTableLib/MmServicesTableLib.uni |  22 +++
  MdePkg/MdePkg.dec                             |   4 +
  MdePkg/MdePkg.dsc                             |   1 +
  24 files changed, 916 insertions(+), 103 deletions(-)
  create mode 100644 
  create mode 100644 
  create mode 100644 
  create mode 100644 
  create mode 100644 
  create mode 100644 
  create mode 100644 MdePkg/Include/Library/MmServicesTableLib.h
  create mode 100644 MdePkg/Library/MmServicesTableLib/MmServicesTableLib.c
  create mode 100644 MdePkg/Library/MmServicesTableLib/MmServicesTableLib.inf
  create mode 100644 MdePkg/Library/MmServicesTableLib/MmServicesTableLib.uni

edk2-devel mailing list

Reply via email to