Re: RFC: symmetric SET_MODULE_EEPROM_BY_PAGE with i2c_address for non-SFF pages
From: Andrew Lunn <andrew@lunn.ch>
Date: 2026-07-15 15:58:18
The issue is that automotive PHYs have extra functions, not available in standard SFP 1000BASET/Fiber modules.
But this is not a fiber module. It is a copper module. How are you setting the connector byte at 130? Do you have an RJ45? SFF8024_CONNECTOR_RJ45? The other option is SFF8024_CONNECTOR_UNSPEC and transceiver byte 134, bit 3 e1000_base_t True to mean twisted pair.
Namely: * 1000BASET1 PHY needs to be assigned a role (either master or slave), a standard NIC have no concept of this.
Nothing special here: ethtool -s devname [master-slave preferred-master|preferred-slave|forced-master|forced-slave] Standard NICs do have this concept. I cannot say if NICs using firmware actually implement this API, but any NIC using Linux to drive the hardware probably does, and it is a standard part of phylib, and 802.3 registers in C22 and C45. There are helpers for PHY drivers to set the bits.
* The PHY have multiple operational speeds, for example 100BASET1 and 1000BASET1
Again, nothing special. The PHY driver should enumerate what the capabilities of the PHY are, there are bits defined in 802.3 for this, so nothing special needed. From that, the MAC can decide how it configures itself. Again, nothing special.
In order to set those configurations, we need to send an I2C command to the SFP module; to inform it in which mode the user wants it to work (the entire config is just few bytes of data)
How are you intercepting the ethtool netlink messages at the top of the MAC? You need to intercept the ksetting_set/get calls. Sorry, but for Mainline, you need to follow Mainline way of doing things. Linux is however open source. Feel free to fork Linux, make whatever changes you want, and ship your fork to your customers. Andrew