openocd/src/target
Salvador Arroyo 6cadbadb37 mips32: new code for pracc exec
This is only the basic code proposed for mips32_pracc_exec() function.
It checks every pracc address against the expected address when
reading (instruction fetch).
The code expects to start at PRACC_TEXT and any subsequent read address
is obtained by adding 4 to the previous one.
After shifting out all the instructions the code executes a final check.
It checks now for the first pass trough PRACC_TEXT and shift out
only NOP instructions.
A mips core does not need an additional NOP and after the first check
it exits if there is no store access pending.
After shifting out one NOP the core must be reading at pracc text or the
code exits with error.
The code continues shifting out NOPs until all store accesses have
been performed.
After shifting out 10 NOPs it exits with error.
No assumption is made about the number of store instruction shifted out or
the ordering of the store accesses. It only checks that the number of
store accesses is the same as the number of store instructions at dmseg
after execution.
mips32_pracc_read_ctrl_addr() and mips32_pracc_finish() are added to
simpify a bit the code. Fields pa_ctrl and pa_addr are added
in ejtag_info for storing values of pracc control and address.

Change-Id: If6322d5c8cbeadcd4acd3972c0f72c8490f53c34
Signed-off-by: Salvador Arroyo <sarroyofdez@yahoo.es>
Reviewed-on: http://openocd.zylin.com/1827
Tested-by: jenkins
Reviewed-by: Freddie Chopin <freddie.chopin@gmail.com>
2014-05-09 20:40:31 +00:00
..
openrisc mips32, dsp563xx: fix segfault on Gdb attach 2014-04-14 18:18:13 +00:00
xscale update files to correct FSF address 2013-06-05 19:52:42 +00:00
adi_v5_cmsis_dap.c cmsis-dap: add initial cmsis-dap support 2014-01-09 15:20:51 +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 Fix some C99 format specifiers 2014-05-05 20:18:38 +00:00
arm_adi_v5.h cortex_a: fix endiannes issues on TI TMS570 2014-04-14 18:20:36 +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 armv7a: fix typo in cache_config help text 2014-05-05 20:19:25 +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 target/cortex_a: check gdb_service before dereferencing in update_halt_gdb 2014-04-14 18:12:30 +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 mips32, dsp563xx: fix segfault on Gdb attach 2014-04-14 18:18:13 +00:00
lakemont.h quark_x10xx: add new target quark_x10xx 2014-02-11 13:07:29 +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 mips32: new code for pracc exec 2014-05-09 20:40:31 +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 Fix some C99 format specifiers 2014-05-05 20:18:38 +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: fix IO r/w operations with paging enabled 2014-04-27 09:16:30 +00:00
x86_32_common.h quark_x10xx: add new target quark_x10xx 2014-02-11 13:07:29 +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