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?
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?
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).
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.