aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorØyvind Harboe <oyvind.harboe@zylin.com>2010-03-01 08:22:12 +0100
committerØyvind Harboe <oyvind.harboe@zylin.com>2010-03-01 08:30:29 +0100
commit761d4555b8f8c8eb2b899dee16584656a43b6444 (patch)
tree18ae83fc3467f8778f329f9c6ecc4fdbe77a9a66
parent409e23e39b955d92c8e879143d2b979b7de799e9 (diff)
downloadriscv-openocd-761d4555b8f8c8eb2b899dee16584656a43b6444.zip
riscv-openocd-761d4555b8f8c8eb2b899dee16584656a43b6444.tar.gz
riscv-openocd-761d4555b8f8c8eb2b899dee16584656a43b6444.tar.bz2
jtag: the post TAP state is now passed to the drivers
after clocking out a tms sequence, then the TAP will be in some state. This state is now handed to the drivers. TAP_INVALID is a possible state after a TMS sequence if switching to SWD. Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
-rw-r--r--src/jtag/core.c2
-rw-r--r--src/jtag/drivers/driver.c2
-rw-r--r--src/jtag/minidriver.h3
-rw-r--r--src/jtag/minidummy/minidummy.c2
4 files changed, 5 insertions, 4 deletions
diff --git a/src/jtag/core.c b/src/jtag/core.c
index 7f417b7..d43bd1c 100644
--- a/src/jtag/core.c
+++ b/src/jtag/core.c
@@ -512,7 +512,7 @@ int jtag_add_tms_seq(unsigned nbits, const uint8_t *seq, enum tap_state state)
jtag_checks();
cmd_queue_cur_state = state;
- retval = interface_add_tms_seq(nbits, seq);
+ retval = interface_add_tms_seq(nbits, seq, state);
jtag_set_error(retval);
return retval;
}
diff --git a/src/jtag/drivers/driver.c b/src/jtag/drivers/driver.c
index 14efe96..ca59239 100644
--- a/src/jtag/drivers/driver.c
+++ b/src/jtag/drivers/driver.c
@@ -388,7 +388,7 @@ int interface_jtag_add_tlr(void)
return ERROR_OK;
}
-int interface_add_tms_seq(unsigned num_bits, const uint8_t *seq)
+int interface_add_tms_seq(unsigned num_bits, const uint8_t *seq, enum tap_state state)
{
struct jtag_command *cmd;
diff --git a/src/jtag/minidriver.h b/src/jtag/minidriver.h
index 5caec58..810bb0e 100644
--- a/src/jtag/minidriver.h
+++ b/src/jtag/minidriver.h
@@ -67,7 +67,8 @@ int interface_jtag_add_tlr(void);
int interface_jtag_add_pathmove(int num_states, const tap_state_t* path);
int interface_jtag_add_runtest(int num_cycles, tap_state_t endstate);
-int interface_add_tms_seq(unsigned num_bits, const uint8_t *bits);
+int interface_add_tms_seq(unsigned num_bits,
+ const uint8_t *bits, enum tap_state state);
/**
* This drives the actual srst and trst pins. srst will always be 0
diff --git a/src/jtag/minidummy/minidummy.c b/src/jtag/minidummy/minidummy.c
index 6410c2d..705f1b4 100644
--- a/src/jtag/minidummy/minidummy.c
+++ b/src/jtag/minidummy/minidummy.c
@@ -147,7 +147,7 @@ int interface_jtag_add_pathmove(int num_states, const tap_state_t *path)
return ERROR_OK;
}
-int interface_add_tms_seq(unsigned num_bits, const uint8_t *seq)
+int interface_add_tms_seq(unsigned num_bits, const uint8_t *seq, enum tap_state state)
{
/* synchronously do the operation here */