Ard,

For patch 1,5,6,7,8,12,13,14,15,16,17

Reviewed-by: Jian J Wang <[email protected]>


> -----Original Message-----
> From: Ard Biesheuvel [mailto:[email protected]]
> Sent: Monday, January 14, 2019 9:28 PM
> To: [email protected]
> Cc: Ard Biesheuvel <[email protected]>; Laszlo Ersek
> <[email protected]>; Leif Lindholm <[email protected]>; Kinney,
> Michael D <[email protected]>; Gao, Liming <[email protected]>;
> Wang, Jian J <[email protected]>; Wu, Hao A <[email protected]>;
> Jagadeesh Ujja <[email protected]>; Achin Gupta
> <[email protected]>; Thomas Panakamattam Abraham
> <[email protected]>; Sami Mujawar <[email protected]>;
> Zeng, Star <[email protected]>
> Subject: [PATCH v2 00/17] implement standalone MM versions of the variable
> runtime drivers
> 
> This v2 series is a followup to [0], and updates the SMM implementations of
> the fault tolerant write and variable runtime drivers to provide standalone
> MM versions that share as much of the existing code as possible with the
> traditional SMM implementations.
> 
> The meat is in patches #5 - #8, which were part of v1. I updated them 
> according
> to the received feedback, and added tags that were given on list.
> 
> Patches #1 - #4 add library class resolutions for MmServiceTableLib, which was
> introduced in v1 of the series, and has already been merged (at the request of
> Liming) so that downstream platforms can add the resolution as well.
> 
> The remaining patches #9 - #17 are new, and have been added so that the new
> standalone MM drivers can be added to and built from MdeModulePkg.dsc, but
> for coverage only (the resulting binaries won't actually work)
> - patches #9 and #10 add a definition and implementation of
>   StandaloneMmDriverEntryPoint, which is rather straight-forward and has no
>   dependencies on the standalone MM core, so it is reasonable to add it to
>   MdePkg directly. Note that this version contains the _gMmVersion check that
>   is missing from the one in StandaloneMmPkg
> - patch #11 adds a standalone MM implementation of MmServicesTableLib to
> MdePkg,
>   which -again- does not depend on the standalone MM core at all, so added
> here
>   for simplicity
> - patches #12 and #13 add NULL implementations of MemoryAllocationLib and
> HobLib
>   so that the FTW and variable MM_STANDALONE modules can be built without
>   depending on StandaloneMmPkg
> - patch #14 is an unrelated fix so that MdeModulePkg.dsc can be built for
>   AARCH64
> - patches #15 and #16 add MM_STANDALONE support to a couple of libraries
> that
>   the new modules depend on
> - patch #17 adds the FTW and variable standalone MM drivers to
> MdeModulePkg.dsc
> 
> NOTE: the drivers added in patches #10 and #11 supersede the ones that reside
> in
> or have been proposed for StandaloneMmPkg
> 
> Patches can be found here:
> https://github.com/ardbiesheuvel/edk2/tree/variable-ftw-standalone-mm-
> conversion
> 
> 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]>
> Cc: Star Zeng <[email protected]>
> 
> [0] https://lists.01.org/pipermail/edk2-devel/2019-January/034608.html
> 
> Ard Biesheuvel (17):
>   MdeModulePkg/MdeModulePkg.dsc: add MmServicesTableLib resolution
>   OvmfPkg: add MmServicesTableLib resolution
>   QuarkPlatformPkg: add MmServicesTableLib resolution
>   Vlv2TbltDevicePkg: add MmServicesTableLib resolution
>   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
>   MdePkg: introduce standalone MM entry point library class
>   MdePkg: introduce standalone MM entry point library implementation
>   MdePkg: add MM_STANDALONE implementation of MmServicesTableLib
>   MdeModulePkg: implement NULL instance of HobLib library class
>   MdeModulePkg: implement NULL instance of MemoryAllocationLib library
> class
>   MdeModulePkg/MdeModulePkg/dsc: move DxeDebugSupportDxe to x86 only
> section
>   MdeModulePkg/AuthVariableLibNull: add MM_STANDALONE support
>   MdeModulePkg/VarCheckLib: add MM_STANDALONE support
>   MdeModulePkg/MdeModulePkg.dsc: add MM_STANDALONE FTW and variable
> modules
> 
>  MdePkg/MdePkg.dec                                                            
>                                   |   3 +
>  MdeModulePkg/MdeModulePkg.dsc
> |  12 +-
>  MdePkg/MdePkg.dsc                                                            
>                                   |   3 +
>  OvmfPkg/OvmfPkgIa32.dsc                                                      
>                                   |   1
> +
>  OvmfPkg/OvmfPkgIa32X64.dsc                                                   
>                                   |
> 1 +
>  OvmfPkg/OvmfPkgX64.dsc                                                       
>                                   |   1
> +
>  QuarkPlatformPkg/Quark.dsc                                                   
>                                   |   1
> +
>  QuarkPlatformPkg/QuarkMin.dsc                                                
>                                   |
> 1 +
>  Vlv2TbltDevicePkg/PlatformPkgGccX64.dsc
> |   1 +
>  Vlv2TbltDevicePkg/PlatformPkgIA32.dsc
> |   1 +
>  Vlv2TbltDevicePkg/PlatformPkgX64.dsc
> |   1 +
>  MdeModulePkg/Library/AuthVariableLibNull/AuthVariableLibNull.inf
> |   2 +-
>  MdeModulePkg/Library/BaseHobLibNull/BaseHobLibNull.inf
> |  38 ++
> 
> MdeModulePkg/Library/BaseMemoryAllocationLibNull/BaseMemoryAllocationL
> ibNull.inf                               |  38 ++
>  MdeModulePkg/Library/VarCheckLib/VarCheckLib.inf
> |   2 +-
>  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf
> |   5 +-
>  MdeModulePkg/Universal/FaultTolerantWriteDxe/{FaultTolerantWriteSmm.inf
> => FaultTolerantWriteStandaloneMm.inf} |  43 +-
>  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf
> |   5 +-
>  MdeModulePkg/Universal/Variable/RuntimeDxe/{VariableSmm.inf =>
> VariableStandaloneMm.inf}                       |  43 +-
> 
> MdePkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoin
> t.inf                                   |  43 ++
> 
> MdePkg/Library/StandaloneMmServicesTableLib/StandaloneMmServicesTableLi
> b.inf                                   |  39 ++
>  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWrite.h
> |  23 +-
> 
> MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmmCom
> mon.h                                     |  34 ++
>  MdeModulePkg/Universal/Variable/RuntimeDxe/PrivilegePolymorphic.h
> |  58 ++
>  MdePkg/Include/Library/StandaloneMmDriverEntryPoint.h
> | 134 +++++
>  MdeModulePkg/Library/BaseHobLibNull/BaseHobLibNull.c
> | 542 ++++++++++++++++++
> 
> MdeModulePkg/Library/BaseMemoryAllocationLibNull/BaseMemoryAllocationL
> ibNull.c                                 | 575 ++++++++++++++++++++
>  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.c
> |  31 ++
>  MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.c
> |  53 +-
> 
> MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteStandalon
> eMm.c                                  |  88 +++
> 
> MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteTraditiona
> lMm.c                                 | 106 ++++
>  MdeModulePkg/Universal/FaultTolerantWriteDxe/UpdateWorkingBlock.c
> |  10 +-
>  MdeModulePkg/Universal/Variable/RuntimeDxe/TcgMorLockSmm.c
> |  18 +-
>  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.c
> |  59 +-
>  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableStandaloneMm.c
> |  89 +++
>  MdeModulePkg/Universal/Variable/RuntimeDxe/VariableTraditionalMm.c
> | 130 +++++
> 
> MdePkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoin
> t.c                                     |  90 +++
> 
> MdePkg/Library/StandaloneMmServicesTableLib/StandaloneMmServicesTableLi
> b.c                                     |  41 ++
>  MdeModulePkg/Library/BaseHobLibNull/BaseHobLibNull.uni
> |  20 +
> 
> MdeModulePkg/Library/BaseMemoryAllocationLibNull/BaseMemoryAllocationL
> ibNull.uni                               |  20 +
> 
> MdePkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoin
> t.uni                                   |  22 +
> 
> MdePkg/Library/StandaloneMmServicesTableLib/StandaloneMmServicesTableLi
> b.uni                                   |  20 +
>  42 files changed, 2290 insertions(+), 157 deletions(-)
>  create mode 100644
> MdeModulePkg/Library/BaseHobLibNull/BaseHobLibNull.inf
>  create mode 100644
> MdeModulePkg/Library/BaseMemoryAllocationLibNull/BaseMemoryAllocationL
> ibNull.inf
>  copy
> MdeModulePkg/Universal/FaultTolerantWriteDxe/{FaultTolerantWriteSmm.inf
> => FaultTolerantWriteStandaloneMm.inf} (68%)
>  copy MdeModulePkg/Universal/Variable/RuntimeDxe/{VariableSmm.inf =>
> VariableStandaloneMm.inf} (82%)
>  create mode 100644
> MdePkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoin
> t.inf
>  create mode 100644
> MdePkg/Library/StandaloneMmServicesTableLib/StandaloneMmServicesTableLi
> b.inf
>  create mode 100644 MdePkg/Include/Library/StandaloneMmDriverEntryPoint.h
>  create mode 100644 MdeModulePkg/Library/BaseHobLibNull/BaseHobLibNull.c
>  create mode 100644
> MdeModulePkg/Library/BaseMemoryAllocationLibNull/BaseMemoryAllocationL
> ibNull.c
>  create mode 100644
> MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteStandalon
> eMm.c
>  create mode 100644
> MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteTraditiona
> lMm.c
>  create mode 100644
> MdeModulePkg/Universal/Variable/RuntimeDxe/VariableStandaloneMm.c
>  create mode 100644
> MdeModulePkg/Universal/Variable/RuntimeDxe/VariableTraditionalMm.c
>  create mode 100644
> MdePkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoin
> t.c
>  create mode 100644
> MdePkg/Library/StandaloneMmServicesTableLib/StandaloneMmServicesTableLi
> b.c
>  create mode 100644
> MdeModulePkg/Library/BaseHobLibNull/BaseHobLibNull.uni
>  create mode 100644
> MdeModulePkg/Library/BaseMemoryAllocationLibNull/BaseMemoryAllocationL
> ibNull.uni
>  create mode 100644
> MdePkg/Library/StandaloneMmDriverEntryPoint/StandaloneMmDriverEntryPoin
> t.uni
>  create mode 100644
> MdePkg/Library/StandaloneMmServicesTableLib/StandaloneMmServicesTableLi
> b.uni
> 
> --
> 2.20.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to