Michael: Thanks for your update. Reviewed-by: Liming Gao <[email protected]> for this patch set.
Thanks Liming > -----邮件原件----- > 发件人: Michael Kubacki <[email protected]> > 发送时间: 2022年4月13日 0:32 > 收件人: gaoliming <[email protected]>; [email protected] > 抄送: 'Abner Chang' <[email protected]>; 'Andrew Fish' > <[email protected]>; 'Anthony Perard' <[email protected]>; 'Ard > Biesheuvel' <[email protected]>; 'Benjamin You' > <[email protected]>; 'Brijesh Singh' <[email protected]>; 'Erdem > Aktas' <[email protected]>; 'Gerd Hoffmann' <[email protected]>; > 'Guo Dong' <[email protected]>; 'Hao A Wu' <[email protected]>; > 'James Bottomley' <[email protected]>; 'Jian J Wang' > <[email protected]>; 'Jiewen Yao' <[email protected]>; 'Jordan > Justen' <[email protected]>; 'Julien Grall' <[email protected]>; 'Leif > Lindholm' <[email protected]>; 'Maurice Ma' > <[email protected]>; 'Min Xu' <[email protected]>; 'Nickle Wang' > <[email protected]>; 'Peter Grehan' <[email protected]>; 'Ray Ni' > <[email protected]>; 'Rebecca Cran' <[email protected]>; 'Sami Mujawar' > <[email protected]>; 'Sean Rhodes' <[email protected]>; > 'Sebastien Boeuf' <[email protected]>; 'Tom Lendacky' > <[email protected]> > 主题: Re: 回复: [PATCH v3 0/8] Add Variable Flash Info HOB > > Hi Liming, > > To help move reviews along, I went ahead and sent a v4 patch series with > the following information: > > 1. More details about when the HOB is required. > 2. More details about when the HOB should be installed in the boot flow. > 3. A 4 byte reserved field after the "Version" field. > > The details are in MdeModulePkg/Include/Guid/VariableFlashInfo.h > > V4: https://edk2.groups.io/g/devel/message/88787 > CI PR: https://github.com/tianocore/edk2/pull/2768 > > Regards, > Michael > > On 4/11/2022 9:25 PM, gaoliming wrote: > > Michael: > > Can you give the suggestion about how to install this variable flash info > > hob when it is required? Because VariablePei is early PEIM, how to make > sure > > the variable flash info hob is installed before GetVariable is called? > > > > On VARIABLE_FLASH_INFO structure definition, the first field is UINT32, > > other fields are all UINT64. How about reserve 4 bytes after the first > > field? If so, all fields are at the nature alignment address. > > > > Thanks > > Liming > >> -----邮件原件----- > >> 发件人: [email protected] > <[email protected]> > >> 发送时间: 2022年4月12日 1:42 > >> 收件人: [email protected] > >> 抄送: Abner Chang <[email protected]>; Andrew Fish > >> <[email protected]>; Anthony Perard <[email protected]>; Ard > >> Biesheuvel <[email protected]>; Benjamin You > >> <[email protected]>; Brijesh Singh <[email protected]>; > Erdem > >> Aktas <[email protected]>; Gerd Hoffmann <[email protected]>; > >> Guo Dong <[email protected]>; Hao A Wu <[email protected]>; > James > >> Bottomley <[email protected]>; Jian J Wang <[email protected]>; > >> Jiewen Yao <[email protected]>; Jordan Justen > >> <[email protected]>; Julien Grall <[email protected]>; Leif Lindholm > >> <[email protected]>; Liming Gao <[email protected]>; > >> Maurice Ma <[email protected]>; Min Xu <[email protected]>; > >> Nickle Wang <[email protected]>; Peter Grehan > <[email protected]>; > >> Ray Ni <[email protected]>; Rebecca Cran <[email protected]>; Sami > >> Mujawar <[email protected]>; Sean Rhodes > <[email protected]>; > >> Sebastien Boeuf <[email protected]>; Tom Lendacky > >> <[email protected]> > >> 主题: [PATCH v3 0/8] Add Variable Flash Info HOB > >> > >> From: Michael Kubacki <[email protected]> > >> > >> REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3479 > >> > >> The UEFI variable drivers such as VariableRuntimeDxe, VariableSmm, > >> VariableStandaloneMm, etc. (and their dependent protocol/library > >> stack), typically acquire UEFI variable store flash information > >> with PCDs declared in MdeModulePkg. > >> > >> For example: > >> [Pcd] > >> gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase > >> > gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64 > >> gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize > >> > >> These PCDs work as-is in the StandaloneMm driver if they are not > >> dynamic such as Dynamic or DynamicEx because PCD services are not > >> readily available in the Standalone MM environment. Platforms that > >> use Standalone MM today, must define these PCDs as FixedAtBuild in > >> their platform build. However, the PCDs do allow platforms to treat > >> the PCDs as Dynamic/DynamicEx and being able to support that is > >> currently a gap for Standalone MM. > >> > >> This patch series introduces a HOB that can be produced by the > >> platform to provide the same information. The HOB list is > >> available to Standalone MM. > >> > >> The PCD declarations are left as-is in MdeModulePkg for backward > >> compatibility. This means unless a platform wants to use the HOB, > >> their code will continue to work with no change (they do not need > >> to produce the HOB). Only if the HOB is found, is its value used > >> instead of the PCDs. > >> > >> Due to the large number of consumers of this information, access > >> to the base address and size values is abstracted in a new library > >> class (as requested in the v1 series) called VariableFlashInfoLib. > >> > >> The API of VariableFlashInfoLib does not bind the underlying data > >> structure to the information returned to library users to allow > >> flexibility in the library implementation in the future. > >> > >> V3 changes: > >> 1. To better clarify usage, renamed the members > >> "NvStorageBaseAddress" and "NvStorageLength" in > >> "VARIABLE_FLASH_INFO" to "NvVariableBaseAddress" and > >> "NvVariableLength". > >> 2. Added description comments to the fields in "VARIABLE_FLASH_INFO". > >> > >> V2 changes: > >> 1. Abstracted flash info data access with VariableFlashInfoLib. > >> 2. Updated package builds in the repo that build the variable and > >> FTW drivers to include VariableFlashInfoLib. > >> 3. Removed a redundant variable assignment in VariableSmm.c. > >> 4. Updated comments in FtwMisc.c and FaultTolerantWritePei.c to > >> indicate driver assumption is UINTN (not UINT32) > >> 5. Added a version field to the VARIABLE_FLASH_INFO structure. > >> > >> Cc: Abner Chang <[email protected]> > >> Cc: Andrew Fish <[email protected]> > >> Cc: Anthony Perard <[email protected]> > >> Cc: Ard Biesheuvel <[email protected]> > >> Cc: Benjamin You <[email protected]> > >> Cc: Brijesh Singh <[email protected]> > >> Cc: Erdem Aktas <[email protected]> > >> Cc: Gerd Hoffmann <[email protected]> > >> Cc: Guo Dong <[email protected]> > >> Cc: Hao A Wu <[email protected]> > >> Cc: James Bottomley <[email protected]> > >> Cc: Jian J Wang <[email protected]> > >> Cc: Jiewen Yao <[email protected]> > >> Cc: Jordan Justen <[email protected]> > >> Cc: Julien Grall <[email protected]> > >> Cc: Leif Lindholm <[email protected]> > >> Cc: Liming Gao <[email protected]> > >> Cc: Maurice Ma <[email protected]> > >> Cc: Min Xu <[email protected]> > >> Cc: Nickle Wang <[email protected]> > >> Cc: Peter Grehan <[email protected]> > >> Cc: Ray Ni <[email protected]> > >> Cc: Rebecca Cran <[email protected]> > >> Cc: Sami Mujawar <[email protected]> > >> Cc: Sean Rhodes <[email protected]> > >> Cc: Sebastien Boeuf <[email protected]> > >> Cc: Tom Lendacky <[email protected]> > >> Signed-off-by: Michael Kubacki <[email protected]> > >> > >> Michael Kubacki (8): > >> MdeModulePkg: Add Variable Flash Info HOB > >> MdeModulePkg/VariableFlashInfoLib: Add initial library > >> MdeModulePkg/Variable: Consume Variable Flash Info > >> MdeModulePkg/FaultTolerantWrite: Consume Variable Flash Info > >> ArmVirtPkg/ArmVirt.dsc.inc: Add VariableFlashInfoLib > >> EmulatorPkg: Add VariableFlashInfoLib > >> OvmfPkg: Add VariableFlashInfoLib > >> UefiPayloadPkg: Add VariableFlashInfoLib > >> > >> > >> > MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.c > >> | 178 ++++++++++++++++++++ > >> MdeModulePkg/Universal/FaultTolerantWriteDxe/FtwMisc.c > >> | 41 +++-- > >> > MdeModulePkg/Universal/FaultTolerantWriteDxe/UpdateWorkingBlock.c > >> | 7 +- > >> > MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.c > >> | 28 +-- > >> MdeModulePkg/Universal/Variable/Pei/Variable.c > >> | 14 +- > >> MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c > >> | 16 +- > >> MdeModulePkg/Universal/Variable/RuntimeDxe/VariableNonVolatile.c > >> | 14 +- > >> MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.c > >> | 17 +- > >> ArmVirtPkg/ArmVirt.dsc.inc > >> | 1 + > >> EmulatorPkg/EmulatorPkg.dsc > >> | 1 + > >> MdeModulePkg/Include/Guid/VariableFlashInfo.h > >> | 78 +++++++++ > >> MdeModulePkg/Include/Library/VariableFlashInfoLib.h > >> | 68 ++++++++ > >> > >> > MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.i > >> nf | 48 ++++++ > >> > >> > MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.u > >> ni | 12 ++ > >> MdeModulePkg/MdeModulePkg.dec > >> | 8 + > >> MdeModulePkg/MdeModulePkg.dsc > >> | 2 + > >> MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWrite.h > >> | 7 +- > >> > MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf > >> | 10 +- > >> > >> > MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf > >> | 10 +- > >> > >> > MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteStandal > >> oneMm.inf | 10 +- > >> > MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.inf > >> | 10 +- > >> MdeModulePkg/Universal/Variable/Pei/Variable.h > >> | 2 + > >> MdeModulePkg/Universal/Variable/Pei/VariablePei.inf > >> | 5 +- > >> MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.h > >> | 7 +- > >> > MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf > >> | 5 +- > >> MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf > >> | 5 +- > >> > MdeModulePkg/Universal/Variable/RuntimeDxe/VariableStandaloneMm.inf > >> | 5 +- > >> OvmfPkg/AmdSev/AmdSevX64.dsc > >> | 1 + > >> OvmfPkg/Bhyve/BhyveX64.dsc > >> | 1 + > >> OvmfPkg/CloudHv/CloudHvX64.dsc > >> | 1 + > >> OvmfPkg/IntelTdx/IntelTdxX64.dsc > >> | 1 + > >> OvmfPkg/Microvm/MicrovmX64.dsc > >> | 1 + > >> OvmfPkg/OvmfPkgIa32.dsc > >> | 1 + > >> OvmfPkg/OvmfPkgIa32X64.dsc > >> | 1 + > >> OvmfPkg/OvmfPkgX64.dsc > >> | 1 + > >> OvmfPkg/OvmfXen.dsc > >> | 1 + > >> UefiPayloadPkg/UefiPayloadPkg.dsc > >> | 1 + > >> 37 files changed, 525 insertions(+), 94 deletions(-) > >> create mode 100644 > >> > MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.c > >> create mode 100644 MdeModulePkg/Include/Guid/VariableFlashInfo.h > >> create mode 100644 > MdeModulePkg/Include/Library/VariableFlashInfoLib.h > >> create mode 100644 > >> > MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.i > >> nf > >> create mode 100644 > >> > MdeModulePkg/Library/BaseVariableFlashInfoLib/BaseVariableFlashInfoLib.u > >> ni > >> > >> -- > >> 2.28.0.windows.1 > > > > -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#88822): https://edk2.groups.io/g/devel/message/88822 Mute This Topic: https://groups.io/mt/90431768/21656 Group Owner: [email protected] Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
