Re: [PATCH net-next v2] net: dsa: mv88e6xxx: Add erratum 3.14 for 88E6390X and 88E6190X

From: Ante Knezic
Date: Wed Jul 19 2023 - 05:09:31 EST


> It needs to be implemented exactly as posted here? After mv88e6390_serdes_power()
> is called on any port/lane, mv88e6390x_serdes_erratum_3_14() needs to run
> for all lanes? That might be a problem.

Actually, I tested applying erratum only on requested lane in pcs_post_config and
it seems to work out fine, so we might use something like:

static int mv88e6390_erratum_3_14(struct mv88e639x_pcs *mpcs)
{
int err;

/* 88e6190x and 88e6390x errata 3.14:
* After chip reset, SERDES reconfiguration or SERDES core
* Software Reset, the SERDES lanes may not be properly aligned
* resulting in CRC errors
*/

err = mdiodev_c45_write(&mpcs->mdio, MDIO_MMD_PHYXS,
0xf054, 0x400C);
if (err)
return err;

err = mdiodev_c45_write(&mpcs->mdio, MDIO_MMD_PHYXS,
0xf054, 0x4000);
if (err)
return err;

return 0;
}

> Do we know if the register writes are disruptive for the ports which are
> already up and running?

I was not able to see any issues when appling the errata for already active
and running ports.