[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <9dd03fd9-1241-fc7d-ead3-feb7e918d4c3@nexvision.fr>
Date: Fri, 27 May 2016 11:23:22 +0200
From: Charles-Antoine Couret <charles-antoine.couret@...vision.fr>
To: Florian Fainelli <f.fainelli@...il.com>,
Andrew Lunn <andrew@...n.ch>
Cc: netdev <netdev@...r.kernel.org>
Subject: Re: FWD: [PATCH v2] Marvell phy: add fiber status check for some
components
Hello,
I'm sorry to repost that, but after one month, I need a answer to continue to imrpove my patch in the right direction. :)
Thank you in advance.
Regards.
Charles-Antoine Couret
Le 29/04/2016 à 10:28, Charles-Antoine Couret a écrit :
> Le 11/04/2016 à 21:47, Florian Fainelli a écrit :
>>> Do we actually need to stay on page 1 if fibre is in use? How do we
>>> initially change to page 1 when the fibre link is still down?
>>
>> I also do not feel very comfortable with reading the fiber status first,
>> and then copper and then combine these two. At the very best, could we
>> do something like:
>>
>> - identify if the PHY is configured for fiber in drv->probe or
>> drv->config_init, retain that information
>
> But, how configure in runtime the user choice? Add a driver option?
> Else, a default choice should be added in init/probe function and the user should change by ethtool or driver recompilation.
>
>> - have two paths in drv->read_status which take care of reading one
>> status or the other?
>
> I worked for a solution around that.
> But the Marvell's datasheet seems to agree with my previous method:
>
> Extract:
> "Notes on Determining which Media Linked Up
>
> Since there are two sets of IEEE registers (one for copper and the other for fiber) the software needs
> to be aware of register 22.7:0 so that the correct set of registers are selected. In general the
> sequence is as follows.
>
> 1-Set the Auto-Negotiation registers of the copper medium. (This step may not be necessary if the
> hardware configuration defaults are acceptable).
>
> 2-Set the Auto-Negotiation registers of the fiber medium. (This step may not be necessary if the
> hardware configuration defaults are acceptable).
>
> 3-Poll for link status.Go to step 4 if there is link.
>
> 4-Once there is link determine whether the link is copper or fiber medium.
>
> 5-Look at the Auto-Negotiation results for the medium that established link.
>
> 6-Poll for link status. If link status goes down then go back to step 3."
>
> By default, the phy is configured to be connected on both interfaces with any preference. The first connected was selected.
> A preference could be added, but it is not a force mode.
>
> Extract:
> "Preferred Media
>
> The device can be programmed to give one media priority over the other. In other words if the
> non-preferred media establishes link first and subsequently energy is detected on the preferred
> media, the PHY will drop link on the non-preferred media for 4 seconds and give the preferred media
> a chance to establish link."
>
> We don't have registers to know really if Copper or Fiber is selected. We can know only by checking status registers as in my commit.
>
>
>>> Should we be using the old mechanism to swap between TP, BNC and AUI
>>> to swap between copper and fibre?
>>
>> Did you mean using ethtool -s <iface> port fibre for instance?
>
> So, to implement that I have to renable the port change in phy_ethtool_sset function.
> But, the datasheet seems to disagree with this method.
>
> Finally, what do I have to do? I continue my previous way or your suggestion?
> I prefer to respect the datasheet, but if it's better for you to follow the other way, I will implement that.
>
> Thank you in advance and have a nice day.
> Regards,
> Charles-Antoine Couret
>
Powered by blists - more mailing lists