Page MenuHomeFreeBSD

Fixes to the if_smsc driver
ClosedPublic

Authored by arshankhanifar_gmail.com on Apr 27 2018, 6:07 PM.
Referenced Files
F107477446: D15217.diff
Tue, Jan 14, 6:20 PM
Unknown Object (File)
Dec 10 2024, 11:58 PM
Unknown Object (File)
Oct 6 2024, 8:42 AM
Unknown Object (File)
Oct 6 2024, 3:40 AM
Unknown Object (File)
Oct 5 2024, 11:34 AM
Unknown Object (File)
Oct 5 2024, 8:33 AM
Unknown Object (File)
Oct 5 2024, 2:05 AM
Unknown Object (File)
Oct 3 2024, 9:00 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 Skipped
Unit
Tests Skipped

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.