Re: [PATCH v1] net: sfp: add quirks for ODI DFP-34X-2C2

From: Shengyu Qu
Date: Mon Feb 26 2024 - 10:52:52 EST


Hi Russell,

Sadly I don't have more information. I think we could only get that from
Realtek guys(This stick is using RTL9601D). What we can get now is all
inside that github repo. Realtek didn't release SDK source code to
public for this chip. :(

Best regards,
Shengyu

在 2024/2/26 23:42, Russell King (Oracle) 写道:
On Mon, Feb 26, 2024 at 10:51:36PM +0800, Shengyu Qu wrote:
Hi Russell,

在 2024/2/26 22:39, Russell King (Oracle) 写道:
On Mon, Feb 26, 2024 at 10:16:46PM +0800, Shengyu Qu wrote:
Hi Russell,

On Mon, Feb 26, 2024 at 09:23:46PM +0800, Shengyu Qu wrote:
ODI DFP-34X-2C2 is capable of 2500base-X, but incorrectly report its
capabilities in the EEPROM.
So use sfp_quirk_2500basex for this module to allow 2500Base-X mode.
This was previously submitted by Sergio Palumbo, and comes in two
different forms - an OEM version and non-OEM. There was extensive
discussion about this, and the result is that I'm not accepting this
quirk for this module.

The reason is that the module _defaults_ to 1000base-X and requires
manual reconfiguration by the user to operate at 2500base-X.
Unfortunately, there is no way for the kernel to know whether that
reconfiguration has occurred.
No, In the firmware of this stick, the speed rate is configured to auto
negotiation rather than fixed 1000base-X.

How does this "auto negotiation" work?

I mean *exactly* how does it work? How does it know whether the host is
operating at 1000base-X or 2500base-X?

There is *no* inband protocol to allow this to be negotiated.

Well, that seems some kind weird trick implemented in that chip's SDK (maybe
hardware?). It would automatically detect the speed rate that host uses and
switch to that rate. The system log of the stick shows that.

This sounds racy - between the SFP detecting the speed of the host and
the kernel code reconfiguring the interface. More details please...

Attachment: OpenPGP_0xE3520CC91929C8E7.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature