]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/VariableRuntimeDxe/Variable.c
1) Use Dynamic Pcd for hold the base address and length of Flash-related block.
[mirror_edk2.git] / MdeModulePkg / Universal / VariableRuntimeDxe / Variable.c
index 6f663d4fe1ec4b7456b2bd5a58ca71462898375c..4322961630c595dabf8f58e919da0a76e561f474 100644 (file)
@@ -1299,15 +1299,13 @@ Returns:
   EFI_PHYSICAL_ADDRESS            FvVolHdr;\r
 \r
   UINT64                          TempVariableStoreHeader;\r
-  UINT64                          TempVariableStoreLen;\r
+\r
   EFI_GCD_MEMORY_SPACE_DESCRIPTOR GcdDescriptor;\r
   EFI_FLASH_SUBAREA_ENTRY         VariableStoreEntry;\r
   UINT64                          BaseAddress;\r
   UINT64                          Length;\r
   UINTN                           Index;\r
   UINT8                           Data;\r
-  EFI_PEI_HOB_POINTERS            FvHob;\r
-  EFI_FLASH_MAP_ENTRY_DATA        *FlashMapEntry;\r
 \r
   mVariableModuleGlobal = AllocateRuntimePool (sizeof (ESAL_VARIABLE_GLOBAL));\r
   if (mVariableModuleGlobal == NULL) {\r
@@ -1343,29 +1341,11 @@ Returns:
   //\r
   // Get non volatile varaible store\r
   //\r
-  // BUGBUG: Here should use dynamic PCD to get NvStorageVariableBase when build tools is ready.\r
-  TempVariableStoreHeader = 0;\r
-  TempVariableStoreLen    = 0;\r
-  FvHob.Raw = GetHobList ();\r
-  while ((FvHob.Raw = GetNextGuidHob (&gEfiFlashMapHobGuid, FvHob.Raw)) != NULL) {\r
-\r
-    FlashMapEntry = (EFI_FLASH_MAP_ENTRY_DATA *) GET_GUID_HOB_DATA (FvHob.Guid);\r
-      \r
-    //\r
-    // Get the FTW work space Flash Map SUB area\r
-    //\r
-    if ((FlashMapEntry->AreaType == EFI_FLASH_AREA_EFI_VARIABLES) && (FlashMapEntry->NumEntries == 1)) {\r
-      TempVariableStoreHeader = FlashMapEntry->Entries[0].Base;\r
-           TempVariableStoreLen    = FlashMapEntry->Entries[0].Length;\r
-    }\r
-    FvHob.Raw = GET_NEXT_HOB (FvHob);\r
-  }\r
-  ASSERT ((TempVariableStoreHeader != 0) && (TempVariableStoreLen != 0));\r
 \r
-  //TempVariableStoreHeader = (UINT64) PcdGet32 (PcdFlashNvStorageVariableBase);\r
+  TempVariableStoreHeader = (UINT64) PcdGet32 (PcdFlashNvStorageVariableBase);\r
   VariableStoreEntry.Base = TempVariableStoreHeader + \\r
                               (((EFI_FIRMWARE_VOLUME_HEADER *) (UINTN) (TempVariableStoreHeader)) -> HeaderLength);\r
-  VariableStoreEntry.Length = TempVariableStoreLen - \\r
+  VariableStoreEntry.Length = (UINT64) PcdGet32 (PcdFlashNvStorageVariableSize) - \\r
                                 (((EFI_FIRMWARE_VOLUME_HEADER *) (UINTN) (TempVariableStoreHeader)) -> HeaderLength);\r
   //\r
   // Mark the variable storage region of the FLASH as RUNTIME\r