[PATCH v2] net: ti: am65-cpsw-nuss: handle missing PHY in am65_cpsw_phy_init() gracefully

Sverdlin, Alexander alexander.sverdlin at siemens.com
Thu Mar 28 12:53:02 CET 2024


Hi Nishanth!

On Thu, 2024-03-28 at 06:45 -0500, Nishanth Menon wrote:
> On 07:29-20240328, A. Sverdlin wrote:
> > From: Alexander Sverdlin <alexander.sverdlin at siemens.com>
> > 
> > am65_cpsw_ofdata_parse_phy() tries to handle the case when PHY is not
> > specified in DT gracefully:
> > 
> > am65_cpsw_nuss_port ethernet at 8000000port@1: can't parse phy-handle port 1 (-2)
> > 
> > am65_cpsw_mdio_init() in turn is prepared for this, checks
> > if priv->has_phy == 0 and bails out (leaving cpsw_common->bus == NULL).
> > 
> > am65_cpsw_phy_init() however is not prepared for this and calls
> > phy_connect(cpsw_common->bus, ...) unconditionally, which leads to:
> > 
> > "Synchronous Abort" handler, esr 0x8600000d, far 0x0
> > elr: ffffffff808ab000 lr : 000000008083bde4 (reloc)
> > 
> > where lr points to the instruction right after bus->read() in get_phy_id().
> > 
> > Fixes: 9d0dca1199d1 ("net: ethernet: ti: Introduce am654 gigabit eth switch subsystem driver")
> > Signed-off-by: Alexander Sverdlin <alexander.sverdlin at siemens.com>
> > ---
> > v2: rewritten subject; "is turn" -> "in turn" further down in message body
> > 
> >   drivers/net/ti/am65-cpsw-nuss.c | 3 +++
> >   1 file changed, 3 insertions(+)
> > 
> > diff --git a/drivers/net/ti/am65-cpsw-nuss.c b/drivers/net/ti/am65-cpsw-nuss.c
> > index 6da018c0f9d5..d1e452b6b43c 100644
> > --- a/drivers/net/ti/am65-cpsw-nuss.c
> > +++ b/drivers/net/ti/am65-cpsw-nuss.c
> > @@ -722,6 +722,9 @@ static int am65_cpsw_phy_init(struct udevice *dev)
> >         u32 supported = PHY_GBIT_FEATURES;
> >         int ret;
> >   
> > +       if (!priv->has_phy || !cpsw_common->bus)
> > +               return 0;
> > +
> >         phydev = phy_connect(cpsw_common->bus,
> >                              priv->phy_addr,
> >                              priv->dev,
> > -- 
> > 2.44.0
> > 
> 
> Reviewed-by: Nishanth Menon <nm at ti.com>
> 
> 
> Thanks for fixing this.
> 
> Btw, this no longer applies on next. only applies on master. Depending
> on where Tom would like to apply this change, might need a rebase.

Thanks for the hint! I've totally missed this!
And I'm even not sure the patch makes sense on "next".
I'd need to retest if the problem is still there (and if there would be one,
then it's rather subsystem problem, not am65-cpsw any more.

So the patch only makes sense for stable branches, if any.

-- 
Alexander Sverdlin
Siemens AG
www.siemens.com


More information about the U-Boot mailing list