Modding OpenODC for the Embest EasyICE-I JTAG

I have an EasyICE-I, a wiggler type JTAG cable from Embest. I’m having trouble getting it to work with OpenOCD. It’s schematic is like a wiggler cable, with the following exceptions:

  • Neither of the two RST lines are connected to the parallel port.

  • The SRST line on the JTAG port is pulled to ground.

So I modified src/jtag/parport.c as follows:

102a103

{ “easyice”, 0x80, 0x00, 0x02, 0x04, 0x08, 0x00, 0x00, 0x80, 0x00 },

Then I used ‘easyice’ for the parport_cable configuration directive.

The JTAG cable is verified good using other software, but it won’t work with OpenOCD even with the modifications that I made. Is there anything else in the source code that needs to be changed to make this work?

Hello xxx,

  • Neither of the two RST lines are connected to the parallel port.
  • The SRST line on the JTAG port is pulled to ground.

If the SRST line is connected to the target and pulled to ground,

the target is permanent in reset. This could be your problem.

Regards,

Michael

You’re absolutely right! I wasn’t handling the SRST line correctly. I misread the schematics. The EasyICE indirectly controls SRST via a chip enable line on the 74244 buffer.

However, it turns out that wasn’t my problem. I also missed another chip enable line controlled by the parallel port. The lack of control on that chip enable line meant that none of the data signals were getting through the buffer.

EasyICE puts both of these chip enable lines on the control port (base + 2). SRST is on pin 14 (control 0x02) and the other chip enable line is on pin 1 (control 0x01). OpenOCD controls the data port and the status port of the parallel port, but not the control port.

I was able to make some minor modifications to OpenOCD to allow it generic control over the control port for things line reset lines and enable lines. With this, I was able to get my EasyICE working with OpenOCD.

I’ll continue testing and will post back with any other issues with the EasyICE that I come across.

Code diffs are available on request (tgimon atsign mitre dot-thingy org). Thanks for pointing me in the right direction!

Update…

After many months of using the EasyICE cable with my hacked-up code, I finally had some time to clean up the code and prepare a patch. The patch and instructions for installing it are available at http://home.earthlink.net/~tgimon/easyice.html.

The patch is tested and works with all of the following: Windows, Linux, Cygwin, giveio, ioperm, and ppdev. Also, the code now supports both SRST and TRST.

Any feedback is welcome.

Cheers…

RG