[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1390772013.2735.47.camel@deadeye.wl.decadent.org.uk>
Date: Sun, 26 Jan 2014 21:33:33 +0000
From: Ben Hutchings <ben@...adent.org.uk>
To: Marek Vasut <marex@...x.de>
Cc: "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
Frank Li <Frank.Li@...escale.com>, fugang.duan@...escale.com,
"fabio.estevam@...escale.com" <fabio.estevam@...escale.com>,
Hector Palacios <hector.palacios@...i.com>,
linux-arm-kernel@...ts.infradead.org, Detlev Zundel <dzu@...x.de>,
Eric Nelson <eric.nelson@...ndarydevices.com>,
Matthew Garrett <mjg59@...f.ucam.org>
Subject: Re: Freescale FEC packet loss
On Sun, 2014-01-26 at 20:12 +0100, Marek Vasut wrote:
> On Sunday, January 26, 2014 at 07:56:30 PM, Ben Hutchings wrote:
> > On Wed, 2014-01-22 at 22:55 +0100, Marek Vasut wrote:
> > > Hi guys,
> > >
> > > I am running stock Linux 3.13 on i.MX6Q SabreLite board. The CPU is
> > > i.MX6Q TO 1.0 .
> > >
> > > I am hitting a WARNING when I use the FEC ethernet to transfer data, thus
> > > I started investigating this problem. TL;DR I am not able to figure this
> > > problem out, so I am not attaching a patch :-(
> > >
> > > Steps to reproduce:
> > > -------------------
> > > 1) Boot stock Linux 3.13 on i.MX6Q SabreLite board
> > > 2) Plug in an SD card into one of the SD slots (I use the full-size one)
> > > 3) Plug in an USB stick into one of the USB ports (I use the upper one)
> > > 4) Plug in an ethernet cable into the board
> > >
> > > -> Connect the other side into a gigabit-capable PC
> >
> > [...]
> >
> > I think there are known problems with 1000BASE-T on the Sabre Lite
> > board.
>
> This is MX6-wide thing, not sabrelite specific actually.
>
> > Two possible workarounds are to limit the PHY to 100BASE-TX
> > (should be doable with ethtool) or force it to be clock master for
> > 1000BASE-T (requires a driver patch).
>
> Can you please elaborate on the later ? I don't quite understand that.
1000BASE-T uses all 4 pairs in both directions at the same time, which
requires that both ends transmit symbols synchronously. As part of the
autonegotiation protocol, they decide which is the clock master (using a
local clock generator) and which is the clock slave (generating a clock
from the received signal). A PHY can be configured to support only one
of these roles.
> > The vendor kernel apparently does both!
>
> More like the vendor kernel papers over this bug.
>
> > Matthew Garrett has been trying to implement a workaround in a
> > clean way.
>
> Do you have any pointers about this please ?
http://thread.gmane.org/gmane.linux.drivers.devicetree/58570
Ben.
--
Ben Hutchings
If the facts do not conform to your theory, they must be disposed of.
Download attachment "signature.asc" of type "application/pgp-signature" (829 bytes)
Powered by blists - more mailing lists