From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=192.55.52.93; helo=mga11.intel.com; envelope-from=jian.j.wang@intel.com; receiver=edk2-devel@lists.01.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) (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 3C07B211B63F1 for ; Thu, 10 Jan 2019 04:28:54 -0800 (PST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 10 Jan 2019 04:28:53 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,461,1539673200"; d="scan'208";a="290481152" Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204]) by orsmga005.jf.intel.com with ESMTP; 10 Jan 2019 04:28:53 -0800 Received: from fmsmsx123.amr.corp.intel.com (10.18.125.38) by FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 10 Jan 2019 04:28:53 -0800 Received: from shsmsx152.ccr.corp.intel.com (10.239.6.52) by fmsmsx123.amr.corp.intel.com (10.18.125.38) with Microsoft SMTP Server (TLS) id 14.3.408.0; Thu, 10 Jan 2019 04:28:53 -0800 Received: from shsmsx107.ccr.corp.intel.com ([169.254.9.239]) by SHSMSX152.ccr.corp.intel.com ([169.254.6.44]) with mapi id 14.03.0415.000; Thu, 10 Jan 2019 20:28:51 +0800 From: "Wang, Jian J" To: "Zeng, Star" , Ard Biesheuvel CC: "Wu, Hao A" , "edk2-devel@lists.01.org" , "Gao, Liming" , "Kinney, Michael D" , Laszlo Ersek , "Zeng, Star" Thread-Topic: [edk2] [PATCH 4/6] MdeModulePkg/FaultTolerantWriteDxe: implement standalone MM version Thread-Index: AQHUo5Iyqf+MLRKpS0G1JhlngvAlvKWnk5IAgAALvACAAADygIAAB2WAgADPJYA= Date: Thu, 10 Jan 2019 12:28:50 +0000 Message-ID: References: <20190103182825.32231-1-ard.biesheuvel@linaro.org> <20190103182825.32231-6-ard.biesheuvel@linaro.org> <4a353237-1191-a831-1b6e-e981b7c59a7d@intel.com> <539a4ec0-eb09-588b-2a24-4b1f450f587b@intel.com> In-Reply-To: Accept-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiOTFmNDBlMjQtNDk4OS00MWQwLTg2YWYtNmU3Mjg1NDcxY2UxIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiMk14WmpyOTh3VHZSRmFXUUlDNW5NcXphUTU4UmcrZWZob1hUcm9USFFob3ZQa0tTa2U3VndJYjc5dFZmWnJLNyJ9 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 12:28:55 -0000 Content-Language: en-US Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Star, I think moving it to MdePkg would be better, just like UefiDriverEntryPoint= . A dummy one may be not necessary. Regards, Jian > -----Original Message----- > From: edk2-devel [mailto:edk2-devel-bounces@lists.01.org] On Behalf Of Ze= ng, > Star > Sent: Thursday, January 10, 2019 4:00 PM > To: Ard Biesheuvel > Cc: Wu, Hao A ; edk2-devel@lists.01.org; Gao, Liming > ; Kinney, Michael D ; > Laszlo Ersek ; Zeng, Star > Subject: Re: [edk2] [PATCH 4/6] MdeModulePkg/FaultTolerantWriteDxe: > implement standalone MM version >=20 > On 2019/1/10 15:33, Ard Biesheuvel wrote: > > On Thu, 10 Jan 2019 at 08:30, Zeng, Star wrote: > >> > >> Hi Ard, > >> > >> Another minor feedback. > >> > >> On 2019/1/10 14:47, Zeng, Star wrote: > >>> Hi Ard, > >>> > >>> Some minor feedback added inline. > >>> > >>> On 2019/1/4 2:28, Ard Biesheuvel wrote: > >>>> 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(+) > >> > >> Please add it into MdeModulePkg.dsc for package build verification. > >> > > > > Hello Star, > > > > Thanks for all the feedback. I will respond in more detail later. > > > > However, to the point raised here: it is not possible to add these > > drivers to MdeModulePkg.dsc unless we add a dummy implementation of > > StandaloneMmDriverEntryPoint to MdeModulePkg. Do you think we should > > do that? >=20 > Oh, good information. > To have full code building coverage for the package, personally I think > we can move StandaloneMmDriverEntryPoint library class and instance into > MdePkg, and even the MmServicesTableLib for MM_STANDALONE, they should > be generic enough. >=20 > I do not want to block this patch set because of this. So let's discuss > this in parallel as separated topic. >=20 > Mike, Liming, Laszlo, Jian and Hao,\ > What's your opinion? >=20 >=20 > Thanks, > Star >=20 > > > > > >>>> > >>>> 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 standalon= e > MM > >>>> + > >>>> +Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<= BR> > >>>> +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 t= he > >>>> 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; > >>>> +} > >>> > >>> Please add function comment header for it, otherwise some coding styl= e > >>> tool may report error. > >>> > >>>> + > >>>> +/** > >>>> + Internal implementation of CRC32. Depending on the execution cont= ext > >>>> + (standalone SMM or DXE vs standalone MM), this function is > implemented > >>>> + via a call to the CalculateCrc32 () boot service, or via a librar= y > >>>> + 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 > >>>> buffer. > >>>> + > >>>> +**/ > >>>> +UINT32 > >>>> +FtwCalculateCrc32 ( > >>>> + IN VOID *Buffer, > >>>> + IN UINTN Length > >>>> + ) > >>>> +{ > >>>> + return CalculateCrc32 (Buffer, Length); > >>>> +} > >>> > >>> Please add function comment header for it, otherwise some coding styl= e > >>> tool may report error. > >>> > >>>> + > >>>> +VOID > >>>> +FtwNotifySmmReady ( > >>>> + VOID > >>>> + ) > >>>> +{ > >>>> +} > >>> > >>> Please add function comment header for it, otherwise some coding styl= e > >>> tool may report error. > >>> > >>> Thanks, > >>> Star > >>> > >>>> + > >>>> +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, > >>>> which provides fault > >>>> +# tolerant write capability in SMM environment for block devices. > >>>> Its implementation > >>>> +# depends on the full functionality SMM FVB protocol that support > >>>> read, 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 o= f > >>>> the BSD License > >>>> +# which accompanies this distribution. The full text of the licens= e > >>>> 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 =3D 0x0001001A > >>>> + BASE_NAME =3D FaultTolerantWriteStandaloneMm > >>>> + FILE_GUID =3D 3aade4ec-63cc-4a48-a928-5a374d= d463eb > >>>> + MODULE_TYPE =3D MM_STANDALONE > >>>> + VERSION_STRING =3D 1.0 > >>>> + PI_SPECIFICATION_VERSION =3D 0x00010032 > >>>> + ENTRY_POINT =3D > >>>> StandaloneMmFaultTolerantWriteInitialize > >>>> + > >>>> +# > >>>> +# 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 > >>>> + 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 > >>>> + > >>>> > >> >=20 > _______________________________________________ > edk2-devel mailing list > edk2-devel@lists.01.org > https://lists.01.org/mailman/listinfo/edk2-devel