diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/openocd.texi | 665 |
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 |