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

Reply via email to