
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