openocd/src/flash/nor
Bohdan Tymkiv 4440bf1fcd psoc6: Run flash algorithm asynchronously to improve performance
Existing psoc6 driver starts flash algorithm for each Flash row. This is
suboptimal from performance point of view, starting/stopping flash
algorithm for each row adds significant overhead. This change starts
flash algorithm and leaves it running asynchronously while driver
performs flash operations.

Performance gain is 170...250% depending on probe:

flash write_image img_256k.bin    | w/o this change | with this change |
----------------------------------|-----------------|------------------|
KitProg2/CMSIS-DAP, SWD @ 1 MHz   |     4 KiB/s     |     10 KiB/s     |
J-Link Ultra, SWD @ 1 MHz         |    17 KiB/s     |     31 KiB/s     |
J-Link Ultra, SWD @ 4 MHz         |    33 KiB/s     |     57 KiB/s     |

Change-Id: I5bd582584b35af67600c4d197829eb7aeeec7e3f
Signed-off-by: Bohdan Tymkiv <bhdt@cypress.com>
Reviewed-on: http://openocd.zylin.com/4472
Tested-by: jenkins
Reviewed-by: Tomas Vanek <vanekt@fbl.cz>
2018-04-23 20:42:06 +01:00
..
Makefile.am Added support for STMicroelectronics BlueNRG-1 and BlueNRG-2 SoC 2018-03-07 23:40:55 +00:00
aduc702x.c Fix usage of timeval_ms() 2016-07-19 10:45:16 +01:00
aducm360.c Fix usage of timeval_ms() 2016-07-19 10:45:16 +01:00
ambiqmicro.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
at91sam3.c flash/nor/at91sam: implement flash bank deallocation for SAM series 2018-04-10 06:19:01 +01:00
at91sam4.c flash/nor/at91sam: implement flash bank deallocation for SAM series 2018-04-10 06:19:01 +01:00
at91sam4l.c flash/nor/at91sam: implement flash bank deallocation for SAM series 2018-04-10 06:19:01 +01:00
at91sam7.c target, flash: prepare infrastructure for multi-block blank check 2018-04-10 06:16:40 +01:00
at91samd.c flash/nor/at91sam: implement flash bank deallocation for SAM series 2018-04-10 06:19:01 +01:00
ath79.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
atsamv.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
avrf.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
bluenrg-x.c Fix for warnings detected by clang static analyzer 2018-04-04 21:23:57 +01:00
cfi.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
cfi.h cfi: Add support for strangely endianness broken SoC implementations 2016-06-23 07:39:57 +01:00
core.c flash/nor: handle flash write alignment/padding in the infrastructure 2018-04-10 06:17:52 +01:00
core.h flash/nor: handle flash write alignment/padding in the infrastructure 2018-04-10 06:17:52 +01:00
driver.h flash/nor: implement flash bank deallocation on OpenOCD exit 2018-03-30 10:13:09 +01:00
drivers.c Added support for STMicroelectronics BlueNRG-1 and BlueNRG-2 SoC 2018-03-07 23:40:55 +00:00
dsp5680xx_flash.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
efm32.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
em357.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
faux.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
fm3.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
fm4.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
imp.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
jtagspi.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
kinetis.c flash/nor/kinetis: implement flash bank deallocation 2018-04-10 06:18:35 +01:00
kinetis_ke.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
lpc288x.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
lpc2000.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
lpc2900.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
lpcspifi.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
mdr.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
mrvlqspi.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
niietcm4.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
non_cfi.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
non_cfi.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
nrf5.c nrf51: Add HWID 0x008F again 2018-04-04 21:27:33 +01:00
numicro.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
ocl.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
ocl.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
pic32mx.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
psoc4.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
psoc6.c psoc6: Run flash algorithm asynchronously to improve performance 2018-04-23 20:42:06 +01:00
sim3x.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
spi.c spi: add n25q256 flash 2017-12-06 21:06:00 +00:00
spi.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
stellaris.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
stm32f1x.c flash/nor, contrib/loaders: add stm32 loaders Makefile and generated .inc 2018-04-23 20:41:50 +01:00
stm32f2x.c flash/nor, contrib/loaders: add stm32 loaders Makefile and generated .inc 2018-04-23 20:41:50 +01:00
stm32h7x.c flash/nor, contrib/loaders: add stm32 loaders Makefile and generated .inc 2018-04-23 20:41:50 +01:00
stm32l4x.c flash/nor, contrib/loaders: add stm32 loaders Makefile and generated .inc 2018-04-23 20:41:50 +01:00
stm32lx.c flash/nor, contrib/loaders: add stm32 loaders Makefile and generated .inc 2018-04-23 20:41:50 +01:00
stmsmi.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
str7x.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
str9x.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
str9xpec.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
tcl.c flash/nor: handle flash write alignment/padding in the infrastructure 2018-04-10 06:17:52 +01:00
tms470.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
virtual.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
xcf.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
xmc1xxx.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00
xmc4xxx.c flash/nor: implement flash bank deallocation in drivers with simple alloc 2018-04-04 20:14:18 +01:00