How can I debug an unresponsive P4080 core?

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How can I debug an unresponsive P4080 core?

830 Views
JBatty
Contributor I

I'm running VxWorks SMP on a P4080 and  have a situation where core 0 becomes unresponsive and is not processing interrupts.  The other cores are still running.

The problem is occuring at a customer site and we do not yet have a good repro, so a hardware debugger is not really an option.

I therefore want to try and dump the register state of core 0 from one of the other cores on the chip.  The P4080 Ref Manual 27.9.7 "Debugging Device when Not Responding" says that this is possible, but does not say how.  Can anyone point me at a manual or registers that describe how I can implement this function?

Labels (1)
0 Kudos
4 Replies

516 Views
scottwood
NXP Employee
NXP Employee

That section of the manual is referring to the use of an external debugger.

Have you tried sending a critical interrupt or NMI to the hung core?  Have you ensured that all relevant errata are worked around?

0 Kudos

516 Views
JBatty
Contributor I

Hi Scott

Thanks for your response.

The main issue at the moment it that the problem only repros on a live customer system which makes it almost impossible to do manual/interactive investigations, or use an external debugger.  I'm therefore looking for a way to add diagnostics to our firmware to dump information about the core state when we detect the hang has occurred.

I have looked through the errata and have not seen any that seem to be relevant in this situation.  I think it is far more likely that the problem is due to a software bug/overwrite than a P4080 hardware bug.

I am therefore currently looking further into the extensive P4080 debug and trace capabilities and will effectively try to implement a limited function debugger that can run on one of the other cores and extract state information at the point of the hang (plus possibly get instruction trace leading up to the hang).

John

0 Kudos

516 Views
scottwood
NXP Employee
NXP Employee

I suggest having the debugging core send an NMI or critical doorbell to the hung core, allowing the hung core to dump its state.

516 Views
JBatty
Contributor I

Thanks Scott - I'll look into that as an option.  Looks like triggering an NMI on another core is straightforward using the P4080 PNMIR register.  I just have to work out how I can hook this to dump diagnostics.

I'm making some progress in getting P4080 diagnostics (counters, trace) configured, so have a couple of options to progress...

Thanks for your help.

John

0 Kudos