REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3678
To simplify the implementation the variable Name/GUID has been
changed to "FspNvsBuffer" and gFspNvsBufferVariableGuid
regardless it stores the data from FSP_NON_VOLATILE_STORAGE_HOB2
or FSP_NON_VOLATILE_STORAGE_HOB.
Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
---
Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/FspWrapper/Library/PeiSiliconPolicyUpdateLibFsp/PeiFspMiscUpdUpdateLib.c | 25 ++++++++++---------------
Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/Policy/Library/PeiSiliconPolicyUpdateLib/PeiSiliconPolicyUpdateLib.c | 23 +++++++++--------------
Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/FspWrapper/Library/PeiSiliconPolicyUpdateLibFsp/PeiSiliconPolicyUpdateLibFsp.inf | 5 ++---
Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/Policy/Library/PeiSiliconPolicyUpdateLib/PeiSiliconPolicyUpdateLib.inf | 2 +-
4 files changed, 22 insertions(+), 33 deletions(-)
diff --git a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/FspWrapper/Library/PeiSiliconPolicyUpdateLibFsp/PeiFspMiscUpdUpdateLib.c b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/FspWrapper/Library/PeiSiliconPolicyUpdateLibFsp/PeiFspMiscUpdUpdateLib.c
index d8aff1960f..699f4297fa 100644
--- a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/FspWrapper/Library/PeiSiliconPolicyUpdateLibFsp/PeiFspMiscUpdUpdateLib.c
+++ b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/FspWrapper/Library/PeiSiliconPolicyUpdateLibFsp/PeiFspMiscUpdUpdateLib.c
@@ -1,7 +1,7 @@
/** @file
Implementation of Fsp Misc UPD Initialization.
-Copyright (c) 2017, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2017 - 2021, Intel Corporation. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent
**/
@@ -16,7 +16,6 @@ SPDX-License-Identifier: BSD-2-Clause-Patent
#include <FspmUpd.h>
#include <FspsUpd.h>
-#include <Library/MemoryAllocationLib.h>
#include <Library/DebugLib.h>
#include <Library/DebugPrintErrorLevelLib.h>
#include <Library/PciLib.h>
@@ -38,25 +37,21 @@ PeiFspMiscUpdUpdatePreMem (
{
EFI_STATUS Status;
UINTN VariableSize;
- VOID *MemorySavedData;
+ VOID *FspNvsBufferPtr;
UINT8 MorControl;
VOID *MorControlPtr;
//
// Initialize S3 Data variable (S3DataPtr). It may be used for warm and fast boot paths.
//
- VariableSize = 0;
- MemorySavedData = NULL;
- Status = PeiGetVariable (
- L"MemoryConfig",
- &gFspNonVolatileStorageHobGuid,
- &MemorySavedData,
- &VariableSize
- );
- DEBUG ((DEBUG_INFO, "Get L\"MemoryConfig\" gFspNonVolatileStorageHobGuid - %r\n", Status));
- DEBUG ((DEBUG_INFO, "MemoryConfig Size - 0x%x\n", VariableSize));
- FspmUpd->FspmArchUpd.NvsBufferPtr = MemorySavedData;
-
+ FspNvsBufferPtr = NULL;
+ VariableSize = 0;
+ Status = PeiGetLargeVariable (L"FspNvsBuffer", &gFspNvsBufferVariableGuid, &FspNvsBufferPtr, &VariableSize);
+ if (Status == EFI_SUCCESS) {
+ DEBUG ((DEBUG_INFO, "Get L\"FspNvsBuffer\" gFspNvsBufferVariableGuid - %r\n", Status));
+ DEBUG ((DEBUG_INFO, "FspNvsBuffer Size - 0x%x\n", VariableSize));
+ FspmUpd->FspmArchUpd.NvsBufferPtr = FspNvsBufferPtr;
+ }
if (FspmUpd->FspmArchUpd.NvsBufferPtr != NULL) {
//
// Set the DISB bit in PCH (DRAM Initialization Scratchpad Bit - GEN_PMCON_A[23]),
diff --git a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/Policy/Library/PeiSiliconPolicyUpdateLib/PeiSiliconPolicyUpdateLib.c b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/Policy/Library/PeiSiliconPolicyUpdateLib/PeiSiliconPolicyUpdateLib.c
index 2dce9be63c..22aadc0221 100644
--- a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/Policy/Library/PeiSiliconPolicyUpdateLib/PeiSiliconPolicyUpdateLib.c
+++ b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/Policy/Library/PeiSiliconPolicyUpdateLib/PeiSiliconPolicyUpdateLib.c
@@ -398,8 +398,8 @@ SiliconPolicyUpdatePreMem (
SA_MISC_PEI_PREMEM_CONFIG *MiscPeiPreMemConfig;
MEMORY_CONFIG_NO_CRC *MemConfigNoCrc;
VOID *Buffer;
- UINTN VariableSize;
- VOID *MemorySavedData;
+ UINTN FspNvsBufferSize;
+ VOID *FspNvsBufferPtr;
UINT8 SpdAddressTable[4];
DEBUG((DEBUG_INFO, "\nUpdating Policy in Pre-Mem\n"));
@@ -430,18 +430,13 @@ SiliconPolicyUpdatePreMem (
// Note: AmberLake FSP does not implement the FSPM_ARCH_CONFIG_PPI added in FSP 2.1, hence
// the platform specific S3DataPtr must be used instead.
//
- VariableSize = 0;
- MemorySavedData = NULL;
- Status = PeiGetVariable (
- L"MemoryConfig",
- &gFspNonVolatileStorageHobGuid,
- &MemorySavedData,
- &VariableSize
- );
- DEBUG ((DEBUG_INFO, "Get L\"MemoryConfig\" gFspNonVolatileStorageHobGuid - %r\n", Status));
- DEBUG ((DEBUG_INFO, "MemoryConfig Size - 0x%x\n", VariableSize));
- if (!EFI_ERROR (Status)) {
- MiscPeiPreMemConfig->S3DataPtr = MemorySavedData;
+ FspNvsBufferPtr = NULL;
+ FspNvsBufferSize = 0;
+ Status = PeiGetLargeVariable (L"FspNvsBuffer", &gFspNvsBufferVariableGuid, &FspNvsBufferPtr, &FspNvsBufferSize);
+ if (Status == EFI_SUCCESS) {
+ DEBUG ((DEBUG_INFO, "Get L\"FspNvsBuffer\" gFspNvsBufferVariableGuid - %r\n", Status));
+ DEBUG ((DEBUG_INFO, "FspNvsBuffer Size - 0x%x\n", FspNvsBufferSize));
+ MiscPeiPreMemConfig->S3DataPtr = FspNvsBufferPtr;
}
//
diff --git a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/FspWrapper/Library/PeiSiliconPolicyUpdateLibFsp/PeiSiliconPolicyUpdateLibFsp.inf b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/FspWrapper/Library/PeiSiliconPolicyUpdateLibFsp/PeiSiliconPolicyUpdateLibFsp.inf
index f8bec0c852..dacec18cd9 100644
--- a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/FspWrapper/Library/PeiSiliconPolicyUpdateLibFsp/PeiSiliconPolicyUpdateLibFsp.inf
+++ b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/FspWrapper/Library/PeiSiliconPolicyUpdateLibFsp/PeiSiliconPolicyUpdateLibFsp.inf
@@ -1,7 +1,7 @@
## @file
# Provide FSP wrapper platform related function.
#
-# Copyright (c) 2017 - 2020 Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2017 - 2021 Intel Corporation. All rights reserved.<BR>
#
# SPDX-License-Identifier: BSD-2-Clause-Patent
#
@@ -80,7 +80,6 @@
PchInfoLib
PchHsioLib
PchPcieRpLib
- MemoryAllocationLib
CpuMailboxLib
DebugPrintErrorLevelLib
SiPolicyLib
@@ -141,7 +140,7 @@
gKabylakeOpenBoardPkgTokenSpaceGuid.PcdGraphicsVbtGuid
[Guids]
- gFspNonVolatileStorageHobGuid ## CONSUMES
+ gFspNvsBufferVariableGuid ## CONSUMES
gTianoLogoGuid ## CONSUMES
gEfiMemoryOverwriteControlDataGuid
diff --git a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/Policy/Library/PeiSiliconPolicyUpdateLib/PeiSiliconPolicyUpdateLib.inf b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/Policy/Library/PeiSiliconPolicyUpdateLib/PeiSiliconPolicyUpdateLib.inf
index 5c2da68bf9..4b30ba02ea 100644
--- a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/Policy/Library/PeiSiliconPolicyUpdateLib/PeiSiliconPolicyUpdateLib.inf
+++ b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/Policy/Library/PeiSiliconPolicyUpdateLib/PeiSiliconPolicyUpdateLib.inf
@@ -50,7 +50,7 @@
gHsioPciePreMemConfigGuid ## CONSUMES
gHsioSataPreMemConfigGuid ## CONSUMES
gSaMiscPeiPreMemConfigGuid ## CONSUMES
- gFspNonVolatileStorageHobGuid ## CONSUMES
+ gFspNvsBufferVariableGuid ## CONSUMES
[Pcd]
gSiPkgTokenSpaceGuid.PcdPeiMinMemorySize
--
2.28.0.windows.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#81662): https://edk2.groups.io/g/devel/message/81662
Mute This Topic: https://groups.io/mt/86164709/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
Reviewed-by: Nate DeSimone <nathaniel.l.desimone@intel.com>
> -----Original Message-----
> From: Chiu, Chasel <chasel.chiu@intel.com>
> Sent: Thursday, October 7, 2021 11:43 PM
> To: devel@edk2.groups.io
> Cc: Chiu, Chasel <chasel.chiu@intel.com>; Desimone, Nathaniel L
> <nathaniel.l.desimone@intel.com>
> Subject: [edk2-platforms: PATCH v3 5/9]
> KabylakeOpenBoardPkg/KabylakeRvp3: Use same variable name for
> FspNvsHob.
>
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3678
>
> To simplify the implementation the variable Name/GUID has been changed
> to "FspNvsBuffer" and gFspNvsBufferVariableGuid regardless it stores the
> data from FSP_NON_VOLATILE_STORAGE_HOB2 or
> FSP_NON_VOLATILE_STORAGE_HOB.
>
> Cc: Nate DeSimone <nathaniel.l.desimone@intel.com>
> Signed-off-by: Chasel Chiu <chasel.chiu@intel.com>
> ---
>
> Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/FspWrapper/Library/
> PeiSiliconPolicyUpdateLibFsp/PeiFspMiscUpdUpdateLib.c | 25
> ++++++++++---------------
>
> Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/Policy/Library/PeiSilic
> onPolicyUpdateLib/PeiSiliconPolicyUpdateLib.c | 23 +++++++++---------
> -----
>
> Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/FspWrapper/Library/
> PeiSiliconPolicyUpdateLibFsp/PeiSiliconPolicyUpdateLibFsp.inf | 5 ++---
>
> Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/Policy/Library/PeiSilic
> onPolicyUpdateLib/PeiSiliconPolicyUpdateLib.inf | 2 +-
> 4 files changed, 22 insertions(+), 33 deletions(-)
>
> diff --git
> a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/FspWrapper/Librar
> y/PeiSiliconPolicyUpdateLibFsp/PeiFspMiscUpdUpdateLib.c
> b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/FspWrapper/Librar
> y/PeiSiliconPolicyUpdateLibFsp/PeiFspMiscUpdUpdateLib.c
> index d8aff1960f..699f4297fa 100644
> ---
> a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/FspWrapper/Librar
> y/PeiSiliconPolicyUpdateLibFsp/PeiFspMiscUpdUpdateLib.c
> +++
> b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/FspWrapper/Librar
> +++ y/PeiSiliconPolicyUpdateLibFsp/PeiFspMiscUpdUpdateLib.c
> @@ -1,7 +1,7 @@
> /** @file Implementation of Fsp Misc UPD Initialization. -Copyright (c) 2017,
> Intel Corporation. All rights reserved.<BR>+Copyright (c) 2017 - 2021, Intel
> Corporation. All rights reserved.<BR> SPDX-License-Identifier: BSD-2-Clause-
> Patent **/@@ -16,7 +16,6 @@ SPDX-License-Identifier: BSD-2-Clause-
> Patent
> #include <FspmUpd.h> #include <FspsUpd.h> -#include
> <Library/MemoryAllocationLib.h> #include <Library/DebugLib.h> #include
> <Library/DebugPrintErrorLevelLib.h> #include <Library/PciLib.h>@@ -38,25
> +37,21 @@ PeiFspMiscUpdUpdatePreMem (
> { EFI_STATUS Status; UINTN VariableSize;- VOID
> *MemorySavedData;+ VOID *FspNvsBufferPtr; UINT8
> MorControl; VOID *MorControlPtr; // // Initialize S3 Data
> variable (S3DataPtr). It may be used for warm and fast boot paths. //-
> VariableSize = 0;- MemorySavedData = NULL;- Status = PeiGetVariable (-
> L"MemoryConfig",- &gFspNonVolatileStorageHobGuid,-
> &MemorySavedData,- &VariableSize- );- DEBUG ((DEBUG_INFO,
> "Get L\"MemoryConfig\" gFspNonVolatileStorageHobGuid - %r\n", Status));-
> DEBUG ((DEBUG_INFO, "MemoryConfig Size - 0x%x\n", VariableSize));-
> FspmUpd->FspmArchUpd.NvsBufferPtr = MemorySavedData;-+
> FspNvsBufferPtr = NULL;+ VariableSize = 0;+ Status = PeiGetLargeVariable
> (L"FspNvsBuffer", &gFspNvsBufferVariableGuid, &FspNvsBufferPtr,
> &VariableSize);+ if (Status == EFI_SUCCESS) {+ DEBUG ((DEBUG_INFO,
> "Get L\"FspNvsBuffer\" gFspNvsBufferVariableGuid - %r\n", Status));+
> DEBUG ((DEBUG_INFO, "FspNvsBuffer Size - 0x%x\n", VariableSize));+
> FspmUpd->FspmArchUpd.NvsBufferPtr = FspNvsBufferPtr;+ } if (FspmUpd-
> >FspmArchUpd.NvsBufferPtr != NULL) { // // Set the DISB bit in PCH
> (DRAM Initialization Scratchpad Bit - GEN_PMCON_A[23]),diff --git
> a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/Policy/Library/PeiSil
> iconPolicyUpdateLib/PeiSiliconPolicyUpdateLib.c
> b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/Policy/Library/PeiSi
> liconPolicyUpdateLib/PeiSiliconPolicyUpdateLib.c
> index 2dce9be63c..22aadc0221 100644
> ---
> a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/Policy/Library/PeiSil
> iconPolicyUpdateLib/PeiSiliconPolicyUpdateLib.c
> +++
> b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/Policy/Library/Pe
> +++ iSiliconPolicyUpdateLib/PeiSiliconPolicyUpdateLib.c
> @@ -398,8 +398,8 @@ SiliconPolicyUpdatePreMem (
> SA_MISC_PEI_PREMEM_CONFIG *MiscPeiPreMemConfig;
> MEMORY_CONFIG_NO_CRC *MemConfigNoCrc; VOID
> *Buffer;- UINTN VariableSize;- VOID
> *MemorySavedData;+ UINTN FspNvsBufferSize;+ VOID
> *FspNvsBufferPtr; UINT8 SpdAddressTable[4];
> DEBUG((DEBUG_INFO, "\nUpdating Policy in Pre-Mem\n"));@@ -430,18
> +430,13 @@ SiliconPolicyUpdatePreMem (
> // Note: AmberLake FSP does not implement the
> FSPM_ARCH_CONFIG_PPI added in FSP 2.1, hence // the platform specific
> S3DataPtr must be used instead. //- VariableSize = 0;-
> MemorySavedData = NULL;- Status = PeiGetVariable (-
> L"MemoryConfig",- &gFspNonVolatileStorageHobGuid,-
> &MemorySavedData,- &VariableSize- );- DEBUG
> ((DEBUG_INFO, "Get L\"MemoryConfig\" gFspNonVolatileStorageHobGuid -
> %r\n", Status));- DEBUG ((DEBUG_INFO, "MemoryConfig Size - 0x%x\n",
> VariableSize));- if (!EFI_ERROR (Status)) {- MiscPeiPreMemConfig-
> >S3DataPtr = MemorySavedData;+ FspNvsBufferPtr = NULL;+
> FspNvsBufferSize = 0;+ Status = PeiGetLargeVariable (L"FspNvsBuffer",
> &gFspNvsBufferVariableGuid, &FspNvsBufferPtr, &FspNvsBufferSize);+ if
> (Status == EFI_SUCCESS) {+ DEBUG ((DEBUG_INFO, "Get
> L\"FspNvsBuffer\" gFspNvsBufferVariableGuid - %r\n", Status));+ DEBUG
> ((DEBUG_INFO, "FspNvsBuffer Size - 0x%x\n", FspNvsBufferSize));+
> MiscPeiPreMemConfig->S3DataPtr = FspNvsBufferPtr; } //diff --git
> a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/FspWrapper/Librar
> y/PeiSiliconPolicyUpdateLibFsp/PeiSiliconPolicyUpdateLibFsp.inf
> b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/FspWrapper/Librar
> y/PeiSiliconPolicyUpdateLibFsp/PeiSiliconPolicyUpdateLibFsp.inf
> index f8bec0c852..dacec18cd9 100644
> ---
> a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/FspWrapper/Librar
> y/PeiSiliconPolicyUpdateLibFsp/PeiSiliconPolicyUpdateLibFsp.inf
> +++
> b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/FspWrapper/Librar
> +++ y/PeiSiliconPolicyUpdateLibFsp/PeiSiliconPolicyUpdateLibFsp.inf
> @@ -1,7 +1,7 @@
> ## @file # Provide FSP wrapper platform related function. #-# Copyright (c)
> 2017 - 2020 Intel Corporation. All rights reserved.<BR>+# Copyright (c) 2017 -
> 2021 Intel Corporation. All rights reserved.<BR> # # SPDX-License-Identifier:
> BSD-2-Clause-Patent #@@ -80,7 +80,6 @@
> PchInfoLib PchHsioLib PchPcieRpLib- MemoryAllocationLib
> CpuMailboxLib DebugPrintErrorLevelLib SiPolicyLib@@ -141,7 +140,7 @@
> gKabylakeOpenBoardPkgTokenSpaceGuid.PcdGraphicsVbtGuid [Guids]-
> gFspNonVolatileStorageHobGuid ## CONSUMES+
> gFspNvsBufferVariableGuid ## CONSUMES gTianoLogoGuid
> ## CONSUMES gEfiMemoryOverwriteControlDataGuid diff --git
> a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/Policy/Library/PeiSil
> iconPolicyUpdateLib/PeiSiliconPolicyUpdateLib.inf
> b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/Policy/Library/PeiSi
> liconPolicyUpdateLib/PeiSiliconPolicyUpdateLib.inf
> index 5c2da68bf9..4b30ba02ea 100644
> ---
> a/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/Policy/Library/PeiSil
> iconPolicyUpdateLib/PeiSiliconPolicyUpdateLib.inf
> +++
> b/Platform/Intel/KabylakeOpenBoardPkg/KabylakeRvp3/Policy/Library/Pe
> +++ iSiliconPolicyUpdateLib/PeiSiliconPolicyUpdateLib.inf
> @@ -50,7 +50,7 @@
> gHsioPciePreMemConfigGuid ## CONSUMES
> gHsioSataPreMemConfigGuid ## CONSUMES
> gSaMiscPeiPreMemConfigGuid ## CONSUMES-
> gFspNonVolatileStorageHobGuid ## CONSUMES+
> gFspNvsBufferVariableGuid ## CONSUMES [Pcd]
> gSiPkgTokenSpaceGuid.PcdPeiMinMemorySize--
> 2.28.0.windows.1
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#81772): https://edk2.groups.io/g/devel/message/81772
Mute This Topic: https://groups.io/mt/86164709/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-
© 2016 - 2026 Red Hat, Inc.