Subject: Re: [PATCH net-next 5/7] net: phy: marvell10g: Force reading of 2.5/5G PMA extended abilities

From: Maxime Chevallier <[email-masked]>
Date: Mon, 21 Jan 2019 11:35:31 +0100

Hello Andrew,

On Sun, 20 Jan 2019 20:08:09 +0100
Andrew Lunn <[email-masked]> wrote:

>On Fri, Jan 18, 2019 at 04:23:50PM +0100, Maxime Chevallier wrote:
>> As per 802.3bz, if bit 14 of (1.11) "PMA Extended Abilities" indicates
>> whether or not we should read register (1.21) "2.52/5G PMA Extended
>> Abilities", which contains information on the support of 2.5GBASET and
>> 5GBASET.
>> 
>> After testing on several variants of PHYS of this family, it appears
>> that bit 14 in (1.11) isn't always set when it should be.
>> 
>> PHYs 88X3310 (on MacchiatoBin) and 88E2010 do support 2.5G and 5GBASET,
>> but don't have 1.11.14 set. Their register 1.21 is filled with the
>> correct values, indicating 2.5G and 5G support.
>> 
>> PHYs 88X2110 do have their 1.11.14 bit set, as it should.  
>
>Hi Maxime
>
>Is there anything about this in any Errata?

I haven't seen any Errata on that unfortunately.

I also thought about reading (1.4) "PMA/PMD Speed Ability", but the
2.5G and 5G speeds are also reported as not being supported on the
88X3310.

>We potentially have an issue if Marvell have any PHYs in this family
>which don't support 2.5G/5G. Maybe this workaround needs to check the
>IDs and only enable it on device we know are broken.

I agree with you, this might be a better way to handle that issue. For
now, I've only seen that issue on the 3310 and 2010, with PHY IDs
respectively 002b09aa and 002b09ab.

I 'll add a test for ids '002b09aX', hopefully there won't be any PHYs
with these IDs that don't support 2.5/5G.

In that case, there's no need for a separate mv2110_config_init in
patch 7.

Thanks,

Maxime.

>    Andrew

-- 
Maxime Chevallier, Bootlin
Embedded Linux and kernel engineering
https://bootlin.com

_______________________________________________
linux-arm-kernel mailing list
[email-masked]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel