Hello everyone,
I am in the process of adding debugging support to one of my employer's
DSP. I came across OpenOCD and figured it would be a nice way of
interfacing the hardware with GDB, given the existing support of many
JTAG adapters.
The focus of my company is multi-core designs, which means the debugging
solution I come up with will need to be relatively scalable.
To do so, I envisioned an ICEpick like architecture (over IEEE 1149.1)
that would support adding and removing TAP controller at runtime. Thus
shortening the lengths of the chain and increasing the performance when
debugging dozens of cores.
My concern is not so much regarding the hardware implementation
(although I am definitely still open to suggestions), but with OpenOCD's
support of multicore systems.
1- Currently, multiple CPUs are connected to the GDB clients via
multiple GDB servers and not via GDB threads. Is the addition of a
threaded GDB server planned in any roadmap ?
2- I read in the documentation that "In OpenOCD, tap enabling/disabling
is invoked by the Tcl commands shown below, and is implemented using TAP
event handlers."
I first thought I would be able to :
- Connect N gdb clients to OpenOCD.
- Wait for a request from a gdb client.
- Then add the relevant TAP to the JTAG chain, perform the requested
operation and remove the TAP from the chain.
I assume this needs to be implemented within the target C files of
OpenOCD. However, I am under the impression that the target layer is
only aware of the existence of its own TAP controller. Which means no
direct access to the Master TAP, and therefore no ability to add/remove
TAPs. Is that correct ? If so, could you suggest a way of supporting
this behavior with OpenOCD ?
Thanks in advance,
Sébastien.
_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development