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] -=-=-=-=-=-=-=-=-=-=-=-