Vladimir,

> Loading driver at 0x000BBE23000 EntryPoint=0x000BBE23280
> ArmTimerDxe.efi

This is the point where the Timer driver will register with the interrupt 
controller driver and enable timer tick interrupts so the first IRQ interrupt 
will fire shortly thereafter.

> JTAG debug shows that the CPU is looping in IrqSpx:
> EL2:0x0000000085008A80 : B        IrqSPx ; 0x85008A80

This instruction does not correspond to the new exception handling code 
(ArmExceptionLib).  Based on my searching the only place I see a construct like 
this is in DebugAgentException.S (ArmPkg\Library\DebugAgentSymbolsBaseLib).

I haven't used this library but understand that it (the library class, at 
least) intended to assist with source level debugging (GDB agent over serial 
port or equivalent).  This particular instance doesn't actually appear to be a 
debug agent nor does it implement the SaveAndSetDebugTimerInterrupt.   This 
instance is installing exception handlers that just spin but now that's 
overlapping with the responsibilities of CpuExceptionHandlerLib (and the 
DefaultExceptionHandlerLib which provides more useful output than a spinloop).  
We don't want yet another copy of exception handlers floating around (which is 
the whole point behind ArmExceptionLib), instead we need to find a way to make 
them work together or at least rip out the exception vector init from this 
driver.

Regardless, when CpuDxe initializes exceptions it should be taking over 
exception vectors including the IRQ handler.  Since I don't have a platform to 
test this with at the moment, can you help debug it by stepping through  
InitializeExceptions in CpuDxe and see what is happening with regard to the 
exception table (VBAR programming, and the contents at that address)?

Also please help me duplicate your setup - can you confirm which libraries you 
are using (are you using the ArmPkg DebugAgentSymbolsBaseLib?) and which 
components (SEC or otherwise) are using it?

Thanks,

Eugene


_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to