On Wed, 17 Jun 2020 at 00:01, Vladimir Oltean <olte...@gmail.com> wrote:
>
> On Tue, 16 Jun 2020 at 23:58, Tom Rini <tr...@konsulko.com> wrote:
> >
> > On Tue, Jun 16, 2020 at 05:55:10PM -0300, Fabio Estevam wrote:
> > > On Tue, Jun 16, 2020 at 5:51 PM Tom Rini <tr...@konsulko.com> wrote:
> > >
> > > > Ah.  So this is probably why the DT being right isn't helping then.  If
> > > > you want to blind-convert I'm happy to test, otherwise do you have a
> > > > similar board conversion for me to look at?  Thanks!
> > >
> > > Please try Vladimir's suggestion as it seems to be the less intrusive 
> > > approach:
> > >
> > > --- a/board/solidrun/mx6cuboxi/mx6cuboxi.c
> > > +++ b/board/solidrun/mx6cuboxi/mx6cuboxi.c
> > > @@ -321,7 +321,7 @@ int board_eth_init(bd_t *bis)
> > >         if (!bus)
> > >                 return -EINVAL;
> > >
> > > -       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);
> > >         if (!phydev) {
> > >                 ret = -EINVAL;
> > >                 goto free_bus;
> > >
> >
> > OK, tried that and not enough.  Console says PHY autoneg completes, but
> > DHCP still doesn't reply.
> >
>
> What about with the manual revert in place? What does
> phydev->interface print? Not only in atheros.c, but also in
> mx6cuboxi.c, right below this phy_find_by_mask call.
> Trying to understand if this is your only problem or if there are more.

In fact there's one more 'manual' thing you can do.

Check if RX delay is enabled (bit 15 of debug register 0):
=> mdio write eTSEC1 0x1D 0
=> mdio read eTSEC1 0x1E
=> mdio write eTSEC1 0x1E <new value>

Check if TX delay is enabled (bit 8 of debug register 5):
=> mdio write eTSEC1 0x1D 5
=> mdio read eTSEC1 0x1E
=> mdio write eTSEC1 0x1E <new value>

(replace eTSEC1 with your mdio bus name from "mdio list")

Reply via email to