openocd/src/target
Tomas Vanek d203399787 target/adi_v5_swd: add support for SWD multidrop
Based on Graham Sanderson's http://review.openocd.org/4935

Unlike Graham Sanderson's version this patch does not add
any multidrop specific queuing.

Multidrop SWD is handled mostly by the same code as single SWD,
just a selection sequence is prepended to a SWD operation
as needed.

This is a minimal working implementation without checking for
configuration errors (mixing multidrop and non multidrop DPs,
multiple use of the same selection id etc...).

Multidrop switching likely demands changes in the adapter code.

Change-Id: I99a5742c209b49c0483e800f6105cb5e59a897d9
Signed-off-by: Tomas Vanek <vanekt@fbl.cz>
Reviewed-on: https://review.openocd.org/c/openocd/+/6141
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
2021-11-20 14:47:54 +00:00
..
openrisc openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
riscv riscv: Clear type 6 triggers on connecting. 2021-11-20 14:39:52 +00:00
a64_disassembler.c target/aarch64: a64 disassembler 2020-10-03 11:21:15 +01:00
a64_disassembler.h target/aarch64: a64 disassembler 2020-10-03 11:21:15 +01:00
aarch64.c arm_coresight: add include file and use it 2021-09-25 13:00:27 +00:00
aarch64.h target/arm: rename CamelCase symbols 2021-07-20 14:52:25 +01:00
adi_v5_dapdirect.c adi_v5_dapdirect: fix connect under reset 2020-02-24 10:28:46 +00:00
adi_v5_jtag.c target/adi_v5_jtag: Add support for 8-bit IR JTAG-DP 2021-08-22 20:27:59 +00:00
adi_v5_swd.c target/adi_v5_swd: add support for SWD multidrop 2021-11-20 14:47:54 +00:00
algorithm.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
algorithm.h Cleanup of config/includes. 2021-05-01 14:35:09 +01:00
arc_cmd.c helper/jim-nvp: comply with coding style [2/2] 2021-06-04 17:40:48 +01:00
arc_cmd.h Introduce ARCv2 architecture related code 2020-02-27 06:46:51 +00:00
arc_jtag.c openocd: fix doxygen parameters of functions 2021-01-13 11:33:53 +00:00
arc_jtag.h Introduce ARCv2 architecture related code 2020-02-27 06:46:51 +00:00
arc_mem.c openocd: fix simple cases of Yoda condition 2021-07-20 14:55:24 +01:00
arc_mem.h Introduce ARCv2 architecture related code 2020-02-27 06:46:51 +00:00
arc.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
arc.h target: fix some minor typo 2021-05-22 10:06:45 +01:00
arm_adi_v5.c arm_adi_v5: drop ANY_ID from table dap_part_nums 2021-09-25 13:11:41 +00:00
arm_adi_v5.h target/adi_v5_swd: add support for SWD multidrop 2021-11-20 14:47:54 +00:00
arm_coresight.h openocd: remove 'src' prefix from #include path 2021-10-25 16:12:42 +00:00
arm_cti.c openocd: prevent jimtcl error message while testing commands 2021-09-25 13:13:28 +00:00
arm_cti.h armv8: valgrind memleak fixes 2018-04-10 09:13:02 +01:00
arm_dap.c target/arm_adi_v5,arm_dap: introduce multidrop_targetsel and its configuration 2021-11-20 14:47:04 +00:00
arm_disassembler.c target/arm: opcodes: rename CamelCase symbols and uppercase variables 2021-07-20 14:52:49 +01:00
arm_disassembler.h target/arm: opcodes: rename CamelCase symbols and uppercase variables 2021-07-20 14:52:49 +01:00
arm_dpm.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
arm_dpm.h target/arm: rename CamelCase symbols 2021-07-20 14:52:25 +01:00
arm_jtag.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
arm_jtag.h target/arm926ejs: fix memory leaks 2020-07-08 22:07:38 +01:00
arm_opcodes.h target/arm: opcodes: rename CamelCase symbols and uppercase variables 2021-07-20 14:52:49 +01:00
arm_semihosting.c arm_semihosting: fix two dead assignments 2021-10-25 16:09:12 +00:00
arm_semihosting.h Rework/update ARM semihosting 2018-06-04 09:16:08 +01:00
arm_simulator.c target/arm: opcodes: rename CamelCase symbols and uppercase variables 2021-07-20 14:52:49 +01:00
arm_simulator.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
arm_tpiu_swo.c arm_tpiu_swo: fix two dead assignments 2021-10-25 16:09:02 +00:00
arm_tpiu_swo.h armv7m_trace: get rid of the old tpiu code 2021-03-10 21:34:04 +00:00
arm.h openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
arm7_9_common.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
arm7_9_common.h target/arm926ejs: fix memory leaks 2020-07-08 22:07:38 +01:00
arm7tdmi.c target/arm: optimize architecture flags 2021-06-18 23:12:54 +01:00
arm7tdmi.h target/arm7tdmi: fix memory leak of register cache 2020-07-26 20:12:48 +01:00
arm9tdmi.c target/arm: optimize architecture flags 2021-06-18 23:12:54 +01:00
arm9tdmi.h target: fix memory leaks on targets based on arm9tdmi 2020-07-26 20:12:21 +01:00
arm11_dbgtap.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
arm11_dbgtap.h target/arm: rename CamelCase symbols 2021-07-20 14:52:25 +01:00
arm11.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
arm11.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
arm720t.c target/arm: rename CamelCase symbols 2021-07-20 14:52:25 +01:00
arm720t.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
arm920t.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
arm920t.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
arm926ejs.c target/arm: rename CamelCase symbols 2021-07-20 14:52:25 +01:00
arm926ejs.h target/arm: rename CamelCase symbols 2021-07-20 14:52:25 +01:00
arm946e.c target: declare local symbols as static 2020-11-04 17:39:17 +00:00
arm946e.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
arm966e.c target: use proper format with uint32_t 2020-09-05 17:12:39 +01:00
arm966e.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
armv4_5_cache.c helper/command: change prototype of command_print/command_print_sameline 2019-05-14 19:37:11 +01:00
armv4_5_cache.h Cleanup of config/includes. 2021-05-01 14:35:09 +01:00
armv4_5_mmu.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
armv4_5_mmu.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
armv4_5.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
armv4_5.h target/cortex_a: add hypervisor mode 2020-03-12 10:11:19 +00:00
armv7a_cache_l2x.c openocd: remove last NULL comparisons 2021-09-18 15:22:30 +00:00
armv7a_cache_l2x.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
armv7a_cache.c openocd: remove last NULL comparisons 2021-09-18 15:22:30 +00:00
armv7a_cache.h target: use proper format with uint32_t 2020-09-05 17:12:39 +01:00
armv7a_mmu.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
armv7a_mmu.h armv7a_mmu: Do not restrict virtual addresses to uint32_t 2019-06-12 15:14:44 +01:00
armv7a.c openocd: remove last NULL comparisons 2021-09-18 15:22:30 +00:00
armv7a.h target/adiv5: Large Physical Address Extension 2021-07-02 17:12:11 +01:00
armv7m_trace.c armv7m_trace: get rid of the old tpiu code 2021-03-10 21:34:04 +00:00
armv7m_trace.h helper: Remove src/helper from include dirs 2021-10-02 13:18:15 +00:00
armv7m.c target/cortex_m: faster reading of all CPU registers 2021-11-18 21:09:34 +00:00
armv7m.h target/cortex_m: faster reading of all CPU registers 2021-11-18 21:09:34 +00:00
armv8_cache.c openocd: remove last NULL comparisons 2021-09-18 15:22:30 +00:00
armv8_cache.h aarch64: add cache handling functions 2017-02-10 14:01:39 +01:00
armv8_dpm.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
armv8_dpm.h target/aarch64: fix watchpoint management 2021-05-22 10:04:20 +01:00
armv8_opcodes.c target/armv8_opcodes: use T32 instructions when the PE is in AArch32 state 2020-03-12 09:47:08 +00:00
armv8_opcodes.h target/arm: opcodes: rename CamelCase symbols and uppercase variables 2021-07-20 14:52:49 +01:00
armv8.c armv8: fix five dead assignments 2021-10-25 16:09:26 +00:00
armv8.h target/adiv5: Large Physical Address Extension 2021-07-02 17:12:11 +01:00
avr32_ap7k.c target: rename CamelCase symbols 2021-07-24 10:37:25 +01:00
avr32_ap7k.h target: rename CamelCase symbols 2021-07-24 10:37:25 +01:00
avr32_jtag.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
avr32_jtag.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
avr32_mem.c target: fix some minor typo 2021-05-22 10:06:45 +01:00
avr32_mem.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
avr32_regs.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
avr32_regs.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
avrt.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
avrt.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
breakpoints.c openocd: remove last NULL comparisons 2021-09-18 15:22:30 +00:00
breakpoints.h target: Rename 'linked_BRP' to 'linked_brp' 2021-06-18 23:10:57 +01:00
cortex_a.c arm_coresight: add include file and use it 2021-09-25 13:00:27 +00:00
cortex_a.h target/arm: rename CamelCase symbols 2021-07-20 14:52:25 +01:00
cortex_m.c cortex_m: Restore fast register reads if no polling is needed 2021-11-18 21:13:19 +00:00
cortex_m.h target/cortex_m: faster reading of all CPU registers 2021-11-18 21:09:34 +00:00
dsp563xx_once.c coding style: wrap lines longer than 120 chars 2020-05-09 14:40:52 +01:00
dsp563xx_once.h coding style: fix space around pointer's asterisk 2020-02-24 10:30:36 +00:00
dsp563xx.c target: rename CamelCase symbols 2021-07-24 10:37:25 +01:00
dsp563xx.h target/dsp563xx: Use bool data type for 'hardware_breakpoints_cleared' 2021-06-26 14:40:34 +01:00
dsp5680xx.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
dsp5680xx.h target: rename CamelCase symbols 2021-07-24 10:37:25 +01:00
embeddedice.c jtag: remove minidriver code and minidriver-dummy 2021-03-19 21:56:06 +00:00
embeddedice.h target/arm: rename CamelCase symbols 2021-07-20 14:52:25 +01:00
esirisc_jtag.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
esirisc_jtag.h esirisc: support eSi-Trace 2018-12-12 08:47:44 +00:00
esirisc_regs.h target: rename CamelCase symbols 2021-07-24 10:37:25 +01:00
esirisc_trace.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
esirisc_trace.h esirisc: support eSi-Trace 2018-12-12 08:47:44 +00:00
esirisc.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
esirisc.h target: rename CamelCase symbols 2021-07-24 10:37:25 +01:00
etb.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
etb.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
etm_dummy.c helper/command: change prototype of command_print/command_print_sameline 2019-05-14 19:37:11 +01:00
etm_dummy.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
etm.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
etm.h target: fix minor typos and duplicated words 2020-07-26 23:09:45 +01:00
fa526.c target: fix memory leaks on targets based on arm9tdmi 2020-07-26 20:12:21 +01:00
feroceon.c target/arm: rename CamelCase symbols 2021-07-20 14:52:25 +01:00
hla_target.c armv7m.h: relax dependency from 'arm_adi_v5.h' 2021-09-25 12:59:12 +00:00
image.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
image.h Cleanup of config/includes. 2021-05-01 14:35:09 +01:00
lakemont.c target/lakemont: fix dead assignment 2021-10-25 16:10:04 +00:00
lakemont.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
ls1_sap.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
Makefile.am arm_coresight: add include file and use it 2021-09-25 13:00:27 +00:00
mem_ap.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
mips_ejtag.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
mips_ejtag.h target/mips: rename CamelCase symbols 2021-07-20 14:53:03 +01:00
mips_m4k.c openocd: remove last NULL comparisons 2021-09-18 15:22:30 +00:00
mips_m4k.h mips32: add micromips isa handling 2017-05-08 18:04:56 +01:00
mips_mips64.c openocd: fix simple cases of Yoda condition 2021-07-20 14:55:24 +01:00
mips_mips64.h mips64: Add generic mips64 target support 2019-11-28 19:49:10 +00:00
mips32_dmaacc.c Remove FSF address from GPL notices 2016-05-24 22:30:01 +01:00
mips32_dmaacc.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
mips32_pracc.c jtag: align adapter speed code to new structure 2021-11-13 10:50:34 +00:00
mips32_pracc.h target/mips: Remove typedef'd struct 2021-03-10 21:30:04 +00:00
mips32.c Use boolean argument for register_get_by_name() 2021-06-18 23:14:27 +01:00
mips32.h target/mips: rename CamelCase symbols 2021-07-20 14:53:03 +01:00
mips64_pracc.c jtag: align adapter speed code to new structure 2021-11-13 10:50:34 +00:00
mips64_pracc.h mips: Add MIPS64 support 2019-11-28 16:59:15 +00:00
mips64.c coding style: fix space separation 2020-07-08 22:08:08 +01:00
mips64.h mips: Add MIPS64 support 2019-11-28 16:59:15 +00:00
nds32_aice.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
nds32_aice.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
nds32_cmd.c openocd: fix Yoda conditions with checkpatch 2021-07-24 10:38:31 +01:00
nds32_cmd.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
nds32_disassembler.c openocd: manually fix Yoda conditions 2021-07-20 14:55:43 +01:00
nds32_disassembler.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
nds32_edm.h Cleanup of config/includes. 2021-05-01 14:35:09 +01:00
nds32_insn.h target/nds32: use lowercase for C variables 2021-07-20 14:54:27 +01:00
nds32_reg.c target: use proper format with uint32_t 2020-09-05 17:12:39 +01:00
nds32_reg.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
nds32_tlb.c target/nds32: rename CamelCase symbols 2021-07-20 14:53:12 +01:00
nds32_tlb.h target/nds32: rename CamelCase symbols 2021-07-20 14:53:12 +01:00
nds32_v2.c openocd: fix Yoda conditions with checkpatch 2021-07-24 10:38:31 +01:00
nds32_v2.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
nds32_v3_common.c openocd: fix Yoda conditions with checkpatch 2021-07-24 10:38:31 +01:00
nds32_v3_common.h target: Add 64-bit target address support 2017-02-10 13:50:17 +01:00
nds32_v3.c openocd: fix simple cases of Yoda condition 2021-07-20 14:55:24 +01:00
nds32_v3.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
nds32_v3m.c openocd: fix simple cases of Yoda condition 2021-07-20 14:55:24 +01:00
nds32_v3m.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
nds32.c openocd: fix Yoda conditions with checkpatch 2021-07-24 10:38:31 +01:00
nds32.h openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
quark_d20xx.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
quark_x10xx.c target: quark_x10xx: miscellaneous cleanups 2018-01-13 09:25:12 +00:00
register.c target/register: Minor code cleanup 2021-06-18 23:14:09 +01:00
register.h Cleanup of config/includes. 2021-05-01 14:35:09 +01:00
rtt.c Add initial RTT support 2020-12-02 23:15:52 +00:00
rtt.h Add initial RTT support 2020-12-02 23:15:52 +00:00
semihosting_common.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
semihosting_common.h Cleanup of config/includes. 2021-05-01 14:35:09 +01:00
smp.c openocd: remove last NULL comparisons 2021-09-18 15:22:30 +00:00
smp.h openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
startup.tcl target/startup.tcl: Do not use 'Yoda conditions' 2021-06-04 17:46:48 +01:00
stm8.c target/stm8: Remove unused member 'stm8_common' 2021-07-02 17:12:38 +01:00
stm8.h target/stm8: Make 'stm8_command_handlers' static 2021-05-08 09:49:32 +01:00
target_request.c openocd: manually remove NULL comparisons 2021-07-24 10:38:19 +01:00
target_request.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00
target_type.h helper: Remove src/helper from include dirs 2021-10-02 13:18:15 +00:00
target.c target: Use target_addr_t for algorithm addresses. 2021-11-20 14:41:38 +00:00
target.h target: Use target_addr_t for algorithm addresses. 2021-11-20 14:41:38 +00:00
testee.c command_registration: add empty usage field to chained commands 2019-04-07 08:17:36 +01:00
trace.c target: avoid checking for non NULL pointer to free it 2020-09-05 20:47:11 +01:00
trace.h Cleanup of config/includes. 2021-05-01 14:35:09 +01:00
x86_32_common.c openocd: remove NULL comparisons with checkpatch [1/2] 2021-07-24 10:38:00 +01:00
x86_32_common.h target: lakemon: implement assert_reset and deassert_reset 2018-01-13 09:25:34 +00:00
xscale.c openocd: fix simple cases of NULL comparison 2021-07-24 10:37:49 +01:00
xscale.h Make #include guard naming consistent 2016-05-24 22:30:55 +01:00