I have now successfully used the OpenOCD with an IXP432 processor.
There was a lot of mucking around to get the DDR controller working as some of the register definitions appear to be missing form the Intel data sheet. I finally found them in the Redboot source code.
I have now programmed the flash on my board by down loading a program and running it.
I have supplied the setup which may help other in the future.
I used the following config file
#daemon configuration
telnet_port 4444
gdb_port 3333
#interface
interface ft2232
ft2232_device_desc "Amontec JTAGkey A"
ft2232_layout jtagkey
ft2232_vid_pid 0x0403 0xcff8
jtag_speed 3
#use combined on interfaces or targets that can't set TRST/SRST separately
#reset_config trst_and_srst srst_pulls_trst
reset_config trst_and_srst separate
jtag_nsrst_delay 1
jtag_ntrst_delay 1
#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
tag_device 7 0x1 0x7f 0x09 # 2 IXP432
verify_ircapture disable
#target configuration
daemon_startup reset
#target <type> <endianess> <startup mode> <variant>
target xscale little reset_halt 0 IXP43x
run_and_halt_time 0 3
and the following script file to initialise the ddr and flash
There appears to be a lot of operations which I can only assume were to initialise the DDL in the DDR interface, but it does seem to work.
# initialise the memory comtroller
mww 0xcc00e504 0x72222312 // SDRC0 tRAS=40ns;tRP=15ns;tRCD=15ns;EDP=2;tWDL=2;CAS=4;DBW=16;DDR-II;32bits
mww 0xcc00e508 0x687144a7 // SDRC1 DQS=0;RTCMD=6;WRCMD=8;RTW=5;RFC=14;WR=3;RC=10;WTRD=7
mww 0xcc00e50c 0x00000000 // SDBR SDRAM Base register
mww 0xcc00e510 0x80000002 // SBR0 Bank0 boundary register
mww 0xcc00e514 0x80000002 // SBR1 Bank1 boundary register (not configured)
mww 0xcc00e51c 0x00000000 // ECCR ECC control register (disabled)
mww 0xcc00e548 0 // Disable Refresh
mww 0xcc00e500 3 // NO-OP command
mww 0xcc00e500 2 // Prechage command
mww 0xcc00e500 7 // extended mode register 2 command
mww 0xcc00e500 8 // extended mode register 3 command
mww 0xcc00e500 4 // extended mode register 1 command
mww 0xcc00e500 1 // Mode command
mww 0xcc00e500 2 // Prechage command
mww 0xcc00e500 6 // Refresh command
mww 0xcc00e500 6 // Refresh command
mww 0xcc00e500 0 // Mode command
mww 0xcc00e500 15
mww 0xcc00e548 3120 // Refresh cycle count
mww 0xcc00f550 0x00000004
mww 0xcc00f554 0x00000000
mww 0xcc00f558 0x00000000
mww 0xcc00f55c 0x00000000
mww 0xcc00f560 0x00000000
mww 0xcc00f564 0x00000004
mww 0xcc00f568 0x00000000
mww 0xcc00f574 0x0000000a
mww 0xcc00f578 0x0002d400
mww 0xcc00f578 0x0002d400
mww 0xcc00f578 0x0002d400
mww 0xcc00f578 0x0002d400
mww 0xcc00f578 0x0002d400
mww 0xcc00f578 0x0002d400
mww 0xcc00f578 0x0002d000
mww 0xcc00f57c 0x0000889c
mww 0xcc00f57c 0x0000889c
mww 0xcc00f57c 0x0000889c
mww 0xcc00f57c 0x0000889c
mww 0xcc00f57c 0x0000809c
mww 0xcc00f500 0x81000006
mww 0xcc00f500 0x81000106
mww 0xcc00f500 0x81000206
mww 0xcc00f500 0x81000306
mww 0xcc00f500 0x81000406
mww 0xcc00f500 0x81000506
mww 0xcc00f500 0x81000606
mww 0xcc00f500 0x81002006
mww 0xcc00f500 0x81002106
mww 0xcc00f500 0x81002206
mww 0xcc00f500 0x81002306
mww 0xcc00f500 0x81002406
mww 0xcc00f500 0x81002506
mww 0xcc00f500 0x81002606
mww 0xcc00f500 0x81002706
mww 0xcc00f500 0x81004006
mww 0xcc00f500 0x81004106
mww 0xcc00f500 0x81004206
mww 0xcc00f500 0x81004306
mww 0xcc00f500 0x81004406
mww 0xcc00f500 0x81004506
mww 0xcc00f500 0x81004606
mww 0xcc00f500 0x81004706
mww 0xcc00f500 0x81006006
mww 0xcc00f500 0x81006106
mww 0xcc00f500 0x81006206
mww 0xcc00f500 0x81006306
mww 0xcc00f500 0x81006406
mww 0xcc00f500 0x81006506
mww 0xcc00f500 0x81006606
mww 0xcc00f500 0x81006706
# Configure memory map
mww 0xc4000020 0x0000126 // set normal mapping
Dave