[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YdQydK4GhI0P5RYL@shell.armlinux.org.uk>
Date: Tue, 4 Jan 2022 11:41:40 +0000
From: "Russell King (Oracle)" <linux@...linux.org.uk>
To: Corentin Labbe <clabbe.montjoie@...il.com>
Cc: linus.walleij@...aro.org, ulli.kroll@...glemail.com,
kuba@...nel.org, davem@...emloft.net, andrew@...n.ch,
hkallweit1@...il.com, linux-arm-kernel@...ts.infradead.org,
netdev@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: net: phy: marvell: network working with generic PHY and not with
marvell PHY
On Tue, Jan 04, 2022 at 12:33:15PM +0100, Corentin Labbe wrote:
> Le Tue, Jan 04, 2022 at 11:14:46AM +0000, Russell King (Oracle) a écrit :
> > On Tue, Jan 04, 2022 at 11:58:01AM +0100, Corentin Labbe wrote:
> > > Hello
> > >
> > > I have a gemini SSI 1328 box which has a cortina ethernet MAC with a Marvell 88E1118 as given by:
> > > Marvell 88E1118 gpio-0:01: attached PHY driver (mii_bus:phy_addr=gpio-0:01, irq=POLL)
> > > So booting with CONFIG_MARVELL_PHY=y lead to a non-working network with link set at 1Gbit
> > > Setting 'max-speed = <100>;' (as current state in mainline dtb) lead to a working network.
> > > By not working, I mean kernel started with ip=dhcp cannot get an IP.
> >
> > How is the PHY connected to the host (which interface mode?) If it's
> > RGMII, it could be that the wrong RGMII interface mode is specified in
> > DT.
> >
>
> The PHY is set as RGMII in DT (arch/arm/boot/dts/gemini-ssi1328.dts)
> The only change to the mainline dtb is removing the max-speed.
So, it's using "rgmii" with no delay configured at the PHY with the
speed limited to 100Mbps. You then remove the speed limitation and
it doesn't work at 1Gbps.
I think I've seen this on other platforms (imx6 + ar8035) when the
RGMII delay is not correctly configured - it will work at slower
speeds but not 1G.
The RGMII spec specifies that there will be a delay - and the delay can
be introduced by either the MAC, PHY or by PCB track routing. It sounds
to me like your boot environment configures the PHY to introduce the
necessary delay, but then, because the DT "rgmii" mode means "no delay
at the PHY" when you use the Marvell driver (which respects that), the
Marvell driver configures the PHY for no delay, resulting in a non-
working situation at 1G.
I would suggest checking how the boot environment configures the PHY,
and change the "rgmii" mode in DT to match. There is a description of
the four RGMII modes in Documentation/networking/phy.rst that may help
understand what each one means.
--
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!
Powered by blists - more mailing lists