From: Øyvind H. <go...@us...> - 2010-05-04 09:16:46
|
This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Main OpenOCD repository". The branch, master has been updated via 32e647acf40bc11858a524e5ee73183ce0d9449b (commit) from fe60480b7a8f5c94147e3185bae235241c33c9ce (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 32e647acf40bc11858a524e5ee73183ce0d9449b Author: Ãyvind Harboe <oyv...@zy...> Date: Tue May 4 07:36:05 2010 +0200 zy1000: wait for srst to deassert make wait for srst deassert more long latency friendly (JTAG over TCP/IP), print actual time if it was more than 1ms. Signed-off-by: Ãyvind Harboe <oyv...@zy...> diff --git a/src/jtag/zy1000/zy1000.c b/src/jtag/zy1000/zy1000.c index 80731aa..092e3cd 100644 --- a/src/jtag/zy1000/zy1000.c +++ b/src/jtag/zy1000/zy1000.c @@ -49,6 +49,7 @@ #include <jtag/minidriver.h> #include <jtag/interface.h> #include <time.h> +#include <helper/time_support.h> #include <netinet/tcp.h> @@ -176,28 +177,41 @@ void zy1000_reset(int trst, int srst) } /* wait for srst to float back up */ - if (!srst) + if ((!srst && ((jtag_get_reset_config() & RESET_TRST_PULLS_SRST) == 0))|| + (!srst && !trst && (jtag_get_reset_config() & RESET_TRST_PULLS_SRST))) { - int i; - for (i = 0; i < 1000; i++) - { + bool first = true; + long long start; + long total = 0; + for (;;) + { // We don't want to sense our own reset, so we clear here. // There is of course a timing hole where we could loose // a "real" reset. if (!readSRST()) + { + if (total > 1) + { + LOG_USER("SRST took %dms to deassert", (int)total); + } break; + } - /* wait 1ms */ - alive_sleep(1); - } + if (first) + { + first = false; + start = timeval_ms(); + } - if (i == 1000) - { - LOG_USER("SRST didn't deassert after %dms", i); - } else if (i > 1) - { - LOG_USER("SRST took %dms to deassert", i); + total = timeval_ms() - start; + + if (total > 5000) + { + LOG_ERROR("SRST took too long to deassert: %dms", (int)total); + break; + } } + } } ----------------------------------------------------------------------- Summary of changes: src/jtag/zy1000/zy1000.c | 40 +++++++++++++++++++++++++++------------- 1 files changed, 27 insertions(+), 13 deletions(-) hooks/post-receive -- Main OpenOCD repository |