For my BPI-R3 I now gave H!Fiber ASF-GE-T-Cisco-2pcs-HF(EU) a try.
But unfortunately with no success.
I run 6.12-main (and also tried others) from Franks Repo BPI-Router-Linux. Thanks for providing this.
Both SFPs RJ45 (originally named lan4 and eth1) are connected to a Gbit/s Switch to test 1000BASE-T.
After
ifup lan4
or
ifup eth1
respectively the Gbit/s Switch LEDs light up and indicate a link.
But the logging says:
Dec 20 08:18:18 kernel: [ 7320.940397] mt7530-mdio mdio-bus:1f lan4: configuring for inband/2500base-x link mode
Dec 20 08:18:19 kernel: [ 7321.013900] mt7530-mdio mdio-bus:1f lan4: validation with support 00,00000000,00000000,00000000 failed: -EINVAL
Dec 20 08:18:19 kernel: [ 7321.024254] sfp sfp-2: sfp_add_phy failed: -EINVAL
Dec 20 08:24:08 kernel: [ 7670.058393] mtk_soc_eth 15100000.ethernet eth1: configuring for inband/2500base-x link mode
Dec 20 08:24:08 kernel: [ 7670.138427] mtk_soc_eth 15100000.ethernet eth1: validation with support 00,00000000,00000000,00000000 failed: -EINVAL
Dec 20 08:24:08 kernel: [ 7670.149271] sfp sfp-1: sfp_add_phy failed: -EINVAL
# ethtool eth1
Settings for eth1:
Supported ports: [ MII ]
Supported link modes: 2500baseX/Full
2500baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 2500baseX/Full
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: MII
PHYAD: 0
Transceiver: internal
Current message level: 0x000000ff (255)
drv probe link timer ifdown ifup rx_err tx_err
Link detected: no
# ethtool -m eth1
Identifier : 0x03 (SFP)
Extended identifier : 0x04 (GBIC/SFP defined by 2-wire interface ID)
Connector : 0x00 (unknown or unspecified)
Transceiver codes : 0x00 0x00 0x00 0x08 0x00 0x00 0x00 0x00 0x00
Transceiver type : Ethernet: 1000BASE-T
Encoding : 0x01 (8B/10B)
BR, Nominal : 1300MBd
Rate identifier : 0x00 (unspecified)
Length (SMF,km) : 0km
Length (SMF) : 0m
Length (50um) : 0m
Length (62.5um) : 0m
Length (Copper) : 100m
Length (OM3) : 0m
Laser wavelength : 0nm
Vendor name : OEM
Vendor OUI : 00:00:00
Vendor PN : SFP-GE-T
Vendor rev :
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 : CSGE2K3K403
Date code : 24052501
# dmesg | egrep -i sfp
[ 1.865361] sfp sfp-2: module OEM SFP-GE-T rev sn CSGE2303947 dc 24052501
[ 1.904782] sfp sfp-1: module OEM SFP-GE-T rev sn CSGE2K3K403 dc 24052501
[ 23.407285] sfp sfp-2: sfp_add_phy failed: -EINVAL
[ 23.447733] sfp sfp-1: sfp_add_phy failed: -EINVAL
In ‘drivers/net/phy/sfp.c’ I see
// OEM SFP-GE-T is a 1000Base-T module with broken TX_FAULT indicator
SFP_QUIRK_F("OEM", "SFP-GE-T", sfp_fixup_ignore_tx_fault),
exists.
Is there a known way (special kernel version, patches etc.) to get SFP-GE-T working with 1000BASE-T?
Are there other brand SFPs around with better support for 1000BASE-T to work in a BPI-R3?