2.5G with Luleey LL-XS2510 SFP and Omnia

There have been some threads already on this community discussing how to get the Turris SFP-cage to actually perform at 2.5G with compatible modules. If memory serves right, most of them revolved about DAC. So not the Luleey LL-XS2510 XPON module, that I am using in my device right now.

Other communities discuss “my” SFP but unfortunately do use them in Unify or Mikrotik equipment - so not directly applicable either…

Since blindly following some tutorials will probably render the SFP inoperational, I’d rather talk it through here with you - hoping that someone else might be using the exact same setup and can share some insights.

The LL-XS2510 ist a RTL960x/DFP-34X-2C2 based XPON-SFP that in theory should not only support 1G but also 2.5G operation.

However, when plugging the device into the Omnia, it will only operate in 1000baseX/Full mode - and ethtool won’t even mention 2.5G:

root@turris:~# ethtool eth2
Settings for eth2:
Supported ports: [ FIBRE ]
Supported link modes: 1000baseX/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 1000baseX/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Port: FIBRE
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: d
Wake-on: d
Link detected: yes

Looking at the threads in the community here, people seem to be part of three camps:

  • Either it just works out of the box (great! happy for you!)
  • There is some problem with the i2c-communication which can be fixed by disabling auto-negotiation and fixing the speed to 2.5G
  • Use a kernel-patch to load some workaround to automatically pin the interface-speed to 2.5G

Number one does obviously not apply, and I can’t see any problems in the sys- or kernel-log that would indicate number two. Also, since ethtool seems to be convinced that 1000baseX is the only way to go, I cannot change the configuration of the port to 2.5G either…

Looking at RTL960x/Docs/2.5Gb.md at main · Anime4000/RTL960x · GitHub or ODI Realtek DFP-34G-2C2 | Hack GPON, there are three modes that can be used to force the SFP into 2.5G by using the flash set LAN_SDS_MODE command:

  • 4 for HiSGMII PHY
  • 5 for HiSGMII MAC
  • 6 for 2500Base-X

What is keeping me from just randomly issuing the above command is the fact, that choosing the wrong LAN_SDS_MODE will render the module unusable if the surrounding hardware does not support it. And since I do not have a media-converter or other router that just supports all of those modes (and my desire to start soldering an UART connection to the module is pretty low), that would translate to “no internet” for me…

My interpretation of the output of ethtool above would make me want to believe that mode 6 (2500Base-X) would be the correct one - but I am not 100% sure. Anyone here that can confirm/deny it?

Thank you for everyone’s input!

Actually I bricked RTL960x module with Animes firmware by choosing wrong mode. Was lazy to recover that. But I do use different module now. And I am using a patch to sfp.c in kernel to make it force advertize 2,5Gig. And it works.

If you give me branch you use on your Omnia and output from:

dmesg | grep -E "sfp|mvneta"

I might build a kernel for you as anyway I have to do one for me and it can be the same kernel just a patch in two places. It might work if your module supports autoneg. Do you know what chipset it is based on?

Edit: Owww so its RTL960x based hmmm…
Well we might try. I will try to build a kernel during the weekend. Make a snapshot before installing it and thats it. If something goes wrong then mode 2 recovery. But I believe it should work. And doesnt alter the SFP module so its eeasier to recover

I know from Anime4000 wiki that some firmwares on RTL960x support autoneg and for some you have to set lan mode. Then probbably you dont need a patch and just set a mode

Very much appreciated - I did indeed see your patch and I was about to start setting up a build env and try to adapt it… But your offer would take out much of the guesswork :slight_smile:

root@turris:~# dmesg | grep -E “sfp|mvneta”
[ 1.823206] mvneta_bm f10c8000.bm: Buffer Manager for network controller enabled
[ 1.832238] mvneta f1070000.ethernet eth0: Using device tree mac address d8:58:d7:00:7f:06
[ 1.841823] mvneta f1030000.ethernet eth1: Using hardware mac address d8:58:d7:00:7f:05
[ 1.851129] mvneta f1034000.ethernet eth2: Using hardware mac address d8:58:d7:00:7f:06
[ 10.648458] sfp sfp: Host maximum power 3.0W
[ 10.978555] sfp sfp: module OEM XPON-Stick rev sn XPON24050026 dc 240506
[ 10.991842] mvneta f1034000.ethernet eth2: switched to inband/1000base-x link mode
[ 19.938230] mvneta f1034000.ethernet eth2: configuring for inband/1000base-x link mode
[ 19.974572] mvneta f1030000.ethernet eth1: configuring for fixed/rgmii link mode
[ 19.982986] mvneta f1030000.ethernet eth1: Link is Up - 1Gbps/Full - flow control off
[ 46.556318] mvneta f1034000.ethernet eth2: Link is Up - 1Gbps/Full - flow control rx/tx

Running on Turris OS 7.0.2 HBS, Kernel 5.15.148

@pc-coholic Hi so I re-thought that and I think it wont work with the kernel patch. Simply because the SFP based on RTL960x is not working internally in 2,5Gbps mode.

But I will confirm that when I unbrick the RTL960x I have and check it out.

From what I understand LAN_MODE of 6 should do the trick. But dont consider that as an advice I will check it out on the SFP I have and confirm that. Anyway mine is bricked so lets spare you the problems

Edit: i ordered SFP breakout PCB:

Not from this shop because of the riddiculus price but just 5x pcb only.
I should have components to make 2 of them for now. Just to unbrick that SFP.

Off topic: @backon will you be interested in one PCB after I recieve them? You are experimenting with different SFPs. Let me know in DM I may send you one for shipping cost only.

2 Likes

For my DFP-34X-2C3 I followed this guide to force 2500base-X by editing the module’s EEPROM: Right SFP EEPROM config for DFP-34X-2C2 to work automatically work at 2500base-X? · Anime4000/RTL960x · Discussion #250 · GitHub

Now my omnia detects it as 2500base-x. Since you don’t have the same model, there might be differences in what you need to change if you go that way. I for example had to set the checksum as 0x81 instead of 0x80, since the guide is for the 2C2 variant and I have the 2C3.

Also after this change, the SFP will not advertise 1000baseX support so it will not work on 1gbit media converters etc.

2 Likes