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

Reply via email to