openocd/src
Andreas Fritiofson ff5ec942d8 arm7_9: Avoid infinite loops in bulk write dispatching
Add a mandatory field in struct arm7_9_common for regular, non-optimized
memory writes. Together with the existing bulk_memory_write field, this
allows variants to select any combination of implementations for regular
and bulk writes, without risking infinite loops from accidentally using
bulk writes for implementing bulk writes.

ARM 7/9 targets may now select arm7_9_memory_write_opt as their
target.write_memory implementation, which will dispatch to
arm7_9_common.bulk_write_memory if possible, or fallback to
arm7_9_common.write_memory otherwise.

To avoid loops, bulk write implementations mustn't call any other
functions than arm7_9_write_memory_no_opt() to write memory; it will
unconditionally call arm7_9_common.write_memory. If they fail, they should
simply return error to allow the caller to fallback to regular writes.

Tested on a regular ARM7TDMI only.

Change-Id: Iae42a6e093e2df68c4823c927d757ae8f42ef388
Signed-off-by: Andreas Fritiofson <andreas.fritiofson@gmail.com>
Reviewed-on: http://openocd.zylin.com/1685
Tested-by: jenkins
Reviewed-by: Sergey A. Borshch <sb-sf@users.sourceforge.net>
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2013-10-15 20:41:08 +00:00
..
flash sam4s flash: remove unused bootstrap routine 2013-10-15 20:39:07 +00:00
helper Add new target type: OpenRISC 2013-09-26 09:52:56 +00:00
jtag jtag_vpi: use DIV_ROUND_UP 2013-10-15 20:39:33 +00:00
pld update files to correct FSF address 2013-06-05 19:52:42 +00:00
rtos cortex_m: target implementation renames cortex_m3 to cortex_m 2013-10-10 20:51:03 +00:00
server gdb_server: Further cleanup of target desc functions 2013-10-03 21:10:24 +00:00
svf svf: off-by-one error; do not access after the allocated memory 2013-09-13 19:34:46 +00:00
target arm7_9: Avoid infinite loops in bulk write dispatching 2013-10-15 20:41:08 +00:00
transport update files to correct FSF address 2013-06-05 19:52:42 +00:00
xsvf update files to correct FSF address 2013-06-05 19:52:42 +00:00
hello.c update files to correct FSF address 2013-06-05 19:52:42 +00:00
hello.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
main.c update files to correct FSF address 2013-06-05 19:52:42 +00:00
Makefile.am libusb: require pkg-config support 2013-09-13 21:43:18 +00:00
openocd.c update files to correct FSF address 2013-06-05 19:52:42 +00:00
openocd.h update files to correct FSF address 2013-06-05 19:52:42 +00:00