Re: [PATCH net-next] net: sfp: add quirk for ZOERAX SFP-2.5G-T

From: Jan Hoffmann

Date: Sat Mar 28 2026 - 16:06:17 EST


On 2026-03-28 at 04:50, Jakub Kicinski wrote:
On Wed, 25 Mar 2026 17:35:58 +0100 Jan Hoffmann wrote:
This is a 2.5G copper module which appears to be based on a Motorcomm
YT8821 PHY. There doesn't seem to be a usable way to to access the PHY
(I2C address 0x56 provides only read-only C22 access, and Rollball is
also not working).

The module does not report the correct extended compliance code for
2.5GBase-T, and instead claims to support SONET OC-48 and Fibre Channel:

Identifier : 0x03 (SFP)
Extended identifier : 0x04 (GBIC/SFP defined by 2-wire interface ID)
Connector : 0x07 (LC)
Transceiver codes : 0x00 0x01 0x00 0x00 0x40 0x40 0x04 0x00 0x00
Transceiver type : FC: Multimode, 50um (M5)
Encoding : 0x05 (SONET Scrambled)
BR Nominal : 2500MBd

Despite this, the kernel still sets 2500Base-X as interface mode based
on the (incorrect) nominal signaling rate.

However, it is also necessary to disable auto-negotiation for the module
to actually work. Thus, create a SFP quirk to do this.

Signed-off-by: Jan Hoffmann <jan@xxxxxx>
---
Note: I'm not quite sure "sfp_quirk_disable_autoneg" is enough here, or
if it would be appropriate to use the full "sfp_quirk_oem_2_5g" quirk
due to the not really correct compliance code / nominal signaling rate.

I'm no SFP expert but just going by the naming I strongly suspect that
the module is the same hardware as "SFP-2.5G-T" from "FS", so keeping
quirks consistent makes sense?
Based on commit e27aca3760c0 ("net: sfp: enhance quirk for Fibrestore 2.5G copper SFP module"), the FS module uses an RTL8221B PHY, so it is different hardware. And it also supports the Rollball protocol for PHY access, unlike this Zoerax module.

From the existing quirks, the only valid alternative I see for the Zoerax module would be "sfp_quirk_oem_2_5g" (which also sets the additional bits for 2500Base-T link mode and explicitly enables 2500Base-X interface mode). But as that is not strictly necessary for making this particular module work, I am unsure if using this quirk would be appropriate.

Thanks,
Jan