mirror of https://github.com/acidanthera/audk.git
Remove ASSERT (EFI_IMAGE_MACHINE_TYPE_SUPPORTED (Image->Machine)) in StartImage.
Signed-off-by: lgao4 Reviewed-by: jyao1 rsun3 git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12443 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
0dfef49a30
commit
60c0073fd7
|
@ -77,6 +77,46 @@ LOADED_IMAGE_PRIVATE_DATA mCorePrivateImage = {
|
||||||
//
|
//
|
||||||
GLOBAL_REMOVE_IF_UNREFERENCED UINT64 *mDxeCodeMemoryRangeUsageBitMap=NULL;
|
GLOBAL_REMOVE_IF_UNREFERENCED UINT64 *mDxeCodeMemoryRangeUsageBitMap=NULL;
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
UINT16 MachineType;
|
||||||
|
CHAR16 *MachineTypeName;
|
||||||
|
} MACHINE_TYPE_INFO;
|
||||||
|
|
||||||
|
//
|
||||||
|
// EBC machine is not listed in this table, because EBC is in the default supported scopes of other machine type.
|
||||||
|
//
|
||||||
|
GLOBAL_REMOVE_IF_UNREFERENCED MACHINE_TYPE_INFO mMachineTypeInfo[] = {
|
||||||
|
{EFI_IMAGE_MACHINE_IA32, L"IA32"},
|
||||||
|
{EFI_IMAGE_MACHINE_IA64, L"IA64"},
|
||||||
|
{EFI_IMAGE_MACHINE_X64, L"X64"},
|
||||||
|
{EFI_IMAGE_MACHINE_ARMTHUMB_MIXED, L"ARM"}
|
||||||
|
};
|
||||||
|
|
||||||
|
UINT16 mDxeCoreImageMachineType = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Return machine type name.
|
||||||
|
|
||||||
|
@param MachineType The machine type
|
||||||
|
|
||||||
|
@return machine type name
|
||||||
|
**/
|
||||||
|
CHAR16 *
|
||||||
|
GetMachineTypeName (
|
||||||
|
UINT16 MachineType
|
||||||
|
)
|
||||||
|
{
|
||||||
|
UINTN Index;
|
||||||
|
|
||||||
|
for (Index = 0; Index < sizeof(mMachineTypeInfo)/sizeof(mMachineTypeInfo[0]); Index++) {
|
||||||
|
if (mMachineTypeInfo[Index].MachineType == MachineType) {
|
||||||
|
return mMachineTypeInfo[Index].MachineTypeName;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return L"<Unknown>";
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Add the Image Services to EFI Boot Services Table and install the protocol
|
Add the Image Services to EFI Boot Services Table and install the protocol
|
||||||
interfaces for this image.
|
interfaces for this image.
|
||||||
|
@ -147,6 +187,7 @@ CoreInitializeImageServices (
|
||||||
//
|
//
|
||||||
// Fill in DXE globals
|
// Fill in DXE globals
|
||||||
//
|
//
|
||||||
|
mDxeCoreImageMachineType = PeCoffLoaderGetMachineType (Image->Info.ImageBase);
|
||||||
gDxeCoreImageHandle = Image->Handle;
|
gDxeCoreImageHandle = Image->Handle;
|
||||||
gDxeCoreLoadedImage = &Image->Info;
|
gDxeCoreLoadedImage = &Image->Info;
|
||||||
|
|
||||||
|
@ -426,6 +467,7 @@ CoreLoadPeImage (
|
||||||
// The PE/COFF loader can support loading image types that can be executed.
|
// The PE/COFF loader can support loading image types that can be executed.
|
||||||
// If we loaded an image type that we can not execute return EFI_UNSUPORTED.
|
// If we loaded an image type that we can not execute return EFI_UNSUPORTED.
|
||||||
//
|
//
|
||||||
|
DEBUG ((EFI_D_ERROR, "Image type %s can't be loaded on %s UEFI system.\n", GetMachineTypeName(Image->ImageContext.Machine), GetMachineTypeName(mDxeCoreImageMachineType)));
|
||||||
return EFI_UNSUPPORTED;
|
return EFI_UNSUPPORTED;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1436,8 +1478,12 @@ CoreStartImage (
|
||||||
//
|
//
|
||||||
// The image to be started must have the machine type supported by DxeCore.
|
// The image to be started must have the machine type supported by DxeCore.
|
||||||
//
|
//
|
||||||
ASSERT (EFI_IMAGE_MACHINE_TYPE_SUPPORTED (Image->Machine));
|
|
||||||
if (!EFI_IMAGE_MACHINE_TYPE_SUPPORTED (Image->Machine)) {
|
if (!EFI_IMAGE_MACHINE_TYPE_SUPPORTED (Image->Machine)) {
|
||||||
|
//
|
||||||
|
// Do not ASSERT here, because image might be loaded via EFI_IMAGE_MACHINE_CROSS_TYPE_SUPPORTED
|
||||||
|
// But it can not be started.
|
||||||
|
//
|
||||||
|
DEBUG ((EFI_D_ERROR, "Image type %s can't be started on %s UEFI system.\n", GetMachineTypeName(Image->Machine), GetMachineTypeName(mDxeCoreImageMachineType)));
|
||||||
return EFI_UNSUPPORTED;
|
return EFI_UNSUPPORTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue