2
0
mirror of git://git.code.sf.net/p/openocd/code synced 2025-07-26 14:39:32 +10:00
openocd/tcl/target
Andreas Färber 43ff5acd45 flash: New Spansion FM4 flash driver
The Spansion FM4 family of microcontrollers does not offer a way to
identify the chip model nor the flash size, except for Dual Flash vs.
regular layout. Therefore the family is passed as argument and
wildcard-matched - MB9BFx6x and S6E2CC families are supported.

Iterations showed that ...
1) Just doing the flash command sequence from SRAM loader code for each
half-word took 20 minutes for an 8 KB block.
2) Doing the busy-wait in the loader merely reduced the time to 19 minutes.
3) Significant performance gains were achieved by looping in loader code
rather than in OpenOCD and by maximizing the batch size across sectors,
getting us down to ~2 seconds for 8 KB and ~2.5 minutes for 1.1 MB.
(Tested with SK-FM4-176L-S6E2CC-ETH v11, CMSIS-DAP v23.)

gcc, objcopy -Obinary and bin2char.sh are used for automating the
integration of hand-written assembler snippets.

Change-Id: I092c81074662534f50b71b91d54eb8e0098fec76
Signed-off-by: Andreas Färber <afaerber@suse.de>
Reviewed-on: http://openocd.zylin.com/2190
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2016-02-29 19:40:20 +00:00
..
1986ве1т.cfg
aduc702x.cfg
aducm360.cfg flash: Analog Devices ADuCM360 support 2015-09-30 22:12:16 +01:00
alphascale_asm9260t.cfg tcl/target|board: add configs for Alphascale asm9260t 2015-02-22 17:57:02 +00:00
altera_fpgasoc.cfg cfg: Rename leftover cortex_a8 -> cortex_a 2014-07-08 19:33:18 +00:00
am335x.cfg AM335x: allow simultaneous debugging of A8 and M3 cores 2015-12-29 21:16:54 +00:00
am437x.cfg am437x: always use highest possible JTAG clock. 2016-01-22 13:03:39 +00:00
amdm37x.cfg docs: update OpenOCD url's to openocd.org domain 2015-04-16 20:28:21 +01:00
ar71xx.cfg tcl: replace $TARGETNAME with $_TARGETNAME 2015-08-06 13:07:49 +01:00
armada370.cfg
at32ap7000.cfg
at91r40008.cfg
at91rm9200.cfg
at91sam3ax_4x.cfg
at91sam3ax_8x.cfg
at91sam3ax_xx.cfg Added tcl config scripts for SAM3A/X targets and devboard 2012-03-30 15:56:19 +00:00
at91sam3nXX.cfg
at91sam3sXX.cfg at91sam3s* support 2010-06-25 21:37:53 +02:00
at91sam3u1c.cfg update 'flash bank' usage in scripts 2009-11-19 13:39:41 -08:00
at91sam3u1e.cfg
at91sam3u2c.cfg update 'flash bank' usage in scripts 2009-11-19 13:39:41 -08:00
at91sam3u2e.cfg update 'flash bank' usage in scripts 2009-11-19 13:39:41 -08:00
at91sam3u4c.cfg
at91sam3u4e.cfg
at91sam3uxx.cfg make sure file name case of at91sam3uxx matches what other files include 2011-12-01 22:28:33 +00:00
at91sam3XXX.cfg Allow transports to override the selected target (hla configs unification) 2014-08-11 21:25:56 +00:00
at91sam4lXX.cfg AT91SAM4L: handle reset run/halt in SMAP 2015-04-14 15:47:43 +01:00
at91sam4sd32x.cfg
at91sam4sXX.cfg cfg: add initial Atmel xplained kit support 2014-01-09 15:22:56 +00:00
at91sam4XXX.cfg
at91sam7a2.cfg target & board: AT91SAM7A2 and Olimex SAM7-LA2 2015-03-09 06:25:03 +00:00
at91sam7se512.cfg target: Remove "-variant" argument 2014-09-22 19:39:24 +00:00
at91sam7sx.cfg
at91sam7x256.cfg
at91sam7x512.cfg
at91sam9.cfg target: Remove "-variant" argument 2014-09-22 19:39:24 +00:00
at91sam9g10.cfg
at91sam9g20.cfg
at91sam9g45.cfg
at91sam9rl.cfg
at91sam9260_ext_RAM_ext_flash.cfg
at91sam9260.cfg
at91sam9261.cfg
at91sam9263.cfg at91: add at91sam9263 support 2011-03-03 22:49:47 +01:00
at91samdXX.cfg at91samd: handle reset run/halt in DSU 2015-11-20 18:26:05 +00:00
at91samg5x.cfg
atheros_ar2313.cfg tcl/target|board: add config Atheros ar2313 2015-11-03 22:18:27 +00:00
atheros_ar2315.cfg tcl/target|board: add config Atheros ar2315 2015-11-03 22:18:30 +00:00
atheros_ar9331.cfg tcl: replace $TARGETNAME with $_TARGETNAME 2015-08-06 13:07:49 +01:00
atmega128.cfg target config files: Fix whitespace issues. 2011-11-07 16:16:33 +00:00
atsamv.cfg flash: driver for Atmel SAMV, SAMS, and SAME 2015-11-10 20:27:09 +00:00
avr32.cfg scripts: use adapter_nsrst_delay not deprecated jtag_nsrst_delay 2012-03-30 16:01:51 +00:00
bcm47xx.cfg tcl: add bcm47xx config and Asus RT-N16 board using it 2014-01-08 22:18:18 +00:00
bcm281xx.cfg
bcm4706.cfg tcl: add ASUS RT-N66U config 2014-06-01 18:27:09 +00:00
bcm4718.cfg tcl: add bcm47xx config and Asus RT-N16 board using it 2014-01-08 22:18:18 +00:00
bcm5352e.cfg
bcm6348.cfg tcl: bcm6348 target config, BT HomeHub v1 board config 2014-04-14 18:15:24 +00:00
c100.cfg
c100config.tcl
c100helper.tcl TCL scripts: replace "puts" with "echo" 2010-11-09 08:12:51 +01:00
c100regs.tcl
cc26xx.cfg tcl/target: add CC2538 and CC26xx target files (with cJTAG procedure) 2015-02-11 15:22:40 +00:00
cc32xx.cfg cfg: add board and target configs for TI SimpleLink Wi-Fi CC3200 LaunchPad 2015-02-22 19:00:34 +00:00
cc2538.cfg tcl/target: add CC2538 and CC26xx target files (with cJTAG procedure) 2015-02-11 15:22:40 +00:00
cs351x.cfg
davinci.cfg
dragonite.cfg target config files: Fix whitespace issues. 2011-11-07 16:16:33 +00:00
dsp56321.cfg
dsp568013.cfg target config files: Fix whitespace issues. 2011-11-07 16:16:33 +00:00
dsp568037.cfg target config files: Fix whitespace issues. 2011-11-07 16:16:33 +00:00
efm32_stlink.cfg
efm32.cfg Allow transports to override the selected target (hla configs unification) 2014-08-11 21:25:56 +00:00
em357.cfg em357: Corrected EM357 support including errata details 2015-04-14 11:48:50 +01:00
em358.cfg em357: Corrected EM357 support including errata details 2015-04-14 11:48:50 +01:00
epc9301.cfg
exynos5250.cfg tcl/target: Add Exynos5250 config 2015-10-30 12:42:06 +00:00
faux.cfg
feroceon.cfg target config files: Fix whitespace issues. 2011-11-07 16:16:33 +00:00
fm3.cfg Allow transports to override the selected target (hla configs unification) 2014-08-11 21:25:56 +00:00
fm4_mb9bf.cfg flash: New Spansion FM4 flash driver 2016-02-29 19:40:20 +00:00
fm4_s6e2cc.cfg flash: New Spansion FM4 flash driver 2016-02-29 19:40:20 +00:00
fm4.cfg fm4: Add JTAG support 2015-10-30 12:52:50 +00:00
gp326xxxa.cfg
hilscher_netx10.cfg
hilscher_netx50.cfg target config files: Fix whitespace issues. 2011-11-07 16:16:33 +00:00
hilscher_netx500.cfg target config files: Fix whitespace issues. 2011-11-07 16:16:33 +00:00
icepick.cfg tcl: icepick: add icepick_d_set_coreid 2015-04-14 11:23:56 +01:00
imx6.cfg
imx21.cfg target: Remove "-variant" argument 2014-09-22 19:39:24 +00:00
imx25.cfg
imx27.cfg
imx28.cfg target: Remove "-variant" argument 2014-09-22 19:39:24 +00:00
imx31.cfg
imx35.cfg
imx51.cfg
imx53.cfg target: Pull out the jtag_rtck from iMX5x files 2013-07-15 10:02:32 +00:00
imx.cfg target config files: Fix whitespace issues. 2011-11-07 16:16:33 +00:00
is5114.cfg target: Remove "-variant" argument 2014-09-22 19:39:24 +00:00
ixp42x.cfg target: Remove "-variant" argument 2014-09-22 19:39:24 +00:00
k40.cfg tcl/target: consolidate Kinetis configs 2015-01-26 20:57:41 +00:00
k60.cfg tcl/target: consolidate Kinetis configs 2015-01-26 20:57:41 +00:00
k1921vk01t.cfg flash/nor/niietcm4: minor fixes 2016-01-29 05:41:53 +00:00
kl25.cfg tcl/target: consolidate Kinetis configs 2015-01-26 20:57:41 +00:00
kl25z_hla.cfg Allow transports to override the selected target (hla configs unification) 2014-08-11 21:25:56 +00:00
kl46.cfg tcl/target: consolidate Kinetis configs 2015-01-26 20:57:41 +00:00
klx.cfg tcl/target: consolidate Kinetis configs 2015-01-26 20:57:41 +00:00
ks869x.cfg
kx.cfg cfg: Fix Kinetis kwikstik/kx config 2015-02-22 16:23:48 +00:00
lpc1xxx.cfg lpc2000: Add LPC407x/8x flash size auto detection 2015-03-09 06:26:06 +00:00
lpc2xxx.cfg
lpc8xx.cfg lpc8xx: Allow CHIPNAME override 2015-11-03 21:45:28 +00:00
lpc11xx.cfg
lpc12xx.cfg
lpc13xx.cfg cfg: refactor lpc1xxx targets onto one base config 2014-09-08 23:05:08 +00:00
lpc17xx.cfg
lpc40xx.cfg lpc2000: Add LPC407x/8x flash size auto detection 2015-03-09 06:26:06 +00:00
lpc1850.cfg Allow transports to override the selected target (hla configs unification) 2014-08-11 21:25:56 +00:00
lpc2103.cfg
lpc2124.cfg Add another level of procedures to LPC2xxx initialization - procedures for specific targets (setup_lpc<number>) take core clock and adapter clock as parameters. This way "constant" parameters (flash size and type, CPUTAPID, etc.) do not need to be copied if one wishes to change the "variable" parameters - like the core clock or adapter clock - in a board config file or somewhere else. 2011-01-09 21:34:02 +01:00
lpc2129.cfg Add another level of procedures to LPC2xxx initialization - procedures for specific targets (setup_lpc<number>) take core clock and adapter clock as parameters. This way "constant" parameters (flash size and type, CPUTAPID, etc.) do not need to be copied if one wishes to change the "variable" parameters - like the core clock or adapter clock - in a board config file or somewhere else. 2011-01-09 21:34:02 +01:00
lpc2148.cfg
lpc2294.cfg
lpc2378.cfg
lpc2460.cfg Add support for the lpc2460 target 2011-05-03 22:07:01 +02:00
lpc2478.cfg
lpc2900.cfg target: Remove "-variant" argument 2014-09-22 19:39:24 +00:00
lpc3131.cfg
lpc3250.cfg
lpc4350.cfg tcl/target: Add LPC4357 config 2015-10-30 13:14:12 +00:00
lpc4357.cfg tcl/target: Add LPC4357 config 2015-10-30 13:14:12 +00:00
lpc4370.cfg tcl/target: Add configuration for NXP LPC4370 processor 2015-11-05 22:27:04 +00:00
mc13224v.cfg Remove jtag_rclk from target configs 2013-10-29 22:49:35 +00:00
mdr32f9q2i.cfg
nds32v2.cfg
nds32v3.cfg nds32: add new target type nds32_v2, nds32_v3, nds32_v3m 2013-06-05 19:27:35 +00:00
nds32v3m.cfg
nrf51_stlink.tcl
nrf51.cfg nrf51 - Add async loader. Performance on nrf51822QAA/stlink-v2 from ~3.5KiB/s to ~19.5KiB/s. 2015-02-11 22:00:46 +00:00
nrf52.cfg tcl/target: Add Nordic nRF52 config 2015-11-20 18:28:40 +00:00
nuc910.cfg
numicro.cfg numicro: Integrate Nuvoton NuMicro flash driver. 2015-09-30 22:12:39 +01:00
omap2420.cfg
omap3530.cfg
omap4430.cfg target: rename cortex_a8 to cortex_a 2013-04-28 08:56:04 +00:00
omap4460.cfg target: rename cortex_a8 to cortex_a 2013-04-28 08:56:04 +00:00
omap5912.cfg target config files: Fix whitespace issues. 2011-11-07 16:16:33 +00:00
omapl138.cfg Remove jtag_rclk from target configs 2013-10-29 22:49:35 +00:00
or1k.cfg openrisc: add support for JTAG Serial Port 2014-06-22 08:39:08 +00:00
pic32mx.cfg
psoc4.cfg psoc4: support for Cypress PSoC 41xx/42xx family 2015-02-11 14:59:55 +00:00
pxa3xx.cfg
pxa255.cfg
pxa270.cfg target: Remove "-variant" argument 2014-09-22 19:39:24 +00:00
quark_d20xx.cfg quark: add Intel Quark mcu D2000 support 2016-02-13 22:55:41 +00:00
quark_x10xx.cfg
readme.txt
renesas_s7g2.cfg tcl/target: Add Renesas S7G2 config 2015-12-29 20:38:05 +00:00
samsung_s3c2410.cfg
samsung_s3c2440.cfg
samsung_s3c2450.cfg target: Remove "-variant" argument 2014-09-22 19:39:24 +00:00
samsung_s3c4510.cfg
samsung_s3c6410.cfg
sharp_lh79532.cfg target config files: Fix whitespace issues. 2011-11-07 16:16:33 +00:00
sim3x.cfg sim3x: new flash driver for Silabs SiM3 microcontroller family 2015-02-11 22:05:22 +00:00
smp8634.cfg target: Remove "-variant" argument 2014-09-22 19:39:24 +00:00
spear3xx.cfg target config files: Fix whitespace issues. 2011-11-07 16:16:33 +00:00
stellaris_icdi.cfg
stellaris.cfg tcl/target/stellaris: Snowflake supports SYSRESETREQ too 2015-01-26 20:57:56 +00:00
stm32_stlink.cfg Allow transports to override the selected target (hla configs unification) 2014-08-11 21:25:56 +00:00
stm32f0x_stlink.cfg
stm32f0x.cfg tcl: Add default hooks for STM32F0x 2015-11-12 20:20:33 +00:00
stm32f1x_stlink.cfg
stm32f1x.cfg armv7m: add generic trace support (TPIU, ITM, etc.) 2015-03-25 20:46:43 +00:00
stm32f2x_stlink.cfg Allow transports to override the selected target (hla configs unification) 2014-08-11 21:25:56 +00:00
stm32f2x.cfg stm32xxx.cfg: Only touch IWDG and WWDG in DBGMCU_APB1_FZ. 2015-11-12 15:03:40 +00:00
stm32f3x_stlink.cfg Allow transports to override the selected target (hla configs unification) 2014-08-11 21:25:56 +00:00
stm32f3x.cfg stm32xxx.cfg: Only touch IWDG and WWDG in DBGMCU_APB1_FZ. 2015-11-12 15:03:40 +00:00
stm32f4x_stlink.cfg Allow transports to override the selected target (hla configs unification) 2014-08-11 21:25:56 +00:00
stm32f4x.cfg tcl/target/stm32f4: fix: reduce adapter speed before reset 2016-02-29 19:16:07 +00:00
stm32f7x.cfg stm32xxx.cfg: Only touch IWDG and WWDG in DBGMCU_APB1_FZ. 2015-11-12 15:03:40 +00:00
stm32l0.cfg cfg: add srst_nogate to the supported targets, remove from board configs 2015-01-26 20:54:51 +00:00
stm32l1.cfg stm32xxx.cfg: Only touch IWDG and WWDG in DBGMCU_APB1_FZ. 2015-11-12 15:03:40 +00:00
stm32l1x_dual_bank.cfg flash/nor/stm32lx: use 0 base to autodetect second bank location 2015-02-04 22:02:45 +00:00
stm32l4x.cfg stm32l4: Add cpu and stm32l4discovery board configuration. 2015-11-12 20:21:06 +00:00
stm32lx_stlink.cfg
stm32w108_stlink.cfg
stm32w108xx.cfg cfg: add srst_nogate to the supported targets, remove from board configs 2015-01-26 20:54:51 +00:00
stm32xl.cfg cfg: update scripts to use new stm32 driver names 2011-07-28 11:45:09 +01:00
str710.cfg
str730.cfg target: Remove "-variant" argument 2014-09-22 19:39:24 +00:00
str750.cfg
str912.cfg
swj-dp.tcl transport: make 'transport select' auto-select the first available transport if not set 2015-03-25 21:32:49 +00:00
test_reset_syntax_error.cfg
test_syntax_error.cfg Remove annoying end-of-line whitespace from tcl/* files 2009-09-21 18:48:22 +00:00
ti_calypso.cfg
ti_dm355.cfg
ti_dm365.cfg
ti_dm6446.cfg Remove jtag_rclk from target configs 2013-10-29 22:49:35 +00:00
ti_rm4x.cfg target/ti_tms570.cfg: added several JTAG IDs for TMS570LS family 2015-04-24 14:55:30 +01:00
ti_tms570.cfg target/ti_tms570.cfg: added several JTAG IDs for TMS570LS family 2015-04-24 14:55:30 +01:00
ti_tms570ls20xxx.cfg TI TMS570 USB Kit board config 2015-04-24 14:55:16 +01:00
ti_tms570ls3137.cfg TI TMS570 USB Kit board config 2015-04-24 14:55:16 +01:00
ti-ar7.cfg cfg: add Netgear DG834v3 configuration 2013-03-06 21:57:29 +00:00
ti-cjtag.cfg tcl/target: add CC2538 and CC26xx target files (with cJTAG procedure) 2015-02-11 15:22:40 +00:00
tmpa900.cfg target config files: Fix whitespace issues. 2011-11-07 16:16:33 +00:00
tmpa910.cfg
u8500.cfg target: rename cortex_a8 to cortex_a 2013-04-28 08:56:04 +00:00
vybrid_vf6xx.cfg tcl/target: Add Freescale Vybrid VF6xx config 2015-08-06 13:08:36 +01:00
xmc1xxx.cfg tcl/target: Add Infineon XMC1000 family target config 2015-04-14 11:52:20 +01:00
xmc4xxx.cfg flash: New driver for XMC4xxx microcontroller family 2015-11-11 12:08:35 +00:00
xmos_xs1-xau8a-10_arm.cfg tcl/target: Add config for XMOS XS1-XAU8A-10's ARM core 2015-10-30 12:39:42 +00:00
zynq_7000.cfg zynq_7000: Add expected ID 2015-09-30 22:10:42 +01:00
к1879xб1я.cfg

Prerequisites:
The users of OpenOCD as well as computer programs interacting with OpenOCD are expecting that certain commands
do the same thing across all the targets.

Rules to follow when writing scripts:

1. The configuration script should be defined such as , for example, the following sequences are working:
	reset
	flash info <bank>
and
	reset
	flash erase_address <start> <len>
and
	reset init
	load

In most cases this can be accomplished by specifying the default startup mode as reset_init (target command
in the configuration file).

2. If the target is correctly configured, flash must be writable without any other helper commands. It is
assumed that all write-protect mechanisms should be disabled.

3. The configuration scripts should be defined such as the binary that was written to flash verifies
(turn off remapping, checksums, etc...)

flash write_image [file] <parameters>
verify_image [file] <parameters>

4. adapter_khz sets the maximum speed (or alternatively RCLK). If invoked
multiple times only the last setting is used.

interface/xxx.cfg files are always executed *before* target/xxx.cfg
files, so any adapter_khz in interface/xxx.cfg will be overridden by
target/xxx.cfg. adapter_khz in interface/xxx.cfg would then, effectively,
set the default JTAG speed.

Note that a target/xxx.cfg file can invoke another target/yyy.cfg file,
so one can create target subtype configurations where e.g. only
amount of DRAM, oscillator speeds differ and having a single
config file for the default/common settings.