Hi all,
I was wondering someone knows about a ARM DCC (debug communications channel) device driver.
The idea is to run gdbserver on /dev/dcc such that application debugging does not hog a serial/ethernet port.
I'd modify OpenOCD to forward the DCC onto a TCP/IP port to connect GDB to the gdbserver.
Hi Øyvind. You might want to ask the OpenOCD list about this. I've used the DCC as an end user before for sending printf() style messages and RPC over and it's quite good for that.
I'm not sure how your proposal would work though. My understanding is that the DCC is only accessible over JTAG and, if you already have a JTAG connection, then you might as well use that to debug.
-- Michael
On Wed, Oct 6, 2010 at 7:33 PM, Øyvind Harboe oyvind.harboe@zylin.com wrote:
Hi all,
I was wondering someone knows about a ARM DCC (debug communications channel) device driver.
The idea is to run gdbserver on /dev/dcc such that application debugging does not hog a serial/ethernet port.
I'd modify OpenOCD to forward the DCC onto a TCP/IP port to connect GDB to the gdbserver.
-- Øyvind Harboe US toll free 1-866-980-3434 / International +47 51 63 25 00 http://www.zylin.com/zy1000.html ARM7 ARM9 ARM11 XScale Cortex JTAG debugger and flash programmer
linaro-toolchain mailing list linaro-toolchain@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-toolchain
On Mon, Oct 11, 2010 at 12:36 AM, Michael Hope michael.hope@linaro.org wrote:
Hi Øyvind. You might want to ask the OpenOCD list about this. I've used the DCC as an end user before for sending printf() style messages and RPC over and it's quite good for that.
I did, no response. (I'm also one of the main OpenOCD maintainers :-)
I'm not sure how your proposal would work though. My understanding is that the DCC is only accessible over JTAG and, if you already have a JTAG connection, then you might as well use that to debug.
OpenOCD / JTAG is not great for application debugging.
What I envisage is to use gdbserver for application debugging and JTAG for kernel debugging. gdbserver would talk over JTAG DCC serial port and kernel debugging would happen via normal JTAG debugging.
In "normal" JTAG debugging mode the CPU is halted.
Here are some commercial implementations of kernel + application debugging:
www.arium.com/pdf/CompleteLinuxDebugging.pdf
(This one is in German, but with a bit of googling, you'll find an English one of the same PDF).
http://www.lauterbach.com/publications/integriertes_run_und_stop_mode_debugg...
On Mon, Oct 11, 2010 at 8:06 PM, Øyvind Harboe oyvind.harboe@zylin.com wrote:
On Mon, Oct 11, 2010 at 12:36 AM, Michael Hope michael.hope@linaro.org wrote:
Hi Øyvind. You might want to ask the OpenOCD list about this. I've used the DCC as an end user before for sending printf() style messages and RPC over and it's quite good for that.
I did, no response. (I'm also one of the main OpenOCD maintainers :-)
Heh. I spotted the @zylin address but didn't twig past that.
I'm not sure how your proposal would work though. My understanding is that the DCC is only accessible over JTAG and, if you already have a JTAG connection, then you might as well use that to debug.
OpenOCD / JTAG is not great for application debugging.
What I envisage is to use gdbserver for application debugging and JTAG for kernel debugging. gdbserver would talk over JTAG DCC serial port and kernel debugging would happen via normal JTAG debugging.
In "normal" JTAG debugging mode the CPU is halted.
Here are some commercial implementations of kernel + application debugging:
www.arium.com/pdf/CompleteLinuxDebugging.pdf
Ah, I see. You use the JTAG unit and on-chip debug hardware for the kernel and use the JTAG-supplied DCC connection for applications. So you can use the DCC instead of Ethernet or serial, which is nice as it frees up a port.
You might want to ask linaro-dev@lists about this and see if any of the kernel guys know about kernel support. A quick poke about shows that you can send the kernel's printf() style debug messages through it but little else.
-- Michael
On Tue, 12 Oct 2010, Michael Hope wrote:
Ah, I see. You use the JTAG unit and on-chip debug hardware for the kernel and use the JTAG-supplied DCC connection for applications. So you can use the DCC instead of Ethernet or serial, which is nice as it frees up a port.
You might want to ask linaro-dev@lists about this and see if any of the kernel guys know about kernel support. A quick poke about shows that you can send the kernel's printf() style debug messages through it but little else.
Some patches were posted by Daniel Walker recently to expose the DCC as a true Linux serial port, and not only a debug channel for early printk's as it is right now.
Nicolas
On Tue, Oct 12, 2010 at 4:29 AM, Nicolas Pitre nicolas.pitre@linaro.org wrote:
On Tue, 12 Oct 2010, Michael Hope wrote:
Ah, I see. You use the JTAG unit and on-chip debug hardware for the kernel and use the JTAG-supplied DCC connection for applications. So you can use the DCC instead of Ethernet or serial, which is nice as it frees up a port.
You might want to ask linaro-dev@lists about this and see if any of the kernel guys know about kernel support. A quick poke about shows that you can send the kernel's printf() style debug messages through it but little else.
Some patches were posted by Daniel Walker recently to expose the DCC as a true Linux serial port, and not only a debug channel for early printk's as it is right now.
That patch (and your comments on it) was posted a day or two after I posted a question to this list whether such a driver existed :-)
-- Øyvind Harboe US toll free 1-866-980-3434 / International +47 51 63 25 00 http://www.zylin.com/zy1000.html ARM7 ARM9 ARM11 XScale Cortex JTAG debugger and flash programmer
linaro-toolchain@lists.linaro.org