From d0d41b52e06296fc148470f18eb6aaddfef36bdc Mon Sep 17 00:00:00 2001 From: mdkinney Date: Fri, 6 Aug 2010 23:09:49 +0000 Subject: Move registration of DXE Core with PeCoffExtraActionLib after the lib constructors have been executed. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10778 6f19259b-4bc3-4df7-8a09-765794883524 --- MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c | 14 +++++++++++--- MdeModulePkg/Core/Dxe/Image/Image.c | 18 +++++------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c b/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c index b18f92d..3dfabd8 100644 --- a/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c +++ b/MdeModulePkg/Core/Dxe/DxeMain/DxeMain.c @@ -237,9 +237,10 @@ DxeMain ( IN VOID *HobStart ) { - EFI_STATUS Status; - EFI_PHYSICAL_ADDRESS MemoryBaseAddress; - UINT64 MemoryLength; + EFI_STATUS Status; + EFI_PHYSICAL_ADDRESS MemoryBaseAddress; + UINT64 MemoryLength; + PE_COFF_LOADER_IMAGE_CONTEXT ImageContext; // // Initialize Debug Agent to support source level debug in DXE phase @@ -277,6 +278,13 @@ DxeMain ( PERF_START (NULL,"DXE", NULL, 0) ; // + // Report DXE Core image information to the PE/COFF Extra Action Library + // + ImageContext.ImageAddress = (EFI_PHYSICAL_ADDRESS)(UINTN)gDxeCoreLoadedImage->ImageBase; + ImageContext.PdbPointer = PeCoffLoaderGetPdbPointer ((VOID*) (UINTN) ImageContext.ImageAddress); + PeCoffLoaderRelocateImageExtraAction (&ImageContext); + + // // Initialize the Global Coherency Domain Services // Status = CoreInitializeGcdServices (&HobStart, MemoryBaseAddress, MemoryLength); diff --git a/MdeModulePkg/Core/Dxe/Image/Image.c b/MdeModulePkg/Core/Dxe/Image/Image.c index eadcae4..2ffd6af 100644 --- a/MdeModulePkg/Core/Dxe/Image/Image.c +++ b/MdeModulePkg/Core/Dxe/Image/Image.c @@ -97,7 +97,6 @@ CoreInitializeImageServices ( UINT64 DxeCoreImageLength; VOID *DxeCoreEntryPoint; EFI_PEI_HOB_POINTERS DxeCoreHob; - PE_COFF_LOADER_IMAGE_CONTEXT ImageContext; // // Searching for image hob @@ -120,13 +119,6 @@ CoreInitializeImageServices ( gDxeCoreFileName = &DxeCoreHob.MemoryAllocationModule->ModuleName; // - // Report DXE Core image information to the PE/COFF Extra Action Library - // - ImageContext.ImageAddress = (EFI_PHYSICAL_ADDRESS)(UINTN)DxeCoreImageBaseAddress; - ImageContext.PdbPointer = PeCoffLoaderGetPdbPointer ((VOID*) (UINTN) ImageContext.ImageAddress); - PeCoffLoaderRelocateImageExtraAction (&ImageContext); - - // // Initialize the fields for an internal driver // Image = &mCorePrivateImage; @@ -163,11 +155,11 @@ CoreInitializeImageServices ( // Export DXE Core PE Loader functionality for backward compatibility. // Status = CoreInstallProtocolInterface ( - &mLoadPe32PrivateData.Handle, - &gEfiLoadPeImageProtocolGuid, - EFI_NATIVE_INTERFACE, - &mLoadPe32PrivateData.Pe32Image - ); + &mLoadPe32PrivateData.Handle, + &gEfiLoadPeImageProtocolGuid, + EFI_NATIVE_INTERFACE, + &mLoadPe32PrivateData.Pe32Image + ); } return Status; -- cgit v1.1