network driver & phy framework

Ran Shalit ranshalit at gmail.com
Sun Apr 24 15:54:41 EDT 2016


Hello,

I write a network driver, and I try to understand how to communicate with phy.
I see several methods, but did not found documentation on the
differences, and when to use each of these methods:

1. using generic phy -
  a. I think we use it when we don't know the exaxt phy (?), though
I'm not sure of that.
  b. use mii_if_info struct to register the read/write API between mii & phy.
mii.mdio_read = custom_mdio_read_mii;
mii.mdio_write = custom_mdio_write_mii;
  c. ethtool is used with mii_if_info and the registered functions

2. using external phy.
 a. I think we use it when we don't know the exaxt phy (?), though I'm
not sure of that.
  b. use mii_bus to register the read/write API between mii & phy.
mii.read = custom_mdio_read_mii;
mii.write = custom_mdio_write_mii;
  c. not sure how ethtool is used in this case (?)...

3. using internal phy (?)
     -  not sure how ethtool is used in this case (?)...

Thanks for any feedback,
Ran



More information about the Kernelnewbies mailing list