]> git.proxmox.com Git - mirror_edk2.git/blobdiff - Nt32Pkg/WinNtFlashMapPei/FlashMap.c
UefiCpuPkg/MtrrLib: Fixed bug if length is less than Fixed-MTRR range
[mirror_edk2.git] / Nt32Pkg / WinNtFlashMapPei / FlashMap.c
index 111514f21b1a055e16e7111783ef8c97b5bd7168..0a1b3256668ee997a48f00c8e86e87d9c8766a75 100644 (file)
@@ -1,7 +1,8 @@
 /**@file\r
 \r
-Copyright (c) 2006, Intel Corporation                                                         \r
-All rights reserved. This program and the accompanying materials                          \r
+Copyright (c) 2006, Intel Corporation. All rights reserved.<BR>\r
+(C) Copyright 2016 Hewlett Packard Enterprise Development LP<BR>\r
+This program and the accompanying materials                          \r
 are licensed and made available under the terms and conditions of the BSD License         \r
 which accompanies this distribution.  The full text of the license may be found at        \r
 http://opensource.org/licenses/bsd-license.php                                            \r
@@ -70,7 +71,7 @@ Returns:
             &gNtFwhPpiGuid, // GUID\r
             0,              // INSTANCE\r
             &PpiDescriptor, // EFI_PEI_PPI_DESCRIPTOR\r
-            &NtFwhPpi       // PPI\r
+            (VOID**)&NtFwhPpi       // PPI\r
             );\r
   ASSERT_EFI_ERROR (Status);\r
 \r
@@ -85,9 +86,15 @@ Returns:
   //\r
   // Relocate the base of FV region \r
   // \r
-  PcdSet32 (PcdFlashNvStorageVariableBase, PcdGet32 (PcdWinNtFlashNvStorageVariableBase) + (UINT32) FdBase);\r
-  PcdSet32 (PcdFlashNvStorageFtwWorkingBase, PcdGet32 (PcdWinNtFlashNvStorageFtwWorkingBase) + (UINT32) FdBase);\r
-  PcdSet32 (PcdFlashNvStorageFtwSpareBase, PcdGet32 (PcdWinNtFlashNvStorageFtwSpareBase) + (UINT32) FdBase);\r
+  if (FdBase >= BASE_4GB) {\r
+    PcdSet64 (PcdFlashNvStorageVariableBase64, PcdGet32 (PcdWinNtFlashNvStorageVariableBase) + (UINT64) FdBase);\r
+    PcdSet64 (PcdFlashNvStorageFtwWorkingBase64, PcdGet32 (PcdWinNtFlashNvStorageFtwWorkingBase) + (UINT64) FdBase);\r
+    PcdSet64 (PcdFlashNvStorageFtwSpareBase64, PcdGet32 (PcdWinNtFlashNvStorageFtwSpareBase) + (UINT64) FdBase);\r
+  } else {\r
+    PcdSet32 (PcdFlashNvStorageVariableBase, PcdGet32 (PcdWinNtFlashNvStorageVariableBase) + (UINT32) FdBase);\r
+    PcdSet32 (PcdFlashNvStorageFtwWorkingBase, PcdGet32 (PcdWinNtFlashNvStorageFtwWorkingBase) + (UINT32) FdBase);\r
+    PcdSet32 (PcdFlashNvStorageFtwSpareBase, PcdGet32 (PcdWinNtFlashNvStorageFtwSpareBase) + (UINT32) FdBase);\r
+  }\r
 \r
   return EFI_SUCCESS;\r
 }\r