Page MenuHomeFreeBSD

Fixes to the if_smsc driver
ClosedPublic

Authored by arshankhanifar_gmail.com on Apr 27 2018, 6:07 PM.
Referenced Files
Unknown Object (File)
Dec 22 2023, 11:08 PM
Unknown Object (File)
Dec 12 2023, 4:48 AM
Unknown Object (File)
Nov 22 2023, 1:40 AM
Unknown Object (File)
Nov 14 2023, 8:11 AM
Unknown Object (File)
Nov 12 2023, 9:36 AM
Unknown Object (File)
Nov 12 2023, 8:33 AM
Unknown Object (File)
Nov 10 2023, 7:25 AM
Unknown Object (File)
Nov 9 2023, 8:19 PM
Subscribers
None

Details

Summary

There are two problems:

  1. In smsc_phy_init function, when the driver is trying to reset PHY, it doesn't poll for the correct bit (BMCR_RESET) to be cleared. Instead, it ands it with MII_BMCR which happens to be 0, so it just exits the loop.
  2. In smsc_miibus_readreg and smsc_miibus_writetreg it doesn't set the SMSC_MII_BUSY bit, which is necessary for PHY to acknowledge a read/write request. the linux driver does the same.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

This revision was not accepted when it landed; it landed in state Needs Review.Apr 30 2018, 2:18 AM
This revision was automatically updated to reflect the committed changes.