BPI-R4 SFP guidance

Edit for anyone who comes across this: The Ipolex ASF-GE-T 1.25gb SFP does work. The issue seemed to end up being the OpenWRT snapshot was missing kmod-phy-realtek, once installed and rebooted it immediately detected it and worked.

I’m somewhat new to this and trying to get an SPF to work in my BPI-R4. I bought this one just to test out (https://www.amazon.com/dp/B01HDABJJA) (Ipolex ASF-GE-T 1.25gb SFP to RJ45) as it is a Marvell based one I could get quickly and cheaply from Amazon and had read on here that Marvell based SFPs tend to be compatible.

If this SFP isn’t compatible that’s fine, I just don’t know enough to determine that myself. If it is incompatible, can anyone recommend one (fast shipping on Amazon would be great, but AliExpress is okay too if need be) that works for 1gig but preferably also for 2.5gb/5gb? I don’t foresee a 10gig connection in the near future but may go for 2 or 5 so having those as an option without replacing the card would be great.

Below is what I’ve tried and as much diagnostics as I can think to provide:

I have it in Eth2, but cannot get it installed. When I insert it I get: 
> [ 4449.050740] sfp sfp1: module OEM              SFP-GE-T         rev      sn CSGE4NB5643      dc 23112801
> [ 4449.147484] mtk_soc_eth 15100000.ethernet eth2: validation with support 00,00000000,00000000,00000000 failed: -EINVAL
> [ 4449.158185] sfp sfp1: sfp_add_phy failed: -EINVAL


If I try installing kmod_phy-marvell and kmod-phy-marvell-10g it says they are installed in root and up to date but also gives a "pkg_hash_check_unresolved... cannot find dependency kernel" error. 


Output for ethtool eth2 is: 
  >  Supported ports: [ MII ]
>         Supported link modes:   10baseT/Half 10baseT/Full
>                                 100baseT/Half 100baseT/Full
>                                 1000baseT/Half 1000baseT/Full
>                                 10000baseT/Full
>                                 2500baseX/Full
>                                 1000baseKX/Full
>                                 10000baseKX4/Full
>                                 10000baseKR/Full
>                                 1000baseX/Full
>                                 10000baseCR/Full
>                                 10000baseSR/Full
>                                 10000baseLR/Full
>                                 10000baseLRM/Full
>                                 10000baseER/Full
>                                 2500baseT/Full
>                                 5000baseT/Full
>         Supported pause frame use: Symmetric Receive-only
>         Supports auto-negotiation: Yes
>         Supported FEC modes: Not reported
>         Advertised link modes:  1000baseT/Full
>         Advertised pause frame use: Symmetric Receive-only
>         Advertised auto-negotiation: No
>         Advertised FEC modes: Not reported
>         Speed: 1000Mb/s
>         Duplex: Full
>         Port: MII
>         PHYAD: 0
>         Transceiver: internal
>         Auto-negotiation: off
>         Current message level: 0x000000ff (255)
>                                drv probe link timer ifdown ifup rx_err tx_err
>         Link detected: no


I had previously run 
>ethtool -s eth2 speed 1000 duplex full autoneg off

There is no output from that. 

dmesg | grep firmware just gives: 
>[    0.000000] psci: PSCIv1.1 detected in firmware.


and dmesg | grep -i eth2 gives: 
> [    4.764194] mtk_soc_eth 15100000.ethernet eth2: mediatek frame engine at 0xffffffc082900000, irq 103
> [   20.174179] mtk_soc_eth 15100000.ethernet eth2: configuring for inband/10gbase-r link mode
> [   20.206447] br-wan: port 2(eth2) entered blocking state
> [   20.211690] br-wan: port 2(eth2) entered disabled state
> [   20.216933] mtk_soc_eth 15100000.ethernet eth2: entered allmulticast mode
> [   20.223845] mtk_soc_eth 15100000.ethernet eth2: entered promiscuous mode
> [   20.292191] mtk_soc_eth 15100000.ethernet eth2: validation with support 00,00000000,00000000,00000000 failed: -EINVAL
> [ 3541.839621] mtk_soc_eth 15100000.ethernet eth2: left allmulticast mode
> [ 3541.846178] mtk_soc_eth 15100000.ethernet eth2: left promiscuous mode
> [ 3541.852681] br-wan: port 2(eth2) entered disabled state
> [ 3544.039981] mtk_soc_eth 15100000.ethernet eth2: configuring for inband/10gbase-r link mode
> [ 3545.134268] br-wan: port 2(eth2) entered blocking state
> [ 3545.139496] br-wan: port 2(eth2) entered disabled state
> [ 3545.144738] mtk_soc_eth 15100000.ethernet eth2: entered allmulticast mode
> [ 3545.151610] mtk_soc_eth 15100000.ethernet eth2: entered promiscuous mode
> [ 3545.219735] mtk_soc_eth 15100000.ethernet eth2: validation with support 00,00000000,00000000,00000000 failed: -EINVAL
> [ 3988.767844] mtk_soc_eth 15100000.ethernet eth2: left allmulticast mode
> [ 3988.774405] mtk_soc_eth 15100000.ethernet eth2: left promiscuous mode
> [ 3988.780868] br-wan: port 2(eth2) entered disabled state
> [ 3991.070648] mtk_soc_eth 15100000.ethernet eth2: configuring for inband/10gbase-r link mode
> [ 3991.101642] br-wan: port 2(eth2) entered blocking state
> [ 3991.106864] br-wan: port 2(eth2) entered disabled state
> [ 3991.112104] mtk_soc_eth 15100000.ethernet eth2: entered allmulticast mode
> [ 3991.118987] mtk_soc_eth 15100000.ethernet eth2: entered promiscuous mode
> [ 3991.190799] mtk_soc_eth 15100000.ethernet eth2: validation with support 00,00000000,00000000,00000000 failed: -EINVAL
> [ 4211.269779] mtk_soc_eth 15100000.ethernet eth2: left allmulticast mode
> [ 4211.276503] mtk_soc_eth 15100000.ethernet eth2: left promiscuous mode
> [ 4211.283042] br-wan: port 2(eth2) entered disabled state
> [ 4213.056276] mtk_soc_eth 15100000.ethernet eth2: configuring for inband/10gbase-r link mode
> [ 4213.087444] br-wan: port 2(eth2) entered blocking state
> [ 4213.092676] br-wan: port 2(eth2) entered disabled state
> [ 4213.097908] mtk_soc_eth 15100000.ethernet eth2: entered allmulticast mode
> [ 4213.104825] mtk_soc_eth 15100000.ethernet eth2: entered promiscuous mode
> [ 4213.181059] mtk_soc_eth 15100000.ethernet eth2: validation with support 00,00000000,00000000,00000000 failed: -EINVAL
> [ 4449.147484] mtk_soc_eth 15100000.ethernet eth2: validation with support 00,00000000,00000000,00000000 failed: -EINVAL

That means you need to update to latest snapshot as the kernel installed no longer matches the version of the modules available for download.

You may auto-update to the most recent snapshot using

opkg update
opkg install owut
owut upgrade

That should solve it.

Much appreciated, thanks!

Your sfp module might has a broken eeprom data, more information related here:

It would be better if you could provide ethtool -m output of your module(Please use full version of ethtool)