Dumping ARM9 flash content via OpenOCD

Hello,
I’m currently using openocd to dump both flash banks of my ARM9 controller. This is the script I’m using:

str9x flash_config 0 0 6 0x0 0x80000
dump_image bank1.bin 0x0 0x8000
dump_image bank0.bin 0x80000 0x80000
shutdown

2 of 10 times this works perfect and this is the output:

M:\OpenOCD\FLASH>openocd-ftd2xx -f str91x_jtagkey_dump_bank0.cfg
Info:    openocd.c:93 main(): Open On-Chip Debugger (2008-02-02 15:00 CET) svn: 279
Info:    openocd.c:94 main(): $URL: http://svn.berlios.de/svnroot/repos/openocd/trunk/src/openocd.c $
Info:    jtag.c:1261 jtag_examine_chain(): JTAG device found: 0x04570041 (Manufacturer: 0x020, Part: 0x4570, Version: 0x0)
Info:    jtag.c:1261 jtag_examine_chain(): JTAG device found: 0x25966041 (Manufacturer: 0x020, Part: 0x5966, Version: 0x2)
Info:    jtag.c:1261 jtag_examine_chain(): JTAG device found: 0x1457f041 (Manufacturer: 0x020, Part: 0x457f, Version: 0x1)
Warning: arm7_9_common.c:695 arm7_9_poll(): DBGACK set while target was in unknown state. Reset or initialize target before resuming
Info:    target.c:233 target_init_handler(): executing reset script 'str91x_dump_bank0.ocd'
Info:    configuration.c:50 configuration_output_handler(): dumped 32768 byte in 1s 859375us
Info:    configuration.c:50 configuration_output_handler(): dumped 524288 byte in 29s 828125us

8 of 10 times this problem occures:

M:\OpenOCD\FLASH>openocd-ftd2xx -f str91x_jtagkey_dump_bank0.cfg
Info:    openocd.c:93 main(): Open On-Chip Debugger (2008-02-02 15:00 CET) svn: 279
Info:    openocd.c:94 main(): $URL: http://svn.berlios.de/svnroot/repos/openocd/trunk/src/openocd.c $
Info:    jtag.c:1261 jtag_examine_chain(): JTAG device found: 0x04570041 (Manufacturer: 0x020, Part: 0x4570, Version: 0x0)
Info:    jtag.c:1261 jtag_examine_chain(): JTAG device found: 0x25966041 (Manufacturer: 0x020, Part: 0x5966, Version: 0x2)
Info:    jtag.c:1261 jtag_examine_chain(): JTAG device found: 0x1457f041 (Manufacturer: 0x020, Part: 0x457f, Version: 0x1)
Warning: arm7_9_common.c:695 arm7_9_poll(): DBGACK set while target was in unknown state. Reset or initialize target before resuming
Info:    target.c:233 target_init_handler(): executing reset script 'str91x_dump_bank0.ocd'
Info:    configuration.c:50 configuration_output_handler(): dumped 32768 byte in 1s 859375us
[b]Error:   arm7_9_common.c:571 arm7_9_execute_sys_speed(): timeout waiting for SYSCOMP & DBGACK, last DBG_STATUS: 2c5
Error:   arm7_9_common.c:571 arm7_9_execute_sys_speed(): timeout waiting for SYSCOMP & DBGACK, last DBG_STATUS: 4[/b]

Error: arm7_9_common.c:571 arm7_9_execute_sys_speed(): timeout waiting for SYSCOMP & DBGACK, last DBG_STATUS: 2c5
Error: arm7_9_common.c:571 arm7_9_execute_sys_speed(): timeout waiting for SYSCOMP & DBGACK, last DBG_STATUS: 4

–>My current JTAG SPEED is at 1. I also tried 0.9 to 0.6 but then OpenOCD complains and doesn’t even startup.

Can you please help me?

Thanks!

Regards,

Daniel

jtag_speed is a divisior - higher values mean slower JTAG speed. In case of FT2232 based interfaces the resulting frequency is 6MHz / (1 + jtag_speed).

Regards,

Dominic

Hello Dominic,

thanks for the explanation.

I did currently figure out that an USB-Hub/Repeater was causing the problem. If I use my laptop and connect the JTAG directly to the USB port the problem is completely gone.

I’ll test on monday if slowing done the JTAG speed will help with the USB-Hub.

:smiley:

My bootloader is running!

Happy greetings,

Daniel

Hello,

I doubled the JTAG Speed value and now the dump also works fine using the USB HUB inbetween.

Thanks!

Regards,

Daniel