]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/Variable/Pei/Variable.c
MdeModulePkg/Variable: Consume Variable Flash Info
[mirror_edk2.git] / MdeModulePkg / Universal / Variable / Pei / Variable.c
index b36dd0de67b294a4abf88c7f620886ca5cb74b0d..26a4c73b45a5995dc233e593a83d034e67ffee82 100644 (file)
@@ -567,11 +567,13 @@ GetVariableStore (
   OUT VARIABLE_STORE_INFO  *StoreInfo\r
   )\r
 {\r
+  EFI_STATUS                            Status;\r
   EFI_HOB_GUID_TYPE                     *GuidHob;\r
   EFI_FIRMWARE_VOLUME_HEADER            *FvHeader;\r
   VARIABLE_STORE_HEADER                 *VariableStoreHeader;\r
   EFI_PHYSICAL_ADDRESS                  NvStorageBase;\r
   UINT32                                NvStorageSize;\r
+  UINT64                                NvStorageSize64;\r
   FAULT_TOLERANT_WRITE_LAST_WRITE_DATA  *FtwLastWriteData;\r
   UINT32                                BackUpOffset;\r
 \r
@@ -591,11 +593,13 @@ GetVariableStore (
         // Emulated non-volatile variable mode is not enabled.\r
         //\r
 \r
-        NvStorageSize = PcdGet32 (PcdFlashNvStorageVariableSize);\r
-        NvStorageBase = (EFI_PHYSICAL_ADDRESS)(PcdGet64 (PcdFlashNvStorageVariableBase64) != 0 ?\r
-                                               PcdGet64 (PcdFlashNvStorageVariableBase64) :\r
-                                               PcdGet32 (PcdFlashNvStorageVariableBase)\r
-                                               );\r
+        Status = GetVariableFlashNvStorageInfo (&NvStorageBase, &NvStorageSize64);\r
+        ASSERT_EFI_ERROR (Status);\r
+\r
+        Status = SafeUint64ToUint32 (NvStorageSize64, &NvStorageSize);\r
+        // This driver currently assumes the size will be UINT32 so assert the value is safe for now.\r
+        ASSERT_EFI_ERROR (Status);\r
+\r
         ASSERT (NvStorageBase != 0);\r
 \r
         //\r