From: "Zeng, Star" <star.zeng@intel.com>
To: edk2-devel@lists.01.org
Cc: "Wu, Hao A" <hao.a.wu@intel.com>,
"Gao, Liming" <liming.gao@intel.com>,
"Kinney, Michael D" <michael.d.kinney@intel.com>,
Laszlo Ersek <lersek@redhat.com>
Subject: Re: [PATCH 4/6] MdeModulePkg/FaultTolerantWriteDxe: implement standalone MM version
Date: Thu, 10 Jan 2019 14:31:01 +0800 [thread overview]
Message-ID: <01255ca1-25c6-e2d5-53de-12add5753b8e@intel.com> (raw)
In-Reply-To: <D827630B58408649ACB04F44C5100036258930FF@SHSMSX107.ccr.corp.intel.com>
On 2019/1/10 9:41, Wang, Jian J wrote:
> Ard,
>
>
> Regards,
> Jian
>
>
>> -----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 <ard.biesheuvel@linaro.org>; Laszlo Ersek
>> <lersek@redhat.com>; Leif Lindholm <leif.lindholm@linaro.org>; Kinney,
>> Michael D <michael.d.kinney@intel.com>; Gao, Liming <liming.gao@intel.com>;
>> Wang, Jian J <jian.j.wang@intel.com>; Wu, Hao A <hao.a.wu@intel.com>;
>> Jagadeesh Ujja <jagadeesh.ujja@arm.com>; Achin Gupta
>> <Achin.Gupta@arm.com>; Thomas Panakamattam Abraham
>> <thomas.abraham@arm.com>; Sami Mujawar <Sami.Mujawar@arm.com>
>> 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 <ard.biesheuvel@linaro.org>
>> ---
>>
>> 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 MM
>> +
>> +Copyright (c) 2010 - 2018, Intel Corporation. All rights reserved.<BR>
>> +Copyright (c) 2018, Linaro, Ltd. All rights reserved.<BR>
>> +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/SmmMemLib.h>
>> +#include <Library/UefiBootServicesTableLib.h>
>> +#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 implemented
>> + 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 buffer.
>> +
>> +**/
>> +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, 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.<BR>
>> +#
>> +# 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 = FaultTolerantWriteStandaloneMm
>> + FILE_GUID = 3aade4ec-63cc-4a48-a928-5a374dd463eb
>> + MODULE_TYPE = MM_STANDALONE
>> + VERSION_STRING = 1.0
>> + PI_SPECIFICATION_VERSION = 0x00010032
>> + ENTRY_POINT = StandaloneMmFaultTolerantWriteInitialize
>> +
>> +#
>> +# The following information is for reference only and not required by the build
>> tools.
>> +#
>> +# VALID_ARCHITECTURES = 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
>
> CONSUMES/PRODUCES is normally put in trailing comment.
Jian,
If there is only one line usage comment for the GUID, it is normally put
in trailing comment.
But there are two lines usage comments for this GUID, the style is correct.
Thanks,
Star
>
>
>> + 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
next prev parent reply other threads:[~2019-01-10 6:31 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-03 18:28 [PATCH 0/6] implement standalone MM versions of the variable runtime drivers Ard Biesheuvel
2019-01-03 18:28 ` [PATCH] BaseTools/GenFds: permit stripped MM_CORE_STANDALONE binaries Ard Biesheuvel
2019-01-04 5:51 ` Feng, Bob C
2019-01-03 18:28 ` [PATCH 1/6] MdePkg/Include: add MmServicesTableLib header file Ard Biesheuvel
2019-01-10 6:06 ` Zeng, Star
2019-01-03 18:28 ` [PATCH 2/6] MdePkg: implement MmServicesTableLib based on traditional SMM Ard Biesheuvel
2019-01-10 1:35 ` Wang, Jian J
[not found] ` <9bfb4d7c-3d4e-c05c-49a1-1959ddc902e3@intel.com>
2019-01-10 6:54 ` Zeng, Star
2019-01-03 18:28 ` [PATCH 3/6] MdeModulePkg/FaultTolerantWriteDxe: factor out boot service accesses Ard Biesheuvel
2019-01-10 1:36 ` Wang, Jian J
2019-01-10 6:45 ` Zeng, Star
2019-01-03 18:28 ` [PATCH 4/6] MdeModulePkg/FaultTolerantWriteDxe: implement standalone MM version Ard Biesheuvel
2019-01-10 1:41 ` Wang, Jian J
2019-01-10 1:48 ` Wang, Jian J
2019-01-10 6:31 ` Zeng, Star [this message]
2019-01-10 6:47 ` Zeng, Star
2019-01-10 7:29 ` Zeng, Star
2019-01-10 7:33 ` Ard Biesheuvel
2019-01-10 7:59 ` Zeng, Star
2019-01-10 12:28 ` Wang, Jian J
2019-01-10 13:03 ` Laszlo Ersek
2019-01-10 16:23 ` Ard Biesheuvel
2019-01-11 2:18 ` Zeng, Star
2019-01-03 18:28 ` [PATCH 5/6] MdeModulePkg/VariableRuntimeDxe: factor out boot service accesses Ard Biesheuvel
2019-01-08 15:38 ` Laszlo Ersek
2019-01-10 2:33 ` Wang, Jian J
2019-01-10 7:17 ` Zeng, Star
2019-01-10 7:19 ` Zeng, Star
2019-01-03 18:28 ` [PATCH 6/6] MdeModulePkg/VariableRuntimeDxe: implement standalone MM version Ard Biesheuvel
2019-01-10 1:49 ` Wang, Jian J
2019-01-10 1:50 ` Wang, Jian J
2019-01-10 7:28 ` Zeng, Star
2019-01-03 19:13 ` [PATCH 0/6] implement standalone MM versions of the variable runtime drivers Ard Biesheuvel
2019-01-07 12:44 ` Gao, Liming
2019-01-07 13:05 ` Ard Biesheuvel
2019-01-07 19:08 ` Laszlo Ersek
2019-01-09 13:56 ` Gao, Liming
2019-01-09 15:29 ` Ard Biesheuvel
2019-01-14 2:55 ` Gao, Liming
2019-01-14 8:26 ` Ard Biesheuvel
2019-01-14 15:33 ` Gao, Liming
2019-01-09 9:44 ` Laszlo Ersek
2019-01-09 10:28 ` Ard Biesheuvel
2019-01-09 15:04 ` Laszlo Ersek
2019-01-09 21:46 ` Laszlo Ersek
2019-01-09 21:56 ` Ard Biesheuvel
2019-01-10 8:24 ` Zeng, Star
2019-01-13 15:42 ` Zeng, Star
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=01255ca1-25c6-e2d5-53de-12add5753b8e@intel.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox