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