[BPI-R4] and SFP

I guess it is possible that openwrt snapshot has some patch that broke sfp support, but I need a compare test to make sure.:thinking:

1 Like

Speaking of SFP weirdness in recent snapshots, my FS 10gbit SFP needs

option force_link ‘1’

on wan and wan6 ever since the netifd update about a month ago. Turning off autoneg did not do anything. Unlike in the excerpt shown above it however did detect link with standard settings…

Today I disassembled bpi-r4 and checked if there are resistors r228, r230, it turned out that there are. I unsoldered them. After that I connected dfp-34x-2c2 and there is still no way to connect to it. For now I made a bridge from mikrotik crs-112 through dfp-34x-2c2 and received a dhcp address from my provider in wan eth bpi-r4. If anyone has other options, what can be done to run dfp-34x-2c2, then I am ready to try them. Thank you.

Previously I had a bpi-r3 and there were no problems with connecting odi dfp-34x-2c2. Now my friend has a bpi-r3 with odi dfp-34x-2c2 and everything works like clockwork.

1 Like

Would someone recommend a copper SFP(+) module that is known to work out of the box or with minimal tinkering and supports 1G speed? Beside the Xicom SFP±T (SFP-10G-T) that @Vasya mentioned, as I couldn’t find them being sold anywhere.

You can buy the SFP+/SFP modules that SinoVoip (Bipai), LuLeey, HiLink and XRT Fiber Optic Factory sells in their stores:

.

SFP+/SFP to RJ45 modules

10 Gbit/s SFP+:

2.5 Gbit/s SFP:

1 Gbit/s SFP:

.

SFP+/SFP Optical modules

10 Gbit/s SFP+:

2.5 Gbit/s SFP:

.

Information about the power consumption when reducing the speed on 10 Gbit/s SFP+ modules:

Thank you. Those are apparently the same SFP-10G-T that @Vasya had luck with. I wonder if the 2.5G one branded as compatible with BPI-R3 will work though.

1 Like

Quoting the BPI-R4 wiki: “The SFP serdes speed of BPI-R4 is fixed at 10Gbps, so only SFP that support this can be used”. The SP-2.5G-T is also not SFP+, but a regular SFP.

On the other hand, will the SFP-10G-T support 2.5G? Those that Vasya pictured are labeled as 2.5G compatible, while the ‘official’ ones are labled for 100/1000/10000M only.

Another question is temperature. Will a 10G copper module run as hot in a 1G network as it usually does at full speed?

1 Like

I found Alcatel-Lucent G-010S-P and Huawei MA5671A GPON ONU SFP Sticks with Lantiq PEB98035 chipset on AliExpress, maybe they will not have the same problems on Banana Pi BPI-R3 / BPI-R4 and OpenWrt as modules with Realtek RTL9601D chipset like ODI DFP-34X-2C2 (aka. HSGQ).

AliExpress Links:

AliExpress Seller Notes:

  • The “Alcatel-Lucent G-010S-P” is already flashed with OpenWrt firmware.
  • The “Huawei MA5671A” is already rooted and flashed with OpenWrt firmware.

.

Quirks already added to the “sfp” driver in the linux kernel to make “Alcatel-Lucent G-010S-P” and “Huawei MA5671A” work automatically at “2500base-X” without problems:

Tutorials:

  1. Detailed authentication configuration of SFP GPON G-010S-P/A & Huawei MA5671A running OpenWRT firmware.
  2. Tutorial for beginners to replace 2.5G optical modem.
  3. Replace ISP ONT/ONU - NOKIA GPON SFP G-010S-A (OpenWrt SFP 7.5.3).
  4. 2.5G GPON with the Nokia G-010S-A ONT and NanoPi R6S.
  5. Nokia Modem Flashing Tutorial (G-010S-A) No profiteering, if you like to tinker, do it yourself!.
  6. GitHub - Instructions for Gigahub Bypass on Bell Aliant.
  7. PON Madness - AT&T GPON ONT Cloning/Bypass - Google Docs.

Posts about Huawei MA5671A and Alcatel-Lucent G-010S-P:

1 Like

2.5G GPON ONU SFP Sticks Power Consumption Test

Huawei MA5671A vs Nokia G-010S-A vs Alcatel-Lucent G-010S-P vs ODI DFP-34X-2C2

@kuzevich1983

I was able to get my 2.5G xpon stick to run on the banana BPI-R4 by doing exactly the same I had to do on the BPI-R3, patch the kernel to force the sfp link to be 2.5G. The patch is exactly the same for the R4 as for the R3. ( I’m using OpenWRT master) My 2.5 xpon stick is a clone of the ODI one, so it should also work for the ODI.

@Betonmischer

I have a bunch of sfp modules with me that I tested on the BPI-R4, one 10g copper module, 3 diferent brand 2.5G copper modules, several 1G fiber modules. They all work well and thus this means that The BPI-R4 is compatible with 10G, 2.5G and 1G modules. ( using OpenWRT master )

1 Like

Please describe what patch you use to work dfp-34x-2c2 on bpi-r4, if you can describe how to apply it, I will be very glad if my problem is solved. Thank you in advance. Thank you for your answer.

I created a file named 952-add-sfp-quirk.patch with the following content:

--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
@@ -458,6 +458,10 @@ static const struct sfp_quirk sfp_quirks[] = {
        SFP_QUIRK_F("OEM", "RTSFP-10G", sfp_fixup_rollball_cc),
+       // DFP-34X-2C2 GPON ONU supports 2500base-X
+       SFP_QUIRK_M("OEM", "DFP-34X-2C2", sfp_quirk_2500basex),
+       SFP_QUIRK_M("OEM", "XPON-Stick", sfp_quirk_2500basex),
+       SFP_QUIRK_M("OEM", "GPONOLTC+++", sfp_quirk_2500basex),
        SFP_QUIRK_F("Turris", "RTSFP-10", sfp_fixup_rollball),
        SFP_QUIRK_F("Turris", "RTSFP-10G", sfp_fixup_rollball),
 };

and placed it in target/linux/mediatek/patches-6.6/

What this patch does is, it forces any sfp stick that identifies itself as OEM DFP-34X-2C2 or OEM XPON-Stick or OEM GPONOLTC+++ to sync at 2.5G speed. It does so by adding a sfp quirck to the sfp.c file. In your case you have to modify the patch so that it matches the identifier of your strick, so just select one of the three lines I added ( the ones with + ) and edit it and change to your stick identifier. If your stick identification is one of those three, you don’t have to edit the patch. You then build OpenWRT from source and it’s done.

I must say that this is not a good choice. More information here:

https://patchwork.kernel.org/project/netdevbpf/patch/AS1PR03MB8189AD85CEB6E139F27307D3827F2@AS1PR03MB8189.eurprd03.prod.outlook.com/ https://patchwork.kernel.org/project/netdevbpf/patch/AS1PR03MB8189FE82C632EBA97644D70082642@AS1PR03MB8189.eurprd03.prod.outlook.com/ https://patchwork.kernel.org/project/netdevbpf/patch/TY3P286MB2611C0FA24318AA397DB689B985A2@TY3P286MB2611.JPNP286.PROD.OUTLOOK.COM/

I’ve seen those messages before, actually, the submited patch was what I used to make mine agaisnt the current openwrt master. It’s the choice that works. If you find another that doesn’t require adding the quirk I would be very much interested in knowing about it.

Actually ODI sticks’ eeprom can be modified through i2c bus directly and I have already posted in this topic before. More information here: Right SFP EEPROM config for DFP-34X-2C2 to work automatically work at 2500base-X? · Anime4000/RTL960x · Discussion #250 · GitHub

1 Like

I’ve come across that post when trying to figure out how to make the stick work but I thought it would be too risky. patching the kernel is risk free but it does bother me to have to do it.

I may order another stick and try changing the eeprom.

thanks for the heads up!

This method is not that risky as long as you have a backup of original eeprom data. Because even linux can’t find correct eeprom data, we can still have access to i2c bus and fix the corrupted eeprom data. eeprom access is separated from stick access.

1 Like

ok, you convinced me, I will try it. :slight_smile: