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

Reply via email to