[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ea9924d3-639b-4332-b870-a9ab2caab11c@gmail.com>
Date: Tue, 23 Apr 2024 07:54:39 +0200
From: Eric Woudstra <ericwouds@...il.com>
To: Marek BehĂșn <kabel@...nel.org>, netdev@...r.kernel.org,
Russell King <rmk+kernel@...linux.org.uk>,
Raju Lakkaraju <Raju.Lakkaraju@...rochip.com>,
Frank Wunderlich <frank-w@...lic-files.de>,
Simon Horman <simon.horman@...igine.com>
Cc: Andrew Lunn <andrew@...n.ch>, Heiner Kallweit <hkallweit1@...il.com>
Subject: Re: [PATCH net-next 2/2] net: sfp: enhance quirk for Fibrestore 2.5G
copper SFP module
On 4/22/24 11:44, Marek BehĂșn wrote:
> Frank, Russell, do you still have access to OEM SFP-2.5G-T module?
> It could make sense to try this quirk also for those modeuls, instead
> of the current sfp_quirk_oem_2_5
It was part of the previous patch-set until and including v2:
"rtl8221b/8251b add C45 instances and SerDes switching"
Note that it does:
sfp->id.base.extended_cc = SFF8024_ECC_2_5GBASE_T;
As the OEM modules have not set this byte. We need it, so that we know
that the sfp_may_have_phy().
After v2 I have dropped it, as it would break functioning some sfp-modules.
As OEM vendors know the eeprom password of the Rollball sfp modules,
they use it in any way they want, not taking in to account that mainline
kernel uses it for unique identification.
Vendor 1 sells "OEM", "SFP-2.5G-T" with a rtl8221b on it.
Vendor 2 sells "OEM", "SFP-2.5G-T" with a yt8821 on it.
So on the OEM modules, we cannot rely solely on the two strings anymore.
Introducing the patch, would break the modules with the yt8821 on it. It
does not have any support in mainline.
Also any code I found for the yt8821 is C22 only. And even more, even
though we are facing with an almost similar MCU, RollBall protocol does
not work. I think it is almost the same mcu, as it responds to the same
eeprom password, and also the rollball password does something, but not
give the expected result.
So you for the OEM module it would have been:
+// For 2.5GBASE-T short-reach modules
+static void sfp_fixup_oem_2_5gbaset(struct sfp *sfp)
+{
+ sfp_fixup_rollball(sfp);
+ sfp->id.base.extended_cc = SFF8024_ECC_2_5GBASE_T;
+}
+
- SFP_QUIRK_M("OEM", "SFP-2.5G-T", sfp_quirk_oem_2_5g),
+ SFP_QUIRK_F("OEM", "SFP-2.5G-T", sfp_fixup_oem_2_5gbaset),
Powered by blists - more mailing lists