- //\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