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 <borneo.antonio@gmail.com> Reviewed-on: https://review.openocd.org/c/openocd/+/6430 Tested-by: jenkins
This commit is contained in:
parent
513aba1930
commit
edb575800a
|
@ -633,10 +633,10 @@ static int jtagdp_transaction_endcheck(struct adiv5_dap *dap)
|
||||||
if (ctrlstat & SSTICKYORUN)
|
if (ctrlstat & SSTICKYORUN)
|
||||||
LOG_DEBUG("JTAG-DP STICKY OVERRUN");
|
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,
|
retval = adi_jtag_scan_inout_check_u32(dap, JTAG_DP_DPACC,
|
||||||
DP_CTRL_STAT, DPAP_WRITE,
|
DP_CTRL_STAT, DPAP_WRITE,
|
||||||
dap->dp_ctrl_stat | SSTICKYERR, NULL, 0);
|
dap->dp_ctrl_stat | SSTICKYERR | SSTICKYORUN, NULL, 0);
|
||||||
if (retval != ERROR_OK)
|
if (retval != ERROR_OK)
|
||||||
goto done;
|
goto done;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue