IA32 Peim module cannot provide x64bit C interrupt handler. That’s why DxeIplPeim does not support this dump feature.
However, DXE Core will link CPU Exception Handler Lib(in UefiCpuPkg) to support dump registers from beginning of long mode. Please search InitializeCpuExceptionHandlers() in DxeMain.c. From: [email protected] [mailto:[email protected]] Sent: Thursday, October 30, 2014 11:38 AM To: [email protected] Subject: Re: [edk2] question about InitInterruptDescriptorTable()function in CpuDxe.c Hi, Jeff: MdeModulePkg\Core\DxeIplPeim\Ia32\DxeLoadFunc.c will create IDT before handoff to Dxe. The first 32 IDT entries’ interrupt handler is very simple(ref to Ia32\IdtVectorAsm.asm): cli jmp $ So, why not hook a dump register function for these 32 reserved IDT entries? Such as : CommonExceptionHandler() function in UefiCpuPkg\CpuDxe\CpuDxe.c will dump many common registers. Best wishes, From: Fan, Jeff [mailto:[email protected]] Sent: 2014年10月30日 11:20 To: [email protected]<mailto:[email protected]> Subject: Re: [edk2] question about InitInterruptDescriptorTable()function in CpuDxe.c The original IDT entries from 0 to OldIdtSize still work to capture all exceptions. And, it also does not impact CpuArch->CpuRegisterInterrupt() to register new Interrupt Handlers from vector 0 to vector 0xff. From: [email protected]<mailto:[email protected]> [mailto:[email protected]] Sent: Thursday, October 30, 2014 11:10 AM To: [email protected]<mailto:[email protected]> Subject: Re: [edk2] question about InitInterruptDescriptorTable() function in CpuDxe.c Hi, Andrew: Thanks for your reply! So, I made a conclusion: If OldIdtSize > = 32, even below code not run, it’s aslo ok? // for (Index = OldIdtSize; Index < 32; Index++) { Status = CpuRegisterInterruptHandler (&gCpu, Index, CommonExceptionHandler); ASSERT_EFI_ERROR (Status); } Best wishes,
------------------------------------------------------------------------------
_______________________________________________ edk2-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/edk2-devel
