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] 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]] Sent: Thursday, October 30, 2014 11:10 AM To: [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
