ARM: add #defines for JTAG ack codes
authorDavid Brownell <dbrownell@users.sourceforge.net>
Tue, 5 Jan 2010 21:03:27 +0000 (13:03 -0800)
committerDavid Brownell <dbrownell@users.sourceforge.net>
Tue, 5 Jan 2010 21:03:27 +0000 (13:03 -0800)
JTAG has only two possible JTAG ack codes for APACC and DPACC
register reads/writes.  Define them, and remove empty "else"
clause in the code which now uses those codes.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
src/target/arm_adi_v5.c
src/target/arm_adi_v5.h

index 9f260642fc462307cffe3e80be1af62955cd1e3e..96accf3ec27b3f01ce2e7eb88b8fbf9d92b73c97 100644 (file)
@@ -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 */
index 4e1b1aa6dd08b853a9cbc721a35d0c1d201d2109..675a1736602efe4376d4a8ccb7073366e08cddbb 100644 (file)
 #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