This is an automated email from Gerrit.

Antonio Borneo ([email protected]) just uploaded a new patch set to 
Gerrit, which you can find at http://openocd.zylin.com/6430

-- gerrit

commit 9a0db392a14dd3c9b7ffe264dca72ed6d5a7ed0d
Author: Antonio Borneo <[email protected]>
Date:   Fri Aug 6 23:37:23 2021 +0200

    adi_v5_jtag: clear sticky overrun error
    
    By accessing invalid AP in JTAG mode, it's possible to trigger the
    error:
        JTAG-DP STICKY ERROR
    After that the sticky error is never cleared and the whole DAP
    gets not anymore accessible.
    
    Clean-up the sticky error once detected.
    
    Change-Id: I8b07263b30f9e46645f0c29084b8f1626e241f45
    Signed-off-by: Antonio Borneo <[email protected]>

diff --git a/src/target/adi_v5_jtag.c b/src/target/adi_v5_jtag.c
index 998c51c..c94dcb2 100644
--- a/src/target/adi_v5_jtag.c
+++ b/src/target/adi_v5_jtag.c
@@ -640,10 +640,10 @@ static int jtagdp_transaction_endcheck(struct adiv5_dap 
*dap)
                if (ctrlstat & SSTICKYORUN)
                        LOG_DEBUG("JTAG-DP STICKY OVERRUN");
 
-               /* Clear Sticky Error Bits */
+               /* Clear Sticky Error and Sticky Overrun Bits */
                retval = adi_jtag_scan_inout_check_u32(dap, JTAG_DP_DPACC,
                                DP_CTRL_STAT, DPAP_WRITE,
-                               dap->dp_ctrl_stat | SSTICKYERR, NULL, 0);
+                               dap->dp_ctrl_stat | SSTICKYERR | SSTICKYORUN, 
NULL, 0);
                if (retval != ERROR_OK)
                        goto done;
 

-- 

Reply via email to