Reviewed-by: Yonghong Zhu <[email protected]> 

Best Regards,
Zhu Yonghong


-----Original Message-----
From: edk2-devel [mailto:[email protected]] On Behalf Of Liming 
Gao
Sent: Monday, February 26, 2018 1:52 PM
To: [email protected]
Subject: [edk2] [Patch] BaseTools: Update GenFw to correct DebugEntry Offset 
when convert XIP image

DebugEntry FileOffset is required to be updated to the virtual address if the 
input image is converted to XIP image.

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Liming Gao <[email protected]>
---
 BaseTools/Source/C/GenFw/GenFw.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/BaseTools/Source/C/GenFw/GenFw.c b/BaseTools/Source/C/GenFw/GenFw.c
index 33ba917..00c9ff3 100644
--- a/BaseTools/Source/C/GenFw/GenFw.c
+++ b/BaseTools/Source/C/GenFw/GenFw.c
@@ -92,6 +92,7 @@ CHAR8  *mInImageName;
 UINT32 mImageTimeStamp = 0;
 UINT32 mImageSize = 0;
 UINT32 mOutImageType = FW_DUMMY_IMAGE;
+BOOLEAN mIsConvertXip = FALSE;
 
 
 STATIC
@@ -665,6 +666,8 @@ PeCoffConvertImageToXip (
   free (*FileBuffer);
   *FileLength = XipLength;
   *FileBuffer = XipFile;
+
+  mIsConvertXip = TRUE;
 }
 
 UINT8 *
@@ -2897,6 +2900,9 @@ Returns:
     Index = 0;
     for (Index=0; Index < DebugDirectoryEntrySize / sizeof 
(EFI_IMAGE_DEBUG_DIRECTORY_ENTRY); Index ++, DebugEntry ++) {
       DebugEntry->TimeDateStamp = 0;
+      if (mIsConvertXip) {
+        DebugEntry->FileOffset = DebugEntry->RVA;
+      }
       if (ZeroDebugFlag || DebugEntry->Type != EFI_IMAGE_DEBUG_TYPE_CODEVIEW) {
         memset (FileBuffer + DebugEntry->FileOffset, 0, 
DebugEntry->SizeOfData);
         memset (DebugEntry, 0, sizeof (EFI_IMAGE_DEBUG_DIRECTORY_ENTRY));
--
2.8.0.windows.1

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to