I stopped fighting with S+RJ10.
I bought XICOM and they are on phy Aquantia AQR113C
They are 10-15 degrees cooler and seem to be fully supported by openwrt.
But there is one peculiarity: in 2024 they changed the name of their modules for DDMI.
In 2023 and earlier they were called
OEM SFP+-T
Now starting in 2024 They are called
OEM SFP-10G-T
Old 2023 and earlier modules did not detect their phy, but this can be fixed.
You just need to add the name of the old module before building.
Maybe someone will add this fix to the main build in the future.
[   19.598863] sfp sfp1: module OEM              SFP-10G-T        rev 1    sn CI2401130569     dc 240112
[   19.619594] sfp sfp2: module OEM              SFP+-T           rev 1    sn C2312180155      dc 231218
[   19.640098] hwmon hwmon2: temp1_input not attached to any thermal zone
[   19.666445] hwmon hwmon3: temp1_input not attached to any thermal zone
[   20.239281] mtdblock: MTD device 'ubi' is NAND, please consider using UBI block devices instead.
[   20.251394] mtdblock: MTD device 'bl2' is NAND, please consider using UBI block devices instead.
[   20.268447] md: md0 stopped.
[   20.307591] md0: detected capacity change from 0 to 1937388544
[   21.864184] mtk_soc_eth 15100000.ethernet eth0: Link is Down
[   21.879282] mtk_soc_eth 15100000.ethernet eth0: configuring for fixed/internal link mode
[   21.887414] mtk_soc_eth 15100000.ethernet eth0: Link is Up - 10Gbps/Full - flow control rx/tx
[   21.889843] mt7530-mmio 15020000.switch lan1: configuring for phy/internal link mode
[   21.904051] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   21.911104] br-lan: port 1(lan1) entered blocking state
[   21.916362] br-lan: port 1(lan1) entered disabled state
[   21.921827] device lan1 entered promiscuous mode
[   21.930157] mt7530-mmio 15020000.switch lan2: configuring for phy/internal link mode
[   21.938625] br-lan: port 2(lan2) entered blocking state
[   21.943863] br-lan: port 2(lan2) entered disabled state
[   21.949339] device lan2 entered promiscuous mode
[   21.956305] mt7530-mmio 15020000.switch lan3: configuring for phy/internal link mode
[   21.964639] br-lan: port 3(lan3) entered blocking state
[   21.969912] br-lan: port 3(lan3) entered disabled state
[   21.975367] device lan3 entered promiscuous mode
[   21.982319] mt7530-mmio 15020000.switch wan: configuring for phy/internal link mode
[   21.990730] br-lan: port 4(wan) entered blocking state
[   21.995876] br-lan: port 4(wan) entered disabled state
[   22.001567] device wan entered promiscuous mode
[   22.007351] mtk_soc_eth 15100000.ethernet eth1: configuring for inband/10gbase-r link mode
[   22.030559] mtk_soc_eth 15100000.ethernet eth2: configuring for inband/10gbase-r link mode
[   23.549413] EXT4-fs (md0): recovery complete
[   23.553708] EXT4-fs (md0): mounted filesystem with ordered data mode. Quota mode: disabled.
[   48.129729] hwmon hwmon4: temp1_input not attached to any thermal zone
[   48.909538] mtk_soc_eth 15100000.ethernet eth2: PHY [i2c:sfp1:11] driver [Aquantia AQR113C] (irq=POLL)
[   49.919770] hwmon hwmon5: temp1_input not attached to any thermal zone
[   50.699779] mtk_soc_eth 15100000.ethernet eth1: PHY [i2c:sfp2:11] driver [Aquantia AQR113C] (irq=POLL)
[   56.561973] mtk_soc_eth 15100000.ethernet eth1: Link is Up - 2.5Gbps/Full - flow control rx/tx
[   56.570624] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[   57.281984] mtk_soc_eth 15100000.ethernet eth2: Link is Up - 2.5Gbps/Full - flow control rx/tx
[   57.290634] IPv6: ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready
finally got flow control working on 2.5G and now he understands that this is not 10G
root@OpenWrt:~# ethtool eth1
Settings for eth1:
        Supported ports: [  ]
        Supported link modes:   100baseT/Full
                                1000baseT/Full
                                10000baseT/Full
                                1000baseKX/Full
                                10000baseKX4/Full
                                10000baseKR/Full
                                2500baseT/Full
                                5000baseT/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  100baseT/Full
                                1000baseT/Full
                                10000baseT/Full
                                1000baseKX/Full
                                10000baseKX4/Full
                                10000baseKR/Full
                                2500baseT/Full
                                5000baseT/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
                                             1000baseT/Full
                                             2500baseT/Full
        Link partner advertised pause frame use: Symmetric Receive-only
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: Not reported
        Speed: 2500Mb/s
        Duplex: Full
        Auto-negotiation: on
        Port: Twisted Pair
        PHYAD: 17
        Transceiver: external
        MDI-X: Unknown
        Current message level: 0x000000ff (255)
                               drv probe link timer ifdown ifup rx_err tx_err
        Link detected: yes
UPD: I changed the name on the module now I don’t need the quirk.
Old name
OEM+-T
I changed its name to
OEM-10G-T
and now it works normally.
[ 2627.204270] sfp sfp1: module OEM              SFP-10G-T        rev 1    sn C2312180155      dc 231218
[ 2627.244145] hwmon hwmon2: temp1_input not attached to any thermal zone
[ 2653.565434] hwmon hwmon3: temp1_input not attached to any thermal zone
[ 2654.355229] mtk_soc_eth 15100000.ethernet eth2: PHY [i2c:sfp1:11] driver [Aquantia AQR113C] (irq=POLL)
[ 2683.518830] sfp sfp1: module removed
All information is in this post.
https://forum.banana-pi.org/t/i2csfp-sfp-debugging-via-i2c/17761?u=vasya
Here is the executable file you can run directly on the BPI-R4
i2csfp.tar.gz (298,4 КБ)
root@OpenWrt:/tmp$ ./i2csfp /dev/i2c-3 eepromfix -V OEM -N SFP-10G-T