[U-Boot] [PATCH] cp/cmp: Add WATCHDOG_RESET in copy and compare loop
Wolfgang Denk
wd at denx.de
Thu Sep 9 20:25:28 CEST 2010
Dear Stefan Roese,
In message <1283255853-30198-1-git-send-email-sr at 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 at 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
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
It [being a Vulcan] means to adopt a philosophy, a way of life which
is logical and beneficial. We cannot disregard that philosophy merely
for personal gain, no matter how important that gain might be.
-- Spock, "Journey to Babel", stardate 3842.4
More information about the U-Boot
mailing list