summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/openocd.texi665
1 files changed, 14 insertions, 651 deletions
diff --git a/doc/openocd.texi b/doc/openocd.texi
index 834edee2..60142be7 100644
--- a/doc/openocd.texi
+++ b/doc/openocd.texi
@@ -47,6 +47,7 @@ This manual documents edition @value{EDITION} of the Open On-Chip Debugger
* Building:: Building Openocd
* Running:: Running Openocd
* Configuration:: Openocd Configuration.
+* Target library:: Target library
* Commands:: Openocd Commands
* Sample Scripts:: Sample Target Scripts
* GDB and Openocd:: Using GDB and Openocd
@@ -235,7 +236,9 @@ chain, the targets that should be debugged, and connected flashes.
@itemize @bullet
@item @b{init} This command terminates the configuration stage and enters the normal
command mode. This can be useful to add commands to the startup scripts and commands
-such as resetting the target, programming flash, etc.
+such as resetting the target, programming flash, etc. To reset the CPU upon startup,
+add "init" and "reset" at the end of the config script or at the end of the
+openocd command line using the -c option.
@cindex init
@item @b{telnet_port} <@var{number}>
@cindex telnet_port
@@ -263,8 +266,9 @@ Default behaviour is <@var{disable}>
@item @b{daemon_startup} <@var{mode}>
@cindex daemon_startup
@option{mode} can either @option{attach} or @option{reset}
-Tells the OpenOCD whether it should reset the target when the daemon is launched, or
-if it should just attach to the target.
+This is equivalent to adding "init" and "reset" to the end of the config script.
+
+It is availble as a command mainly for backwards compatibility.
@end itemize
@section JTAG interface configuration
@@ -1219,7 +1223,7 @@ Enable/disable target debugmsgs requests. debugmsgs enable messages to be sent t
@chapter Sample Scripts
@cindex scripts
-This page will collect some script examples for different CPUs.
+This page shows how to use the target library.
The configuration script can be divided in the following section:
@itemize @bullet
@@ -1230,657 +1234,16 @@ The configuration script can be divided in the following section:
@item flash configuration
@end itemize
-Detailed information about each section can be found at OpenOCD configuration
-
-@section OMAP5912 Flash Debug
-@cindex OMAP5912 Flash Debug
-The following two scripts were used with a wiggler PP and and a TI OMAP5912
-dual core processor - (@uref{http://www.ti.com}), on a OMAP5912 OSK board
-- (@uref{http://www.spectrumdigital.com}).
-@subsection Openocd config
-@smallexample
-#daemon configuration
-telnet_port 4444
-gdb_port 3333
-
-#interface
-interface parport
-parport_port 0x378
-parport_cable wiggler
-jtag_speed 0
-
-#use combined on interfaces or targets that can't set TRST/SRST separately
-reset_config trst_and_srst
-
-#jtag scan chain
-#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
-jtag_device 38 0x0 0x0 0x0
-jtag_device 4 0x1 0x0 0xe
-jtag_device 8 0x0 0x0 0x0
-
-#target configuration
-daemon_startup reset
-
-#target <type> <endianness> <reset mode> <chainpos> <variant>
-target arm926ejs little run_and_init 1 arm926ejs
-target_script 0 reset omap5912_osk.init
-run_and_halt_time 0 30
-
-# omap5912 lcd frame buffer as working area
-working_area 0 0x20000000 0x3e800 nobackup
-
-#flash bank <driver> <base> <size> <chip_width> <bus_width>
-flash bank cfi 0x00000000 0x1000000 2 2 0
-@end smallexample
-
-@subsection Openocd init
-@smallexample
-#
-# halt target
-#
-poll
-sleep 1
-halt
-wait_halt
-#
-# disable wdt
-#
-mww 0xfffec808 0x000000f5
-mww 0xfffec808 0x000000a0
-
-mww 0xfffeb048 0x0000aaaa
-sleep 500
-mww 0xfffeb048 0x00005555
-sleep 500
-#
-# detect flash
-#
-flash probe 0
-
-@end smallexample
-
-@section STR71x Script
-@cindex STR71x Script
-The following script was used with an Amontec JTAGkey and a STR710 / STR711 CPU:
-@smallexample
-#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 0
-
-#use combined on interfaces or targets that can't set TRST/SRST separately
-reset_config trst_and_srst srst_pulls_trst
-
-#jtag scan chain
-#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
-jtag_device 4 0x1 0xf 0xe
-
-#target configuration
-daemon_startup reset
-
-#target <type> <startup mode>
-#target arm7tdmi <endianness> <reset mode> <chainpos> <variant>
-target arm7tdmi little run_and_halt 0 arm7tdmi
-run_and_halt_time 0 30
-
-working_area 0 0x2000C000 0x4000 nobackup
-
-#flash bank <driver> <base> <size> <chip_width> <bus_width>
-flash bank str7x 0x40000000 0x00040000 0 0 0 STR71x
-@end smallexample
-
-@section STR750 Script
-@cindex STR750 Script
-The following script was used with an Amontec JTAGkey and a STR750 CPU:
-@smallexample
-#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 19
-
-#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 srst_pulls_trst
-
-#jtag scan chain
-#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
-jtag_device 4 0x1 0xf 0xe
-
-#jtag nTRST and nSRST delay
-jtag_nsrst_delay 500
-jtag_ntrst_delay 500
-
-#target configuration
-daemon_startup reset
-
-#target <type> <startup mode>
-#target arm7tdmi <reset mode> <chainpos> <endianness> <variant>
-target arm7tdmi little run_and_halt 0 arm7tdmi
-run_and_halt_time 0 30
-
-working_area 0 0x40000000 0x4000 nobackup
-
-#flash bank <driver> <base> <size> <chip_width> <bus_width>
-flash bank str7x 0x20000000 0x000040000 0 0 0 STR75x
-@end smallexample
-
-@section STR912 Script
-@cindex STR912 Script
-The following script was used with an Amontec JTAGkey and a STR912 CPU:
-@smallexample
-#daemon configuration
-telnet_port 4444
-gdb_port 3333
-
-#interface
-interface ft2232
-ft2232_device_desc "Amontec JTAGkey A"
-ft2232_layout jtagkey
-jtag_speed 1
-
-#use combined on interfaces or targets that can't set TRST/SRST separately
-reset_config trst_and_srst
-
-#jtag scan chain
-#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
-jtag_device 8 0x1 0x1 0xfe
-jtag_device 4 0x1 0xf 0xe
-jtag_device 5 0x1 0x1 0x1e
-
-#target configuration
-daemon_startup reset
-
-#target <type> <startup mode>
-#target arm966e <endianness> <reset mode> <chainpos> <variant>
-target arm966e little reset_halt 1 arm966e
-run_and_halt_time 0 30
-
-working_area 0 0x50000000 16384 nobackup
-
-#flash bank <driver> <base> <size> <chip_width> <bus_width>
-flash bank str9x 0x00000000 0x00080000 0 0 0
-@end smallexample
-
-@section STR912 comstick
-@cindex STR912 comstick Script
-The following script was used with a Hitex STR9 Comstick:
-@smallexample
-#daemon configuration
-telnet_port 4444
-gdb_port 3333
-
-#interface
-interface ft2232
-ft2232_device_desc "STR9-comStick A"
-ft2232_layout comstick
-jtag_speed 1
-
-jtag_nsrst_delay 100
-jtag_ntrst_delay 100
+Detailed information about each section can be found at OpenOCD configuration.
-#use combined on interfaces or targets that can't set TRST/SRST separately
-reset_config trst_and_srst
-
-#jtag scan chain
-#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
-jtag_device 8 0x1 0x1 0xfe
-jtag_device 4 0x1 0xf 0xe
-jtag_device 5 0x1 0x1 0x1e
-
-#target configuration
-daemon_startup reset
-
-#target <type> <startup mode>
-#target arm966e <endianness> <reset mode> <chainpos> <variant>
-target arm966e little reset_halt 1 arm966e
-run_and_halt_time 0 30
-
-working_area 0 0x50000000 16384 nobackup
-
-#flash bank <driver> <base> <size> <chip_width> <bus_width>
-flash bank str9x 0x00000000 0x00080000 0 0 0
-@end smallexample
-
-@section STM32x Script
-@cindex STM32x Script
-The following script was used with an Amontec JTAGkey and a STM32x CPU:
+@section AT91R40008 example
+@cindex AT91R40008 example
+To start OpenOCD with a target script for the AT91R40008 CPU and reset
+the CPU upon startup of the OpenOCD daemon.
@smallexample
-#daemon configuration
-telnet_port 4444
-gdb_port 3333
-
-#interface
-interface ft2232
-ft2232_device_desc "Amontec JTAGkey A"
-ft2232_layout jtagkey
-jtag_speed 10
-
-jtag_nsrst_delay 100
-jtag_ntrst_delay 100
-
-#use combined on interfaces or targets that can't set TRST/SRST separately
-reset_config trst_and_srst
-
-#jtag scan chain
-#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
-jtag_device 4 0x1 0xf 0xe
-jtag_device 5 0x1 0x1 0x1e
-
-#target configuration
-daemon_startup reset
-
-#target <type> <startup mode>
-#target cortex_m3 <endianness> <reset mode> <chainpos> <variant>
-target cortex_m3 little run_and_halt 0
-run_and_halt_time 0 30
-
-working_area 0 0x20000000 16384 nobackup
-
-#flash bank <driver> <base> <size> <chip_width> <bus_width>
-flash bank stm32x 0x08000000 0x00020000 0 0 0
-@end smallexample
-
-@section STM32x Performance Stick
-@cindex STM32x Performance Stick Script
-The following script was used with the Hitex STM32 Performance Stick
-@smallexample
-#daemon configuration
-telnet_port 4444
-gdb_port 3333
-
-#interface
-interface ft2232
-ft2232_device_desc "STM32-PerformanceStick A"
-ft2232_layout stm32stick
-jtag_speed 10
-
-jtag_nsrst_delay 100
-jtag_ntrst_delay 100
-
-#use combined on interfaces or targets that can't set TRST/SRST separately
-reset_config trst_and_srst
-
-#jtag scan chain
-#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
-jtag_device 4 0x1 0xf 0xe
-jtag_device 5 0x1 0x1 0x1e
-jtag_device 4 0x1 0xf 0xe
-
-#target configuration
-daemon_startup reset
-
-#target <type> <startup mode>
-#target cortex_m3 <endianness> <reset mode> <chainpos> <variant>
-target cortex_m3 little run_and_halt 0
-run_and_halt_time 0 30
-
-working_area 0 0x20000000 16384 nobackup
-
-#flash bank <driver> <base> <size> <chip_width> <bus_width>
-flash bank stm32x 0x08000000 0x00020000 0 0 0
+openocd -f interface/parport.cfg -f target/at91r40008.cfg -c init -c reset
@end smallexample
-@section LPC2129 Script
-@cindex LPC2129 Script
-The following script was used with an wiggler PP and a LPC-2129 CPU:
-@smallexample
-#daemon configuration
-telnet_port 4444
-gdb_port 3333
-
-#interface
-interface parport
-parport_port 0x378
-parport_cable wiggler
-jtag_speed 0
-
-#use combined on interfaces or targets that can't set TRST/SRST separately
-reset_config trst_and_srst srst_pulls_trst
-
-#jtag scan chain
-#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
-jtag_device 4 0x1 0xf 0xe
-
-#target configuration
-daemon_startup reset
-
-#target <type> <startup mode>
-#target arm7tdmi <endianness> <reset mode> <chainpos> <variant>
-target arm7tdmi little run_and_halt 0 arm7tdmi-s_r4
-run_and_halt_time 0 30
-
-working_area 0 0x40000000 0x4000 nobackup
-
-#flash bank <driver> <base> <size> <chip_width> <bus_width>
-flash bank lpc2000 0x0 0x40000 0 0 0 lpc2000_v1 14765 calc_checksum
-@end smallexample
-
-@section LPC2148 Script
-@cindex LPC2148 Script
-The following script was used with an Amontec JTAGkey and a LPC2148 CPU:
-@smallexample
-#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
-
-#jtag scan chain
-#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
-jtag_device 4 0x1 0xf 0xe
-
-#target configuration
-daemon_startup reset
-
-#target <type> <startup mode>
-#target arm7tdmi <endianness> <reset mode> <chainpos> <variant>
-target arm7tdmi little run_and_halt 0 arm7tdmi-s_r4
-run_and_halt_time 0 30
-
-working_area 0 0x40000000 0x8000 nobackup
-
-#flash configuration
-flash bank lpc2000 0x0 0x7d000 0 0 0 lpc2000_v1 14765 calc_checksum
-@end smallexample
-
-@section LPC2294 Script
-@cindex LPC2294 Script
-The following script was used with an Amontec JTAGkey and a LPC2294 CPU:
-@smallexample
-#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
-
-#jtag scan chain
-#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
-jtag_device 4 0x1 0xf 0xe
-
-#target configuration
-daemon_startup reset
-
-#target <type> <startup mode>
-#target arm7tdmi <endianness> <reset mode> <chainpos> <variant>
-target arm7tdmi little run_and_halt 0 arm7tdmi-s_r4
-run_and_halt_time 0 30
-
-working_area 0 0x40000000 0x4000 nobackup
-
-#flash configuration
-flash bank lpc2000 0x0 0x40000 0 0 0 lpc2000_v1 14765 calc_checksum
-@end smallexample
-
-@section AT91R40008 Script
-@cindex AT91R40008 Script
-The following script was used with an Amontec JTAGkey and a AT91R40008 CPU:
-@smallexample
-#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 0
-jtag_nsrst_delay 200
-jtag_ntrst_delay 200
-
-#use combined on interfaces or targets that can't set TRST/SRST separately
-reset_config srst_only srst_pulls_trst
-
-#jtag scan chain
-#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
-jtag_device 4 0x1 0xf 0xe
-
-#target configuration
-daemon_startup reset
-
-#target <type> <startup mode>
-#target arm7tdmi <endianness> <reset mode> <chainpos> <variant>
-target arm7tdmi little run_and_halt 0 arm7tdmi
-run_and_halt_time 0 30
-@end smallexample
-
-@section AT91SAM7s Script
-@cindex AT91SAM7s Script
-The following script was used with an Olimex ARM-JTAG-OCD and a AT91SAM7S64 CPU:
-@smallexample
-#daemon configuration
-telnet_port 4444
-gdb_port 3333
-
-#interface
-interface ft2232
-ft2232_device_desc "Olimex OpenOCD JTAG A"
-ft2232_layout olimex-jtag
-ft2232_vid_pid 0x15BA 0x0003
-jtag_speed 0
-jtag_nsrst_delay 200
-jtag_ntrst_delay 200
-
-#use combined on interfaces or targets that can't set TRST/SRST separately
-reset_config srst_only srst_pulls_trst
-
-#jtag scan chain
-#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
-jtag_device 4 0x1 0xf 0xe
-
-#target configuration
-daemon_startup reset
-
-#target <type> <startup mode>
-#target arm7tdmi <endianness> <reset mode> <chainpos> <variant>
-target arm7tdmi little run_and_halt 0 arm7tdmi
-run_and_halt_time 0 30
-
-# flash-options AT91
-working_area 0 0x00200000 0x4000 nobackup
-flash bank at91sam7 0 0 0 0 0
-
-# Information:
-# erase command (telnet-interface) for complete flash:
-# flash erase <num> 0 numlockbits-1 (can be seen from output of flash info 0)
-# SAM7S64 with 16 lockbits and bank 0: flash erase 0 0 15
-# set/clear NVM-Bits:
-# at91sam7 gpnvm <num> <bit> <set|clear>
-# disable locking from SAM-BA:
-# flash protect 0 0 1 off
-@end smallexample
-
-@section XSCALE IXP42x Script
-@cindex XSCALE IXP42x Script
-The following script was used with an Amontec JTAGkey-Tiny and a xscale ixp42x CPU:
-@smallexample
-#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 0
-jtag_nsrst_delay 200
-jtag_ntrst_delay 200
-
-#use combined on interfaces or targets that can't set TRST/SRST separately
-reset_config srst_only srst_pulls_trst
-
-#jtag scan chain
-#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
-jtag_device 7 0x1 0x7f 0x7e
-
-#target configuration
-daemon_startup reset
-
-#target <type> <startup mode>
-#target arm7tdmi <reset mode> <chainpos> <endianness> <variant>
-target xscale big run_and_halt 0 IXP42x
-run_and_halt_time 0 30
-@end smallexample
-
-@section Cirrus Logic EP9301 Script
-@cindex Cirrus Logic EP9301 Script
-The following script was used with FT2232 based JTAG interfaces and a
-Cirrus Logic EP9301 processor on an Olimex CS-E9301 board.
-@smallexample
-#daemon configuration
-telnet_port 4444
-gdb_port 3333
-
-#interface
-interface ft2232
-
-#Olimex ARM-USB-OCD
-#ft2232_device_desc "Olimex OpenOCD JTAG"
-#ft2232_layout olimex-jtag
-#ft2232_vid_pid 0x15ba 0x0003
-
-#Amontec JTAGkey (and JTAGkey-Tiny)
-#Serial is only necessary if more than one JTAGkey is connected
-ft2232_device_desc "Amontec JTAGkey A"
-#ft2232_serial AMTJKV31
-#ft2232_serial T1P3S2W8
-ft2232_layout jtagkey
-ft2232_vid_pid 0x0403 0xcff8
-
-#wiggler/parallel port interface
-#interface parport
-#parport_port 0x378
-#parport_cable wiggler
-#jtag_speed 0
-jtag_speed 1
-reset_config trst_and_srst
-
-#jtag scan chain
-#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
-jtag_device 4 0x1 0xf 0xe
-
-jtag_nsrst_delay 100
-jtag_ntrst_delay 100
-
-#target configuration
-daemon_startup attach
-
-#target <type> <endianess> <reset mode>
-target arm920t little reset_halt 0
-working_area 0 0x80014000 0x1000 backup
-
-#flash configuration
-#flash bank <driver> <base> <size> <chip_width> <bus_width> [driver_options ...]
-flash bank cfi 0x60000000 0x1000000 2 2 0
-@end smallexample
-
-@section Hilscher netX 100 / 500 Script
-@cindex Hilscher netX 100 / 500 Script
-The following script was used with an Amontec JTAGkey and a Hilscher
-netX 500 CPU:
-@smallexample
-#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 5
-
-#use combined on interfaces or targets that can't set TRST/SRST separately
-reset_config trst_and_srst
-
-#jtag scan chain
-#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
-jtag_device 4 0x1 0xf 0xe
-
-jtag_nsrst_delay 100
-jtag_ntrst_delay 100
-
-#target configuration
-daemon_startup reset
-
-#target <type> <endianness> <startup mode> <chainpos> <variant>
-target arm926ejs little run_and_halt 0 arm926ejs
-run_and_halt_time 0 500
-@end smallexample
-
-@section Marvell/Intel PXA270 Script
-@cindex Marvell/Intel PXA270 Script
-@smallexample
-# config for Intel PXA270
-# not, as of 2007-06-22, openocd only works with the
-# libftd2xx library from ftdi. libftdi does not work.
-
-telnet_port 3333
-gdb_port 4444
-
-interface ft2232
-ft2232_layout olimex-jtag
-ft2232_vid_pid 0x15BA 0x0003
-ft2232_device_desc "Olimex OpenOCD JTAG"
-jtag_speed 0
-# set jtag_nsrst_delay to the delay introduced by your reset circuit
-# the rest of the needed delays are built into the openocd program
-jtag_nsrst_delay 260
-# set the jtag_ntrst_delay to the delay introduced by a reset circuit
-# the rest of the needed delays are built into the openocd program
-jtag_ntrst_delay 0
-
-#use combined on interfaces or targets that can't set TRST/SRST separately
-reset_config trst_and_srst separate
-
-#jtag scan chain
-#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
-jtag_device 7 0x1 0x7f 0x7e
-
-#target configuration
-daemon_startup reset
-
-target xscale little reset_halt 0 pxa27x
-
-# maps to PXA internal RAM. If you are using a PXA255
-# you must initialize SDRAM or leave this option off
-working_area 0 0x5c000000 0x10000 nobackup
-
-run_and_halt_time 0 30
-
-#flash bank <driver> <base> <size> <chip_width> <bus_width>
-# works for P30 flash
-flash bank cfi 0x00000000 0x1000000 2 4 0
-@end smallexample
@node GDB and Openocd
@chapter GDB and Openocd