mirror of https://github.com/ipxe/ipxe.git
[mii] Add mii_find()
Add the function mii_find() in order to locate the PHY address. Signed-off-by: Sylvie Barlow <sylvie.c.barlow@gmail.com> Signed-off-by: Michael Brown <mcb30@ipxe.org>pull/73/head
parent
6047b7ca7a
commit
7ed1dc98c3
|
@ -147,3 +147,28 @@ int mii_check_link ( struct mii_device *mii, struct net_device *netdev ) {
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Find PHY address
|
||||||
|
*
|
||||||
|
* @v mii MII device
|
||||||
|
* @ret rc Return status code
|
||||||
|
*/
|
||||||
|
int mii_find ( struct mii_device *mii ) {
|
||||||
|
unsigned int address;
|
||||||
|
int id;
|
||||||
|
|
||||||
|
/* Try all possible PHY addresses */
|
||||||
|
for ( address = 0 ; address <= MII_MAX_PHY_ADDRESS ; address++ ) {
|
||||||
|
mii->address = address;
|
||||||
|
id = mii_read ( mii, MII_PHYSID1 );
|
||||||
|
if ( ( id > 0x0000 ) && ( id < 0xffff ) ) {
|
||||||
|
DBGC ( mii, "MII %p found PHY at address %d\n",
|
||||||
|
mii, address );
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
DBGC ( mii, "MII %p failed to find an address\n", mii );
|
||||||
|
return -ENOENT;
|
||||||
|
}
|
||||||
|
|
|
@ -141,9 +141,13 @@ mii_dump ( struct mii_device *mii ) {
|
||||||
/** Maximum time to wait for a reset, in milliseconds */
|
/** Maximum time to wait for a reset, in milliseconds */
|
||||||
#define MII_RESET_MAX_WAIT_MS 500
|
#define MII_RESET_MAX_WAIT_MS 500
|
||||||
|
|
||||||
|
/** Maximum PHY address */
|
||||||
|
#define MII_MAX_PHY_ADDRESS 31
|
||||||
|
|
||||||
extern int mii_restart ( struct mii_device *mii );
|
extern int mii_restart ( struct mii_device *mii );
|
||||||
extern int mii_reset ( struct mii_device *mii );
|
extern int mii_reset ( struct mii_device *mii );
|
||||||
extern int mii_check_link ( struct mii_device *mii,
|
extern int mii_check_link ( struct mii_device *mii,
|
||||||
struct net_device *netdev );
|
struct net_device *netdev );
|
||||||
|
extern int mii_find ( struct mii_device *mii );
|
||||||
|
|
||||||
#endif /* _IPXE_MII_H */
|
#endif /* _IPXE_MII_H */
|
||||||
|
|
Loading…
Reference in New Issue