[U-Boot] [PATCH] watchdog petting during autoboot delay

Mike Frysinger vapier at gentoo.org
Thu Jun 3 20:24:56 CEST 2010


On Thu, Jun 3, 2010 at 1:39 PM, Nicolas Ferre wrote:
> Le 26/05/2010 20:13, Mike Frysinger :
>> On Wednesday 26 May 2010 06:34:49 Nicolas Ferre wrote:
>>> --- a/common/main.c
>>> +++ b/common/main.c
>>> @@ -159,6 +159,7 @@ static __inline__ int abortboot(int bootdelay)
>>>       * when catch up.
>>>       */
>>>      do {
>>> +            WATCHDOG_RESET();       /* Trigger watchdog, if needed */
>>>              if (tstc()) {
>>>                      if (presskey_len < presskey_max) {
>>>                              presskey [presskey_len ++] = getc();
>>> @@ -251,6 +252,7 @@ static __inline__ int abortboot(int bootdelay)
>>>  # endif
>>>                              break;
>>>                      }
>>> +                    WATCHDOG_RESET();       /* Trigger watchdog, if needed */
>>>                      udelay(10000);
>>>              }
>>
>> if your udelay() implementation isnt calling WATCHDOG_RESET(), it is broken.
>> yes, this is undocumented, but search the mailing archives for examples.
>>
>> i believe the same goes for serial devices and their tstc() function.
>
> Well, after more checking, it seems that resetting the watchdog in tstc
> function is not so common: only serial_pl01x.c is doing it. So I guess
> that my first addition may be needed for other chips...

i think you're looking at the multi-serial drivers and not the
cpu-serial drivers ?  i.e. cpu/*/serial.c and such vs drivers/serial/*
?

the former category tends to be more trend setting than the latter.
-mike


More information about the U-Boot mailing list