On Fri, Dec 11, 2015 at 2:38 PM, Matthias Welwarsky <matth...@welwarsky.de>
wrote:

>
> On dap_run(), I check if a sticky overrun condition happened, and if yes,
> the
> whole journal is replayed synchronously, i.e. each transaction is followed
> immediately by a jtag_execute_queue() and potential WAIT conditions are
> resolved immediately.
>
>
It could be worth trying to also increase memaccess_tck for that AP to
avoid further WAITs. Perhaps should be coupled with a slow decay of
memaccess_tck to recover from intermittent stalls.

By the way, why is the queue replayed synchronously?


> The reason for the full journal replay is the quirky WAIT implementation in
> ADIv5: With overrun check enabled, APACC are discarded after a WAIT is
> detected (overrun is sticky), but DPACC are still performed as soon as the
> DAP
> is no longer busy. This means the DAP state might be clobbered and I can
> not
> simply replay starting with the first failed transaction. There might be a
> different solution, like tracking and restoring the DAP state before
> starting
> the journal replay but I have to investigate this further.
>

What is this DAP state that may get clobbered? The SELECT register cache
can simply be invalidated. What else is there? Does TRNCNT freeze after
overrun?

/Andreas
------------------------------------------------------------------------------
_______________________________________________
OpenOCD-devel mailing list
OpenOCD-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openocd-devel

Reply via email to