Print correct TEImage start address into Fv map file.
authorlgao4 <lgao4@7335b38e-4728-0410-8992-fb3ffe349368>
Mon, 10 Dec 2007 06:26:12 +0000 (06:26 +0000)
committerlgao4 <lgao4@7335b38e-4728-0410-8992-fb3ffe349368>
Mon, 10 Dec 2007 06:26:12 +0000 (06:26 +0000)
git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@916 7335b38e-4728-0410-8992-fb3ffe349368

Source/C/GenFv/GenFvInternalLib.c

index e4c9d54..57852b4 100644 (file)
@@ -2285,7 +2285,7 @@ Returns:
     //\r
     // Get this module function address from ModulePeMapFile and add them into FvMap file\r
     //\r
-    WriteMapFile (FvMapFile, FileName, ImageContext.DestinationAddress, PeHdr->OptionalHeader.AddressOfEntryPoint);\r
+    WriteMapFile (FvMapFile, FileName, ImageContext.DestinationAddress, PeHdr->OptionalHeader.AddressOfEntryPoint, 0);\r
   }\r
 \r
   if ((Flags & 1) == 0 || (\r
@@ -2465,7 +2465,13 @@ Returns:
     //\r
     // Get this module function address from ModulePeMapFile and add them into FvMap file\r
     //\r
-    WriteMapFile (FvMapFile, FileName, ImageContext.DestinationAddress, TEImageHeader->AddressOfEntryPoint);  \r
+    WriteMapFile (\r
+      FvMapFile, \r
+      FileName, \r
+      ImageContext.DestinationAddress, \r
+      TEImageHeader->AddressOfEntryPoint, \r
+      TEImageHeader->StrippedSize - sizeof (EFI_TE_IMAGE_HEADER)\r
+      );  \r
   }\r
  \r
   return EFI_SUCCESS;\r
@@ -2553,7 +2559,8 @@ WriteMapFile (
   IN OUT FILE                  *FvMapFile,\r
   IN     CHAR8                 *FileName, \r
   IN     EFI_PHYSICAL_ADDRESS  ImageBaseAddress,\r
-  IN     UINT32                AddressOfEntryPoint\r
+  IN     UINT32                AddressOfEntryPoint,\r
+  IN     UINT32                Offset\r
   )\r
 /*++\r
 \r
@@ -2567,6 +2574,7 @@ Arguments:
   FileName              Ffs File PathName\r
   ImageBaseAddress      PeImage Base Address.\r
   AddressOfEntryPoint   EntryPoint address relative to PeBase Address\r
+  Offset                Offset between TeImage address and original PeImage.\r
 \r
 Returns:\r
 \r
@@ -2638,12 +2646,12 @@ Returns:
   //\r
   if (FileGuidName != NULL) {\r
     fprintf (FvMapFile, "%s (", KeyWord);\r
-    fprintf (FvMapFile, "BaseAddress=%08lx, ", ImageBaseAddress);\r
+    fprintf (FvMapFile, "BaseAddress=%08lx, ", ImageBaseAddress + Offset);\r
     fprintf (FvMapFile, "EntryPoint=%08lx, ", ImageBaseAddress + AddressOfEntryPoint);\r
     fprintf (FvMapFile, "GUID=%s)\n\n", FileGuidName);\r
   } else {\r
     fprintf (FvMapFile, "%s (", KeyWord);\r
-    fprintf (FvMapFile, "BaseAddress=%08lx, ", ImageBaseAddress);\r
+    fprintf (FvMapFile, "BaseAddress=%08lx, ", ImageBaseAddress + Offset);\r
     fprintf (FvMapFile, "EntryPoint=%08lx)", ImageBaseAddress + AddressOfEntryPoint);\r
   }\r
 \r