openocd/src/target
Seth LaForge 7b6158db4e cortex_a: fix lockup when writing to high address
On a processor with caches, when you write data to memory OpenOCD invalidates
the cache lines affected. If you write to an address within 64 bytes of
UINT32_MAX, then the for loop control variable wrapped around resulting in an
infinite loop. Change control variable to be an offset from the address
involved. We should never be asked to write 2^32 bytes, so wraparound should
not be a problem.

Change-Id: Ibfe654113eff71684862ff651e7a1cd05ccc6760
Signed-off-by: Seth LaForge <sethml@google.com>
Reviewed-on: http://openocd.zylin.com/2126
Tested-by: jenkins
Reviewed-by: Spencer Oliver <spen@spen-soft.co.uk>
2014-06-22 08:23:53 +00:00
..
openrisc target: or1k: remove wrong endian swap from or1k generic code 2014-06-05 19:21:46 +00:00
xscale update files to correct FSF address 2013-06-05 19:52:42 +00:00
adi_v5_cmsis_dap.c adi_v5_cmsis_dap: Fix logging order of appearance 2014-06-01 17:01:46 +00:00
adi_v5_jtag.c Remove unnecessary (void *) 2013-10-31 20:42:47 +00:00
adi_v5_swd.c cmsis-dap: add initial cmsis-dap support 2014-01-09 15:20:51 +00:00
algorithm.c update files to correct FSF address 2013-06-05 19:52:42 +00:00
algorithm.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
arm_adi_v5.c arm_adi_v5: Do not ignore register polling timeout 2014-06-01 17:01:37 +00:00
arm_adi_v5.h arm_adi_v5: Do not ignore register polling timeout 2014-06-01 17:01:37 +00:00
arm_disassembler.c update files to correct FSF address 2013-06-05 19:52:42 +00:00
arm_disassembler.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
arm_dpm.c update files to correct FSF address 2013-06-05 19:52:42 +00:00
arm_dpm.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
arm_jtag.c Retire jtag_add_dr_out 2014-01-20 13:28:26 +00:00
arm_jtag.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
arm_opcodes.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
arm_semihosting.c Remove unnecessary (void *) 2013-10-31 20:42:47 +00:00
arm_semihosting.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
arm_simulator.c update files to correct FSF address 2013-06-05 19:52:42 +00:00
arm_simulator.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
arm.h target: fix incorrect arm cpu monitor mode encoding 2014-04-14 18:15:57 +00:00
arm7_9_common.c target: use target_buffer_set_u32_array 2013-11-07 21:38:49 +00:00
arm7_9_common.h arm7_9: Avoid infinite loops in bulk write dispatching 2013-10-15 20:41:08 +00:00
arm7tdmi.c Retire jtag_add_dr_out 2014-01-20 13:28:26 +00:00
arm7tdmi.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
arm9tdmi.c arm7_9: Avoid infinite loops in bulk write dispatching 2013-10-15 20:41:08 +00:00
arm9tdmi.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
arm11_dbgtap.c Don't cast return value of [cm]alloc 2014-03-30 03:53:45 +00:00
arm11_dbgtap.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
arm11.c target: remove unimplemented target_request_data implementations 2013-09-08 16:12:41 +00:00
arm11.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
arm720t.c [RFC] target: Move bulk_write_memory to arm7_9 2013-09-13 19:33:28 +00:00
arm720t.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
arm920t.c arm920t: fix write memory operations with caches enabled 2014-01-24 12:48:43 +00:00
arm920t.h arm7_9: Avoid infinite loops in bulk write dispatching 2013-10-15 20:41:08 +00:00
arm926ejs.c arm926ejs: fix write memory operations with caches enabled 2014-02-11 13:38:39 +00:00
arm926ejs.h arm7_9: Avoid infinite loops in bulk write dispatching 2013-10-15 20:41:08 +00:00
arm946e.c Clean up many C99 integer types format specifiers 2013-10-31 20:40:03 +00:00
arm946e.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
arm966e.c [RFC] target: Move bulk_write_memory to arm7_9 2013-09-13 19:33:28 +00:00
arm966e.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
armv4_5_cache.c update files to correct FSF address 2013-06-05 19:52:42 +00:00
armv4_5_cache.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
armv4_5_mmu.c update files to correct FSF address 2013-06-05 19:52:42 +00:00
armv4_5_mmu.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
armv4_5.c Add GDB remote target description support for ARM4 2014-01-23 21:39:13 +00:00
armv4_5.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
armv7a.c Disable multiprocessor-id read on ARMv7-R cores 2014-06-01 17:37:56 +00:00
armv7a.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
armv7m.c armv7m: remove magic numbers for number of core registers 2014-03-29 07:47:48 +00:00
armv7m.h armv7m: remove magic numbers for number of core registers 2014-03-29 07:47:48 +00:00
avr32_ap7k.c mips32, dsp563xx: fix segfault on Gdb attach 2014-04-14 18:18:13 +00:00
avr32_ap7k.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
avr32_jtag.c update files to correct FSF address 2013-06-05 19:52:42 +00:00
avr32_jtag.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
avr32_mem.c update files to correct FSF address 2013-06-05 19:52:42 +00:00
avr32_mem.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
avr32_regs.c update files to correct FSF address 2013-06-05 19:52:42 +00:00
avr32_regs.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
avrt.c target: remove unimplemented target_request_data implementations 2013-09-08 16:12:41 +00:00
avrt.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
breakpoints.c Clean up many C99 integer types format specifiers 2013-10-31 20:40:03 +00:00
breakpoints.h gdb server: new feature, add stop reason in stop reply packet for gdb 2013-08-07 21:01:08 +00:00
cortex_a.c cortex_a: fix lockup when writing to high address 2014-06-22 08:23:53 +00:00
cortex_a.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
cortex_m.c cortexm: use Cortex-M rather than cortex-m3 for dwt registers 2014-01-19 19:24:34 +00:00
cortex_m.h cortex_m: target implementation renames cortex_m3 to cortex_m 2013-10-10 20:51:03 +00:00
dsp563xx_once.c dsp563xx: Adding breakpoint/watchpoint support. 2013-07-15 10:05:15 +00:00
dsp563xx_once.h dsp563xx: Adding breakpoint/watchpoint support. 2013-07-15 10:05:15 +00:00
dsp563xx.c mips32, dsp563xx: fix segfault on Gdb attach 2014-04-14 18:18:13 +00:00
dsp563xx.h dsp563xx: Adding breakpoint/watchpoint support. 2013-07-15 10:05:15 +00:00
dsp5680xx.c flash: Constify write buffer 2014-03-17 12:47:18 +00:00
dsp5680xx.h flash: Constify write buffer 2014-03-17 12:47:18 +00:00
embeddedice.c update files to correct FSF address 2013-06-05 19:52:42 +00:00
embeddedice.h Retire jtag_add_dr_out 2014-01-20 13:28:26 +00:00
etb.c target: fix typos 2014-01-19 19:26:12 +00:00
etb.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
etm_dummy.c update files to correct FSF address 2013-06-05 19:52:42 +00:00
etm_dummy.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
etm.c target: fix typos 2014-01-19 19:26:12 +00:00
etm.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
fa526.c arm7_9: Avoid infinite loops in bulk write dispatching 2013-10-15 20:41:08 +00:00
feroceon.c target: use target_buffer_set_u32_array 2013-11-07 21:38:49 +00:00
hla_target.c hla: Make consistent parameter naming 2013-11-07 22:19:50 +00:00
image.c Constify received GDB packet 2014-03-04 20:17:34 +00:00
image.h Constify received GDB packet 2014-03-04 20:17:34 +00:00
lakemont.c quark_x10xx: cleanup of LOG format specifiers 2014-05-31 12:01:31 +00:00
lakemont.h quark_x10xx: cleanup of LOG format specifiers 2014-05-31 12:01:31 +00:00
Makefile.am Add xscale debug helper sources and everything related to dist 2014-03-29 07:56:33 +00:00
mips_ejtag.c mips32: new code for pracc exec 2014-05-09 20:40:31 +00:00
mips_ejtag.h mips32: new code for pracc exec 2014-05-09 20:40:31 +00:00
mips_m4k.c Clean up const usage to avoid excessive casting 2013-10-31 20:42:34 +00:00
mips_m4k.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
mips32_dmaacc.c Clean up const usage to avoid excessive casting 2013-10-31 20:42:34 +00:00
mips32_dmaacc.h Clean up const usage to avoid excessive casting 2013-10-31 20:42:34 +00:00
mips32_pracc.c target/mips32_pracc: fix C99 format specifiers 2014-05-31 12:02:28 +00:00
mips32_pracc.h mips32: new code for pracc exec 2014-05-09 20:40:31 +00:00
mips32.c mips: load code in buffer mode 2014-05-09 20:37:42 +00:00
mips32.h gdb_server: support gdb target description 2013-08-07 21:00:40 +00:00
nds32_aice.c nds32: support multi-target debugging 2013-09-13 19:37:58 +00:00
nds32_aice.h nds32: support multi-target debugging 2013-09-13 19:37:58 +00:00
nds32_cmd.c target: remove memory leaks 2014-03-29 08:04:55 +00:00
nds32_cmd.h nds32: add new target type nds32_v2, nds32_v3, nds32_v3m 2013-06-05 19:27:35 +00:00
nds32_disassembler.c target/nds32_disassembler: fix format specifiers warnings 2014-02-04 21:18:27 +00:00
nds32_disassembler.h nds32: add new target type nds32_v2, nds32_v3, nds32_v3m 2013-06-05 19:27:35 +00:00
nds32_edm.h nds32: add new target type nds32_v2, nds32_v3, nds32_v3m 2013-06-05 19:27:35 +00:00
nds32_insn.h nds32: add new target type nds32_v2, nds32_v3, nds32_v3m 2013-06-05 19:27:35 +00:00
nds32_reg.c Clean up many C99 integer types format specifiers 2013-10-31 20:40:03 +00:00
nds32_reg.h nds32: add new target type nds32_v2, nds32_v3, nds32_v3m 2013-06-05 19:27:35 +00:00
nds32_tlb.c nds32: add new target type nds32_v2, nds32_v3, nds32_v3m 2013-06-05 19:27:35 +00:00
nds32_tlb.h nds32: add new target type nds32_v2, nds32_v3, nds32_v3m 2013-06-05 19:27:35 +00:00
nds32_v2.c Conform to C99 integer types format specifiers 2014-01-15 12:40:42 +00:00
nds32_v2.h nds32: add new target type nds32_v2, nds32_v3, nds32_v3m 2013-06-05 19:27:35 +00:00
nds32_v3_common.c Conform to C99 integer types format specifiers 2014-01-15 12:40:42 +00:00
nds32_v3_common.h nds32: remove .soft_reset_halt dependency 2013-09-13 19:38:09 +00:00
nds32_v3.c Conform to C99 integer types format specifiers 2014-01-15 12:40:42 +00:00
nds32_v3.h nds32: add new target type nds32_v2, nds32_v3, nds32_v3m 2013-06-05 19:27:35 +00:00
nds32_v3m.c Conform to C99 integer types format specifiers 2014-01-15 12:40:42 +00:00
nds32_v3m.h nds32: add new target type nds32_v2, nds32_v3, nds32_v3m 2013-06-05 19:27:35 +00:00
nds32.c Don't cast return value of [cm]alloc 2014-03-30 03:53:45 +00:00
nds32.h nds32: Remove unused declaration 2013-10-15 20:41:27 +00:00
oocd_trace.c oocd_trace: fix warnings 2013-07-15 09:54:44 +00:00
oocd_trace.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
quark_x10xx.c quark_x10xx: add new target quark_x10xx 2014-02-11 13:07:29 +00:00
register.c update files to correct FSF address 2013-06-05 19:52:42 +00:00
register.h gdb: add default description reg types 2013-09-21 20:08:16 +00:00
smp.c Constify received GDB packet 2014-03-04 20:17:34 +00:00
smp.h Constify received GDB packet 2014-03-04 20:17:34 +00:00
startup.tcl tcl: introduce init_target_events and use it for gdb flashing events 2014-03-29 08:40:03 +00:00
target_request.c target: check target supports target_request_data 2013-09-08 16:12:27 +00:00
target_request.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
target_type.h target: add profiling interface 2013-09-13 19:37:07 +00:00
target.c src/target: select the last created target as current 2014-06-01 17:36:41 +00:00
target.h flash: Constify write buffer 2014-03-17 12:47:18 +00:00
testee.c update files to correct FSF address 2013-06-05 19:52:42 +00:00
trace.c update files to correct FSF address 2013-06-05 19:52:42 +00:00
trace.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
x86_32_common.c quark_x10xx: cleanup of LOG format specifiers 2014-05-31 12:01:31 +00:00
x86_32_common.h quark_x10xx: cleanup of LOG format specifiers 2014-05-31 12:01:31 +00:00
xscale.c target: remove memory leaks 2014-03-29 08:04:55 +00:00
xscale.h target: xscale more human vector catching 2013-07-01 08:44:59 +00:00