/** @file NorFlashDxe.c\r
\r
- Copyright (c) 2011 - 2020, Arm Limited. All rights reserved.<BR>\r
+ Copyright (c) 2011 - 2021, Arm Limited. All rights reserved.<BR>\r
\r
SPDX-License-Identifier: BSD-2-Clause-Patent\r
\r
\r
for (Index = 0; Index < mNorFlashDeviceCount; Index++) {\r
// Check if this NOR Flash device contain the variable storage region\r
- ContainVariableStorage =\r
- (NorFlashDevices[Index].RegionBaseAddress <= PcdGet32 (PcdFlashNvStorageVariableBase)) &&\r
- (PcdGet32 (PcdFlashNvStorageVariableBase) + PcdGet32 (PcdFlashNvStorageVariableSize) <= NorFlashDevices[Index].RegionBaseAddress + NorFlashDevices[Index].Size);\r
+\r
+ if (PcdGet64 (PcdFlashNvStorageVariableBase64) != 0) {\r
+ ContainVariableStorage =\r
+ (NorFlashDevices[Index].RegionBaseAddress <= PcdGet64 (PcdFlashNvStorageVariableBase64)) &&\r
+ (PcdGet64 (PcdFlashNvStorageVariableBase64) + PcdGet32 (PcdFlashNvStorageVariableSize) <=\r
+ NorFlashDevices[Index].RegionBaseAddress + NorFlashDevices[Index].Size);\r
+ } else {\r
+ ContainVariableStorage =\r
+ (NorFlashDevices[Index].RegionBaseAddress <= PcdGet32 (PcdFlashNvStorageVariableBase)) &&\r
+ (PcdGet32 (PcdFlashNvStorageVariableBase) + PcdGet32 (PcdFlashNvStorageVariableSize) <=\r
+ NorFlashDevices[Index].RegionBaseAddress + NorFlashDevices[Index].Size);\r
+ }\r
\r
Status = NorFlashCreateInstance (\r
NorFlashDevices[Index].DeviceBaseAddress,\r
EFI_MEMORY_UC | EFI_MEMORY_RUNTIME);\r
ASSERT_EFI_ERROR (Status);\r
\r
- mFlashNvStorageVariableBase = PcdGet32 (PcdFlashNvStorageVariableBase);\r
+ mFlashNvStorageVariableBase = (FixedPcdGet64 (PcdFlashNvStorageVariableBase64) != 0) ?\r
+ FixedPcdGet64 (PcdFlashNvStorageVariableBase64) : FixedPcdGet32 (PcdFlashNvStorageVariableBase);\r
\r
// Set the index of the first LBA for the FVB\r
- Instance->StartLba = (PcdGet32 (PcdFlashNvStorageVariableBase) - Instance->RegionBaseAddress) / Instance->Media.BlockSize;\r
+ Instance->StartLba = (mFlashNvStorageVariableBase - Instance->RegionBaseAddress) / Instance->Media.BlockSize;\r
\r
BootMode = GetBootModeHob ();\r
if (BootMode == BOOT_WITH_DEFAULT_SETTINGS) {\r