Update DxeCore to set efi memory type for the different image to be loaded.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@3977 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
lgao4 2007-09-29 03:16:49 +00:00
parent c62a593c90
commit a0ae8996bc
2 changed files with 37 additions and 16 deletions

View File

@ -39,7 +39,21 @@ EDK_0000: Compatible: owner
########################################################################################## ##########################################################################################
========================================================================================== ==========================================================================================
EDK_39331: Non-Compatible: klu2 EDK_3967: Non-Compatible: lgao4
Class_Library: Remove PeCoffLoader library class and its instances.
Code Change :
1) Remove MdeModulePkg/Include/Library/PeCoffLoaderLib.h
2) Remove MdeModulePkg/Library/DxePeCoffLoaderFromHobLib and PeiDxePeCoffLoaderLib instance
3) Modify PeiCore, DxeIpl and DxeCore to use PeCoffLib in place of PeCoffLoaderLib.
Possible Impacts:
1) All modules don't use PeCoffloader library class any longer to load PeImage.
If necessary, they should use PeCoffLib of MdePkg to load PeImage.
==========================================================================================
EDK_3931: Non-Compatible: klu2
Class_PIEnable[5]: New library class for S3Resume and Recovery for DxeIpl PEIM. Class_PIEnable[5]: New library class for S3Resume and Recovery for DxeIpl PEIM.
@ -147,17 +161,3 @@ EDK_3773: Non-Compatible: qwang12
3) The gEfiFirmwareVolumeProtocolGuid in [Depex] section of INF file should updated. 3) The gEfiFirmwareVolumeProtocolGuid in [Depex] section of INF file should updated.
And the package dependency should also be changed if needed due to this protocol And the package dependency should also be changed if needed due to this protocol
GUID change. GUID change.
==========================================================================================
EDK_3967: Non-Compatible: lgao4
Class_Library: Remove PeCoffLoader library class and its instances.
Code Change :
1) Remove MdeModulePkg/Include/Library/PeCoffLoaderLib.h
2) Remove MdeModulePkg/Library/DxePeCoffLoaderFromHobLib and PeiDxePeCoffLoaderLib instance
3) Modify PeiCore, DxeIpl and DxeCore to use PeCoffLib in place of PeCoffLoaderLib.
Possible Impacts:
1) All modules don't use PeCoffloader library class any longer to load PeImage.
If necessary, they should use PeCoffLib of MdePkg to load PeImage.

View File

@ -225,7 +225,28 @@ Returns:
// //
return EFI_UNSUPPORTED; return EFI_UNSUPPORTED;
} }
//
// Set EFI memory type based on ImageType
//
switch (Image->ImageContext.ImageType) {
case EFI_IMAGE_SUBSYSTEM_EFI_APPLICATION:
Image->ImageContext.ImageCodeMemoryType = EfiLoaderCode;
Image->ImageContext.ImageDataMemoryType = EfiLoaderData;
break;
case EFI_IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER:
Image->ImageContext.ImageCodeMemoryType = EfiBootServicesCode;
Image->ImageContext.ImageDataMemoryType = EfiBootServicesData;
break;
case EFI_IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER:
case EFI_IMAGE_SUBSYSTEM_SAL_RUNTIME_DRIVER:
Image->ImageContext.ImageCodeMemoryType = EfiRuntimeServicesCode;
Image->ImageContext.ImageDataMemoryType = EfiRuntimeServicesData;
break;
default:
Image->ImageContext.ImageError = IMAGE_ERROR_INVALID_SUBSYSTEM;
return EFI_UNSUPPORTED;
}
// //
// Allocate memory of the correct memory type aligned on the required image boundry // Allocate memory of the correct memory type aligned on the required image boundry