From 1807a2a1c019beb00d240919eec0030d029eef4d Mon Sep 17 00:00:00 2001 From: Guo Mang Date: Wed, 5 Apr 2017 14:44:39 +0800 Subject: Fix get variable issue Fix "AcpiGlobalVariable" couldn't be get issue. S3 memory info was saved in this variable. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Guo Mang Reviewed-by: zwei4 --- .../CseVariableStorageSelectorLib.c | 9 ++++++++- .../SmmCseVariableStorageSelectorLib.inf | 4 +++- .../PeiCseVariableStorageSelectorLib.c | 8 +++++++- .../PeiCseVariableStorageSelectorLib.inf | 4 +++- 4 files changed, 21 insertions(+), 4 deletions(-) (limited to 'Silicon') diff --git a/Silicon/BroxtonSoC/BroxtonSiPkg/Library/Private/DxeSmmCseVariableStorageSelectorLib/CseVariableStorageSelectorLib.c b/Silicon/BroxtonSoC/BroxtonSiPkg/Library/Private/DxeSmmCseVariableStorageSelectorLib/CseVariableStorageSelectorLib.c index 09e6d68423..1087196154 100644 --- a/Silicon/BroxtonSoC/BroxtonSiPkg/Library/Private/DxeSmmCseVariableStorageSelectorLib/CseVariableStorageSelectorLib.c +++ b/Silicon/BroxtonSoC/BroxtonSiPkg/Library/Private/DxeSmmCseVariableStorageSelectorLib/CseVariableStorageSelectorLib.c @@ -1,7 +1,7 @@ /** @file DXE SMM CSE Variable Storage Selector Library. - Copyright (c) 2016, Intel Corporation. All rights reserved.
+ Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -75,6 +75,13 @@ GetCseVariableStoreFileType ( CseVariableFileTypePreMemoryFile : CseVariableFileTypePrimaryIndexFile ); + } else if ((StrCmp (VariableName, L"AcpiGlobalVariable") == 0) && + CompareGuid (VendorGuid, &gEfiAcpiVariableCompatiblityGuid)) { + DEBUG ((EFI_D_INFO, "CseVariableStorageSelectorLib - Variable is AcpiGlobalVariable\n")); + return (CseVariableFileInfo[CseVariableFileTypePreMemoryFile]->FileEnabled ? + CseVariableFileTypePreMemoryFile : + CseVariableFileTypePrimaryIndexFile + ); } else { // // All other variables are stored in individual CSE files diff --git a/Silicon/BroxtonSoC/BroxtonSiPkg/Library/Private/DxeSmmCseVariableStorageSelectorLib/SmmCseVariableStorageSelectorLib.inf b/Silicon/BroxtonSoC/BroxtonSiPkg/Library/Private/DxeSmmCseVariableStorageSelectorLib/SmmCseVariableStorageSelectorLib.inf index 5956383d43..bbbde90add 100644 --- a/Silicon/BroxtonSoC/BroxtonSiPkg/Library/Private/DxeSmmCseVariableStorageSelectorLib/SmmCseVariableStorageSelectorLib.inf +++ b/Silicon/BroxtonSoC/BroxtonSiPkg/Library/Private/DxeSmmCseVariableStorageSelectorLib/SmmCseVariableStorageSelectorLib.inf @@ -4,7 +4,7 @@ # Determines which CSE resources to consume in SMM. # Example: HECI1 or HECI2. # -# Copyright (c) 2016, Intel Corporation. All rights reserved.
+# Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -37,6 +37,7 @@ MdePkg/MdePkg.dec BroxtonSiPkg/BroxtonSiPkg.dec BroxtonSiPkg/BroxtonSiPrivate.dec + IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec [Protocols] gEfiHeciSmmProtocolGuid @@ -52,3 +53,4 @@ [Guids] gEfiMemoryConfigVariableGuid gEfiSetupVariableGuid + gEfiAcpiVariableCompatiblityGuid diff --git a/Silicon/BroxtonSoC/BroxtonSiPkg/Library/Private/PeiCseVariableStorageSelectorLib/PeiCseVariableStorageSelectorLib.c b/Silicon/BroxtonSoC/BroxtonSiPkg/Library/Private/PeiCseVariableStorageSelectorLib/PeiCseVariableStorageSelectorLib.c index cee10eae56..a9d93fe680 100644 --- a/Silicon/BroxtonSoC/BroxtonSiPkg/Library/Private/PeiCseVariableStorageSelectorLib/PeiCseVariableStorageSelectorLib.c +++ b/Silicon/BroxtonSoC/BroxtonSiPkg/Library/Private/PeiCseVariableStorageSelectorLib/PeiCseVariableStorageSelectorLib.c @@ -1,7 +1,7 @@ /** @file PEI CSE Variable Storage Selector Library. - Copyright (c) 2016, Intel Corporation. All rights reserved.
+ Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.
This program and the accompanying materials are licensed and made available under the terms and conditions of the BSD License @@ -73,6 +73,12 @@ GetCseVariableStoreFileType ( CseVariableFileTypePreMemoryFile : CseVariableFileTypePrimaryIndexFile ); +} else if ((StrCmp (VariableName, L"AcpiGlobalVariable") == 0) && + CompareGuid (VendorGuid, &gEfiAcpiVariableCompatiblityGuid)) { + return (CseVariableFileInfo[CseVariableFileTypePreMemoryFile]->FileEnabled ? + CseVariableFileTypePreMemoryFile : + CseVariableFileTypePrimaryIndexFile + ); } else { // // All other variables are stored in individual CSE files diff --git a/Silicon/BroxtonSoC/BroxtonSiPkg/Library/Private/PeiCseVariableStorageSelectorLib/PeiCseVariableStorageSelectorLib.inf b/Silicon/BroxtonSoC/BroxtonSiPkg/Library/Private/PeiCseVariableStorageSelectorLib/PeiCseVariableStorageSelectorLib.inf index bd6cce0924..474a9b7a58 100644 --- a/Silicon/BroxtonSoC/BroxtonSiPkg/Library/Private/PeiCseVariableStorageSelectorLib/PeiCseVariableStorageSelectorLib.inf +++ b/Silicon/BroxtonSoC/BroxtonSiPkg/Library/Private/PeiCseVariableStorageSelectorLib/PeiCseVariableStorageSelectorLib.inf @@ -4,7 +4,7 @@ # Determines which CSE resources to consume in PEI. # Example: HECI1 or HECI2. # -# Copyright (c) 2016, Intel Corporation. All rights reserved.
+# Copyright (c) 2016 - 2017, Intel Corporation. All rights reserved.
# # This program and the accompanying materials # are licensed and made available under the terms and conditions of the BSD License @@ -35,6 +35,7 @@ MdePkg/MdePkg.dec BroxtonSiPkg/BroxtonSiPkg.dec BroxtonSiPkg/BroxtonSiPrivate.dec + IntelFrameworkModulePkg/IntelFrameworkModulePkg.dec [LibraryClasses] BaseLib @@ -45,3 +46,4 @@ [Guids] gEfiMemoryConfigVariableGuid gEfiSetupVariableGuid + gEfiAcpiVariableCompatiblityGuid -- cgit v1.2.3