[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200110173249.0b086a76@donnerap.cambridge.arm.com>
Date: Fri, 10 Jan 2020 17:32:49 +0000
From: Andre Przywara <andre.przywara@....com>
To: Russell King - ARM Linux admin <linux@...linux.org.uk>
Cc: "David S . Miller" <davem@...emloft.net>,
Radhey Shyam Pandey <radhey.shyam.pandey@...inx.com>,
Robert Hancock <hancock@...systems.ca>, netdev@...r.kernel.org,
Michal Simek <michal.simek@...inx.com>,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH 07/14] net: axienet: Fix SGMII support
On Fri, 10 Jan 2020 14:58:49 +0000
Russell King - ARM Linux admin <linux@...linux.org.uk> wrote:
> On Fri, Jan 10, 2020 at 11:54:08AM +0000, Andre Przywara wrote:
> > With SGMII, the MAC and the PHY can negotiate the link speed between
> > themselves, without the host needing to mediate between them.
> > Linux recognises this, and will call phylink's mac_config with the speed
> > member set to SPEED_UNKNOWN (-1).
>
> I wonder whether you have read the documentation for the phylink
> mac_config() method (if not, please read it, it contains some very
> important information about what mac_config() should do.) When
> operating in SGMII in-band mode, state->speed and state->duplex are
> not actually valid.
>
> You'll probably want to submit a better patch after reading the
> documentation.
Sure, I am admittedly quite clueless about phylink in particular, and found the available information quite daunting.
So I tried my best in looking at what other drivers do. From what I got there is that you speed=-1 should be ignored, but the other fields still handled.
Also I was somewhat puzzled, as I was expecting "mode" being MLO_AN_INBAND. But in fact it's called twice with MLO_AN_PHY, and mac_pcs_get_state() never gets called:
[ 166.516583] xilinx_axienet 7fe00000.ethernet eth0: PHY [axienet-7fe00000:01] driver [Generic PHY]
[ 166.547309] xilinx_axienet 7fe00000.ethernet eth0: configuring for phy/sgmii link mode
[ 166.572343] axienet_mac_config(mode=0, speed=-1, duplex=255, pause=16, link=0, an_en=1)
udhcpc: sending discover
[ 168.652152] axienet_mac_config(mode=0, speed=-1, duplex=255, pause=0, link=1, an_en=0)
[ 168.683538] xilinx_axienet 7fe00000.ethernet eth0: Link is Up - Unknown/Unknown - flow control off
[ 168.712560] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
udhcpc: sending discover
udhcpc: sending select for 10.1.x.y
udhcpc: lease of 10.1.x.y obtained, lease time 691200
I was just wondering if the DT description is giving Linux a wrong impression, but I have phy-mode set to sgmii, also just tried phy-connection-type on top of that. The DT snippet is the same as the example in patch 14. The PHY is a Marvell 88E1111, connected via SGMII.
I would be grateful for any advice!
Cheers,
Andre.
Powered by blists - more mailing lists