[BPI-R4] and SFP

Not sure about shorting a pin on gnd,but it is noted as maybe required in readme. See the link there.

I do not think firmware helps here as this seems to be an electrical issue.

thanks for the fast reply, are there any changes to the drivers on the bpi that i can do?

The only thing that can help in software is a patch delay the sfp a bit…there are some ont sfp that use this. But if the grounding of pin 6 is needed sw patches will not help.

I’m trying to find a way to do a patch, specifically to ignore the eeprom check, how can i do that? I’ve installed this image: bpi-r4_bookworm_6.11.0-main.img.gz

where can i find the source of it? cause I’ve found this: GitHub - frank-w/BPI-Router-Linux at 6.11-main but this is a general linux, not necessarily the bpi r4 one, how can i get to the source?

I started adding changes for r4 in my main branches with 6.10 afaik (and building these kernels with ci pipeline),so 6.11-main is the right branch.

You can simply edit the source change build.sh to bpi-r4,do importconfig and build like described in readme.md of the lts branches (e.g. 6.6-main)

thanks for the advice, I’ve patched the image to ignore the EEPORM check but it didn’t solve it. I actually had to solder pin6 to ground to make it work like in the guide i showed you. so now i’m in a position where I connect it and it’s not showing the module removed message all the time (accept when i actually remove it).

now after running:

ethtool -s eth2 autoneg off speed 1000 duplex full

I get a full view of the module:

ginnie@ginnie-hub:~$ sudo ethtool eth2
Settings for eth2:
	Supported ports: [ FIBRE ]
	Supported link modes:   2500baseX/Full
	                        1000baseX/Full
	Supported pause frame use: Symmetric Receive-only
	Supports auto-negotiation: Yes
	Supported FEC modes: Not reported
	Advertised link modes:  2500baseX/Full
	Advertised pause frame use: Symmetric Receive-only
	Advertised auto-negotiation: No
	Advertised FEC modes: Not reported
	Speed: 1000Mb/s
	Duplex: Full
	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
ginnie@ginnie-hub:~$ sudo ethtool -m eth2
	Identifier                                : 0x03 (SFP)
	Extended identifier                       : 0x04 (GBIC/SFP defined by 2-wire interface ID)
	Connector                                 : 0x01 (SC)
	Transceiver codes                         : 0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x00 0x00
	Transceiver type                          : Ethernet: 1000BASE-LX
	Encoding                                  : 0x03 (NRZ)
	BR, Nominal                               : 3200MBd
	Rate identifier                           : 0x00 (unspecified)
	Length (SMF,km)                           : 40km
	Length (SMF)                              : 25500m
	Length (50um)                             : 0m
	Length (62.5um)                           : 0m
	Length (Copper)                           : 0m
	Length (OM3)                              : 0m
	Laser wavelength                          : 1310nm
	Vendor name                               : ALCATELLUCENT
	Vendor OUI                                : 20:20:20
	Vendor PN                                 : 3FE46541AA
	Vendor rev                                : 0001
	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                                 : ALCLF948A1D1
	Date code                                 : 210327
	Optical diagnostics support               : Yes
	Laser bias current                        : 8.682 mA
	Laser output power                        : 0.0000 mW / -inf dBm
	Receiver signal average optical power     : 0.0000 mW / -inf dBm
	Module temperature                        : 41.85 degrees C / 107.33 degrees F
	Module voltage                            : 3.2332 V
	Alarm/warning flags implemented           : Yes
	Laser bias current high alarm             : Off
	Laser bias current low alarm              : Off
	Laser bias current high warning           : Off
	Laser bias current low warning            : Off
	Laser output power high alarm             : Off
	Laser output power low alarm              : On
	Laser output power high warning           : Off
	Laser output power low warning            : On
	Module temperature high alarm             : Off
	Module temperature low alarm              : Off
	Module temperature high warning           : Off
	Module temperature low warning            : Off
	Module voltage high alarm                 : Off
	Module voltage low alarm                  : Off
	Module voltage high warning               : Off
	Module voltage low warning                : Off
	Laser rx power high alarm                 : Off
	Laser rx power low alarm                  : On
	Laser rx power high warning               : Off
	Laser rx power low warning                : On
	Laser bias current high alarm threshold   : 60.000 mA
	Laser bias current low alarm threshold    : 2.000 mA
	Laser bias current high warning threshold : 60.000 mA
	Laser bias current low warning threshold  : 2.000 mA
	Laser output power high alarm threshold   : 3.2000 mW / 5.05 dBm
	Laser output power low alarm threshold    : 1.1220 mW / 0.50 dBm
	Laser output power high warning threshold : 3.2000 mW / 5.05 dBm
	Laser output power low warning threshold  : 1.1220 mW / 0.50 dBm
	Module temperature high alarm threshold   : 90.00 degrees C / 194.00 degrees F
	Module temperature low alarm threshold    : -60.00 degrees C / -76.00 degrees F
	Module temperature high warning threshold : 85.00 degrees C / 185.00 degrees F
	Module temperature low warning threshold  : -55.00 degrees C / -67.00 degrees F
	Module voltage high alarm threshold       : 3.4650 V
	Module voltage low alarm threshold        : 3.1350 V
	Module voltage high warning threshold     : 3.4650 V
	Module voltage low warning threshold      : 3.1350 V
	Laser rx power high alarm threshold       : 0.1600 mW / -7.96 dBm
	Laser rx power low alarm threshold        : 0.0015 mW / -28.24 dBm
	Laser rx power high warning threshold     : 0.1600 mW / -7.96 dBm
	Laser rx power low warning threshold      : 0.0015 mW / -28.24 dBm
ginnie@ginnie-hub:~$ sudo ethtool -i  eth2
driver: mtk_soc_eth
version: 6.11.0-bpi-r4-main
firmware-version: 
expansion-rom-version: 
bus-info: 15100000.ethernet
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

link is still not detected as you can see and i connot activate pppoe, it just dosn’t work, maybe because the link show as not detected.

what i also noticed that after a little while i get this:

[   74.767503] sfp sfp1: module transmit fault indicated
[  320.534315] sfp sfp1: module persistently indicates fault, disabling

and than it’s like disconnecting the module. any patches you think that can help solving it? the whole idea with GPON ONT is problematic as far as i know but I really want to try and solve it.

just for the test I took the same SFP to a DLINK media converter and connected the ethernet cable to the wan and i was able to connect via PPPoE. so I wonder, what does the Dlink is doing that we don’t have on the banana pi to make it work directly and skip the extra hardware?

For transmission fault there is also a quirk if it can be ignored…but possibly transmitter is really faulty

Link has to be detected before trying higher layer like pppoe or ip

What is the quirk that can be done? Because if it was a real fault, I wouldn’t expect it to work with a media converter

thats right…if it works with converter the module should be ok so far

i mean the one used for the alcatel G010SP: sfp_fixup_ignore_tx_fault

Thanks a lot, I will try it right after I’ll get another SFP module cause I destroyed the current when trying to solder the pin6 to ground again after my previous attempt fell. But that’s good to see the my model was address specifically in the SFP quirks (3FE46541AA), I’ve added the sfp_fixup_ignore_tx_fault function to the sfp_fixup_nokia.

I just wonder how and if people were using this model without soldering pin6 to ground

I see it is now implemented for 2500base-x, great news, we should need no more patches/quirks for this problem!

could you test this please?

Sure, but I do not know when. Daniel signed off, so I thought he did…

So it turns out there are 2 issues uncovered:

  • After the ip link up command an-mode is stuck at MLO_AN_INBAND. Only after re-triggering mac configuration, MLO_AN_PHY is set.

  • The pcs should report it’s link status, regardless of inband status/negotiation being enabled or disabled…

Both issues are resolved with:

This is not actually a real solution, but we can use it until there is a real solution.

1 Like

Hi,

Will Ubiquiti SFP module “UF-SM-1G-S” (1000baseT) work with BPI-R4? Right now, module is not detected when inserted: sfp sfp1: failed to read EEPROM: -ENXIO

On BPI-R3 this module works fine.

Any pointers on how to get it working, if possible?

Never mind, it seems I’m running into issue where I have NVMe drive installed which interferes with i2c as explained here:

Hi mate! We are in a same boat with this ONU sticks.

[   11.953993] sfp sfp1: module ALCATELLUCENT    3FE46541AA       rev 0001 sn ALCLF924026B     dc 200614  
[   11.963465] sfp sfp1: Unknown/unsupported extended compliance code: 0x20
root@OpenWrt:~# ethtool sfp-wan
Settings for sfp-wan:
        Supported ports: [ FIBRE ]
        Supported link modes:   2500baseX/Full
                                1000baseX/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  1000baseX/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  1000baseX/Full
        Link partner advertised pause frame use: No
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Full
        Auto-negotiation: on
        Port: FIBRE
        PHYAD: 0
        Transceiver: internal
        Current message level: 0x000000ff (255)
                               drv probe link timer ifdown ifup rx_err tx_err
        Link detected: no

If you are also going to make a 6pin mod on the new stick, I advise not to disassemble it completely, but to bend only a small metal part (it is initially bent inward, but with a small screwdriver and pliers you can bend it back and get enough space to access the resistors in the second square). I also used low-temperature solder paste (it contains solder), applied it with the tip of a screwdriver and in one touch with a sharp tip of a soldering iron everything was ready.

My module also has Chinese firmware installed, it allows changing ONU parameters via the interface and with it, 2.5 gbe worked on my Broadcom BCM with a patch. I don’t think that the firmware affects the ability to detect from the BPI-R4 side. The only difference is that I can’t read information about temperatures and voltage, while information about the optical connection is displayed (the link is still ‘no’, but the laser power is displayed)

Can you please share an image of what exactly you did there and maybe a link to the solder paste? Thanks :slight_smile:

Sure, you need to bend the plate, I have circled it with an oval in the photo. It is flexible, first bend it with a small screwdriver, and then pick it up with pliers. Your task is to free up a little space near the second square, I have circled them in another photo. There are 2 resistors, 4 contacts in total, you need to solder all 4 of these contacts together (a drop of solder on them)). I just applied the paste and in two touches of the soldering iron it all soldered, you can see this drop in the photo. Soldering paste from Ali, I bought it a long time ago, I can’t find the link, but I am attaching a photo of the packaging, the price is definitely less than $ 10