[PATCH 2/2] ARM: Layerscape: Add LS1021A IOT board support

Renaud Barbier Renaud.Barbier at ametek.com
Thu Feb 16 05:56:49 PST 2023



> -----Original Message-----
> From: Sascha Hauer <sha at pengutronix.de>
> Sent: 16 February 2023 12:55
> To: Renaud Barbier <Renaud.Barbier at ametek.com>
> Cc: Barebox List <barebox at lists.infradead.org>
> Subject: Re: [PATCH 2/2] ARM: Layerscape: Add LS1021A IOT board support
> 
> ***NOTICE*** This came from an external source. Use caution when
> replying, clicking links, or opening attachments.
> 
> On Thu, Feb 16, 2023 at 11:54:14AM +0000, Renaud Barbier wrote:
> >
> >
> > > > +
> > > > +/* Currently 1000FD is not working. Below is a bit of guess work
> > > > + * from reading MMD3/MMD7 of the AR8033  */ static int
> > > > +phy_fixup(struct phy_device *phydev) {
> > > > +     unsigned short val;
> > > > +     int advertise = SUPPORTED_1000baseT_Full |
> > > > +SUPPORTED_1000baseT_Half;
> > > > +
> > > > +     phydev->advertising &= ~advertise;
> > > > +
> > > > +     /* Ar8031 phy SmartEEE feature cause link status generates glitch,
> > > > +      * which cause ethernet link down/up issue, so disable SmartEEE
> > > > +      */
> > > > +     phy_write(phydev, 0xd, 0x3);
> > > > +     phy_write(phydev, 0xe, 0x805d);
> > > > +     phy_write(phydev, 0xd, 0x4003);
> > > > +     val = phy_read(phydev, 0xe);
> > > > +     val &= ~(0x1 << 8);
> > > > +     phy_write(phydev, 0xe, val);
> > > > +
> > > > +     /* Use XTAL */
> > > > +     phy_write(phydev, 0xd, 0x7);
> > > > +     phy_write(phydev, 0xe, 0x8016);
> > > > +     phy_write(phydev, 0xd, 0x4007);
> > > > +     val = phy_read(phydev, 0xe);
> > > > +     val &= 0xffe3;
> > > > +     phy_write(phydev, 0xe, val);
> > > > +
> > > > +     return 0;
> > > > +}
> > >
> > > We have a phy driver for the AR8033. Can you use it instead of
> > > putting this into board code?
> >
> > Hello I have enabled the at803x driver to support the AR8031. However,
> only the generic PHY driver config_init get called.
> > phy_driver_register: 00000000
> > register generic for: Generic PHY, 0xffffffff
> > phy_driver_register: bbe15d54
> > register specific for: Atheros 8035 ethernet, 0x4dd072
> > phy_driver_register: bbe15d54
> > register specific for: Atheros 8030 ethernet, 0x4dd076
> > phy_driver_register: bbe15d54
> > register specific for: Atheros 8031 ethernet, 0x4dd074
> >
> > call phy_init_hw
> > call config_init for: Generic PHY, 0xffffffff
> >
> > I do not understand how to connect the AR802x phy driver to the device.
> Do I need to add something to the device tree?
> >
> > barebox at LS1021A-IOT Board:/ md -w -s /dev/mdio0-phy03
> 
> Is this the only phy or are there others? What does "devinfo mdio0-phy03"
> say?
> miitool -v output might be interesting as well.
[Barbier, Renaud] 
Indeed,
barebox at LS1021A-IOT Board:/ miitool -v
mdio0-phy00: 2d24000.mdio at 2d24000.of: no link
  product info: Generic PHY (vendor 00:00:00, model 0 rev 0)
  basic mode:   autonegotiation enabled
  basic status: no link
  capabilities:
  advertising:
mdio0-phy01: 2d24000.mdio at 2d24000.of: negotiated 100baseTx-FD, link ok
  product info: Generic PHY (vendor 00:13:74, model 7 rev 4)
  basic mode:   autonegotiation enabled
  basic status: autonegotiation complete, link ok
  capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  advertising:  100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  link partner: 1000baseT-FD 1000baseT-HD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
mdio0-phy03: 2d24000.mdio at 2d24000.of: negotiated 100baseTx-FD, link ok
  product info: Generic PHY (vendor 00:13:74, model 7 rev 4)
  basic mode:   autonegotiation enabled
  basic status: autonegotiation complete, link ok
  capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  advertising:  100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  link partner: 1000baseT-FD 1000baseT-HD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control




More information about the barebox mailing list