aboutsummaryrefslogtreecommitdiff
path: root/src/jtag_scan.c
diff options
context:
space:
mode:
authorGareth McMullin2012-09-04 21:50:12 +1200
committerGareth McMullin2012-09-04 21:50:12 +1200
commit206237e8ddc8d8fd94594b2d1fe4fb4c52fe12ca (patch)
treefadb6c3c26002d0e694d1193e2555884ff75ed4c /src/jtag_scan.c
parent358ef322258de0588f7b7a5c3244e887f1224e02 (diff)
Fix support for multiple devices on the same jtag chain.
Mask out architecture version in ADIv5 JTAG IDCODE.
Diffstat (limited to 'src/jtag_scan.c')
-rw-r--r--src/jtag_scan.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/jtag_scan.c b/src/jtag_scan.c
index 010ed9f..0dd588b 100644
--- a/src/jtag_scan.c
+++ b/src/jtag_scan.c
@@ -46,7 +46,7 @@ static struct jtag_dev_descr_s {
char *descr;
void (*handler)(jtag_dev_t *dev);
} dev_descr[] = {
- {.idcode = 0x0BA00477, .idmask = 0x0FFFFFFF,
+ {.idcode = 0x0BA00477, .idmask = 0x0FFF0FFF,
.descr = "ARM Limited: ADIv5 JTAG-DP port.",
.handler = adiv5_jtag_dp_handler},
{.idcode = 0x3F0F0F0F, .idmask = 0xFFFFFFFF,
@@ -238,6 +238,8 @@ int jtag_scan(const uint8_t *irlens)
void jtag_dev_write_ir(jtag_dev_t *d, uint32_t ir)
{
if(ir == d->current_ir) return;
+ for(int i = 0; i < jtag_dev_count; i++)
+ jtag_devs[i].current_ir = -1;
d->current_ir = ir;
jtagtap_shift_ir();