U-Boot atheros PHY support and cubox ethernet
Tom Rini
trini at konsulko.com
Tue Jun 16 23:35:12 CEST 2020
On Tue, Jun 16, 2020 at 11:37:17PM +0300, Vladimir Oltean wrote:
> On Tue, 16 Jun 2020 at 23:31, Tom Rini <trini at konsulko.com> wrote:
> >
> > On Tue, Jun 16, 2020 at 11:21:08PM +0300, Vladimir Oltean wrote:
> > > On Tue, 16 Jun 2020 at 23:10, Tom Rini <trini at konsulko.com> wrote:
> > > >
> > > > On Tue, Jun 16, 2020 at 10:58:26PM +0300, Vladimir Oltean wrote:
> > > > > Hi Tom,
> > > > >
> > > > > On Tue, 16 Jun 2020 at 22:55, Tom Rini <trini at konsulko.com> wrote:
> > > > > >
> > > > > > Hey all,
> > > > > >
> > > > > > In commit 4346df3392c0 ("phy: atheros: Make RGMII Tx delays actually
> > > > > > configurable for AR8035") we brought in changes to get in to line with
> > > > > > upstream linux kernel support for this PHY and in turn deal with more
> > > > > > "driver was wrong, DT was wrong too" changes. Now the problem I have is
> > > > > > that ethernet on my Hummingboard doesn't work AND as far as I can tell,
> > > > > > the DTB is correct and saying phy-mode = "rgmii-id" now not "rgmii". It
> > > > > > also looks to match what's in v5.7 for the kernel. What do I need to do
> > > > > > here next? Thanks!
> > > > > >
> > > > > > --
> > > > > > Tom
> > > > >
> > > > > Reverting 4346df3392c0 makes your interface work?
> > > >
> > > > Yup.
> > > >
> > > > > What is the DTS path that your hummingboard uses?
> > > >
> > > > Good question. Per board/solidrun/mx6cuboxi/mx6cuboxi.c:
> > > > /*
> > > > * This is not a perfect match. Avoid dependency on the DM GPIO driver
> > > > * needed
> > > > * for accurate board detection. Hummingboard2 DT is good enough for
> > > > * U-Boot on
> > > > * all Hummingboard/Cubox-i platforms.
> > > > */
> > > > so arch/arm/dts/imx6dl-hummingboard2-emmc-som-v15.dts is the base. But
> > > > the board really is the original hummingboard platform. Thanks!
> > > >
> > > > --
> > > > Tom
> > >
> > > Does it work if you say PHY_INTERFACE_MODE_RGMII_ID here?
> > > https://gitlab.denx.de/u-boot/u-boot/-/blob/master/drivers/net/fec_mxc.c#L1232
> >
> > No change. And to be clear, I bisect'd the issue down and at that
> > commit, reverting it fixes ethernet. It doesn't revert cleanly (nor
> > obviously to me) on master.
> >
> > --
> > Tom
>
> On master, the revert would look like this:
>
> diff --git a/drivers/net/phy/atheros.c b/drivers/net/phy/atheros.c
> index 13f7275d1706..5ba639e8119f 100644
> --- a/drivers/net/phy/atheros.c
> +++ b/drivers/net/phy/atheros.c
> @@ -124,6 +124,7 @@ static int ar8021_config(struct phy_device *phydev)
>
> static int ar803x_delay_config(struct phy_device *phydev)
> {
> + int regval;
> int ret;
>
> if (phydev->interface == PHY_INTERFACE_MODE_RGMII_TXID ||
> @@ -138,6 +139,10 @@ static int ar803x_delay_config(struct phy_device *phydev)
> else
> ret = ar803x_enable_rx_delay(phydev, false);
>
> + phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x05);
> + regval = phy_read(phydev, MDIO_DEVAD_NONE, 0x1e);
> + phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, (regval|0x0100));
> +
> return ret;
> }
This alone is not enough.
> The next thing to check is to print the value of phydev->interface there.
> 7 is PHY_INTERFACE_MODE_RGMII,
> 8 is PHY_INTERFACE_MODE_RGMII_ID,
> 9 is PHY_INTERFACE_MODE_RGMII_RXID,
> 10 is PHY_INTERFACE_MODE_RGMII_TXID,
With only this patch, it's 7. With this added to mx6cuboxi.c:
- phydev = phy_find_by_mask(bus, ETH_PHY_MASK, PHY_INTERFACE_MODE_RGMII);
+ phydev = phy_find_by_mask(bus, ETH_PHY_MASK, PHY_INTERFACE_MODE_RGMII_ID);
it's 8, and doesn't work either. Moving on to the next emails now.
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200616/aa295474/attachment.sig>
More information about the U-Boot
mailing list