This is a rather a low-level question about the XDS110 debugger in the newer CC13XX and CC26XX launchpads. It's not about CSS, but I couldn't find a better subgroup under "Development Tools" to post it.
I would like to flash / debug the launchpads using OpenOCD. This is currently not possible because the CMSIS-DAP driver in OpenOCD is SWD only. Unfortunately, CC13XX and CC26XX only support JTAG and cJTAG.
I would like to understand the interaction between XDS110 and cJTAG enough to add support for the new launchpads to OpenOCD (or perhaps help someone else do it). As a start, I am trying to execute simple USB commands relying on ARM's CMSIS-DAP documentation: https://www.keil.com/pack/doc/CMSIS/DAP/html/group___d_a_p___commands__gr.html
1) Executing DAP_Connect (0x02 0x02) works as expected -- the debugger acknowledges a JTAG connection. However, the only documented connection types are SWD and JTAG. Is there a special magic value to request a cJTAG connection? I tried 0x03 as a guess, but that didn't work.
2) After establishing a connection to the debugger, the DAP_Info command works as expected. I am able to fetch the firmware version of the debugger, packet size, and other similar attributes.
3) My understanding is that next I need to configure the JTAG chain using DAP_JTAG_Configure. Here I send (0x15 0x02 0x04 0x06) to set the IR length of the ICEPick unit to 4 and the IR length of the Cortex M3 target to 6. I am not sure if this chaining is valid for cJTAG.
4) Next I try to fetch the IDCODEs via DAP_JTAG_IDCODE (0x16 0x1) or (0x16 0x0), which fails (returns 0xff in the status byte). Reading registers via DAP_Transfer also fails.
I guess I am unsuccessful because XDS110 is trying to talk to the ARM chip using JTAG, and the ARM chip is configured for cJTAG by default. I know there is a sequence to switch from cJTAG to JTAG, but I would rather use cJTAG if possible, as it requires fewer signal lines.
Am I missing something simple? What minimal sequence of CMSIS-DAP commands will allow me to read IDCODE via cJTAG? Are there extensions to CMSIS-DAP needed to accommodate cJTAG, and if so, are they documented anywhere?
I did look at USB packets sent from TI's tools (such as Uniflash) to the launchpads, but they didn't make much sense. Most commands started with 0x2a if I remember correctly. Perhaps these are vendor-specific CMSIS-DAP commands?