Hi,

Cisco is using a Marvell 88E1112 phy. It seems to be fairly similar to the 88E1111 which Harini added a fix for. In Harini's commit message for ,

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/drivers/net/phy/marvell.c?id=3ec0a0f10ceb

"This function has a sequence accessing Page 5 and Register 31, both of which are not defined or reserved for this PHY"

For the 88E1112 we see that these are "Factory Test Modes" which the contents of are not documented. They aren't really "not defied", and aren't really "reserved" .. Marvell support claims they don't support these drivers, and Freescale seems to be adding these drivers, and the line we are looking at.

We had some issues with our PHY which were corrected with the same patch Harini used but modified for the M88E1112. We're trying to get to the bottom of where this code came from and what it was suppose to be doing.

Here are the problem lines where were removed,

drivers/net/phy/marvell.c:marvell_config_aneg()

 266         err = phy_write(phydev, 0x1d, 0x1f);
 267         if (err < 0)
 268                 return err;
 269
 270         err = phy_write(phydev, 0x1e, 0x200c);
 271         if (err < 0)
 272                 return err;
 273
 274         err = phy_write(phydev, 0x1d, 0x5);
 275         if (err < 0)
 276                 return err;
 277
 278         err = phy_write(phydev, 0x1e, 0);
 279         if (err < 0)
 280                 return err;
 281
 282         err = phy_write(phydev, 0x1e, 0x100);
 283         if (err < 0)
 284                 return err;

Does anyone have any clues as to why this was added?

Thanks,

Daniel

Reply via email to