[BPI-R3] OEM 2500 base-X SFP module not working on eth1 with OpenWRT 24.10.4

Hi,

I have two OEM SFP 2500 base-X modules bought with my Banana Pi R3 and I can’t get them to work when I plug one of them on SFP1 port (eth1). My router is running OpenWRT 24.10.4 with a 6.6.110 kernel:

[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034]
[    0.000000] Linux version 6.6.110 (builder@buildhost) (aarch64-openwrt-linux-musl-gcc (OpenWrt GCC 13.3.0 r28959-29397011cc) 13.3.0, GNU ld (GNU Binutils) 2.42) #0 SMP Sun Oct 19 16:37:45 2025
[    0.000000] Machine model: Bananapi BPI-R3

The module is detected when I plug it, but the switch facing it doesn’t see any link. Here is the only trace I get on the router side:

[23723.665597] sfp sfp-1: module OEM              SFP-2.5G-BX10-U  rev 1.0  sn 2401050005       dc 240105

I checked in the kernel source code and there’s already a quirk registered for these. I tried to dump some debug state from the router:

# cat /sys/kernel/debug/sfp-1/state
Module state: present
Module probe attempts: 0 0
Device state: down
Main state: down
Fault recovery remaining retries: 0
PHY probe remaining retries: 0
Signalling rate: 0 kBd
Rate select threshold: 0 kBd
moddef0: 1
rx_los: 0
tx_fault: 0
tx_disable: 1
rs0: 0
rs1: 0

And from ethtool:

# ethtool eth1
Settings for eth1:
	Supported ports: [ FIBRE ]
	Supported link modes:   2500baseX/Full
	                        1000baseX/Full
	Supported pause frame use: Symmetric Receive-only
	Supports auto-negotiation: No
	Supported FEC modes: Not reported
	Advertised link modes:  Not reported
	Advertised pause frame use: No
	Advertised auto-negotiation: No
	Advertised FEC modes: Not reported
	Speed: Unknown!
	Duplex: Half
	Auto-negotiation: off
	Port: FIBRE
	PHYAD: 0
	Transceiver: internal
        Current message level: 0x000000ff (255)
                               drv probe link timer ifdown ifup rx_err tx_err
	Link detected: no

I find it weird nothing is reported in the Advertised link modes section.

# ethtool -m eth1
	Identifier                                : 0x03 (SFP)
	Extended identifier                       : 0x04 (GBIC/SFP defined by 2-wire interface ID)
	Connector                                 : 0x07 (LC)
	Transceiver codes                         : 0x00 0x12 0x00 0x00 0x12 0x00 0x01 0x05 0x00
	Transceiver type                          : SONET: SONET reach specifier bit 1
	Transceiver type                          : SONET: OC-48, intermediate reach
	Transceiver type                          : FC: long distance (L)
	Transceiver type                          : FC: Longwave laser (LC)
	Transceiver type                          : FC: Single Mode (SM)
	Transceiver type                          : FC: 200 MBytes/sec
	Transceiver type                          : FC: 100 MBytes/sec
	Encoding                                  : 0x05 (SONET Scrambled)
	BR, Nominal                               : 2500MBd
	Rate identifier                           : 0x00 (unspecified)
	Length (SMF,km)                           : 10km
	Length (SMF)                              : 10000m
	Length (50um)                             : 0m
	Length (62.5um)                           : 0m
	Length (Copper)                           : 0m
	Length (OM3)                              : 0m
	Laser wavelength                          : 1270nm
	Vendor name                               : OEM
	Vendor OUI                                : 00:00:00
	Vendor PN                                 : SFP-2.5G-BX10-U
	Vendor rev                                : 1.0
	Option values                             : 0x00 0x1a
	Option                                    : RX_LOS implemented
	Option                                    : TX_FAULT implemented
	Option                                    : TX_DISABLE implemented
	BR margin, max                            : 0%
	BR margin, min                            : 0%
	Vendor SN                                 : 2401050005
	Date code                                 : 240105

Does anyone has a hint about what’s going on ?

Thanks!