[BPI-R4] and SFP

Yep, maybe use pcs->ops->supports_inband(interface) or something.

Check state->link from phylink_mac_pcs_get_state() I guess…

1 Like

thanks eric very much for this info…noticed the pcs driver (CONFIG_PCS_MTK_USXGMII) was not enabled (though i had looked for it already, but seems not)…

root@bpi-r4-v11:~# ip link set eth2 up                                                                                                                                                  
[   20.646238] mtk_soc_eth 15100000.ethernet eth2: configuring for inband/10gbase-r link mode                                                                                           
root@bpi-r4-v11:~# [   20.751857] mtk_soc_eth 15100000.ethernet eth2: Link is Up - 10Gbps/Full - flow control off                                                                       
                                                                                                                                                                                        
root@bpi-r4-v11:~# ethtool eth2                                                                                                                                                         
Settings for eth2:                                                                                                                                                                      
        Supported ports: [ FIBRE ]                                                                                                                                                      
        Supported link modes:   10000baseSR/Full                                                                                                                                        
        Supported pause frame use: Symmetric Receive-only                                                                                                                               
        Supports auto-negotiation: Yes                                                                                                                                                  
        Supported FEC modes: Not reported                                                                                                                                               
        Advertised link modes:  10000baseSR/Full                                                                                                                                        
        Advertised pause frame use: Symmetric Receive-only                                                                                                                              
        Advertised auto-negotiation: Yes                                                                                                                                                
        Advertised FEC modes: Not reported                                                                                                                                              
        Speed: 10000Mb/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: yes

it seems i fall into this (which not nice without error-message btw):

will make some basic tests with my other r4 and then continue work on RSS/LRO

basicly it works this is speedtest without RSS/LRO:

root@bpi-r4-v11:~# iperf3 -bidir -c 192.168.90.10                                                                                                                                       
Connecting to host 192.168.90.10, port 5201                                                                                                                                             
[  5] local 192.168.90.11 port 43602 connected to 192.168.90.10 port 5201                                                                                                               
[ ID] Interval           Transfer     Bitrate         Retr  Cwnd                                                                                                                        
[  5]   0.00-1.00   sec   541 MBytes  4.54 Gbits/sec   38    706 KBytes                                                                                                                 
[  5]   1.00-2.00   sec   539 MBytes  4.52 Gbits/sec   11    936 KBytes                                                                                                                 
[  5]   2.00-3.00   sec   541 MBytes  4.54 Gbits/sec   53    867 KBytes                                                                                                                 
[  5]   3.00-4.00   sec   541 MBytes  4.54 Gbits/sec   30   1015 KBytes                                                                                                                 
[  5]   4.00-5.00   sec   541 MBytes  4.54 Gbits/sec   43    943 KBytes                                                                                                                 
[  5]   5.00-6.00   sec   540 MBytes  4.53 Gbits/sec   33    813 KBytes                                                                                                                 
[  5]   6.00-7.00   sec   542 MBytes  4.55 Gbits/sec   36    731 KBytes                                                                                                                 
[  5]   7.00-8.00   sec   540 MBytes  4.53 Gbits/sec   28    977 KBytes                                                                                                                 
[  5]   8.00-9.00   sec   540 MBytes  4.53 Gbits/sec   45    865 KBytes                                                                                                                 
[  5]   9.00-10.00  sec   540 MBytes  4.53 Gbits/sec   66    764 KBytes                                                                                                                 
- - - - - - - - - - - - - - - - - - - - - - - - -                                                                                                                                       
[ ID] Interval           Transfer     Bitrate         Retr                                                                                                                              
[  5]   0.00-10.00  sec  5.28 GBytes  4.54 Gbits/sec  383             sender                                                                                                            
[  5]   0.00-10.00  sec  5.28 GBytes  4.53 Gbits/sec                  receiver                                                                                                          
                                                                                                                                                                                        
iperf Done.

i guess retransmitts are caused by cpu overload due to missing rss/lro

with RSS+LRO patches link takes ~1min to get up and after it is up throughput is same (but not enabled with ethtool yet) - so not working yet

Thanks for sharing, I also needed that for my defconfig.

I can’t start MIKROTIK S+RJ10. It seems to me that he is not receiving power.

Can I force power on SFP1 SFP2 is it controlled by GPIO82-83?

root@OpenWrt:/sys/devices/platform/1001f000.pinctrl/gpio/gpiochip428/power# cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 428-511, parent: platform/1001f000.pinctrl, pinctrl_moore:
 gpio-428 (                    |tx-disable          ) in  lo
 gpio-430 (                    |los                 ) in  hi IRQ
 gpio-432 (                    |asm_sel             ) in  hi
 gpio-433 (                    |pca9545_rst         ) in  hi
 gpio-441 (                    |reset               ) in  lo IRQ ACTIVE LOW
 gpio-442 (                    |wps                 ) in  hi IRQ ACTIVE LOW
 gpio-482 (                    |los                 ) in  hi IRQ
 gpio-491 (                    |bpi-r4:pio:blue     ) out lo
 gpio-498 (                    |tx-disable          ) in  lo
 gpio-507 (                    |bpi-r4:pio:green    ) out lo
 gpio-510 (                    |mod-def0            ) in  hi IRQ ACTIVE LOW
 gpio-511 (                    |mod-def0            ) in  hi IRQ ACTIVE LOW

Here I see that both GPIOs (mod-def0) are occupied for control. Is it possible to free them?

These are bound by dts,but afaik they are needed by driver. You can assign different gpio (e.g. from 26pin header) to the moddef0.

Are you sure the moddef-pins are used for powering your sfp? The 3v3 is fixed passed to the sfp.

Can you read the i2c of the sfp? What do you see with ethtool? I guess you need a quirk (e.g. for disabling the tx-disable or adding more modes) instead of changing the moddef0 gpio.

What says dmesg? Can you read sfp data with ethtool -m?

Nothing happens when I install the module.

According to the diagram, power appears on the module after the mod-def0 signal changes to LO. The module needs power to switch this signal.

Above you can see its installed state and it is HI.

I have to run this module every time, bypassing Q12. I need a power boost on the module for it to start. After this, the module changes mod-def0 to LO and the BPI circuit continues to power it.

root@OpenWrt:~# cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 428-511, parent: platform/1001f000.pinctrl, pinctrl_moore:
 gpio-428 (                    |tx-disable          ) out lo
 gpio-430 (                    |los                 ) in  lo IRQ
 gpio-432 (                    |asm_sel             ) in  hi
 gpio-433 (                    |pca9545_rst         ) in  hi
 gpio-441 (                    |reset               ) in  lo IRQ ACTIVE LOW
 gpio-442 (                    |wps                 ) in  hi IRQ ACTIVE LOW
 gpio-482 (                    |los                 ) in  hi IRQ
 gpio-491 (                    |bpi-r4:pio:blue     ) out lo
 gpio-498 (                    |tx-disable          ) out lo
 gpio-507 (                    |bpi-r4:pio:green    ) out lo
 gpio-510 (                    |mod-def0            ) in  lo IRQ ACTIVE LOW
 gpio-511 (                    |mod-def0            ) in  lo IRQ ACTIVE LOW

A vicious circle, the module cannot change the mod-def0 signal from HI to LO because there is no power. BPI-R4 cannot supply power because mod-def0 HI.

[   86.268015] sfp sfp@1: SM: enter empty:up:down event insert
[   86.273596] sfp sfp@1: SM: exit probe:up:down
[   86.603175] sfp sfp@1: SM: enter probe:up:down event timeout
[   86.619969] sfp sfp@1: module MikroTik         S+RJ10           rev 2.16 sn XXXXXXXX     dc 210425
[   86.629444] sfp sfp@1: sfp: support mode 00,00000400,00006040
[   86.635194] mtk_soc_eth 15100000.ethernet eth1: requesting link mode inband/10gbase-kr with support 00,00000400,000060c0
[   86.659622] sfp sfp@1: Module switched to 1.5W power level
[   86.665102] sfp sfp@1: SM: exit waitpwr:up:down
[   86.987178] sfp sfp@1: SM: enter waitpwr:up:down event timeout
[   86.993006] sfp sfp@1: tx disable 1 -> 0
[   86.996943] sfp sfp@1: SM: exit present:up:wait
[   87.051174] sfp sfp@1: SM: enter present:up:wait event timeout
[   87.056998] sfp sfp@1: probing phy device through the [MDIO_I2C_NONE] protocol
[   87.064215] sfp sfp@1: SM: exit present:up:link_up
[   87.095191] mtk_soc_eth 15100000.ethernet eth1: Link is Up - 10Gbps/Full - flow control off
[   87.114504] br-lan: port 4(eth1) entered blocking state
[   87.119721] br-lan: port 4(eth1) entered forwarding state
[   91.771718] sfp sfp@0: SM: enter empty:up:down event insert
[   91.777297] sfp sfp@0: SM: exit probe:up:down
[   92.107173] sfp sfp@0: SM: enter probe:up:down event timeout
[   92.123970] sfp sfp@0: module MikroTik         S+RJ10           rev 2.16 sn XXXXXXXXX     dc 210319
[   92.133446] sfp sfp@0: sfp: support mode 00,00000400,00006040
[   92.139195] mtk_soc_eth 15100000.ethernet eth2: requesting link mode inband/10gbase-kr with support 00,00000400,000060c0
[   92.163627] sfp sfp@0: Module switched to 1.5W power level
[   92.169105] sfp sfp@0: SM: exit waitpwr:up:down
[   92.491175] sfp sfp@0: SM: enter waitpwr:up:down event timeout
[   92.496998] sfp sfp@0: tx disable 1 -> 0
[   92.500929] sfp sfp@0: SM: exit present:up:wait
[   92.555173] sfp sfp@0: SM: enter present:up:wait event timeout
[   92.560996] sfp sfp@0: probing phy device through the [MDIO_I2C_NONE] protocol
[   92.568211] sfp sfp@0: SM: exit present:up:link_up
[   92.599187] mtk_soc_eth 15100000.ethernet eth2: Link is Up - 10Gbps/Full - flow control off
[   92.618504] br-wan: port 2(eth2) entered blocking state
[   92.623721] br-wan: port 2(eth2) entered forwarding state
[  117.266056] TCP: br-lan: Driver has suspect GRO implementation, TCP performance may be compromised.

So I would like to return to my S+RJ10 modules. I found out that they are built on Marvell 88X3310P PHY. I even enabled Marvell 10G PHY support when building Openwrt. But I still don’t see this PHY. I know that Aquantia AQR113C has already been added to the assembly. Maybe someone has already done this. Are there any comments on this?

I’m using the build eladwf/openwrt/tree/bpi_r4 I also set irqbalance to balance interrupts on different processor cores from ETH1-2. I don’t see that RSS balances the queues.

You might need to write some quirk for your module. net: sfp: add support for a couple of copper multi-rate modules · torvalds/linux@5859a99 · GitHub

Yes, I’m glad that there might be a solution, but I can’t even imagine how to use it.

The modules work, but I have no idea in what serdes mode. I can connect 100mb-10G but if I connect below 10G I get queue overflow and the transfer speed is limited to 1G. phylink is always 10G. I have the impression that phy does not inform you that you need to slow down, does not send pauses.

I have to enable flow-control on my switch. Although this is not correct, it helps me. It turns out that the queue is controlled by my smart switch.

I got the BPI-R4 now and also have a LuLeey XPON SFP module (LL-XS2510). It was detected out of the box by the OpenWrt version the R4 shipped with. Unfortunately, I can’t test the uplink yet, because my ISP has yet to install the fiber to the building.

Let me know if there is any command I should run with the module or some other information you need to add input to this thread.

I tried but nothing worked with the quirk. The module simply stops starting. Until I give him the command to force MDIX initialization.

I tell him mii-tool -r eth2 and he comes to life.

I stopped fighting with S+RJ10.

I bought XICOM and they are on phy Aquantia AQR113C

They are 10-15 degrees cooler and seem to be fully supported by openwrt.

But there is one peculiarity: in 2024 they changed the name of their modules for DDMI.

In 2023 and earlier they were called

OEM SFP+-T

Now starting in 2024 They are called

OEM SFP-10G-T

Old 2023 and earlier modules did not detect their phy, but this can be fixed.

You just need to add the name of the old module before building. Maybe someone will add this fix to the main build in the future.

[   19.598863] sfp sfp1: module OEM              SFP-10G-T        rev 1    sn CI2401130569     dc 240112
[   19.619594] sfp sfp2: module OEM              SFP+-T           rev 1    sn C2312180155      dc 231218
[   19.640098] hwmon hwmon2: temp1_input not attached to any thermal zone
[   19.666445] hwmon hwmon3: temp1_input not attached to any thermal zone
[   20.239281] mtdblock: MTD device 'ubi' is NAND, please consider using UBI block devices instead.
[   20.251394] mtdblock: MTD device 'bl2' is NAND, please consider using UBI block devices instead.
[   20.268447] md: md0 stopped.
[   20.307591] md0: detected capacity change from 0 to 1937388544
[   21.864184] mtk_soc_eth 15100000.ethernet eth0: Link is Down
[   21.879282] mtk_soc_eth 15100000.ethernet eth0: configuring for fixed/internal link mode
[   21.887414] mtk_soc_eth 15100000.ethernet eth0: Link is Up - 10Gbps/Full - flow control rx/tx
[   21.889843] mt7530-mmio 15020000.switch lan1: configuring for phy/internal link mode
[   21.904051] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[   21.911104] br-lan: port 1(lan1) entered blocking state
[   21.916362] br-lan: port 1(lan1) entered disabled state
[   21.921827] device lan1 entered promiscuous mode
[   21.930157] mt7530-mmio 15020000.switch lan2: configuring for phy/internal link mode
[   21.938625] br-lan: port 2(lan2) entered blocking state
[   21.943863] br-lan: port 2(lan2) entered disabled state
[   21.949339] device lan2 entered promiscuous mode
[   21.956305] mt7530-mmio 15020000.switch lan3: configuring for phy/internal link mode
[   21.964639] br-lan: port 3(lan3) entered blocking state
[   21.969912] br-lan: port 3(lan3) entered disabled state
[   21.975367] device lan3 entered promiscuous mode
[   21.982319] mt7530-mmio 15020000.switch wan: configuring for phy/internal link mode
[   21.990730] br-lan: port 4(wan) entered blocking state
[   21.995876] br-lan: port 4(wan) entered disabled state
[   22.001567] device wan entered promiscuous mode
[   22.007351] mtk_soc_eth 15100000.ethernet eth1: configuring for inband/10gbase-r link mode
[   22.030559] mtk_soc_eth 15100000.ethernet eth2: configuring for inband/10gbase-r link mode
[   23.549413] EXT4-fs (md0): recovery complete
[   23.553708] EXT4-fs (md0): mounted filesystem with ordered data mode. Quota mode: disabled.
[   48.129729] hwmon hwmon4: temp1_input not attached to any thermal zone
[   48.909538] mtk_soc_eth 15100000.ethernet eth2: PHY [i2c:sfp1:11] driver [Aquantia AQR113C] (irq=POLL)
[   49.919770] hwmon hwmon5: temp1_input not attached to any thermal zone
[   50.699779] mtk_soc_eth 15100000.ethernet eth1: PHY [i2c:sfp2:11] driver [Aquantia AQR113C] (irq=POLL)
[   56.561973] mtk_soc_eth 15100000.ethernet eth1: Link is Up - 2.5Gbps/Full - flow control rx/tx
[   56.570624] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[   57.281984] mtk_soc_eth 15100000.ethernet eth2: Link is Up - 2.5Gbps/Full - flow control rx/tx
[   57.290634] IPv6: ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready

finally got flow control working on 2.5G and now he understands that this is not 10G

root@OpenWrt:~# ethtool eth1
Settings for eth1:
        Supported ports: [  ]
        Supported link modes:   100baseT/Full
                                1000baseT/Full
                                10000baseT/Full
                                1000baseKX/Full
                                10000baseKX4/Full
                                10000baseKR/Full
                                2500baseT/Full
                                5000baseT/Full
        Supported pause frame use: Symmetric Receive-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  100baseT/Full
                                1000baseT/Full
                                10000baseT/Full
                                1000baseKX/Full
                                10000baseKX4/Full
                                10000baseKR/Full
                                2500baseT/Full
                                5000baseT/Full
        Advertised pause frame use: Symmetric Receive-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                             100baseT/Half 100baseT/Full
                                             1000baseT/Full
                                             2500baseT/Full
        Link partner advertised pause frame use: Symmetric Receive-only
        Link partner advertised auto-negotiation: Yes
        Link partner advertised FEC modes: Not reported
        Speed: 2500Mb/s
        Duplex: Full
        Auto-negotiation: on
        Port: Twisted Pair
        PHYAD: 17
        Transceiver: external
        MDI-X: Unknown
        Current message level: 0x000000ff (255)
                               drv probe link timer ifdown ifup rx_err tx_err
        Link detected: yes

UPD: I changed the name on the module now I don’t need the quirk. Old name

OEM+-T

I changed its name to

OEM-10G-T

and now it works normally.

[ 2627.204270] sfp sfp1: module OEM              SFP-10G-T        rev 1    sn C2312180155      dc 231218
[ 2627.244145] hwmon hwmon2: temp1_input not attached to any thermal zone
[ 2653.565434] hwmon hwmon3: temp1_input not attached to any thermal zone
[ 2654.355229] mtk_soc_eth 15100000.ethernet eth2: PHY [i2c:sfp1:11] driver [Aquantia AQR113C] (irq=POLL)
[ 2683.518830] sfp sfp1: module removed

All information is in this post. https://forum.banana-pi.org/t/i2csfp-sfp-debugging-via-i2c/17761?u=vasya

Here is the executable file you can run directly on the BPI-R4

i2csfp.tar.gz (298,4 КБ)

root@OpenWrt:/tmp$ ./i2csfp /dev/i2c-3 eepromfix -V OEM -N SFP-10G-T

Hi, Can you share i2cdetect and i2cdump result of your stick? I also have a aqr113c stick but not sure if it is supported by rollball protocol.

root@OpenWrt:~# i2cdetect -y 3
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: 50 51 -- -- -- -- 56 -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: UU -- -- -- -- -- -- --

root@OpenWrt:~# i2cdump -y 3 0x50
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 03 04 07 10 00 00 00 00 00 00 00 06 67 00 00 00    ????.......?g...
10: 08 02 00 1e 4f 45 4d 20 20 20 20 20 20 20 20 20    ??.?OEM
20: 20 20 20 20 00 00 00 00 53 46 50 2b 2d 54 20 20        ....SFP+-T
30: 20 20 20 20 20 20 20 20 31 20 20 20 03 52 00 ef            1   ?R.?
40: 00 1a 00 00 43 32 33 31 32 31 38 30 31 35 35 20    .?..C2312180155
50: 20 20 20 20 32 33 31 32 31 38 20 20 68 f0 03 c5        231218  h???
60: 9f 00 11 8b 92 9a 79 ea 33 1c 5b 64 fd 3f 03 53    ?.????y?3?[d???S
70: 31 e2 d9 00 00 00 00 00 00 00 00 00 49 8a 37 2e    1??.........I?7.
80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
root@OpenWrt:~# i2cdump -y 3 0x51
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 5f 00 ce 00 5a 00 d3 00 8c a0 75 30 88 b8 79 18    _.?.Z.?.??u0??y?
10: 1d 4c 01 f4 19 64 03 e8 4d f0 06 30 3d e8 06 f2    ?L???d??M??0=???
20: 2b d4 00 c7 27 10 00 df 00 00 00 00 00 00 00 00    +?.?'?.?........
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
40: 00 00 00 00 3f 80 00 00 00 00 00 00 01 00 00 00    ....??......?...
50: 01 00 00 00 01 00 00 00 01 00 00 00 00 00 00 f1    ?...?...?......?
60: 1d f3 82 b3 0b b8 13 88 00 00 00 00 00 00 02 00    ????????......?.
70: 00 40 00 00 00 40 00 00 00 00 00 ff ff ff ff 00    .@...@..........
80: 43 4f 55 49 41 38 4e 43 41 41 31 30 2d 32 34 31    COUIA8NCAA10-241
90: 35 2d 30 33 56 30 33 20 01 00 46 00 00 00 00 c6    5-03V03 ?.F....?
a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 aa aa    ..............??
c0: 53 46 50 2d 31 30 47 2d 53 52 20 20 20 20 20 20    SFP-10G-SR
d0: 20 20 20 20 33 32 00 00 00 00 00 00 00 00 00 35        32.........5
e0: 1e 28 2e 2e 31 34 29 36 00 00 00 00 00 00 00 00    ?(..14)6........
f0: 00 00 00 00 00 66 00 00 ff ff ff ff 00 00 00 00    .....f..........
root@OpenWrt:~# i2cdump -y 3 0x56
No size specified (using byte-data access)
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f    0123456789abcdef
00: 20 40 00 02 31 c3 1c 12 60 31 00 9a e0 00 00 09     @.?1???`1.??..?
10: b3 01 00 00 00 00 40 fc 00 00 00 00 31 c3 1c 12    ??....@?....1???
20: 00 00 00 00 00 00 00 00 00 00 00 03 00 00 00 00    ...........?....
30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00    ................
40: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
50: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
60: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
70: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
90: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
a0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
f0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff    ................
root@OpenWrt:~#

Thanks, seems my stick doesn’t support rollball protocol.:disappointed:

This does not depend on the module, if phy AQR113C everything should work. Repeat the steps that I described above, add your module to the assembly. My old

XICOM OEM SFP+-T

module also did not work with rollball until I added it.

I’m using the official openwrt. GitHub - openwrt/openwrt: This repository is a mirror of https://git.openwrt.org/openwrt/openwrt.git It is for reference only and is not active for check-ins. We will continue to accept Pull Requests here. They will be merged via staging trees then into openwrt.git.

Here’s something else I would check.

[  104.599519] mtk_soc_eth 15100000.ethernet eth2: PHY [i2c:sfp1:11] driver [Aquantia AQR113C] (irq=POLL)
[ 2096.301865] sfp sfp1: module removed

Removing a module no longer causes a bunch of errors.

I’m having also a BPI R4 issue with SFP, but kinda specific:

I’m using 2.5G RJ45 SFP modules, as they are less power-hungry compared to SFP+ modules. On Openwrt master based on kernel 6.1, everything is fine. But, as I saw @dangowrt implemented many tricks in later kernel versions, I thought moving to 6.6 (the experimental kernel) was a good thing. Unfortunately, this doesn’t seem to be the case:

[   17.713196] sfp sfp2: module OEM              SFP-2G5          rev 1.0  sn 2G522112324218   dc 220801  
[   17.722600] mtk_soc_eth 15100000.ethernet eth1: unsupported SFP module: no common interface modes
[   17.742752] sfp sfp1: module OEM              SFP-2G5          rev 1.0  sn 2G522112324218   dc 220801  
[   17.752156] mtk_soc_eth 15100000.ethernet eth2: unsupported SFP module: no common interface modes

and the SFP modules no longer work :frowning: using 6.1 kernel, there is no issue:

[   17.390409] sfp sfp1: module OEM              SFP-2G5          rev 1.0  sn 2G522112324218   dc 220801  
[   17.399828] mtk_soc_eth 15100000.ethernet eth2: switched to inband/2500base-x link mode
[   17.419104] sfp sfp2: module OEM              SFP-2G5          rev 1.0  sn 2G522112324218   dc 220801  
[   17.428526] mtk_soc_eth 15100000.ethernet eth1: switched to inband/2500base-x link mode

Has anyone heard of something like this?

I compiled the vanilla openwrt 6.6 kernel with debug and driver debug options, and booted it with “debug ignore_loglevel”. The result is here: verbose_dmesg.txt (259,4 KB)

Anybody who sees what’s going wrong on 6.6 kernels?

I know on R3, inband does not work at 2500base-x. I’m not sure if this is the same for R4.

If so, then it needs to be disabled, using some patch. There are different versions of patches for this problem. So you may want to check if appropriate patches are present in the fork you are using, if R4 also needs inband disabled…