- 论坛徽章:
- 0
|
之前是用的MII的,下面驱动可以正常工作,但换成RMII后,下面ioctl操作报错,请问要怎么修改:
static int network_miireg_read(char *ifrname, int phy_id, int reg_num )
{
while(ret==0){
fd = socket(AF_INET, SOCK_DGRAM, 0);
if(-1 == fd)
{
porting_error(PORT_MODULE_NET,"get socket fail.");
return 0;
}
ifr = malloc(sizeof(struct ifreq));
memset(ifr, 0x00, sizeof(struct ifreq));
//strcpy (ifr->ifr_name, ifrname); /*eth0*/
strncpy(ifr->ifr_name, ifrname, IFNAMSIZ);
mii = (struct mii_ioctl_data *)&ifr->ifr_data;
mii->phy_id =0; // phy_id; /*0x10;*/
//phy_id = mii->phy_id;
mii->reg_num = reg_num; /*0x01;*/
/*mii->val_in = SetValue;*/
if(ioctl(fd, ActionCmd, ifr) == -1)
{
close(fd);
porting_error(PORT_MODULE_NET,"ioctl fail.");
free(ifr);
return 0;
}
close(fd);
// printf("read value = 0x%x\n", mii->val_out);
ret = mii->val_out;
free(ifr);
count++;
if(count > 3)
break;
if(ret==0)
sleep(1);
}
} |
|