[U-Boot] TFTP pause and timeout on MX28 platforms

Marek Vasut
2013-03-14T12:31:12Z

Dear Hector Palacios,

> Dear Marek Vasut,
>
> On 03/13/2013 07:10 PM, Marek Vasut wrote:
> > Dear Hector Palacios,
> >
> >> Dear Marek Vasut,
> >>
> >> On 03/13/2013 05:52 PM, Marek Vasut wrote:
> >>> Dear Hector Palacios,
> >>>
> >>>> Dear Marek Vasut,
> >>>>
> >>>> On 03/13/2013 05:19 PM, Marek Vasut wrote:
> >>>>> Dear Hector Palacios,
> >>>>>
> >>>>>> Dear Marek Vasut,
> >>>>>>
> >>>>>> On 03/13/2013 11:58 AM, Marek Vasut wrote:
> >>>>>>> Dear Hector Palacios,
> >>>>>>>
> >>>>>>>> Hello,
> >>>>>>>>
> >>>>>>>> When doing large TFTP downloads (files bigger than 10MiB) on my
> >>>>>>>> MX28 platform I'm sometimes experiencing pauses and timeouts.
> >>>>>>>> U-Boot will eventually restart the transmission and sometimes may
> >>>>>>>> successfully complete the download, but other times it won't.
> >>>>>>>> On my platform it was somewhat mitigated (but not resolved) by
> >>>>>>>> reverting this patch from Marek:
> >>>>>>>>
> >>>>>>>> commit 67449098a86be18cbdb27345bebe8da57e5d8899
> >>>>>>>> Author: Marek Vasut <marex@denx.de>
> >>>>>>>> Date: Wed Aug 29 03:49:50 2012 +0000
> >>>>>>>>
> >>>>>>>> FEC: Rework the TX wait mechanism
> >>>>>>>>
> >>>>>>>> The problem is reproducible in Freescale's MX28EVK.
> >>>>>>>> The larger the file, the more chances to see the problem. Please
> >>>>>>>> try with 50MiB files or larger. Has anybody else seen it?
> >>>>>>>>
> >>>>>>>> On an old U-Boot v2009 TFTP transmission was twice slower than
> >>>>>>>> with v2013, but didn't suffer from this.
> >>>>>>>
> >>>>>>> What version of u-boot do you use ? It was resolved in recent
> >>>>>>> versions.
> >>>>>>
> >>>>>> I'm using v2013.01.
> >>>>>> Could you please point me to the commit(s) that solve it?
> >>>>>> The commits I see on drivers/net/fec_mxc.c after v2013.01 are from
> >>>>>> Troy Kisky and don't seem to address this.
> >>>>>
> >>>>> commit c0b5a3bbb0cd40a6b23b7b07e2182a5bcdc8c31c
> >>>>> Author: Marek Vasut <marex@denx.de>
> >>>>> Date: Wed Aug 29 03:49:51 2012 +0000
> >>>>>
> >>>>> FEC: Replace magic contants
> >>>>>
> >>>>> and the three before this one. Is your PHY operating correctly? This
> >>>>> fixed the hangs on multiple MX28 platforms for me.
> >>>>
> >>>> v2013.01 contains all these patches but I was able to reproduce this
> >>>> both on my platform and on the mx28evk.
> >>>>
> >>>> My problem is not a hang, but TFTP pauses (1 to 3 seconds) and timeouts:
> >>>> ##############################################################
> >>>> ### #####################################################T T T
> >>>> T T T
> >>>>
> >>>> At first I thought it was my platform's PHY (Micrel KSZ8031) but I
> >>>> also see it on mx28evk.
> >>>
> >>> Do you use PHYLIB (see configs/sc_sps_1.h for example)? Also check if
> >>> your transceiver mode is not misconfigured. Moreover, see
> >>> board/denx/m28evk/spl_boot.c fecmxc_mii_postcall(), maybe you also need
> >>> to program some registers of the PHY (V11 and V10 prototypes used
> >>> KSZ8051)?
> >>
> >> No I don't use PHYLIB. My platform is based on Freescale's mx28evk (not
> >> DENX's m28evk). I saw fecmxc_mii_postcall() and I do a similar thing
> >> because of my phy model KSZ8031, but as I said the pauses and timeouts
> >> occur in both platforms (mx28evk uses a different PHY: SMSC LAN8720a).
> >>
> >> Are you able to download a 50MiB file via TFTP several times without any
> >> problem on m28evk?
> >
> > Yes.
>
> Interesting. What PHY does m28evk platform have? I was thinking on a
> problem of the fec driver given that it can be reproduced in the mx28evk
> and in my platform, with different PHYs, but if it is not reproducible in
> m28evk I'll need to recheck the platform code.

KSZ8021 I think. Did Fabio not verify the code works on his MX28EVK ?

> > btw. the original TFTP had size limit of 32MB, aren't you hitting this?
>
> No it's not a server problem. I can sometimes transfer bigger files without
> problems. Other times it just pauses and/or timeouts after 3 or 4MiB.
>
> Thank you

Best regards,
Marek Vasut