summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524>2010-07-07 23:10:14 +0000
committerandrewfish <andrewfish@6f19259b-4bc3-4df7-8a09-765794883524>2010-07-07 23:10:14 +0000
commit27172c0f366fd159ea5789e4e85454d160f37447 (patch)
tree8edf595113715b8b5f8f22e233654799cd2b069d
parent4546bcbb3ab9e94a7dd2c225e3d1a4e0ab032e70 (diff)
downloadedk2-27172c0f366fd159ea5789e4e85454d160f37447.zip
edk2-27172c0f366fd159ea5789e4e85454d160f37447.tar.gz
edk2-27172c0f366fd159ea5789e4e85454d160f37447.tar.bz2
Fix issue with ARM port. Image.c shadow code is not ANSI C and crashes on ARM. So I did the same thing that is done on Itanium and skipped the shadow for ARM architecture in all cases.
git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10636 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r--MdeModulePkg/Core/Pei/Image/Image.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/MdeModulePkg/Core/Pei/Image/Image.c b/MdeModulePkg/Core/Pei/Image/Image.c
index 5b2a6d0..0130d77 100644
--- a/MdeModulePkg/Core/Pei/Image/Image.c
+++ b/MdeModulePkg/Core/Pei/Image/Image.c
@@ -117,7 +117,12 @@ GetImageReadFunction (
Private = PEI_CORE_INSTANCE_FROM_PS_THIS (GetPeiServicesTablePointer ());
- if (!Private->PeiMemoryInstalled || (Private->HobList.HandoffInformationTable->BootMode == BOOT_ON_S3_RESUME) || EFI_IMAGE_MACHINE_TYPE_SUPPORTED(EFI_IMAGE_MACHINE_IA64)) {
+ if (!Private->PeiMemoryInstalled || (Private->HobList.HandoffInformationTable->BootMode == BOOT_ON_S3_RESUME) ||
+ EFI_IMAGE_MACHINE_TYPE_SUPPORTED(EFI_IMAGE_MACHINE_IA64) || EFI_IMAGE_MACHINE_TYPE_SUPPORTED(EFI_IMAGE_MACHINE_ARMTHUMB_MIXED)) {
+ //
+ // Point to ROM version if memory is not installed, we are in an S3.
+ // The shadow code is not ANSI C so skip on IA64 and ARM architectures.
+ //
ImageContext->ImageRead = PeiImageRead;
} else {
if (Private->ShadowedImageRead == NULL) {