how to speed up flash downloading under linux

Hi all,

I use openocd-0.4.0 to download flash program on at91sam7x micro.

My system is ACER Aspire M5641 (intel Q8300 2.5GHz, 4BG ram, Chipset Nvidia MCP73PV), ubuntu linux 9.10 karmic koala x86_64.

Openocd is configured as follows:

./configure --enable-ft2232_libftdi --enable-jlink

I tried with both Amontec jtagkey-tiny and segger j-link

with Amontec jtagkey-tiny I obtain:

Open On-Chip Debugger 0.4.0 (2010-02-25-16:47)
Licensed under GNU GPL v2
For bug reports, read
	http://openocd.berlios.de/doc/doxygen/bugs.html
srst_only srst_pulls_trst srst_gates_jtag srst_open_drain
Warn : use 'at91sam7s.cpu' as target identifier, not '0'
Info : clock speed 6000 kHz
Info : JTAG tap: at91sam7s.cpu tap/device found: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0, ver: 0x3)
Info : Embedded ICE version 1
Info : at91sam7s.cpu: hardware has 2 breakpoint/watchpoint units
Info : accepting 'telnet' connection from 0
dcc downloads are enabled
fast memory access is enabled
wrote 51012 bytes from file ../images/DCellEVB.bin in 5.657477s (8.805 kb/s)

and with Segger J-Link:

Open On-Chip Debugger 0.4.0 (2010-02-25-16:47)
Licensed under GNU GPL v2
For bug reports, read
	http://openocd.berlios.de/doc/doxygen/bugs.html
srst_only srst_pulls_trst srst_gates_jtag srst_open_drain
Warn : use 'at91sam7s.cpu' as target identifier, not '0'
Info : J-Link initialization started / target CPU reset initiated
Info : J-Link compiled Feb 20 2006 18:20:20 -- Update --
Info : JLink caps 0x3
Info : JLink hw version 30000
Info : Vref = 3.233 TCK = 1 TDI = 1 TDO = 1 TMS = 1 SRST = 0 TRST = 255

Info : J-Link JTAG Interface ready
Info : RCLK (adaptive clock speed)
Info : JTAG tap: at91sam7s.cpu tap/device found: 0x3f0f0f0f (mfg: 0x787, part: 0xf0f0, ver: 0x3)
Info : Embedded ICE version 1
Info : at91sam7s.cpu: hardware has 2 breakpoint/watchpoint units
Info : accepting 'telnet' connection from 0
target state: halted
target halted in ARM state due to debug-request, current mode: Supervisor
cpsr: 0x200000d3 pc: 0x00101ce0
dcc downloads are enabled
fast memory access is enabled
wrote 51012 bytes from file ../images/DCellEVB.bin in 4.866550s (10.236 kb/s)

openocd uses the following library

max@lab7:~$ ldd /usr/local/bin/openocd 
	linux-vdso.so.1 =>  (0x00007fff351ff000)
	libdl.so.2 => /lib/libdl.so.2 (0x00007fc7aaa1f000)
	libftdi.so.1 => /usr/local/lib/libftdi.so.1 (0x00007fc7aa818000)
	libusb-0.1.so.4 => /usr/local/lib/libusb-0.1.so.4 (0x00007fc7aa613000)
	libc.so.6 => /lib/libc.so.6 (0x00007fc7aa2a4000)
	/lib64/ld-linux-x86-64.so.2 (0x00007fc7aac23000)
	libusb-1.0.so.0 => /lib/libusb-1.0.so.0 (0x00007fc7aa097000)
	librt.so.1 => /lib/librt.so.1 (0x00007fc7a9e8f000)
	libpthread.so.0 => /lib/libpthread.so.0 (0x00007fc7a9c73000)

I use new version of libusb (v1.0) that should be faster.

That very poor performace are also achieved in debugging :cry:

How can I speed up the flash dowloading?

I read about performace benchmark with openocd:

Openocd r657 with ftdi FT2232 based interface can download @ 26KB/s, and J-link more than 286 KB/s

on amontec site I read about jtagkey-tiny is claimed 125-135kBytes/sec, while jtagkey2 is claimed 525-750kBytes/sec!!! :shock:

So why I can obatin a tenth of that perormance?

I read about Olimex ARM-USB-TINY-H which use usb 2.0 and is clocked @ 30MHz. Is that supported by openocd

thanks