I look at the patch. I don’t have concern. Please go ahead.
Thank you Yao Jiewen > -----Original Message----- > From: Jagadeesh Ujja [mailto:jagadeesh.u...@arm.com] > Sent: Tuesday, March 5, 2019 6:09 AM > To: Ard Biesheuvel <ard.biesheu...@linaro.org> > Cc: Achin Gupta <achin.gu...@arm.com>; Yao, Jiewen > <jiewen....@intel.com>; Gao, Liming <liming....@intel.com>; > edk2-devel@lists.01.org; Zhang, Chao B <chao.b.zh...@intel.com>; Kinney, > Michael D <michael.d.kin...@intel.com>; Zeng, Star <star.z...@intel.com> > Subject: Re: [edk2] [PATCH v3] StandaloneMmPkg/Library: Install Variable > Arch Protocol > > hi Jiewen, Achin > > On Mon, Mar 4, 2019 at 4:16 PM Ard Biesheuvel <ard.biesheu...@linaro.org> > wrote: > > > > (add StandaloneMmPkg maintainers) > > > Please let me know if you have any comments on this patch > > > On Mon, 4 Mar 2019 at 09:54, Jagadeesh Ujja <jagadeesh.u...@arm.com> > wrote: > > > > > > In a system implementing the variable store in MM, there are no variable > > > arch protocol and variable write arch protocol installed into the > > > DXE_SMM protocol database. On such systems, it is not required to > > > locate these protocols by the DXE runtime variable drivers because > > > it can be assumed that these protocols are already installed in the > > > MM context. But then such an implementation will deviate from the > > > existing traditional MM based variable driver implementation. > > > > > > So in order to maintain consistency with the traditional MM variable > > > driver implementation, allow platforms to install these protocols into > > > the DXE protocol database but these protocol will not be consumed > > > by non-secure variable service runtime driver. > > > > > > The Platform which uses StandaloneMM based secure variable storage > > > have to include this library > > > > > > Example > > > In edk2-platforms/Platform/ARM/SgiPkg/SgiPlatform.dsc > > > > > > ArmPkg/Drivers/MmCommunicationDxe/MmCommunication.inf { > > > <LibraryClasses> > > > > NULL|StandaloneMmPkg/Library/VariableMmDependency/VariableMmDep > endency.inf > > > } > > > > > > Contributed-under: TianoCore Contribution Agreement 1.1 > > > Signed-off-by: Jagadeesh Ujja <jagadeesh.u...@arm.com> > > > > Reviewed-by: Ard Biesheuvel <ard.biesheu...@linaro.org> > > > > > --- > > > Changes since v2: > > > - Addressed the comments from Ard Biesheuvel and Zeng Star > > > > > > Changes since v1: > > > - This is a next version of patch > > > “MdeModulePkg/VariableSmmRuntimeDxe: Refactor locating > Variable Arch Protocol”. > > > > [https://lists.01.org/pipermail/edk2-devel/2019-February/036885.html] > > > - Addressed the comments from Ard Biesheuvel and Zeng Star > > > - Can this library be placed in MdePkg rather then the StandaloneMmPkg? > > > > > > > StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependenc > y.c | 54 ++++++++++++++++++++ > > > > StandaloneMmPkg/Library/VariableMmDependency/VariableMmDependenc > y.inf | 46 +++++++++++++++++ > > > 2 files changed, 100 insertions(+) > > > > > > diff --git > a/StandaloneMmPkg/Library/VariableMmDependency/VariableMmDepende > ncy.c > b/StandaloneMmPkg/Library/VariableMmDependency/VariableMmDepende > ncy.c > > > new file mode 100644 > > > index 0000000..7e0f31b > > > --- /dev/null > > > +++ > b/StandaloneMmPkg/Library/VariableMmDependency/VariableMmDepende > ncy.c > > > @@ -0,0 +1,54 @@ > > > +/** @file > > > + Runtime DXE part corresponding to StanaloneMM variable module. > > > + > > > +This module installs variable arch protocol and variable write arch > protocol > > > +to StandaloneMM runtime variable service. > > > + > > > +Copyright (c) 2019, ARM Ltd. All rights reserved. > > > + > > > +This program and the accompanying materials > > > +are licensed and made available under the terms and conditions of the > BSD License > > > +which accompanies this distribution. The full text of the license may > be found at > > > +http://opensource.org/licenses/bsd-license.php. > > > + > > > +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" > BASIS, > > > +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER > EXPRESS OR IMPLIED. > > > + > > > +**/ > > > + > > > +#include <Library/DebugLib.h> > > > +#include <Library/UefiBootServicesTableLib.h> > > > + > > > +/** > > > + The constructor function installs variable arch protocol and variable > > > + write arch protocol to StandaloneMM runtime variable service > > > + > > > + @param ImageHandle The firmware allocated handle for the EFI > image. > > > + @param SystemTable A pointer to the Management mode > System Table. > > > + > > > + @retval EFI_SUCCESS The constructor always returns > EFI_SUCCESS. > > > + > > > +**/ > > > +EFI_STATUS > > > +EFIAPI > > > +VariableMmDependencyLibConstructor ( > > > + IN EFI_HANDLE ImageHandle, > > > + IN EFI_SYSTEM_TABLE *SystemTable > > > + ) > > > +{ > > > + EFI_STATUS Status; > > > + EFI_HANDLE Handle; > > > + > > > + Handle = NULL; > > > + Status = gBS->InstallMultipleProtocolInterfaces ( > > > + &Handle, > > > + &gEfiSmmVariableProtocolGuid, > > > + NULL, > > > + &gSmmVariableWriteGuid, > > > + NULL, > > > + NULL > > > + ); > > > + ASSERT_EFI_ERROR (Status); > > > + return EFI_SUCCESS; > > > +} > > > + > > > diff --git > a/StandaloneMmPkg/Library/VariableMmDependency/VariableMmDepende > ncy.inf > b/StandaloneMmPkg/Library/VariableMmDependency/VariableMmDepende > ncy.inf > > > new file mode 100644 > > > index 0000000..e71c44d > > > --- /dev/null > > > +++ > b/StandaloneMmPkg/Library/VariableMmDependency/VariableMmDepende > ncy.inf > > > @@ -0,0 +1,46 @@ > > > +## @file > > > +# Runtime DXE part corresponding to StanaloneMM variable module. > > > +# > > > +# This module installs variable arch protocol and variable write arch > protocol > > > +# to StandaloneMM runtime variable service. > > > +# > > > +# Copyright (c) 2019, ARM Ltd. All rights reserved. > > > +# This program and the accompanying materials > > > +# are licensed and made available under the terms and conditions of the > BSD License > > > +# which accompanies this distribution. The full text of the license may > be found at > > > +# http://opensource.org/licenses/bsd-license.php > > > +# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS > IS" BASIS, > > > +# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER > EXPRESS OR IMPLIED. > > > +# > > > +## > > > + > > > +[Defines] > > > + INF_VERSION = 0x0001001A > > > + BASE_NAME = VariableMmDependency > > > + FILE_GUID = > 64BC4129-778E-4867-BA07-13999A4DEC3F > > > + MODULE_TYPE = DXE_DRIVER > > > + LIBRARY_CLASS = NULL > > > + CONSTRUCTOR = > VariableMmDependencyLibConstructor > > > + > > > +# > > > +# The following information is for reference only and not required by > the build tools. > > > +# > > > +# VALID_ARCHITECTURES = AARCH64 > > > +# > > > +# > > > + > > > +[Sources] > > > + VariableMmDependency.c > > > + > > > +[Packages] > > > + MdePkg/MdePkg.dec > > > + MdeModulePkg/MdeModulePkg.dec > > > + > > > +[Protocols] > > > + gEfiSmmVariableProtocolGuid ## PRODUCES > > > + > > > +[Guids] > > > + gSmmVariableWriteGuid ## PRODUCES > ## GUID # Install protocol > > > + > > > +[Depex] > > > + TRUE > > > -- > > > 2.7.4 > > > > > _______________________________________________ > > edk2-devel mailing list > > edk2-devel@lists.01.org > > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel