openocd too slow

tried openocd r1836 and r1938 with the same results.

I need to flash an AT91SAM7X256 (the board is evaluation board from atmel) with an Amontec jtagkey-tiny.

My PC runs ubuntu linux 8.10 64bit, and I use libftdi 0.16 (configured as defaults)

PC is an intel core2 q8300 and 4GB ram

I run openocd with the following command line

$ sudo openocd -f scrips/jtagkey.cfg -f scrips/sam7x256.cfg -d 3

with scrips, jtagkey.cfg:

#
# Amontec JTAGkey
#
# http://www.amontec.com/jtagkey.shtml
#

#daemon configuration
telnet_port 4444
gdb_port 3333

interface ft2232
ft2232_device_desc "Amontec JTAGkey A"
ft2232_layout jtagkey
ft2232_vid_pid 0x0403 0xcff8

and sam7x256.cfg

#use combined on interfaces or targets that can't set TRST/SRST separately
reset_config srst_only srst_pulls_trst

if { [info exists CHIPNAME] } {
  set  _CHIPNAME $CHIPNAME
} else {
  set  _CHIPNAME sam7x256
}

if { [info exists ENDIAN] } {
  set  _ENDIAN $ENDIAN
} else {
  set  _ENDIAN little
}

if { [info exists CPUTAPID ] } {
  set _CPUTAPID $CPUTAPID
} else {
  set _CPUTAPID 0x3f0f0f0f
}

jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf
-expected-id $_CPUTAPID

set _TARGETNAME [format "%s.cpu" $_CHIPNAME]

target create $_TARGETNAME arm7tdmi -endian $_ENDIAN -chain-position
$_TARGETNAME -variant arm7tdmi
$_TARGETNAME configure -event reset-init {
       # disable watchdog
       mww 0xfffffd44 0x00008000
       # enable user reset
       mww 0xfffffd08 0xa5000001
       # CKGR_MOR : enable the main oscillator
       mww 0xfffffc20 0x00000601
       sleep 10
       # CKGR_PLLR: 96.1097 MHz
       mww 0xfffffc2c 0x00481c0e
       sleep 10
       # PMC_MCKR : MCK = PLL / 2 ~= 48 MHz
       mww 0xfffffc30 0x00000007
       sleep 10
       # MC_FMR: flash mode (FWS=1,FMCN=60)
       mww 0xffffff60 0x003c0100
       sleep 100
}

$_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x00200000 -work-area-size 0x4000 -work-area-backup 0

#flash bank <driver> <base> <size> <chip_width> <bus_width>
flash bank at91sam7 0 0 0 0 0

# For more information about the configuration files, take a look at:
# openocd.texi

then I connect via telnet to 4444 port

I run the following commands

> arm7_9 dcc_downloads enable
dcc downloads are enabled
> arm7_9 fast_memory_access enable
fast memory access is enabled
> flash write_image erase firmware.bin 0x100000 bin
auto erase enabled
wrote 44616 byte from file firmware.bin in 11.045264s (3.944705 kb/s)

openocd (both r1836 and r1938) are configured using first bootstrap and ./configure --enable-ft2232_libftdi --disable-werror --enable-maintainer-mode

debug trace is too long to attatch.

what is wrong? How can I speed up the process?

Maybe the opensource libftdi? Do I need to try with ftd2xx driver provided by Amontec? I don’t think that is for 64bit systems, isn’t it?

thanks