Date
1 - 4 of 4
[PATCH v1 0/3] Add Variable Flash Info HOB
Michael Kubacki
From: Michael Kubacki <michael.kubacki@...>
REF:https://bugzilla.tianocore.org/show_bug.cgi?id=3D3479 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. Cc: Jian J Wang <jian.j.wang@...> Cc: Hao A Wu <hao.a.wu@...> Cc: Liming Gao <gaoliming@...> Signed-off-by: Michael Kubacki <michael.kubacki@... Michael Kubacki (3): MdeModulePkg: Add Variable Flash Info HOB MdeModulePkg/Variable: Consume Variable Info HOB MdeModulePkg/FaultTolerantWrite: Consume Variable Info HOB MdeModulePkg/Universal/FaultTolerantWriteDxe/FtwMisc.c = | 111 +++++++++++++++++--- MdeModulePkg/Universal/FaultTolerantWriteDxe/UpdateWorkingBlock.c = | 7 +- MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.c = | 92 ++++++++++++++-- MdeModulePkg/Universal/Variable/Pei/Variable.c = | 66 +++++++++++- MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.c = | 42 ++++++++ MdeModulePkg/Universal/Variable/RuntimeDxe/VariableDxe.c = | 25 ++++- MdeModulePkg/Universal/Variable/RuntimeDxe/VariableNonVolatile.c = | 20 +++- MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.c = | 20 +++- MdeModulePkg/Include/Guid/VariableFlashInfo.h = | 36 +++++++ MdeModulePkg/MdeModulePkg.dec = | 4 + MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWrite.h = | 9 +- MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteDxe.inf = | 11 +- MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteSmm.inf = | 11 +- MdeModulePkg/Universal/FaultTolerantWriteDxe/FaultTolerantWriteStandalon= eMm.inf | 11 +- MdeModulePkg/Universal/FaultTolerantWritePei/FaultTolerantWritePei.inf = | 10 +- MdeModulePkg/Universal/Variable/Pei/Variable.h = | 2 + MdeModulePkg/Universal/Variable/Pei/VariablePei.inf = | 6 +- MdeModulePkg/Universal/Variable/RuntimeDxe/Variable.h = | 17 +++ MdeModulePkg/Universal/Variable/RuntimeDxe/VariableRuntimeDxe.inf = | 6 +- MdeModulePkg/Universal/Variable/RuntimeDxe/VariableSmm.inf = | 6 +- MdeModulePkg/Universal/Variable/RuntimeDxe/VariableStandaloneMm.inf = | 6 +- 21 files changed, 455 insertions(+), 63 deletions(-) create mode 100644 MdeModulePkg/Include/Guid/VariableFlashInfo.h --=20 2.28.0.windows.1 |
|
Wu, Hao A
Sorry for a question:
toggle quoted message
Show quoted text
GetVariableFlashInfo() seems being defined multiple times across modules, do you see value in abstracting it as a library API? Best Regards, Hao Wu -----Original Message----- |
|
Michael Kubacki
Yes, I considered that as well but I was not sure if it was worth adding a new library just for that. I agree though that the code should not be duplicated. I will look into it and include your other suggestions in a v2 series.
toggle quoted message
Show quoted text
Thanks, Michael On 4/6/2022 11:31 PM, Wu, Hao A wrote:
Sorry for a question: |
|
Michael Kubacki
Hi Hao,
toggle quoted message
Show quoted text
I addressed all of your feedback including abstraction of the information with a library API in v2. It did help clean up the consumption code quite a bit. https://edk2.groups.io/g/devel/message/88649 Thanks, Michael On 4/7/2022 7:56 PM, Michael Kubacki wrote:
Yes, I considered that as well but I was not sure if it was worth adding a new library just for that. I agree though that the code should not be duplicated. I will look into it and include your other suggestions in a v2 series. |
|