mii->reg_num = (uint16_t)strtoul(argv[2], NULL, 0); ret = ioctl(sockfd,SIOCGMIIREG, &ifr); reteck(ret); printf("read phy addr: 0x%x reg: 0x%x value : 0x%x\n\n", mii->phy_id, mii->reg_num, mii->val_out); }else if(argc == 4){ mii->reg_num = (uint16_t)strtoul(...
3. 使用ioctl系统调用 对于需要更底层控制的应用程序,你可以使用ioctl系统调用来与网络设备驱动进行通信,从而读取PHY寄存器的值。这种方法通常涉及编写C语言程序。 示例代码: c #include <stdio.h> #include <stdlib.h> #include <string.h> #include <linux/mii.h> #include &...
mii->val_in = (uint16_t)strtoul(argv[3], NULL, 0); ret = ioctl(sockfd, SIOCSMIIREG, &ifr); reteck(ret); printf("write phy addr: 0x%x reg: 0x%x value : 0x%x\n\n", mii->phy_id, mii->reg_num, mii->val_in); } lab: close(sockfd); return 0; } 分类: linux , 调试工具...
if(ioctl(skfd SIOCGMIIREG &ifr) < 0) { fprintf(stderr “SIOCGMIIREG on %s failed: %s\n“ ifr.ifr_name strerror(errno));return -1; }return mii->val_out;}static void mdio_write(int skfd int location int value){ struct mii_ioctl_data *mii = (struct mii_ioctl_data *)&ifr.ifr...
"mii.h" #define MDIO_TOOL_VERSION "v1.0" #define PHY_SLECT_PAGE 31 #define PHY_BASE_PAGE 0 //you can find kernel/driver/net/phy/phy.c : phy_mii_ioctl #define MII_ADDR_C45 (1 << 30) #define PHY_IS_C45 0x8000 #define PHY_C45_MASK 0x03e0 static struct ifreq ifr; static int...
SIOCGMIIPHY,&ifr);reteck(ret);mii=(structmii_ioctl_data*)&ifr.ifr_data;if(argc==3){mii->reg_num=(uint16_t)strtoul(argv[2],NULL,0);ret=ioctl(sockfd,SIOCGMIIREG,&ifr);reteck(ret);printf("read phy addr: 0x%x reg: 0x%x value : 0x%x\n\n",mii->phy_id,mii->reg_num,mii->val_...
struct mii_ioctl_data *mii; int page regl regh; int i; if(argc != 6) { usage(argv[0]); return -1; } page = atoi(argv[3]); regl = atoi(argv[4]); regh = atoi(argv[5]); printf(“page=%d regl=%d regh=%d \n“ page regl regh); if((fd = socket(AF_INET SO...
*/ static inline void mdio45_ethtool_ksettings_get(const struct mdio_if_info *mdio, struct ethtool_link_ksettings *cmd) { mdio45_ethtool_ksettings_get_npage(mdio, cmd, 0, 0); } extern int mdio_mii_ioctl(const struct mdio_if_info *mdio, struct mii_ioctl_data *mi...
MAC_PHY_MIITool.7z mac 通过MDIO接口访问phy寄存器,这部分完全封装在mac驱动中,我们需要直接配置phy寄存器的话,需要调用mac驱动,ioctl 进行读写,亲测可用。 上传者:qq_18540669时间:2020-12-10 phy mdio读写源码 phy芯片switch芯片 mdio读写源码 下载后编译即可 ...
/* Or MII_ADDR_C45 into regnum for read/write on mii_bus to enable the 21 bit * IEEE 802.3ae clause 45 addressing mode used by 10GIGE phy chips. * */ #defineMII_ADDR_C45(1<<30) #defineMDIO_READ2 #defineMDIO_WRITE1 #defineMDIO_C45(1<<15) ...