Print real entry point for IPF image.
Print DxeCore Entry point and image address. Set FileHandle = NULL when not found FFS file in PeiService PeiFfsFindNextFile. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@4254 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
parent
d28746d23a
commit
e98cd821eb
@ -446,8 +446,25 @@ Returns:
|
|||||||
UINTN Index;
|
UINTN Index;
|
||||||
UINTN StartIndex;
|
UINTN StartIndex;
|
||||||
CHAR8 EfiFileName[256];
|
CHAR8 EfiFileName[256];
|
||||||
|
|
||||||
DEBUG ((EFI_D_INFO | EFI_D_LOAD, "Loading driver at 0x%10p EntryPoint=0x%10p ", (VOID *)(UINTN)Image->ImageContext.ImageAddress, (VOID *)(UINTN)Image->ImageContext.EntryPoint));
|
if (Image->ImageContext.Machine != IMAGE_FILE_MACHINE_IA64) {
|
||||||
|
DEBUG ((EFI_D_INFO | EFI_D_LOAD,
|
||||||
|
"Loading driver at 0x%10p EntryPoint=0x%10p ",
|
||||||
|
(VOID *)(UINTN)Image->ImageContext.ImageAddress,
|
||||||
|
(VOID *)(UINTN)Image->ImageContext.EntryPoint));
|
||||||
|
} else {
|
||||||
|
//
|
||||||
|
// For IPF Image, the real entry point should be print.
|
||||||
|
//
|
||||||
|
DEBUG ((EFI_D_INFO | EFI_D_LOAD,
|
||||||
|
"Loading driver at 0x%10p EntryPoint=0x%10p ",
|
||||||
|
(VOID *)(UINTN)Image->ImageContext.ImageAddress,
|
||||||
|
(VOID *)(UINTN)(*(UINT64 *)(UINTN)Image->ImageContext.EntryPoint)));
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Print Module Name by Pdb file path
|
||||||
|
//
|
||||||
if (Image->ImageContext.PdbPointer != NULL) {
|
if (Image->ImageContext.PdbPointer != NULL) {
|
||||||
StartIndex = 0;
|
StartIndex = 0;
|
||||||
for (Index = 0; Image->ImageContext.PdbPointer[Index] != 0; Index++) {
|
for (Index = 0; Image->ImageContext.PdbPointer[Index] != 0; Index++) {
|
||||||
|
@ -236,11 +236,25 @@ DxeLoadCore (
|
|||||||
EFI_SOFTWARE_PEI_MODULE | EFI_SW_PEI_CORE_PC_HANDOFF_TO_NEXT
|
EFI_SOFTWARE_PEI_MODULE | EFI_SW_PEI_CORE_PC_HANDOFF_TO_NEXT
|
||||||
);
|
);
|
||||||
|
|
||||||
|
DEBUG_CODE_BEGIN ();
|
||||||
|
|
||||||
|
EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION PtrPeImage;
|
||||||
|
PtrPeImage.Pe32 = (EFI_IMAGE_NT_HEADERS32 *) ((UINTN) DxeCoreAddress + ((EFI_IMAGE_DOS_HEADER *) (UINTN) DxeCoreAddress)->e_lfanew);
|
||||||
|
|
||||||
|
if (PtrPeImage.Pe32->FileHeader.Machine != IMAGE_FILE_MACHINE_IA64) {
|
||||||
|
DEBUG ((EFI_D_INFO | EFI_D_LOAD, "Loading DXE CORE at 0x%08x EntryPoint=0x%08x\n", (UINTN) DxeCoreAddress, (UINTN) DxeCoreEntryPoint));
|
||||||
|
} else {
|
||||||
|
//
|
||||||
|
// For IPF Image, the real entry point should be print.
|
||||||
|
//
|
||||||
|
DEBUG ((EFI_D_INFO | EFI_D_LOAD, "Loading DXE CORE at 0x%08x EntryPoint=0x%08x\n", (UINTN) DxeCoreAddress, (UINTN) (*(UINT64 *)(UINTN)DxeCoreEntryPoint)));
|
||||||
|
}
|
||||||
|
|
||||||
|
DEBUG_CODE_END ();
|
||||||
//
|
//
|
||||||
// Transfer control to the DXE Core
|
// Transfer control to the DXE Core
|
||||||
// The handoff state is simply a pointer to the HOB list
|
// The handoff state is simply a pointer to the HOB list
|
||||||
//
|
//
|
||||||
DEBUG ((EFI_D_INFO, "DXE Core Entry Point 0x%08x\n", (UINTN) DxeCoreEntryPoint));
|
|
||||||
HandOffToDxeCore (DxeCoreEntryPoint, HobList, &mPpiSignal);
|
HandOffToDxeCore (DxeCoreEntryPoint, HobList, &mPpiSignal);
|
||||||
//
|
//
|
||||||
// If we get here, then the DXE Core returned. This is an error
|
// If we get here, then the DXE Core returned. This is an error
|
||||||
|
@ -224,10 +224,10 @@ Returns:
|
|||||||
FileOccupiedSize = GET_OCCUPIED_SIZE (FileLength, 8);
|
FileOccupiedSize = GET_OCCUPIED_SIZE (FileLength, 8);
|
||||||
FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)*FileHeader + FileOccupiedSize);
|
FfsFileHeader = (EFI_FFS_FILE_HEADER *)((UINT8 *)*FileHeader + FileOccupiedSize);
|
||||||
}
|
}
|
||||||
|
|
||||||
FileOffset = (UINT32) ((UINT8 *)FfsFileHeader - (UINT8 *)FwVolHeader);
|
FileOffset = (UINT32) ((UINT8 *)FfsFileHeader - (UINT8 *)FwVolHeader);
|
||||||
ASSERT (FileOffset <= 0xFFFFFFFF);
|
ASSERT (FileOffset <= 0xFFFFFFFF);
|
||||||
|
|
||||||
while (FileOffset < (FvLength - sizeof (EFI_FFS_FILE_HEADER))) {
|
while (FileOffset < (FvLength - sizeof (EFI_FFS_FILE_HEADER))) {
|
||||||
//
|
//
|
||||||
// Get FileState which is the highest bit of the State
|
// Get FileState which is the highest bit of the State
|
||||||
@ -244,6 +244,7 @@ Returns:
|
|||||||
case EFI_FILE_MARKED_FOR_UPDATE:
|
case EFI_FILE_MARKED_FOR_UPDATE:
|
||||||
if (CalculateHeaderChecksum (FfsFileHeader) != 0) {
|
if (CalculateHeaderChecksum (FfsFileHeader) != 0) {
|
||||||
ASSERT (FALSE);
|
ASSERT (FALSE);
|
||||||
|
*FileHeader = NULL;
|
||||||
return EFI_NOT_FOUND;
|
return EFI_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -285,11 +286,12 @@ Returns:
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
*FileHeader = NULL;
|
||||||
return EFI_NOT_FOUND;
|
return EFI_NOT_FOUND;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*FileHeader = NULL;
|
||||||
return EFI_NOT_FOUND;
|
return EFI_NOT_FOUND;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -406,16 +406,27 @@ Returns:
|
|||||||
*ImageSizeArg = ImageSize;
|
*ImageSizeArg = ImageSize;
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
|
||||||
// Print debug message: Loading PEIM at 0x12345678 EntryPoint=0x12345688 Driver.efi
|
|
||||||
//
|
|
||||||
DEBUG ((EFI_D_INFO | EFI_D_LOAD, "Loading PEIM at 0x%08x EntryPoint=0x%08x ", (UINTN) ImageAddress, *EntryPoint));
|
|
||||||
DEBUG_CODE_BEGIN ();
|
DEBUG_CODE_BEGIN ();
|
||||||
CHAR8 *AsciiString;
|
CHAR8 *AsciiString;
|
||||||
CHAR8 AsciiBuffer[512];
|
CHAR8 AsciiBuffer[512];
|
||||||
INT32 Index;
|
INT32 Index;
|
||||||
INT32 Index1;
|
INT32 Index1;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Print debug message: Loading PEIM at 0x12345678 EntryPoint=0x12345688 Driver.efi
|
||||||
|
//
|
||||||
|
if (Machine != IMAGE_FILE_MACHINE_IA64) {
|
||||||
|
DEBUG ((EFI_D_INFO | EFI_D_LOAD, "Loading PEIM at 0x%08x EntryPoint=0x%08x ", (UINTN) ImageAddress, *EntryPoint));
|
||||||
|
} else {
|
||||||
|
//
|
||||||
|
// For IPF Image, the real entry point should be print.
|
||||||
|
//
|
||||||
|
DEBUG ((EFI_D_INFO | EFI_D_LOAD, "Loading PEIM at 0x%08x EntryPoint=0x%08x ", (UINTN) ImageAddress, (UINTN) (*(UINT64 *)(UINTN)*EntryPoint)));
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Print Module Name by PeImage PDB file name.
|
||||||
|
//
|
||||||
AsciiString = PeCoffLoaderGetPdbPointer (Pe32Data);
|
AsciiString = PeCoffLoaderGetPdbPointer (Pe32Data);
|
||||||
|
|
||||||
if (AsciiString != NULL) {
|
if (AsciiString != NULL) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user