openocd/src/target
Matthias Welwarsky 8704e53665 armv7a: fix handling of inner caches
ARMv7 architecture allows up to 7 cache levels that are architecturally
visible, as opposed to "system caches", which are outside of the domain
defined by ARMv7 and require separate management. This patch enables
detection and identification of caches at all levels. It also implements
a new "flush-all" function that cleans & invalidates all cache levels to
the "Point of Coherence".

Change-Id: Ib77115d6044d39845907941c6f031e208f6e0aa5
Signed-off-by: Matthias Welwarsky <matthias@welwarsky.de>
Reviewed-on: http://openocd.zylin.com/3024
Reviewed-by: Paul Fertser <fercerpav@gmail.com>
Tested-by: jenkins
2015-11-30 05:40:57 +00:00
..
openrisc openrisc: add profiling function 2015-03-09 06:38:15 +00:00
xscale update files to correct FSF address 2013-06-05 19:52:42 +00:00
adi_v5_jtag.c jtag/adi_v5_jtag: fix infinite recursion in jtagdp_transaction_endcheck() 2015-04-14 12:39:02 +01:00
adi_v5_swd.c target/adi_v5_swd, cortex_m: properly handle more cases requiring reconnect 2015-03-25 21:32:06 +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 adi_v5: Fix wrong ap value 2015-11-27 10:38:22 +00:00
arm_adi_v5.h ADIv5: Fix typo in log message 2015-09-30 22:48:19 +01:00
arm_disassembler.c target/arm_disassembler: add exception related disassembly 2015-03-09 06:35:21 +00:00
arm_disassembler.h target/arm_disassembler: add exception related disassembly 2015-03-09 06:35:21 +00:00
arm_dpm.c armv7m: add FPU registers support 2015-03-09 06:36:30 +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 target: constify structures 2014-10-06 11:57:40 +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 armv7m: add FPU registers support 2015-03-09 06:36:30 +00:00
arm7_9_common.c armv7m: add FPU registers support 2015-03-09 06:36:30 +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 arm11: initialise DPM and register cache before reading DSCR for the first time 2015-03-09 06:39:28 +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 armv7m: add FPU registers support 2015-03-09 06:36:30 +00:00
armv4_5.h update files to correct FSF address 2013-06-05 19:52:42 +00:00
armv7a_cache_l2x.c armv7a: fix handling of inner caches 2015-11-30 05:40:57 +00:00
armv7a_cache_l2x.h armv7a: remove special l2x flush-all and cache-info handlers 2015-11-30 05:40:34 +00:00
armv7a_cache.c armv7a: fix handling of inner caches 2015-11-30 05:40:57 +00:00
armv7a_cache.h armv7a: fix handling of inner caches 2015-11-30 05:40:57 +00:00
armv7a.c armv7a: fix handling of inner caches 2015-11-30 05:40:57 +00:00
armv7a.h armv7a: fix handling of inner caches 2015-11-30 05:40:57 +00:00
armv7m_trace.c server: tcl_trace command 2015-09-05 09:19:26 +01:00
armv7m_trace.h armv7m_trace, stlink: provide APIs to capture trace with an adapter 2015-03-25 20:46:59 +00:00
armv7m.c armv7m: Fix memory leak in register caching. 2015-09-30 22:13:50 +01:00
armv7m.h armv7m: Fix memory leak in register caching. 2015-09-30 22:13:50 +01:00
avr32_ap7k.c target: constify structures 2014-10-06 11:57:40 +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 target: constify structures 2014-10-06 11:57:40 +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 armv7a: fix handling of inner caches 2015-11-30 05:40:57 +00:00
cortex_a.h Cortex A/R : Allow interrupt disable during single-step 2015-11-07 20:36:13 +00:00
cortex_m.c cortex_m: dwt_num_comp should be set to zero in cortex_m_dwt_free() 2015-11-03 22:11:50 +00:00
cortex_m.h Cortex-M: Detect Flash Patch Revision and implement Rev. 2 handling. 2015-10-30 12:56:09 +00:00
dsp563xx_once.c dsp563xx: Adding breakpoint/watchpoint support. 2013-07-15 10:05:15 +00:00
dsp563xx_once.h target: constify structures 2014-10-06 11:57:40 +00:00
dsp563xx.c target: constify structures 2014-10-06 11:57:40 +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 target: constify structures 2014-10-06 11:57:40 +00:00
embeddedice.h Retire jtag_add_dr_out 2014-01-20 13:28:26 +00:00
etb.c Use (uint8_t *) for buf_(set|get)_u(32|64) instead of (void *) 2015-01-30 08:56:54 +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 helper/fileio: Use size_t for file size. 2015-11-03 22:14:07 +00:00
etm.h Use (uint8_t *) for buf_(set|get)_u(32|64) instead of (void *) 2015-01-30 08:56:54 +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 armv7m: add generic trace support (TPIU, ITM, etc.) 2015-03-25 20:46:43 +00:00
image.c helper/fileio: Use size_t for file size. 2015-11-03 22:14:07 +00:00
image.h Constify received GDB packet 2014-03-04 20:17:34 +00:00
lakemont.c quark: updating license to GPLv2+ 2015-10-30 13:30:37 +00:00
lakemont.h quark: updating license to GPLv2+ 2015-10-30 13:30:37 +00:00
Makefile.am add armv7a_cache handlers 2015-11-30 05:39:40 +00:00
mips_ejtag.c Fix several format specifiers errors exposed by arm-none-eabi 2015-04-16 20:24:50 +01:00
mips_ejtag.h mips32.c: cache debug caps and support EJTAG 2.0 specific changes 2014-08-19 20:18:02 +00:00
mips_m4k.c mips_m4k.c: EJTAGBOOT and NORMALBOOT are not supported on EJTAG 2.0 2014-08-19 20:18:16 +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 mips32: add gdb target description support 2015-02-11 22:11:19 +00:00
mips32.h mips32: add gdb target description support 2015-02-11 22:11:19 +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 target: constify structures 2014-10-06 11:57:40 +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 nds32: Use the correct method to access registers 2015-02-11 22:16:51 +00:00
nds32.h nds32: Use the correct method to access registers 2015-02-11 22:16:51 +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: updating license to GPLv2+ 2015-10-30 13:30:37 +00:00
register.c target/cortex_m: do not leak memory on reexamination 2015-03-09 06:40:21 +00:00
register.h target/cortex_m: do not leak memory on reexamination 2015-03-09 06:40:21 +00:00
smp.c Use (uint8_t *) for buf_(set|get)_u(32|64) instead of (void *) 2015-01-30 08:56:54 +00:00
smp.h Constify received GDB packet 2014-03-04 20:17:34 +00:00
startup.tcl tcl: introduce using_(jtag|swd|hla) helpers and use them in reset handler 2014-06-28 09:28:12 +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 server, target, cortex_m: add deinit_target to the API to free resources 2015-03-09 08:34:46 +00:00
target.c helper/fileio: Use size_t for file size. 2015-11-03 22:14:07 +00:00
target.h server: tcl_trace command 2015-09-05 09:19:26 +01:00
testee.c target/testee: manage target->state 2015-08-06 13:13:52 +01: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: updating license to GPLv2+ 2015-10-30 13:30:37 +00:00
x86_32_common.h quark: updating license to GPLv2+ 2015-10-30 13:30:37 +00:00
xscale.c armv7m: add FPU registers support 2015-03-09 06:36:30 +00:00
xscale.h target: xscale more human vector catching 2013-07-01 08:44:59 +00:00