IMX31 reset not working, JTAG disconnects

Hi,

I tried using the scripts delivered with openOCD 0.5 on windows with Olimex “arm-usb-ocd-h”.

With the default settings (just starting openOCD and connect to the target) I always get disconnected from the olimex:

C:\Documents and Settings\tstone10\Desktop\openocd-0.5.0\bin>openocd-0.5.0.exe -f ../interface/olimex-arm-usb-ocd-h.cfg -f ../board/imx31pdk
.cfg
Open On-Chip Debugger 0.5.0 (2011-08-09-23:21)
Licensed under GNU GPL v2
For bug reports, read
        http://openocd.berlios.de/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
trst_and_srst separate srst_gates_jtag trst_push_pull srst_open_drain
adapter_nsrst_delay: 5
Warn : imx31.whatchacallit: nonstandard IR value
RCLK - adaptive
imx31pdk_init
Info : max TCK change to: 30000 kHz
Info : RCLK (adaptive clock speed)
Info : JTAG tap: imx31.etb tap/device found: 0x2b900f0f (mfg: 0x787, part: 0xb900, ver: 0x2)
Info : JTAG tap: imx31.cpu tap/device found: 0x07b3601d (mfg: 0x00e, part: 0x7b36, ver: 0x0)
Info : TAP imx31.whatchacallit does not have IDCODE
Info : JTAG tap: imx31.smda tap/device found: 0x2190101d (mfg: 0x00e, part: 0x1901, ver: 0x2)
Info : found ARM1136
Info : imx31.cpu: hardware has 6 breakpoints, 2 watchpoints
Warn : ETMv2+ support is incomplete
Info : ETM v3.1
Info : accepting 'telnet' connection from 4444
invalid command name "reset-init"
Error: couldn't read enough bytes from FT2232 device (0 < 81)
Error: couldn't read from FT2232
Error: Trying to use configured scan chain anyway...
Error: imx31.etb: IR capture error; saw 0x0f not 0x01
Warn : Bypassing JTAG setup events due to errors
Error: 'arm11 target' JTAG error SCREG OUT 0x1f
Error: unexpected ARM11 ID code

Any ideas what the problem could be?

Ok, the reason for the different types of issues with “reset” (soft and hard reset as well as jtag reset) are simply a problem with the communication between Olimex debugger and the openOCD itself.

To overcome this, you need to set the delays for start of communication after reset:

jtag_nsrst_delay: 200

There are more parameters in openOCD to set here (all similar XX_delay) that want to be set as well.