Thanks for the update. It looks good to me.
Hopefully the variable modules would report errors gracefully if the variable 
HOB doesn't meet the expectation.

Thanks,
Guo

-----Original Message-----
From: Michael Kubacki <mikub...@linux.microsoft.com> 
Sent: Monday, April 11, 2022 10:48 AM
To: devel@edk2.groups.io; Dong, Guo <guo.d...@intel.com>
Cc: Wang, Jian J <jian.j.w...@intel.com>; Wu, Hao A <hao.a...@intel.com>; Gao, 
Liming <gaolim...@byosoft.com.cn>
Subject: Re: [edk2-devel] [PATCH v2 1/8] MdeModulePkg: Add Variable Flash Info 
HOB

I renamed the fields and added comments to the interface file in the v3 patch 
series.

V3: https://edk2.groups.io/g/devel/message/88709
CI PR: https://github.com/tianocore/edk2/pull/2762

That patch series includes all feedback I have received. Maintainers, please 
review that series as soon as possible.

Regards,
Michael

On 4/10/2022 7:22 PM, Guo Dong wrote:
> 
> Does the range (NvStorageBaseAddress, NvStorageLength) includes FTW spare 
> range and FTW working range?
> If not, maybe rename them as  (NvVariableBaseAddress, NvVariableLength) to 
> make it clear.
> 
> For these 3 ranges, are there any other requirements (e.g. base address must 
> be 4KB aligned, or FtwSpaceLength >= NvVariablelength)?
> If yes, had better add to this interface file to make the HOB producer easy 
> to build the HOB.
> 
> Thanks,
> Guo
> 
> -----Original Message-----
> From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Michael 
> Kubacki
> Sent: Friday, April 8, 2022 2:17 PM
> To: devel@edk2.groups.io
> Cc: Wang, Jian J <jian.j.w...@intel.com>; Wu, Hao A 
> <hao.a...@intel.com>; Gao, Liming <gaolim...@byosoft.com.cn>
> Subject: [edk2-devel] [PATCH v2 1/8] MdeModulePkg: Add Variable Flash 
> Info HOB
> 
> From: Michael Kubacki <michael.kuba...@microsoft.com>
> 
> REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3479
> 
> Adds a new GUID that is used to identify a HOB that passes variable flash 
> information to UEFI variable drivers in HOB consumption phases such as DXE, 
> Traditional MM, and Standalone MM.
> 
> This information was previously passed directly with PCDs such as 
> EfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase
> and gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize.
> 
> However, the Standalone MM variable driver instance does not have direct 
> access to the PCD database. Therefore, this HOB will first be considered as 
> the source for variable flash information and if platforms do not produce the 
> HOB, reading the information from the PCDs directly will be a backup to 
> provide backward compatibility.
> 
> Cc: Jian J Wang <jian.j.w...@intel.com>
> Cc: Hao A Wu <hao.a...@intel.com>
> Cc: Liming Gao <gaolim...@byosoft.com.cn>
> Signed-off-by: Michael Kubacki <michael.kuba...@microsoft.com>
> ---
>   MdeModulePkg/Include/Guid/VariableFlashInfo.h | 39 ++++++++++++++++++++
>   MdeModulePkg/MdeModulePkg.dec                 |  4 ++
>   2 files changed, 43 insertions(+)
> 
> diff --git a/MdeModulePkg/Include/Guid/VariableFlashInfo.h 
> b/MdeModulePkg/Include/Guid/VariableFlashInfo.h
> new file mode 100644
> index 000000000000..e526e362aab9
> --- /dev/null
> +++ b/MdeModulePkg/Include/Guid/VariableFlashInfo.h
> @@ -0,0 +1,39 @@
> +/** @file
> +  This file defines the GUID and data structure used to pass 
> +information about
> +  a variable store mapped on flash (i.e. a MMIO firmware volume) to the DXE 
> and MM environment.
> +
> +  Copyright (c) Microsoft Corporation.<BR>
> +
> +  SPDX-License-Identifier: BSD-2-Clause-Patent
> +
> +**/
> +
> +#ifndef VARIABLE_FLASH_INFO_H_
> +#define VARIABLE_FLASH_INFO_H_
> +
> +#define VARIABLE_FLASH_INFO_HOB_GUID \
> +  { 0x5d11c653, 0x8154, 0x4ac3, { 0xa8, 0xc2, 0xfb, 0xa2, 0x89, 0x20, 
> +0xfc, 0x90 }}
> +
> +#define VARIABLE_FLASH_INFO_HOB_VERSION  1
> +
> +extern EFI_GUID  gVariableFlashInfoHobGuid;
> +
> +#pragma pack (push, 1)
> +
> +///
> +/// This structure can be used to describe UEFI variable /// flash 
> +information.
> +///
> +typedef struct {
> +  UINT32                  Version;
> +  EFI_PHYSICAL_ADDRESS    NvStorageBaseAddress;
> +  UINT64                  NvStorageLength;
> +  EFI_PHYSICAL_ADDRESS    FtwSpareBaseAddress;
> +  UINT64                  FtwSpareLength;
> +  EFI_PHYSICAL_ADDRESS    FtwWorkingBaseAddress;
> +  UINT64                  FtwWorkingLength;
> +} VARIABLE_FLASH_INFO;
> +
> +#pragma pack (pop)
> +
> +#endif
> diff --git a/MdeModulePkg/MdeModulePkg.dec 
> b/MdeModulePkg/MdeModulePkg.dec index cf79292ec877..4e82f5836096 
> 100644
> --- a/MdeModulePkg/MdeModulePkg.dec
> +++ b/MdeModulePkg/MdeModulePkg.dec
> @@ -226,6 +226,10 @@ [Guids]
>     #  Include/Guid/SmmVariableCommon.h
>     gSmmVariableWriteGuid  = { 0x93ba1826, 0xdffb, 0x45dd, { 0x82, 
> 0xa7, 0xe7, 0xdc, 0xaa, 0x3b, 0xbd, 0xf3 }}
>   
> +  ## Guid of the variable flash information HOB.
> +  #  Include/Guid/VariableFlashInfo.h  gVariableFlashInfoHobGuid = { 
> + 0x5d11c653, 0x8154, 0x4ac3, { 0xa8, 0xc2, 0xfb, 0xa2, 0x89, 0x20, 
> + 0xfc, 0x90 }}
> +
>     ## Performance protocol guid that also acts as the performance HOB guid 
> and performance variable GUID
>     #  Include/Guid/Performance.h
>     gPerformanceProtocolGuid       = { 0x76B6BDFA, 0x2ACD, 0x4462, { 0x9E, 
> 0x3F, 0xCB, 0x58, 0xC9, 0x69, 0xD9, 0x37 } }
> --
> 2.28.0.windows.1
> 
> 
> 
> -=-=-=-=-=-=
> Groups.io Links: You receive all messages sent to this group.
> View/Reply Online (#88650): 
> https://edk2.groups.io/g/devel/message/88650
> Mute This Topic: https://groups.io/mt/90345653/1781375
> Group Owner: devel+ow...@edk2.groups.io
> Unsubscribe: https://edk2.groups.io/g/devel/unsub [guo.d...@intel.com] 
> -=-=-=-=-=-=
> 
> 
> 
> 
> 
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#88725): https://edk2.groups.io/g/devel/message/88725
Mute This Topic: https://groups.io/mt/90345653/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to