Hi Kevin,
I couldn't find any example laying around, so I took a shot at it based
on other non-network examples we had. I've not personally done it so
bear that in mind.
I have not tried to compile any of this, just stole parts for places and
pasted in.
Hope it helps,
John
#include <ioctl.h>
/*
* FD of the IIC device opened.
*/
int Fdtemac;
struct mii_ioctl_data ioctl_data;
/*
* Open the device.
*/
Fdtemac = open("/dev/TBD", O_RDWR);
if(Fdtemac < 0)
{
printf("Cannot open the temac device\n");
return -1;
}
/* setup the inputs to the ioctl call */
ioctl_data.phy_num = TBD;
ioctl_data.reg_num = TBD;
/*
* Read the phy register
*/
Register = ioctl(Fdtemac, SIOCGMIIREG, &ioctl_data);
if(Status < 0)
{
/* failure */
return 0;
}
/* results should be in ioctl_data.val_out I think
}
>From the temac linux adapter, a snippet showing the the ioctl function.
xenet_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
{
struct mii_ioctl_data *data = (struct mii_ioctl_data *)
&rq->ifr_data;
case SIOCGMIIREG: /* Read GMII PHY register. */
ret = XTemac_PhyRead(&lp->Emac, data->phy_id,
data->reg_num, &data->val_out);
}
from linux/mii.h
/* This structure is used in all SIOCxMIIxxx ioctl calls */
struct mii_ioctl_data {
__u16 phy_id;
__u16 reg_num;
__u16 val_in;
__u16 val_out;
};
from linux/if.h
struct ifreq
{
#define IFHWADDRLEN 6
union
{
char ifrn_name[IFNAMSIZ]; /* if name, e.g.
"en0" */
} ifr_ifrn;
union {
struct sockaddr ifru_addr;
struct sockaddr ifru_dstaddr;
struct sockaddr ifru_broadaddr;
struct sockaddr ifru_netmask;
struct sockaddr ifru_hwaddr;
short ifru_flags;
int ifru_ivalue;
int ifru_mtu;
struct ifmap ifru_map;
char ifru_slave[IFNAMSIZ]; /* Just fits the size */
char ifru_newname[IFNAMSIZ];
void __user * ifru_data;
struct if_settings ifru_settings;
} ifr_ifru;
};
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On
Behalf Of khollan
Sent: Thursday, March 06, 2008 1:44 PM
To: [email protected]
Subject: Re: Xilinx Temac link detect
I figure I could write a C program to talk to the ioctl in the TEMAC
driver
and read the PHY register. Does anyone have example code for talking to
network ioctl's?
Thanks
Kevin
--
View this message in context:
http://www.nabble.com/Xilinx-Temac-link-detect-tp15616042p15883376.html
Sent from the linuxppc-embedded mailing list archive at Nabble.com.
_______________________________________________
Linuxppc-embedded mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-embedded
_______________________________________________
Linuxppc-embedded mailing list
[email protected]
https://ozlabs.org/mailman/listinfo/linuxppc-embedded