From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=134.134.136.20; helo=mga02.intel.com; envelope-from=jian.j.wang@intel.com; receiver=edk2-devel@lists.01.org Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ml01.01.org (Postfix) with ESMTPS id E84C1211AEA7A for ; Wed, 9 Jan 2019 17:48:41 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Jan 2019 17:48:41 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,459,1539673200"; d="scan'208";a="115596642" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by fmsmga008.fm.intel.com with ESMTP; 09 Jan 2019 17:48:41 -0800 Received: from fmsmsx118.amr.corp.intel.com (10.18.116.18) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 9 Jan 2019 17:48:40 -0800 Received: from shsmsx108.ccr.corp.intel.com (10.239.4.97) by fmsmsx118.amr.corp.intel.com (10.18.116.18) with Microsoft SMTP Server (TLS) id 14.3.408.0; Wed, 9 Jan 2019 17:48:40 -0800 Received: from shsmsx107.ccr.corp.intel.com ([169.254.9.239]) by SHSMSX108.ccr.corp.intel.com ([169.254.8.85]) with mapi id 14.03.0415.000; Thu, 10 Jan 2019 09:48:37 +0800 From: "Wang, Jian J" To: "Wang, Jian J" , Ard Biesheuvel , "edk2-devel@lists.01.org" CC: "Wu, Hao A" , "Gao, Liming" , "Kinney, Michael D" , Laszlo Ersek Thread-Topic: [PATCH 4/6] MdeModulePkg/FaultTolerantWriteDxe: implement standalone MM version Thread-Index: AQHUo5Iyqf+MLRKpS0G1JhlngvAlvKWnwujggAAC2AA= Date: Thu, 10 Jan 2019 01:48:36 +0000 Message-ID: References: <20190103182825.32231-1-ard.biesheuvel@linaro.org> <20190103182825.32231-6-ard.biesheuvel@linaro.org> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNTUyZTA1NDMtYjgyZC00MDIxLWExMDUtNTBhYTc0MjdlNTc5IiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiZExvQnZ2emp5WUx5WG5LU09OK1FSbno1T0pxUHVQNVdqSHZQXC9zMXJhQ2w2RlMydDJKNlBZZG9uSkpUck15cHYifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [10.239.127.40] MIME-Version: 1.0 Subject: Re: [PATCH 4/6] MdeModulePkg/FaultTolerantWriteDxe: implement standalone MM version X-BeenThere: edk2-devel@lists.01.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: EDK II Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 10 Jan 2019 01:48:42 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Forget the previous comment, multiple comments for usage are allowed in INF= . Reviewed-by: Jian J Wang > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Wa= ng, > Jian J > Sent: Thursday, January 10, 2019 9:42 AM > To: Ard Biesheuvel ; edk2-devel@lists.01.org > Cc: Wu, Hao A ; Gao, Liming ; > Kinney, Michael D ; Laszlo Ersek > > Subject: Re: [edk2] [PATCH 4/6] MdeModulePkg/FaultTolerantWriteDxe: > implement standalone MM version >=20 > Ard, >=20 >=20 > Regards, > Jian >=20 >=20 > > -----Original Message----- > > From: Ard Biesheuvel [mailto:ard.biesheuvel@linaro.org] > > Sent: Friday, January 04, 2019 2:28 AM > > To: edk2-devel@lists.01.org > > Cc: Ard Biesheuvel ; Laszlo Ersek > > ; Leif Lindholm ; Kinney, > > Michael D ; Gao, Liming > ; > > Wang, Jian J ; Wu, Hao A ; > > Jagadeesh Ujja ; Achin Gupta > > ; Thomas Panakamattam Abraham > > ; Sami Mujawar > > Subject: [PATCH 4/6] MdeModulePkg/FaultTolerantWriteDxe: implement > > standalone MM version > > > > Implement a new version of the fault tolerant write driver that can > > be used in the context of a standalone MM implementation. > > > > Contributed-under: TianoCore Contribution Agreement 1.1 > > Signed-off-by: Ard Biesheuvel > > --- > > > > > MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteStandalon > > eMm.c | 70 +++++++++++++++ > > > > > MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteStandalon > > eMm.inf | 90 ++++++++++++++++++++ > > 2 files changed, 160 insertions(+) > > > > diff --git > > > a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteStandal > > oneMm.c > > > b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteStandal > > oneMm.c > > new file mode 100644 > > index 000000000000..b6fbf6c64f8a > > --- /dev/null > > +++ > > > b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteStandal > > oneMm.c > > @@ -0,0 +1,70 @@ > > +/** @file > > + > > + Parts of the SMM/MM implementation that are specific to standalone M= M > > + > > +Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.
> > +Copyright (c) 2018, Linaro, 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 > > +#include > > +#include "FaultTolerantWrite.h" > > +#include "FaultTolerantWriteSmmCommon.h" > > + > > +BOOLEAN > > +FtwSmmIsBufferOutsideSmmValid ( > > + IN EFI_PHYSICAL_ADDRESS Buffer, > > + IN UINT64 Length > > + ) > > +{ > > + return TRUE; > > +} > > + > > +/** > > + Internal implementation of CRC32. Depending on the execution context > > + (standalone SMM or DXE vs standalone MM), this function is implement= ed > > + via a call to the CalculateCrc32 () boot service, or via a library > > + call. > > + > > + If Buffer is NULL, then ASSERT(). > > + If Length is greater than (MAX_ADDRESS - Buffer + 1), then ASSERT(). > > + > > + @param[in] Buffer A pointer to the buffer on which the 32-bit= CRC is to > be > > computed. > > + @param[in] Length The number of bytes in the buffer Data. > > + > > + @retval Crc32 The 32-bit CRC was computed for the data bu= ffer. > > + > > +**/ > > +UINT32 > > +FtwCalculateCrc32 ( > > + IN VOID *Buffer, > > + IN UINTN Length > > + ) > > +{ > > + return CalculateCrc32 (Buffer, Length); > > +} > > + > > +VOID > > +FtwNotifySmmReady ( > > + VOID > > + ) > > +{ > > +} > > + > > +EFI_STATUS > > +EFIAPI > > +StandaloneMmFaultTolerantWriteInitialize ( > > + IN EFI_HANDLE ImageHandle, > > + IN EFI_MM_SYSTEM_TABLE *MmSystemTable > > + ) > > +{ > > + return MmFaultTolerantWriteInitialize (); > > +} > > diff --git > > > a/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteStandal > > oneMm.inf > > > b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteStandal > > oneMm.inf > > new file mode 100644 > > index 000000000000..99bd62ad5ceb > > --- /dev/null > > +++ > > > b/MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteStandal > > oneMm.inf > > @@ -0,0 +1,90 @@ > > + ## @file > > +# Fault Tolerant Write Smm Driver. > > +# > > +# This driver installs SMM Fault Tolerant Write (FTW) protocol, whic= h > provides > > fault > > +# tolerant write capability in SMM environment for block devices. It= s > > implementation > > +# depends on the full functionality SMM FVB protocol that support re= ad, > > write/erase > > +# flash access. > > +# > > +# Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved. > > +# > > +# This program and the accompanying materials > > +# are licensed and made available under the terms and conditions of t= he BSD > > License > > +# which accompanies this distribution. The full text of the license m= ay 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 =3D 0x0001001A > > + BASE_NAME =3D FaultTolerantWriteStandaloneMm > > + FILE_GUID =3D 3aade4ec-63cc-4a48-a928-5a374dd46= 3eb > > + MODULE_TYPE =3D MM_STANDALONE > > + VERSION_STRING =3D 1.0 > > + PI_SPECIFICATION_VERSION =3D 0x00010032 > > + ENTRY_POINT =3D StandaloneMmFaultTolerantWriteIni= tialize > > + > > +# > > +# The following information is for reference only and not required by = the > build > > tools. > > +# > > +# VALID_ARCHITECTURES =3D AARCH64 > > +# > > + > > +[Sources] > > + FtwMisc.c > > + UpdateWorkingBlock.c > > + FaultTolerantWrite.c > > + FaultTolerantWriteStandaloneMm.c > > + FaultTolerantWriteSmm.c > > + FaultTolerantWrite.h > > + FaultTolerantWriteSmmCommon.h > > + > > +[Packages] > > + MdePkg/MdePkg.dec > > + MdeModulePkg/MdeModulePkg.dec > > + StandaloneMmPkg/StandaloneMmPkg.dec > > + > > +[LibraryClasses] > > + BaseLib > > + BaseMemoryLib > > + DebugLib > > + MemoryAllocationLib > > + MmServicesTableLib > > + PcdLib > > + ReportStatusCodeLib > > + StandaloneMmDriverEntryPoint > > + > > +[Guids] > > + # > > + # Signature in EFI_FAULT_TOLERANT_WORKING_BLOCK_HEADER > > + # > > + ## CONSUMES ## GUID > > + ## PRODUCES ## GUID > > + gEdkiiWorkingBlockSignatureGuid > > + > > +[Protocols] > > + gEfiSmmSwapAddressRangeProtocolGuid | > > gEfiMdeModulePkgTokenSpaceGuid.PcdFullFtwServiceEnable ## > > SOMETIMES_CONSUMES > > + ## NOTIFY > > + ## CONSUMES > > + gEfiSmmFirmwareVolumeBlockProtocolGuid > > + ## PRODUCES > > + ## UNDEFINED # SmiHandlerRegister > > + gEfiSmmFaultTolerantWriteProtocolGuid >=20 > CONSUMES/PRODUCES is normally put in trailing comment. >=20 >=20 > > + gEfiMmEndOfDxeProtocolGuid ## CONSUMES > > + > > +[FeaturePcd] > > + gEfiMdeModulePkgTokenSpaceGuid.PcdFullFtwServiceEnable ## > > CONSUMES > > + > > +[Pcd] > > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase > ## > > SOMETIMES_CONSUMES > > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase64 > > ## CONSUMES > > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize > ## > > CONSUMES > > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase ## > > SOMETIMES_CONSUMES > > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase64 > ## > > CONSUMES > > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize ## > > CONSUMES > > + > > +[Depex] > > + TRUE > > + > > -- > > 2.17.1 >=20 > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel