
3 Jun
2010
3 Jun
'10
7:27 p.m.
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 {
if (tstc()) { if (presskey_len < presskey_max) { presskey [presskey_len ++] = getc();WATCHDOG_RESET(); /* Trigger watchdog, if needed */
@@ -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.
Yes, for sure, udelay() is calling WATCHDOG_RESET().
i believe the same goes for serial devices and their tstc() function.
True, this is where the problem resides. I will try to modify the atmel_serial tstc() function.
Best regards,
--
Nicolas Ferre