From: eric.nelson@boundarydevices.com (Eric Nelson)
To: linux-arm-kernel@lists.infradead.org
Subject: FEC ethernet issues [Was: PL310 errata workarounds]
Date: Tue, 01 Apr 2014 07:00:29 -0700 [thread overview]
Message-ID: <533AC67D.2060906@boundarydevices.com> (raw)
In-Reply-To: <20140401092638.GA10224@n2100.arm.linux.org.uk>
Hi Russell,
On 04/01/2014 02:26 AM, Russell King - ARM Linux wrote:
> On Wed, Mar 26, 2014 at 12:11:35AM +0000, Russell King - ARM Linux wrote:
>> On Mon, Mar 24, 2014 at 11:44:43PM +0000, Russell King - ARM Linux wrote:
>>> Now, you mention packet loss above. Even on half-duplex networks, I
>>> would not expect there to be much packet loss because of the
>>> retransmissions after a collision, and 100Mbit networks handle this
>>> much better than 10Mbit. It takes repeated collisions to cause a
>>> packet to actually be dropped (and a packet being dropped because
>>> of collisions should be logged by the transmitting host in its
>>> interface statistics.)
>>>
>>> Another possibility is that the FEC isn't properly negotiating with
>>> the hub, and the two ends are ending up configured differently, or
>>> that it is negotiating properly but the FEC isn't being configured
>>> correctly.
>>>
>>> Now that we know a little more about your setup, including that it
>>> seems to be one specific setup which is causing the problems, I'll
>>> do some more testing - I have an old Allied Telesys 10/100 hub here
>>> which I'll try putting the iMX6 on and re-run your tests.
>>
>> PC --- 100Mbit hub --- iMX6S
>>
>> iperf (2.0.5) -c PC -r reports:
>>
>> iMX6 Tx: [ 5] 0.0-10.0 sec 85.5 MBytes 71.5 Mbits/sec
>> iMX6 Rx: [ 3] 0.0-10.0 sec 103 MBytes 86.2 Mbits/sec
>>
>> However, there's a marked difference when the iMX6 sends - the
>> collision LED is almost permanently on at full brightness, whereas
>> when the PC is sending, it's almost always off.
>>
>> I'm seeing lots of late collisions and CRC errors in the statistics
>> registers.
>>
>> It looks to me like the iMX6's transmitter is blathering at any moment,
>> not taking any notice whether there's already a carrier on the RX side.
>> I'm not yet sure what to make of this yet.
>
> Last night, I performed a different test:
>
> PC --- Gigabit switch --- 10/100Mbit hub --- 10Mbit hub --- iMX6S
> |
> (the rest of my network)
>
> This shows that all the (late) collisions occur in the 10Mbit domain,
> and very few in the 100Mbit domain, which puts the blame fairly
> squarely on the iMX6 side.
>
> I can see nothing wrong with the setup of the iMX6, nor of the AR8035
> phy which my board has. Both the phy and the FEC appear to correctly
> indicate that they are configured for half-duplex with flow control
> disabled, and I've been through the iomux settings for the RGMII
> interface.
>
> So, I'm left with three possibilities:
> - the AR8035 doesn't work with half-duplex
> - there is something wrong with the signalling for carrier sense between
> the AR8035 and the FEC.
> - the iMX6 FEC doesn't work with half-duplex
>
> It's not easy to monitor the TX_CTL and RX_CTL signals and make sense of
> them, so I can't really say what's at fault at the moment, but from what
> I can see, my hardware fails to work correctly with half-duplex
> connections.
>
What value do you have for pad control register
IOMUXC_SW_PAD_CTL_PAD_RGMII_TX_CTL (0x020E0388)?
I notice in some of the DTS files that this has a value of 0x100b0,
which seems wrong. Bit 16 seems to be a HYSteresis bit, and enabling
that seems wrong (also bit 7 seems wrong, as it's undefined in the RM).
next prev parent reply other threads:[~2014-04-01 14:00 UTC|newest]
Thread overview: 76+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-14 14:48 PL310 errata workarounds Russell King - ARM Linux
2014-03-14 15:01 ` Russell King - ARM Linux
2014-03-14 16:02 ` Rob Herring
2014-03-14 17:57 ` Russell King - ARM Linux
2014-03-14 19:14 ` Rob Herring
2014-03-14 20:32 ` Russell King - ARM Linux
2014-03-19 21:22 ` Marek Vasut
2014-03-19 21:35 ` Rob Herring
2014-03-19 21:46 ` Russell King - ARM Linux
2014-03-19 21:54 ` Marek Vasut
2014-03-16 11:52 ` Russell King - ARM Linux
2014-03-17 15:04 ` Rob Herring
2014-03-17 15:37 ` Russell King - ARM Linux
2014-03-17 17:29 ` Catalin Marinas
2014-03-17 19:44 ` Russell King - ARM Linux
2014-03-17 21:09 ` Nicolas Pitre
2014-03-17 21:14 ` Russell King - ARM Linux
2014-03-17 21:54 ` Nicolas Pitre
2014-03-16 15:29 ` Russell King - ARM Linux
2014-03-17 14:00 ` Rob Herring
2014-03-17 14:40 ` Russell King - ARM Linux
2014-03-18 11:22 ` *READ THIS IF YOUR SOC HAS A L2 CACHE* PL310 auxctrl settings Russell King - ARM Linux
2014-03-28 12:51 ` Maxime Coquelin
2014-03-28 13:02 ` Russell King - ARM Linux
2014-03-28 13:32 ` Maxime Coquelin
2014-03-18 17:26 ` PL310 errata workarounds Russell King - ARM Linux
2014-03-19 21:52 ` Marek Vasut
2014-03-19 22:51 ` Russell King - ARM Linux
2014-03-19 23:05 ` FEC ethernet issues [Was: PL310 errata workarounds] Marek Vasut
2014-03-20 4:01 ` Marek Vasut
2014-03-20 22:27 ` Fabio Estevam
2014-03-20 23:06 ` Russell King - ARM Linux
2014-03-21 0:24 ` Troy Kisky
2014-03-21 1:18 ` Russell King - ARM Linux
2014-03-21 1:36 ` Fabio Estevam
2014-03-21 1:43 ` Fabio Estevam
2014-03-21 16:37 ` Bernd Faust
[not found] ` <CANBf9eNZB+BVBDkgWNxxGs-ndQ-mYCc6+bfVdS-8T-QLpSZ3GA@mail.gmail.com>
2014-03-21 17:32 ` Russell King - ARM Linux
2014-03-23 11:38 ` Bernd Faust
2014-03-23 13:44 ` Russell King - ARM Linux
2014-03-24 17:57 ` robert.daniels at vantagecontrols.com
2014-03-24 20:21 ` Marek Vasut
2014-03-24 22:37 ` robert.daniels at vantagecontrols.com
2014-03-24 23:44 ` Russell King - ARM Linux
2014-03-25 1:02 ` Marek Vasut
2014-03-25 23:10 ` Russell King - ARM Linux
2014-03-26 0:11 ` Russell King - ARM Linux
2014-04-01 9:26 ` Russell King - ARM Linux
2014-04-01 14:00 ` Eric Nelson [this message]
2014-04-01 17:29 ` Russell King - ARM Linux
2014-04-01 18:11 ` Eric Nelson
2014-04-02 2:26 ` fugang.duan at freescale.com
2014-04-01 19:38 ` robert.daniels at vantagecontrols.com
2014-04-01 22:51 ` Russell King - ARM Linux
2014-04-02 0:37 ` robert.daniels at vantagecontrols.com
2014-04-02 3:19 ` fugang.duan at freescale.com
2014-04-02 8:59 ` Russell King - ARM Linux
2014-04-02 9:40 ` fugang.duan at freescale.com
2014-04-02 10:46 ` Russell King - ARM Linux
2014-04-02 11:33 ` fugang.duan at freescale.com
2014-04-02 16:51 ` Russell King - ARM Linux
2014-04-03 2:41 ` fugang.duan at freescale.com
2014-04-03 8:56 ` Russell King - ARM Linux
2014-04-03 9:55 ` fugang.duan at freescale.com
2014-04-03 10:32 ` Russell King - ARM Linux
2014-04-03 13:36 ` Shawn Guo
2014-04-03 13:45 ` Russell King - ARM Linux
2014-04-03 14:00 ` Shawn Guo
2014-04-04 20:21 ` robert.daniels at vantagecontrols.com
2014-04-29 9:26 ` Jaccon Bastiaansen
[not found] ` <CAGzjT4d8H6YE6P6A1E4aHiPAenJFvZH01LHXaNzVwhF2MRBvWQ@mail.gmail.com>
2014-05-02 11:41 ` Russell King - ARM Linux
2014-05-08 9:23 ` Jaccon Bastiaansen
2014-03-21 15:50 ` PL310 errata workarounds Frank Li
2014-03-21 17:12 ` Russell King - ARM Linux
2014-03-17 16:32 ` Russell King - ARM Linux
2014-03-17 16:51 ` Russell King - ARM Linux
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=533AC67D.2060906@boundarydevices.com \
--to=eric.nelson@boundarydevices.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.