[U-Boot] common/xyzmodem.c, ymodem, slow behavior receiving bytes
Marek Vasut
marex at denx.de
Tue Nov 13 02:41:28 CET 2012
Dear Angelo Dureghello,
> Hi all,
>
> seems that mcf5307, working at 90Mhz, is not fast enough when "-Os -g"
> compile options are set.
>
> I changed for test config.mk from
>
> DBGFLAGS= -g # -DDEBUG
> OPTFLAGS= -Os #-fomit-frame-pointer
>
> into
>
> DBGFLAGS= #-g # -DDEBUG
> OPTFLAGS= -O2 #-Os #-fomit-frame-pointer
>
> common compiles now with -O2 and ymodem works fine again at 115200.
>
> Also, i don't understand why "-g" is set by default.
> Is there a way to override/customize this options for this cpu ?
> Or i have to definitely step down to 57600 ?
You can set up the CFLAGS in config.mk for your CPU.
btw. read RFC1855 please.
> Best Regards,
> Angelo Dureghello
>
> On Sat, Nov 10, 2012 at 02:40:07PM +0100, Angelo Dureghello wrote:
> > Dear all,
> >
> > i am experiencing a strange behavior on the u-boot ymodem protocol.
> > I am running u-boot, (pulled from origin/head yesterday) on a mcf5307
> > based board. I am currently working to include this board/cpu as
> > supported into u-boot.
> >
> > cpu runs at 90Mhz (bus clock at 45), baud rate 115200.
> >
> > On an older u-boot (2011.09.00122), i was able to upload files through
> > ymodem at 115200 without any issue.
> >
> > Once pulled yesterday head, and installed on the board, i am no more able
> > to upload files. U-boot times out when the first 128 bytes block is
> > sent, and sends SYN (C) again, so i started some debugging on
> > xyzmodem.c:
> >
> > Protocol times-out here, from line 434
> >
> > ....
> > xyz.len = (c == SOH) ? 128 : 1024;
> > xyz.bufp = xyz.pkt;
> > for (i = 0; i < xyz.len; i++)
> >
> > {
> >
> > res = CYGACC_COMM_IF_GETC_TIMEOUT (*xyz.__chan, &c);
> > ZM_DEBUG (zm_save (c));
> > if (res)
> >
> > {
> >
> > xyz.pkt[i] = c;
> >
> > }
> >
> > else
> >
> > {
> >
> > ZM_DEBUG (zm_dump (__LINE__));
> >
> > ---->> return xyzModem_timeout;
> >
> > }
> >
> > }
> >
> > Echoing received char back to PC, i see about 1 every 3 received chars
> > seems lost somewhere, so the first 128bytes block is never completely
> > received (time out).
> >
> > I measured baudrate through oscilloscope,
> > from PC to u-boot board, i have 115600
> > from u-boot board to PC, i have 117180 (still inside 2% tolerance)
> >
> > Also verified timer/delay functions works properly in new u-boot build.
> > As clients i used minicom and other, and have the same result.
> >
> > So from a first look, seems the receive routine from line 434 is no more
> > fast enough to receive the whole block. I moved speed down to 57600,
> > upload works fine again.
> >
> > What do you think about ?
> >
> > Best Regards,
> > Angelo Dureghello
>
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
More information about the U-Boot
mailing list