Skip to content
This repository was archived by the owner on Mar 7, 2026. It is now read-only.

Commit 7e35068

Browse files
committed
hosted/dap: Implement unoptimized jtagtap_cycle
1 parent 8bb136d commit 7e35068

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/platforms/hosted/dap_jtag.c

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ static void dap_jtag_tms_seq(uint32_t tms_states, size_t clock_cycles);
4141
static void dap_jtag_tdi_tdo_seq(uint8_t *data_out, bool final_tms, const uint8_t *data_in, size_t clock_cycles);
4242
static void dap_jtag_tdi_seq(bool final_tms, const uint8_t *data_in, size_t clock_cycles);
4343
static bool dap_jtag_next(bool tms, bool tdi);
44+
static void dap_jtag_cycle(bool tms, bool tdi, size_t clock_cycles);
4445

4546
bool dap_jtag_init(void)
4647
{
@@ -60,11 +61,11 @@ bool dap_jtag_init(void)
6061
jtag_proc.jtagtap_tms_seq = dap_jtag_tms_seq;
6162
jtag_proc.jtagtap_tdi_tdo_seq = dap_jtag_tdi_tdo_seq;
6263
jtag_proc.jtagtap_tdi_seq = dap_jtag_tdi_seq;
64+
jtag_proc.jtagtap_cycle = dap_jtag_cycle;
6365

6466
/* Ensure we're in JTAG mode */
65-
for (size_t i = 0; i <= 50U; ++i)
66-
dap_jtag_next(true, false); /* 50 + 1 idle cycles for SWD reset */
67-
dap_jtag_tms_seq(0xe73cU, 16U); /* SWD to JTAG sequence */
67+
dap_jtag_cycle(true, false, 51U); /* 50 + 1 idle cycles for SWD reset */
68+
dap_jtag_tms_seq(0xe73cU, 16U); /* SWD to JTAG sequence */
6869

6970
if (dap_quirks & DAP_QUIRK_NO_JTAG_MUTLI_TAP)
7071
DEBUG_WARN("Multi-TAP JTAG is broken on this adaptor firmware revision, please upgrade it\n");
@@ -125,6 +126,12 @@ static bool dap_jtag_next(const bool tms, const bool tdi)
125126
return tdo;
126127
}
127128

129+
static void dap_jtag_cycle(const bool tms, const bool tdi, const size_t clock_cycles)
130+
{
131+
for (size_t i = 0; i < clock_cycles; i++)
132+
dap_jtag_next(tms, tdi);
133+
}
134+
128135
bool dap_jtag_configure(void)
129136
{
130137
/* Check if there are no or too many devices */

0 commit comments

Comments
 (0)