Fix alignment requirement when Load IPF TeImage into memory.
authorlgao4 <lgao4@de2fecce-e211-0410-80a6-f3fac2684e05>
Mon, 22 Oct 2007 10:41:03 +0000 (10:41 +0000)
committerlgao4 <lgao4@de2fecce-e211-0410-80a6-f3fac2684e05>
Mon, 22 Oct 2007 10:41:03 +0000 (10:41 +0000)
git-svn-id: https://edk2.tianocore.org/svn/edk2/trunk@4197 de2fecce-e211-0410-80a6-f3fac2684e05

edk2/MdeModulePkg/Core/DxeIplPeim/DxeLoad.c
edk2/MdeModulePkg/Core/Pei/Image/Image.c

index 84b8eb2..e62142f 100644 (file)
@@ -482,6 +482,15 @@ PeiLoadFile (
   ImageContext.ImageAddress = (EFI_PHYSICAL_ADDRESS)(UINTN) AllocatePages (EFI_SIZE_TO_PAGES ((UINT32) ImageContext.ImageSize));\r
   ASSERT (ImageContext.ImageAddress != 0);\r
 \r
+  //\r
+  // Skip the reserved space for the stripped PeHeader when load TeImage into memory.\r
+  //\r
+  if (ImageContext.IsTeImage) {\r
+    ImageContext.ImageAddress = ImageContext.ImageAddress + \r
+                                ((EFI_TE_IMAGE_HEADER *) Pe32Data)->StrippedSize -\r
+                                sizeof (EFI_TE_IMAGE_HEADER);\r
+  }\r
+\r
   //\r
   // Load the image to our new buffer\r
   //\r
index c13a869..c9805f5 100644 (file)
@@ -242,6 +242,15 @@ Returns:
   //\r
   ImageContext.ImageAddress = (EFI_PHYSICAL_ADDRESS)(UINTN) AllocatePages (EFI_SIZE_TO_PAGES ((UINT32) ImageContext.ImageSize));\r
   ASSERT (ImageContext.ImageAddress != 0);\r
+  \r
+  //\r
+  // Skip the reserved space for the stripped PeHeader when load TeImage into memory.\r
+  //\r
+  if (ImageContext.IsTeImage) {\r
+    ImageContext.ImageAddress = ImageContext.ImageAddress + \r
+                                ((EFI_TE_IMAGE_HEADER *) Pe32Data)->StrippedSize -\r
+                                sizeof (EFI_TE_IMAGE_HEADER);\r
+  }\r
 \r
   //\r
   // Load the image to our new buffer\r