X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=doc%2Fopenocd.texi;h=0208fcf835474ee0473ba8d0a54bec0744e13cda;hp=21a39fceb66d9d66becd6e24bd8f122b379ee122;hb=79fdeb37f486f74658f1eaf658abac8efb3eba6a;hpb=9dfb58e802787b1dcee756cdf963a7a2ac808eca diff --git a/doc/openocd.texi b/doc/openocd.texi index 21a39fceb6..0208fcf835 100644 --- a/doc/openocd.texi +++ b/doc/openocd.texi @@ -73,7 +73,6 @@ Free Documentation License''. * CPU Configuration:: CPU Configuration * Flash Commands:: Flash Commands * Flash Programming:: Flash Programming -* NAND Flash Commands:: NAND Flash Commands * PLD/FPGA Commands:: PLD/FPGA Commands * General Commands:: General Commands * Architecture and Core Commands:: Architecture and Core Commands @@ -170,7 +169,7 @@ controllers (LPC3180, Orion, S3C24xx, more) is included. The OpenOCD web site provides the latest public news from the community: -@uref{http://openocd.sourceforge.net/} +@uref{http://openocd.org/} @section Latest User's Guide: @@ -178,11 +177,11 @@ The user's guide you are now reading may not be the latest one available. A version for more recent code may be available. Its HTML form is published regularly at: -@uref{http://openocd.sourceforge.net/doc/html/index.html} +@uref{http://openocd.org/doc/html/index.html} PDF form is likewise published at: -@uref{http://openocd.sourceforge.net/doc/pdf/openocd.pdf} +@uref{http://openocd.org/doc/pdf/openocd.pdf} @section OpenOCD User's Forum @@ -256,7 +255,7 @@ providing a Doxygen reference manual. This document contains more technical information about the software internals, development processes, and similar documentation: -@uref{http://openocd.sourceforge.net/doc/doxygen/html/index.html} +@uref{http://openocd.org/doc/doxygen/html/index.html} This document is a work-in-progress, but contributions would be welcome to fill in the gaps. All of the source files are provided in-tree, @@ -292,7 +291,7 @@ communication between developers: The OpenOCD Bug Tracker is hosted on SourceForge: -@uref{https://sourceforge.net/p/openocd/tickets/} +@uref{http://bugs.openocd.org/} @node Debug Adapter Hardware @@ -471,7 +470,7 @@ SWD and not JTAG, thus not supported. @itemize @bullet @item @b{Raisonance RLink} -@* Link: @url{http://www.mcu-raisonance.com/~rlink-debugger-programmer__microcontrollers__tool~tool__T018:4cn9ziz4bnx6.html} +@* Link: @url{http://www.mcu-raisonance.com/~rlink-debugger-programmer__@/microcontrollers__tool~tool__T018:4cn9ziz4bnx6.html} @item @b{STM32 Primer} @* Link: @url{http://www.stm32circle.com/resources/stm32primer.php} @item @b{STM32 Primer2} @@ -735,7 +734,7 @@ If all goes well you'll see output something like @example Open On-Chip Debugger 0.4.0 (2010-01-14-15:06) For bug reports, read - http://openocd.sourceforge.net/doc/doxygen/bugs.html + http://openocd.org/doc/doxygen/bugs.html Info : JTAG tap: lm3s.cpu tap/device found: 0x3ba00477 (mfg: 0x23b, part: 0xba00, ver: 0x3) @end example @@ -1296,65 +1295,17 @@ including developers and integrators of OpenOCD and any user who needs to get a new board working smoothly. It provides guidelines for creating those files. -You should find the following directories under @t{$(INSTALLDIR)/scripts}, -with files including the ones listed here. -Use them as-is where you can; or as models for new files. +You should find the following directories under +@t{$(INSTALLDIR)/scripts}, with config files maintained upstream. Use +them as-is where you can; or as models for new files. @itemize @bullet @item @file{interface} ... -These are for debug adapters. -Files that configure JTAG adapters go here. -@example -$ ls interface -R -interface/: -altera-usb-blaster.cfg hilscher_nxhx50_re.cfg openocd-usb-hs.cfg -arm-jtag-ew.cfg hitex_str9-comstick.cfg openrd.cfg -at91rm9200.cfg icebear.cfg osbdm.cfg -axm0432.cfg jlink.cfg parport.cfg -busblaster.cfg jtagkey2.cfg parport_dlc5.cfg -buspirate.cfg jtagkey2p.cfg redbee-econotag.cfg -calao-usb-a9260-c01.cfg jtagkey.cfg redbee-usb.cfg -calao-usb-a9260-c02.cfg jtagkey-tiny.cfg rlink.cfg -calao-usb-a9260.cfg jtag-lock-pick_tiny_2.cfg sheevaplug.cfg -chameleon.cfg kt-link.cfg signalyzer.cfg -cortino.cfg lisa-l.cfg signalyzer-h2.cfg -digilent-hs1.cfg luminary.cfg signalyzer-h4.cfg -dlp-usb1232h.cfg luminary-icdi.cfg signalyzer-lite.cfg -dummy.cfg luminary-lm3s811.cfg stlink-v1.cfg -estick.cfg minimodule.cfg stlink-v2.cfg -flashlink.cfg neodb.cfg stm32-stick.cfg -flossjtag.cfg ngxtech.cfg sysfsgpio-raspberrypi.cfg -flossjtag-noeeprom.cfg olimex-arm-usb-ocd.cfg ti-icdi.cfg -flyswatter2.cfg olimex-arm-usb-ocd-h.cfg turtelizer2.cfg -flyswatter.cfg olimex-arm-usb-tiny-h.cfg ulink.cfg -ftdi olimex-jtag-tiny.cfg usb-jtag.cfg -hilscher_nxhx10_etm.cfg oocdlink.cfg usbprog.cfg -hilscher_nxhx500_etm.cfg opendous.cfg vpaclink.cfg -hilscher_nxhx500_re.cfg opendous_ftdi.cfg vsllink.cfg -hilscher_nxhx50_etm.cfg openocd-usb.cfg xds100v2.cfg - -interface/ftdi: -axm0432.cfg hitex_str9-comstick.cfg olimex-jtag-tiny.cfg -calao-usb-a9260-c01.cfg icebear.cfg oocdlink.cfg -calao-usb-a9260-c02.cfg jtagkey2.cfg opendous_ftdi.cfg -cortino.cfg jtagkey2p.cfg openocd-usb.cfg -dlp-usb1232h.cfg jtagkey.cfg openocd-usb-hs.cfg -dp_busblaster.cfg jtag-lock-pick_tiny_2.cfg openrd.cfg -flossjtag.cfg kt-link.cfg redbee-econotag.cfg -flossjtag-noeeprom.cfg lisa-l.cfg redbee-usb.cfg -flyswatter2.cfg luminary.cfg sheevaplug.cfg -flyswatter.cfg luminary-icdi.cfg signalyzer.cfg -gw16042.cfg luminary-lm3s811.cfg signalyzer-lite.cfg -hilscher_nxhx10_etm.cfg minimodule.cfg stm32-stick.cfg -hilscher_nxhx500_etm.cfg neodb.cfg turtelizer2-revB.cfg -hilscher_nxhx500_re.cfg ngxtech.cfg turtelizer2-revC.cfg -hilscher_nxhx50_etm.cfg olimex-arm-usb-ocd.cfg vpaclink.cfg -hilscher_nxhx50_re.cfg olimex-arm-usb-ocd-h.cfg xds100v2.cfg -hitex_lpc1768stick.cfg olimex-arm-usb-tiny-h.cfg -$ -@end example +These are for debug adapters. Files that specify configuration to use +specific JTAG, SWD and other adapters go here. @item @file{board} ... -think Circuit Board, PWA, PCB, they go by many names. Board files +Think Circuit Board, PWA, PCB, they go by many names. Board files contain initialization items that are specific to a board. + They reuse target configuration files, since the same microprocessor chips are used on many boards, but support for external parts varies widely. For @@ -1363,169 +1314,13 @@ of external flash and what address it uses. Any initialization sequence to enable that external flash or SDRAM should be found in the board file. Boards may also contain multiple targets: two CPUs; or a CPU and an FPGA. -@example -$ ls board -actux3.cfg lpc1850_spifi_generic.cfg -am3517evm.cfg lpc4350_spifi_generic.cfg -arm_evaluator7t.cfg lubbock.cfg -at91cap7a-stk-sdram.cfg mcb1700.cfg -at91eb40a.cfg microchip_explorer16.cfg -at91rm9200-dk.cfg mini2440.cfg -at91rm9200-ek.cfg mini6410.cfg -at91sam9261-ek.cfg netgear-dg834v3.cfg -at91sam9263-ek.cfg olimex_LPC2378STK.cfg -at91sam9g20-ek.cfg olimex_lpc_h2148.cfg -atmel_at91sam7s-ek.cfg olimex_sam7_ex256.cfg -atmel_at91sam9260-ek.cfg olimex_sam9_l9260.cfg -atmel_at91sam9rl-ek.cfg olimex_stm32_h103.cfg -atmel_sam3n_ek.cfg olimex_stm32_h107.cfg -atmel_sam3s_ek.cfg olimex_stm32_p107.cfg -atmel_sam3u_ek.cfg omap2420_h4.cfg -atmel_sam3x_ek.cfg open-bldc.cfg -atmel_sam4s_ek.cfg openrd.cfg -balloon3-cpu.cfg osk5912.cfg -colibri.cfg phone_se_j100i.cfg -crossbow_tech_imote2.cfg phytec_lpc3250.cfg -csb337.cfg pic-p32mx.cfg -csb732.cfg propox_mmnet1001.cfg -da850evm.cfg pxa255_sst.cfg -digi_connectcore_wi-9c.cfg redbee.cfg -diolan_lpc4350-db1.cfg rsc-w910.cfg -dm355evm.cfg sheevaplug.cfg -dm365evm.cfg smdk6410.cfg -dm6446evm.cfg spear300evb.cfg -efikamx.cfg spear300evb_mod.cfg -eir.cfg spear310evb20.cfg -ek-lm3s1968.cfg spear310evb20_mod.cfg -ek-lm3s3748.cfg spear320cpu.cfg -ek-lm3s6965.cfg spear320cpu_mod.cfg -ek-lm3s811.cfg steval_pcc010.cfg -ek-lm3s811-revb.cfg stm320518_eval_stlink.cfg -ek-lm3s8962.cfg stm32100b_eval.cfg -ek-lm3s9b9x.cfg stm3210b_eval.cfg -ek-lm3s9d92.cfg stm3210c_eval.cfg -ek-lm4f120xl.cfg stm3210e_eval.cfg -ek-lm4f232.cfg stm3220g_eval.cfg -embedded-artists_lpc2478-32.cfg stm3220g_eval_stlink.cfg -ethernut3.cfg stm3241g_eval.cfg -glyn_tonga2.cfg stm3241g_eval_stlink.cfg -hammer.cfg stm32f0discovery.cfg -hilscher_nxdb500sys.cfg stm32f3discovery.cfg -hilscher_nxeb500hmi.cfg stm32f4discovery.cfg -hilscher_nxhx10.cfg stm32ldiscovery.cfg -hilscher_nxhx500.cfg stm32vldiscovery.cfg -hilscher_nxhx50.cfg str910-eval.cfg -hilscher_nxsb100.cfg telo.cfg -hitex_lpc1768stick.cfg ti_am335xevm.cfg -hitex_lpc2929.cfg ti_beagleboard.cfg -hitex_stm32-performancestick.cfg ti_beagleboard_xm.cfg -hitex_str9-comstick.cfg ti_beaglebone.cfg -iar_lpc1768.cfg ti_blaze.cfg -iar_str912_sk.cfg ti_pandaboard.cfg -icnova_imx53_sodimm.cfg ti_pandaboard_es.cfg -icnova_sam9g45_sodimm.cfg topas910.cfg -imx27ads.cfg topasa900.cfg -imx27lnst.cfg twr-k60f120m.cfg -imx28evk.cfg twr-k60n512.cfg -imx31pdk.cfg tx25_stk5.cfg -imx35pdk.cfg tx27_stk5.cfg -imx53loco.cfg unknown_at91sam9260.cfg -keil_mcb1700.cfg uptech_2410.cfg -keil_mcb2140.cfg verdex.cfg -kwikstik.cfg voipac.cfg -linksys_nslu2.cfg voltcraft_dso-3062c.cfg -lisa-l.cfg x300t.cfg -logicpd_imx27.cfg zy1000.cfg -$ -@end example @item @file{target} ... -think chip. The ``target'' directory represents the JTAG TAPs +Think chip. The ``target'' directory represents the JTAG TAPs on a chip which OpenOCD should control, not a board. Two common types of targets are ARM chips and FPGA or CPLD chips. When a chip has multiple TAPs (maybe it has both ARM and DSP cores), the target config file defines all of them. -@example -$ ls target -aduc702x.cfg lpc1764.cfg -am335x.cfg lpc1765.cfg -amdm37x.cfg lpc1766.cfg -ar71xx.cfg lpc1767.cfg -at32ap7000.cfg lpc1768.cfg -at91r40008.cfg lpc1769.cfg -at91rm9200.cfg lpc1788.cfg -at91sam3ax_4x.cfg lpc17xx.cfg -at91sam3ax_8x.cfg lpc1850.cfg -at91sam3ax_xx.cfg lpc2103.cfg -at91sam3nXX.cfg lpc2124.cfg -at91sam3sXX.cfg lpc2129.cfg -at91sam3u1c.cfg lpc2148.cfg -at91sam3u1e.cfg lpc2294.cfg -at91sam3u2c.cfg lpc2378.cfg -at91sam3u2e.cfg lpc2460.cfg -at91sam3u4c.cfg lpc2478.cfg -at91sam3u4e.cfg lpc2900.cfg -at91sam3uxx.cfg lpc2xxx.cfg -at91sam3XXX.cfg lpc3131.cfg -at91sam4sd32x.cfg lpc3250.cfg -at91sam4sXX.cfg lpc4350.cfg -at91sam4XXX.cfg lpc4350.cfg.orig -at91sam7se512.cfg mc13224v.cfg -at91sam7sx.cfg nuc910.cfg -at91sam7x256.cfg omap2420.cfg -at91sam7x512.cfg omap3530.cfg -at91sam9260.cfg omap4430.cfg -at91sam9260_ext_RAM_ext_flash.cfg omap4460.cfg -at91sam9261.cfg omap5912.cfg -at91sam9263.cfg omapl138.cfg -at91sam9.cfg pic32mx.cfg -at91sam9g10.cfg pxa255.cfg -at91sam9g20.cfg pxa270.cfg -at91sam9g45.cfg pxa3xx.cfg -at91sam9rl.cfg readme.txt -atmega128.cfg samsung_s3c2410.cfg -avr32.cfg samsung_s3c2440.cfg -c100.cfg samsung_s3c2450.cfg -c100config.tcl samsung_s3c4510.cfg -c100helper.tcl samsung_s3c6410.cfg -c100regs.tcl sharp_lh79532.cfg -cs351x.cfg sim3x.cfg -davinci.cfg smp8634.cfg -dragonite.cfg spear3xx.cfg -dsp56321.cfg stellaris.cfg -dsp568013.cfg stellaris_icdi.cfg -dsp568037.cfg stm32f0x_stlink.cfg -efm32_stlink.cfg stm32f1x.cfg -epc9301.cfg stm32f1x_stlink.cfg -faux.cfg stm32f2x.cfg -feroceon.cfg stm32f2x_stlink.cfg -fm3.cfg stm32f3x.cfg -hilscher_netx10.cfg stm32f3x_stlink.cfg -hilscher_netx500.cfg stm32f4x.cfg -hilscher_netx50.cfg stm32f4x_stlink.cfg -icepick.cfg stm32l.cfg -imx21.cfg stm32lx_dual_bank.cfg -imx25.cfg stm32lx_stlink.cfg -imx27.cfg stm32_stlink.cfg -imx28.cfg stm32w108_stlink.cfg -imx31.cfg stm32xl.cfg -imx35.cfg str710.cfg -imx51.cfg str730.cfg -imx53.cfg str750.cfg -imx6.cfg str912.cfg -imx.cfg swj-dp.tcl -is5114.cfg test_reset_syntax_error.cfg -ixp42x.cfg test_syntax_error.cfg -k40.cfg ti-ar7.cfg -k60.cfg ti_calypso.cfg -lpc1751.cfg ti_dm355.cfg -lpc1752.cfg ti_dm365.cfg -lpc1754.cfg ti_dm6446.cfg -lpc1756.cfg tmpa900.cfg -lpc1758.cfg tmpa910.cfg -lpc1759.cfg u8500.cfg -lpc1763.cfg -@end example @item @emph{more} ... browse for other library files which may be useful. For example, there are various generic and CPU-specific utilities. @end itemize @@ -2395,7 +2190,7 @@ use @option{enable} see these errors reported. @deffn {Config Command} gdb_target_description (@option{enable}|@option{disable}) Set to @option{enable} to cause OpenOCD to send the target descriptions to gdb via qXfer:features:read packet. -The default behaviour is @option{disable}. +The default behaviour is @option{enable}. @end deffn @deffn {Command} gdb_save_tdesc @@ -2877,18 +2672,30 @@ usb_blaster_vid_pid 0x16C0 0x06AD @end example @end deffn -@deffn {Command} {usb_blaster} (@option{pin6}|@option{pin8}) (@option{0}|@option{1}) -Sets the state of the unused GPIO pins on USB-Blasters (pins 6 and 8 on the -female JTAG header). These pins can be used as SRST and/or TRST provided the -appropriate connections are made on the target board. +@deffn {Command} {usb_blaster_pin} (@option{pin6}|@option{pin8}) (@option{0}|@option{1}|@option{s}|@option{t}) +Sets the state or function of the unused GPIO pins on USB-Blasters +(pins 6 and 8 on the female JTAG header). These pins can be used as +SRST and/or TRST provided the appropriate connections are made on the +target board. -For example, to use pin 6 as SRST (as with an AVR board): +For example, to use pin 6 as SRST: @example -$_TARGETNAME configure -event reset-assert \ - "usb_blaster pin6 1; wait 1; usb_blaster pin6 0" +usb_blaster_pin pin6 s +reset_config srst_only @end example @end deffn +@deffn {Command} {usb_blaster_lowlevel_driver} (@option{ftdi}|@option{ftd2xx}|@option{ublast2}) +Chooses the low level access method for the adapter. If not specified, +@option{ftdi} is selected unless it wasn't enabled during the +configure stage. USB-Blaster II needs @option{ublast2}. +@end deffn + +@deffn {Command} {usb_blaster_firmware} @var{path} +This command specifies @var{path} to access USB-Blaster II firmware +image. To be used with USB-Blaster II only. +@end deffn + @end deffn @deffn {Interface Driver} {gw16012} @@ -4218,14 +4025,14 @@ not a CPU type. It is based on the ARMv5 architecture. @item @code{openrisc} -- this is an OpenRISC 1000 core. The current implementation supports three JTAG TAP cores: @itemize @minus -@item @code{OpenCores TAP} (See: @emph{http://opencores.org/project,jtag}) -@item @code{Altera Virtual JTAG TAP} (See: @emph{http://www.altera.com/literature/ug/ug_virtualjtag.pdf}) -@item @code{Xilinx BSCAN_* virtual JTAG interface} (See: @emph{http://www.xilinx.com/support/documentation/sw_manuals/xilinx14_2/spartan6_hdl.pdf}) +@item @code{OpenCores TAP} (See: @url{http://opencores.org/project,jtag}) +@item @code{Altera Virtual JTAG TAP} (See: @url{http://www.altera.com/literature/ug/ug_virtualjtag.pdf}) +@item @code{Xilinx BSCAN_* virtual JTAG interface} (See: @url{http://www.xilinx.com/support/documentation/sw_manuals/xilinx14_2/spartan6_hdl.pdf}) @end itemize And two debug interfaces cores: @itemize @minus -@item @code{Advanced debug interface} (See: @emph{http://opencores.org/project,adv_debug_sys}) -@item @code{SoC Debug Interface} (See: @emph{http://opencores.org/project,dbg_interface}) +@item @code{Advanced debug interface} (See: @url{http://opencores.org/project,adv_debug_sys}) +@item @code{SoC Debug Interface} (See: @url{http://opencores.org/project,dbg_interface}) @end itemize @end itemize @end deffn @@ -4549,7 +4356,8 @@ proc my_attach_proc @{ @} @{ mychip.cpu configure -event gdb-attach my_attach_proc mychip.cpu configure -event gdb-attach @{ echo "Reset..." - # To make flash probe and gdb load to flash work we need a reset init. + # To make flash probe and gdb load to flash work + # we need a reset init. reset init @} @end example @@ -4918,6 +4726,26 @@ As noted above, the @command{flash bank} command requires a driver name, and allows driver-specific options and behaviors. Some drivers also activate driver-specific commands. +@deffn {Flash Driver} virtual +This is a special driver that maps a previously defined bank to another +address. All bank settings will be copied from the master physical bank. + +The @var{virtual} driver defines one mandatory parameters, + +@itemize +@item @var{master_bank} The bank that this virtual address refers to. +@end itemize + +So in the following example addresses 0xbfc00000 and 0x9fc00000 refer to +the flash bank defined at address 0x1fc00000. Any cmds executed on +the virtual banks are actually performed on the physical banks. +@example +flash bank $_FLASHNAME pic32mx 0x1fc00000 0 0 0 $_TARGETNAME +flash bank vbank0 virtual 0xbfc00000 0 0 0 $_TARGETNAME $_FLASHNAME +flash bank vbank1 virtual 0x9fc00000 0 0 0 $_TARGETNAME $_FLASHNAME +@end example +@end deffn + @subsection External Flash @deffn {Flash Driver} cfi @@ -5014,6 +4842,19 @@ flash bank $_FLASHNAME stmsmi 0xf8000000 0 0 0 $_TARGETNAME @end deffn +@deffn {Flash Driver} mrvlqspi +This driver supports QSPI flash controller of Marvell's Wireless +Microcontroller platform. + +The flash size is autodetected based on the table of known JEDEC IDs +hardcoded in the OpenOCD sources. + +@example +flash bank $_FLASHNAME mrvlqspi 0x0 0 0 0 $_TARGETNAME 0x46010000 +@end example + +@end deffn + @subsection Internal Flash (Microcontrollers) @deffn {Flash Driver} aduc702x @@ -5634,7 +5475,8 @@ The @var{str7x} driver defines one mandatory parameter, @var{variant}, which is either @code{STR71x}, @code{STR73x} or @code{STR75x}. @example -flash bank $_FLASHNAME str7x 0x40000000 0x00040000 0 0 $_TARGETNAME STR71x +flash bank $_FLASHNAME str7x \ + 0x40000000 0x00040000 0 0 $_TARGETNAME STR71x @end example @deffn Command {str7x disable_jtag} bank @@ -5668,87 +5510,14 @@ The @var{num} parameter is a value shown by @command{flash banks}. @end deffn -@deffn {Flash Driver} tms470 -Most members of the TMS470 microcontroller family from Texas Instruments -include internal flash and use ARM7TDMI cores. -This driver doesn't require the chip and bus width to be specified. - -Some tms470-specific commands are defined: - -@deffn Command {tms470 flash_keyset} key0 key1 key2 key3 -Saves programming keys in a register, to enable flash erase and write commands. -@end deffn - -@deffn Command {tms470 osc_mhz} clock_mhz -Reports the clock speed, which is used to calculate timings. -@end deffn - -@deffn Command {tms470 plldis} (0|1) -Disables (@var{1}) or enables (@var{0}) use of the PLL to speed up -the flash clock. -@end deffn -@end deffn - -@deffn {Flash Driver} virtual -This is a special driver that maps a previously defined bank to another -address. All bank settings will be copied from the master physical bank. - -The @var{virtual} driver defines one mandatory parameters, - -@itemize -@item @var{master_bank} The bank that this virtual address refers to. -@end itemize - -So in the following example addresses 0xbfc00000 and 0x9fc00000 refer to -the flash bank defined at address 0x1fc00000. Any cmds executed on -the virtual banks are actually performed on the physical banks. -@example -flash bank $_FLASHNAME pic32mx 0x1fc00000 0 0 0 $_TARGETNAME -flash bank vbank0 virtual 0xbfc00000 0 0 0 $_TARGETNAME $_FLASHNAME -flash bank vbank1 virtual 0x9fc00000 0 0 0 $_TARGETNAME $_FLASHNAME -@end example -@end deffn - -@deffn {Flash Driver} fm3 -All members of the FM3 microcontroller family from Fujitsu -include internal flash and use ARM Cortex M3 cores. -The @var{fm3} driver uses the @var{target} parameter to select the -correct bank config, it can currently be one of the following: -@code{mb9bfxx1.cpu}, @code{mb9bfxx2.cpu}, @code{mb9bfxx3.cpu}, -@code{mb9bfxx4.cpu}, @code{mb9bfxx5.cpu} or @code{mb9bfxx6.cpu}. - -@example -flash bank $_FLASHNAME fm3 0 0 0 0 $_TARGETNAME -@end example -@end deffn - -@deffn {Flash Driver} sim3x -All members of the SiM3 microcontroller family from Silicon Laboratories -include internal flash and use ARM Cortex M3 cores. It supports both JTAG -and SWD interface. -The @var{sim3x} driver tries to probe the device to auto detect the MCU. -If this failes, it will use the @var{size} parameter as the size of flash bank. - -@example -flash bank $_FLASHNAME sim3x 0 $_CPUROMSIZE 0 0 $_TARGETNAME -@end example - -There are 2 commands defined in the @var{sim3x} driver: - -@deffn Command {sim3x mass_erase} -Erases the complete flash. This is used to unlock the flash. -And this command is only possible when using the SWD interface. -@end deffn - -@deffn Command {sim3x lock} -Lock the flash. To unlock use the @command{sim3x mass_erase} command. -@end deffn - -@end deffn - -@subsection str9xpec driver +@deffn {Flash Driver} str9xpec @cindex str9xpec +Only use this driver for locking/unlocking the device or configuring the option bytes. +Use the standard str9 driver for programming. +Before using the flash commands the turbo mode must be enabled using the +@command{str9xpec enable_turbo} command. + Here is some background info to help you better understand how this driver works. OpenOCD has two flash drivers for the str9: @@ -5786,12 +5555,6 @@ When performing a unlock remember that you will not be able to halt the str9 - i has been locked. Halting the core is not required for the @option{str9xpec} driver as mentioned above, just issue the commands above manually or from a telnet prompt. -@deffn {Flash Driver} str9xpec -Only use this driver for locking/unlocking the device or configuring the option bytes. -Use the standard str9 driver for programming. -Before using the flash commands the turbo mode must be enabled using the -@command{str9xpec enable_turbo} command. - Several str9xpec-specific commands are defined: @deffn Command {str9xpec disable_turbo} num @@ -5842,128 +5605,111 @@ unlock str9 device. @end deffn -@deffn {Flash Driver} nrf51 -All members of the nRF51 microcontroller families from Nordic Semiconductor -include internal flash and use ARM Cortex-M0 core. - -@example -flash bank $_FLASHNAME nrf51 0 0x00000000 0 0 $_TARGETNAME -@end example +@deffn {Flash Driver} tms470 +Most members of the TMS470 microcontroller family from Texas Instruments +include internal flash and use ARM7TDMI cores. +This driver doesn't require the chip and bus width to be specified. -Some nrf51-specific commands are defined: +Some tms470-specific commands are defined: -@deffn Command {nrf51 mass_erase} -Erases the contents of the code memory and user information -configuration registers as well. It must be noted that this command -works only for chips that do not have factory pre-programmed region 0 -code. +@deffn Command {tms470 flash_keyset} key0 key1 key2 key3 +Saves programming keys in a register, to enable flash erase and write commands. @end deffn -@deffn {Flash Driver} mrvlqspi -This driver supports QSPI flash controller of Marvell's Wireless -Microcontroller platform. +@deffn Command {tms470 osc_mhz} clock_mhz +Reports the clock speed, which is used to calculate timings. +@end deffn -The flash size is autodetected based on the table of known JEDEC IDs -hardcoded in the OpenOCD sources. +@deffn Command {tms470 plldis} (0|1) +Disables (@var{1}) or enables (@var{0}) use of the PLL to speed up +the flash clock. @end deffn @end deffn -@section mFlash - -@subsection mFlash Configuration -@cindex mFlash Configuration - -@deffn {Config Command} {mflash bank} soc base RST_pin target -Configures a mflash for @var{soc} host bank at -address @var{base}. -The pin number format depends on the host GPIO naming convention. -Currently, the mflash driver supports s3c2440 and pxa270. - -Example for s3c2440 mflash where @var{RST pin} is GPIO B1: +@deffn {Flash Driver} fm3 +All members of the FM3 microcontroller family from Fujitsu +include internal flash and use ARM Cortex M3 cores. +The @var{fm3} driver uses the @var{target} parameter to select the +correct bank config, it can currently be one of the following: +@code{mb9bfxx1.cpu}, @code{mb9bfxx2.cpu}, @code{mb9bfxx3.cpu}, +@code{mb9bfxx4.cpu}, @code{mb9bfxx5.cpu} or @code{mb9bfxx6.cpu}. @example -mflash bank $_FLASHNAME s3c2440 0x10000000 1b 0 +flash bank $_FLASHNAME fm3 0 0 0 0 $_TARGETNAME @end example +@end deffn -Example for pxa270 mflash where @var{RST pin} is GPIO 43: +@deffn {Flash Driver} sim3x +All members of the SiM3 microcontroller family from Silicon Laboratories +include internal flash and use ARM Cortex M3 cores. It supports both JTAG +and SWD interface. +The @var{sim3x} driver tries to probe the device to auto detect the MCU. +If this failes, it will use the @var{size} parameter as the size of flash bank. @example -mflash bank $_FLASHNAME pxa270 0x08000000 43 0 +flash bank $_FLASHNAME sim3x 0 $_CPUROMSIZE 0 0 $_TARGETNAME @end example -@end deffn -@subsection mFlash commands -@cindex mFlash commands +There are 2 commands defined in the @var{sim3x} driver: -@deffn Command {mflash config pll} frequency -Configure mflash PLL. -The @var{frequency} is the mflash input frequency, in Hz. -Issuing this command will erase mflash's whole internal nand and write new pll. -After this command, mflash needs power-on-reset for normal operation. -If pll was newly configured, storage and boot(optional) info also need to be update. +@deffn Command {sim3x mass_erase} +Erases the complete flash. This is used to unlock the flash. +And this command is only possible when using the SWD interface. @end deffn -@deffn Command {mflash config boot} -Configure bootable option. -If bootable option is set, mflash offer the first 8 sectors -(4kB) for boot. +@deffn Command {sim3x lock} +Lock the flash. To unlock use the @command{sim3x mass_erase} command. @end deffn - -@deffn Command {mflash config storage} -Configure storage information. -For the normal storage operation, this information must be -written. @end deffn -@deffn Command {mflash dump} num filename offset size -Dump @var{size} bytes, starting at @var{offset} bytes from the -beginning of the bank @var{num}, to the file named @var{filename}. -@end deffn +@deffn {Flash Driver} nrf51 +All members of the nRF51 microcontroller families from Nordic Semiconductor +include internal flash and use ARM Cortex-M0 core. -@deffn Command {mflash probe} -Probe mflash. -@end deffn +@example +flash bank $_FLASHNAME nrf51 0 0x00000000 0 0 $_TARGETNAME +@end example -@deffn Command {mflash write} num filename offset -Write the binary file @var{filename} to mflash bank @var{num}, starting at -@var{offset} bytes from the beginning of the bank. -@end deffn +Some nrf51-specific commands are defined: -@node Flash Programming -@chapter Flash Programming +@deffn Command {nrf51 mass_erase} +Erases the contents of the code memory and user information +configuration registers as well. It must be noted that this command +works only for chips that do not have factory pre-programmed region 0 +code. +@end deffn -OpenOCD implements numerous ways to program the target flash, whether internal or external. -Programming can be acheived by either using GDB @ref{programmingusinggdb,,Programming using GDB}, -or using the cmds given in @ref{flashprogrammingcommands,,Flash Programming Commands}. +@end deffn -@*To simplify using the flash cmds directly a jimtcl script is available that handles the programming and verify stage. -OpenOCD will program/verify/reset the target and optionally shutdown. +@deffn {Flash Driver} mdr +This drivers handles the integrated NOR flash on Milandr Cortex-M +based controllers. A known limitation is that the Info memory can't be +read or verified as it's not memory mapped. -The script is executed as follows and by default the following actions will be peformed. -@enumerate -@item 'init' is executed. -@item 'reset init' is called to reset and halt the target, any 'reset init' scripts are executed. -@item @code{flash write_image} is called to erase and write any flash using the filename given. -@item @code{verify_image} is called if @option{verify} parameter is given. -@item @code{reset run} is called if @option{reset} parameter is given. -@item OpenOCD is shutdown if @option{exit} parameter is given. -@end enumerate +@example +flash bank mdr \ + 0 0 @var{type} @var{page_count} @var{sec_count} +@end example -An example of usage is given below. @xref{program}. +@itemize @bullet +@item @var{type} - 0 for main memory, 1 for info memory +@item @var{page_count} - total number of pages +@item @var{sec_count} - number of sector per page count +@end itemize +Example usage: @example -# program and verify using elf/hex/s19. verify and reset -# are optional parameters -openocd -f board/stm32f3discovery.cfg \ - -c "program filename.elf verify reset exit" - -# binary files need the flash address passing -openocd -f board/stm32f3discovery.cfg \ - -c "program filename.bin exit 0x08000000" +if @{ [info exists IMEMORY] && [string equal $IMEMORY true] @} @{ + flash bank $@{_CHIPNAME@}_info.flash mdr 0x00000000 0x01000 \ + 0 0 $_TARGETNAME 1 1 4 +@} else @{ + flash bank $_CHIPNAME.flash mdr 0x00000000 0x20000 \ + 0 0 $_TARGETNAME 0 32 4 +@} @end example +@end deffn -@node NAND Flash Commands -@chapter NAND Flash Commands +@section NAND Flash Commands @cindex NAND Compared to NOR or SPI flash, NAND devices are inexpensive @@ -6027,7 +5773,7 @@ Some larger devices will work, since they are actually multi-chip modules with two smaller chips and individual chipselect lines. @anchor{nandconfiguration} -@section NAND Configuration Commands +@subsection NAND Configuration Commands @cindex NAND configuration NAND chips must be declared in configuration scripts, @@ -6084,7 +5830,7 @@ You must (successfully) probe a device before you can use it with most other NAND commands. @end deffn -@section Erasing, Reading, Writing to NAND Flash +@subsection Erasing, Reading, Writing to NAND Flash @deffn Command {nand dump} num filename offset length [oob_option] @cindex NAND reading @@ -6226,7 +5972,7 @@ hardward-computed ECC before the data is written. This limitation may be removed in a future release. @end deffn -@section Other NAND commands +@subsection Other NAND commands @cindex NAND other commands @deffn Command {nand check_bad_blocks} num [offset length] @@ -6270,7 +6016,7 @@ with the wrong ECC data can cause them to be marked as bad. @end deffn @anchor{nanddriverlist} -@section NAND Driver List +@subsection NAND Driver List As noted above, the @command{nand device} command allows driver-specific options and behaviors. Some controllers also activate controller-specific commands. @@ -6390,6 +6136,100 @@ or @code{read_page} methods, so @command{nand raw_access} won't change any behavior. @end deffn +@section mFlash + +@subsection mFlash Configuration +@cindex mFlash Configuration + +@deffn {Config Command} {mflash bank} soc base RST_pin target +Configures a mflash for @var{soc} host bank at +address @var{base}. +The pin number format depends on the host GPIO naming convention. +Currently, the mflash driver supports s3c2440 and pxa270. + +Example for s3c2440 mflash where @var{RST pin} is GPIO B1: + +@example +mflash bank $_FLASHNAME s3c2440 0x10000000 1b 0 +@end example + +Example for pxa270 mflash where @var{RST pin} is GPIO 43: + +@example +mflash bank $_FLASHNAME pxa270 0x08000000 43 0 +@end example +@end deffn + +@subsection mFlash commands +@cindex mFlash commands + +@deffn Command {mflash config pll} frequency +Configure mflash PLL. +The @var{frequency} is the mflash input frequency, in Hz. +Issuing this command will erase mflash's whole internal nand and write new pll. +After this command, mflash needs power-on-reset for normal operation. +If pll was newly configured, storage and boot(optional) info also need to be update. +@end deffn + +@deffn Command {mflash config boot} +Configure bootable option. +If bootable option is set, mflash offer the first 8 sectors +(4kB) for boot. +@end deffn + +@deffn Command {mflash config storage} +Configure storage information. +For the normal storage operation, this information must be +written. +@end deffn + +@deffn Command {mflash dump} num filename offset size +Dump @var{size} bytes, starting at @var{offset} bytes from the +beginning of the bank @var{num}, to the file named @var{filename}. +@end deffn + +@deffn Command {mflash probe} +Probe mflash. +@end deffn + +@deffn Command {mflash write} num filename offset +Write the binary file @var{filename} to mflash bank @var{num}, starting at +@var{offset} bytes from the beginning of the bank. +@end deffn + +@node Flash Programming +@chapter Flash Programming + +OpenOCD implements numerous ways to program the target flash, whether internal or external. +Programming can be acheived by either using GDB @ref{programmingusinggdb,,Programming using GDB}, +or using the cmds given in @ref{flashprogrammingcommands,,Flash Programming Commands}. + +@*To simplify using the flash cmds directly a jimtcl script is available that handles the programming and verify stage. +OpenOCD will program/verify/reset the target and optionally shutdown. + +The script is executed as follows and by default the following actions will be peformed. +@enumerate +@item 'init' is executed. +@item 'reset init' is called to reset and halt the target, any 'reset init' scripts are executed. +@item @code{flash write_image} is called to erase and write any flash using the filename given. +@item @code{verify_image} is called if @option{verify} parameter is given. +@item @code{reset run} is called if @option{reset} parameter is given. +@item OpenOCD is shutdown if @option{exit} parameter is given. +@end enumerate + +An example of usage is given below. @xref{program}. + +@example +# program and verify using elf/hex/s19. verify and reset +# are optional parameters +openocd -f board/stm32f3discovery.cfg \ + -c "program filename.elf verify reset exit" + +# binary files need the flash address passing +openocd -f board/stm32f3discovery.cfg \ + -c "program filename.bin exit 0x08000000" +@end example + @node PLD/FPGA Commands @chapter PLD/FPGA Commands @cindex PLD @@ -6811,7 +6651,8 @@ In addition the following arguments may be specifed: proc load_image_bin @{fname foffset address length @} @{ # Load data from fname filename at foffset offset to # target at address. Load at most length bytes. - load_image $fname [expr $address - $foffset] bin $address $length + load_image $fname [expr $address - $foffset] bin \ + $address $length @} @end example @end deffn @@ -7736,9 +7577,13 @@ $ stty -F /dev/ttyUSB1 38400 (FT2232H's base frequency is 60MHz, spd_cust allows to alias 38400 baud with our custom divisor to get 12MHz) @item @code{itmdump -f /dev/ttyUSB1 -d1} -@item @code{openocd -f interface/stlink-v2-1.cfg -c "transport select -hla_swd" -f target/stm32l1.cfg -c "tpiu config external uart off -24000000 12000000"} +@item OpenOCD invocation line: +@example +openocd -f interface/stlink-v2-1.cfg \ + -c "transport select hla_swd" \ + -f target/stm32l1.cfg \ + -c "tpiu config external uart off 24000000 12000000" +@end example @end enumerate @end deffn @@ -8615,9 +8460,17 @@ Cyg_Thread::thread_list, Cyg_Scheduler_Base::current_thread. @item ThreadX symbols _tx_thread_current_ptr, _tx_thread_created_ptr, _tx_thread_created_count. @item FreeRTOS symbols +@c The following is taken from recent texinfo to provide compatibility +@c with ancient versions that do not support @raggedright +@tex +\begingroup +\rightskip0pt plus2em \spaceskip.3333em \xspaceskip.5em\relax pxCurrentTCB, pxReadyTasksLists, xDelayedTaskList1, xDelayedTaskList2, pxDelayedTaskList, pxOverflowDelayedTaskList, xPendingReadyList, uxCurrentNumberOfTasks, uxTopUsedPriority. +\par +\endgroup +@end tex @item linux symbols init_task. @item ChibiOS symbols