On 28 March 2018 at 21:26, Laszlo Ersek <[email protected]> wrote: > In commit 62f43f7c1947c, we set PcdVariableStoreSize to the same value as > PcdFlashNvStorageVariableSize (which in turn comes from VARS_LIVE_SIZE in > "OvmfPkg.fdf.inc"). > > This equality between both PCDs is a false requirement from > EmuVariableFvbRuntimeDxe. FVB drivers should use > PcdFlashNvStorageVariableSize for supporting non-volatile variables (even > if they happen to be kept in RAM only), along the other PcdFlashNvStorage* > PCDs. Whereas PcdVariableStoreSize is for variables that are volatile at > the gRT->SetVariable() / gRT->GetVariable() API level. > > (PlatformPei too bases the preallocation for EmuVariableFvbRuntimeDxe on > PcdFlashNvStorageFtwSpareSize.) > > Replace PcdVariableStoreSize in EmuVariableFvbRuntimeDxe with the > same-value PcdFlashNvStorageVariableSize. This means no change in > behavior, and it allows us to increase PcdVariableStoreSize in a later > patch without disturbing EmuVariableFvbRuntimeDxe (or PlatformPei). > > Cc: Anthony Perard <[email protected]> > Cc: Ard Biesheuvel <[email protected]> > Cc: Gary Ching-Pang Lin <[email protected]> > Cc: Jordan Justen <[email protected]> > Cc: Julien Grall <[email protected]> > Contributed-under: TianoCore Contribution Agreement 1.1 > Signed-off-by: Laszlo Ersek <[email protected]>
Reviewed-by: Ard Biesheuvel <[email protected]> > --- > OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf | 3 +-- > OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c | 6 +++--- > 2 files changed, 4 insertions(+), 5 deletions(-) > > diff --git a/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf > b/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf > index 9f37938408a4..2aacf06c923d 100644 > --- a/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf > +++ b/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.inf > @@ -58,12 +58,11 @@ [Protocols] > gEfiDevicePathProtocolGuid # PROTOCOL ALWAYS_PRODUCED > > [FixedPcd] > - gEfiMdeModulePkgTokenSpaceGuid.PcdVariableStoreSize > + gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize > gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingSize > gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareSize > > [Pcd] > - gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableSize > gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageVariableBase64 > gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwWorkingBase > gEfiMdeModulePkgTokenSpaceGuid.PcdFlashNvStorageFtwSpareBase > diff --git a/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c > b/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c > index 2d106bb50bed..9480d879c935 100644 > --- a/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c > +++ b/OvmfPkg/EmuVariableFvbRuntimeDxe/Fvb.c > @@ -665,7 +665,7 @@ InitializeFvAndVariableStoreHeaders ( > > // UINT32 Size; > ( > - FixedPcdGet32 (PcdVariableStoreSize) - > + FixedPcdGet32 (PcdFlashNvStorageVariableSize) - > OFFSET_OF (FVB_FV_HDR_AND_VARS_TEMPLATE, VarHdr) > ), > > @@ -733,7 +733,7 @@ FvbInitialize ( > ASSERT (FixedPcdGet32 (PcdFlashNvStorageFtwSpareSize) % > EMU_FVB_BLOCK_SIZE == 0); > if ( > - (PcdGet32 (PcdVariableStoreSize) + > + (PcdGet32 (PcdFlashNvStorageVariableSize) + > PcdGet32 (PcdFlashNvStorageFtwWorkingSize) > ) > > EMU_FVB_NUM_SPARE_BLOCKS * EMU_FVB_BLOCK_SIZE > @@ -788,7 +788,7 @@ FvbInitialize ( > // > // Initialize the Fault Tolerant Write data area > // > - SubPtr = (VOID*) ((UINT8*) Ptr + PcdGet32 (PcdVariableStoreSize)); > + SubPtr = (VOID*) ((UINT8*) Ptr + PcdGet32 (PcdFlashNvStorageVariableSize)); > PcdStatus = PcdSet32S (PcdFlashNvStorageFtwWorkingBase, > (UINT32)(UINTN) SubPtr); > ASSERT_RETURN_ERROR (PcdStatus); > -- > 2.14.1.3.gb7cf6e02401b > > _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

