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 11:11:46 -0700 [thread overview]
Message-ID: <533B0162.9090305@boundarydevices.com> (raw)
In-Reply-To: <20140401172933.GB7528@n2100.arm.linux.org.uk>
On 04/01/2014 10:29 AM, Russell King - ARM Linux wrote:
> On Tue, Apr 01, 2014 at 07:00:29AM -0700, Eric Nelson wrote:
>> Hi Russell,
>>
>> What value do you have for pad control register
>> IOMUXC_SW_PAD_CTL_PAD_RGMII_TX_CTL (0x020E0388)?
>
> You're referring to the iMX6Q, the Hummingboard is iMX6S, so that's
> 0x20e06bc. I have value 0x1b030.
>
Right. I missed that you were running on Solo.
>> 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).
>
> Yes, bit 7 should not be set as it's reserved, but this is ignored.
> Setting the hysteresis bit affects the input thresholds, and this signal
> is only ever used as an output. While selecting HYS mode for an output
> may seem odd, that should not have any effect here.
>
> In any case, TX_CTL doesn't have much to do with it. I've fully proved
> that the interface works fine under full duplex conditions, achieving
> 500Mbps transmit and 570-600Mbps receive with TCP connections (which is
> nicely beyond what freescale claim the hardware is capable of.)
>
> The phy needs TX_CTL asserted in order to transmit anything, so as it
> works in full duplex mode, this must be happening correctly.
>
It appears I'm gender-challenged and confused TX_CTL and RX_CTL.
My thought (and question) was whether the pad setup for "transmit
enable" to the i.MX is either being missed entirely, or arriving
late because of an internal pullup/pull down or other pad
misconfiguration.
The pad settings have every indication of being cut/pasted, which
made me question them.
> The FEC needs RX_CTL asserted to indicate that valid data is being
> received by the phy - if this was not being recognised by the FEC, full
> duplex mode wouldn't work.
>
> The last scenario is the error signals encoded onto TX_CTL/RX_CTL. This
> is one area I can't comment on yet - monitoring these signals is not
> exactly easy (and requires two steady hands.) However, I have briefly
> monitored these signals when running at 100mbit half-duplex. With the
> scope RX_CTL and triggering on it, I do see TX_CTL being raised by the
> FEC.
>
> Whether TX_CTL is raised by the FEC just before or after RX_CTL has been
> asserted I can't say yet.
>
> However, TX_CTL raised while RX_CTL is raised or toggling means that a
> collision has occurred. TX_CTL should never be raised while RX_CTL
> indicates that there is a "carrier" present in half-duplex mode (and
> therefore there is already another ethernet station transmitting on
> the wire.)
>
> Remember, I'm seeing late collisions. The only way that happens is if
> something starts transmitting after 64 bytes into an ethernet frame, and
> it implies that something is not noticing that the link is busy before it
> starts blurting out.
>
I guess we can rule out slew rate.
> I know that my hubs are fine - the 10mbit hub has been used over _many_
> years (it's more than 20 years old now) and has always been rock solid...
> unlike the 10/100 hub with a dodgy switch between the two segments which
> I can lock out the 10 mbit segment with enough 100mbit traffic.
>
> Let's also not forget that these signals run at 125MHz at gigabit speeds,
> and 2.5MHz at 10mbit... if they were marginal at 10mbit, gigabit
> certainly would not work.
>
Based on this, I don't see how a badly-configured pad could produce the
symptoms you're seeing.
next prev parent reply other threads:[~2014-04-01 18:11 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
2014-04-01 17:29 ` Russell King - ARM Linux
2014-04-01 18:11 ` Eric Nelson [this message]
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=533B0162.9090305@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).