]> git.proxmox.com Git - mirror_edk2.git/commitdiff
Update the previous fix to only shadow the function for supported processor architect...
authorandrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 7 Jul 2010 23:27:08 +0000 (23:27 +0000)
committerandrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524>
Wed, 7 Jul 2010 23:27:08 +0000 (23:27 +0000)
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10637 6f19259b-4bc3-4df7-8a09-765794883524

MdeModulePkg/Core/Pei/Image/Image.c

index 0130d7734200c4483de7020f3737992757964460..0906548edecef3effe3388d699bfc2b44179007f 100644 (file)
@@ -116,15 +116,13 @@ GetImageReadFunction (
   VOID*  MemoryBuffer;\r
 \r
   Private = PEI_CORE_INSTANCE_FROM_PS_THIS (GetPeiServicesTablePointer ());\r
-\r
-  if (!Private->PeiMemoryInstalled || (Private->HobList.HandoffInformationTable->BootMode == BOOT_ON_S3_RESUME) || \r
-      EFI_IMAGE_MACHINE_TYPE_SUPPORTED(EFI_IMAGE_MACHINE_IA64) || EFI_IMAGE_MACHINE_TYPE_SUPPORTED(EFI_IMAGE_MACHINE_ARMTHUMB_MIXED)) {\r
-    //\r
-    // Point to ROM version if memory is not installed, we are in an S3.\r
-    // The shadow code is not ANSI C so skip on IA64 and ARM architectures. \r
+  \r
+  if ((Private->PeiMemoryInstalled  && !(Private->HobList.HandoffInformationTable->BootMode == BOOT_ON_S3_RESUME))  &&\r
+      (EFI_IMAGE_MACHINE_TYPE_SUPPORTED(EFI_IMAGE_MACHINE_X64) || EFI_IMAGE_MACHINE_TYPE_SUPPORTED(EFI_IMAGE_MACHINE_IA32))) {\r
+    // \r
+    // Shadow algorithm makes lots of non ANSI C assumptions and only works for IA32 and X64 \r
+    //  compilers that have been tested\r
     //\r
-    ImageContext->ImageRead = PeiImageRead;\r
-  } else {\r
     if (Private->ShadowedImageRead == NULL) {\r
       MemoryBuffer = AllocatePages (0x400 / EFI_PAGE_SIZE + 1);\r
       ASSERT (MemoryBuffer != NULL);\r
@@ -133,6 +131,8 @@ GetImageReadFunction (
     }\r
 \r
     ImageContext->ImageRead = Private->ShadowedImageRead;\r
+  } else {\r
+    ImageContext->ImageRead = PeiImageRead;\r
   }\r
 \r
   return EFI_SUCCESS;\r