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.
Thanks,
Star
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
code.
Cc: Laszlo Ersek <[email protected]>
Cc: Leif Lindholm <[email protected]>
Cc: Michael D Kinney <[email protected]>
Cc: Liming Gao <[email protected]>
Cc: Jian J Wang <[email protected]>
Cc: Hao Wu <[email protected]>
Cc: Jagadeesh Ujja <[email protected]>
Cc: Achin Gupta <[email protected]>
Cc: Thomas Panakamattam Abraham <[email protected]>
Cc: Sami Mujawar <[email protected]>
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
MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteStandaloneMm.c
create mode 100644
MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteStandaloneMm.inf
create mode 100644
MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteTraditionalMm.c
create mode 100644
MdeModulePkg/Universal/Variable/RuntimeDxe/VariableStandaloneMm.c
create mode 100644
MdeModulePkg/Universal/Variable/RuntimeDxe/VariableStandaloneMm.inf
create mode 100644
MdeModulePkg/Universal/Variable/RuntimeDxe/VariableTraditionalMm.c
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
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel