mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 15:14:43 +00:00
driver/net/fec: support fixed speed connection
If MAC is directly connected to another MAC (like a switch for example) we don't need to probe for a phy, autoneogation and so on. We simply have to setup speed. Signed-off-by: Hannes Schmelzer <oe5hpm@oevsv.at> Acked-by: Joe Hershberger <joe.hershberger@ni.com>
This commit is contained in:
parent
a32b4a03c7
commit
0750701a3f
2 changed files with 9 additions and 0 deletions
|
@ -27,6 +27,11 @@ CONFIG_FEC_MXC_PHYADDR
|
||||||
Optional, selects the exact phy address that should be connected
|
Optional, selects the exact phy address that should be connected
|
||||||
and function fecmxc_initialize will try to initialize it.
|
and function fecmxc_initialize will try to initialize it.
|
||||||
|
|
||||||
|
CONFIG_FEC_FIXED_SPEED
|
||||||
|
Optional, selects a fixed speed on the MAC interface without asking some
|
||||||
|
phy. This is usefull if there is a direct MAC <-> MAC connection, for
|
||||||
|
example if the CPU is connected directly via the RGMII interface to a
|
||||||
|
ethernet-switch.
|
||||||
|
|
||||||
Reading the ethaddr from the SoC eFuses:
|
Reading the ethaddr from the SoC eFuses:
|
||||||
if CONFIG_FEC_MXC is defined and the U-Boot environment does not contain the
|
if CONFIG_FEC_MXC is defined and the U-Boot environment does not contain the
|
||||||
|
|
|
@ -233,6 +233,7 @@ static int miiphy_restart_aneg(struct eth_device *dev)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef CONFIG_FEC_FIXED_SPEED
|
||||||
static int miiphy_wait_aneg(struct eth_device *dev)
|
static int miiphy_wait_aneg(struct eth_device *dev)
|
||||||
{
|
{
|
||||||
uint32_t start;
|
uint32_t start;
|
||||||
|
@ -260,6 +261,7 @@ static int miiphy_wait_aneg(struct eth_device *dev)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#endif /* CONFIG_FEC_FIXED_SPEED */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int fec_rx_task_enable(struct fec_priv *fec)
|
static int fec_rx_task_enable(struct fec_priv *fec)
|
||||||
|
@ -502,6 +504,8 @@ static int fec_open(struct eth_device *edev)
|
||||||
}
|
}
|
||||||
speed = fec->phydev->speed;
|
speed = fec->phydev->speed;
|
||||||
}
|
}
|
||||||
|
#elif CONFIG_FEC_FIXED_SPEED
|
||||||
|
speed = CONFIG_FEC_FIXED_SPEED;
|
||||||
#else
|
#else
|
||||||
miiphy_wait_aneg(edev);
|
miiphy_wait_aneg(edev);
|
||||||
speed = miiphy_speed(edev->name, fec->phy_id);
|
speed = miiphy_speed(edev->name, fec->phy_id);
|
||||||
|
|
Loading…
Reference in a new issue