
Dear Stefan Roese,
In message 1283255853-30198-1-git-send-email-sr@denx.de you wrote:
On some boards with a very short watchdog timeout, the "cp" and "cmp" commands may reset the board. This patch adds some watchdog resets inside the loops. Otherwise for example the lwmon5 board will reset while doing something like this:
=> cp.b fc000000 1000000 100000
Signed-off-by: Stefan Roese sr@denx.de
common/cmd_mem.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/common/cmd_mem.c b/common/cmd_mem.c index 44834ea..c426997 100644 --- a/common/cmd_mem.c +++ b/common/cmd_mem.c @@ -337,6 +337,10 @@ int do_mem_cmp (cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) ngood++; addr1 += size; addr2 += size;
/* reset watchdog from time to time */
if ((count % 1000) == 0)
WATCHDOG_RESET();
}
printf("Total of %ld %s%s were the same\n",
@@ -447,6 +451,10 @@ int do_mem_cp ( cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) *((u_char *)dest) = *((u_char *)addr); addr += size; dest += size;
/* reset watchdog from time to time */
if ((count % 1000) == 0)
WATCHDOG_RESET();
1000 seems a bit arbitray to me, and very, very low. Are you sure such a low value is needed?
I think lwmon5 has some 50 ms trigger period, so I'd expect to see a _much_ higher value here.
Best regards,
Wolfgang Denk