]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BaseTools/Source/C/GenFv/GenFvInternalLib.c
Sync BaseTools Branch (version r2362) to EDKII main trunk.
[mirror_edk2.git] / BaseTools / Source / C / GenFv / GenFvInternalLib.c
index d86909b4df63e15df65eeabec1a4de3a35a0c9ba..9fdcb47d6bba84dcc740463ce69d89fde108730b 100644 (file)
@@ -209,6 +209,7 @@ Returns:
       DebugMsg (NULL, 0, 9, "rebase address", "%s = %s", EFI_FV_BASE_ADDRESS_STRING, Value);\r
 \r
       FvInfo->BaseAddress = Value64;\r
+      FvInfo->BaseAddressSet = TRUE;\r
     }\r
   }\r
 \r
@@ -2826,11 +2827,20 @@ Returns:
   PeFileBuffer       = NULL;\r
 \r
   //\r
-  // Don't need to relocate image when BaseAddress is not set.\r
+  // Don't need to relocate image when BaseAddress is zero and no ForceRebase Flag specified.\r
   //\r
-  if (FvInfo->BaseAddress == 0) {\r
+  if ((FvInfo->BaseAddress == 0) && (FvInfo->ForceRebase == -1)) {\r
     return EFI_SUCCESS;\r
   }\r
+  \r
+  //\r
+  // If ForceRebase Flag specified to FALSE, will always not take rebase action.\r
+  //\r
+  if (FvInfo->ForceRebase == 0) {\r
+    return EFI_SUCCESS;\r
+  }\r
+\r
+\r
   XipBase = FvInfo->BaseAddress + XipOffset;\r
 \r
   //\r