(struct phy_device*dev,struct ethtool_wolinfo*wol);void(*link_change_notify)(struct phy_device*dev);int(*read_mmd)(struct phy_device*dev,int devnum,u16 regnum);int(*write_mmd)(struct phy_device*dev,int devnum,u16 regnum,u16 val);int(*read_page)(struct phy_device*dev);int(*write_...
void(*link_change_notify)(struct phy_device *dev); int(*read_mmd)(struct phy_device *dev,intdevnum, u16 regnum); int(*write_mmd)(struct phy_device *dev,intdevnum, u16 regnum, u16 val); int(*read_page)(struct phy_device *dev); int(*write_page)(struct phy_device *dev,intpage)...
(*read_mmd)(struct phy_device *dev, int devnum, u16 regnum); int (*write_mmd)(struct phy_device *dev, int devnum, u16 regnum, u16 val); int (*read_page)(struct phy_device *dev); int (*write_page)(struct phy_device *dev, int page) int (*module_info)(struct phy_device *...
MDIO最早在IEEE 802.3的第22卷定义,后来在第45卷又定义了增强版本的MDIO,其主要被应用于以太网的MAC和PHY层之间,用于MAC层器件通过读写寄存器来实现对PHY层器件的操作与管理。 MDIO主机(即产生MDC时钟的设备)通常被称为STA(Station Management Entity),而MDIO从机通常被称为MMD(MDIO Management Device)。通常STA都...
int(*read_mmd)(struct phy_device *dev,intdevnum, u16 regnum); int(*write_mmd)(struct phy_device *dev,intdevnum, u16 regnum, u16 val); int(*read_page)(struct phy_device *dev); int(*write_page)(struct phy_device *dev,intpage) ...
[0]); return; } mdio_mmd_write(devad, reg, val); } static int phy_mmd_read(int argc, char **argv) { struct mii_data *mii = (struct mii_data *)&ifr.ifr_data; int retval, addr, devad, reg, err; if (argc == 6) { addr = strtol(argv[3], NULL, 0); devad = strtol(...
Read MMD register. Parameters [in] interface Underlying network interface [in] devAddr Device address [in] regAddr Register address Returns MMD register value Definition at line 375 of file rtl8211f_driver.c.◆ rtl8211fReadPhyReg()uint...
DEVAD是DeviceAddress,该域是MMD设备的5位ID。这个域对应MII管理接口的管理帧的寄存器地址域。 4)ADDRESS/DATA MDIO接口的地址操作中,这个域用来传送需要访问的寄存器的16位地址。MII管理接口中,寄存器地址只有5位;MDIO接口中,寄存器地址变为16位。 MDIO接口的读写操作中,这个域是读出或者待写入的数据。
status = phy_read_status(phydev); if (status) return status; /* First check if the EEE ability is supported */ eee_cap = phy_read_mmd(phydev, MDIO_MMD_PCS, MDIO_PCS_EEE_ABLE); if (eee_cap <= 0) goto eee_exit_err; cap = mmd_eee_cap_to_ethtool_sup_t(eee_cap); if (!
#defineMII_MMD_CTRL 0x0d/* MMD Access Control Register */ #defineMII_MMD_DATA 0x0e/* MMD Access Data Register */ #defineMII_ESTATUS 0x0f/* Extended Status */ #defineMII_DCOUNTER 0x12/* Disconnect counter */ #defineMII_FCSCOUNTER 0x13/* False carrier counter */ ...