summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/target/arm_adi_v5.c11
-rw-r--r--src/target/arm_adi_v5.h4
2 files changed, 9 insertions, 6 deletions
diff --git a/src/target/arm_adi_v5.c b/src/target/arm_adi_v5.c
index 9f260642..96accf3e 100644
--- a/src/target/arm_adi_v5.c
+++ b/src/target/arm_adi_v5.c
@@ -249,12 +249,14 @@ int swjdp_transaction_endcheck(struct swjdp_common *swjdp)
swjdp->ack = swjdp->ack & 0x7;
- if (swjdp->ack != 2)
+ /* common code path avoids calling timeval_ms() */
+ if (swjdp->ack != JTAG_ACK_OK_FAULT)
{
long long then = timeval_ms();
- while (swjdp->ack != 2)
+
+ while (swjdp->ack != JTAG_ACK_OK_FAULT)
{
- if (swjdp->ack == 1)
+ if (swjdp->ack == JTAG_ACK_WAIT)
{
if ((timeval_ms()-then) > 1000)
{
@@ -280,9 +282,6 @@ int swjdp_transaction_endcheck(struct swjdp_common *swjdp)
return retval;
swjdp->ack = swjdp->ack & 0x7;
}
- } else
- {
- /* common code path avoids fn to timeval_ms() */
}
/* Check for STICKYERR and STICKYORUN */
diff --git a/src/target/arm_adi_v5.h b/src/target/arm_adi_v5.h
index 4e1b1aa6..675a1736 100644
--- a/src/target/arm_adi_v5.h
+++ b/src/target/arm_adi_v5.h
@@ -38,6 +38,10 @@
#define JTAG_DP_APACC 0xB
#define JTAG_DP_IDCODE 0xE
+/* three-bit ACK values for DPACC and APACC reads */
+#define JTAG_ACK_OK_FAULT 0x2
+#define JTAG_ACK_WAIT 0x1
+
#define DPAP_WRITE 0
#define DPAP_READ 1