]> git.proxmox.com Git - mirror_edk2.git/blobdiff - EdkModulePkg/Universal/Variable/Pei/Variable.c
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@1082 6f19259b...
[mirror_edk2.git] / EdkModulePkg / Universal / Variable / Pei / Variable.c
index 9561ad13d6f7aacd83d3063a48f08f8f05e9e231..f10a96ba2dff5cdfe0320d0aac610094b428393a 100644 (file)
@@ -245,18 +245,13 @@ Returns:
 \r
 --*/\r
 {\r
-  PEI_FLASH_MAP_PPI       *FlashMapPpi;\r
-  EFI_FLASH_SUBAREA_ENTRY *VariableStoreEntry;\r
-  UINT32                  NumEntries;\r
   EFI_HOB_GUID_TYPE       *GuidHob;\r
   VARIABLE_STORE_HEADER   *VariableStoreHeader;\r
   VARIABLE_HEADER         *Variable;\r
-\r
-  EFI_STATUS              Status;\r
-\r
   VARIABLE_HEADER         *MaxIndex;\r
   VARIABLE_INDEX_TABLE    *IndexTable;\r
   UINT32                  Count;\r
+  UINT8                   *VariableBase;\r
 \r
   if (VariableName != 0 && VendorGuid == NULL) {\r
     return EFI_INVALID_PARAMETER;\r
@@ -305,39 +300,10 @@ Returns:
     if (IndexTable->StartPtr || IndexTable->EndPtr) {\r
       Variable = IndexTable->StartPtr;\r
     } else {\r
-      //\r
-      // Locate FlashMap PPI\r
-      //\r
-      Status = (**PeiServices).LocatePpi (\r
-                                PeiServices,\r
-                                &gPeiFlashMapPpiGuid,\r
-                                0,\r
-                                NULL,\r
-                                (VOID **) &FlashMapPpi\r
-                                );\r
-      ASSERT_EFI_ERROR (Status);\r
-\r
-      //\r
-      // Get flash area info for variables\r
-      //\r
-      Status = FlashMapPpi->GetAreaInfo (\r
-                              PeiServices,\r
-                              FlashMapPpi,\r
-                              EFI_FLASH_AREA_EFI_VARIABLES,\r
-                              NULL,\r
-                              &NumEntries,\r
-                              &VariableStoreEntry\r
-                              );\r
-\r
-      //\r
-      //  Currently only one non-volatile variable store is supported\r
-      //\r
-      if (NumEntries != 1) {\r
-        return EFI_UNSUPPORTED;\r
-      }\r
-\r
-      VariableStoreHeader = (VARIABLE_STORE_HEADER *) (UINTN) (VariableStoreEntry->Base);\r
-\r
+      VariableBase = (UINT8 *) (UINTN) PcdGet32 (PcdFlashNvStorageVariableBase);\r
+      VariableStoreHeader = (VARIABLE_STORE_HEADER *) (VariableBase + \\r
+                            ((EFI_FIRMWARE_VOLUME_HEADER *) (VariableBase)) -> HeaderLength);\r
+      \r
       if (GetVariableStoreStatus (VariableStoreHeader) != EfiValid) {\r
         return EFI_UNSUPPORTED;\r
       }\r