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