[U-Boot] xyz-modem: Change getc timeout loop waiting
Tomas Melin
tomas.melin at vaisala.com
Wed Aug 1 05:44:13 UTC 2018
Hi,
On 08/01/2018 03:15 AM, Alexander Sverdlin wrote:
> This commit breaks YMODEM SPL->U-Boot boot on Beagle Bone,
> transfer is aborted (because of timeout) after 497kb
> (u-boot.img is around 570kb).
> Reverting the commit repairs YMODEM boot.
Is the timeout a watchdog timeout or some communication freeze?
In case watchdog is correctly configured, kicking should still
happen.
Tomas
>> ---
>> common/xyzModem.c | 10 +++++-----
>> 1 file changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/common/xyzModem.c b/common/xyzModem.c
>> index 5656aac..e0d87db 100644
>> --- a/common/xyzModem.c
>> +++ b/common/xyzModem.c
>> @@ -71,12 +71,12 @@ typedef int cyg_int32;
>> static int
>> CYGACC_COMM_IF_GETC_TIMEOUT (char chan, char *c)
>> {
>> -#define DELAY 20
>> - unsigned long counter = 0;
>> - while (!tstc () && (counter < xyzModem_CHAR_TIMEOUT * 1000 / DELAY))
>> +
>> + ulong now = get_timer(0);
>> + while (!tstc ())
>> {
>> - udelay (DELAY);
>> - counter++;
>> + if (get_timer(now) > xyzModem_CHAR_TIMEOUT)
>> + break;
>> }
>> if (tstc ())
>> {
>
More information about the U-Boot
mailing list