[BPI-R4] and SFP

I want to replace the ISP’s ONU, but I need a ONU SFP Stick that has WEB management and that works in the BPI-R3 and BPI-R4 SFP WAN slot.

I have found these but I don’t know if they work or are compatible with the BPI-R3 or BPI-R4 and I would also like you to recommend one:

WAS-110

Alcatel-Lucent G-010S-P / Huawei MA5671A / Nokia G-010S-A

ODI DFP-34X-2C2 / HSGQ SFP XPON

LEOX LXT-010S-H

Hisense GPON LTE3415

You want to use one with a rtl8221b on it, behind rollball protocol. I’ve bought the one from the Luleey shop, it has one.

It was reported the BananaPi module is the same.

There are more sources of these modules, but be careful, you might get one with an yt8821 on it, which is not as well supported.

The TP-Link 2.5G module has a rtl8221b on it, but we have not figured out how to reach the phy.

The main difference is the rtl8221b we can control the phy through the kernel. So we can lower the connection speed between MAC and PHY, when the RJ45 is connected at 1000Mbps or lower. That saves quite a bit of power usage. And of course, you have more control over the negotiation and advertisement process.

The yt8821 module is stuck at the highest speed between MAC and PHY. From the kernel side, it is treated as an optical sfp, without any furher control over the connection on the RJ45.

1 Like

I do not have any of these sticks, or any other gpon, so I can’t help with that.

1 Like

Same for me…only read that some modules working,but need link to have web interface available…maybe the los-gpio needs to be changed (for sfp).

1 Like

Hi team, I’m seeing some real strange things on my two sfp ports. I get this error regardless of the sfp+ module I insert

[ 3082.517577] sfp sfp2: Detected broken RTL8672/RTL9601C emulated EEPROM
[ 3082.524118] sfp sfp2: Switching to reading EEPROM to one byte at a time
[ 3082.574024] sfp sfp2: module rev sn dc
[ 3082.578201] sfp sfp2: module is not supported - phys id 0x00 0x00

I have tried Mikrotik S+RJ10, S+85DLC03D, Intel FTLX8571D3BCV-IT, and SFP-10G-T-CIS without any luck (All checked and working fine in multiple other equipment). I cant even debug them. Running 6.6 with all the PHY drivers selected

Any help would be amazing, even if you point out i’m an idiot and haven’t done something correctly

Maybe this 10G XGS-PON ONU SFP+ Stick work on the BPI-R3 and BPI-R4, because on Reddit, on Discord and on Ubiquiti forum have reported that it works (on other hardware but I think they are based on Linux).

Chipset: MaxLinear PRX126

  1. WAS-110 (Recommended)
    • Recommended on Reddit and on Discord for Ubiquiti hardware.
    • You need to install the 8311 community firmware based on OpenWrt.
    • You can buy it in group (organized on 8311 Discord) to get it cheaper.
    • It can be fully configured via the web interface and can also be configured via CLI commands.

.

I think these 2.5G GPON ONU SFP Sticks work on the BPI-R3 and BPI-R4, because here on the forum, on Reddit, on Discord, on Ubiquiti, on Turris and MikroTik forums have reported that they work (on other hardware but I think they are based on Linux).

Chipset: Lantiq PE98035

  1. Alcatel-Lucent G-010S-P (Recommended)
  2. Huawei MA5671A (Recommended)
  3. FS GPON-ONU-34-20BI
    • The “Alcatel-Lucent G-010S-P” is also known as “Nokia G-010S-P”.
    • The “Huawei MA5671A” need to be rooted.
    • Remove the “Nokia G-010S-A” because it has pin 6 hardware issue.
    • The “FS” GPON has disconnection issues on Ubiquiti hardware.
    • It can be configured more or less via the web interface and requires the use of CLI commands.

Chipset: Realtek RTL9601D

  1. ODI DFP-34X-2C2 (Recommended)
  2. HSGQ-XPON-Stick (Recommended)
    • The hardware in both is identical and they are from the same company, but only the “HSGQ” (newer model) receives firmware updates and already comes with the newer firmware.
    • The “ODI” and “HSGQ” GPON has an issue that only works at 1000baseX/Full on BPI-R3 and BPI-R4.
    • It can be fully configured via the web interface and can also be configured via CLI commands.

Chipset: Realtek RTL9601CI

  1. LEOX LXT-010S-H
    • Recommended on Reddit for Ubiquiti hardware.
    • Not detected in BPI-R4 and sometimes works in BPI-R3.
    • It has disconnection issues every 10 to 14 days of use on MikroTik hardware.
    • It can be configured more or less via the web interface and requires the use of CLI commands.

.

Source:

if it helps anyone: this one works too: sfp sfp1: module FLEXOPTIX P.B1696.10.AD rev A sn F7ABZLJ dc 221007

ODI DFP-34X-2C2 can work at 2500baseX with 2 options:

  1. Patching OWRT
  2. Flashing the SFP eprom.

Regards Sergio

1 Like

3rd option.

  • Rename the sfp.ko module ( example sfp.ko.bkp ). I use that way and it operates at 2500Mb/s. You will lose the diagnostics ( ethtoool -m eth1 on bpi-r3)

There are a misconfigured variable at the eeprom with a baud rate of 1300. That value is for aqn interface at 1.25Gb/s.

Well, i have this stick. And in BPI-R4 is not detected. I have checked this onu-stick in a Mikrotik switch, and it works there :frowning: Also i have checked this in BPI-R3 and it sometimes work there and sometimes not.

{
        "kernel": "6.6.30",
        "hostname": "r1",
        "system": "ARMv8 Processor rev 0",
        "model": "Bananapi BPI-R4",
        "board_name": "bananapi,bpi-r4",
        "rootfs_type": "squashfs",
        "release": {
                "distribution": "OpenWrt",
                "version": "SNAPSHOT",
                "revision": "r26305-eb1b022043",
                "target": "mediatek/filogic",
                "description": "OpenWrt SNAPSHOT r26305-eb1b022043"
        }
}
1 Like

have you tried with fibre connected (link detected) or if this is not possible define other gpio for LOS?

so, after the statement of @ericwoud saying the modules will never work, I tried buying a new set. These are even funnier:

let’s try to bring them up:

root@APBureau4:~# ifconfig eth1 up
root@APBureau4:~# dmesg | tail
[   58.808505] br-lan: port 5(phy0-ap0) entered blocking state
[   58.808524] br-lan: port 5(phy0-ap0) entered disabled state
[   58.808559] mt7915e 0002:01:00.0 phy0-ap0: entered allmulticast mode
[   58.808704] mt7915e 0002:01:00.0 phy0-ap0: entered promiscuous mode
[   58.980732] br-lan: port 5(phy0-ap0) entered blocking state
[   58.980755] br-lan: port 5(phy0-ap0) entered forwarding state
[   59.607616] mt7530-mmio 15020000.switch lan1: Link is Up - 1Gbps/Full - flow control rx/tx
[   59.607670] br-lan: port 1(lan1) entered blocking state
[   59.607684] br-lan: port 1(lan1) entered forwarding state
[15351.219912] mtk_soc_eth 15100000.ethernet eth1: configuring for inband/usxgmii link mode
root@APBureau4:~# ifconfig eth2 up
root@APBureau4:~# dmesg | tail
[   58.980755] br-lan: port 5(phy0-ap0) entered forwarding state
[   59.607616] mt7530-mmio 15020000.switch lan1: Link is Up - 1Gbps/Full - flow control rx/tx
[   59.607670] br-lan: port 1(lan1) entered blocking state
[   59.607684] br-lan: port 1(lan1) entered forwarding state
[15351.219912] mtk_soc_eth 15100000.ethernet eth1: configuring for inband/usxgmii link mode
[15355.307266] device: 'i2c:sfp2': device_add
[15355.307515] PM: Adding info for No Bus:i2c:sfp2
[15382.608963] mtk_soc_eth 15100000.ethernet eth2: configuring for inband/usxgmii link mode
[15409.969346] device: 'i2c:sfp1': device_add
[15409.969504] PM: Adding info for No Bus:i2c:sfp1

ok, so devices are up. Let’s inspect them:

root@APBureau4:~# ethtool -m eth2
        Identifier                                : 0x03 (SFP)
        Extended identifier                       : 0x04 (GBIC/SFP defined by 2-wire interface ID)
        Connector                                 : 0x07 (LC)
        Transceiver codes                         : 0x00 0x00 0x00 0x00 0x00 0x00 0x40 0x00 0x00
        Transceiver type                          : FC: Twisted Pair (TP)
        Encoding                                  : 0x01 (8B/10B)
        BR, Nominal                               : 3100MBd
        Rate identifier                           : 0x00 (unspecified)
        Length (SMF,km)                           : 0km
        Length (SMF)                              : 0m
        Length (50um)                             : 0m
        Length (62.5um)                           : 0m
        Length (Copper)                           : 0m
        Length (OM3)                              : 0m
        Laser wavelength                          : 0nm
        Vendor name                               : OEM
        Vendor OUI                                : 00:00:00
        Vendor PN                                 : SFP-2G5
        Vendor rev                                : 1.0
        Option values                             : 0x00 0x18
        Option                                    : TX_FAULT implemented
        Option                                    : TX_DISABLE implemented
        BR margin, max                            : 0%
        BR margin, min                            : 0%
        Vendor SN                                 : 2G522112324218
        Date code                                 : 220801
root@APBureau4:~# dmesg | tail
[   58.980755] br-lan: port 5(phy0-ap0) entered forwarding state
[   59.607616] mt7530-mmio 15020000.switch lan1: Link is Up - 1Gbps/Full - flow control rx/tx
[   59.607670] br-lan: port 1(lan1) entered blocking state
[   59.607684] br-lan: port 1(lan1) entered forwarding state
[15351.219912] mtk_soc_eth 15100000.ethernet eth1: configuring for inband/usxgmii link mode
[15355.307266] device: 'i2c:sfp2': device_add
[15355.307515] PM: Adding info for No Bus:i2c:sfp2
[15382.608963] mtk_soc_eth 15100000.ethernet eth2: configuring for inband/usxgmii link mode
[15409.969346] device: 'i2c:sfp1': device_add
[15409.969504] PM: Adding info for No Bus:i2c:sfp1
root@APBureau4:~# ethtool -m eth1
        Identifier                                : 0x03 (SFP)
        Extended identifier                       : 0x04 (GBIC/SFP defined by 2-wire interface ID)
        Connector                                 : 0x07 (LC)
        Transceiver codes                         : 0x00 0x00 0x00 0x00 0x00 0x00 0x40 0x00 0x00
        Transceiver type                          : FC: Twisted Pair (TP)
        Encoding                                  : 0x01 (8B/10B)
        BR, Nominal                               : 3100MBd
        Rate identifier                           : 0x00 (unspecified)
        Length (SMF,km)                           : 0km
        Length (SMF)                              : 0m
        Length (50um)                             : 0m
        Length (62.5um)                           : 0m
        Length (Copper)                           : 0m
        Length (OM3)                              : 0m
        Laser wavelength                          : 0nm
        Vendor name                               : OEM
        Vendor OUI                                : 00:00:00
        Vendor PN                                 : SFP-2G5
        Vendor rev                                : 1.0
        Option values                             : 0x00 0x18
        Option                                    : TX_FAULT implemented
        Option                                    : TX_DISABLE implemented
        BR margin, max                            : 0%
        BR margin, min                            : 0%
        Vendor SN                                 : 2G522112324218
        Date code                                 : 220801
root@APBureau4:~# ethtool eth1
Settings for eth1:
        Supported ports: [ MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
                                10000baseT/Full
                                2500baseX/Full
                                1000baseKX/Full
                                10000baseKX4/Full
                                10000baseKR/Full
                                1000baseX/Full
                                10000baseCR/Full
                                10000baseSR/Full
                                10000baseLR/Full
                                10000baseLRM/Full
                                10000baseER/Full
                                2500baseT/Full
                                5000baseT/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
                                10000baseT/Full
                                2500baseX/Full
                                1000baseKX/Full
                                10000baseKX4/Full
                                10000baseKR/Full
                                1000baseX/Full
                                10000baseCR/Full
                                10000baseSR/Full
                                10000baseLR/Full
                                10000baseLRM/Full
                                10000baseER/Full
                                2500baseT/Full
                                5000baseT/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Speed: Unknown!
        Duplex: Unknown! (255)
        Auto-negotiation: on
        Port: MII
        PHYAD: 0
        Transceiver: internal
        Current message level: 0x000000ff (255)
                               drv probe link timer ifdown ifup rx_err tx_err
        Link detected: no
root@APBureau4:~# dmesg | tail
[   58.980755] br-lan: port 5(phy0-ap0) entered forwarding state
[   59.607616] mt7530-mmio 15020000.switch lan1: Link is Up - 1Gbps/Full - flow control rx/tx
[   59.607670] br-lan: port 1(lan1) entered blocking state
[   59.607684] br-lan: port 1(lan1) entered forwarding state
[15351.219912] mtk_soc_eth 15100000.ethernet eth1: configuring for inband/usxgmii link mode
[15355.307266] device: 'i2c:sfp2': device_add
[15355.307515] PM: Adding info for No Bus:i2c:sfp2
[15382.608963] mtk_soc_eth 15100000.ethernet eth2: configuring for inband/usxgmii link mode
[15409.969346] device: 'i2c:sfp1': device_add
[15409.969504] PM: Adding info for No Bus:i2c:sfp1

so far, no luck … let’s get some coffee …

root@APBureau4:~# dmesg | tail
[15355.307266] device: 'i2c:sfp2': device_add
[15355.307515] PM: Adding info for No Bus:i2c:sfp2
[15382.608963] mtk_soc_eth 15100000.ethernet eth2: configuring for inband/usxgmii link mode
[15409.969346] device: 'i2c:sfp1': device_add
[15409.969504] PM: Adding info for No Bus:i2c:sfp1
[15956.549344] sfp sfp2: no PHY detected
[15956.549374] mtk_soc_eth 15100000.ethernet eth1: switched to inband/2500base-x link mode
[15956.555803] mtk_soc_eth 15100000.ethernet eth1: Link is Up - 2.5Gbps/Full - flow control off
[16011.209433] sfp sfp1: no PHY detected
[16011.209463] mtk_soc_eth 15100000.ethernet eth2: switched to inband/2500base-x link mode
root@APBureau4:~# ethtool eth1
Settings for eth1:
        Supported ports: [ TP ]
        Supported link modes:   2500baseT/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  2500baseT/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: No
        Advertised FEC modes: Not reported
        Speed: 2500Mb/s
        Duplex: Full
        Auto-negotiation: off
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        MDI-X: Unknown
        Current message level: 0x000000ff (255)
                               drv probe link timer ifdown ifup rx_err tx_err
        Link detected: yes

wth? where does this come from?

any ideas?

So we were trying to find out which module you have, by peeking around with i2cdump. See if you have the RTL8221B on Rollball SFP module. Somehow, we did not get the right output to determine this.

You now have a module that reports it’s supported interface mode via eeprom and actually has link up. However, the PHY is not recognised (unknown vendor & product string).

I still did not check this myself on R4, but I assume the R4 has the same issue with 2500base-x as the R3.

Quick fix:

ethtool -s eth1 autoneg off

This should setup the MAC without auto-negotiation and traffic should pass. You can do the same with a patch that adds a quirk to disable auto-negotiation for this sfp module.

The module is now treated as if it is an optical module.

To gain control over the PHY (If it is the RTL8221B behind Rollball protocol) you need to either:

  1. Use a patch to add a fixup that matches your vendor/product string.
  2. Change product string on the sfp module’s eeprom (I have a tool that makes this easier).

But this is only useful If it is the RTL8221B behind Rollball protocol.

More can be found on this in other topics on the forum.

1 Like

Your eeprom hack sounds cool. Can I see your tool?

EDIT: @ericwoud which addresses specify the PHY iD again? so far, I got the following info:

root@APBureau4:~# i2cdump -y 3 0x50
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 03 04 07 00 00 00 00 00 00 40 00 01 1f 00 00 00    ???......@.??...
10: 00 00 00 00 4f 45 4d 20 20 20 20 20 20 20 20 20    ....OEM         
20: 20 20 20 20 00 00 00 00 53 46 50 2d 32 47 35 20        ....SFP-2G5 
30: 20 20 20 20 20 20 20 20 31 2e 30 20 00 00 00 82            1.0 ...?
40: 00 18 00 00 32 47 35 32 32 31 31 32 33 32 34 32    .?..2G5221123242
50: 31 38 20 20 32 32 30 38 30 31 20 20 00 00 00 9f    18  220801  ...?
60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
root@APBureau4:~# i2cdump -y 3 0x51
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 50 00 f6 00 4b 00 fb 00 8c a0 75 30 88 b8 79 18    P.?.K.?.??u0??y?
10: 1d 4c 01 f4 19 64 03 e8 4d f0 06 30 3d e8 06 f2    ?L???d??M??0=???
20: 2b d4 00 c7 27 10 00 df 00 00 00 00 00 00 00 00    +?.?'?.?........
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
40: 00 00 00 00 3f 80 00 00 00 00 00 00 01 00 00 00    ....??......?...
50: 01 00 00 00 01 00 00 00 01 00 00 00 00 00 00 23    ?...?...?......#
60: 18 40 83 bd 0b b8 13 88 00 00 00 00 00 00 02 00    ?@??????......?.
70: 00 40 00 00 00 40 00 00 00 00 00 ff ff ff ff 00    .@...@..........
80: 02 00 00 05 00 00 00 00 00 00 00 00 00 00 00 00    ?..?............
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
root@APBureau4:~# i2cdump -y 3 0x56
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 11 79 01 0c 0d 41 00 00 00 02 00 00 00 00 00 a0    ?y???A...?.....?
10: 00 00 00 00 00 00 00 00 00 00 00 82 00 00 00 00    ...........?....
20: 11 79 01 0c 0d 41 00 00 00 02 00 00 00 00 00 a0    ?y???A...?.....?
30: 00 00 00 00 00 00 00 00 00 00 00 82 00 00 00 00    ...........?....
40: 11 79 01 0c 0d 41 00 00 00 02 00 00 00 00 00 a0    ?y???A...?.....?
50: 00 00 00 00 00 00 00 00 00 00 00 82 00 00 00 00    ...........?....
60: 11 79 01 0c 0d 41 00 00 00 02 00 00 00 00 00 a0    ?y???A...?.....?
70: 00 00 00 00 00 00 00 00 00 00 00 82 00 00 00 00    ...........?....
80: 11 79 01 0c 0d 41 00 00 00 02 00 00 00 00 00 a0    ?y???A...?.....?
90: 00 00 00 00 00 00 00 00 00 00 00 82 00 00 00 00    ...........?....
a0: 11 79 01 0c 0d 41 00 00 00 02 00 00 00 00 00 a0    ?y???A...?.....?
b0: 00 00 00 00 00 00 00 00 00 00 00 82 00 00 00 00    ...........?....
c0: 11 79 01 0c 0d 41 00 00 00 02 00 00 00 00 00 a0    ?y???A...?.....?
d0: 00 00 00 00 00 00 00 00 00 00 00 82 00 00 00 00    ...........?....
e0: 11 79 01 0c 0d 41 00 00 00 02 00 00 00 00 00 a0    ?y???A...?.....?
f0: 00 00 00 00 00 00 00 00 00 00 00 82 00 00 00 00    ...........?....

EDIT2: this is the vanilla openwrt kernel with all sorts of mdio and i2c devices compiled in (so without your patches):

[   36.902576] bus: 'platform': __driver_probe_device: matched device sfp2 with driver sfp
[   36.910620] bus: 'platform': really_probe: probing driver sfp with device sfp2
[   36.921898] sfp sfp2: no pinctrl handle
[   36.982436] sfp sfp2: Host maximum power 3.0W
[   36.991783] driver: 'sfp': driver_bound: bound to device 'sfp2'
[   37.002451] sfp sfp2: Dropping the link to 1001f000.pinctrl
[   37.008025] device: 'platform:1001f000.pinctrl--platform:sfp2': device_unregister
[   37.015614] bus: 'platform': really_probe: bound device sfp2 to driver sfp
[   37.022501] devices_kset: Moving sfp1 to end of list
[   37.022504] PM: Moving platform:sfp1 to end of list
[   37.022508] platform sfp1: Retrying from deferred list
[   37.030918] bus: 'platform': __driver_probe_device: matched device sfp1 with driver sfp
[   37.040834] bus: 'platform': really_probe: probing driver sfp with device sfp1
[   37.058398] sfp sfp1: no pinctrl handle
[   37.123592] sfp sfp1: Host maximum power 3.0W
[   37.128389] driver: 'sfp': driver_bound: bound to device 'sfp1'
[   37.134318] sfp sfp1: Dropping the link to 1001f000.pinctrl
[   37.139960] device: 'platform:1001f000.pinctrl--platform:sfp1': device_unregister
[   37.147556] bus: 'platform': really_probe: bound device sfp1 to driver sfp
[   37.330125] sfp sfp2: module OEM              SFP-2G5          rev 1.0  sn 2G522112324218   dc 220801  
[   37.339544] mtk_soc_eth 15100000.ethernet eth1: unsupported SFP module: no common interface modes
[   37.459424] sfp sfp1: module OEM              SFP-2G5          rev 1.0  sn 2G522112324218   dc 220801  
[   37.474012] mtk_soc_eth 15100000.ethernet eth2: unsupported SFP module: no common interface modes
[   38.237617] bus: 'mdio_bus': __driver_probe_device: matched device r8169-1-300:00 with driver RTL8226B_RTL8221B 2.5Gbps PHY
[   38.248769] bus: 'mdio_bus': really_probe: probing driver RTL8226B_RTL8221B 2.5Gbps PHY with device r8169-1-300:00
[   38.259122] RTL8226B_RTL8221B 2.5Gbps PHY r8169-1-300:00: no of_node; not parsing pinctrl DT
[   38.267568] RTL8226B_RTL8221B 2.5Gbps PHY r8169-1-300:00: no default pinctrl state
[   38.275180] driver: 'RTL8226B_RTL8221B 2.5Gbps PHY': driver_bound: bound to device 'r8169-1-300:00'
[   38.284255] bus: 'mdio_bus': really_probe: bound device r8169-1-300:00 to driver RTL8226B_RTL8221B 2.5Gbps PHY
[   38.477745] bus: 'mdio_bus': __driver_probe_device: matched device r8169-1-400:00 with driver RTL8226B_RTL8221B 2.5Gbps PHY
[   38.488874] bus: 'mdio_bus': really_probe: probing driver RTL8226B_RTL8221B 2.5Gbps PHY with device r8169-1-400:00
[   38.499216] RTL8226B_RTL8221B 2.5Gbps PHY r8169-1-400:00: no of_node; not parsing pinctrl DT
[   38.507654] RTL8226B_RTL8221B 2.5Gbps PHY r8169-1-400:00: no default pinctrl state
[   38.515249] driver: 'RTL8226B_RTL8221B 2.5Gbps PHY': driver_bound: bound to device 'r8169-1-400:00'
[   38.524299] bus: 'mdio_bus': really_probe: bound device r8169-1-400:00 to driver RTL8226B_RTL8221B 2.5Gbps PHY
[  187.266862] mtk_soc_eth 15100000.ethernet eth2: configuring for inband/usxgmii link mode
[  194.138474] mtk_soc_eth 15100000.ethernet eth1: configuring for inband/usxgmii link mode

I do not know where you keep buying your sfp modules, but this is not a Rollball module. These look like this:

Check bytes 4 to 7 at i2c address 0x56 for PHY ID on these Rollball modules.

Perhaps you get more info using word access i2cdump of 0x56, but it isn’t Rollball.

So best we can do is have it behave like an optical module, MAC fixed at 2500base-x (and autoneg disabled).

My tool is here, but you do not have the eeprom password. Could use brute force attack, but that might take a little time… https://forum.banana-pi.org/t/i2csfp-sfp-debugging-via-i2c/17761

At github: ericwoud/i2csfp (github.com)

But…

did you try if ethtool -s eth1 autoneg off gives you a functional eth1 (pingable)?

Edit:

[ 37.339544] mtk_soc_eth 15100000.ethernet eth1: unsupported SFP module: no common interface modes

So I guess it does not report it’s supported interface mode… ( address 0x50, byte 0x24 = 0 )

Your patches actually make it work… This latest kernel is without your patches (buth with mdio/i2c multiplexers compiled in), the previous one was with your patches but no mdio and limited i2c. I’ll combine them

Yes, I have tried with a fiber connected. When i plug this SFP i see really short blink on a LED related for this port but nothing in a dmesg. (sfp1 is a port which i am using for this GPON-SFP)

root@r1:~# dmesg | grep sfp
[   10.012336] sfp sfp1: Host maximum power 3.0W
[   10.017183] sfp sfp2: Host maximum power 3.0W
[   10.342437] sfp sfp2: module CISCO-FINISAR    FCBG110SD1C01-CS rev A    sn FIW1952056K-A    dc 151224
root@r1:~#

I was talking with a producer of a leox - leolabs, and they told me that currently it is not possible to change LOS behaviour.

Also for BPI-R3, small correction i was testing different SFP. It was Opton GP801R - clone of vsol v2801f.

[   17.482679] sfp sfp-1: Switching to reading EEPROM to one byte at a time
[   17.603894] sfp sfp-1: module OEM              V2801F           rev 1.0  sn 202302270087     dc 230228
[   17.629150] sfp sfp-1: skipping hwmon device registration due to broken EEPROM
[   17.636376] sfp sfp-1: diagnostic EEPROM area cannot be read atomically to guarantee data coherency

Is the mac up (eth1/eth2)? What does ethtool say (with and without -m)…i only see ethtool and dmesg from janpieter

Any other messages like LOS for mac or sfp in dmesg? You message point to broken eeprom (i guess crc mismatch)…maybe you need quirk to ignore this in kernel

Opton GP801R in BPI-R3 was working and i was able to use it for some time (was not stable, so not using currently). So we can forget about this in this topic. Sorry for making mess in this thread.

Back to BPI-R4 and LEOX LXT-010S-H. Any idea why this is working in Mikrotik switch and not working in BPI-R4? (not detected with/without fiber connected)

Then post dmesg and ethtool