[U-Boot] [PATCH] driver/net/fec: support fixed speed connection
Hannes Schmelzer
hannes at schmelzer.or.at
Mon Jul 11 16:36:41 CEST 2016
On 07/11/2016 04:23 PM, Stefano Babic wrote:
> Hi Hannes,
Hi Stefano,
>
> On 22/06/2016 12:07, Hannes Schmelzer wrote:
>> 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 at oevsv.at>
>> ---
>>
>> doc/README.fec_mxc | 5 +++++
>> drivers/net/fec_mxc.c | 4 ++++
>> 2 files changed, 9 insertions(+)
>>
>> diff --git a/doc/README.fec_mxc b/doc/README.fec_mxc
>> index ed7e47d..9ca6ac2 100644
>> --- a/doc/README.fec_mxc
>> +++ b/doc/README.fec_mxc
>> @@ -27,6 +27,11 @@ CONFIG_FEC_MXC_PHYADDR
>> Optional, selects the exact phy address that should be connected
>> 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:
>> if CONFIG_FEC_MXC is defined and the U-Boot environment does not contain the
>> diff --git a/drivers/net/fec_mxc.c b/drivers/net/fec_mxc.c
>> index 360f8e4..e871b3e 100644
>> --- a/drivers/net/fec_mxc.c
>> +++ b/drivers/net/fec_mxc.c
>> @@ -233,6 +233,7 @@ static int miiphy_restart_aneg(struct eth_device *dev)
>> return ret;
>> }
>>
>> +#ifndef CONFIG_FEC_FIXED_SPEED
>> static int miiphy_wait_aneg(struct eth_device *dev)
>> {
>> uint32_t start;
>> @@ -260,6 +261,7 @@ static int miiphy_wait_aneg(struct eth_device *dev)
>>
>> return 0;
>> }
>> +#endif /* CONFIG_FEC_FIXED_SPEED */
>> #endif
>>
>> 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;
>> }
>> +#elif CONFIG_FEC_FIXED_SPEED
>> + speed = CONFIG_FEC_FIXED_SPEED;
>> #else
>> miiphy_wait_aneg(edev);
>> speed = miiphy_speed(edev->name, fec->phy_id);
>>
>
> Really I had already sent a patch for this issue, and I merged this into
> u-boot-imx, - next
>
> http://git.denx.de/?p=u-boot/u-boot-imx.git;a=commit;h=57b7371e24e429ee37403cfb084d142cf7699bd7
>
> Anyway, your patch is more complete as mine. I will drop my patch and
> substitute with your.
many thanks, looking forward for getting merged into u-boot master.
> Best regards,
> Stefano Babic
cheers,
Hannes
More information about the U-Boot
mailing list