MDIO/MII 介绍
MII是Medium Independent Interface的缩写,是一种标准接口,该接口主要应用于MAC层和PHY层之间的以太网数据传输。 MII接口的类型有很多,常用的有MII、RMII、SMII、SSMII、SSSMII、GMII、RGMII、SGMII、TBI、RTBI、XGMII、XAUI、XLAUI等。
MDIO是Management Data Input/Output的缩写,是一种串行通信总线,类似于I2C,该总线由IEEE通过以太网标准IEEE 802.3的若干条款加以定义,一般用于微控制器或是mac控制器与phy相连接。MDIO必须于MDC一起使用,MDC是作为MDIO的时钟信号。
MDIO是属于MII接口的一部分。
解析phy驱动:
驱动流程: phy_driver_regitster -->driver_register-->bus_add_driver-->driver_attach-->bus_for_each_dev-->__driver_attach(通过bus_for_each_dev参数回调)-->driver_probe_device(drv, dev)-->really_probe(dev, drv)-->drv->probe(dev).
int phy_driver_register(struct phy_driver *new_driver)
{
int retval;
new_driver->driver.name = new_driver->name;
new_driver->driver.bus = &mdio_bus_type;
new_driver->driver.pro